Login
Newsletter
Werbung

Do, 8. Juni 2017, 15:01

Ruby-Versionen verwalten mit rbenv

Wenn man ein Ruby-Projekt einsetzt, kann es vorkommen, dass man eine bestimmte Version benötigt, die nicht in der Distribution enthalten ist. rbenv schafft Abhilfe.

Als Entwickler oder Administrator kann man vor dem Problem stehen, dass ein Projekt oder eine Software, die man einsetzen möchte, eine bestimmte Version von Ruby voraussetzt. Die Distribution, die man nutzt stellt dagegen eine andere Version zur Verfügung. Was tun? Ein Wechsel der Distribution oder ein Arbeiten in virtuellen Maschinen oder Containern steht aus vielerlei Gründen oft nicht zur Debatte. Man muss also eine passende Ruby-Version installieren - zusätzlich oder ersatzweise zur vorhandenen Version.

Das Problem ist natürlich nicht auf Ruby beschränkt. Es kann sich genauso mit C und C++ (GCC, Clang), Python, Perl und anderen Sprachen stellen. Gelöst wird es auf unterschiedliche Weise, so sehen die Distributionen oft bereits den parallelen Einsatz von verschiedenen GCC- oder Clang-Versionen vor. Für Python und Perl existieren virtualenv und perlbrew, um Versionen komplett unabhängig vom Betriebssystem zu installieren. Etwas sehr Ähnliches existiert auch für Ruby: rbenv.

Manche Distributionen enthalten rbenv bereits, doch dabei kann es sein, dass rbenv nicht aktuell genug ist, um neuere als die in der Distribution angebotenen Ruby-Versionen zu installieren. Hier wird deshalb beschrieben, wie man die aktuellste Version von rbenv von seiner Projektseite bezieht und einrichtet.

rbenv wird nicht allein verwendet, sondern sinnvollerweise zusammen mit ruby-build. Dieses Plugin für rbenv stellt das Kommando rbenv install zur Verfügung, ohne das die ganze Übung nutzlos wäre. rbenv wird direkt aus dem Github-Repositorium installiert. Es ist daher sinnvoll, vorher Git zu installieren. Wer das nicht möchte, kann auch eine Zip-Datei herunterladen und entpacken, eine Aktualisierung ist dann aber etwas aufwendiger. Der Quellcode kann in ein beliebiges Verzeichnis, beispielsweise das Home-Verzeichnis oder /usr/src, installiert werden. Dazu führt man die folgenden Kommandos aus. Das configure && make compiliert eine optionale Shell-Erweiterung. Sollte dies scheitern, ist rbenv dennoch benutzbar.

git clone https://github.com/rbenv/rbenv.git
cd rbenv
src/configure && make -C src
cp libexec/rbenv /usr/local/bin

Mit rbenv bzw. rbenv help und der Manpage kann man sich nun bereits einen Überblick über das Programm verschaffen. Bevor man jedoch mit rbenv init das System initialisiert, sollte man sich überlegen, wo die Daten von rbenv liegen sollen. Standardmäßig wird das versteckte Verzeichnis .rbenv im eigenen Home-Verzeichnis genutzt. Das kann insbesondere im Fall von root oder bei einer systemweiten Installation unerwünscht sein. Deshalb wird in diesem Artikel /usr/local/rbenv genutzt. Das wird rbenv über die Umgebungsvariable RBENV_ROOT mitgeteilt:

export RBENV_ROOT=/usr/local/rbenv

Dieses Verzeichnis existiert noch nicht, aber wir wollen sowieso noch ruby-build installieren. Auch dieses wird von Github bezogen:

mkdir -p /usr/local/rbenv/plugins
cd /usr/local/rbenv/plugins
git clone https://github.com/rbenv/ruby-build.git

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung