Lors de l'installation de RVM, le message suivant s'affiche :
* WARNING: You have '~/.profile' file, you might want to load it,
to do that add the following line to '/home/dotancohen/.bash_profile':
source ~/.profile
Je suis inquiet car mon fichier ~/.profile contient xmodmap ~/.Xmodmap
que je ne veux évidemment pas exécuter (en échangeant mes touches CapsLock et ESC) chaque fois que j'ouvre un nouveau shell.
Pourquoi les développeurs avisés de RVM pourraient-ils suggérer de s'approvisionner en .profile
? dans .bash_profile
?
Réponse acceptée :
.profile
et .bash_profile
sont identiques en termes de moment où ils sont censés être exécutés :ils sont exécutés lorsque vous vous connectez. La différence est que seul bash exécute .bash_profile
; Les shells de style Bourne (dash, ksh, etc.) exécutent .profile
. Bash lui-même exécute .profile
si .bash_profile
n'existe pas.
Même si vous avez bash comme shell de connexion, .profile
est souvent celui qui est exécuté lorsque vous vous connectez en mode graphique :de nombreuses distributions configurent le script de démarrage de la session X pour qu'il s'exécute sous sh
et chargez .profile
.
D'où le conseil d'utiliser .profile
au lieu de .bash_profile
pour faire des choses comme définir des variables d'environnement. Sauf si vous avez absolument besoin de fonctionnalités spécifiques à bash, mettez simplement tout dans .profile
. Mais même si vous le faites, il y a une raison de garder un .bash_profile
, c'est-à-dire que lorsque bash le charge, il ne charge pas .bashrc
, même si c'est interactif. Par conséquent, pour la plupart des gens, ~/.bash_profile
doit être composé de ces deux lignes :
. ~/.profile
case $- in *i*) . ~/.bashrc;; esac
Vous ne devriez pas exécuter xmodmap
depuis .profile
. Ceci n'est pas exécuté lorsque vous ouvrez un nouveau shell, mais il est exécuté, par exemple, lorsque vous vous connectez à distance avec SSH avec transfert X11. Malheureusement, aucun fichier standard n'est chargé lorsque vous vous connectez en mode graphique. Debian charge ~/.xsessionrc
(Je pense que cela s'applique à tous les gestionnaires d'affichage, sauf Gdm qui charge ~/.xprofile
Au lieu); d'autres distributions ont des configurations différentes. Si vous avez besoin d'une portabilité entre distributions, il peut être plus facile de configurer votre environnement de bureau pour exécuter xmodmap
quand ça commence. Si tout ce que vous faites est d'échanger CapsLock et Ctrl, cela peut être fait avec les paramètres XKB auxquels la plupart des environnements de bureau modernes fournissent une interface.