Spr*_*dzy 5 fedora rpm ruby packaging rubygems
我想将从 git 获取的 ruby 程序打包到 RPM 包中。我有一个构建服务器和一个生产服务器(相同的操作系统/相同的架构)。
与大多数 ruby 项目一样,我的项目确实有 gem 依赖项。
我找到了两种做我想做的事情的方法,我想知道哪一种是最好的 - 大多数 UNIX/Linux 哲学 - 操作方面
第一个(对我来说看起来更好)是做一个bundle install --standalone --deployment --path %{buildroot}/usr/lib/rubygems/1.8/gems/ --binstubs %{buildroot}/usr/lib/rubygems/1.8.bin. 这会将 gem 安装在将部署 .rpm 的服务器上的 gem 系统路径上,无需安装捆绑包。我不确定的是,当我使用相同的 gem 安装其他 rpm 时会发生什么?当我删除一个带有在两个包之间共享的 gem 的包时,会发生什么?
该bundle install --deployment命令将直接在项目本身中执行。这样就可以在目录中找到所有内容vendor/。在网上我可以看到一些关于供应商一切政策的帖子,它似乎不正确的操作明智,因为很多宝石将被重复。由于我没有红宝石背景,我不知道它的确切优点/缺点
如果有人已经做了类似的事情,你会采取哪一种方式?从运营角度来看,什么才是最好的解决方案?
不要使用 RPM 部署 gem,除非您也使用 RPM部署其所有依赖的 gem 。请参阅Fedora Ruby 打包指南,了解构建 RPM 的正确方法和构建 gems 的示例规范文件,以及如何为 Rails Web 应用程序构建 RPM。
如果您需要做一些破坏 RPM 最佳实践的事情,那么您最好不要使用 RPM 来部署. 使用以部署为中心的工具,例如 capistrano;它可以自动从 git 检出您的应用程序并正确部署它(一旦您配置它)。
| 归档时间: |
|
| 查看次数: |
1009 次 |
| 最近记录: |