fragen stichworte

PATH-Umgebungsvariable für alle Benutzer ändern. (Ubuntu)

Ich habe kürzlich die Ruby Enterprise Edition (REE) auf einem Ubuntu 8.04-Server kompiliert.

Ich möchte meinen PATH aktualisieren, um sicherzustellen, dass diese neue Version von Ruby (in /opt/ruby_ee/bin gefunden) die ältere Version in /usr/local/bin ersetzt. (Ich möchte jedoch immer noch die alte Version.)

Ich möchte, dass sich diese PATH-Änderungen auf alle Benutzer und Crontabs auswirken.

Lösungsversuch Nr. 1:

In der REE-Dokumentation wird empfohlen, den REE-Ordner bin am Anfang des globalen PATH in /etc/environment zu platzieren. Ich habe den PFAD in dieser Datei geändert, um zu lesen:

PATH="/opt/ruby_ee/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

Mein PATH wurde davon nicht beeinflusst.

Versuchte Lösung # 2:

Als Nächstes habe ich diesen Anweisungen gefolgt und die PATH-Einstellung in /etc/login.defs und /etc/crontab aktualisiert. (Ich habe /etc/sudoers nicht geändert.)

Dies hatte auch keine Auswirkungen auf mein PATH, auch nachdem der Server abgemeldet und neu gestartet wurde.

Sonstige Angaben:

  • Ich habe anscheinend das gleiche Problem, das hier beschrieben wird.
  • Ich teste mit den Befehlen "echo $PATH" und "ruby -v".
  • Meine Shell ist bash. Mein .bashrc überschreibt meinen PFAD nicht.
  • Ja, ich habe vom Ruby Version Manager-Projekt gehört. ;)

antworten

Haben Sie versucht, die Standard-Bashrc zu ändern? Dies sollte sich entweder in/etc/bashrc oder in/etc/bash.bashrc befinden (ich denke, es ist die zweite in Ubuntu). Stellen Sie dann in Ihrem Home-Verzeichnis sicher, dass Ihr .bash_profile Folgendes enthält:

if [ -f/etc/bash.bashrc ]; then
    ./etc/bash.bashrc
fi

Dadurch wird sichergestellt, dass die systemweit definierten Variablen in die Shell des Benutzers eingelesen werden. Diese if-Anweisung sollte standardmäßig in dem .bash_profile enthalten sein, das erstellt wird, wenn Sie adduser (ich weiß, dass es sich in RHEL befindet).

Nur um klar zu sein, /etc/environment wird erst geladen, wenn Sie eine neue Shell/ein neues Login öffnen.
Hast du dich abgemeldet und an?