我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

隔壁的运维兄弟,要把苏南大叔写的nodejs代码,塞到了docker里面。那么,就面临着一个npm install的问题,不太好的消息是:在调试阶段,要经常性的使用npm install。那么就不可避免地面临一个问题:。建议使用cnpm来代替npm,结果被反馈:cnpm安装后,无法找到cnpm命令。

苏南大叔:docker容器内如何安装使用cnpm ? - npm
docker容器内如何安装使用cnpm ?(图1-1)

于是就有了本文的内容,在node容器里面,如何使用cnpm命令呢?本文容器的基础镜像是:基于centos7.5node8镜像。解决方案就是软连接ln,但是由于docker版的centos是阉割版的,所以,cnpm的路径是存在问题的。

容器内安装cnpm

假设容器名叫做:node_container。那么,需要先进入容器内部。

docker exec -it node_container /bin/bash

执行命令:

npm install cnpm -g

安装完毕后,可以看到有如下类似回显内容:

npm WARN deprecated socks@1.1.10: If using 2.x branch, please upgrade to at least 2.1.6 to avoid a serious bug with socket data flow and an import issue introduced in 2.1.0
/opt/node/bin/cnpm -> /opt/node/lib/node_modules/cnpm/bin/cnpm

cnpm@6.0.0
updated 1 package in 34.723s

问题描述

如果试图执行cnpm命令的话,会显示无法找到命令。真心是不按套路出牌啊。

[root@localhost update]# cnpm
-bash: cnpm: 未找到命令

解决方案

解决方案也蛮简单,就是做个软连接。

  • 至于路径嘛,cnpm安装完毕的时候,不是有显示路径么... 或者,您还可以使用which或者whereis或者find之类的,得到该路径:/opt/node/bin/cnpm
当然这个路径/opt/node/bin/cnpm,也是个软链接,可以通过ls -al查看真实的路径是:/opt/node/lib/node_modules/cnpm/bin/cnpm
  • 后面的路径:/usr/local/bin/cnpm。比较好理解,/usr/local/bin/,这个是系统的用户目录,只要里面的可执行文件,都是默认优先执行的。

重点就是:做好ln软连接即可。命令行如下:

newsn.net:这里是【评论】可见内容

做好cnpm的软连接之后,就可以愉快的使用cnpm install了。安装速度明显快了好多,领导的脸上也露出了笑容......

相关链接

结论

更多cnpm的小故事,请参见苏南大叔的经验文章:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   docker    cnpm