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

隔壁的运维兄弟,要把苏南大叔写的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 -s /opt/node/bin/cnpm /usr/local/bin/cnpm

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

相关链接

结论

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

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

本站的忠实读者小伙伴,正在阅读下面这些文章:

欢迎转载传播本篇原创文章,转载请保留链接及作者信息。
欢迎指正文字或逻辑错误,将会择优在文末列出您的信息。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

苏南大叔需要你的支持

感谢您的打赏,让我更有动力,将更多精彩教程文章,呈现给大家!谢谢!