Как избежать «не могу загрузить такой файл - 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

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 из установки системы.


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


1
Я запускаю удаление Homebrew и затем переустановку. Исправлена ​​проблема. @OsTa ruby ​​-e "$ (curl -fsSL raw.githubusercontent.com/Homebrew/install/master/uninstall )" Предупреждение: этот скрипт удалит: / Library / Caches / Homebrew /
BenJaminSila


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

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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.