So vermeiden Sie, dass "solche Dateien nicht geladen werden können - utils / popen" von Homebrew unter OSX

327

Beim Ausführen brewim Terminal wird eine Fehlermeldung angezeigt:

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

Dies sind meine Edelsteineinstellungen:

- 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
quelle
1
Können Sie Informationen hinzufügen? Welchen Befehl haben Sie genau ausgeführt?
Unihedron
Ich habe gerade "
Brew
Was passiert beim Laufen brew doctor?
Grenierm5
gleicher Fehler. Hier sind meine
Env Gem
Ihre Ruby-Installation scheint unvollständig zu sein. Versuchen Sie, eine andere Ruby-Installation neu zu installieren oder zu verwenden.
Gorootde

Antworten:

803

Das Problem tritt hauptsächlich nach dem Update von OS X auf El Capitan (OS X 10.11) oder macOS Sierra (macOS 10.12) auf.

Dies liegt an Dateiberechtigungsproblemen mit dem neuen SIP-Prozess von El Capitan oder höher macOS . Versuchen Sie, die Berechtigungen für das /usr/localVerzeichnis zu ändern :

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

Wenn es immer noch nicht funktioniert, führen Sie diese Schritte in einer Terminalsitzung aus, und alles wird gut:

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

Dies kann daran liegen, dass Homebrew nicht aktualisiert wird.

Vineet Kapoor
quelle
39
Ich hatte das Problem durch El Capitan Update verursacht. Dies löste das Problem. Vielen Dank.
Vivek
4
Gleich hier, Upgrade auf El Capitan brach es, ich musste zuerst die Berechtigungen zurücksetzen und dann die Git-Befehle ausführen und das Brew-Update funktionierte. Vielen Dank.
Bob
4
Dies ist die richtige Antwort, wenn Sie nach dem Upgrade auf El Capitan mit diesem Problem konfrontiert sind :)
Chemic
3
Hatte dieses Problem nach dem Upgrade auf macOS Sierra . Das hat es gelöst, danke! Das Ändern der Berechtigungen für /usr/localscheint derzeit jedoch nicht erforderlich zu sein. "Homebrew muss nicht länger Eigentümer von / usr / local sein. Wenn Sie möchten, können Sie /usr/localmit: sudo chown root:wheel /usr/local"
Bert
5
Die zweite Methode hat bei mir funktioniert. Ich musste nur herausfinden, wo sich das HOMEBREWVerzeichnis befand. In meinem Fall:/usr/local/Library/Homebrew
Alexander
378

Öffnen Sie zunächst eine Terminalsitzung und führen Sie Folgendes aus:

cd /usr/local/
git status

um zu sehen, ob Homebrew sauber ist.

Wenn es schmutzig ist, führen Sie Folgendes aus:

git reset --hard && git clean -df

dann

brew doctor
brew update

Wenn es immer noch kaputt ist, versuchen Sie dies in Ihrer Sitzung:

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

Dadurch wird Homebrew gezwungen, Ruby 1.8 aus der Systeminstallation zu verwenden.

richarddong
quelle
7
Wahrscheinlich eine gute Antwort, aber übrigens erhalte ich andere Fehler, wenn ich beide Befehle ausführe (ich erwähne, falls jemand dieses weitere Szenario behandeln möchte): - rm: /System/Library/Frameworks/Ruby.framework/Versions/Current: Operation nicht erlaubt
PandaWood
4
Ich habe Homebrew einfach mit einer neuen Version neu installiert und es hat funktioniert. Überprüfen Sie die Homebrew-Homepage mit dem zu installierenden Link. Wenn Sie es versuchen, wird sich beschweren, dass Homebrew bereits installiert ist, und Sie lernen, wie Sie deinstallieren.
Pertz
Durch die Deinstallation / Neuinstallation funktionierte Homebrew wieder für mich. Es löschte auch alles, was es installiert hatte, und zerstörte im Grunde mein System. Also keine gute Lösung.
Evan Knowles
Wenn Sie Fehler mit Ruby erhalten und RVM verwenden, versuchen Sie, eine Ausgabe rvm use systemzu brew update
erstellen
Beachten Sie, dass der Standard-Ruby in neueren Versionen von OS X 2.0 und nicht 1.8 ist.
Bfontaine
82

