Не удается установить RubyZip gem на OS X Lion с RVM - PullRequest
1 голос
/ 20 октября 2011

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. Сегодня я решил установить некоторые гемы (RSpec, Cucumber), и я начал получать предупреждения о формате даты всякий раз, когда я что-то делал с RubyGems
  4. Я решил обновить RubyGems, с 1.3.6 (я не уверен здесь) до текущей версии 1.8.11
  5. Предупреждение продолжало появляться, поэтому я попытался удалить gemset с помощью rvm gemset empty, что также не удалось из-за какой-то ошибки в разрешении (да, глупо, я не записал ее)
  6. В результате этого я переустанавливал Ruby через rvm remove 1.9.2 и rvm install 1.9.2 (после этого я не забыл rvm use 1.9.2 --default.
  7. Я установил пакет gem install bundle, а затем попытался bundle install в моем проекте Rails 3.1.1, но это заканчивается ошибкой

    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. Файл README сообщает о необходимости загрузить исходный код и установить оттуда через 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. Даже выполнение тестов для rubyzip приводит к куче ошибок

    $ 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. У меня нет идей, что я могу сделать?

1 Ответ

2 голосов
/ 21 октября 2011

Я действительно не уверен, что вызвало это, но мне удалось исправить это, выполнив следующее.

Поскольку переустановка Ruby 1.9.2 не помогла, я решил быть еще более радикальным и перешел на rvm. Я узнал, что у меня установлена ​​версия 1.1. Что-то около 9 месяцев.

Я пытался обновить, но это не помогло, поэтому rvm implode добился цели. Мне даже пришлось sudo rm -rf ~/.rvm, вероятно, потому что мне удалось испортить некоторые установки гемов, добавив к ним sudo.

После переустановки rvm и переустановки 1.9.2 кажется, что теперь все работает нормально, даже с Xcode 4.2.

Извлеченный урок, rm -rf & переустановка лучше, чем попытка обновления с годичной версии:)

...