Pourquoi mon chemin ne se met-il pas à jour * maintenant *?

J'ai récemment installé le plus récent Qt SDK et je suis allé de l'avant et l'ai ajouté à mon PATH dans mon ~ / .bash_profile.

Je ne vois pas le changement. Je peux source ~/.bash_profile mais mon chemin est deux fois plus long, mais je ne peux pas simplement ouvrir un nouveau gnome-terminal et avoir le chemin mis à jour.

Pourquoi?

Remarques: Fedora 11 exécutant GNU bash, version 4.0.16 (1) – enregistrez-vous à l'intérieur du bureau gnome par défaut.

.bash_profile path config:

 # User specific environment and startup programs PATH=$PATH:$HOME/bin:/opt/qtsdk-2009.03/qt/bin/:/usr/local/lib/ 

Lorsque vous venez d'ouvrir un terminal à partir de votre bureau, le terminal hérite de l'environnement dans lequel il a été démarré, y compris ce chemin d'accès. Lorsque vous ouvrez un terminal, le suivant se produit selon la documentation de Bash:

À partir du manuel de référence Bash

Lorsque Bash est invoqué comme un shell de connexion interactif ou comme un shell non interactif avec l'option –login, il lit et exécute les commandes à partir du fichier / etc / profile, si ce fichier existe. Après avoir lu ce fichier, il recherche ~ / .bash_profile, ~ / .bash_login et ~ / .profile, dans cet ordre, et lit et exécute les commandes du premier qui existe et est lisible. L'option –noprofile peut être utilisée lorsque le shell commence à inhiber ce comportement.

Lorsqu'un shell de connexion est sorti, Bash lit et exécute les commandes à partir du fichier ~ / .bash_logout, s'il existe.

Et…

Lorsqu'un shell interactif qui n'est pas un shell de connexion est démarré, Bash lit et exécute des commandes de ~ / .bashrc, si ce fichier existe. Cela peut être inhibé en utilisant l'option –norc. L'option –rcfile file forçe Bash à lire et à exécuter des commandes à partir du fichier au lieu de ~ / .bashrc.

Donc, généralement, votre ~ / .bash_profile contient la ligne

  if [ -f ~/.bashrc ]; then . ~/.bashrc; fi 

Après (ou avant) toute initialisation spécifique au login.

Donc, afin d'obtenir votre fichier .bash_file, vous devez vous connecter à un identifiant de connexion, peut-être en ssh-ing dans l'hôte local ou en vous connectant à votre environnement de bureau et en vous connectant.

Essayez de mettre cela dans votre ~/.bashrc place.

Lorsque vous vous connectez, ~/.bash_profile est traité. Il n'est pas traité à nouveau lorsque vous ouvrez un nouveau terminal ou démarrez un nouveau shell, c'est-à-dire lorsque ~/.bashrc est traité. Vous devriez générer ~/.bashrc dans votre ~/.bash_profile .

Voir la section "Invocation" dans man bash .