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
kerokero
źródło
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.

Vineet Kapoor
źródło
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.

richarddong
źródło
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

odemolliens
źródło
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)"
Inanc Gumus
źródło
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.

Josef Rysanek
źródło
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
d0ping
źródło
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 .

Fred
źródło
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

Dennis
źródło
0

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

cd /usr/local/Homebrew/Library && git stash && git clean -d -f && git reset --hard && git pull
mrded
źródło