Pergunta

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

E agora em detalhe. Não tenho certeza de que a informação é relevante, então eu só vou dizer tudo.

  1. Eu recentemente atualizado a partir OS X Snow Leopard para Lion (também atualizou Xcode para 4,2)
  2. Tudo funcionou muito bem por um tempo
  3. Hoje eu decidi instalar algumas jóias (RSpec, pepino), e eu começou a ficar formato de data advertências sempre que eu fazia qualquer coisa com RubyGems
  4. decidi RubyGems de atualização, a partir de 1.3.6 (não tenho certeza aqui) para corrente 1.8.11
  5. O aviso continuou aparecendo, então eu tentou remover o gemset com rvm gemset empty, que também falhou, por causa de alguma permissão negada erro (sim estúpido me não anotá-la)
  6. Em resultado disso, eu reinstalado Rubi através rvm remove 1.9.2 e rvm install 1.9.2 (I não se esqueça de rvm use 1.9.2 --default depois disso.
  7. Eu instalei bundler gem install bundle e depois tentou bundle install em meus Rails 3.1.1 projeto, mas termina com o erro

    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' dá a acima erro mencionada

  9. O arquivo README diz a fonte de download e instalar a partir daí via ruby install.rb, que também termina no erro

    $ 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. testes Mesmo execução fro rubyzip acaba no monte de erros

    $ 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. eu estou fora de ideias, o que posso fazer?

Foi útil?

Solução

Eu não sou realmente certo o que causou isso, mas eu consegui consertá-lo fazendo o seguinte.

Uma vez que reinstalar o Ruby 1.9.2 não ajuda, eu decidi ser ainda mais drástico e desceu para rvm. Eu descobri que eu tinha a versão 1.1.something instalado, que é de cerca de 9 meses de idade.

Eu tentei atualização, mas isso não ajuda, então rvm implode fez o truque. Eu mesmo tive que sudo rm -rf ~/.rvm, provavelmente porque eu consegui estragar algumas instalações gem adicionando sudo a eles.

Depois de reinstalar rvm e reinstalação 1.9.2, parece que tudo está funcionando bem agora, mesmo com o Xcode 4.2.

Lição aprendida, rm -rf & reinstalação é melhor do que tentar atualizar de uma versão anos de idade:)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top