2012-01-14 10 views
23

Viene visualizzato questo errore quando si tenta di eseguire qualsiasi comando brew.Errore di "cattivo interprete" quando si utilizza brew

Holger-Sindbaeks-MacBook-Air:~ holgersindbaek$ brew help 
-bash: /usr/local/bin/brew: /usr/bin/ruby: bad interpreter: No such file or directory 

Non ho assolutamente idea su come risolvere questo problema e ho cercato a lungo senza risposta.

+0

Quale OS X? Hai rimosso il tuo sistema Ruby? –

+0

Onestamente, non ricordo se ho rimosso il mio sistema rubino. Non è più sotto usr/bin/ruby ​​però. E io sono su Mac OSX 10.6. –

+0

Dovrai reinstallarlo, come da XCode/etc., O installarlo se non c'è mai stato (IIRC lo spedisce con esso). Dovrebbe essere rimosso solo se viene sostituito con qualcosa di equivalente a livello operativo per il software OS X che lo utilizza. –

risposta

40

Ciò che si ottiene significa che Homebrew non è stato in grado di individuare l'interprete Ruby nella posizione specificata.

Installare Apple Developer Kit (fornito con Xcode) che dovrebbe essere disponibile come installazione opzionale (o semplicemente scaricarlo da Apple). Questo installerà l'interprete Ruby per te.

Nel caso in cui avete già installato Xcode, questo significa che una di queste cose sta accadendo:

  1. si dispone di un'installazione rotto rubino
  2. si dispone di più di un'installazione di Ruby
  3. L'installazione ha non è stato configurato correttamente.

Per identificare se questo è il primo caso, è possibile eseguire ruby e vedere se si ottiene alcuna risposta.

In caso contrario, l'installazione è interrotta ed è necessario reinstallarlo. Se lo fai, esegui quindi which ruby. Questo dovrebbe darti il ​​percorso assoluto per il tuo eseguibile Ruby. Se questo è qualcosa di diverso da /usr/bin/ruby allora homebrew (e una manciata di altri programmi) non sarà in grado di trovarlo.

Nel caso in cui non si sia mai manomesso l'installazione di Ruby, è possibile verificare se esiste già /usr/bin/ruby: cat /usr/bin/ruby. Se ottieni No such file or directory, puoi facilmente creare un collegamento simbolico all'installazione di Ruby. Supponendo che l'output di which ruby su /usr/local/bin/ruby crei il collegamento simbolico in questo modo: sudo ln -s /usr/local/bin/ruby /usr/bin/ruby e tutto dovrebbe andare bene.

Se esiste un file in quella posizione, è possibile eseguire file /usr/bin/ruby per verificare se si tratta di un file reale, un collegamento simbolico o un file danneggiato. Se è un collegamento simbolico, l'installazione dovrebbe funzionare e, poiché non lo è, probabilmente è un link simbolico corrotto o è un file fasullo.

È possibile risolvere questo problema eliminandolo prima (sudo rm /usr/bin/ruby) e quindi creando un nuovo collegamento simbolico nella posizione corretta (sudo ln -s /usr/local/bin/ruby /usr/bin/ruby).

Se non funziona, consultare il team di homebrew dopo un'installazione pulita di Xcode e la rimozione di eventuali tracce di un'installazione di Ruby sul sistema.

EDIT

In alternativa, come sottolineato dalle altre risposte, il problema potrebbe essere a causa di una versione cattiva rubino nelle impostazioni Homebrew.

Una soluzione rapida potrebbe essere aggiorna il Homebrew:

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

Se questo non risolve il problema, si potrebbe desiderare di sporcarsi le mani e manualmente risolvere il problema:

  1. Editing brew.rb da /user/local/Library/brew.rb
  2. Modifica /1.8/ a /Current/ nella prima riga, che indurrà l'hashbang a puntare alla versione corrente di Ruby come esecutore

Se questo non aiuta, o, è anche possibile modificare il controllo MACOS e cambiarlo da 10,5- per evitare il famigerato "Homebrew richiede Leopard o superiore" errore.

NEGAZIONE

Un gruppo di ringraziamento a altri collaboratori nelle risposte qui sotto ed i loro commentatori. Non sto commettendo un plagio, semplicemente aggregando le risposte in un articolo integrato per aiutare gli altri.

+0

Ma ho già XCode installato, in modo che non dovrebbe essere un problema. –

+0

Esegui 'whereis ruby' e vedi se ottieni'/usr/bin/ruby'. –

+1

Non posso correre dove è rubino, quindi non fa nulla. Posso eseguire quale rubino e poi mi dà "/ usr/local/bin/ruby". –

60

ho ottenuto questo errore (più o meno lo stesso):

/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 26: /usr/local/Library/brew.rb: Undefined error: 0

e sono stabiliti dalla soluzione qui di seguito:

  1. Aperto brew.rb:

    $ sudo vim /usr/local/Library/brew.rb 
    
  2. Modificare la prima riga del 1.8 a Current:

    Prima:

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

    Dopo:

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

Poi brew funziona per me. Spero che sia d'aiuto se qualcun altro ha questo problema. :)


Se si ottiene l'errore

Homebrew requires Leopard or higher. For Tiger support, see: https://github.com/mistydemeo/tigerbrew

cambiamento del check MACOS <10.5-<10.

Tip da @TimCastelijns:

10.5 doesn't work because in comparison, it's higher than 10.10 (.1 vs .5). I added a check (and MACOS_VERSION != 10.10) instead of lowering from 10.5 to 10.

+7

Ottimo! Risolto il problema dopo l'aggiornamento a Yosemite. –

+0

@SebastianWramba cool :) – Kjuly

+0

quando apporto le modifiche suggerite, viene visualizzato l'errore Homebrew richiede Leopard o versioni successive. Per il supporto Tiger, vedi: https://github.com/mistydemeo/tigerbrew – scientiffic

7

Questo è accaduto perché avevo bisogno di aggiornare birra - nella versione aggiornata che utilizza già rubino attuale

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

Questo ha risolto il problema

+0

Ho aggiunto i tuoi punti alla mia risposta sopra.Grazie per il contributo. –

+0

Questo ha funzionato per me grazie, ho dovuto usare 'sudo' per il pull. – BooRanger

+0

Non dovresti aver bisogno di usare sudo, penso che brew doctor aggiusterà i permessi per te ora che ce l'hai in esecuzione – mcfedr

0

Nessuno di quanto sopra ha funzionato per me, quindi ho continuato a navigare e ho trovato questa risposta, https://stackoverflow.com/a/24225960/1359088 che ha risolto brew f o me. Dice al punto 1 di installare XCode 6 strumenti da riga di comando, ma non dice come; utilizzare questo comando:

xcode-select --install 
2

A rischio di semplificare eccessivamente le cose, provare a eseguire

gem install bundler 

stavo transizione il mio ambiente di Ruby da RBENV a RVM e ha funzionato per me.

3

Fix:

sudo gem install cocoapods 
-1

ho avuto lo stesso problema dopo l'aggiornamento a MacOSX High Sierra & usando Xcode 9 con quello. High Sierra aggiorna ruby ​​gem alla versione 2.3 ma il comando xcpreety di Xcode 9 utilizza ancora Ruby 2.0 che non è in grado di trovare ora & fornisce un interprete non valido. Basta andare al Terminal & corsa

sudo gem install xcpretty 

Restart Xcode & fare fresco generazione pulita funziona per me. Spero che aiuti !!!

Problemi correlati