【问题标题】:Can't install RubyZip gem on OS X Lion with RVM无法在带有 RVM 的 OS X Lion 上安装 RubyZip gem
【发布时间】:2011-10-20 01:52:27
【问题描述】:

TL;DR

$ gem install rubyzip 
ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted - /Users/darth/.rvm/gems/ruby-1.9.2-p136/gems/rubyzip-0.9.4/README

现在详细说一下。我不确定哪些信息是相关的,所以我只想说出来。

  1. 我最近从 OS X Snow Leopard 升级到了 Lion(也将 Xcode 升级到了 4.2)
  2. 在一段时间内一切正常
  3. 今天我决定安装一些 gem(RSpec、Cucumber),并且每当我使用 RubyGems 执行任何操作时,我开始收到日期格式警告
  4. 我决定将 RubyGems 从 1.3.6(我不确定)更新到当前的 1.8.11
  5. 警告不断弹出,所以我尝试使用 rvm gemset empty 删除 gemset,但由于某些权限被拒绝错误(是的,愚蠢的我没有写下来),它也失败了
  6. 因此,我通过rvm remove 1.9.2rvm install 1.9.2重新安装了Ruby(之后我没有忘记rvm use 1.9.2 --default
  7. 我在我的 Rails 3.1.1 项目中安装了 bundler gem install bundle,然后尝试 bundle install,但它以错误结束

    Installing rubyzip (0.9.4) 
    Errno::EPERM: Operation not permitted - /Users/darth/.rvm/gems/ruby-1.9.2-p136/gems/rubyzip-0.9.4/README
    An error occured while installing rubyzip (0.9.4), and Bundler cannot continue.
    Make sure that `gem install rubyzip -v '0.9.4'` succeeds before bundling.
    
  8. gem install rubyzip -v '0.9.4' 给出上述错误

  9. 自述文件说要通过ruby install.rb从那里下载源并安装,这也以错误结束

    $ ruby install.rb 
    /Users/darth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/fileutils.rb:841:in `install': wrong number of arguments (4 for 3) (ArgumentError)
    from install.rb:21:in `block in <main>'
    from install.rb:18:in `each'
    from install.rb:18:in `<main>'
    
  10. 即使从 ruby​​zip 执行测试也会出现一堆错误

    $ rake test
    rake/gempackagetask is deprecated.  Use rubygems/package_task instead
    rake/rdoctask is deprecated.  Use rdoc/task instead (in RDoc 2.4.2+)
    /Users/darth/.rvm/rubies/ruby-1.9.2-p136/bin/ruby -C test alltests.rb
    <internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- stdrubyexttest (LoadError)
    from <internal:lib/rubygems/custom_require>:29:in `require'
    from alltests.rb:5:in `<main>'
    rake aborted!
    Command failed with status (1): [/Users/darth/.rvm/rubies/ruby-1.9.2-p136/b...]
    
    Tasks: TOP => test
    (See full trace by running task with --trace)
    
  11. 我没有主意了,我该怎么办?

【问题讨论】:

  • 重新安装后,能否再次检查已安装的 ruby​​gems 版本?有一个更新(几个版本之前)有一个与此类似的证书/权限错误,导致安装 gems 出现问题(应该在最新的 ruby​​gems 中修复)
  • @Jeremy 实际上现在我已经检查过了,我有 ruby​​gems 1.8.10。我不知道我是如何进入 1.8.11 的,但我设法通过重新安装 rvm 和所有 rubies 解决了整个问题。有关详细信息,请参阅发布的答案。

标签: ruby rubygems ruby-1.9 ruby-1.9.2 rubyzip


【解决方案1】:

我真的不确定是什么原因造成的,但我设法通过执行以下操作来解决它。

由于重新安装 Ruby 1.9.2 没有帮助,我决定更加激进并使用 rvm。我发现我安装了 1.1.something 版本,大约 9 个月大。

我尝试更新,但没有帮助,所以 rvm implode 成功了。我什至不得不sudo rm -rf ~/.rvm,可能是因为我设法通过添加sudo 来搞乱一些gem 安装。

重新安装 rvm 并重新安装 1.9.2 后,现在似乎一切正常,即使使用 Xcode 4.2。

经验教训,rm -rf & 重新安装比尝试从一年的旧版本升级要好:)

【讨论】:

  • 很高兴听到这个排序。我非常建议不要以 root 身份安装 rvm 或任何 gem(不使用 sudo 安装),这是推荐的安装方式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-10
  • 2012-01-22
  • 2011-11-16
  • 1970-01-01
  • 2023-03-23
  • 2013-01-17
  • 2012-10-21
相关资源
最近更新 更多