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
23
demandé sur murtaza52 2012-07-25 10:05:27

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

27
répondu Pedro Nascimento 2013-03-22 13:13:08

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)

13
répondu Joshua Cheek 2012-07-25 06:15:17

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. :)

6
répondu Sergio Tulentsev 2012-07-25 06:07:24

pour les utilisateurs Mac, cela fonctionne pour moi...

  1. 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

  1. 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

1
répondu eMarine 2017-07-27 10:10:29

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"
0
répondu djangodude 2018-09-09 16:28:29