Pages : 1
#1 Le 28/06/2008, à 13:41
- thierrybo
ajout au PATH pas reconnu en sudo
Bonjour,
voilà je m'arrache les cheveux avec ce problème. J'ai installé xampp d'apacheandfriends et n'utilise
donc pas les dépots pour apache et php. Pour pouvoir utiliser php et pear en ligne de commande j'ai
modifié le PATH comme ceci dans /etc/environment (les commandes sont sans /opt/lampp/bin):
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/lampp/bin"
Quand je tape
sudo echo $PATH
j'ai bien le PATH correct qui s'affiche
Pourtant il ne reconnaît toujours pas les commandes
sudo pear list
ou
sudo php -v
par exemple, alors que sans le sudo ça marche.
J'ai tout essayé, mettre le path dans /etc/profile, ~/.profile, ~/.bashrc etc..., rien n'y fait. Je sais je
pourrait rajouter un lien dans /usr/bin/ vers php et pear (c'est ce que j'ai fais d'ailleurs) mais j'aimerai
bien comprendre pourquoi çà ne marche pas ...
Dernière modification par thierrybo (Le 28/06/2008, à 13:43)
Hors ligne
#2 Le 28/06/2008, à 13:50
- Seren
Re : ajout au PATH pas reconnu en sudo
Et si tu fais juste "echo $PATH" tu vois ce que tu as ajouté ou pas ?
Chaque utilisateur a des variables d'environnements qui lui sont propres.
Quand tu utilises "sudo", tu utilises le PATH du root, et, sans le sudo, le PATH de ton compte utilisateur, ce qui peut expliquer des différences.
Dans /etc/login.defs
#
# *REQUIRED* The default PATH settings, for superuser and normal users.
#
# (they are minimal, add the rest in the shell startup files)
ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/games
Dernière modification par Seren (Le 28/06/2008, à 13:55)
"I am not young enough to know everything". Oscar Wilde
Hors ligne
#3 Le 28/06/2008, à 16:27
- thierrybo
Re : ajout au PATH pas reconnu en sudo
Oui, j'avais omis de préciser dans le 'j'ai tout essayé', que j'avais essayé de mettre aussi dans /root/.profile et /root/.bashrc.
Actuellement, je suis revenu à la situation initiale (j'ai tout enlevé dans les fichiers .bashrc et .profile de root et home) et je n'ai laissé que /etc/environment. Là normalement c'est le niveau le plus élevé et çà s'applique à tout le monde et partout (!?).
Ah, je viens de trouver une petite différence. Je n'avais pas essayé en su Dans les 3 cas (normal, sudo et su) j'ai le PATH qui contient bien le chemin de php, mais contrairement à sudo, su marche ?? :
thierrybo@ubuntu-desktop:~$ echo $PATH
/home/thierrybo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/lampp/bin
thierrybo@ubuntu-desktop:~$ sudo echo $PATH
[sudo] password for thierrybo:
/home/thierrybo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/lampp/bin
thierrybo@ubuntu-desktop:~$ sudo pear list
sudo: pear: command not found
thierrybo@ubuntu-desktop:~$ sudo su
root@ubuntu-desktop:/home/thierrybo# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/lampp/bin
root@ubuntu-desktop:/home/thierrybo# pear list
Installed packages, channel pear.php.net:
=========================================
Package Version State
Archive_Tar 1.3.2 stable
<snip>
XML_image2svg 0.1 stable
root@ubuntu-desktop:/home/thierrybo#
La seule différence en su c'est qu'il n'inclut plus mon répertoire ~/bin dans le PATH.
Hors ligne
#4 Le 28/06/2008, à 17:41
- thierrybo
Re : ajout au PATH pas reconnu en sudo
Bon j'ai quand même trouvé çà, avec la commande ENV, cette fois-ci le PATH n'est plus le même en SUDO :
thierrybo@ubuntu-desktop:~$ env
PATH=/home/thierrybo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/lampp/bin
thierrybo@ubuntu-desktop:~$ sudo env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
thierrybo@ubuntu-desktop:~$ sudo su
root@ubuntu-desktop:/home/thierrybo# env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/lampp/bin
donc je ne peux pas me fier à sudo echo $PATH qui ne renvoie pas le vrai PATH. Maintenant d'ou vient ce paramétrage ??
Hors ligne