Ich habe Ruby auf meinem Ubuntu 16.04 installiert.
$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.
Jede Hilfe wird sehr geschätzt!
Sie müssen zuerst das von Ubuntu installierte Ruby mit etwas wie Sudo apt-get remove Ruby
Deinstallieren.
Installieren Sie dann Ruby mit rbenv und Ruby-build entsprechend den zugehörigen Dokumenten neu:
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
Der letzte Schritt ist die Installation von Bundler:
gem install bundler
rbenv rehash
Dann genießen Sie!
Derek
Wenn Sie die Distribution Ruby anstelle von rb-env/rvm verwenden möchten, können Sie einen GEM_HOME
Für Ihren aktuellen Benutzer einrichten. Erstellen Sie zunächst ein Verzeichnis zum Speichern des = Ruby Edelsteine für Ihren Benutzer:
$ mkdir ~/.Ruby
Aktualisieren Sie dann Ihre Shell, um dieses Verzeichnis für GEM_HOME
Zu verwenden und um Ihre Variable PATH
so zu aktualisieren, dass sie das Verzeichnis Ruby gem bin enthält.
$ echo 'export GEM_HOME=~/.Ruby/' >> ~/.bashrc
$ echo 'export PATH="$PATH:~/.Ruby/bin"' >> ~/.bashrc
$ source ~/.bashrc
(Diese letzte Zeile lädt die Umgebungsvariablen in Ihrer aktuellen Shell neu.)
Jetzt sollten Sie in der Lage sein, Ruby Edelsteine unter Ihrem Benutzer mit dem Befehl gem
zu installieren. Ich konnte dies zum Laufen bringen mit Ruby 2.5 .1 unter Ubuntu 18.04 Wenn Sie eine Shell verwenden, die nicht Bash ist, müssen Sie das Startskript für diese Shell anstelle von bashrc
bearbeiten.
(Januar 2019) Um Ruby mithilfe des Rbenv-Skripts zu installieren, gehen Sie folgendermaßen vor:
1. Aktualisieren Sie zunächst den Paketindex und installieren Sie die Pakete, die für die Erstellung des Ruby-Build-Tools erforderlich sind. Ruby from 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. Führen Sie als Nächstes den folgenden Befehl curl aus, um sowohl rbenv als auch Ruby-build zu installieren:
curl -sL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash -
3. Fügen Sie dem Systempfad $ HOME/.rbenv/bin hinzu.
Wenn Sie Bash verwenden, führen Sie Folgendes aus:
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
Wenn Sie Zsh run verwenden:
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(rbenv init -)"' >> ~/.zshrc
source ~/.zshrc
4. Installiere die neueste stabile Version von Ruby und setze sie als Standardversion mit:
rbenv install 2.5.1
rbenv global 2.5.1
So listen Sie alle verfügbaren Ruby Versionen auf, die Sie verwenden können:
rbenv install -l
5. Stellen Sie sicher, dass Ruby ordnungsgemäß installiert wurde, indem Sie die Versionsnummer ausdrucken:
Ruby -v
# Output
Ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
SOURSE: Wie installiert man Ruby unter Ubuntu 18.04
BEARBEITEN: Rubygems installieren:
Sudo apt-get install rubygems
Versuchen Sie es mit chown -R
auf der var/lib/gems
Verzeichnis, das dem Benutzer [rubyusername
], der mit Gems installiert und entwickelt wird, den Besitz zuweist.
# chown -R rubyusername:rubyusername /var/lib/gems
Dieses rekursiv ändert alles im Gems Verzeichnis. Für zusätzliche Sicherheit auf Mehrbenutzersystemen können Sie auch eine Gruppe erstellen, anstatt den einzelnen Ruby-Benutzernamen anzuzeigen, und Benutzer zu dieser Gruppe hinzufügen.
Anstatt die Besitzer zu ändern, was andere lokale Benutzer oder - eines Tages - Ihre eigenen Ruby server/deployment-things ..., die unter einem anderen Benutzer ausgeführt werden, aussperren könnte ...
Ich würde die Rechte dieses speziellen Ordners lieber einfach auf ... Nun, alle:
cd /var/lib
Sudo chmod -R a+w gems/
(Ich bin auch auf Ihren Fehler gestoßen. Das ist also ziemlich bestätigt.)
Aufbauend auf der obigen Antwort von derek wird im Allgemeinen nicht empfohlen, die vom System bereitgestellte Instanz Ruby für Ihre eigene Entwicklungsarbeit zu verwenden, da die Systemtools möglicherweise von der jeweiligen Version oder dem Speicherort der Ruby - Installation abhängen. Ähnlich wie bei diese Antwort für Mac OS X sollten Sie die Anweisungen von derek zur Verwendung von so etwas wie rbenv ( RVM befolgen ), um Ihre eigene Instanz Ruby zu installieren.
Es ist jedoch nicht erforderlich, die Systemversion von Ruby zu deinstallieren. Die Installationsanweisungen von rbenv bieten einen Mechanismus, mit dem sichergestellt wird, dass die in Ihrer Shell verfügbare Instanz von Ruby die rbenv-Instanz und nicht die Systeminstanz ist. Dies ist das
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
zeile in der Antwort von Derek.