Come evitare "Impossibile caricare tale file - utils / popen" da homebrew su OSX


327

Ricevo un errore quando corro brewnel terminale:

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

Queste sono le mie impostazioni gemma:

- 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
Puoi aggiungere informazioni? Quale comando hai eseguito esattamente?
Unihedron,

ho appena digitato "brew" in unix
kerokero il

Cosa succede quando corri brew doctor?
grenierm5,

stesso errore. ecco le mie impostazioni gemma env
Kerokero

Sembra che l'installazione di Ruby sia incompleta. Prova a reinstallare o utilizzare un'altra installazione di ruby.
Gorootde,

Risposte:


803

Il problema si verifica principalmente dopo l'aggiornamento di OS X a El Capitan (OS X 10.11) o macOS Sierra (macOS 10.12).

Ciò è dovuto a problemi di autorizzazione dei file con il nuovo processo SIP di El Capitan o successivo macOS . Prova a modificare le autorizzazioni per la /usr/localdirectory:

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

Se il problema persiste, utilizzare questi passaggi all'interno di una sessione terminale e tutto andrà bene:

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

Ciò può essere dovuto al fatto che homebrew non è aggiornato.


39
Ho avuto il problema causato dall'aggiornamento di El Capitan. Questo ha risolto il problema. Grazie.
Vivek,

4
Lo stesso qui, l'aggiornamento a El Capitan l'ha rotto, ho dovuto prima ripristinare le autorizzazioni e quindi eseguire i comandi git e brew update funzionava. Grazie.
Bob

4
Questa è la risposta giusta se stai affrontando questo problema dopo l'aggiornamento a El Capitan :)
chemic

3
Ha avuto questo problema dopo l'aggiornamento a macOS Sierra . Questo ha risolto, grazie! Tuttavia, la modifica delle autorizzazioni su /usr/localnon sembra essere richiesta ora. "Homebrew non deve più avere la proprietà di / usr / local. Se lo desideri, puoi tornare /usr/localalla proprietà predefinita con: sudo chown root:wheel /usr/local"
Bert

5
Il secondo metodo ha funzionato per me. Avevo solo bisogno di trovare dove si HOMEBREWtrovava la directory. Nel mio caso:/usr/local/Library/Homebrew
Alexander

378

Innanzitutto, apri una sessione terminale ed esegui:

cd /usr/local/
git status

per vedere se l'homebrew è pulito.

Se è sporco, esegui:

git reset --hard && git clean -df

poi

brew doctor
brew update

Se è ancora rotto, prova questo nella tua sessione:

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

Questo costringerà Homebrew a usare Ruby 1.8 dall'installazione del sistema.


7
Probabilmente una buona risposta, ma a proposito ho altri errori quando eseguo entrambi i comandi (menziono se qualcuno vuole coprire questo ulteriore scenario): - rm: /System/Library/Frameworks/Ruby.framework/Versions/Current: Operazione non consentita
PandaWood,

4
Ho semplicemente reinstallato homebrew con una versione nuova e ha iniziato a funzionare. Controlla la homebrew homebrew con il link per l'installazione e quando lo proverai si lamenterà che homebrew è già installato e ti insegnerà come disinstallare.
pertz

Quindi, disinstallando / reinstallando Homebrew ha funzionato di nuovo per me. Ha anche eliminato tutto ciò che aveva installato, fondamentalmente distruggendo il mio sistema. Quindi non un'ottima soluzione.
Evan Knowles

Se ricevi errori con ruby ​​e stai utilizzando RVM, prova a rilasciarti rvm use systemper assicurarti di utilizzare il ruby ​​di Mac OS X durante l'esecuzionebrew update
DavidJ

Si noti che il Ruby predefinito nelle versioni recenti di OS X è 2.0, non 1.8.
bfontaine,

82

Disinstallare homebrew:

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

Quindi reinstallare

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

Avvertenza: questo script rimuoverà: / Library / Caches / Homebrew / - thks benjaminsila


1
Eseguo una disinstallazione di Homebrew e quindi una reinstallazione. Risolto il problema @OsTa ruby ​​-e "$ (curl -fsSL raw.githubusercontent.com/Homebrew/install/master/uninstall )" Attenzione: questo script rimuoverà: / Library / Caches / Homebrew /
BenJaminSila

3
Una specie di approccio con un fucile da caccia ma questo ha funzionato più facilmente rispetto al tentativo di gestire i permessi dei file ...
BenKarl

1
Ha funzionato per me Su un sistema aggiornato a 10.12 (Sierra), dopo la disinstallazione / reinstallazione sono stato in grado di eseguire "brew doctor" e ho seguito le istruzioni per risolvere alcuni problemi relativi alle autorizzazioni. Funziona bene ora
codesponge

Dopo un crash del disco rigido il mio repository git sottostante era corrotto e mentre git reset non funzionava quindi, la disinstallazione / reinstallazione ha funzionato. Tuttavia, ho dovuto reinstallare tutti i miei pacchetti installati.
bsumirak,

26

Nel mio caso, dovevo solo rimuovere l'eseguibile di Homebrew usando:

sudo rm -f `which brew`

Quindi reinstallare Homebrew:

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

2
Nel caso in cui
rimani

Hai ricevuto questo messaggio provando il 2 ° comando (che sembra essere un'indicazione che qualcosa è andato storto, anche se non un errore)? - I contenuti attuali di / usr / local sono bin Cellar CODEOFCONDUCT.md CONTRIBUTING.md ecc. Frame git include lib Library LICENSE.txt opt ​​Qt4.7 README.md share SUPPORTERS.md var .git
.gitignore

@PandaWood no, non l'ho fatto. qual è il contenuto del messaggio di errore che descrivi con "questo messaggio" nel tuo commento?
Inanc Gumus,

@deeperx Tutto dopo il "-". Alla fine, ho dovuto disinstallare nuovamente brew e reinstallarlo
PandaWood,

@PandaWood Usi le virgole corrette? Puoi copiarlo incollandolo qui direttamente?
Inanc Gumus,

24

Dopo l'aggiornamento a El Capitan, /usr/localha i root:wheeldiritti.

Cambia i diritti di nuovo all'utente usando:

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

e:

brew doctor && brew update

Questo mi ha aiutato a far funzionare di nuovo Homebrew.


2
non è abbastanza pericoloso?
FRAGA,

Le autorizzazioni a /usr/localsono state modificate nel sistema operativo per motivi di sicurezza - quindi, solo perché hai "restituito i diritti come prima" non significa che sia una buona cosa da fare.
leanne,

8

Prima ho eseguito:

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

Poi:

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

1
Cordiali saluti, la mia installazione di Homebrew era a, /usr/local/Homebrew/quindi ho dovuto usare cd $(brew --prefix)/Homebrew.
Joshua Pinter,

3

Questo problema dovrebbe essere risolto nella versione più recente di Homebrew. Prova a reinstallarlo, che è descritto nella home page di Homebrew .


1

Per me sembra che manchi file di intestazione per popen, che è una libreria di sistema C.

Controlla se xcode è stato installato correttamente con gli strumenti della riga di comando e hai accettato la licenza.

Vedi questo thread per ulteriori informazioni: Come installare Xcode Command Line Tools


0

Per ripristinare la configurazione di Homebrew prova questo:

cd /usr/local/Homebrew/Library && git stash && git clean -d -f && git reset --hard && git pull
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.