在我知道最近周五工作的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。改变了什么?
答案 0 :(得分:1)
您似乎没有使用RVM。我强烈建议安装它。
假设您安装了RVM,例如安装了Ruby 1.9.2-p180,我会执行以下操作:
创建my_project gemset:
rvm gemset create my_project
在项目文件夹中创建一个.rvmrc
文件,其中包含以下行:
rvm use 1.9.2-p180@my_project
cd .
并接受所有提示; 安装bundler
gem:
gem install bundler
bundle
命令。这应该可以解决问题。在我的例子中,我坚持使用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。