J'ai Ruby installé sur mon Ubuntu 16.04.
$which Ruby
/usr/bin/Ruby
$Ruby -v
Ruby 2.3.0p0 (2015-12-25) [x86_64-linux-gnu]
$gem install bundler
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /var/lib/gems/2.3.0 directory.
Toute aide sera fortement appréciée!
Vous devez d’abord désinstaller le Ruby installé par Ubuntu avec quelque chose comme Sudo apt-get remove Ruby
.
Ensuite, réinstallez Ruby en utilisant rbenv et Ruby-build en fonction de leur documentation:
cd $HOME
Sudo apt-get update
Sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $Shell
git clone https://github.com/rbenv/Ruby-build.git ~/.rbenv/plugins/Ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/Ruby-build/bin:$PATH"' >> ~/.bashrc
exec $Shell
rbenv install 2.3.1
rbenv global 2.3.1
Ruby -v
La dernière étape consiste à installer Bundler:
gem install bundler
rbenv rehash
Alors profitez-en!
Derek
Si vous souhaitez utiliser la distribution Ruby au lieu de rb-env/rvm, vous pouvez configurer un GEM_HOME
pour votre utilisateur actuel. Commencez par créer un répertoire pour stocker les gems Ruby pour votre utilisateur:
$ mkdir ~/.Ruby
Puis mettez à jour votre shell pour qu'il utilise ce répertoire pour GEM_HOME
et pour mettre à jour votre variable PATH
afin d'inclure le répertoire Ruby gem bin.
$ echo 'export GEM_HOME=~/.Ruby/' >> ~/.bashrc
$ echo 'export PATH="$PATH:~/.Ruby/bin"' >> ~/.bashrc
$ source ~/.bashrc
(Cette dernière ligne rechargera les variables d'environnement dans votre shell actuel.)
Vous devriez maintenant pouvoir installer Ruby gems sous votre utilisateur à l'aide de la commande gem
. J'ai pu faire fonctionner cela avec Ruby 2.5.1 sous Ubuntu 18.04. Si vous utilisez un shell autre que Bash, vous devez éditer le script de démarrage de ce shell au lieu de bashrc
.
(janvier 2019) Pour installer Ruby à l'aide du script Rbenv, procédez comme suit:
1. Tout d’abord, mettez à jour l’index des packages et installez les packages nécessaires à l’outil de compilation Ruby pour compiler Ruby à partir de la source:
Sudo apt-get remove Ruby
Sudo apt update
Sudo apt install git curl libssl-dev libreadline-dev zlib1g-dev autoconf bison build-essential libyaml-dev libreadline-dev libncurses5-dev libffi-dev libgdbm-dev
2. Ensuite, exécutez la commande curl suivante pour installer rbenv et Ruby-build:
curl -sL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash -
3. Ajoutez $ HOME/.rbenv/bin au système PATH.
Si vous utilisez Bash, exécutez:
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
Si vous utilisez Zsh, exécutez:
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(rbenv init -)"' >> ~/.zshrc
source ~/.zshrc
4. Installez la dernière version stable de Ruby et définissez-la comme version par défaut avec:
rbenv install 2.5.1
rbenv global 2.5.1
Pour répertorier toutes les versions disponibles de Ruby, vous pouvez utiliser:
rbenv install -l
5. Vérifiez que Ruby a été correctement installé en imprimant le numéro de version:
Ruby -v
# Output
Ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
SOURSE: Comment installer Ruby sur Ubuntu 18.04
EDIT: Installez rubygems:
Sudo apt-get install rubygems
Essayez d'utiliser chown -R
dans le répertoire var/lib/gems
, en attribuant la propriété à l'utilisateur [rubyusername
] dans cet exemple, l'utilisateur qui va installer et développer à l'aide de gems.
# chown -R rubyusername:rubyusername /var/lib/gems
Ceci récursivement change tout dans le répertoire gems . Pour plus de sécurité sur les systèmes multi-utilisateurs, vous pouvez également créer un groupe plutôt que de chowner le nom rubyusername individuel et ajouter des utilisateurs à ce groupe.
Plutôt que de changer de propriétaire, ce qui risquerait de verrouiller d'autres utilisateurs locaux, ou, un jour, votre propre Ruby serveur/élément de déploiement ... exécuté sous un autre utilisateur ...
Je préférerais simplement étendre les droits de ce dossier particulier à ... eh bien, tout le monde:
cd /var/lib
Sudo chmod -R a+w gems/
(J'ai aussi rencontré votre erreur. C'est donc assez vérifié.)
S'appuyant sur la réponse de derek ci-dessus, il n'est généralement pas recommandé d'utiliser l'instance fournie par le système Ruby pour votre propre travail de développement, car les outils système peuvent dépendre de la version ou de l'emplacement particulier de la Ruby installer. Semblable à cette réponse pour Mac OSX , vous voudrez suivre les instructions de Derek pour utiliser quelque chose comme rbenv ( RVM est une alternative similaire) pour installer votre propre Ruby instance.
Toutefois, il n'est pas nécessaire de désinstaller la version système de Ruby. Les instructions d'installation de rbenv fournissent un mécanisme permettant de s'assurer que l'instance de Ruby disponible dans votre shell est l'instance de rbenv, et non l'instance du système. C'est le
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
ligne dans la réponse de Derek.