Impossibile installare RubyZip gem su OS X Lion con RVM
-
27-10-2019 - |
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.
- Recentemente ho aggiornato da OS X Snow Leopard a Lion (aggiornato anche Xcode a 4.2)
- Tutto ha funzionato alla perfezione per un po '
- 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
- Ho deciso di aggiornare RubyGems, dalla 1.3.6 (non sono sicuro qui) all'attuale 1.8.11
- 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) - In conseguenza di ciò, ho reinstallato Ruby tramite
rvm remove 1.9.2
ervm install 1.9.2
(non ho dimenticato dirvm use 1.9.2 --default
in seguito. -
Ho installato il bundler
gem install bundle
e poi ho provato abundle install
nel mio progetto Rails 3.1.1, ma si è concluso con un erroreInstalling 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.
-
gem install rubyzip -v '0.9.4'
restituisce l'errore di cui sopra -
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>'
-
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)
Sono a corto di idee, cosa posso fare?
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 :)