[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: variable globale d'environnement



Bonjour,

Le mercredi 15 avril 2015 à 22:24, humbert.olivier.1@free.fr a écrit :
> À partir de là, si je redémarre, et que j'arrive sous MATE, j'ai ces 2 choses
> : - avec le ALT-CTRL-F1 (c'est TTY1 ça, il me semble), alors "env |grep
> "MA_VARIABLE" me montre bien que ma variable est propagée ici. Pas de soucis.
> - si je lance un mate-terminal depuis MATE, le même "env |grep "MA_VARIABLE"
> ne me retourne rien.  Je trouve ça étrange puisque de mon point de vue, les
> définitions dans /etc/profile devraient s'appliquer partout.  Ceci dit, j'ai
> lu sur les différentes doc que ça n'est pas aussi simple.

Ce comportement s'explique (comme indiqué dans la précédente réponse) par la
distinction entre shell de connexion (quand tu es en TTY) et shell « classique »
(non-login). Dans le cas du terminal MATE, ce n'est pas un shell de connexion,
il ne lit donc pas ce fichier.

> Du coup, j'ai essayé de placer MA_VARIABLE dans /etc/environment puisque en censé lightdm lit ce fichier [4].
> Marche pas non plus, même cas qu'au dessus.

De mon expérience empirique sur le sujet, le fichier « /etc/environment » n'est
pas pris en compte par tous les environnements de bureau. XFCE le prend en
compte, FluxBox sûrement aussi. Par contre, les environnements de bureau qui
fournissent leur propre méthode de configuration (si je voulais être provocant
je dirais « inspirée du registre Windows »), notamment KDE et GNOME - et donc
MATE - semblent avoir une fâcheuse tendance à ignorer les mécanismes standards
(fichier « /etc/environment », fichier « $HOME/.Xresources », fichier
« $HOME/.Xmodmap »).

Si quelqu'un a une expérience plus poussée que la mienne (car j'ai préféré fuir
ces environnements non-respectueux des standards au profit des autres) et sait
comment mettre en place ce genre de chose sur ce type d'environnement, merci de
la partager.

> Puis j'ai placé dans /etc/bash.bashrc :
>  MA_VARIABLE=ma_valeur.
>  export MA_VARIABLE
> Et là, ça fonctionne.

Oui, ça fonctionne, mais uniquement dans un terminal. Ton environnement X ne
récupère donc pas cette variable.

Attention également, ça ne fonctionnera pas pour les utilisateurs qui
utiliseraient un autre shell que Bash.

> Ceci étant, je suis bien nu su cette question car je ne sais pas comment
> vérifier si mon environnement de bureau (MATE) connaît cette variable ou pas.
> La logique où j'en suis arrivé me dit que non.

J'ai une méthode à te proposer.

Tu installes « MPD » et tu modifies « bind_to_address » dans son fichier de conf
(« /etc/mpd.conf ») pour y mettre l'adresse IP de la carte réseau de la machine
(n'oublie pas de redémarrer le service une fois la configuration modifiée).

Tu installes un client MPD qui prend en compte la variable d'environnement
« MPD_HOST » (à qui tu donnes comme valeur l'adresse IP de ta machine).

Tu lances le client MPD. Si il arrive à se connecter, alors ta variable
d'environnement a été prise en compte. Sinon, elle a été ignorée.

Sébastien


Reply to: