Ruby für alle Benutzer verfügbar machen


7

Ich beabsichtige, Ruby beim Programmieren meines Raspberry Pi zu verwenden, auf dem die Debian-basierten Occidentals ausgeführt werden. Über SSH habe ich ausgeführt:

curl -L https://get.rvm.io | bash -s stable --ruby

welches die Ruby-Quelle heruntergeladen und kompiliert hat. Es dauert ca. 2 Stunden. Ich möchte Ruby über AdaFruits WebIDE - http://learn.adafruit.com/webide/ verwenden . Bei der Ruby-Installation, die ich über SSH durchgeführt habe, wurde jedoch ein Ordner erstellt, der .rvmim piBenutzerverzeichnis aufgerufen wird , während die WebIDE das webideBenutzerkonto verwendet.

Was ist der beste Weg, um dem webideBenutzerkonto Zugriff auf Ruby zu gewähren ? Ich habe versucht, den .rvmOrdner von /home/pinach zu verschieben /etc/share, aber das hat nicht funktioniert. Beim Versuch, Ruby an einem Terminal zu verwenden, wurde die Fehlermeldung "FEHLER: Fehlende RVM-Umgebungsdatei: '/home/pi/.rvm/environments/ruby-2.0. 0-p353 '"also muss ich einen Link gebrochen haben.

Ich halte mich zurück, um eine weitere 2-stündige Installation für den Webide-Benutzer durchzuführen, da ich sicher bin, dass es einen besseren Weg gibt!

Antworten:


18

Entlassen Sie den Wert von RVM nicht

Sie können die Repository-Version von Ruby verwenden, aber ich würde empfehlen, einen anderen Weg zu gehen und RVM zum Verwalten von Ruby zu verwenden. Mir ist klar, dass es so aussieht, als würde es Sie verlangsamen, aber die Version von Ruby, die über die Repositorys bereitgestellt wird, obwohl sie verwendet werden kann, führt später häufig zu Problemen. Im Allgemeinen ist es am besten, dedizierte Versionen von Interpreten und erforderlichen Bibliotheken (Gems) zu erstellen, die für eine bestimmte Anwendung und / oder einen bestimmten Anwendungsfall reserviert werden können.

RVM bietet die Möglichkeit, für einen einzelnen Benutzer zu installieren (was Sie auch getan haben) sowie eine Installation für mehrere Benutzer durchzuführen.

$ curl -L https://get.rvm.io | sudo bash -s stable

Wenn Sie die Installation auf diese Weise ausführen, wird RVM automatisch veranlasst, eine Mehrbenutzerinstallation durchzuführen, unter der die Software installiert wird /usr/local/rvm. Von hier aus kann jeder, der zur Unix-Gruppe gehört, auf die Software zugreifen rvm.

$ sudo usermod -a -G rvm <user>

Wo <user>wäre der Benutzer webide.

Ruby installieren

Fügen Sie nun jedem Benutzer Folgendes hinzu $HOME/.bashrc. Ich setze dies im Allgemeinen am Ende der Datei:

[[ -s /usr/local/rvm/scripts/rvm ]] && source /usr/local/rvm/scripts/rvm

Damit möchten Sie sich abmelden und wieder anmelden.

HINWEIS 1: Es reicht nicht aus, eine andere Registerkarte im Gnome-Terminal zu starten, sondern es muss sich um eine neu angemeldete Sitzung handeln. Dies ist so, dass die Gruppe, zu der Sie diesen Benutzer gerade hinzugefügt haben, abgeholt wird.

HINWEIS 2: Sie müssen das Obige wahrscheinlich nicht zu Ihrem hinzufügen, $HOME/.bashrcwenn Sie feststellen, dass die folgende Datei bereits hier installiert ist. Dies führt das oben Genannte plus mehr für alle Benutzer aus, die sich in der Gruppe rvmauf dem System befinden.

$ ls -l /etc/profile.d/rvm.sh 
-rwxr-xr-x 1 root root 1698 Nov 27 21:14 /etc/profile.d/rvm.sh

Sobald Sie angemeldet sind, müssen Sie einen Ruby installieren. Sie können dies mit den folgenden Schritten als Benutzer tun webide.

Welche Versionen können installiert werden?

$ rvm list known | less
...
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-p374]
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p320]
[ruby-]1.9.3[-p484]
[ruby-]2.0.0-p195
[ruby-]2.0.0[-p353]
[ruby-]2.1.0-preview2
[ruby-]2.1.0-head
ruby-head
...

HINWEIS: Wenn Sie Ruby zum ersten Mal installieren, sollten Sie dies mit einem Benutzer tun, der über sudoRechte verfügt , damit Abhängigkeiten installiert werden können. Unter Ubuntu sehen Sie beispielsweise diese Art von Aktivität. Nach der Installation sollten auch andere Benutzer webidein der Lage sein, zusätzliche Rubine im Verzeichnis zu installieren /usr/local/rvm.

