【问题标题】:I ran 'gem update' by accident can i revert it?我不小心运行了“gem update”,我可以恢复它吗?
【发布时间】:2016-01-20 23:37:24
【问题描述】:

我运行了“gem update”来尝试解决我正在开发的另一个应用程序中的问题。现在我的主应用程序无法正常工作,因为我有一堆太新的宝石。有没有办法撤消 gem 更新?或者将我的 gem 恢复到我团队的 Gemfile.lock 文件中提到的版本?

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

【问题讨论】:

  • 你在使用 git 吗?还是其他版本控制?
  • 是的,我正在使用 git。

标签: ruby-on-rails rubygems


【解决方案1】:

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

我在本地对此进行了测试(在 Gemfile.lock 和 Gemfile 中都降级了一个版本),并且 bundler 安装了旧版本没有问题。

【讨论】:

  • 如果您不小心更新了 git checkout -- Gemfile.lock,请使用旧的 Gemfile.lock
  • 我仍然遇到同样的错误。它特别抱怨 Rake “Gem::LoadError:您已经激活了 rake 10.5.0,但您的 Gemfile 需要 rake 10.4.2。在您的命令前添加 bundle exec 可以解决这个问题。”
  • 尝试使用bundle clean 清除gemfile 中未指定的版本。
【解决方案2】:

如果您有多个版本,请运行“gem uninstall rake”,它会询问您要删除哪个版本。

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

为我工作,并且比捆绑更新所有内容的风险要小得多。

【讨论】:

    猜你喜欢
    • 2020-10-26
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多