Homebrew deinstallieren:

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

Dann neu installieren

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

Warnung: Dieses Skript entfernt: / Library / Caches / Homebrew / - thks benjaminsila

odemolliens
quelle
1
Ich führe eine Deinstallation von Homebrew und dann eine Neuinstallation durch. Das Problem wurde behoben. @OsTa ruby ​​-e "$ (curl -fsSL raw.githubusercontent.com/Homebrew/install/master/uninstall )" Warnung: Dieses Skript entfernt: / Library / Caches / Homebrew /
BenJaminSila
3
Eine Art Schrotflinten-Ansatz, aber dies funktionierte einfacher als der Versuch, Dateiberechtigungen zu verwalten ...
BenKarl
1
Arbeitete für mich Auf einem System, das auf 10.12 (Sierra) aktualisiert wurde, konnte ich nach der Deinstallation / Neuinstallation "Brew Doctor" ausführen und befolgte die dortigen Anweisungen, um einige Berechtigungsprobleme zu beheben. Funktioniert jetzt gut
Codesponge
Nach einem Festplattenabsturz war mein zugrunde liegendes Git-Repository beschädigt, und während das Zurücksetzen von Git daher nicht funktionierte, war die Deinstallation / Neuinstallation nicht möglich. Ich musste jedoch alle meine installierten Pakete neu installieren.
Bsumirak
26

In meinem Fall musste ich nur die ausführbare Datei von Homebrew entfernen , indem ich :

sudo rm -f `which brew`

Dann neu installieren Homebrew:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Inanc Gumus
quelle
2
Wenn
Haben Sie diese Meldung beim Versuch des 2. Befehls erhalten (was ein Hinweis darauf zu sein scheint, dass etwas schief gelaufen ist, aber kein Fehler)? - Der aktuelle Inhalt von / usr / local sind bin Keller CODEOFCONDUCT.md CONTRIBUTING.md etc Frameworks git umfassen lib Bibliothek LICENSE.txt opt Qt4.7 README.md Aktie SUPPORTERS.md var .git .gitignore
PandaWood
@ PandaWood nein, habe ich nicht. Was ist der Inhalt der Fehlermeldung, die Sie mit "dieser Nachricht" in Ihrem Kommentar darstellen?
Inanc Gumus
@deeperx Alles nach dem "-". Am Ende musste ich
Brew
@PandaWood Verwenden Sie korrekte Kommas? Können Sie es hier direkt kopieren und einfügen?
Inanc Gumus
24

Nach dem Update auf El Capitan /usr/localhat root:wheelRechte.

Ändern Sie die Rechte für den Benutzer zurück mit:

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

und:

brew doctor && brew update

Dies hat mir geholfen, Homebrew wieder zum Laufen zu bringen.

Josef Rysanek
quelle
2
ist es nicht ziemlich gefährlich
FRAGA
Die Berechtigungen für /usr/localwurden aus Sicherheitsgründen im Betriebssystem geändert. Nur weil Sie "Rechte wie zuvor zurückgegeben" haben, bedeutet dies nicht, dass dies eine gute Sache ist.
Leanne
8

Zuerst habe ich ausgeführt:

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

Dann:

cd $(brew --prefix) && git fetch origin && git reset --hard origin/master
d0ping
quelle
1
Zu Ihrer Information, meine Homebrew-Installation war bei, /usr/local/Homebrew/also musste ich verwenden cd $(brew --prefix)/Homebrew.
Joshua Pinter
3

Dieses Problem sollte in der neuesten Version von Homebrew behoben sein. Versuchen Sie, es neu zu installieren, was auf der Homebrew -Homepage beschrieben ist.

Fred
quelle
1

Für mich scheint es, als hätten Sie fehlende Header-Dateien für popen, eine C-Systembibliothek.

Überprüfen Sie, ob Sie xcode mit den Befehlszeilentools erfolgreich installiert und die Lizenz akzeptiert haben.

Weitere Informationen finden Sie in diesem Thread: So installieren Sie die Xcode-Befehlszeilentools

Dennis
quelle
0

Gehen Sie folgendermaßen vor, um Ihr Homebrew-Setup wiederherzustellen:

cd /usr/local/Homebrew/Library && git stash && git clean -d -f && git reset --hard && git pull
mrded
quelle