你已经激活了launchy 0.3.7,但你的Gemfile需要launchy 0.4.0

时间:2011-06-03 16:46:44

标签: ruby-on-rails rubygems

在我知道最近周五工作的rails项目中,当我尝试执行任何rake任务时,我突然收到此消息:

You have already activated launchy 0.3.7, but your Gemfile requires launchy 0.4.0. Consider using bundle exec.

我认为奇怪的是我检查了我的Gemfile,我并没有在任何地方调用launchy(虽然它出现在我的Gemfile.lock中)。

当运行bundle show launchy时,它告诉我我正在使用:

Ruby192/lib/ruby/gems/1.9.1/gems/launchy-0.4.0

我已经尝试运行bundle update rake,重新运行bundle install,并使用rake db:create和bundle exec rake db:create。改变了什么?

4 个答案:

答案 0 :(得分:1)

您似乎没有使用RVM。我强烈建议安装它。

假设您安装了RVM,例如安装了Ruby 1.9.2-p180,我会执行以下操作:

  1. 创建my_project gemset:

    rvm gemset create my_project

  2. 在项目文件夹中创建一个.rvmrc文件,其中包含以下行:

    rvm use 1.9.2-p180@my_project

  3. 在项目目录中运行cd .并接受所有提示;
  4. 安装bundler gem:

    gem install bundler

  5. 在项目根目录中运行bundle命令。
  6. 这应该可以解决问题。在我的例子中,我坚持使用RVM,因为它会将所有项目宝石与系统宝石隔离开来。一旦运行bundle命令,Bundler将为您管理依赖项,因此显然不需要在Gemfile中明确指定launchy gem。

答案 1 :(得分:0)

我相信水豚或黄瓜会使用它。除了执行gem uninstall launchy并重新安装您的软件包之外,我建议将其明确添加到您的Gemfile中以避免此问题,因为这里似乎发生了奇怪的事情。例如:

group :test do
  gem 'launcy', '=0.4.0'
end

答案 2 :(得分:0)

在gem文件中,指定所需的确切版本的launchy并运行bundle

答案 3 :(得分:0)

您的系统上是否安装了open_gem?它由rubygems自动加载并需要launchy,导致与bundler的讨厌交互。尝试删除它。

sudo gem uninstall open_gem

有关详细信息,请参阅this blog post