Je ne suis pas en mesure d'installer et d'exécuter fakes3
gem sur El Capitan Beta 5.
J'ai essayé:
sudo gem install fakes3
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/fakes3
Ensuite, j'ai essayé de le faire à la manière des cocoapodes. Cela a fonctionné pour les cocoapodes mais pas pour les faux3.
mkdir -p $HOME/Software/ruby
export GEM_HOME=$HOME/Software/ruby
gem install cocoapods
[...]
1 gem installed
gem install fakes3
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
sudo
pour installer Ruby ou pour changer les gemmes. Utilisez plutôt rbenv ou RVM pour installer et gérer Ruby. Lisez et suivez les instructions sur leurs sites respectifs. Et, dans les deux cas, après l'installation, ne l'utilisez pas àsudo
moins que vous ne compreniez ce qui change et pourquoi vous voudriez le faire.Réponses:
Avertissement: @theTinMan et d'autres développeurs Ruby soulignent souvent qu'il ne faut pas l'utiliser
sudo
lors de l'installation de gemmes et pointent vers des choses comme RVM . C'est absolument vrai lors du développement de Ruby. Allez-y et utilisez cela.Cependant, beaucoup d' entre nous veulent juste un peu binaire qui arrive à distribuer comme une pierre précieuse (par exemple
fakes3
,cocoapods
,xcpretty
...). Je ne veux certainement pas me soucier de gérer un rubis séparé. Voici vos options les plus rapides:Option 1: continuer à utiliser sudo
L'utilisation
sudo
est probablement bien si vous souhaitez que ces outils soient installés globalement.Le problème est que ces binaires sont installés dans
/usr/bin
, ce qui est interdit depuis El Capitan. Cependant, vous pouvez les installer à la/usr/local/bin
place. C'est là que Homebrew installe son matériel, donc il existe probablement déjà.Les gemmes seront installées
/usr/local/bin
et chaque utilisateur de votre système pourra les utiliser si elles se trouvent dans leur PATH .Option 2: installer dans votre répertoire personnel (sans sudo)
Ce qui suit installera des gemmes
~/.gem
et y placera des binaires~/bin
(que vous devrez ensuite ajouter à votrePATH
).gem install fakes3 --user-install -n~/bin
Faites-en la valeur par défaut
Dans tous les cas, vous pouvez ajouter ces paramètres à votre
~/.gemrc
afin de ne pas avoir à vous en souvenir:gem: -n/usr/local/bin
c'est à dire
echo "gem: -n/usr/local/bin" >> ~/.gemrc
ou
gem: --user-install -n~/bin
c'est à dire
echo "gem: --user-install -n~/bin" >> ~/.gemrc
( Astuce: vous pouvez également
--no-document
ignorer la génération de la documentation des développeurs Ruby.)la source
gem install
résolu le problème..gemrc
devrait avoirgem: -n /usr/local/bin
(besoin d'un espace après -n).Dans mon cas, j'ai dû réinstaller Ruby en utilisant Brew . Cela semble avoir résolu le problème car je peux à nouveau installer des gemmes.
Après cela, vous devez vous déconnecter et vous reconnecter, soit graphiquement, soit en redémarrant simplement votre terminal.
la source
brew install ruby
qu'il le met là, même s'il est déjà là. Vraisemblablement, le ruby dans / usr / local est configuré pour installer ses gemmes dans un emplacement qui n'a pas besoin d'un accès root (ce qui est parfaitement logique en fait).gem install
échouera toujours.rehash
pour vous assurer que votre shell se rend compte qu'il y a un nouveauruby
plus tôt sur le$PATH
. Même cela ne sera pas nécessaire dans le cas où vous n'aviez pasruby
encore exécuté la session shell.C'est à cause de la nouvelle fonction de sécurité d'OS X "El Capitan". Essayez d'ajouter
--user-install
au lieu d'utiliser sudo:Par exemple, si vous souhaitez installer fake3, utilisez simplement:
la source
Essaye ça. Cela fonctionnera certainement.
la source
Vous devez mettre à jour Xcode vers le plus récent (v7.0.1) et tout fonctionnera normalement.
Si après avoir installé le dernier Xcode et ne fonctionne toujours pas, essayez d'installer gem de cette manière:
Par exemple:
la source
Il semble que lors de la mise à niveau vers OS X El Capitain, le répertoire / usr / local est modifié de plusieurs manières:
[Edit] Il y a aussi une chose préliminaire à faire: mettre à jour Xcode ...
Solution pour # 1:
$ sudo chown -R $(whoami):admin /usr/local
Cela fixe les autorisations sur le
/usr/local
répertoire qui sera ensuite aider à la foisgem install
et lesbrew install|link|...
commandes fonctionnent correctement.Solution au n ° 2:
Problèmes basés sur Ruby
Assurez-vous que vous avez fixé les autorisations du
/usr/local
répertoire (voir # 1 ci-dessus)Essayez d'abord de réinstaller votre gem en utilisant:
Notez qu'il installera la dernière version du gem spécifié.
Si vous ne voulez pas faire face à des problèmes de compatibilité descendante, je vous suggère de déterminer d'abord la version de la gemme que vous souhaitez obtenir, puis de la réinstaller avec le
-v version
. Voir un exemple ci-dessous pour vous assurer que le système n'obtiendra pas une nouvelle version de capistrano.$ gem list | grep capistrano capistrano (3.4.0, 3.2.1, 2.14.2) $ sudo gem install capistrano -v 3.4.0
Problèmes liés à la bière
Mettez à jour l'infusion et améliorez vos formules
Vous devrez peut-être également relier certains d'entre eux manuellement
la source
Comme on l'a dit, le problème vient d'une fonction de sécurité de Mac OSX depuis "El Capitan".
En utilisant le système par défaut Ruby, le processus d'installation se déroule dans le
/Library/Ruby/Gems/2.0.0
répertoire qui n'est pas disponible pour l'utilisateur et donne l'erreur.Vous pouvez consulter les paramètres de vos environnements Ruby avec la commande
Il existe un RÉPERTOIRE D'INSTALLATION et un RÉPERTOIRE D'INSTALLATION UTILISATEUR. Pour utiliser le répertoire d'installation de l'utilisateur au lieu du répertoire d'installation par défaut, vous pouvez utiliser le
--user-install
paramètre à la place,sudo
ce qui n'est jamais une manière recommandée de faire.Il ne devrait plus y avoir de problème de droits dans le processus. Les gemmes sont ensuite installées dans le répertoire utilisateur:
~/.gem/Ruby/2.0.0/bin
Mais pour rendre les gemmes installées disponibles, ce répertoire doit être disponible dans votre chemin. Selon la FAQ de Ruby , vous pouvez ajouter la ligne suivante à votre
~/.bash_profile
ou~/.bashrc
if which ruby >/dev/null && which gem >/dev/null; then PATH="$(ruby -rubygems -e 'puts Gem.user_dir')/bin:$PATH" fi
Puis fermez et rechargez votre terminal ou rechargez votre
.bash_profile
ou.bashrc
(. ~/.bash_profile
)la source
Voici la solution que j'ai utilisée:
Remarque: ce correctif est pour la boussole comme je l'ai écrit sur une autre question SO, mais j'ai utilisé le même processus pour restaurer les fonctionnalités de tous les processus terminaux, évidemment les gemmes que vous installez sont différentes, mais le processus est le même.
J'ai eu le même problème. Cela est dû à la mise en œuvre par Apple de la protection de l'intégrité du système (SIP). Vous devez d'abord désactiver cela ...
Redémarrez en mode de récupération:
Redémarrez et maintenez Commande + R jusqu'à ce que vous voyiez le logo Apple.
Une fois démarré, sélectionnez Utilitaires> Terminal dans la barre supérieure.
type:
csrutil disable
puis tapez:
reboot
Une fois redémarré
Ouvrez le terminal de sauvegarde et entrez les commandes:
sudo gem uninstall bundler
sudo gem install bundler
sudo gem install compass
sudo gem install sass
sudo gem update --system
Les gemmes individuelles qui ont échoué doivent être corrigées, alors pour chacune, procédez comme suit:
Sur ma machine, c'était la première dépendance qui ne fonctionnait pas, je l'ai donc répertoriée :
sudo gem pristine ffi --version 1.9.3
Parcourez la liste des gemmes qui doivent être réparées. En tout, vous attendez environ 10 minutes pour le réparer, mais vous aurez des commandes de terminal pour le fonctionnement de la boussole.
Capture d'écran
la source
Si le gem que vous essayez d'installer nécessite des bibliothèques xml, essayez ceci:
sudo gem install -n /usr/local/bin <gem_name> -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib/
Plus précisément, j'ai rencontré un problème lors de l'installation du nokogiri gem v 1.6.8 sur OS X El Capitan
et cela a finalement fonctionné pour moi:
sudo gem install -n /usr/local/bin nokogiri -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib/
Pour vous assurer que libxml2 et libxslt sont installés, vous pouvez faire:
puis vérifiez que les outils de ligne de commande xcode sont installés:
devrait renvoyer cette erreur:
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
la source
La réinstallation de RVM a fonctionné pour moi, mais j'ai dû réinstaller toutes mes gemmes par la suite:
rvm implode \curl -sSL https://get.rvm.io | bash -s stable --ruby rvm reload
la source
J'ai rencontré le même problème après l'installation d'El Capitan, j'ai essayé d'installer sass et compass dans un projet symfony, la commande suivante a renvoyé l'erreur suivante:
$ sudo gem installer la boussole
ERREUR: Erreur lors de l'installation de la boussole: ERREUR: Échec de la création de l'extension native gem.
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb
vérification de ffi.h ... /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/mkmf.rb:434:in `try_do ': Le compilateur n'a pas réussi à générer un fichier exécutable. (Erreur d'exécution)
J'ai donc essayé d'installer sass avec: $ sudo gem install sass
Vous avez le même message d'erreur, après quelques recherches sur Google, j'ai réussi à installer sass à l'aide de la commande suivante:
$ sudo gem install -n / usr / local / bin sass
Ce qui précède a fonctionné pour moi avec l'installation de sass mais n'a pas fonctionné pour l'installation de la boussole. J'ai lu que quelqu'un quelque part avait ouvert une instance de xcode puis l'avait refermée, puis avait exécuté avec succès la même commande, après quoi cela fonctionnait pour eux. J'ai tenté d'ouvrir xcode mais j'ai été invité par un message disant que la version de xcode installée n'était pas compatible avec El Capitan. J'ai donc mis à jour xcode à partir de l'App Store, relancé la commande suivante qui cette fois s'est exécutée avec succès:
$ sudo gem install -n / usr / local / bin compass
J'ai ensuite pu lancer $ compass init
J'ai maintenant tous mes joyaux en marche et je peux continuer à construire de jolis trucs sass :)
la source
Je devais
rm -rf ./vendor
alors courir àbundle install
nouveau.la source
Vous pourriez avoir deux options:
~
répertoire aka votre répertoire personnel.Si vous utilisez homebrew, la commande est:
Pour la désinstallation des rails sans homebrew, la commande est:
Cela devrait réinstaller le dernier ruby en exécutant la commande:
curl -L https://get.rvm.io | bash -s stable --rails<br>
Mac a 2.6.3 installé en usine, et c'est nécessaire ... sinon exécutez cette commande:
rvm install "ruby-2.6.3"
puis:
Vous obtiendrez quelques messages d'erreur à la fin indiquant que vous devez ajouter d'autres ensembles ...
Assurez-vous simplement que vous êtes dans le
~
répertoire de base lors de l'installation afin que les autorisations ne soient pas un problème, mais juste dans Cas...J'ai de nouveau couru:
et:
ce qui m'a dit que je devais télécharger du fil, je n'ai pas enregistré la sortie pour cela. En gros, j'ai fait tout ce que l'invite m'a dit de faire si cela avait à voir avec mon système d'exploitation.
-RÉ
la source
Je n'aime pas installer des trucs avec sudo. une fois que vous avez commencé avec sudo, vous ne pouvez plus vous arrêter.
essayez d'accorder des autorisations au répertoire Gems.
sudo chown -R $(whoami) /Library/Ruby/Gems/2.0.0
la source
sudo chown -R $(whoami):admin /usr/local
Cela rendra les autorisations (Homebrew y installe ruby)
la source