Jak uniknąć „nie można załadować takiego pliku - utils / popen” z homebrew na OSX


327

Podczas uruchamiania breww terminalu pojawia się błąd :

 /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>'

Oto moje ustawienia klejnotów:

- 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
Czy możesz dodać informacje? Jakie polecenie dokładnie wykonałeś?
Unihedron

właśnie wpisałem „brew” do unixa
kerokero

Co dzieje się, gdy biegniesz brew doctor?
grenierm5

ten sam błąd. oto moje ustawienia klejnotów env
kerokero

Wygląda na to, że instalacja ruby ​​jest niekompletna. Spróbuj ponownie zainstalować lub użyć innej instalacji Ruby.
gorootde

Odpowiedzi:


803

Problem występuje głównie po aktualizacji OS X do El Capitan (OS X 10.11) lub macOS Sierra (macOS 10.12).

Wynika to z problemów z uprawnieniami do plików w nowym procesie SIP El Capitan lub nowszym macOS . Spróbuj zmienić uprawnienia do /usr/localkatalogu:

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

Jeśli nadal nie działa, wykonaj następujące kroki w sesji terminala i wszystko będzie dobrze:

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

Może to być spowodowane tym, że homebrew nie jest aktualizowany.


39
Miałem problem spowodowany aktualizacją El Capitan. To rozwiązało problem. Dzięki.
Vivek,

4
To samo tutaj, aktualizacja do El Capitan złamała go, musiałem najpierw zresetować uprawnienia, a następnie uruchomić polecenia git i aktualizacja brew działała. Dzięki.
Bob

4
To dobra odpowiedź, jeśli napotykasz ten problem po przejściu na El Capitan :)
chemiczny

3
Wystąpił ten problem po aktualizacji do systemu macOS Sierra . To rozwiązało, dzięki! Chociaż zmiana uprawnień /usr/localnie wydaje się teraz wymagana. „Homebrew nie musi już posiadać własności / usr / local. Jeśli chcesz, możesz przywrócić /usr/localdomyślną własność za pomocą: sudo chown root:wheel /usr/local
Bert

5
Druga metoda działała dla mnie. Musiałem tylko znaleźć lokalizację HOMEBREWkatalogu. W moim przypadku:/usr/local/Library/Homebrew
Alexander

378

Najpierw otwórz sesję terminalową i uruchom:

cd /usr/local/
git status

aby sprawdzić, czy Homebrew jest czysty.

Jeśli jest brudny, uruchom:

git reset --hard && git clean -df

następnie

brew doctor
brew update

Jeśli nadal jest zepsuty, wypróbuj to w swojej sesji:

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

Zmusi to Homebrew do korzystania z Ruby 1.8 z instalacji systemu.


7
Prawdopodobnie dobra odpowiedź, ale BTW dostaję inne błędy podczas uruchamiania obu poleceń (wspominam, że jeśli ktoś chce omówić ten dalszy scenariusz): - rm: /System/Library/Frameworks/Ruby.framework/Versions/Current: Operacja niedozwolona
PandaWood,

4
Po prostu ponownie zainstalowałem homebrew ze świeżą wersją i zaczęło działać. Sprawdź stronę główną homebrew z linkiem do zainstalowania, a gdy spróbujesz, narzeka, że ​​homebrew jest już zainstalowany i nauczy Cię, jak odinstalować.
pertz

Tak więc odinstalowanie / ponowne zainstalowanie sprawiło, że Homebrew znów działa dla mnie. Usunął również wszystko, co zainstalował, w zasadzie niszcząc mój system. Więc nie jest to świetne rozwiązanie.
Evan Knowles,

Jeśli masz problemy z ruby ​​i używasz RVM, spróbuj wydać, rvm use systemaby upewnić się, że używasz ruby ​​Mac OS X podczas uruchamianiabrew update
DavidJ

Zauważ, że domyślnym Ruby w najnowszych wersjach OS X jest 2.0, a nie 1.8.
bfontaine

