Come ottenere Ruby / Homebrew / RVM per lavorare su Yosemite?

Dopo aver installato Yosemite, non sono stato in grado di eseguire brew o ruby.

Stavo ricevendo questo errore sull’aggiornamento di Brew:

/usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory /usr/local/bin/brew: line 23: /usr/local/Library/brew.rb: Undefined error: 0 

ottenendo questo errore su irb:

 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:245:in mkdir': Permission denied - /Library/Ruby/Gems/2.0.0/extensions/universal-darwin-14 (Errno::EACCES) from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:245:infu_mkdir' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:219:in block (2 levels) in mkdir_p' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:217:inreverse_each' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:217:in block in mkdir_p' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:203:ineach' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:203:in mkdir_p' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:210:inwrite_gem_make_out' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:132:in build_error' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:171:inrescue in build_extension' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:156:in build_extension' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:198:inblock in build_extensions' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:195:in each' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:195:inbuild_extensions' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:1436:in block in build_extensions' from /Library/Ruby/Site/2.0.0/rubygems/user_interaction.rb:45:inuse_ui' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:1434:in build_extensions' from /Library/Ruby/Site/2.0.0/rubygems/stub_specification.rb:60:inbuild_extensions' from /Library/Ruby/Site/2.0.0/rubygems/basic_specification.rb:56:in contains_requirable_file?' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:925:inblock in find_inactive_by_path' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:924:in each' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:924:infind' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:924:in find_inactive_by_path' from /Library/Ruby/Site/2.0.0/rubygems.rb:185:intry_activate' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:150:in block in search_file' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:158:inblock in each_localized_path' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:167:in each_sublocale' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:157:ineach_localized_path' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:145:in search_file' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:124:infind' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:108:in load' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:32:ininitialize' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/init.rb:114:in new' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/init.rb:114:ininit_config' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/init.rb:16:in setup' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb.rb:380:instart' from /usr/bin/irb:12:in `' 

Questo errore può essere facilmente risolto nei seguenti passaggi:

1) Aprire il terminale

2) Digitare nano /usr/local/Library/brew.rb

3) Nella prima riga cambia “1.8” in “Corrente”, quindi dovrebbe apparire così:

 #!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0 

tramite http://blog.ic3man.gr/2014/06/homebrew-ruby-bad-interpreter-no-such-file-or-directory/

Ho aggiornato a Yosemite e in seguito ho scoperto che la brew era rotta.

 /usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory /usr/local/bin/brew: line 23: /usr/local/Library/brew.rb: Undefined error: 0 

Se non hai ancora apportato alcuna modifica al brew, ecco cosa consiglio. Altrimenti leggi più sotto.

  1. cd /System/Library/Frameworks/Ruby.framework/Versions/
  2. sudo ln -s Current 1.8
  3. brew update
  4. sudo unlink 1.8

Già fatto modifiche per preparare file e bloccato in un casino git?

Ho provato a modificare /usr/local/Library/brew.rb ma la modifica locale al mio repository git ha impedito l’ brew update dagli aggiornamenti. Ho provato alcune altre soluzioni menzionate in questa pagina e da altri siti e ho finito con un pasticcio e tutto ciò che volevo era annullare tutto quello che avevo fatto per preparare.

Ho commesso il mio cambiamento ma ha peggiorato le cose. Alla fine ho dovuto annullare i miei commit e git reset --hard HEAD~1 fino a quando non ero al commit-ish giusto. Ho avuto anche un pasticcio di file non modificati (ho cambiato i permessi dei file in / usr / Local), quindi ho fatto un git clean -f -d che rimuoveva tutti i file e le directory non rivisti e mi riportava a dove avevo iniziato prima di apportare qualsiasi modifica.

Passaggi per risolverlo:

  1. Installa strumenti da riga di comando per Xcode 6

  2. Reinstallare la birra:

     ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 
  3. Una volta installato brew, rvm funzionerà:

     rvm install ruby 

Ha funzionato per me, yahoo!

Modificare lo script significa che l’ brew update non funzionerà; ci sono modifiche locali ai file tracciati che causano il fallimento di git pull .

L’ho fatto, che sospetto sia più pulito:

 cd /usr/local/Library git pull -q origin refs/heads/master:refs/remotes/origin/master 

Non ci sono lamentele da parte del brew doctor .

Questo è un conglomerato derivante dalle risposte dei post di altre persone e un po ‘di ricerche su Google, ma ho pensato di metterlo in una risposta così completa in un unico punto. In particolare, ora le cose funzionano, ma ti consente anche di preparare gli aggiornamenti normalmente e tutto torna pulito.

  1. Apri /usr/local/Library/brew.rb (emacs / vi / nano / qualunque)
  2. Modifica la prima riga da leggere: #!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0 . Stai solo cambiando il “1.8” che era in quella linea su “Current” (assicurati di mantenere la “C” maiuscola altrimenti git si confonderà più tardi).
  3. cd $(brew --repository)
  4. git add Library/brew.rb
  5. git commit -m "upgrading to ruby 2.0"
  6. brew update (o sudo brew update se il tuo brew è configurato per fare solo cambiamenti di sistema con sudo)

Credito: molto di questo è venuto da qui , anche se consiglio davvero di non fare git commit -am nella cartella / usr / local.

Come quello che ho detto prima: 1) Cambia in corrente 2) installa xcode 6

Se ora hai ulteriori problemi con brew e ruby ​​questo dovrebbe aiutare: In qualche modo brew ha bisogno di ruby ​​nella versione 1.8, quindi crea la cartella:

 sudo mkdir -p /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin 

e crea un link simbolico:

 sudo ln -s /usr/bin/ruby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby 

Dai un’occhiata a questo tutorial qui: http://ryantvenge.com/2014/09/ruby-homebrea-yosemite/

Ha funzionato per me!

Ho risolto questo come segue:

  1. sudo chown -R $(whoami):admin /usr/local
  2. cd $(brew --prefix) && git fetch origin && git reset --hard origin/master

brew update error può essere corretto con questo:

 sudo chown -R $USER:admin /usr/local cd /usr/local git reset --hard origin/master brew update 

https://github.com/Homebrew/homebrew/issues/19140

Nota: esegui la seguente procedura solo se finisci in uno stato completamente fallito, poiché questo è molto PERICOLOSO

Come un esempio ho continuato a ottenere

$ sudo ln -s Corrente 1.8

$ brew update

/usr/local/Library/brew.rb:18:in ‘: aiuto metodo non definito?’ per [“aggiornamento”]: Array (NoMethodError)

Ho appena ottenuto questo … (non importa quale comando basta cambiare “aggiornamento” con il comando) Ho risolto il problema chiedendo un amico /usr/local cartella /usr/local . Ho quindi fatto un backup della mia /usr/local .

sudo mv / usr / local /usr/local.orig

Ho quindi spostato il suo /usr/local al mio

sudo mv ~ / Downloads / local / usr / local

Nota: è probabile che perderà alcuni dati, quindi assicurati di fare un backup.

Ho avuto problemi nel tentativo di installare Ruby usando i gestori di pacchetti. In tutta onestà a questi programmi, ammetto di avere poca esperienza con loro e non ho fatto lo sforzo di scavare più a fondo come ha fatto la maggior parte degli altri soccorritori. Sono pigro e preferisco usare un programma di installazione binario disponibile per la maggior parte delle opzioni opsys e molti pacchetti. Sfortunatamente, Ruby non sembra fornirne uno.

Ho trovato ruby-build facile da installare (stand alone – non il plugin), e ha costruito Ruby da fonti senza errori e lo ha posizionato dove volevo.

Bingo – facile 🙂 Questa sembra una buona alternativa per quelli di noi del gestore di pacchetti che hanno sfidato la persuasione.

Charlie