快速解释:我有一个临时阶段和一个生产服务器,两者都有相同的部署脚本(唯一的区别是回购分支克隆)。部署脚本运行bower install,这是在两个服务器上全局安装的。
为了全局安装它,我将npm config set prefix改为/home/forge/.npm-packages,然后运行npm install -g bower (注意,不需要sudo,这就是更改前缀的意义)。再一次,这是在两个服务器上完成的。
当我将ssh放入每个服务器并运行bower -v时,显然存在命令,并将其添加到PATH env中。这两个服务器的输出是相同的。
在项目根目录上手动运行bower install对两台服务器都有效。
问题是伪造部署脚本,哪个只在生产 (IKR )上失败?我不知道我期待的是什么)。
实际输出是:
/home/forge/.forge/provision-2394191.sh: line 8: bower: command not found有趣的是,在我尝试调试的过程中,我手动运行了provision-2394191.sh,并且成功了。
我的生产服务器出什么问题了?
发布于 2015-09-05 05:53:14
似乎只使用/home/forge/.npm-packages将新的export添加到$PATH中是不够的。为了解决这个问题,我必须手动将它添加到/etc/environment文件中。
https://stackoverflow.com/questions/32405128
复制相似问题