Как избежать «не могу загрузить такой файл - utils / popen» из доморощенного на OSX

327

Я получаю сообщение об ошибке при запуске brewв терминале:

 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- utils/popen (LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/Library/Homebrew/utils.rb:6:in `<top (required)>'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/Library/Homebrew/global.rb:9:in `<top (required)>'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/Library/brew.rb:16:in `<main>'

Это мои настройки драгоценного камня:

- RUBYGEMS VERSION: 2.0.14
- RUBY VERSION: 2.0.0 (2014-02-24 patchlevel 451) [universal.x86_64-darwin13]
- INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.0.0
- RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
- EXECUTABLE DIRECTORY: /usr/bin
- RUBYGEMS PLATFORMS:
  - ruby
  - universal-darwin-13
- GEM PATHS:
  - /Library/Ruby/Gems/2.0.0
  - /Users/ronaldkwan/.gem/ruby/2.0.0
  - /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.0
- GEM CONFIGURATION:
  - :update_sources => true
  - :verbose => true
  - :backtrace => false
  - :bulk_threshold => 1000
kerokero
источник
1
Вы можете добавить информацию? Какую команду вы точно выполнили?
Unihedron
я только что набрал «brew» в unix
kerokero
Что происходит, когда ты бежишь brew doctor?
grenierm5
та же ошибка. вот мои настройки драгоценного камня env
kerokero
Похоже, ваша установка ruby ​​не завершена. Попробуйте переустановить или использовать другую установку ruby.
gorootde

Ответы:

803

Проблема в основном возникает после обновления OS X до El Capitan (OS X 10.11) или macOS Sierra (macOS 10.12).

Это из-за проблем с правами доступа к файлу в новом процессе SIP в El Capitan или более поздней версии macOS . Попробуйте изменить разрешения для /usr/localкаталога:

$ sudo chown -R $(whoami):admin /usr/local  

Если это все еще не работает, используйте эти шаги в терминальной сессии, и все будет хорошо:

cd /usr/local/Library/Homebrew  
git reset --hard  
git clean -df
brew update

Это может быть потому, что доморощенный не обновляется.

Винет Капур
источник
39
У меня была проблема, вызванная обновлением El Capitan. Это решило проблему. Спасибо.
Вивек
4
То же самое здесь, обновление до El Capitan сломало его, мне пришлось сначала сбросить разрешения, а затем запустить команды git и сработало обновление brew. Спасибо.
Боб
4
Это правильный ответ, если вы столкнулись с этой проблемой после обновления до El Capitan :)
chemic
3
Возникла эта проблема после обновления до macOS Sierra . Это решило это, спасибо! Тем не менее, изменение разрешений /usr/localне требуется сейчас. «Homebrew больше не нужно владеть / usr / local. Если вы хотите, вы можете вернуть /usr/localего по умолчанию с помощью: sudo chown root:wheel /usr/local»
Берт
5
Второй метод работал для меня. Мне просто нужно было найти, где HOMEBREWнаходится каталог. В моем случае:/usr/local/Library/Homebrew
Александр
378

Сначала откройте сеанс терминала и запустите:

cd /usr/local/
git status

чтобы увидеть, чист ли Доморощенный.

Если он грязный, запустите:

git reset --hard && git clean -df

затем

brew doctor
brew update

Если это все еще сломано, попробуйте это в своей сессии:

sudo rm /System/Library/Frameworks/Ruby.framework/Versions/Current
sudo ln -s /System/Library/Frameworks/Ruby.framework/Versions/1.8 /System/Library/Frameworks/Ruby.framework/Versions/Current

Это заставит Homebrew использовать Ruby 1.8 из установки системы.

richarddong
источник
7
Вероятно, хороший ответ, но, кстати, я получаю другие ошибки при запуске обеих команд (я упоминаю, что если кто-то захочет осветить этот дальнейший сценарий): - rm: /System/Library/Frameworks/Ruby.framework/Versions/Current: операция не разрешена
PandaWood
4
Я просто переустановил доморощенный с новой версией, и он начал работать. Проверьте домашнюю страницу homebrew со ссылкой для установки, и, когда вы попробуете ее, она будет жаловаться, что homebrew уже установлен, и научит вас, как ее удалить.
pertz
Итак, удаление / переустановка заставило Homebrew снова работать на меня. Это также удалило все, что это установило, в основном разрушая мою систему. Так что не очень хорошее решение.
Эван Ноулз
Если вы получаете ошибки с ruby ​​и используете RVM, попробуйте rvm use systemвыполнить команду, чтобы убедиться, что вы используете ruby ​​Mac OS X при запускеbrew update
DavidJ
Обратите внимание, что Ruby по умолчанию в последних версиях OS X - 2.0, а не 1.8.
bfontaine
82

