Sous Ubuntu 13.04, j'essaie d'ajouter des variables à PATH
pour la session, ce qui est recommandé de le faire à l'intérieur de .pam_environment
, mais rien ne semble fonctionner. Voici à quoi ça ressemble:
Java_HOME DEFAULT=/usr/lib/jvm/Java-7-Oracle
IDEA_HOME DEFAULT=/usr/local/idea-IU-129.451/bin
LIGHTTABLE_HOME DEFAULT=/usr/local/LightTable
CLOUDIFY_HOME DEFAULT=/home/eliranm/builds/gigaspaces-cloudify
PATH DEFAULT=${PATH} OVERRIDE=${PATH}:${Java_HOME}:${IDEA_HOME}:${LIGHTTABLE_HOME}:${CLOUDIFY_HOME}
Il semble que toutes les variables sont définies à l'exception de PATH
ou qu'elle est remplacée d'une manière ou d'une autre. J'ai essayé d'ajouter ou d'ajouter la variable ${PATH}
, d'utiliser DEFAULT
seulement, OVERRIDE
uniquement, j'ai essayé de définir un chemin codé en dur comme valeur, sans résultat.
Je suis les recommandations de la communauté d'aide Ubuntu et je veux éviter de concaténer des chemins codés en dur vers le PATH
à l'intérieur de /etc/environment
car ce n'est pas la bonne portée, de plus, il sera difficile à maintenir. sans variables.
D'autres peuvent être concernés par ce problème, comme indiqué ici , mais personne n'a fourni de solution à ce jour.
Comment faire ce travail?
Je pense que l'utilisation de la variable $PATH
à l'intérieur de la portée de /etc/environment
ou ~/.pam_environment
ne soit pas résolue, mais assignée telle quelle.
En fait, je vois utiliser $PATH
ou n'importe quelle variable à l'intérieur de ~/.pam_environment
étant découragé dans la plupart des posts que je lis comme ici: Pourquoi ma variable d'environnement n'est-elle pas définie .
Donc, je ne sais pas vraiment pourquoi ici ( variables d'environnement de session ) ils disent d'utiliser $PATH
en elle.
Je sais que Debian a supprimé l'analyse syntaxique du ~/.pam_environment
local car il s'agit d'un risque de sécurité élevé.
Quoi qu'il en soit, pour ma compréhension, les deux fichiers /etc/environment
et ~/.pam_environment
utilisent une syntaxe plus simple (paires simples KEY=VAL
pour chaque ligne), puis /etc/security/pam_env.conf
(VARIABLE [DEFAULT=[value]] [OVERRIDE=[value]]
). Donc, peut-être aucune référence à la variable ne peut être faite à l'intérieur de celle-ci.
Je me suis également heurté à ce problème parce que j'essayais de le faire comme le dit la documentation (j'utilise traditionnellement les systèmes Redhat).
Je pense que l’utilisation de $ {PATH} ne fonctionne que si votre chemin a été défini à l’origine dans le fichier /etc/security/pam_env.conf. Il me semble que le chemin d’origine est défini dans /etc/login.defs, puis qu’il n’est pas disponible.
Je suis revenu à la définition des valeurs dans ~/.profile, j'ai passé trop de temps à déboguer cette chose apparemment simple. Je me demande ce que font les autres utilisateurs Ubuntu. Nous ne pouvons pas être les premiers à vouloir ajouter la variable de chemin. Je suppose qu'ils ont fait la même chose et ont ignoré ~/.pam_environment.