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.