日前进行了一个项目,要求做到通过shell脚本来实现设备环境的一键安装离线部署。
前面都还挺顺利,在后期发现需要安装forever。
如果设备在线,那么很简单,执行:npm install forever -g。搞定了,但是当设备无法访问网络情况下怎么办呢?
如果是通过yum安装,那么很简单,我可以在有网络的设备上通过yum把forever包和所有forever依赖的包下到本地,然后拷贝到待安装设备进行localinstall。
但是npm不行,举个例子:npm install ./forever-3.0.4.tar.gz -g,依然去尝试访问网络查找依赖包,安装失败。
研究了一整天,最终找到一个方法,希望能帮助和我有同样需求的童鞋们:
1、在一台网络环境正常的设备上,安装好nodejs和forever,forever装好以后的路径会是:/usr/lib/node_modules/forever,把这个文件夹打包,比如叫forever.tar.gz。
2、在待安装设备上先安装好nodejs,然后刚才的forever.tar.gz解压缩到/usr/lib/node_modules目录下
3、建一个软连接:比如ln -s /usr/lib/node_modules/forever/bin/forever /usr/bin/forever
4、问题解决,可以尝试:forever,如果出现了help信息说明已经成功了