Удалить доморощенный:

 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

Затем переустановите

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Предупреждение: Этот скрипт удалит: / Library / кэша / Homebrew / - Thks benjaminsila

odemolliens
источник
1
Я запускаю удаление Homebrew и затем переустановку. Исправлена ​​проблема. @OsTa ruby ​​-e "$ (curl -fsSL raw.githubusercontent.com/Homebrew/install/master/uninstall )" Предупреждение: этот скрипт удалит: / Library / Caches / Homebrew /
BenJaminSila
3
Что-то вроде
1
Работал для меня В системе, обновленной до 10.12 (Sierra), после удаления / переустановки я смог запустить «brew doctor» и следовал инструкциям, чтобы исправить некоторые проблемы с разрешениями. Работает нормально сейчас
кодспон
После сбоя жесткого диска мой репозиторий git был поврежден, и хотя сброс git не сработал, удаление / переустановка сделали. Однако мне пришлось переустановить все мои установленные пакеты.
bsumirak
26

В моем случае мне просто нужно было удалить исполняемый файл Homebrew, используя:

sudo rm -f `which brew`

Затем переустановите Homebrew:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Инан Гумус
источник
2
Если после этого вы застряли в цикле установки / удаления brew, воспользуйтесь следующей ссылкой - github.com/Homebrew/homebrew/issues/44460
fortm
Вы получили это сообщение, пытаясь 2-й командой (которая, кажется, указывает, что что-то пошло не так, хотя не ошибка)? - Текущее содержимое / usr / local - это bin Cellar CODEOFCONDUCT.md CONTRIBUTING.md и т. Д. Фреймворки git включают библиотеку lib LICENSE.txt opt ​​Qt4.7 README.md share SUPPORTERS.md var .git .gitignore
PandaWood
@ PandaWood нет, я не сделал. Каково содержание сообщения об ошибке, которое вы указали с помощью «этого сообщения» в своем комментарии?
Inanc Gumus
@deeperx Все после "-". В конце концов, мне пришлось удалить
Brew
@PandaWood Используете ли вы правильные запятые? Можете ли вы скопировать вставить прямо здесь?
Inanc Gumus
24

После обновления до El Capitan, /usr/localесть root:wheelправа.

Верните права обратно пользователю, используя:

sudo chown -R $(whoami):admin /usr/local

и:

brew doctor && brew update

Это помогло мне снова заставить Homebrew работать.

Йозеф Рисанек
источник
2
разве это не опасно?
ФРАГА
Права доступа /usr/localбыли изменены в ОС по соображениям безопасности - поэтому, если вы «вернули права как раньше», это еще не значит, что это хорошо.
Линн
8

Сначала я выполнил:

sudo chown -R $(whoami):admin /usr/local

Затем:

cd $(brew --prefix) && git fetch origin && git reset --hard origin/master
d0ping
источник
1
К вашему сведению, моя Homebrew была установлена, /usr/local/Homebrew/поэтому мне пришлось использовать cd $(brew --prefix)/Homebrew.
Джошуа Пинтер
3

Эта проблема должна быть исправлена ​​в последней версии Homebrew. Попробуйте переустановить его, как описано на домашней странице Homebrew .

Фред
источник
1

Мне кажется, что у вас отсутствуют заголовочные файлы для popen, который является системной библиотекой Си.

Проверьте, успешно ли вы установили xcode с помощью инструментов командной строки и приняли ли вы лицензию.

Посмотрите эту тему для получения дополнительной информации: Как установить Инструменты командной строки Xcode

Деннис
источник
0

Чтобы восстановить настройки Homebrew, попробуйте это:

cd /usr/local/Homebrew/Library && git stash && git clean -d -f && git reset --hard && git pull
mrded
источник