Ottenere un errore “cattivo interprete” quando si usa la birra

Sto ricevendo questo errore quando provo a eseguire un comando 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 per molto tempo senza una risposta.

Quello che stai ricevendo significa che Homebrew non è stato in grado di localizzare l’interprete Ruby nella posizione specificata.

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

Se hai già installato Xcode, significa che sta accadendo una di queste cose:

  1. Hai una installazione Ruby rotta
  2. Hai più di una installazione di Ruby
  3. L’installazione non è stata configurata correttamente.

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

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

Se non hai mai manomesso l’installazione di Ruby, puoi verificare se esiste già /usr/bin/ruby : cat /usr/bin/ruby . Se non si ottiene No such file or directory , è ansible creare facilmente un collegamento simbolico all’installazione di Ruby. Supponendo che l’output di which ruby in /usr/local/bin/ruby , si crea il collegamento simbolico in questo modo: sudo ln -s /usr/local/bin/ruby /usr/bin/ruby e tutto dovrebbe andare bene.

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

Puoi rimediare a ciò eliminandolo prima ( sudo rm /usr/bin/ruby ) e quindi creando un nuovo link simbolico nella posizione corretta ( sudo ln -s /usr/local/bin/ruby /usr/bin/ruby ).

Se non funziona, dovresti consultare il team di homebrew dopo un’installazione pulita di Xcode e rimuovere qualsiasi traccia di un’installazione di Ruby sul tuo sistema.

MODIFICARE

In alternativa, come sottolineato dalle altre risposte, il problema potrebbe essere dovuto alla ctriggers versione ruby ​​nelle impostazioni Homebrew.

Una soluzione rapida potrebbe essere l’aggiornamento del tuo Homebrew:

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

Se questo non aiuta, potresti voler sporcarti le mani e risolvere il problema manualmente:

  1. Modifica brew.rb da /user/local/Library/brew.rb
  2. Modifica di /1.8/ in /Current/ nella prima riga, che farà sì che l’hashbang punti alla versione corrente di Ruby come esecutore

Se questo non aiuta, puoi anche modificare il controllo MACOS e cambiarlo da 10.5 a 10 per evitare l’infame errore “Homebrew richiede Leopard o superiore”.

NEGAZIONE

Un sacco di ringraziamenti ad altri contributori nelle risposte qui sotto e ai loro commentatori. Non sto commettendo un plagio, semplicemente aggregando le risposte in un articolo integrato per aiutare gli altri.

Ho ricevuto 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: interprete non valido: nessun file o directory / usr / local / bin / brew: riga 26: /usr/local/Library/brew.rb: errore non definito: 0

e risolto dalla soluzione seguente:

  1. Apri brew.rb :

     $ sudo vim /usr/local/Library/brew.rb 
  2. Cambia il 1.8 della prima riga in 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 

Quindi brew per me. Spero che sia d’aiuto se qualcun altro ha questo problema. 🙂


Se ottieni l’errore

Homebrew richiede Leopard o superiore. Per il supporto Tiger, consultare: https://github.com/mistydemeo/tigerbrew

cambia il controllo MACOS da <10.5 a <10 .

Suggerimento di @TimCastelijns:

10.5 non funziona perché in confronto è superiore a 10.10 (.1 vs .5). Ho aggiunto un controllo ( and MACOS_VERSION != 10.10 ) invece di ridurre da 10.5 a 10.

Ciò è accaduto perché avevo bisogno di aggiornare brew – nella versione aggiornata utilizza già il ruby corrente

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

Questo ha risolto il problema

Difficoltà:

 sudo gem install cocoapods 

A rischio di semplificare eccessivamente le cose, prova a correre

 gem install bundler 

Stavo passando il mio ambiente Ruby da RBENV a RVM e ha funzionato per me.

Nessuno dei precedenti ha funzionato per me, quindi ho continuato a navigare e ho trovato questa risposta, https://stackoverflow.com/a/24225960/1359088 che ha risolto il problema per me. Dice al punto 1 di installare XCode 6 strumenti da riga di comando, ma non dice come; usa questo comando:

 xcode-select --install 

Dopo aver effettuato l’aggiornamento a macOS High Sierra, ripristinalo con i seguenti comandi:

sudo gem installa cocoapods

Ho avuto lo stesso problema con l’aggiornamento a MacOSX High Sierra e l’utilizzo di 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 e fornisce un interprete non valido. Vai al Terminale e corri

 sudo gem install xcpretty 

Riavvia Xcode e fai una nuova costruzione pulita funziona per me. Spero che sia d’aiuto!!!