web-dev-qa-db-fra.com

Comment définir des variables d'environnement de session et PATH?

J'ai vu d'autres personnes sur Internet également avoir ce problème, mais les solutions n'ont pas été concluantes. Je voulais donc le rappeler à nouveau.

Selon cette page du wiki Ubuntu: https://help.ubuntu.com/community/EnvironmentVariables La méthode recommandée pour définir les variables d'environnement de la session est de modifier ~/.pam_environment.

Voici ce que mon objectif est:

  1. Je souhaite créer une variable d'environnement Android_HOME qui aurait pour valeur un chemin d'accès à un certain emplacement de mon dossier de départ.
  2. Je veux ajouter deux dossiers à la PATH.

Voici ce que j'ai fait. Le fichier ~/.pam_environment n’existait pas, je l’ai donc créé et y ai ajouté les lignes suivantes:

Android_HOME=${HOME}/Android/Sdk
PATH DEFAULT=${PATH}:${Android_HOME}/tools:${Android_HOME}/platform-tools

Déconnecté et reconnecté.

Le résultat n'est pas attendu. J'ai ouvert le terminal et répercuté $ Android_HOME et c'est ce que j'ai obtenu:

${HOME}/Android/Sdk

On dirait que le ${HOME} n'est pas remplacé par le chemin de mon dossier personnel. Pourquoi est-ce si?

Observez cd- ing dans $ Android_HOME (Android/Sdk existe réellement dans mon dossier personnel):

anvar@crazymachine:~$ cd $Android_HOME
bash: cd: ${HOME}/Android/Sdk: No such file or directory

Échoignant également $ PATH m'a donné ceci:

/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

Pourquoi les variables ne sont-elles pas substituées avec leurs valeurs comme il serait logique d'assumer, en particulier lorsque l'exemple du site susmentionné donnait une impression telle que des variables peuvent être utilisées dans les valeurs?

Quelle est la bonne façon de définir des variables d'environnement à la session auxquelles les programmes à interface graphique ont également accès?

5
alvarez

L'exemple de le wiki , pour la définition de variables de session via ~/.pam_environment, indique dans une note:

La syntaxe utilisée pour modifier PATH, qui diffère de celle des fichiers de script, est nécessaire pour que le développement des variables fonctionne.

Par conséquent, votre première ligne devrait ressembler à ceci:

Android_HOME DEFAULT=${HOME}/Android/Sdk
3
Gunnar Hjalmarsson

Deux suggestions:

1er - la forme de vos déclarations environnementales devrait être:

Android_HOME=$HOME/Android/Sdk
PATH=$PATH:$Android_HOME/tools:$Android_HOME/platform-tools

deuxièmement, placez vos nouvelles instructions d'environnement dans ~/.profile

0
Charles Green