218 votes

Pourquoi ~/.bash_profile ne s'affiche pas à l'ouverture d'un terminal ?

Problème

J'ai une machine virtuelle Ubuntu 11.04 et je voulais configurer mon environnement de développement Java. J'ai procédé comme suit

  1. sudo apt-get install openjdk-6-jdk

  2. Les entrées suivantes ont été ajoutées à ~/.bash_profile

    export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
    
    export PATH=$PATH:$JAVA_HOME/bin
  3. Enregistrez les modifications et quittez

  4. Ouvrez à nouveau un terminal et tapez ce qui suit

    echo $JAVA_HOME   (blank)
    echo $PATH        (displayed, but not the JAVA_HOME value)
  5. Rien ne s'est produit, comme si l'exportation de JAVA_HOME et son ajout au PATH n'avaient jamais été effectués.

Solution

J'ai dû aller à ~/.bashrc et ajoutez l'entrée suivante vers la fin du fichier

#Source bash_profile to set JAVA_HOME and add it to the PATH because for some reason is not being picked up
. ~/.bash_profile

Questions

  1. Pourquoi ai-je dû faire ça ? Je pensais que bash_profile, bash_login ou profile en l'absence de ces deux-là étaient exécutés en premier avant bashrc.
  2. Dans ce cas, mon terminal était un non-login Shell ?
  3. Si c'est le cas, pourquoi en faisant su après le terminal et en mettant le mot de passe, il n'a pas exécuté le profil où j'avais également défini les exportations mentionnées ci-dessus ?

1voto

Ilaiyaa... Points 11

Quand vous le faites sudo su le Shell n'est pas exécuté, au lieu de cela essayez avec sudo su - ceci chargera ~/.bash_profile comme source par défaut.

0voto

Ils veulent que vous le mettiez dans ~/.bash_aliases maintenant.

dans ~/.bashrc il y a ce code qui le signale :

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X