Wir haben gerade unsere neuen Server hochgefahren und führen CentOS auf allen aus. Nach der erfolgreichen Installation von Ruby Enterprise Edition möchte ich nun das /usr/lib/ruby-enterprise/bin
Verzeichnis REE / bin (im Verzeichnis) hinzufügen , um es zum Standard-Ruby-Interpreter auf dem Server zu machen.
Ich habe Folgendes ausprobiert, wodurch es nur der aktuellen Shell-Sitzung hinzugefügt wird:
export PATH=/usr/lib/ruby-enterprise/bin:$PATH
Was wäre der richtige Ansatz sein , um dauerhaft für dieses Verzeichnis $ PATH Hinzufügen aller Benutzer . Ich bin derzeit als root angemeldet.
Danke im Voraus!
~/.profile
ist eine andere gültige Option auchNachdem ich den Ratschlägen von fmonk gefolgt war, habe ich mich umgesehen und
/etc/bashrc
festgestellt, dass "Umgebungsmaterial in / etc / profile abgelegt wird ". Ich schaute hinein/etc/profile
und sah folgendes:Um mein Problem zu lösen, habe ich einfach
pathmunge /usr/lib/ruby-enterprise/bin
unter der if-Anweisung hinzugefügt . Dies löste mein Problem.quelle
"$EUID" = "0"
in diesem Zusammenhang bedeutet?/etc/profile.d/
Ordner an und Sie werden es bemerken. Wie bereits erwähnt, könnte ein Systemupdate Ihre Lösung rückgängig machen.Daher würde ich Umgebungsvariablen nicht in bashrc einfügen, da dies nicht nur gegen die gängigen Konventionen verstößt, sondern Sie auch Ihre bashrc-Variablen vermissen, wenn Sie ein Terminal aus einer grafischen Desktop-Umgebung aufrufen.
Auf Redhat in der
/etc/profile
fand ich diesen Kommentar:Wenn Sie Umgebungsvariablen auf Benutzerbasis festlegen möchten, tun Sie dies in der .bash_profile-Datei des Benutzers.
Unterwegs
.bash_profile
las ich:Fazit
Wenn nur root Programme sehen soll, die sich im Verzeichnis /
sbin
I befinden, würde ich diesen Pfad zur root-.bash_profile
Datei hinzufügen . Aber wenn Sie jeden Benutzer wollen , was wurzelspezifische Programme zu sehen sind , auf Ihrem System installiert ich setzen würde/sbin
in/etc/.profile
. Jetzt kann jeder Benutzer mithilfe der Tab-Vervollständigung nach root-spezifischen Programmen suchen und bei Bedarf die Rechte erhöhen.Sonderfall: SSH
Wenn ssh über eine Befehlszeile gestartet wird, wird eine interaktive Anmeldeshell gestartet. Aber in diesem Fall
/etc/profile
wird nicht gelesen. Als ich Umgebungsvariablen in der.bash_profile
Datei jedes Benutzers definierte, funktionierte es mit ssh.quelle
SORRY hat die Frage falsch interpretiert. Die folgende Frage bezieht sich auf das Profil eines BENUTZERS und lässt es für den Fall, dass es jemandem hilft
Ändern Sie .bash_profile
Dann fügen Sie irgendwo in der Datei Ihre Pfade hinzu / ändern Sie sie, getrennt durch:
Laden Sie dann Ihr Profil neu
oder abmelden und erneut anmelden
Wenn Sie PATH aktivieren, sollten Ihre neu hinzugefügten Pfade darin enthalten sein
quelle
Sie können Umgebungsvariablen in einer RC-Datei festlegen. Für Bash-Shells (ich glaube die gebräuchlichste und Standardeinstellung in CentOS) hat jeder Benutzer eine Datei mit dem Namen .bashrc in seinem Ausgangsverzeichnis.
Fügen Sie dieser Datei den Befehl PATH = / usr / lib / ruby-enterprise / bin: $ PATH hinzu, um ihn für einen bestimmten Benutzer festzulegen.
Um es für alle Benutzer festzulegen (wie Sie bereits erwähnt haben), ändern Sie es in / etc / bashrc (die Standardeinstellung .bashrc im Ausgangsverzeichnis jedes Benutzers sollte diese Datei als Quelle haben, aber Sie sollten dies doppelt markieren).
quelle