Installing requirements for ubuntu.
Updating system..............................................................................................................
Installing required packages: libreadline6-dev, zlib1g-dev, libssl-dev, libyaml-dev, libsqlite3-dev, sqlite3, autoconf, libgdbm-dev, libncurses5-dev, automake, libtool, bison, libffi-dev...............................................................................................
Requirements installation successful.

Installierte Versionen anzeigen

$ rvm list

rvm rubies

 * ruby-1.9.3-p484 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

2. Ruby installieren

$ whoami
webide

$ rvm install 2.0.0-p195
...
ruby-2.0.0-p195 - #validate binary
ruby-2.0.0-p195 - #setup
Saving wrappers to '/usr/local/rvm/wrappers/ruby-2.0.0-p195'........
ruby-2.0.0-p195 - #importing default gemsets, this may take time..................

Wenn wir nun auflisten, was installiert ist:

$ rvm list

rvm rubies

 * ruby-1.9.3-p484 [ x86_64 ]
   ruby-2.0.0-p195 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

Aus dem obigen können wir sehen, dass der Benutzer webideeinen Ruby installieren konnte.

Festlegen eines Standardwerts für alle RVM-Benutzer

$ rvm use ruby-2.0.0-p195 --default
Using /usr/local/rvm/gems/ruby-2.0.0-p195

$ rvm list

rvm rubies

   ruby-1.9.3-p484 [ x86_64 ]
=* ruby-2.0.0-p195 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

Wenn Sie sich als ein anderer Benutzer in der Gruppe rvmanmelden, können Sie die Auswirkungen ruby-2.0.0-p195der Standardeinstellung sehen.

$ rvm list

rvm rubies

=> ruby-1.9.3-p484 [ x86_64 ]
 * ruby-2.0.0-p195 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

Dieser Benutzer verwendet also ruby-1.9.3-p484und ist jetzt so konfiguriert, dass er auch ruby-2.0.0-p195als Standard verwendet wird.

Langsame Downloads / Installationen

Wenn Sie einen langsamen Download feststellen, können Sie stattdessen die Offline-Installationsmethode verwenden. Auf diese Weise können Sie später eine Neuinstallation durchführen. Oder der Download über dieses System ist problematisch, und Sie können das RVM-Installationsprogramm auf ein System herunterladen und anschließend scpdas Installationsprogramm auf dieses System kopieren.

$ curl -L https://github.com/wayneeseguin/rvm/tarball/stable -o rvm-stable.tar.gz

Weitere Informationen finden Sie hier, RVM im Offline-Modus .

Verweise


Vielen Dank. Welche Probleme könnte die Verwendung der Repo-Version verursachen?
Barry

In der Regel sind die Versionen der Dolmetscher im Repo für die Verwendung durch andere Software vorgesehen. Richtig, Sie können sie verwenden und meistens ist es kein Problem. Wenn Sie jedoch irgendeine Art von Anwendungsentwicklung durchführen, möchten Sie die Kontrolle über Ihre App sowie den von Ihnen verwendeten Interpreter und Gems behalten. RVM ist dafür geeignet, die Pakete in den Repos nicht.
slm

Hmmm ... Ich habe RVM mit dem von Ihnen beschriebenen Befehl neu installiert und den Webide-Benutzer zur RVM-Gruppe hinzugefügt, aber immer noch hat nur der Pi-Benutzer Zugriff auf Ruby.
Barry

Ich komme nicht über die "Welche Versionen können installiert werden?" Abschnitt als Webide sieht nicht rvm. Ich habe die Datei / etc / passwd in der Hoffnung überprüft, einige Unterschiede zwischen pi und webide zu finden, da ich nicht glaube, dass webide ein normaler Benutzer ist - sie wurde als Teil einer ide-Installation erstellt. Hier sind die beiden Einträge aus / ect / passwd: pi: x: 1000: 1000: ,,,: / home / pi: / bin / bash webide: x: 1001: 1002 :: / home / webide: / bin / sh
Barry

Ich glaube, ich habe es verstanden - in der Zeile in der .bashrc-Datei fehlt ein Schrägstrich. Seltsamerweise arbeitet der pi-Benutzer auch mit dem falschen Pfad in der .bashrc-Datei. Ich habe den Fehler nur entdeckt, da das Webide-Terminal nur von einem Browser aufgerufen werden kann und ich nicht einfügen kann, sodass ich es eingeben musste! Vielen Dank für Ihre Hilfe
Barry

1

Da Sie eine Debian-basierte Distribution ausführen, besteht die einfachste Möglichkeit, Ruby zu installieren, darin, Folgendes als Root auszuführen (z. B. mit sudooder einer von Ihnen bevorzugten Methode):

 aptitude install ruby

Vielen Dank. Wenn ich jetzt Ihre vorgeschlagene Methode verwenden würde, können Sie eine Möglichkeit vorschlagen, die vorherige Installation zu bereinigen? Mein Linux ist ein bisschen rostig! Wie bereits erwähnt, gibt es ein .rvm-Verzeichnis im Home-Verzeichnis des pi-Benutzers, aber ich vermute, dass es eine andere Konfiguration gibt - siehe die Fehlermeldung in meinem Beitrag
Barry

1
Ich glaube, ich habe es gefunden - rvm implode
barry
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.