Ich finde die Aufgabe, Ruby 2.0 auf dem neuesten Ubuntu 14.04 zu installieren, ziemlich frustrierend. Mir ist bewusst, dass ich auf die Pakete verzichten und von der Quelle installieren könnte - aber ich würde weitaus lieber ein Paket installieren - wenn das möglich ist.
Ich fand diese Frage / Antwort über Ruby am 13.10. - was so aussah, wie ich es wollte.
Leider scheint die Strategie nicht umsetzbar zu sein - das Paket ruby-switch wurde im 14.04 gelöscht.
http://www.ubuntuupdates.org/package/core/trusty/universe/base/ruby-switch
Das Löschen des Pakets verweist auf einen Fehler , der für mich völlig unabhängig aussieht.
Ich wundere mich, warum die Installation von ruby2.0 mit apt-get ruby1.9 installiert und es zum Standard-Ruby-Interpreter macht. Ich bekomme eine Ruby2.0-Binärdatei - aber Skripte (die bei der Ausführung von Ruby von einem 2.0-Interpreter abhängen) nehmen sie nicht auf. Wenn ich gem et. al. Installation von Ruby-Paketen - Diese scheinen für Ruby1.9 und nicht für 2.0 installiert zu sein. Sehr unbefriedigend.
Kann jemand einen Hinweis geben, wie Ruby 2.0 am einfachsten als Standard-Ruby-Interpreter installiert werden kann? Wie soll ich ohne Ruby-Switch von Ruby 1.9 auf 2.0 umsteigen?
quelle
Die Debian-Version von Ruby unterstützt nicht mehrere Ruby-Installationen auf demselben System. Debian hat das Paket veraltet und Ubuntu hat es gerade aus den Repositories entfernt. Sie sollten verwenden
rbenv
, um zwischen verschiedenen Rubin-Versionen zu wechseln. Dies ist die empfohlene Methode in der Paketbeschreibung von ruby-switch und wurde im Fehler 737782 als bevorzugte Methode erörtert. Es wird angegeben, dass die Repositorys nicht mehr als eine Version von ruby enthalten dürfen.Ruby 2.0 wird standardmäßig bei der Installation des
ruby2.0
Pakets installiert , und es sind keine weiteren Aktionen erforderlich. Wenn das Paketruby
installiert wurde, wird empfohlen, es zu entfernen. Sie sollten die Binärdatei/usr/bin/ruby2.0
auf Ihrem System verfügbar haben .quelle
quelle
ln -fs
das Update erzwingen und die Verwendung der immer beängstigendrm -rf
Wenn Sie zwischen Rubinen wechseln möchten, empfehle ich die Verwendung von rvm ( https://rvm.io ). Es ist ein Paketmanager, mit dem Sie viele verschiedene Rubine (nicht nur Matz) auf einem Computer installieren können , entweder lokal für den Benutzer oder global für alle Benutzer.
Ich weiß, dass Sie nach einem "Paket" gefragt haben, also funktioniert das vielleicht nicht für Sie. Aber ich dachte, es könnte helfen, wenn dies Ihre Entwicklungsmaschine ist.
Dies hat den Vorteil, dass Sie ein Gemset für 2.1.1 und andere für 2.0 oder 1.9.3 usw. installieren können. Sie können auch jruby, rubinius usw. testen, ohne Ihr System auf eines festlegen zu müssen.
Ich benutze es nicht für die Produktion, aber anscheinend ist es sowohl für diese als auch für die Entwicklung geeignet.
Hier ist der Schnellstart: https://rvm.io/rvm/install
quelle
Spät im Spiel, aber ich denke, dass diese Verwendung eine vielleicht umfassendere Lösung als
update-alternatives
das Festcodieren von Symlinks darstellt. Sie wird hier ausführlich veröffentlicht, falls andere von der gleichen Frustration gebissen werden und eine native Lösung wünschen. Hiermit werden alle Binärdateien und Manpages verarbeitet, wobei die Verweise vorab entfernt werden, um Konflikte zu vermeiden.Vorsichtsmaßnahmen:
update-alternatives
daher ist es möglich, dass dies übertrieben ist und / oder klug getan wird.Skript (ich benannte
fix-ruby-alternatives.sh
):quelle
${RECMD}
und${CMD}
ohne Anführungszeichen aufrufen , anstatt zu verwendeneval
. Noch ein Hinweis: Ich leihe mir "klug" aus. :)