从3.2.3升级到3.2.11



我正在将我的应用程序Rails应用程序从3.2.3升级到3.2.11,以解决最近发现的安全漏洞。

我已经更新了我的Gem文件:gem 'rails', '3.2.11'运行bundle update rails

我还需要做什么来完成升级吗?我怎么知道我是否也需要升级其他宝石?

我昨天也从3.2.3升级到3.2.11了。

你确实需要gem 'rails', '3.2.11',运行bundle update rails

这将更新你的Gemfile.lock与所有新的rails 3.2.11依赖,即actionmailer, actionpack, activmodel, activerecord, activessupport,和其他。

你应该运行你的规格/测试,然后你就可以开始了。

这确实是运行bundle update rails的解决方案之一,但在这种情况下,您将安装两个版本的gems - 3.2.3和3.2.11(您可以通过运行gem list来检查它),因此您需要手动卸载它们。我认为最好是:

  1. 从当前gemset中删除所有已安装的gem(如果没有rvm,那么我认为与bundle update rails没有太大区别)

    rvm gemset empty your_gemset_name

  2. 安装所有你需要的Gemfile中没有提到的gem(可能是rake, bundler,也许是其他一些)。例如,如果你在全局gemset中安装了所有的gem,那么所有的gem都会被删除,包括bundler,所以你必须先重新安装它:

    gem install rake

    gem install bundler

  3. 在bundler的帮助下安装gems

    bundle install

  4. 运行测试

  5. 如果测试没有覆盖100%的代码,则手动检查功能

通过这种方式,你将自动摆脱不必要的旧版本的gems,并且在bundle install期间,bundler会告诉你是否有任何不匹配的gems版本。

当我更新rails时,我像你一样做同样的事情

gem 'rails', 'VERSION'

这就够了。如果我不确定,我可以执行以下步骤来了解gem的依赖关系:

<标题> 1

检查gem页面(在我的情况下主要是git页面)

<标题> 2 h1> 行我的测试用例,看看是否发生与新rails版本相关的错误 <标题> 3 手动测试宝石,通常情况下,你的页面上可能有1-2个功能的小宝石。点击它们就可以了。

在你的情况下,我会说这是一个小小的更新,所以不要担心这么多,只是想一下每个宝石正在做什么和快速测试!比起新版本,gem更容易处理旧版本的rails。

我今天也升级到rails 3.2.11。在更改gem文件并运行bundle update rails之后,我现在运行gem list并发现我安装了rails 3.2.9和3.2.11。我还发现了其他需要清理的宝石。这是我找到的一篇关于清理旧版本的帖子:卸载旧版本的Ruby gems。

相关内容

  • 没有找到相关文章

最新更新