Як уникнути "не вдається завантажити такий файл - 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

Я щойно набрав "варити" в unix
kerokero

Що відбувається, коли ти біжиш brew doctor?
grenierm5

така ж помилка. ось мої налаштування дорогоцінних каменів env
kerokero

Схоже, ваша рубінова установка незавершена. Спробуйте перевстановити або скористатися іншою установкою рубіну.
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
Це ж саме оновлення до Ель-Капітан порушило її, мені довелося спочатку скинути дозволи, а потім запустити команди git і оновити варити. Дякую.
Боб

4
Це правильна відповідь, якщо ви зіткнулися з цією проблемою після переходу на Ель-Капітан :)
хімічний

3
Виникла ця проблема після оновлення до macOS Sierra . Це вирішило це, дякую! Хоча, /usr/localздається, зараз не потрібно змінювати дозволи на . "Homebrew більше не повинен мати право власності на / usr / local. Якщо ви хочете, ви можете повернутися /usr/localдо його власності за замовчуванням з: sudo chown root:wheel /usr/local"
Bert

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
Можливо, хороша відповідь, але BTW я отримую інші помилки під час виконання обох команд, які дають (я згадую, якщо кожен хоче висвітлити цей подальший сценарій): - rm: /System/Library/Frameworks/Ruby.framework/Versions/Current: Операція заборонена
PandaWood

4
Я просто перевстановив домашню мову зі свіжою версією, і вона почала працювати. Перевірте домашню сторінку домашнього перекладу за посиланням на встановлення, і коли ви спробуєте це, він скаржиться, що домашня мова вже встановлений, і навчить вас як видалити.
перц

Отже, видалення / перевстановлення змусило Homebrew знову працювати на мене. Вона також видалила все, що було встановлено, в основному руйнує мою систему. Тож не чудове рішення.
Еван Ноулз

Якщо ви отримуєте помилки з рубіном і використовуєте RVM, спробуйте видати, rvm use systemщоб переконатися, що ви використовуєте рубін 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)"

Попередження: Цей скрипт буде видалено: / Бібліотека / Кеші / Домашня мова / - thks benjaminsila


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

3
Підхід під рушницю, але це спрацювало легше, ніж намагатися керувати дозволами на файли ...
BenKarl

1
Працював для мене У системі, оновленій до 10.12 (Sierra), після видалення / перевстановлення я зміг запустити "варити лікаря" і дотримувався там інструкцій, щоб виправити кілька проблем з дозволом. Зараз добре працює
codeponge

Після збоїв на жорсткому диску моє базове сховище git було пошкоджене, і, отже, скидання git не працювало б, все-таки видаліть / перевстановіть. Однак мені довелося перевстановити всі встановлені пакети.
bsumirak

26

У моєму випадку мені просто потрібно було видалити виконуваний файл Homebrew за допомогою:

sudo rm -f `which brew`

Потім перевстановіть Homebrew:

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

2
Якщо ви затрималися
fortm

Чи отримали ви цей захід, спробувавши другу команду (яка, здається, є вказівкою, що щось пішло не так, хоча і не помилка)? - Поточне утримання / USR / місцеві ARE бен Підвал CODEOFCONDUCT.md CONTRIBUTING.md і так далі Каркаси мерзотник включають Lib Бібліотека LICENSE.TXT неавтоматичного доля Qt4.7 README.md SUPPORTERS.md вар .git .gitignore
PandaWood

@PandaWood ні, я ні. який вміст повідомлення про помилку, яке ви зображуєте у "коментарі" у своєму коментарі?
Inanc Gumus

@deeperx Все після "-". Зрештою, мені довелося знову видалити пивоварну та перевстановити
PandaWood

@PandaWood Чи використовуєте ви правильні коми? Чи можете ви скопіювати його безпосередньо тут?
Inanc Gumus

24

Після оновлення до El Capitan, /usr/localмає root:wheelправа.

Зміна прав на користувача, використовуючи:

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

і:

brew doctor && brew update

Це допомогло мені знову домогтися роботи.


2
хіба це не зовсім небезпечно?
FRAGA

Дозвіли, які /usr/localбули змінені в ОС з міркувань безпеки - так що, тільки тому, що ви "повернули права, як і раніше", це не означає, що це робити добре.
leanne

8

Спочатку я виконав:

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

Тоді:

cd $(brew --prefix) && git fetch origin && git reset --hard origin/master

1
FYI, у мене встановлено Homebrew, /usr/local/Homebrew/тому мені довелося користуватися cd $(brew --prefix)/Homebrew.
Джошуа Пінтер

3

Цю проблему слід вирішити в новітній версії Homebrew. Спробуйте перевстановити його, що описано на домашній сторінці Homebrew .


1

Мені здається, у вас відсутні файли заголовків для popen, що є системною бібліотекою C.

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

Дивіться цю тему для отримання додаткової інформації: Як встановити інструменти командного рядка Xcode


0

Щоб відновити налаштування домашньої програми, спробуйте:

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.