Problème de PATH insoluble: Comment ça marche?

Problème de PATH insoluble: Comment ça marche? - Logiciels - Linux et OS Alternatifs

Marsh Posté le 30-05-2004 à 18:13:22    

onjour.
 
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/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games: Aucun fichier ou répertoire de ce type
et celui du root  
/sbin:/bin:/usr/sbin:/usr/bin:/usr/bin/X11:/usr/local/sbin:/usr/local/bin: Aucun fichier ou répertoire de ce type
// En vraie console, pour l'utilisateur et le root:
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/usr/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

---------------
.
Reply

Marsh Posté le 30-05-2004 à 18:13:22   

Reply

Marsh Posté le 30-05-2004 à 19:00:02    

montre le contenu du fichier /etc/profile
il semble il y avoir une erreur
 


---------------
Mandriva : parce que nous le valons bien ! http://linux-wizard.net/index.php
Reply

Marsh Posté le 30-05-2004 à 22:21:51    

Attention, bash a 2 mode d'invocations:
 

Code :
  1. A  login shell is one whose first character of argument zero is a -, or one started with the --login option.
  2. 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.
  3. 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..

Reply

Marsh Posté le 08-06-2004 à 16:29:30    

Dark_Schneider a écrit :

montre le contenu du fichier /etc/profile
il semble il y avoir une erreur


le voici

Citation :

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
 
PATH="/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/usr/local/bin/j2sdk/bin"
 
if [ "$PS1" ]; then
  if [ "$BASH" ]; then
    PS1='\u@\h:\w\$ '
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi
 
export PATH
 
LC_ALL=fr_FR
LANG=french
 
export LC_ALL LANG
 
umask 022


---------------
.
Reply

Marsh Posté le 08-06-2004 à 16:41:34    

Ralph- a écrit :

Attention, bash a 2 mode d'invocations:
 

Code :
  1. A  login shell is one whose first character of argument zero is a -, or one started with the --login option.
  2. 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.
  3. 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.


---------------
.
Reply

Marsh Posté le 08-06-2004 à 17:00:26    

mise à jour du premier post!


---------------
.
Reply

Marsh Posté le 08-06-2004 à 17:13:26    

man su ?

Reply

Marsh Posté le 08-06-2004 à 17:18:01    

pourquoi faire?


---------------
.
Reply

Marsh Posté le 08-06-2004 à 17:28:16    

Tu regardes le PATH de ton root en faisant un su?

Reply

Marsh Posté le 08-06-2004 à 17:34:17    

oui mais le problème concerant tous les utilisateurs, cela ne vient pas du su


---------------
.
Reply

Marsh Posté le 08-06-2004 à 17:34:17   

Reply

Marsh Posté le 10-06-2004 à 19:37:30    

up!


---------------
.
Reply

Marsh Posté le 12-06-2004 à 10:24:51    

:cry:


---------------
.
Reply

Marsh 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

---------------
.
Reply

Marsh 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...) ?
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed