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à.
sudo gem install fakes3 -n/usr/local/bin
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 à votre PATH
).
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.)
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.