Ruby on rails 如何保存整个Rails应用程序包,包括正在使用的gems?
我用了很多宝石。他们对彼此的依赖关系非常敏感。Ruby on rails 如何保存整个Rails应用程序包,包括正在使用的gems?,ruby-on-rails,ruby-on-rails-3,gem,Ruby On Rails,Ruby On Rails 3,Gem,我用了很多宝石。他们对彼此的依赖关系非常敏感。 现在,目前的宝石组合是完美的。我想保存整个应用程序,并在进行下一个项目时重新使用它 正如你所知,宝石在rubygem.org 所以我想保存正在使用的应用程序和gems的整个包。 那么,我不需要关心设置gem,除非我需要新的gem。 我需要关心的只是在下一个项目中编码 有人告诉我使用此命令保存整个应用程序文件夹 bundle install --path=vendor/bundle 在这之后,我的应用程序出了问题:( 重新编译后,jQuery不再工
现在,目前的宝石组合是完美的。我想保存整个应用程序,并在进行下一个项目时重新使用它 正如你所知,宝石在
rubygem.org
所以我想保存正在使用的应用程序和gems的整个包。 那么,我不需要关心设置gem,除非我需要新的gem。 我需要关心的只是在下一个项目中编码 有人告诉我使用此命令保存整个应用程序文件夹
bundle install --path=vendor/bundle
在这之后,我的应用程序出了问题:(
重新编译后,jQuery不再工作了
所以我确实需要用旧的文件夹替换整个应用程序文件夹,它在/usr/local/bin/ruby/usr/local/lib/ruby/gems/1.9.1
现在,jQuery
在重新编译后可以正常工作
在这种情况下,我如何保存应用程序和gems的整个软件包
我想做的是,我只想设置Ruby的正确版本和MySQL。
然后我想把这个包放进去,开始编码,而不是部署关于gems的环境
有人能分享一下这个想法吗?回答你的问题
Bundler的命令会将所有gem文件锁定并缓存到/vendor/cache
,您可以运行bundle install--local
,这样将来就不会检查rubygems.org了
对你的问题的评论
这个问题让我感到畏缩,因为虽然我理解人们对拥有一个你知道有效的“基本形象”的兴趣,但听起来似乎有一些问题会波及到其他项目
超负荷应用
- 每个项目真的需要所有相同的依赖关系吗
- 如果不是,那么您的每个安装都会有不必要的依赖项
脆弱依赖
- 您提到您的依赖关系对彼此非常敏感,这会引起警报
我不完全理解你的意思,但是听起来你应该考虑找到更稳定的接口的依赖关系。
查看ruby-toolbox.com,关注“发布”日期
过时的依赖项
- 锁定版本意味着您的新应用程序将无法从维护人员的更新中获益
- (示例)如果您将rails依赖项锁定到3.2.8并继续使用它,那么您自己(和客户)将面临几个主要的安全漏洞
- (可能的修复)查看以允许您的应用程序接收不中断的修复
祝你好运。谢谢你的回答:)没有人会这样做吗?我真正害怕的是宝石的丢失。它们将来可能会从rubyorg消失,这样我就不能再使用它们了。你们如何处理这个可能的问题?rubygems的政策是不删除内容,所以旧的gems和这些gems的旧版本(几乎)总是可用的。只有极少数情况下,维护人员可能希望删除版本(通过gem-yank
命令),但这通常仅适用于源代码中意外包含密码之类的问题。如果您有某个gem必须是特定版本才能使用代码,您可以在文件中指定确切的版本。但是,我建议尝试为每个新项目使用最新版本,以便您能够及时了解最新的修复。谢谢您的完美回答。我会牢记在心,并决定听从你的建议。谢谢:)刚看到这个,可能很有趣。thoughtbot有一个gem,用于生成rails应用程序,并进行基本更改/填充。