2010-06-13 2 views
5

Ich liebe RVM. Mir ist klar, dass der Hauptanwendungsfall darin liegt, verschiedene Benutzer zwischen verschiedenen Versionen von Ruby wechseln zu lassen. Nehmen wir an, ich stelle eine Rails-App auf einem Server bereit und möchte nur eine einzige Ruby-Version ausführen. Vor allem möchte ich 1.9.2, das mit RVM ein Kinderspiel ist, aber ohne es schmerzt. Gibt es eine Möglichkeit, dass ich sagen kann "Ich möchte, dass dies die kanonische Ruby-Installation für alle Benutzer ist" (zusammen mit all seinen Edelsteinen), ohne dass ich eine Reihe von Symlinks manuell erstellen muss und sie jedes Mal ändere, wenn ich auf ein neueres aktualisiere Ruby-Veröffentlichung?Kann ich mit RVM eine einzige Version von Ruby für alle Benutzer verwalten?

Antwort

9

Installieren Sie RVM als Root und tun Sie eine sudo rvm use 1.9.2 --default. Jede Benutzerquelle, die /usr/local/rvm/scripts/rvm hat, wird standardmäßig 1.9.2 haben.

+1

Wenn Sie weitere Fragen zu RVM haben, gibt es Leute, die rund um die Uhr im #rvm-Kanal auf freenode helfen: http://webchat.freenode.net/?channels=rvm. –

+0

Ich bin mir nicht sicher, was Sie unter "Beliebige Benutzerquellen"/usr/local/rvm/scripts/rvm' meinen ... Ich denke an Folgendes: Wenn ich einen Webserver habe, auf dem meine Rails-App läuft, Ich möchte sicher sein, dass es Ruby 1.9.2 und die entsprechenden Edelsteine ​​verwendet. Wie kann ich den Webserver-Benutzer dazu bringen, RVM zu verwenden? –

+0

Das hängt wirklich davon ab, welchen Webserver Sie verwenden. Sourcing bedeutet das Laden dieser Datei in Ihre Umgebung (d. H. Legen Sie die Zeile 'source/usr/local/rvm/scripts/rvm' in Ihrer'/etc/bashrc' oder etwas). Sicherzustellen, dass Ihr Webserver 1.9.2 verwendet, ist im Wesentlichen der gleiche wie sicherzustellen, dass er den System-Ruby verwendet: Er muss an erster Stelle im Pfad stehen. Dafür sorgt unter anderem das rvm sourcing. –

3

Ich weiß, das nicht ganz Ihre Frage beantworten, aber:

ich in mehrere Probleme lief mit der Installation von global RVM und griff ein Benutzerkonto für die Bereitstellung und für alle Ruby-/ Rails-Prozesse zu verwenden -, dass die Nutzer Das Konto existiert auf allen Dev- und Produktionsservern und das .rvm-Verzeichnis wird von einem Dev-Server zu allen anderen Servern rsync.

Wie viele verschiedene Benutzer auf Ihren App-Servern müssen wirklich auf Ruby 1.9.2 zugreifen? Kannst du das nicht einfach auf einen Benutzer reduzieren? Das hat am besten für mich funktioniert.

Hinweis:

Eine Sache, die Sie wahrscheinlich vermeiden wollen ist RVM auf dem App-Server (n) manuell zu installieren und dann installieren Ruby und Gems auf dem App-Server ... Sie wollen nicht, Werkzeuge zu halten wie cc aus Sicherheitsgründen auf deinen Produktionsservern herumliegen! rsync'ing das .rvm-Verzeichnis ist viel sicherer! und das Ergebnis ist viel konsequenter!

Verwandte Themen