我正在编写一个基于Ruby的守护程序来在我的Ubuntu服务器之一上运行。我希望它在启动时运行,因此将为此编写一个新贵的作业文件。但是,我已经使用捆绑程序来管理它使用的各种gem,并打算在将其部署到服务器后执行此操作:
bundle install --deployment
这将捆绑程序置于所谓的“部署模式”,通过该模式,可以设置各种选项,并将所有gem都安装在“供应商”目录中,而不是系统范围内。但是,这会在运行时产生问题,因为必须在其自己的目录中执行它,因为这是gem所在的位置:]
<in the app's dir> $ ./runmyapp <it runs>
如果我
cd
到另一个位置,然后尝试使用它的完整路径运行它,它将失败:
<in another directory> $ /path/to/runmyapp <it crashes as it can't locate its gems>
我已经阅读了很多捆绑器文档,而整个方案甚至都没有涉及?我应该只将gems安装到系统上吗?还有什么我应该做的吗?
我正在编写一个基于Ruby的守护程序来在我的Ubuntu服务器之一上运行。我希望它在启动时运行,因此将为此编写一个新贵的作业文件。但是,我用过...
您使用捆绑程序作为应用程序的gem管理器。我认为在这种情况下,使用bundle exec
是运行可执行文件的最佳方法。
我自己解决了一个类似的问题,最终创建了一个包装脚本,