我意外地运行'宝石更新'可以还原吗?

时间:2016-01-20 23:37:24

标签: ruby-on-rails rubygems

我运行'gem update'试图修复我正在处理的其他应用中的问题。现在我的主应用程序无法正常工作,因为我有一堆太新的宝石。有没有办法撤消宝石更新?或者将我的宝石还原到我团队的Gemfile.lock文件中提到的版本?

更新:当我尝试运行'rake spec'时,它特别抱怨Rake (Gem :: LoadError:你已经激活了rake 10.5.0,但你的Gemfile需要rake 10.4.2。在命令前加bundle exec可以解决这个问题。)

2 个答案:

答案 0 :(得分:4)

如果您当前拥有的gem的版本比Gemfile.lock中指定的更新,那么使用Gemfile.lock中提到的版本重写Gemfile并运行bundle install就足够了。

我在本地测试了这个(降级了Gemfile.lock和Gemfile中的一个版本),bundler安装了旧版本没有问题。

答案 1 :(得分:2)

运行' gem uninstall rake'如果您有多个版本,它会询问您要删除的内容。

然后运行' gem install rake -v 10.4.2'安装正确的版本。

为我工作,而不是捆绑更新所有东西的风险要小得多。