web-dev-qa-db-fra.com

Obtenir une erreur "mauvais interprète" lors de l'utilisation de la bière

Je reçois cette erreur lorsque j'essaie d'exécuter une commande d'infusion.

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

Je ne sais absolument pas comment résoudre ce problème et je cherche depuis longtemps sans réponse.

Ce que vous obtenez signifie qu'Homebrew n'a pas été en mesure de localiser l'interpréteur Ruby à l'emplacement spécifié.

Installez le kit de développement Apple (fourni avec Xcode) qui devrait vous être proposé en option (ou vous pouvez simplement le télécharger à partir d’Apple). Cela installera l’interprète Ruby pour vous.

Si Xcode est déjà installé, cela signifie que l'une des choses suivantes se produit:

  1. Vous avez une installation Ruby cassée
  2. Vous avez plus d'une installation Ruby
  3. Votre installation n'a pas été configurée correctement.

Pour identifier s'il s'agit du premier cas, vous pouvez exécuter Ruby et voir si vous obtenez une réponse.

Sinon, votre installation est défectueuse et vous devez la réinstaller. Si vous le faites, vous exécutez alors which Ruby. Cela devrait vous donner le chemin absolu vers votre exécutable Ruby. S'il ne s'agit pas de /usr/bin/Ruby, homebrew (et plusieurs autres programmes) ne pourra pas le trouver.

Si vous n'avez jamais altéré votre installation Ruby, vous pouvez vérifier si /usr/bin/Ruby existe déjà ou non: cat /usr/bin/Ruby. Si vous obtenez No such file or directory, vous pouvez facilement créer un lien symbolique vers votre installation Ruby. En supposant que la sortie de which Ruby à par /usr/local/bin/Ruby, vous créez le lien symbolique de cette façon: Sudo ln -s /usr/local/bin/Ruby /usr/bin/Ruby et tout devrait bien se passer.

Si un fichier se trouve à cet emplacement, vous pouvez exécuter file /usr/bin/Ruby pour voir s'il s'agit d'un fichier réel, d'un lien symbolique ou d'un fichier corrompu. S'il s'agit d'un lien symbolique, votre installation devrait fonctionner et, comme ce n'est pas le cas, il s'agit probablement d'un lien symbolique corrompu ou d'un fichier factice.

Vous pouvez remédier à cela en le supprimant d'abord (Sudo rm /usr/bin/Ruby) puis en créant un nouveau lien symbolique vers l'emplacement correct (Sudo ln -s /usr/local/bin/Ruby /usr/bin/Ruby).

Si ce n’est pas le cas, vous devriez consulter l’équipe homebrew après une nouvelle installation de Xcode et l’élimination de toute trace d’une installation Ruby sur votre système.

MODIFIER

Alternativement, comme indiqué dans les autres réponses, le problème peut être dû à une mauvaise version de Ruby dans vos paramètres Homebrew.

Une solution rapide pourrait être de mettre à jour votre Homebrew:

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

Si cela ne vous aide pas, vous voudrez peut-être vous salir les mains et résoudre le problème manuellement en:

  1. Modification de brew.rb à partir de /user/local/Library/brew.rb
  2. Remplacer /1.8/ par /Current/ dans la première ligne, ce qui fera pointer hashbang sur la version actuelle de Ruby en tant qu'exécuteur

Si cela ne résout pas le problème, vous pouvez également modifier le contrôle MACOS et le remplacer de 10.5 à 10 pour éviter la fameuse erreur «Homebrew requiert Leopard ou une version ultérieure».

AVERTISSEMENT

Un grand merci à d'autres contributeurs dans les réponses ci-dessous et à leurs commentateurs. Je ne commets pas de plagiat, je regroupe simplement les réponses en un seul article intégré pour aider les autres.

42
Milad Naseri

J'ai cette erreur (à peu près la même chose):

/ usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/Ruby: interprète incorrect: Aucun fichier ni répertoire de ce type/usr/local/bin/brew: ligne 26: /usr/local/Library/brew.rb: erreur non définie: 0

et fixé par la solution ci-dessous:

  1. Ouvrez brew.rb:

    $ Sudo vim /usr/local/Library/brew.rb
    
  2. Modifiez la 1.8 de la première ligne en Current:

    Avant:

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

    Après:

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

Alors brew fonctionne pour moi. J'espère que ça aide si quelqu'un d'autre a ce problème. :)


Si vous obtenez l'erreur 

Homebrew nécessite Leopard ou supérieur. Pour le support Tiger, voir: https://github.com/mistydemeo/tigerbrew

remplacez la vérification MACOS de <10.5 par <10.

Conseil de @TimCastelijns:

10.5 ne fonctionne pas car en comparaison, il est supérieur à 10.10 (.1 vs .5). J'ai ajouté un chèque (and MACOS_VERSION != 10.10) au lieu d'abaisser de 10,5 à 10.

62
Kjuly

Réparer:

Sudo gem install cocoapods
7
Shobhit C

Cela s’est produit parce que j’avais besoin de mettre à jour brew. Dans la version mise à jour, il utilise déjà Current Ruby.

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

Cela a résolu le problème

7
mcfedr

Au risque de trop simplifier les choses, essayez de courir

gem install bundler

Je faisais la transition de mon environnement Ruby de RBENV à RVM et cela a fonctionné pour moi.

5
Nick Sarafa

Après la mise à niveau vers macOS High Sierra, réglez-le avec les commandes suivantes:

Sudo gem installer des cocoapods

0
Balamurugan

Tout ce qui précède n'a pas fonctionné pour moi, j'ai donc continué à naviguer sur Internet et j'ai trouvé la réponse suivante: https://stackoverflow.com/a/24225960/1359088 À l'étape 1, il dit d'installer les outils de ligne de commande XCode 6, mais il ne dit pas comment; utilisez cette commande:

xcode-select --install
0
James Toomey