【问题标题】:Two versions of rake installed = errors安装了两个版本的 rake = 错误
【发布时间】:2024-01-20 03:00:01
【问题描述】:

我刚刚升级到 ruby​​ 1.9.3 和 rails 3.2.2。我正在尝试创建此应用程序:

rails new myapp -m https://github.com/RailsApps/rails3-application-templates/raw/master/rails3-mongoid-omniauth-template.rb -T -O

在安装结束时它给了我错误:

The template [https://github.com/RailsApps/rails3-application-templates/raw/master/rails3-mongoid-omniauth-template.rb] could not be loaded. Error: You have already activated rake 0.9.2, but your Gemfile requires rake 0.9.2.2. Using bundle exec may solve this.

如果我执行 RVM gem list 或 gem list,我会得到两个版本的 rake:

rake (0.9.2.2, 0.9.2)

我如何告诉 RVM 或我必须告诉的任何内容,只使用最新的?

【问题讨论】:

  • 你能卸载一个吗?也许你的 1.9.3 没有同时安装?
  • 我不知道...可以吗?我该怎么做?
  • 你试过gem uninstall吗?还是按照错误信息使用 bundle exec?
  • 我刚刚做了:rvm remove rake-0.9.2,但它删除了最新的 rake 版本,rake-0.9.2.2!这是怎么回事?
  • rvm remove 用于删除 Ruby 解释器、它们的源代码和相关的 gemset。 gem uninstall 用于卸载 gem。在我看来,您对哪些命令属于rubygem 以及哪些属于rvm 有点困惑。 (如果您主要是通过环境管理器来认识 Ruby,这可能会有点混乱。)

标签: ruby-on-rails ruby rake version rvm


【解决方案1】:

你应该在你的包的上下文中运行它。

bundle exec rails new myapp -m https://github.com/RailsApps/rails3-application-templates/raw/master/rails3-mongoid-omniauth-template.rb -T -O

【讨论】:

  • 然后它只是给我:找不到 Gemfile
  • bundle 还不能运行,因为 Gemfile 还没有被创建
  • 哦,我只是认为它存在,因为 Rails 3 默认使用 Bundler,因此应该存在 Gemfile
【解决方案2】:

在您的Gemfile 中明确说明您想要的版本。

gem "rake", "0.9.2"

更新您的Gemfile.lock

$ bundle update

删除你不想要的版本。

$ gem uninstall rake -v 0.9.2.2

您可以根据您实际想要使用的宝石来反转这些数字。

【讨论】:

  • 会尝试的。吉米 5 秒。我仍然想知道如何将其从 rvm gem 文件中删除,以便在实际创建应用程序时不会出错?
  • 这似乎有效......不过仍然想知道上述问题!
  • 如果你真的想解决这个问题,可能不得不深入研究rvm。我认为问题在于默认的 rake 版本不是最新的,这与默认的 Rails 设置冲突。不过,它只会影响项目的创建,因为一旦您构建了 Gemfile,您就可以准确地指定您想要的版本。
  • 在我一位很棒的程序员朋友的帮助下,我终于解决了这个问题。在我的 ruby​​ 开发人员环境中,有超过 2 个 rake 版本出错。这是肯定的! :-P
  • @Steven 如果gem uninstall rake -v 0.9.6 没有删除该版本的gem,您应该收集尽可能多的信息(gem env 等)并发布一个单独的问题。不过先搜索一下,因为我确信我之前已经看到过这个问题。