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.