it-swarm.com.de

So setzen Sie Ruby GEM_HOME und GEM_PATH

Ich bin ein NOVICE-Benutzer von Linux und verwende Linux Mint 17.1

Ich habe Linux Mint 20 in den letzten 3 Tagen für dieses Problem neu installiert, konnte es jedoch nicht beheben

Ich versuche, Ruby auf Rails mit rvm zu installieren. Wenn eine neue Linux-Installation gestartet und Gems und Ruby und andere Dinge in einer Terminalsitzung installiert werden Es wurde erfolgreich installiert, sobald ich die Terminalsitzung schließe. Ich kann diese Juwelen nicht bekommen.

Durch mehr als 20 Neuinstallationen in den letzten 3 Tagen habe ich auch im Web gesucht. Mir wurde gesagt, dass ich die Umgebungsvariable in /etc/environment Einfügen soll. Ich habe den Pfad in dieser Sitzung wiederholt und diesen in die Datei /etc/environment Eingefügt.

selbst jetzt bekomme ich meine installierten Edelsteine ​​nicht

wenn ich rvm -v eingegeben habe, werden die folgenden Fehler angezeigt

Warning: PATH set to RVM Ruby but GEM_HOME and/or GEM_PATH not set, see:
    https://github.com/wayneeseguin/rvm/issues/3212

Warning! PATH is not properly set up, $GEM_HOME is not set,
         usually this is caused by Shell initialization files - check them for 'PATH=...' entries,
         it might also help to re-add RVM to your dotfiles: 'rvm get stable --auto-dotfiles',
         to fix temporarily in this Shell session run: 'rvm use Ruby-2.2.2'.
rvm 1.26.11 (latest) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]

Ich bin ein sehr unerfahrener Mensch, wenn es um die Arbeit mit dem Terminal geht. Ich kann einige grundlegende Befehle ausführen, um mit Ruby zu arbeiten.

Ich würde gerne wissen

  1. So stellen Sie PATH ein
  2. So legen Sie GEM_HOME fest
  3. So setzen Sie GEM_PATH

Unten ist mein vollständiger Weg

echo $PATH
/home/sharif/.rvm/gems/Ruby-2.2.2/bin:/home/sharif/.rvm/gems/[email protected]/bin:/home/sharif/.rvm/rubies/Ruby-2.2.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/sharif/.rvm/bin
10
Amjad

Klingt so, als ob Sie den Befehl export zum Festlegen von Umgebungsvariablen benötigen:

export PATH=$PATH':/path/to/add'
export GEM_HOME=$HOME/.gem
export GEM_PATH=$HOME/.gem

Dies wird jedoch nur für die aktuelle Sitzung wirksam. Um sie dauerhafter zu machen, fügen Sie diese Zeilen Ihrem ~/.bashrc.

18
Jonathan

Normalerweise bedeutet dies, dass rvm nicht richtig eingerichtet ist. Der übliche Fehler ist, dass Sie Ihren .bashrc Nicht korrekt (oder ähnlich) geändert oder Ihr Terminal nicht neu geladen haben.

Sie sollten GEM_HOME oder GEM_PATH nicht manuell festlegen, wenn Sie rvm verwenden.

Sie können source ~/.rvm/scripts/rvm Versuchen und sehen, ob das funktioniert.

Es kann auch sein, dass Sie noch kein Gemset gebaut haben. Verwenden Sie nicht rvm und Sudo. Rvm funktioniert am besten, wenn es in Ihrem Konto installiert ist und nicht systemweit.

3
coteyr

Ich habe festgestellt, dass .profile zuletzt geladen wird und ~/.local/bin und ~/bin an die Spitze des Pfads gesetzt werden. Ich habe /etc/profile.d/rvm.sh nach ~/.rvm verschoben und ganz am Ende von .profile "source ~/.rvm/rvm.sh" hinzugefügt und der Fehler ist verschwunden. Ich bin auf Linux Mint 18.3. Ich habe pyenv, rvm und sdkman installiert und alle wollen die letzten sein. Sie arbeiten jetzt alle gut. :) :)

