comment faire pour installer des gems sans sudo
Sur tous mes gem installe j'ai à faire sudo ? Donc
sudo gem install rails
de travail, tout seul
gem install rails
ne fonctionnera 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
MODIFIER
J'ai réinstallé rvm à l'aide de curl -L get.rvm.io | bash -s stable --auto
(sans sudo).
Cependant encore lorsque 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
MODIFIER
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
- s'il vous plaît, ne pas installer des gems avec sudo, UTILISER RVM !!! ou toute autre version de ruby mannager
- Pour l'avertissement, nous allons voir si cette réponse de l'aide.
- Votre
chown
semble étrange pour moi. Ne devrait-elle pas êtremurtaza:murtaza
? - Fait, mais encore de l'erreur. Cependant j'ai vérifié le ~/.gem dir, et il ne marche pas avoir un fichier specs en premier lieu. Que dois-je faire ?
- Je suis à cours d'idées. Je n'ai jamais eu ce problème.
- double possible de 'sudo gem install" ou "gem install' et gem emplacements
- chmod pas chown. Il vous dit que vous avez un monde accessible en écriture le répertoire. Chown est le changement de l'UTILISATEUR. 'chmod 755 /certains/répertoire" sera de la faire taire.
- Le réponse par @leo.tan c'est juste parfait pour ne pas avoir besoin d'autorisations élevées, mais si tu voulais un exemple où
sudo
pu participer vérifier connexes répondre pour le réglage de communes Jekyll serveurs... également queInsecure world writable dir /opt in PATH, mode 040777
erreur mauvais et je suis sûr que vous avez quelque chose d'autre sali-up sur votre système maintenant.
Vous devez vous connecter pour publier un commentaire.
Utilisation
chown
sur l'ensemble de la.rvm
et.gem
répertoires de retour à votre utilisateur. Vous avez probablement utilisésudo
avant et ce foutu autorisations.Bien sûr, changer de nom d'utilisateur pour votre nom d'utilisateur et le groupe votre groupe
chown
votre~/.gem
.ls -l
sur n'importe quel répertoire dans votre dossier d'accueil (même le dossier lui-même) et vous aurez probablement trouver.sudo rvm fix-permissions username:groupname
Lorsque vous installez sans sudo, Ruby ne sait pas où elles sont installées. Je ne me souviens pas où il les installe par défaut, probablement quelque part comme ~/.les pierres précieuses ou de quelque chose. De toute façon, vous pouvez dire Ruby c'est là où ils sont installés par le réglage de la GEM_HOME variable d'environnement.
Si cela fonctionne, alors vous pourriez vous mettre dans votre ~/.bashrc (il y a un certain nombre de fichiers de ce qui pourrait aller, selon votre système)
GEM_HOME
est aussi de cette manière si vous ne souhaitez pas utiliserrvm
lorsque vous utilisez le système installé Ruby dans éphémères des machines par exemple, dans le conteneur Docker.Vous devez installer Ruby Version Manager. Il stocke installé rubis et de pierres précieuses dans votre home, alors maintenant, vous n'avez pas à utiliser
sudo
installer des gems. Il a beaucoup plus de fonctionnalités en plus de cela. 🙂sudo
là 🙂~/.rvm
et~/.rvm/.gem/specs
?~/.gem/specs
. J'ai fait une faute de frappe 🙂Pour les utilisateurs de Mac, cela fonctionne pour moi...
.bash_profile
Par exemple,
nano ~/.bash_profile
et les ajouter à l'exportationGEM_HOME=/Users/Michael/.gem
, où le chemin est à votre dossierÉgalement dans
.bash_profile
, ajouterexport PATH="$GEM_HOME/bin:$PATH"
Source: http://michaelehead.com/2016/02/06/installing-gems-without-sudo.html
gem install package --install-dir $GEM_HOME
comme mentionné par @Hola Soy Edu Feliz Navidadexport GEM_PATH="$GEM_HOME:$GEM_PATH"
J'ai résolu mon problème de la manière suivante: (j'ai ubuntu 17.10)
Ouvrir un terminal et tapez:
Puis ajouter ruby bin chemin dans .bashrc fichier
essayer
gem install package --install-dir $HOME/.gem
.N'oubliez pas de définir le chemin d'accès comme il a été mentionné avant
export PATH="$PATH:$HOME/.gem/bin"
.Quelque chose que vous avez à considérer est de changer le CHEMIN d'accès de l'ordre comme
export PATH="$HOME/.gem/bin:$PATH"
. Il peut arriver par exemple si vous essayez d'installer des rails dans votre répertoire local sur un système OS X, mais il y a un exécutable déjà intégré. Dans ce cas, si vous ne changez pas le chemin de la commande, vous recevrez également la sortie suivante:Et le réglage de la variable
GEM_HOME
commeexport GEM_HOME="$HOME/.gems"
MacOS
modifier
~/.zshrc
pour zsh (pour Bash pourrait être quelque chose comme~/.bash_aliases
)