Pregunta

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

Y ahora en detalle.No estoy seguro de qué información es relevante, así que solo lo diré todo.

  1. Recientemente actualicé de OS X Snow Leopard a Lion (también actualicé Xcode a 4.2)
  2. Todo funcionó bien por un tiempo
  3. Hoy decidí instalar algunas gemas (RSpec, Cucumber), y comenzó a recibir advertencias de formato de fecha cada vez que hacía algo con RubyGems
  4. Decidí actualizar RubyGems, de 1.3.6 (no estoy seguro aquí) a la actual 1.8.11
  5. La advertencia seguía apareciendo, así que intenté quitar el gemset con rvm gemset empty, que también falló, debido a un error de permiso denegado (sí, estúpido, no lo escribí)
  6. Como resultado de eso, yo Ruby reinstalado vía rvm remove 1.9.2 y rvm install 1.9.2 (No me olvidé de rvm use 1.9.2 --default después de eso.
  7. Instalé bundler gem install bundle y luego trató de bundle install en mi proyecto Rails 3.1.1, pero termina con error

    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' da el error mencionado anteriormente

  9. El archivo LÉAME dice que descargue la fuente e instale desde allí a través de ruby install.rb, que también termina en error

    $ 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. Incluso ejecutar pruebas para rubyzip termina en un montón de errores

    $ 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. No tengo ideas, ¿qué puedo hacer?

¿Fue útil?

Solución

Realmente no estoy seguro de qué causó esto, pero logré solucionarlo haciendo lo siguiente.

Dado que reinstalar Ruby 1.9.2 no ayudó, decidí ser aún más drástico y bajé a rvm.Descubrí que tenía la versión 1.1.algo instalado, que tiene unos 9 meses.

Intenté actualizar, pero no ayudó, así que rvm implode hizo el truco.Incluso tuve que sudo rm -rf ~/.rvm, probablemente porque logré estropear algunas instalaciones de gemas agregando sudo a ellos.

Después de reinstalar rvm y reinstalando 1.9.2, parece que todo funciona bien ahora, incluso con Xcode 4.2.

Lección aprendida, rm -rf & reinstalar es mejor que intentar actualizar desde una versión anterior :)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top