如何保存Rails应用程序的整个包,包括正在使用的宝石?[英] How can I save whole package of Rails App including gems being used?

本文是小编为大家收集整理的关于如何保存Rails应用程序的整个包,包括正在使用的宝石?的处理方法,想解了如何保存Rails应用程序的整个包,包括正在使用的宝石?的问题怎么解决?如何保存Rails应用程序的整个包,包括正在使用的宝石?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我使用了很多宝石.他们对彼此的依赖关系非常敏感.
现在,宝石的当前组合非常完美.我想保存整个应用程序,并在我进行下一个项目时重新使用它.

如你所知,宝石在rubygem.org
中不承诺将来存在所以我想保存正在使用的 App 和 gems 的整个包.然后我不需要关心设置宝石,除非我需要新的宝石.我需要关心的只是在下一个项目中编码.

有人告诉我使用此命令并保存整个 App 文件

bundle install --path=vendor/bundle

在此之后,我的应用程序搞砸了 :(jQuery 在 recompile

之后不再工作了

所以我确实需要用旧的 App 文件夹替换整个 App 文件夹,这是在 /usr/local/bin/ruby /usr/local/lib/ruby/gems/1.9.1

中引用 gem

现在,jQuery 在 recompile 之后可以正常工作了 :)

对于这种情况,我怎样才能保存整个应用程序包和用于它的gem?

我想做的是,我只想设置 Ruby 的正确版本和 MySQL.
然后我想把这个包放进去开始编码,而不是部署gems的环境!!

谁能分享一下这方面的想法?

推荐答案

回答你的问题

Bundler 的 bundle package --all 命令会将所有 gem 文件锁定并缓存到 ./vendor/cache,您可以运行 bundle install --local,这样它以后就不会检查 ruby​​gems.org.

对您的问题的评论

这个问题让我感到畏缩,因为虽然我理解拥有一个你知道有效的"基础图像"的兴趣,但听起来一些问题会蔓延到其他项目.

  1. 负担过重的应用程序
    • 每个项目真的需要所有相同的依赖项吗?
    • 如果不是,那么您在每次安装时都带有不必要的依赖项.
  2. 脆弱的依赖
    • 您提到您的依赖关系相互之间非常敏感,这引发了警报.
    • 我不完全理解你的意思,但听起来你应该考虑找到具有更稳定接口的依赖项.
    • 查看 ruby​​-toolbox.com 并密切关注"发布"日期.
  3. 过时的依赖项
    • 锁定版本意味着您的新应用程序将无法从维护者的更新中受益.
    • (示例)如果您将 Rails 依赖项锁定到 3.2.8 并继续使用它,您(和客户)就会面临几个主要的安全漏洞.
    • (可能修复)查看 悲观版本约束 以允许您的应用程序接收非- 重大修复.

祝你好运.

本文地址:https://www.itbaoku.cn/post/786553.html