Bonjour,
C'est très compliqué de modifier comme on le souhaite cette variable.
Je souhaite pouvoir la modifier "à chaud" (sans reboot ni relancer le serveur graphique) pour que les modifications soient valable pour toute application que je lance dans mon environnement graphique, or:
- si je modifie le fichier ~/.bash_profile, les changements ne se font que lorsque je lance un terminal et uniquement dans ce terminal
- si je modifie le fichier /etc/profile, il faut rebooter (et en plus ça sera valable pour TOUS les utilisateurs)
Quelqu'un aurait-il une solution ? (indépendante de la distribution si possible ;-))
# Apprendre Unix ?
Posté par Sébastien Rohaut . Évalué à 10.
Ta question c'est : "comment créer une variable d'environnement de manière à ce que les applis déja lancées puissent y accéder ?".
La réponse est : "C'est pas possible directement." (ou alors faut m'expliquer). Quand tu lances un processus, il récupère l'environnement de son père, donc (entre autres) les variables exportées. Après coup, il ne peut plus récupérer celles déclarées après. Mais il peut créer ses propres varialbes et les exporter à ses fils. C'est vrai qu'on pourrait envisager de créer des variables dans le lanceur de KDE par exemple (un peu comme les propriétés de Windows) et que tous les programmes lancés par la suite puissent y accéder. Mais pour les programmes déja lancés se serait pas possible.
Par contre, tu peux placer tes variables (et les exporter) dans ton .bash_profile, faire dans une console déja ouverte . .bash_profile ce qui va avoir pour effet d'incorporer tout le contenu dans l'environnement courant (celui du shell). Si depuis ce shell tu lances ensuite un autre processus, alors il aura accès au contenu de tes nouvelles variables exportées.
Ne pas oublier aussi que comme l'environnement est dupliqué, on obtient une copie de la valeur de la variable. Dans le fils, si tu modifie sa valeur, ce n'est pas répercuté chez le père (ou les autres)...
[^] # Re: Apprendre Unix ?
Posté par MehdiYM . Évalué à 1.
Non, je ne demande pas tout ça quand même, juste que les prochaines que je lancerai tiennent compte des modification du PATH.
>Si depuis ce shell tu lances ensuite un autre processus, alors il aura accès au contenu de tes nouvelles variables exportées.
Oui, je sais bien, mais je cherchais justement une autre solution "à la Windows".
# man source
Posté par Calim' Héros (site web personnel) . Évalué à 5.
source ~/.bash_profile
source /etc/profile
Modif temporaire (ne reste pas apres le logout)
export PATH=$PATH:/nouveauRepertoire1:/nouveauRepertoire2
# Les variables d'environnement.
Posté par Obsidian . Évalué à 5.
$ setenv VARIABLE CONTENU
sous BASH
$ VARIABLE=CONTENU pour créer une variable
$ export VARIABLE=CONTENU pour créer une variable d'environnement qui sera propagée à tous les processus fils.
$ source MonScriptShell ou
$ . MonScriptShell pour faire réinterpréter ton fichier par le shell courant et pas l'exécuter dans un sous-shell (le point isolé à la place d'une commande est un synonyme de "source").
si je modifie le fichier /etc/profile, il faut rebooter (et en plus ça sera valable pour TOUS les utilisateurs)
On ne reboote jamais sous Unix. Le seul moment où tu as besoin de le faire, c'est quand tu changes de noyau. Il faut perdre cette mauvaise habitude qui nous vient de Windows. On ne redémarre pas un système pour l'hygiène. Si tu en arrives là, il y a 99% de chances que tu t'y prennes mal.
Désolé d'être aussi cru, mais il faut battre le fer tant qu'il est chaud ! :-)
Pour tes variables d'environnement, le seul problème que tu puisse avoir est que tous tes processus sont lancés depuis celui qui a ouvert ta session, donc c'est lui qui faut réinitialiser. Par conséquent:
1) Fais tes modifs
2) Délogue-toi.
3) Relogue-toi.
Et voila, tout sera rentré dans l'ordre. Ou alors, fais comme tout le monde, lance tes programmes depuis des terminaux :-)
Bon courage ...
[^] # Re: Les variables d'environnement.
Posté par pifou . Évalué à 5.
Du coup, ta solution d'utiliser un terminal pour lancer les applis est la meilleure à mon avis, en tout cas tant que les variables ne sont pas bien définies.
Pour ma part, j'ai commencé un script Ruby permettant de gérer de façon assez simple ses variables d'environnements et alias dans ses terminaux.
Par contre, ce n'est pas encore utilisable en l'état mais j'y travaille, l'ébauche de mon script se trouve ici : http://gast.sourceforge.net/envi.php(...) . Pour l'instant il supporte les de type sh et csh.
Voila, je ferais un journal pour indiquer quand le script sera terminé.
[^] # Re: Les variables d'environnement.
Posté par MehdiYM . Évalué à 1.
C'est bel et bien mon problème.
Mais faire un source /etc/profile ne me convient pas car ça sous-entend qu'il faut d'abord le modifier pour ajouter les nouveaux chemins du PATH et ça veut dire qu'il faut passer en root.
Je cherche une solution en mode utilisateur avec au pire un redémarage du serveur graphique, mais quand même pas de la machine.
[^] # Re: Les variables d'environnement.
Posté par calandoa . Évalué à 2.
Ah bon? et comment on fait pour réactualiser la table des partitions (/proc/partitions) sans rebooter?
[^] # Re: Les variables d'environnement.
Posté par Gilles Crettenand (site web personnel) . Évalué à 4.
[^] # Re: Les variables d'environnement.
Posté par calandoa . Évalué à 4.
No manual entry for adéquat
Heu, tu n'en serais pas au kernel 3.2, toi? ;^)
[^] # Re: Les variables d'environnement.
Posté par Gilles Crettenand (site web personnel) . Évalué à 2.
1° tu démonte TOUT ce qui est monté sur le hdd dont tu veux modifier la table de partition
2° tu lance fdisk, tu fais tes modifications, tu quittes en les lui faisant écrire
3° si rien n'est monté sur le hdd en question, il va faire un appel à sys_rereadIOjesais plus quoi, qui fait relire la table des partitions au kernel.
4° tu remontes tout ce dont tu as besoin
Le tour est joué...
[^] # Re: Les variables d'environnement.
Posté par calandoa . Évalué à 2.
À moins qu'il n'y aie que fdisk qui le fasse dans la situation particulièr que tu décris?
Je suppose aussi que la manip n'est pas faisable si la partition / est sur le disque que l'on traficote?
Enfin, ça ne me dérangerait vraiment pas d'avoir tord sur ce coup là car ça reste quand même lourd de rebooter à chaque coup de fdsik!
[^] # Re: Les variables d'environnement.
Posté par Gilles Crettenand (site web personnel) . Évalué à 2.
Pour répondre a ta question, on peut aussi démonter /, mais c'est le bordel le plus complet...
Enfin bref, en un mot c'est possible, mais bien plus simple de rebooter dans ce cas la.
En meme temps je touche très rarement ma table de partition personellement :p
PS : après avoir essayé, c'est un appel particulier de ioctl() qui permet de relire la table des partitions...
$ apropos partition
cfdisk (8) - Curses based disk partition table manipulator for Linux
fdisk (8) - Partition table manipulator for Linux
partprobe (8) - inform the OS of partition table changes
sfdisk (8) - Partition table manipulator for Linux
Voila, jéspère qu'en lisant ces page de man tu pourra en apprendre plus, Personellement le sujet ne m'intéresse pas énormément, je savais juste que c'était possible pour l'avoir deja fait...
# CMT
Posté par Sebastien . Évalué à 2.
CMT [1], peut configurer, independament du shell, les variables d'environnement que tu veux.
Tout ceci se fait via un bete fichier texte que cmt va lire.
CMT va ensuite generer les fichiers [c]sh necessaires a tes besoins que tu pourras ensuite 'sourcer'.
Les collaborations de physiciens de particules s'en servent pour :
- la gestion des variables d'environnement de leur parc informatique (pour le moins heterogene : il est mondial ;)
- la gestion de projets d'envergure ( creation de makefile, bindings pour CVS, tests de regression, etc... )
Le tout sous licence CeCILL. Donc a priori compatible GPL.
[1] : http://www.cmtsite.org(...)
# ~/.profile
Posté par account . Évalué à 3.
Tes variables seront prises en compte juste après un logout / logon, pas besoin de reboot.
Et si c'est pour tester, ben reste dans un terminal jusqu'à ce que tu aies fini les tests. Y'a pas moyen de (re-)définir les variables à chaud dans l'environnement X.
[^] # Re: ~/.profile
Posté par MehdiYM . Évalué à 1.
J'ai créé ce fichier, puis j'ai quitté et relancé ma session X mais les modifications n'ont pas eu lieu.
Si, à partir d'un terminal je fais source .profile, alors ça marche pour ce terminal.
[^] # Re: ~/.profile
Posté par Thomas Douillard . Évalué à 1.
[^] # Re: ~/.profile
Posté par MehdiYM . Évalué à 1.
J'ai cherché sur internet et tenté d'ajouter mes variables d'environnements aux fichiers :
~/.profile
~/.xprofile
~/.xsession
~/.login
ET RIEN NE MARCHE, c'est lourd.
Le fichier ~/.xinitrc est soit disant executé à partir de startx mais pas du login manager graphique...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.