Domanda

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 ora in dettaglio. Non sono sicuro di quali informazioni siano pertinenti, quindi dirò tutto.

  1. Recentemente ho aggiornato da OS X Snow Leopard a Lion (aggiornato anche Xcode a 4.2)
  2. Tutto ha funzionato alla perfezione per un po '
  3. Oggi ho deciso di installare alcune gemme (RSpec, Cucumber) e ho iniziato a ricevere avvisi sul formato della data ogni volta che facevo qualcosa con RubyGems
  4. Ho deciso di aggiornare RubyGems, dalla 1.3.6 (non sono sicuro qui) all'attuale 1.8.11
  5. L'avviso continuava a comparire, quindi ho provato a rimuovere il gemset con rvm gemset empty, anch'esso fallito, a causa di un errore di autorizzazione negata (sì stupido, non l'ho annotato)
  6. In conseguenza di ciò, ho reinstallato Ruby tramite rvm remove 1.9.2 e rvm install 1.9.2 (non ho dimenticato di rvm use 1.9.2 --default in seguito.
  7. Ho installato il bundler gem install bundle e poi ho provato a bundle install nel mio progetto Rails 3.1.1, ma si è concluso con un errore

    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' restituisce l'errore di cui sopra

  9. Il file README dice di scaricare il sorgente e installarlo da lì tramite ruby install.rb, che termina anch'esso con un errore

    $ 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. Anche l'esecuzione di test con rubyzip finisce in un mucchio di errori

    $ 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. Sono a corto di idee, cosa posso fare?

È stato utile?

Soluzione

Non sono davvero sicuro di cosa abbia causato questo problema, ma sono riuscito a risolverlo procedendo come segue.

Dato che reinstallare Ruby 1.9.2 non ha aiutato, ho deciso di essere ancora più drastico e sono passato a rvm.Ho scoperto di avere installato la versione 1.1., Che risale a circa 9 mesi fa.

Ho provato ad aggiornare, ma non ha aiutato, quindi rvm implode ha funzionato.Ho persino dovuto generare un codice tag, probabilmente perché sono riuscito a rovinare alcune installazioni di gem aggiungendo sudo rm -rf ~/.rvm.

Dopo aver reinstallato sudo e reinstallato 1.9.2, sembra che tutto funzioni bene ora, anche con Xcode 4.2.

La lezione appresa, generare codice tag e reinstallare è meglio che provare a eseguire l'aggiornamento da una versione vecchia di un anno :)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top