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.