Comment éviter «ne peut pas charger un tel fichier - utils / popen» à partir de homebrew sur OSX


327

Je reçois une erreur lorsque je cours brewdans le terminal:

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

Ce sont mes paramètres de gemme:

- 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
Pouvez-vous ajouter des informations? Quelle commande avez-vous exécutée exactement?
Unihedron

je viens de taper "brew" en unix
kerokero

Que se passe-t-il lorsque vous courez brew doctor?
grenierm5

même erreur. voici mes paramètres env gem
kerokero

Il semble que votre installation Ruby soit incomplète. Essayez de réinstaller ou d'utiliser une autre installation ruby.
gorootde

Réponses:


803

Le problème se produit principalement après la mise à jour d'OS X vers El Capitan (OS X 10.11) ou macOS Sierra (macOS 10.12).

Cela est dû à des problèmes d'autorisation de fichier avec le nouveau processus SIP d'El Capitan ou d'une version ultérieure de macOS . Essayez de modifier les autorisations pour le /usr/localrépertoire:

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

Si cela ne fonctionne toujours pas, utilisez ces étapes dans une session de terminal et tout ira bien:

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

Cela peut être dû au fait que l'homebrew n'est pas mis à jour.


39
J'ai eu le problème causé par la mise à jour d'El Capitan. Cela a résolu le problème. Merci.
Vivek

4
Même chose ici, la mise à niveau vers El Capitan l'a cassé, j'ai d'abord dû réinitialiser les autorisations, puis exécuter les commandes git et la mise à jour de brew a fonctionné. Merci.
Bob

4
C'est la bonne réponse si vous rencontrez ce problème après la mise à niveau vers El Capitan :)
chemic

3
Eu ce problème après la mise à niveau vers macOS Sierra . Cela l'a résolu, merci! Cependant, la modification des autorisations sur /usr/localne semble pas être nécessaire maintenant. "Homebrew n'a plus besoin d'avoir la propriété de / usr / local. Si vous le souhaitez, vous pouvez revenir /usr/localà sa propriété par défaut avec: sudo chown root:wheel /usr/local"
Bert

5
La deuxième méthode a fonctionné pour moi. J'avais juste besoin de trouver où se trouvait le HOMEBREWrépertoire. Dans mon cas:/usr/local/Library/Homebrew
Alexander

378

Tout d'abord, ouvrez une session de terminal et exécutez:

cd /usr/local/
git status

pour voir si Homebrew est propre.

S'il est sale, lancez:

git reset --hard && git clean -df

puis

brew doctor
brew update

S'il est toujours cassé, essayez ceci dans votre session:

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

Cela forcera Homebrew à utiliser Ruby 1.8 à partir de l'installation du système.


7
Probablement une bonne réponse, mais BTW, j'obtiens d'autres erreurs lors de l'exécution des deux commandes (je mentionne que personne ne veut couvrir ce scénario supplémentaire): - rm: /System/Library/Frameworks/Ruby.framework/Versions/Current: Opération non autorisée
PandaWood

4
J'ai simplement réinstallé homebrew avec une nouvelle version et il a commencé à fonctionner. Vérifiez la page d'accueil de homebrew avec le lien pour installer, et lorsque vous l'essayez, il se plaindra que homebrew est déjà installé et vous apprendra comment désinstaller.
pertz

La désinstallation / réinstallation a donc permis à Homebrew de fonctionner à nouveau pour moi. Il a également supprimé tout ce qu'il avait installé, jetant essentiellement mon système. Ce n'est donc pas une excellente solution.
Evan Knowles

Si vous rencontrez des erreurs avec ruby ​​et que vous utilisez RVM, essayez d'émettre rvm use systempour vous assurer que vous utilisez le ruby ​​de Mac OS X lors de l'exécutionbrew update
DavidJ

Notez que le Ruby par défaut sur les versions récentes d'OS X est 2.0, pas 1.8.
bfontaine

82

Désinstaller homebrew:

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

Réinstallez ensuite

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

Avertissement: ce script supprimera: / Library / Caches / Homebrew / - thks benjaminsila


1
Je lance une désinstallation de Homebrew puis une réinstallation. Correction du problème. @OsTa ruby ​​-e "$ (curl -fsSL raw.githubusercontent.com/Homebrew/install/master/uninstall )" Avertissement: ce script supprimera: / Library / Caches / Homebrew /
BenJaminSila

3
Une sorte d'approche au fusil de chasse, mais cela a fonctionné plus facilement que d'essayer de gérer les autorisations de fichiers ...
BenKarl

1
A travaillé pour moi Sur un système mis à niveau vers 10.12 (Sierra), après la désinstallation / réinstallation, j'ai pu exécuter «brew doctor» et j'ai suivi les instructions pour résoudre quelques problèmes d'autorisations. Fonctionne bien maintenant
codesponge

Après un crash du disque dur, mon référentiel git sous-jacent a été corrompu et alors que la réinitialisation de git ne fonctionnerait pas, la désinstallation / réinstallation a fonctionné. Cependant, j'ai dû réinstaller tous mes packages installés.
bsumirak

26

Dans mon cas, j'avais juste besoin de supprimer l'exécutable de Homebrew en utilisant:

sudo rm -f `which brew`

Réinstallez ensuite Homebrew:

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

2
Au cas où vous seriez coincé après cela dans la boucle d'installation / désinstallation de brew, utilisez le lien suivant - github.com/Homebrew/homebrew/issues/44460
fortm

Avez-vous eu ce message en essayant la 2e commande (ce qui semble être une indication que quelque chose a mal tourné, mais pas une erreur)? - Le contenu actuel de / usr / local sont bin Cave CODEOFCONDUCT.md CONTRIBUTING.md etc git cadres comprennent lib bibliothèque LICENSE.txt opt Qt4.7 README.md part SUPPORTERS.md var .git .gitignore
PandaWood

@PandaWood non, je ne l'ai pas fait. quel est le contenu du message d'erreur que vous décrivez avec «ce message» dans votre commentaire?
Inanc Gumus

@deeperx Tout après le "-". En fin de compte, j'ai dû désinstaller le brassage et réinstaller à nouveau
PandaWood

@PandaWood Utilisez-vous des virgules correctes? Pouvez-vous copier-coller ici directement?
Inanc Gumus

24

Après la mise à jour vers El Capitan, /usr/locala des root:wheeldroits.

Modifiez les droits de l'utilisateur en utilisant:

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

et:

brew doctor && brew update

Cela m'a aidé à faire fonctionner Homebrew à nouveau.


2
n'est-ce pas assez dangereux?
FRAGA

Les autorisations /usr/localont été modifiées dans le système d'exploitation pour des raisons de sécurité - donc, ce n'est pas parce que vous avez "renvoyé les droits comme avant" que c'est une bonne chose à faire.
leanne

8

J'ai d'abord exécuté:

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

Ensuite:

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

1
Pour info, mon installation Homebrew était à /usr/local/Homebrew/donc je devais l'utiliser cd $(brew --prefix)/Homebrew.
Joshua Pinter

3

Ce problème devrait être résolu dans la dernière version de Homebrew. Essayez de le réinstaller, ce qui est décrit sur la page d'accueil de Homebrew .



0

Pour restaurer votre configuration Homebrew, essayez ceci:

cd /usr/local/Homebrew/Library && git stash && git clean -d -f && git reset --hard && git pull
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.