Как исправить заваривание после обновления OSX до Yosemite?

У меня возникла проблема с Homebrew. Я обновился до Йосемити. После обновления homebrew кажется сломанным.

Я бы запустил любую команду варки и получил бы эту ошибку

/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

Как это решить?

Я только что обновился с Mac OS X 10.8 до 10.10 (Yosemite), и хоумбрю после обновления работает нормально. Либо эта проблема была исправлена, либо в моем обновлении ОС было что-то другое по сравнению со всеми остальными, публикующими здесь.

Ответы (5)

Я решил посмотреть это и обнаружил, что есть проблема . Проблема закрыта, но просто запустить ее невозможно, brew updateпотому что вы все равно получите ту же ошибку.

Итак, вот что вам нужно сделать:

cd /usr/local/Library
git pull origin master

Если у вас есть изменения в каталоге (/usr/local/Library), git pull выдаст ошибку. В этом случае вам придется получить ветку master и принудительно установить ее как master:

git fetch --all
git reset --hard origin/master

Это улучшит ваш домашний напиток, и вы снова сможете его использовать.

Если вы установили Homebrew как пользователь без полномочий root, вам cdпотребуется /Users/yourusername/homebrew/Libraryвместо /usr/local/Library.

еще одна причина, по которой мне нравится иметь менеджер пакетов, построенный на git :)
Точно. Любимое программное обеспечение, которое просто запускается из исходного кода и может быть обновлено через git pull
О черт, я думаю, мы должны вернуться к Microsoft Windows и погрузиться в водоворот реестра.
Странно, я получаю это фатальное: не репозиторий git (или какой-либо из родительских каталогов): .git
Это не правильно. Вы уверены, что путь правильный?
Я получаю эту ошибку:error: cannot open .git/FETCH_HEAD: Permission denied
Пытатьсяsudo git pull origin master
@ГабриэльР. я тоже получаю. Как вы с этим справились?
Еще одна проблема, которую можно решить, зайдя в мою местную библиотеку. Спасибо!
Мне также пришлось сбросить Git: git reset --hard HEAD git clean -f -d git pull
Ты молодец!!!
Ты да ниндзя!!!
Если у вас старая версия brew, возможно, у вас уже есть репозиторий git в /usr/local/Library. Просто отредактируйте brew.rb и измените «1.8» на «Current» в первой строке. Затем просто снова запустите brew update, и он обновится до последней версии (при этом будет создан репозиторий git).
Частично это решение также устранило проблему после обновления с Yosemite до El Capitan. Ошибка: Could not restore untracked files from stash Error: Failure while executing: git stash pop --quiet. Сначала сделайте, sudo chown -R $(whoami):admin /usr/localа затем примените это решение.
Не уверен, что кто-то еще сталкивался с этой проблемой, но по какой-то причине репозиторий git для доморощенного в моей системе был расположен в /Users/username/homebrew вместо /Users/yourusername/homebrew/Library (также обновление brew.rb было быстрым решением тоже).
Мне пришлось подняться на один уровень вверх из /usr/local/Library, а также удалить измененные файлы: (опасно) git fetch origin master; git add --all . ; git reset --hard origin/master;Затем я смог слить последние, как вы сказали: git pull origin master. Я был обеспокоен тем, что репозиторий git находится в общем каталоге. Но я думаю, именно поэтому Homebrew любит владеть всеми вашими установками. Остерегайтесь, если у вас есть установленные вещи, отличные от Brew.

Я нашел это решение :

Эта ссылка хорошо описывает это, но в случае, если ссылка не работает, вот что вам нужно сделать: Введите эти команды в свой терминал:

cd /System/Library/Frameworks/Ruby.framework/Versions
sudo ln -s Current 1.8
brew update
sudo rm 1.8
В отличие от принятого ответа, это действительно сработало.
Это единственное, что у меня сработало на 10.10.3.
Также работает для 10.10.4
Ошибка прерывания: сбой при выполнении: git pull -q origin refs/heads/master:refs/remotes/origin/master
Это сработало для меня, хотя нужно было сделать еще один шаг: stackoverflow.com/questions/26501126/…
@Elias Zamaria после выполнения тех же шагов я получаю эту ошибку ln: 1.8: Операция не разрешена.

Версия и расположение Ruby изменились в новой версии Mac OS X.

Чтобы исправить это общим способом, отредактируйте /usr/local/Library/brew.rb.

В первой строке замените 1.8на Current, т.е. from:

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

к:

#!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0
Это ломается brew update, потому что теперь у вас есть незафиксированное изменение.
… но для этого brew updateнужно применить исправление, которое я предложил. Я никогда не использовал brew updateего до сих пор, поэтому у меня даже не было инициализировано репо. Не могу вспомнить, как я его вообще установил.

Если вы устраните проблему ruby, а затем столкнетесь с проблемой, когда вам сообщат, что система думает, что вы используете Tiger или более старую версию, исправление для этого находится здесь .

Сначала я попробовал ответ с самым высоким рейтингом, а затем столкнулся с другой проблемой . После этого я как бы отказался от исправления, так как у меня было установлено всего несколько пакетов. Может быть, в этой лодке и другие.

Хотя все это отличные ответы, для меня было проще просто переустановить brew.

Сначала я выполнил инструкции:

http://brew.sh/

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

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