82

Odinstaluj homebrew:

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

Następnie zainstaluj ponownie

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

Ostrzeżenie: ten skrypt usunie: / Library / Caches / Homebrew / - thks benjaminsila


1
Przeprowadzam odinstalowanie Homebrew, a następnie ponowną instalację. Naprawiono problem. @OsTa ruby ​​-e „$ (curl -fsSL raw.githubusercontent.com/Homebrew/install/master/uninstall )” Ostrzeżenie: ten skrypt usunie: / Library / Caches / Homebrew /
BenJaminSila

3
Coś

1
Pracowałem dla mnie W systemie uaktualnionym do 10.12 (Sierra), po odinstalowaniu / ponownej instalacji byłem w stanie uruchomić „brew doctor” i postępowałem zgodnie z instrukcjami, aby rozwiązać kilka problemów z uprawnieniami. Teraz działa dobrze
codesponge

Po awarii dysku twardego moje podstawowe repozytorium git zostało uszkodzone i chociaż reset git nie działał, odinstalowanie / ponowne zainstalowanie nie. Musiałem jednak ponownie zainstalować wszystkie moje zainstalowane pakiety.
bsumirak

26

W moim przypadku musiałem po prostu usunąć plik wykonywalny Homebrew za pomocą:

sudo rm -f `which brew`

Następnie zainstaluj ponownie Homebrew:

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

2
Jeśli utkniesz po tym w pętli instalacyjnej / odinstalowującej brew, użyj następującego linku - github.com/Homebrew/homebrew/issues/44460
fortm

Czy dostałeś ten pomysł, próbując 2. polecenia (co wydaje się wskazywać, że coś poszło nie tak, ale nie jest błędem)? - Obecna zawartość katalogu / usr / local to bin Cellar CODEOFCONDUCT.md CONTRIBUTING.md itp. Frameworki git obejmują bibliotekę lib LICENSE.txt opt ​​Qt4.7 README.md udostępnij SUPPORTERS.md var .git
.gitignore

@PandaWood nie, nie zrobiłem tego. jaka jest treść komunikatu o błędzie, który przedstawiasz jako „ta wiadomość” w swoim komentarzu?
Inanc Gumus

@deeperx Wszystko po „-”. W końcu musiałem odinstalować napar i ponownie zainstalować
PandaWood,

@PandaWood Czy używasz prawidłowych przecinków? Czy możesz skopiować go tutaj bezpośrednio?
Inanc Gumus

24

Po aktualizacji do El Capitan /usr/localma root:wheelprawa.

Zmień prawa z powrotem na użytkownika, używając:

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

i:

brew doctor && brew update

To pomogło mi znów uruchomić Homebrew.


2
czy to nie jest dość niebezpieczne?
FRAGA

Uprawnienia /usr/localzostały zmienione w systemie operacyjnym ze względów bezpieczeństwa - dlatego, że „przywróciłeś prawa jak poprzednio”, nie oznacza to, że dobrze jest to zrobić.
leanne

8

Najpierw wykonałem:

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

Następnie:

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

1
FYI, moja instalacja Homebrew była w, /usr/local/Homebrew/więc musiałem użyć cd $(brew --prefix)/Homebrew.
Joshua Pinter,

3

Ten problem powinien zostać rozwiązany w najnowszej wersji Homebrew. Spróbuj zainstalować ponownie, co opisano na stronie głównej Homebrew .


1

Dla mnie wydaje się, że brakuje ci plików nagłówkowych popen, które są biblioteką systemową C.

Sprawdź, czy pomyślnie zainstalowałeś xcode za pomocą narzędzi wiersza poleceń i zaakceptowałeś licencję.

Zobacz ten wątek, aby uzyskać więcej informacji: Jak zainstalować narzędzia wiersza polecenia Xcode


0

Aby przywrócić konfigurację Homebrew, spróbuj:

cd /usr/local/Homebrew/Library && git stash && git clean -d -f && git reset --hard && git pull
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.