Получение ошибки «плохой интерпретатор» при использовании brew - PullRequest
25 голосов
/ 14 января 2012

Я получаю эту ошибку при попытке выполнить любую команду brew.

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

Я понятия не имею, как это исправить, и долго искал без ответа.

Ответы [ 9 ]

62 голосов
/ 19 октября 2014

Я получил эту ошибку (почти то же самое):

/ usr / local / bin / brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: плохой интерпретатор: такого файла нет или каталог / usr / local / bin / brew: строка 26: /usr/local/Library/brew.rb: неопределенная ошибка: 0

и исправлено решением ниже:

  1. Открыть brew.rb:

    $ sudo vim /usr/local/Library/brew.rb
    
  2. Измените 1.8 первой строки на Current:

    До:

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

    После того, как:

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

Тогда brew у меня работает. Надеюсь, это поможет, если кто-то другой получил эту проблему. :) 1030 * *


Если вы получили ошибку

Для домашнего варки требуется леопард или выше. Для поддержки Tiger см .: https://github.com/mistydemeo/tigerbrew

изменить проверку MACOS с <10.5 на <10.

Подсказка @TimCastelijns:

10.5 не работает, потому что для сравнения он выше, чем 10.10 (.1 против .5). Я добавил чек (and MACOS_VERSION != 10.10) вместо понижения с 10,5 до 10.

43 голосов
/ 14 января 2012

То, что вы получаете, означает, что Homebrew не удалось найти интерпретатор Ruby в указанном месте.

Установите Apple Developer Kit (поставляется с Xcode), который должен быть доступен вам как дополнительная установка (или вы можете просто скачать его с Apple).Это установит для вас интерпретатор Ruby.

Если у вас уже установлен Xcode, это означает, что происходит одно из следующих действий:

  1. У вас сломанная установка Ruby
  2. У вас есть более одной установки Ruby
  3. Ваша установка не была правильно настроена.

Чтобы определить, является ли это первым случаем, вы можете запустить ruby ипосмотрите, получите ли вы какой-либо ответ.

Если вы этого не сделаете, ваша установка не работает, и вам необходимо переустановить ее.Если вы это сделаете, вы запустите which ruby.Это должно дать вам абсолютный путь к вашему исполняемому файлу Ruby.Если это что-то отличное от /usr/bin/ruby, то homebrew (и куча других программ) не сможет его найти.

Если вы никогда не вмешивались в вашу установку Ruby, вы можете проверить, чтобы увидетьесли /usr/bin/ruby уже существует или нет: cat /usr/bin/ruby.Если вы получите No such file or directory, то вы можете легко создать символическую ссылку на вашу установку Ruby.Предполагая вывод от which ruby до /usr/local/bin/ruby, вы создаете символическую ссылку следующим образом: sudo ln -s /usr/local/bin/ruby /usr/bin/ruby и все должно быть в порядке.

Если в этом месте есть файл, вы можете запустить file /usr/bin/ruby чтобы увидеть, настоящий ли это файл, символическую ссылку или поврежденный файл.Если это символическая ссылка, ваша установка должна работать, а поскольку это не так, возможно, это либо поврежденная символическая ссылка, либо поддельный файл.

Вы можете исправить это, сначала удалив ее (sudo rm /usr/bin/ruby)и затем создание новой символической ссылки в правильное местоположение (sudo ln -s /usr/local/bin/ruby /usr/bin/ruby).

Если не сработало вышеперечисленное, вам следует проконсультироваться с командой homebrew после чистой установки Xcode и удаления любых следов установки Ruby наваша система.

РЕДАКТИРОВАТЬ

В качестве альтернативы, как указано в других ответах, проблема может быть из-за плохой версии ruby ​​в настройках Homebrew.

Быстрое исправление может обновлять ваш домашний напиток:

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

Если это не поможет, вы можете испачкать руки и решить проблему вручную:

  1. Редактирование brew.rb из /user/local/Library/brew.rb
  2. Изменение /1.8/ на /Current/ в первой строке, что приведет к тому, что hashbang укажет на текущую версию Ruby в качестве исполнителя

Если это сделатьТакже это не поможет, вы также можете изменить проверку MACOS и изменить ее с 10.5 на 10 , чтобы избежать печально известной ошибки "Homebrew требует Leopard или выше".

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ

Огромное спасибо другим участникам в ответах ниже и их комментаторам.Я не совершаю плагиат, просто собираю ответы в одну интегрированную статью, чтобы помочь другим.

11 голосов
/ 03 декабря 2017

Исправлено:

sudo gem install cocoapods
7 голосов
/ 06 ноября 2014

Это произошло потому, что мне нужно было обновить brew - в обновленной версии он уже использует Current ruby ​​

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

Это решило проблему

5 голосов
/ 05 августа 2015

С риском упрощения, попробуйте запустить

gem install bundler

Я переводил свою среду Ruby из RBENV в RVM, и она работала для меня.

0 голосов
/ 06 мая 2019

В моем случае кажется, что fastlane установлен неправильно с brew install fastlane система не записала правильный путь к fastlane.Я исправил это с alias fastlane=~/.fastlane/bin/fastlane

0 голосов
/ 14 августа 2018

После обновления до macOS High Sierra исправьте его с помощью следующих команд:

sudo gem install cocoapods

0 голосов
/ 06 марта 2018

У меня возникла та же проблема при обновлении до MacOSX High Sierra и использовании Xcode 9 с этим.High Sierra обновляет ruby ​​gem до версии 2.3, но команда xcpreety в Xcode 9 все еще использует Ruby 2.0, который сейчас не может найти и дает плохой интерпретатор.Просто зайдите в терминал и запустите

sudo gem install xcpretty

Перезапустите Xcode и сделайте новую чистую сборку, она работает для меня.Надеюсь, это поможет !!!

0 голосов
/ 30 декабря 2014

Ничего из вышеперечисленного не помогло мне, поэтому я продолжал просматривать и нашел этот ответ, https://stackoverflow.com/a/24225960/1359088, который помог мне справиться с варкой.Он говорит на шаге 1 об установке инструментов командной строки XCode 6, но не говорит как;используйте эту команду:

xcode-select --install
...