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 wird und Gems und Ruby und andere Dinge in einer Terminalsitzung installiert werden, wurde sie erfolgreich installiert, sobald ich die Terminalsitzung schließe. Ich kann diese Gems nicht erhalten .
Durch mehr als 20 Neuinstallationen in den letzten 3 Tagen habe ich auch im Web gesucht. Mir wurde gesagt, dass ich die Umgebungsvariable in den von /etc/environment
mir wiedergegebenen Pfad in dieser Sitzung einfügen und in die /etc/environment
Datei einfügen soll .
Selbst jetzt bekomme ich meine installierten Edelsteine nicht
Beim Tippen werden rvm -v
folgende 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
- So stellen Sie PATH ein
- So legen Sie GEM_HOME fest
- 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/ruby-2.2.2@global/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
Antworten:
Klingt so, als ob Sie den Befehl
export
zum Festlegen von Umgebungsvariablen möchten :Dies wird jedoch nur für die aktuelle Sitzung wirksam. Fügen Sie diese Zeilen zu Ihrer hinzu, um sie dauerhafter zu machen
~/.bashrc
.quelle
Normalerweise bedeutet dies, dass rvm nicht richtig eingerichtet ist. Der übliche Fehler ist, dass Sie
.bashrc
Ihr Terminal 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 versuchen,
source ~/.rvm/scripts/rvm
festzustellen, ob dies 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.
quelle
source ~/.rvm/scripts/rvm
,~/.bashrc
um sicherzustellen, dass es jedes Mal geladen wird, wenn Sie eine neue Shell starten.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 eingerichtete RVM erstellen, und das tut sie auch. 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
Suchen Sie Ihre aktive (in der RVM) Ruby-Version: Wechseln Sie auf Ihrem Produktionsserver in Ihr App-Verzeichnis und geben Sie ein
$rvm list
. Dies führt zu einer Liste der installierten Ruby-Versionen, die für die RVM aktiv sind. 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 verwendet
ruby-1.9.3-p551
. Sie benötigen diese Informationen für den nächsten Schritt.Abrufen der Pfade für GEM_PATH und GEM_HOME : Sie tun dies, indem Sie es über die Befehlszeile ausführen
$rvm use ruby-1.9.3-p551
. Zeigen Sie dann noch in der Kommandozeile alle Umgebungseinstellungen mit dem Befehl anenv
. 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/ruby-1.9.3-p551@global GEM_HOME=/usr/local/rvm/gems/ruby-1.9.3-p551
Festlegen der Umgebungsvariablen GEM_HOME und GEM_PATH: 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/ruby-1.9.3-p551@global export GEM_HOME=/usr/local/rvm/gems/ruby-1.9.3-p551
quelle
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.
quelle
Wie bei @coteyr erwähnt, sollten Sie GEM_HOME und GEM_PATH bei der Verwendung nicht manuell festlegen
rvm
. Wenn Sie Ihre Umgebungsvariable PATH überprüfen, indem Sie$ echo $PATH
$ HOME / .rvm / bin ausführen und ein Teil davon sind, müssen Sie sicherstellen, dass Ihr Terminal Befehle als Anmeldeshell ausführt. Wenn Sie sich beispielsweise auf einem Ubuntu-Computer befinden, öffnen Sie Ihr Terminal und gehen zu: Menü> Bearbeiten> Profileinstellungen> Befehl. Wählen Sie dann "Befehl als Anmeldeshell ausführen".Dies scheint ein altes Problem zu sein, bei
rvm
dem ich davon ausgehe, dass es nicht trivial zu beheben ist, da es es schon eine Weile gibt.quelle
Zum Auffüllen
$GEM_PATH
mit meinem System (Manjaro / Arch) habegems
ich Folgendes hinzugefügt.bashrc
:quelle