Ich habe gerade einen neuen Ubuntu 13.10-Server mit Ruby 2.1.1 eingerichtet rvm
.
Das Problem ist, dass ich jedes Mal, wenn ich zum Benutzer "Rails" (dem Benutzer, mit dem ich Ruby und Rails installiert habe) wechsle, laufen muss, /bin/bash --login
bevor Ubuntu erkennt, dass Ruby, Rails oder rvm
installiert sind.
Hoffe jemand weiß:
- Was macht der obige Befehl?
- Warum muss ich es ausführen?
- und was kann ich tun, um es ein für alle Mal zu lösen? :) :)
Jede Hilfe wird geschätzt!
su
? Oder so ähnlichsu -l
odersu --
?). Was ist die Login-Shell für Benutzer "Rails"? Haben Sie die PATH-Variable des Benutzers geändert und wenn ja, in welcher Datei (~/.profile
oder~/.bashrc
oder~/.bash_profile
oder ...?)Antworten:
Es klingt so, als ob die Umgebung, die das System benötigt, um die installierten Ruby-Komponenten zu finden, in einer Datei angegeben ist, die nur für Login-Shells gelesen wird. Auf der Bash-Handbuchseite wird Folgendes über den Unterschied zwischen Login-Shells und Nicht-Login-Shells gesagt:
und
wohingegen
Wenn sich die Ruby-Umgebungsvariablen beispielsweise in
/home/rails/.profile
oder befinden/etc/profile
, werden sie der Shell-Umgebung hinzugefügtsu -l rails
odersu --login rails
oder der Kurzformsu - rails
rails
über SSH anmeldetbash --login
nach dem LoginWenn Sie möchten, dass die Ruby-Umgebung unabhängig davon festgelegt wird, wie Sie zum Benutzer wechseln
rails
, können Sie~/.bashrc
stattdessen die relevanten Variablendefinitionen in die des Benutzers verschieben .quelle
Ich weiß, dass diese Frage vor 2 Jahren gestellt wurde, aber falls jemand (wie ich) noch vor ihr steht: @steeldriver hat recht - Sie vermissen etwas in Ihrem,
bashrc
das Sie in einer dieser 3 Dateien haben. In meinem Fall musste ich nur diese Zeile in meine einfügen~/.bashrc
:quelle