Wie kann ich die Ruby-Version auf Passenger aktualisieren?

1952
Felix

Wie kann ich die auf meinem Passagiermodul für Apache installierte Ruby-Version verbessern?

Ich unter Debian 7 und es läuft Ruby 1.9.1, aber ich möchte 2.2.0

2
Können Sie Ihre Frage bitte bearbeiten, um anzugeben, welches Betriebssystem Sie verwenden? Linux nehme ich an, aber es würde helfen zu klären, warum Sie Ruby 1.9.1 installiert haben. klingt wie Ubuntu, richtig? Ich habe auch Passenger for Ruby installiert, aber ich bin nicht sicher, ob die Installation von Passenger die Ruby-Version an und für sich ändern würde. JakeGould vor 9 Jahren 0
Ich verwende Debian 7, entschuldige, dass ich das vermisst habe. Felix vor 9 Jahren 0
Ich habe Ihre Frage bearbeitet, um diese Details hinzuzufügen. Wie ich in meinem ersten Kommentar gesagt habe, hätten Sie Ihre Frage bearbeiten sollen, um anzugeben, welches Betriebssystem Sie verwenden. Können Sie Ihre Frage auch bearbeiten, um die genauen Befehle zu erläutern, die Sie zur Installation von Passenger und Ruby verwendet haben? JakeGould vor 9 Jahren 0

1 Antwort auf die Frage

2
slhck

Zuerst müssen Sie eine neuere Ruby-Version installieren. Sie können dies mit rbenv mit Ruby-Build oder RVM tun . Ich habe festgestellt, dass die erstere etwas einfacher zu bedienen und weniger aufdringlich ist. Installieren Sie einfach rbenv und ruby-build gemäß der Dokumentation.

rbenv install 2.2.0 

Nachdem Sie es installiert haben, setzen Sie Ihren globalen Ruby auf 2.2.0 (oder wie auch immer Sie den Namen des Ruby installiert haben):

rbenv global 2.2.0 

Sie müssen Ihre Shell erneut laden, damit dies wirksam wird. Beachten Sie, dass Sie which rubynur den Pfad zu einem sogenannten Shim erhalten, nicht zum eigentlichen Ruby-Interpreter. Um den Pfad herauszufinden, ändern Sie einfach die folgende Zeile und ändern Sie 2.2.0die Version, die Sie installiert haben.

Ändern Sie nun in der Passagierkonfiguration die PassengerRuby Option für Ihren virtuellen Host, z

PassengerRuby /usr/local/rbenv/versions/2.2.0/bin/ruby 

Laden Sie den Server neu, und Sie sollten fertig sein.

ist es das gleiche unter debian 7? Felix vor 9 Jahren 0
Dies ist eine anständige Antwort, die ich bestätigt habe, aber bevor ich die Philosophie von RVM und so richtig verstanden habe, habe ich die Repository-Pakete verwendet und dann Quellcode installiert. Diese Antwort ist also gut, setzt aber viel voraus. Etwas zu beachten. JakeGould vor 9 Jahren 0
Wenn ich Passenger für Apache2 installiert habe, werden die Ruby-Installationen automatisch mit der Installation geliefert. Gibt es keine bessere Möglichkeit, das Ruby-Update durchzuführen? Felix vor 9 Jahren 0
@Felix Die Ruby-Versionen, die mit Distributionen geliefert werden, sind häufig nicht die neuesten, daher ist es unwahrscheinlich, dass Sie eine offizielle Version 2.2.0 finden, die Sie direkt mit "apt-get" verwenden können (es gibt jedoch einige PPAs) (https: //www.brightbox.com/blog/2015/01/05/ruby-2-2-0-packages-for-ubuntu/)). Die allgemein empfohlene Methode, um ein aktuelles Ruby-Programm zu erhalten, ist die Verwendung von rbenv oder RVM. Das Kompilieren aus der Quelle selbst ist ebenfalls möglich, erfordert jedoch ein wenig mehr Wissen über Linux im Allgemeinen und ein wenig mehr Aufwand beim Versuch, zwischen mehreren Versionen zu wechseln. slhck vor 9 Jahren 0
@JakeGould Ich programmiere Rails seit einigen Jahren. Ich habe Best Practices und viele Tutorials gelesen und selten gesehen, dass Leute Quellcode-basierte Installationen ohne Ruby-Versionsmanager empfehlen. Ich verstehe, dass dies ein direkter Ansatz ist, aber es kann überwältigend sein. Zumindest für mich war es so. slhck vor 9 Jahren 0
@slhck Ich sage nicht, dass die Installation von Source die beste Möglichkeit ist, Rails zu aktualisieren. Ich sage nur, als ich ein Neuling war, ging ich zuerst von der Basis-Repository-Installation von Ruby über die Quellcode-Installation von Ruby für ein Upgrade und dann zu einem benutzerdefinierten PPA von Ruby für Upgrades und - nur wenn ich genau wusste, warum - ich zu RVM umgezogen. RVM oder Rbenv ist definitiv der Weg, aber das bedeutet nicht, dass dieses Originalposter diesen Weg eingeschlagen hat. JakeGould vor 9 Jahren 0
@ JakeGould ich sehe, danke für die Klarstellung. slhck vor 9 Jahren 1