fedora – RPM打包一个ruby项目

我想将我从git获得的 ruby程序打包到RPM包中.我的处置是构建服务器和生产服务器(Same OS / Same Arch).

作为大多数ruby项目,我的确有gem依赖项.

我找到了两种方法来做我想做的事情,我想知道哪种方法是最好的 – 大多数unix / linux哲学 – 操作明智

>在生产服务器上捆绑较少

第一个(对我来说看起来更好)是进行捆绑安装 – standalone –deployment –path%{buildroot} /usr/lib/rubygems/1.8/gems/ –binstubs% {buildroot} / usr /lib/rubygems/1.8.bin.这将在部署.rpm的服务器上的gem系统路径上安装gem,无需安装bundle.在我不确定的地方,是什么时候我会用相同的宝石安装其他rpm会发生什么?当我删除包含两个包之间共享的gem的包时发生了什么?

>使用生产服务器上的捆绑包

bundle install –deployment命令将直接在项目本身中进行.这样一切都可以在供应商/目录中找到.在线我可以看到一些关于供应商 – 一切政策的帖子,它似乎没有正确的操作明智,因为许多宝石将被复制.由于我没有ruby背景,我不知道它可以具有的确切利弊

如果有人已经做了类似的事情,你采取哪种方式?什么 – 操作明智 – 是最好的选择吗?

不要使用RPM部署gem,除非您也使用RPM部署所有依赖的gem.有关构建RPM的正确方法和构建gem的示例规范文件以及如何为Rails Web应用程序构建RPM的信息,请参阅 Fedora Packaging Guidelines for Ruby.

如果您需要做一些破坏RPM最佳实践的事情,那么最好不要使用RPM来部署.使用以部署为中心的工具,例如capistrano;它可以从git自动检出你的应用程序并正确部署它(一旦你配置它).

相关文章
相关标签/搜索