Wenn es sich um ein gemeinsam genutztes System handelt, verschieben Sie rvm.sh einfach irgendwo aus dem Pfad, und jeder andere Benutzer kann es beziehen, z. B. aus /opt/rvm/rvm.sh.

2
RandyB

Hier ist, was ich gelernt habe und wie ich dieses scheinbar häufige Problem gelöst habe, dass die Umgebungsvariablen GEM_HOME und GEM_PATH keinen Fehler setzen.


Hintergrund

Die RVM-Installation soll GEM_HOME- und GEM_PATH-Umgebungsvariablen für jede RVM erstellen, die eingerichtet wird, und das tut sie. Aber es gibt anscheinend einen Fehler, der dazu führt, dass die env-Variablen in einigen Fällen nur vorübergehend festgelegt werden. Um sie erneut festzulegen, müssen Sie sie über die Befehlszeile festlegen. Ich habe eine Problemumgehung gefunden, um die Umgebungsvariablen für eine RVM beizubehalten.

Problemumgehung

  1. Finden Sie Ihre aktive (in der RVM) Ruby Version : Gehen Sie auf Ihrem Produktionsserver in Ihr App-Verzeichnis und geben Sie $rvm list Ein. Dies führt zu a Liste der Ruby installierten Versionen und welche für die RVM aktiv ist. Beispiel für die Antwort:

    rvm rubies Ruby-1.9.3-p547 [ x86_64 ] => Ruby-1.9.3-p551 [ x86_64 ]

Ich weiß also, dass die RVM derzeit die Version Ruby-1.9.3-p551 Verwendet. Sie benötigen diese Informationen für den nächsten Schritt.

  1. Holen Sie sich die Pfade für GEM_PATH und GEM_HOME: Sie tun dies, indem Sie über die Befehlszeile $rvm use Ruby-1.9.3-p551 Ausführen. Zeigen Sie dann noch in der Kommandozeile alle Umgebungseinstellungen mit dem Befehl env an. Suchen Sie nach GEM_PATH und GEM_HOME und kopieren Sie diese vollständig in einen Arbeitsbereich.

    GEM_PATH=/usr/local/rvm/gems/Ruby-1.9.3-p551:/usr/local/rvm/gems/[email protected] GEM_HOME=/usr/local/rvm/gems/Ruby-1.9.3-p551

  2. Legen Sie die Umgebungsvariablen GEM_HOME und GEM_PATH fest : Legen Sie nun diese Umgebungsvariablen in einer der vielen Profildateien fest. Ich wollte die Isolationsstruktur der RVM-Version beibehalten und habe daher die Datei /profile.d/appspecific.sh mit den folgenden zwei Zeilen aktualisiert:

    export GEM_PATH=/usr/local/rvm/gems/Ruby-1.9.3-p551:/usr/local/rvm/gems/[email protected] export GEM_HOME=/usr/local/rvm/gems/Ruby-1.9.3-p551

2
Va As

Wie bei @coteyr erwähnt, sollten Sie GEM_HOME und GEM_PATH nicht manuell festlegen, wenn Sie rvm verwenden. Wenn Sie Ihre Umgebungsvariable PATH überprüfen, führen Sie $ echo $PATH und $ HOME/.rvm/bin ist Teil davon, dann müssen Sie sicherstellen, dass Ihr Terminal Befehle als Login-Shell ausführt. Wenn Sie sich beispielsweise auf einem Ubuntu-Computer befinden, öffnen Sie Ihr Terminal und gehen zu: Menü> Bearbeiten> Profileinstellungen> Befehl und wählen dann "Befehl als Anmeldeshell ausführen".

Dies scheint ein altes Problem mit rvm zu sein, das meiner Meinung nach nicht trivial zu beheben ist, da es es schon eine Weile gibt.

1
Lym

Zum Auffüllen von $GEM_PATH mit meinem System (Manjaro/Arch) gems Ich habe zu meinem .bashrc:

for _entry in /usr/lib/Ruby/gems/*; do
  if [[ -d $_entry ]]; then
    # TODO: Add only if not there already
    export GEM_PATH=$_entry:$GEM_PATH
  fi
done
unset _entry
1
Tom Hale