comment installer des gemmes sans sudo
sur toutes mes installations gem je dois faire sudo ? Donc
sudo gem install rails
fonctionne, alors que seulement
gem install rails
ne fonctionne pas. Comment puis-je y remédier ?
j'ai rvm installé -
murtaza@murtaza-dev:~$ which rvm
/home/murtaza/.rvm/bin/rvm
murtaza@murtaza-dev:~$ which gem
/home/murtaza/.rvm/rubies/ruby-1.9.3-p194/bin/gem
Cependant, je suis également de cet avertissement lorsque j'effectue des opérations avec gem -
murtaza@murtaza-dev:~$ gem
/home/murtaza/.rvm/rubies/ruby-1.9.3-p194/bin/gem:4: warning: Insecure world writable dir /opt in PATH, mode 040777
EDIT
j'ai réinstallé rvm à l'aide de curl -L get.rvm.io | bash -s stable --auto
(sans sudo).
par contre quand j'essaie d'installer le gem, il me donne l'erreur suivante -
murtaza@murtaza-dev:~$ gem install rails
/home/murtaza/.rvm/rubies/ruby-1.9.3-p194/bin/gem:4: warning: Insecure world writable dir /opt in PATH, mode 040777
ERROR: While executing gem ... (Errno::EACCES)
Permission denied - /home/murtaza/.gem/specs
EDIT
j'ai fait un chown sur l'ensemble de la chose, mais encore obtenir l'erreur -
murtaza@murtaza-dev:~$ sudo chown murtaza.murtaza -R ~/.rvm/*
murtaza@murtaza-dev:~$ gem install rails
/home/murtaza/.rvm/rubies/ruby-1.9.3-p194/bin/gem:4: warning: Insecure world writable dir /opt in PATH, mode 040777
ERROR: While executing gem ... (Errno::EACCES)
Permission denied - /home/murtaza/.gem/specs
5 réponses
Utiliser chown
dans l'ensemble .rvm
et .gem
répertoires de retour à votre utilisateur. Vous avez probablement utilisé sudo
avant et ce foutu autorisations.
sudo chown -R username:group ~/.rvm
sudo chown -R username:group ~/.gem
bien sûr, changez le nom d'utilisateur en votre nom d'utilisateur groupe votre groupe
quand vous les installez sans sudo, Ruby ne sait pas où ils sont installés. Je ne me souviens pas où il les installe par défaut, probablement quelque part comme ~/.des gemmes ou quelque chose comme ça. De toute façon, vous pouvez dire à Ruby que C'est là qu'ils sont installés en définissant la variable D'environnement GEM_HOME.
$ # assuming your gems are stored in ~/.gems
$ GEM_HOME="$HOME/.gems" ruby my_program.rb
Si cela fonctionne, alors vous pourriez vous mettre dans votre ~/.bashrc (il y a un certain nombre de fichiers possibles dans lesquels cela pourrait entrer, selon votre système)
Vous devriez installer Ruby Version Manager. Il stocke les rubis et les gemmes installés dans votre dir maison, donc maintenant vous ne devez pas utiliser sudo
pour installer des gemmes. Il a beaucoup plus de fonctionnalités en plus de cela. :)
pour les utilisateurs Mac, cela fonctionne pour moi...
- ajouter GEM_HOME à votre
.bash_profile
Par exemple, nano ~/.bash_profile
exporter GEM_HOME=/Users/Michael/.gem
où le chemin est vers votre propre dossier personnel
- ajouter les exécutables gem à votre chemin système
.bash_profile
, ajouter export PATH="$GEM_HOME/bin:$PATH"
Source:http://michaelehead.com/2016/02/06/installing-gems-without-sudo.html
j'ai résolu mon problème de la manière suivante: (j'ai ubuntu 17.10)
ouvrir le terminal et taper:
echo "gem: --user-install" >> ~/.gemrc
puis ajouter le chemin bin de ruby .bashrc fichier
export PATH="$PATH:$HOME/.gem/ruby/x.x.x/bin"