[BASH] problème de chemin (résolu)

Questions et astuces concernant l'installation et la configuration d'archlinux
Cereal-Killer
newbie
Messages : 4
Inscription : lun. 12 oct. 2009, 01:59
Localisation : Bessèges-30-France

[BASH] problème de chemin (résolu)

Message par Cereal-Killer »

Bonjour,
je soumet à vos lumières un petit soucis, plus irritant que grave...

quand j'utilise Gnome-terminal, tout fonctionne normalement, que ce soit en simple-user ou en root (via "su"); en revanche, si j'ouvre Gnome-terminal directement en superutilisateur ("applications"-->"accessoires"-->"terminal administrateur"), je suis obligé de taper toutes les commandes avec le chemin complet pour que ça marche, et uniquement pour les exécutables se trouvant dans /sbin; par exemple:

Code : Tout sélectionner

[root@phobos ~]# modprobe coretemp
bash: modprobe: command not found
alors que...

Code : Tout sélectionner

[root@phobos ~]# /sbin/modprobe coretemp
[root@phobos ~]#
(là ça marche)
mon /etc/profile:

Code : Tout sélectionner

#Determine our shell without using $SHELL, which may lie
shell="sh"
if test -f /proc/mounts; then
   case $(/bin/ls -l /proc/$$/exe) in
        *bash) shell=bash ;;
        *dash) shell=dash ;;
        *ash)  shell=ash ;;
        *ksh)  shell=ksh ;;
        *zsh)  shell=zsh ;;
    esac
fi

# Load shell specific profile settings
test -f "/etc/profile.$shell" &&  . "/etc/profile.$shell"

#Set our umask
umask 022

# Set our default path
PATH="/bin:/usr/bin:/sbin:/usr/sbin"
export PATH

# Export default pkg-config path
PKG_CONFIG_PATH="/usr/lib/pkgconfig"
export PKG_CONFIG_PATH

# Some readline stuff that is fairly common
HISTSIZE=1000
HISTCONTROL="erasedups"

INPUTRC="/etc/inputrc"
LESS="-R"
LC_COLLATE="C"

export HISTSIZE HISTCONTROL INPUTRC LESS LC_COLLATE

