Ich habe im Internet gesehen, dass auch andere Leute dieses Problem hatten, aber die Lösungen waren nicht schlüssig, deshalb wollte ich noch einmal darauf aufmerksam machen.
Laut dieser Seite im Ubuntu-Wiki: https://help.ubuntu.com/community/EnvironmentVariables Die empfohlene Methode zum Festlegen sitzungsweiter Umgebungsvariablen besteht darin, ~/.pam_environment zu ändern.
Hier ist mein Ziel:
- Ich möchte eine Umgebungsvariable ANDROID_HOME erstellen, die als Wert einen Pfad zu einem bestimmten Speicherort in meinem Home-Ordner hat.
- Ich möchte dem PATH zwei Ordner hinzufügen.
Folgendes habe ich getan. Die Datei ~/.pam_environment existierte nicht, also habe ich sie erstellt und die folgenden Zeilen hinzugefügt:
ANDROID_HOME=${HOME}/Android/Sdk
PATH DEFAULT=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
Abgemeldet und wieder angemeldet.
Das Ergebnis entspricht nicht meinen Erwartungen. Ich habe das Terminal geöffnet und $ANDROID_HOME wiederholt und das ist, was ich bekommen habe:
${HOME}/Android/Sdk
Sieht so aus, als ob es ${HOME}
nicht durch meinen Home-Ordnerpfad ersetzt wird. Warum ist das so?
Beachten Sie cd
-ing zu $ANDROID_HOME (das Android/Sdk befindet sich tatsächlich in meinem Home-Ordner):
anvar@crazymachine:~$ cd $ANDROID_HOME
bash: cd: ${HOME}/Android/Sdk: No such file or directory
Auch das Echo von $PATH ergab Folgendes:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:${HOME}/Android/Sdk/tools:${HOME}/Android/Sdk/platform-tools
Warum werden die Variablen nicht durch ihre Werte ersetzt, wie es logisch wäre, insbesondere wenn das Beispiel auf der oben genannten Site den Eindruck erweckt hat, dass Variablen innerhalb der Werte verwendet werden können?
Wie kann ich sitzungsweite Umgebungsvariablen richtig festlegen, auf die auch GUI-Programme Zugriff haben?
Antwort1
Das Beispiel indas Wiki, zum Setzen von Sitzungsvariablen über ~/.pam_environment
, gibt in einer Anmerkung an:
Damit die Variablenerweiterung funktioniert, ist die zum Ändern von PATH verwendete Syntax erforderlich, die sich von der in Skriptdateien unterscheidet.
Daher sollte Ihre erste Zeile wie folgt aussehen:
ANDROID_HOME DEFAULT=${HOME}/Android/Sdk
Antwort2
Zwei Vorschläge:
1. Die Form Ihrer Umwelterklärungen sollte sein:
ANDROID_HOME=$HOME/Android/Sdk
PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
zweitens, platzieren Sie Ihre neuen Umgebungsanweisungen in~/.profile
Antwort3
Ich denke, Sie benötigen möglicherweise eine, export HOME
nachdem Sie die Pfadvariable eingerichtet haben (in ~/.bashrc tun wir das).