【问题标题】:How to resolve ruby gem conflict involving rake on mac?如何解决涉及 Mac 上 rake 的 ruby​​ gem 冲突?
【发布时间】:2015-07-23 20:56:15
【问题描述】:

我正在尝试在 Mac OSX 下运行 rake,但出现以下错误。

$ rake --trace
rake aborted!
Gem::ConflictError: Unable to activate releasy-0.2.2, because rake-10.3.2 conflicts with rake (~> 0.9.2.2)
/Library/Ruby/Site/2.0.0/rubygems/specification.rb:2112:in `raise_if_conflicts'
/Library/Ruby/Site/2.0.0/rubygems/specification.rb:1280:in `activate'
/Library/Ruby/Site/2.0.0/rubygems.rb:198:in `rescue in try_activate'
/Library/Ruby/Site/2.0.0/rubygems.rb:195:in `try_activate'
/Library/Ruby/Site/2.0.0/rubygems/core_ext/kernel_require.rb:126:in `rescue in require'
/Library/Ruby/Site/2.0.0/rubygems/core_ext/kernel_require.rb:39:in `require'
/Users/Development/RUBY/rakefile:5:in `<top (required)>'
/Library/Ruby/Gems/2.0.0/gems/rake-10.3.2/lib/rake/rake_module.rb:28:in `load'
/Library/Ruby/Gems/2.0.0/gems/rake-10.3.2/lib/rake/rake_module.rb:28:in `load_rakefile'
/Library/Ruby/Gems/2.0.0/gems/rake-10.3.2/lib/rake/application.rb:687:in `raw_load_rakefile'
/Library/Ruby/Gems/2.0.0/gems/rake-10.3.2/lib/rake/application.rb:94:in `block in load_rakefile'
/Library/Ruby/Gems/2.0.0/gems/rake-10.3.2/lib/rake/application.rb:176:in `standard_exception_handling'
/Library/Ruby/Gems/2.0.0/gems/rake-10.3.2/lib/rake/application.rb:93:in `load_rakefile'
/Library/Ruby/Gems/2.0.0/gems/rake-10.3.2/lib/rake/application.rb:77:in `block in run'
/Library/Ruby/Gems/2.0.0/gems/rake-10.3.2/lib/rake/application.rb:176:in `standard_exception_handling'
/Library/Ruby/Gems/2.0.0/gems/rake-10.3.2/lib/rake/application.rb:75:in `run'
/Library/Ruby/Gems/2.0.0/gems/rake-10.3.2/bin/rake:33:in `<top (required)>'
/usr/bin/rake:23:in `load'
/usr/bin/rake:23:in `<main>'

gem list --local 显示

耙子 (10.3.2, 0.9.6, 0.9.2.2)

如何解决我安装的 rake gem 和使用 OSX 部署的 rake gem 之间的冲突?我应该删除最新的更新还是有办法在我的 rake 文件中指定使用最新版本并忽略冲突?

【问题讨论】:

    标签: ruby macos gem


    【解决方案1】:

    如果您尝试在使用 Gemfile 的项目中运行 rake,请尝试以下操作:

    bundle exec rake --trace
    

    这将加载项目所需的 rake 版本,而不是可能发生冲突的版本(如 OSX 默认的 /usr/bin/rake 二进制文件)。

    如果找不到bundle 命令,请执行以下操作:

    gem install bundler
    

    另外,如果这是一个最近的 Rails 应用程序,您也可以像这样使用提供的 binstubs:

    bin/rake --trace
    

    如果这些都不起作用,请尝试使用 RVMChrubyRBEnv 将您的 Ruby 环境与操作系统提供的 Ruby 分开管理。

    【讨论】:

    • 对于后者,在您的 PATH 中添加 ./bin 会有所帮助,这样您就可以运行 rake
    • @MusannifZahir 虽然我同意这很方便,但出于安全原因,我宁愿不这样做。如果我打开一个带有bin/ls 的恶意目录怎么办?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多