J'ai une Debian sarge, bash 2.05 et cela fait plusieurs fois que j'ai des probs de path:
En théorie, bash prends les fichiers de config dans l'ordre suivant, si ils existent: /etc/profile ~/.bash_profile ~/.bash_login ~/.profile
j'ai /etc/profile et ~/.bash_profile mais pas ~/.bash_login ni ~/.profile
Je modifie donc les fichiers .bash_profile du root pour le root, et le fichier /etc/profile pour tous.
En pratique c'est vraiment le bordel. Voici ce que ça donne:
// Sous KDE
le echo $PATH du user donne
/usr/local/binusr/binbinusr/X11R6/binusr/games: Aucun fichier ou répertoire de ce type
et celui du root /sbinbinusr/sbinusr/binusr/bin/X11usr/local/sbinusr/local/bin: Aucun fichier ou répertoire de ce type
// En vraie console, pour l'utilisateur et le root:
/usr/local/binusr/binbinusr/bin/X11usr/gamesusr/local/bin/j2sdk/bin: Aucun fichier ou répertoire de ce type
qui vient de /etc/profile, sans distinction entre user et root.
Je comprends vraiment plus rien à la façon dont est gérée le path. Le chemin /usr/X11R6/bin je ne sais pas où il l'a pris parceque j'ai fait des recherches dans mon home et dans le / sans trouver de fichier contenant ceci. J'ai essayé avec zsh et j'ai les même path qui sortent. De même je me demande si le message d'erreur " Aucun fichier ou répertoire de ce type" n'est pas une habitude debian puisque sur un autre PC administré par quelqu'un d'autre y'a la même erreur qui sort.
ça fait des semaines que je galère avec ces histoires de PATH sans que je trouve la moindre doc expliquant VRAIMENT comment est construit le path dans TOUS les cas de figure utiles.
Je cherche donc à savoir quels sont les fichiers impliqués, comment, et ce en vraie console comme en konsole KDE ainsi qu'en root comme en user.
Merci de vos réponses.
Message édité par kyo54 le 12-06-2004 à 11:40:33
---------------
.
Publicité
Posté le 30-05-2004 à 18:13:22
Dark_Schneider
Close the World, Open the Net
Posté le 30-05-2004 à 19:00:02
montre le contenu du fichier /etc/profile
il semble il y avoir une erreur
A login shell is one whose first character of argument zero is a -, or one started with the --login option.
An interactive shell is one started without non-option arguments and without the -c option whose standard input and output are both connected to terminals (as determined by isatty(3)), or one started with the -i option. PS1 is set and $- includes i if bash is interactive, allowing a shell script or a startup file to test this state.
When bash is invoked as an interactive login shell, or as a non-inter active shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable. The --noprofile option may be used when the shell is started to inhibit this behavior.
Je pense que tes problemes viennent de la et non du PATH..
A login shell is one whose first character of argument zero is a -, or one started with the --login option.
An interactive shell is one started without non-option arguments and without the -c option whose standard input and output are both connected to terminals (as determined by isatty(3)), or one started with the -i option. PS1 is set and $- includes i if bash is interactive, allowing a shell script or a startup file to test this state.
When bash is invoked as an interactive login shell, or as a non-inter active shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable. The --noprofile option may be used when the shell is started to inhibit this behavior.
Je pense que tes problemes viennent de la et non du PATH..
ok alors j'ai bien /etc/profile et ~/.bash_profile mais pas ~/.bash_login ni ~/.profile
Ce que je ne comprends pas, c'est qu'après en reboot les modifs faites dans /etc/profile ne sont prises en compte que si je fais source /etc/profile. Si par derrière je fais un source ~/.bash_profile ça marche toujours.
---------------
.
kyo54
Posté le 08-06-2004 à 17:00:26
mise à jour du premier post!
---------------
.
glor
Posté le 08-06-2004 à 17:13:26
man su ?
kyo54
Posté le 08-06-2004 à 17:18:01
pourquoi faire?
---------------
.
glor
Posté le 08-06-2004 à 17:28:16
Tu regardes le PATH de ton root en faisant un su?
kyo54
Posté le 08-06-2004 à 17:34:17
oui mais le problème concerant tous les utilisateurs, cela ne vient pas du su
---------------
.
Publicité
Posté le 08-06-2004 à 17:34:17
kyo54
Posté le 10-06-2004 à 19:37:30
up!
---------------
.
kyo54
Posté le 12-06-2004 à 10:24:51
---------------
.
kyo54
Posté le 13-06-2004 à 10:19:36
ça marche!
Alors déjà le bug 'aucun fichiier ou rep de ce type" était du au fait que je faisait $PATH et non echo $PATH
Ensuite mon gros prob avec bash était que les modifs faites dans /etc/profile n'étaient pas pris en compte dans la Konsole KDE. Or avec zsh, les modifs faites dans /etc/zsh/zshenv passent dans console comme dans konsole!
J'ai donc tout passé sur zsh.
Reste à savoir si je peux carément désintaller bash de mon système. Si je supprime /bin/sh et le remplace par un lien symbolique vers /bin/zsh, est-ce que je ne risque plus rien même en cas de panne? Par exemple un fsck ne risque plus d'avoir besoin de bash?
Message édité par kyo54 le 13-06-2004 à 10:20:20
---------------
.
Siam
Posté le 13-06-2004 à 17:28:46
Chez moi /etc/sh est un lien symbolique de /etc/bash. Donc à ne pas supprimer à mon avis.
Sur le site d'Alexis de lattre, y a ca : http://people.via.ecp.fr/~alexis/f [...] shell.html Avec la commande chsh et le fichier /etc/adduser.conf tu retrouves tout ce que tu dois modifier (et sans risques....).
Tu trouves un avantage à utiliser zsh (à part que ca t'as permis de tout refaire marcher...) ?