Courir ' sudo gem list --local
' et ' gem list --local
' me donnent des résultats différents. Mon chemin de gemme est défini dans mon dossier personnel et contient uniquement les gemmes de ' gem list --local
'.
Ce n'est probablement pas bon d'avoir des gemmes installées dans différents répertoires sur mon ordinateur, alors devrais-je avoir le chemin des gemmes défini différemment, et devrais-je toujours l'utiliser sudo
lors de l'installation de quelque chose?
my ~/.profile
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
~ / .bash_profile est vide.
ruby-on-rails
ruby
macos
rubygems
raphael_turtle
la source
la source
sudo gem install rails
place degem install rails
.sudo
est une arme chargée pointée vers votre pied. L'utiliser sans comprendre ce qu'il fait et comment il peut affecter votre système, c'est comme appuyer sur la gâchette les yeux fermés. Vous pourriez tirer un trou dans votre pied, peut-être pas, mais dans tous les cas, vous ne voulez pas courir le risque à moins de savoir comment réparer les dégâts. Utilisation d'sudo
écritures dans le Ruby appartenant au système, qui, sur Mac OS, a été installé par Apple pour ses propres utilisations. Nous pouvons nous en servir, mais changer la mauvaise chose peut casser leur code. C'est pourquoi nous installons à partir des sources ou utilisons quelque chose d'autre pour installer où nous pouvons le modifier en toute sécurité.Réponses:
Contrairement à tous les autres articles, je suggère de NE PAS utiliser
sudo
lors de l'installation de gemmes.Au lieu de cela, je vous recommande d'installer RVM et de commencer une vie heureuse avec des maisons de pierres précieuses portables et différentes versions de Ruby vivant toutes sous un même toit.
Pour les non-initiés, d'après la documentation :
La raison pour laquelle l'installation de gemmes avec
sudo
est pire que justegem install
est qu'elle installe les gemmes pour TOUS LES UTILISATEURS commeroot
. Cela peut être bien si vous êtes la seule personne à utiliser la machine, mais si vous ne l'êtes pas, cela peut causer de l'étrangeté.Si vous décidez que vous voulez souffler tous vos joyaux et recommencer, il est beaucoup plus facile et plus sûr de le faire en tant qu'utilisateur non root.
Si vous décidez que vous souhaitez utiliser, l'
RVM
utilisationsudo
causera toutes sortes de bizarreries car chaque version de Ruby que vous installezRVM
a son propre GEM_HOME.De plus, c'est bien si vous pouvez rendre votre environnement de développement aussi proche que possible de votre environnement de production, et en production, vous installerez probablement des gemmes en tant qu'utilisateur non root.
la source
Vous pouvez également installer des gemmes dans votre environnement local (sans
sudo
) avecJe recommande cela pour ne pas jouer avec la configuration de votre système, même s'il s'agit d'un ordinateur mono-utilisateur.
Vous pouvez vérifier où vont les gemmes en regardant gempaths avec
gem environment
. Dans mon cas, c'est "~ / .gem / ruby / 1.8".Si vous avez besoin d'ajouter des binaires à partir d'installations locales à votre chemin, vous pouvez ajouter quelque chose à votre bashrc comme:
(à partir de http://guides.rubygems.org/faqs/#user-install )
la source
rake install
et pour corriger le sudo isse, j'ai dû patcher manuellement l'/Library/Ruby/Gems/2.0.0/gems/bundler-1.7.3/lib/bundler/gem_helper.rb
ajout--user-install
là-bas. Impossible de trouver une meilleure solution, car semblerake install
n'accepte pas de paramètres supplémentaires.Mieux encore, mettez
--user-install
votre fichier ~ / .gemrc pour ne pas avoir à le taper à chaque foisla source
Au cas où vous
ajoutez ce qui suit à votre
.bash_profile
:Ouvrez un nouvel onglet dans Terminal OU
source ~/.bash_profile
et vous êtes prêt à partir!la source
En relation (pour les utilisateurs de bundler), si vous voulez une alternative plus légère à RVM qui mettra tout dans un répertoire bien connu spécifique à l'utilisateur, je vous recommande d'utiliser:
si vous souhaitez installer des gemmes au même endroit que
les installera,
.gem/ruby/RUBYVERSION
dans votre homedir. (Voir l'autre commentaire sur cette question sur--user-install
.)Cela rendra les gemmes visibles
gem list
, désinstallables viagem uninstall
, etc. sans avoir besoin d'sudo
accès. Les scripts exécutables installés par gem ou bundler peuvent être placés dans votre chemin en ajoutantà votre
$PATH
.gem
lui-même vous en informe s'il n'est pas défini lorsque vous le faitesgem install --user-install
.la source
installera votre gem globalement , c'est-à-dire qu'il sera disponible dans tous les contextes de l'utilisateur.
la source
Vous pouvez installer des gemmes dans un dossier spécifique (exemple de fournisseur /) dans votre application Rails en utilisant:
la source