# Load profiles from /etc/profile.d
if test -d /etc/profile.d/; then
    for profile in /etc/profile.d/*.sh; do
        test -x $profile && . $profile
    done
    unset profile
fi

# Termcap is outdated, old, and crusty, kill it.
unset TERMCAP

# Man is much better than us at figuring this out
unset MANPATH
(la variable PATH semble correcte)
mon /etc/profile.bash:

Code : Tout sélectionner

PS1='[\u@\h \W]\$ '
PS2='> '
PS3='> '
PS4='+ '

export PS1 PS2 PS3 PS4

#In the future we may want to add more ulimit entries here,
# in the offchance that /etc/security/limits.conf is skipped
ulimit -Sc 0 #Don't create core files

if test "$TERM" = "xterm" -o \
        "$TERM" = "xterm-color" -o \
        "$TERM" = "xterm-256color" -o \
        "$TERM" = "rxvt" -o \
        "$TERM" = "rxvt-unicode" -o \
        "$TERM" = "xterm-xfree86"; then
    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\007"'
    export PROMPT_COMMAND
fi
à priori, /root ne contient pas de profile personnalisé...

Code : Tout sélectionner

[root@phobos ~]# ls -la
total 44
drwxr-x---  8 root root 4096 Oct  9 12:26 .
drwxr-xr-x 21 root root 4096 Oct  6 16:06 ..
-rw-------  1 root root 5756 Oct 12 15:13 .bash_history
drwxr-xr-x  2 root root 4096 Oct  7 10:42 .cache
drwx------  3 root root 4096 Oct  6 21:38 .dbus
drwx------  3 root root 4096 Oct 12 15:13 .gconf
drwx------  2 root root 4096 Oct 12 01:34 .gconfd
drwx------  3 root root 4096 Oct  9 12:26 .gnome2
drwx------  2 root root 4096 Oct  9 12:26 .gnome2_private
-rw-------  1 root root  218 Oct  8 14:01 .recently-used.xbel
et le .bashrc de mon utilisateur semble OK:

Code : Tout sélectionner

# Check for an interactive session
[ -z "$PS1" ] && return

alias ls='ls --color=auto'
PS1='[\u@\h \W]\$ '

export PATH=${PATH}:/opt/android-sdk/tools
je pense donc que c'est plus lié à la façon de lancer le terminal (en simple user, ou avec Gksu), mais dans ce cas, je vois pas où chercher, et je n'ai pas trouvé de réponse sur le web (wikis et forums Arch, Google...).
si quelqu'un voit où chercher, je le remercie d'avance...
Dernière modification par Cereal-Killer le lun. 12 oct. 2009, 19:21, modifié 1 fois.
ArchLinux 64 - Asus X50VL
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17596
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [BASH] problème de chemin

Message par benjarobin »

Déjà que retourne la commande env sur ce terminal.
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Cereal-Killer
newbie
Messages : 4
Inscription : lun. 12 oct. 2009, 01:59
Localisation : Bessèges-30-France

Re: [BASH] problème de chemin

Message par Cereal-Killer »

merci de ton aide, ça donne ça:

Code : Tout sélectionner

[root@phobos /]# env 
ORBIT_SOCKETDIR=/tmp/orbit-root
TERM=xterm
SHELL=/bin/bash
WINDOWID=56623147
USER=root
PATH=/usr/ucb:/bin:/usr/bin:/etc
PWD=/
PS1=[\u@\h \W]\$ 
PS3=> 
PS2=> 
PS4=+ 
SHLVL=3
HOME=/root
LOGNAME=root
PROMPT_COMMAND=echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\007"
DISPLAY=:0.0
COLORTERM=gnome-terminal
XAUTHORITY=/tmp/libgksu-CNZekS/.Xauthority
_=/usr/bin/env
OLDPWD=/root
et effectivement, la variable PATH retournée est incomplète :( (et puis c'est quoi ce "/usr/ucb"?)
mais je ne vois pas quel fichier modifier pour règler ça...
est-ce que si je crée un .bashrc dans /root, ça règlera le problème, et est-ce que c'est une façon correcte de le régler?
Dernière modification par Cereal-Killer le lun. 12 oct. 2009, 18:15, modifié 1 fois.
ArchLinux 64 - Asus X50VL
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17596
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [BASH] problème de chemin

Message par benjarobin »

Pour savoir ce qui se passe j'ai une solution tres simple. C'est un peu comme en programmation tu met du debug un peu partout ^^
Tu rajoute echo "Init du profile: PATH: $PATH" que tu rajoute a /etc/profile, puis tu vois l'idée pour /etc/*.bash (me rappelle plus du nom) le bashrc etc...

http://pwet.fr/man/linux/commandes/bash Regarde la partie invocation cela explique tout
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Re: [BASH] problème de chemin

Message par tuxce »

si tu as sudo d'installé:

Code : Tout sélectionner

gconftool-2 -s /apps/gksu/sudo-mode -t bool true
gksu a un bug pour initialiser l'environnement avec le mode "su"
Cereal-Killer
newbie
Messages : 4
Inscription : lun. 12 oct. 2009, 01:59
Localisation : Bessèges-30-France

Re: [BASH] problème de chemin

Message par Cereal-Killer »

Pour savoir ce qui se passe j'ai une solution tres simple. C'est un peu comme en programmation tu met du debug un peu partout ^^
Tu rajoute echo "Init du profile: PATH: $PATH" que tu rajoute a /etc/profile, puis tu vois l'idée pour /etc/*.bash (me rappelle plus du nom) le bashrc etc...
là je vois pas trop comment tu veux faire ça (c'est hors de mon niveau :( )...
gksu a un bug pour initialiser l'environnement avec le mode "su"
c'est ce que je viens de découvrir: dans l'entrée de menu, on a "gksu -l gnome-terminal" et c'est cette option "-l" qui met le bazar; j'ai testé avec Xterm:

Code : Tout sélectionner

gksu xterm
aucun problème...

Code : Tout sélectionner

gksu -l xterm
là, je me retrouve avec mon problème de chemin...
toutefois, Gnome-terminal refuse le démarrage sans cette option :(
je vais me taper la doc de Gksu pour voir si on peut contourner ça, mais la solution Sudo me semble la meilleure en attendant...
problème trouvé (mais pas résolvable pour le moment), je passe le post en résolu et merci à vous deux :wink:
ArchLinux 64 - Asus X50VL
Répondre