$PATH des executables, tite question

Fermé
rage_ice - 6 nov. 2004 à 22:11
 kmf - 7 nov. 2004 à 18:36
Salut,
j'ai un petit prob avec linux. Je voudrais rajouter un chemin au $PATH des
utilisateurs (en l'ocurence juste pour mon login en non root).
le prob c'est que quand j'utilise export dans la console, ca ne marche que pour la session en cour, et quand je tappe
vim /etc/profile voila ce que je vois (ne sait pas ou rajouter le rep dans ce fichier):

# /etc/profile -*- Mode: shell-script -*-
# (c) MandrakeSoft, Chmouel Boudjnah <chmouel@mandrakesoft.com>

loginsh=1

# Users generally won't see annoyng core files
[ "$UID" = "0" ] && ulimit -S -c 1000000 > /dev/null 2>&1

if ! echo ${PATH} |grep -q /usr/X11R6/bin ; then
PATH="$PATH:/usr/X11R6/bin"
fi

if [ "$UID" -ge 500 ] && ! echo ${PATH} |grep -q /usr/games ; then
export PATH=$PATH:/usr/games
fi

umask 022

USER=`id -un`
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
HISTCONTROL=ignoredups
HOSTNAME=`/bin/hostname`
HISTSIZE=1000

"profile" [lecture-seule] 43L, 937C 1,1 Haut

if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
INPUTRC=/etc/inputrc
fi

# some old programs still use it (eg: "man"), and it is also
# required for level1 compliance for LI18NUX2000
NLSPATH=/usr/share/locale/%l/%N

export PATH PS1 USER LOGNAME MAIL HOSTNAME INPUTRC NLSPATH
export HISTCONTROL HISTSIZE

for i in /etc/profile.d/*.sh ; do
if [ -x $i ]; then
. $i
fi
done

unset i
________________________
Si qqu'1 pouvait m'expliquer comment rajouter un repertoire définitivement dans le path meci d'avance.
(j'ai aussi essayé directement dans .bashrc ms ne reste pas.

3 réponses

Normalement ca devrait marcher avec le .bashrc mais defois il y a confusion avec .profile, .bash_local, etc.
Peut-etre il te suffit de creer un .profile qui lit le .bashrc par:

------------------------------------------------
# .profile is read for all login shells
# all other interactive shells will read .bashrc
# So read .bashrc also from .profile and make all changes to .bashrc.
# Then you should always have your correct setup.

test -z "$PROFILEREAD" && . /etc/profile

if test -f ~/.bashrc; then
. ~/.bashrc
fi
------------------------------------------------
Apart ca, il vaut mieux se deloguer completement et se reloguer pour bien actualiser le nouveau PATH.
0
Ok merci mais qu'est ce que je fais du profile original?
0
En principe, ce que tu veux. Bien sur avec le /etc/profile tu ne fais rien comme c'est celui du systeme. Si tu as deja un .profile dans ton home il suffit d'y ajouter les trois dernieres lignes de mon exemple (celles qui appellent le .bashrc) au lieu de l'ecraser.

De facon generale le .profile et .bashrc servent a personnaliser ta configuration shell comme definir des variables d'environments (pas seulement le PATH), definir des alias, modifier sont prompt etc. Tu peux aussi regarder si ton .profile actuel contient des choses que tu veux garder. Si ce n'est pas le cas tu peux l'ecraser et remplacer par l'autre. Avec "ecraser" je veux dire: changer le nom:

mv .profile .profile.vieux

au cas ou tu veux revenir sur ta decision. En principe il faut toujours garder une copie de sauvegarde quand on modifie un fichier de config. On ne sait jamais.

Le plus facile c'est de mettre toutes tes modifications dans .bashrc et de ne garder qu'un .profile minimal pour appeler le .bashrc. Si tu veux mettre des choses express uniquement pour les logins-shells (connection avec mot de pass) et non pour les shell elementaires (ceux dans les termiaux graphiques, comme xterm) tu peux les mettre dans le .profile. Mais je doute que ca soit important pour toi (pour l'instant).
0