Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > Unix
Unix Forum d'entraide sur les systèmes Unix et dérivés (*BSD, AIX, etc.). Avant de poster ->F.A.Q BSD F.A.Q. Aix
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/12/2010, 14h57   #1
Invité de passage
 
Inscription : janvier 2010
Messages : 20
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 20
Points : 3
Points : 3
Par défaut $MANPATH $PATH $INFOPATH

Bien le bonjour,

Je suis sous Mac OS X Snow Leopard mais je pense que ma question concerne plus la communauté Unix.

J'ai plusieurs points qui demande de l'éclaircissement :

(1) Existe t'il un fichier réservé pour l'ajout d'un chemin à la variable $INFOPATH ou se configure t'elle au niveau du /etc/bahsrc ou du /etc/profile

############

(2) Y a t'il un moyen de supprimer des chemins ajoutés automatiquement aux variables $PATH et $MANPATH lors de l'installation de diverses programmes.

Je m'explique :
Mon système initialement était installé avec python 2.6.1. J'ai installé une mise à jour de python (2.6.6) en version 32 bits alors que je suis en 64 bits, comme j'ai eu des soucis avec, j'ai décidé de le supprimer et je suis passé à la version 2.7 qui supporte les deux.
Du coup au niveau de la variable $PATH j'ai les chemins vers chaque version de python (/Library/Frameworks/Python.framework/Versions/2.6 et 2.7). Si je regarde les fichiers /etc/profile et /etc/bashrc, les chemins ne sont pas présents au niveau du $PATH. Comment je peux donc supprimer le chemin vers la version 2.6 qui n'existe plus au niveau du PATH ?
J'ai exactement la même question pour un chemin qui a été ajouté 2 fois au niveau du $MANPATH suite à une réinstallation. Je voudrais donc en supprimer un mais ces chemins ne sont pas écrits au niveau du fichier /etc/manpath ... Comment faire ?


Merci pour votre précieux aide,
Picui
PicuiPicui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2010, 16h29   #2
Responsable Modération
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 971
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 971
Points : 5 958
Points : 5 958
Bonjour.

Citation:
Envoyé par PicuiPicui Voir le message
(2) Y a t'il un moyen de supprimer des chemins ajoutés automatiquement aux variables $PATH et $MANPATH lors de l'installation de diverses programmes.
Le shell de Mac OS X, c'est bien bash ?

Si oui : Vous pouvez ré-écrire le contenu de $PATH via la commande export (en écrivant dans le fichier .bashrc) ...

Cordialement,
Idriss
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2010, 21h13   #3
Invité de passage
 
Inscription : janvier 2010
Messages : 20
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 20
Points : 3
Points : 3
Citation:
Le shell de Mac OS X, c'est bien bash ?
Oui il s'agit du bash et en effet, au niveau de mon .bash_profile, j'ai les lignes du PATH ajoutées pour les versions 2.6 et 2.7 de python !

Une idée pour le $MANPATH et $INFOPATH ???

Merci pour l'aide,
Picui
PicuiPicui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 18h59   #4
Responsable Modération
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 971
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 971
Points : 5 958
Points : 5 958
Re

Je pense que c'est via la commande export également.

Code :
export MANPATH=$MANPATH:/un_chemin_a_ajouter
Il faut ajouter ceci dans le fichier ~/.bashrc ou équivalent (.bash_profile ?) ...

Cordialement,
Idriss
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 12h22   #5
Invité de passage
 
Inscription : janvier 2010
Messages : 20
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 20
Points : 3
Points : 3
Citation:
Envoyé par ok.Idriss Voir le message
Re
Il faut ajouter ceci dans le fichier ~/.bashrc ou équivalent (.bash_profile ?) ...
très probablement, mais je ne veux pas ajouter un chemin au niveau du $MANPATH. Je veux supprimer un chemin qui a été ajouté dynamiquement 2 fois car j'ai dû faire une réinstallation d'un programme.

Sauf, que ce chemin n'est ni dans /etc/profile, ni dans /etc/bashrc, ni dans ~/.bash_profile (fichier identique au .bashrc trouvé chez unix)... D'ailleurs je crois que je peux créer aussi un ~/.bashrc sous Mac.
Du coup je cherche à savoir dans quel fichier il a été ajouté... peut-être devrais-je faire un grep... Mais je ne suis pas à l'aide avec cette commande et le pipe...

Merci pour tes suggestions,
Picui
PicuiPicui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 19h49   #6
Responsable Modération
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 971
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 971
Points : 5 958
Points : 5 958
Re

La variable $MANPATH peut être redéfinie grâce à export en récrivant la totalité des chemins (à l'exception de ceux que l'ont veux retirer).

Code :
export MANPATH=/un_chemin:/un_autre:/un_autre_2:...
Cependant, j'ai cru comprendre que la variable $MANPATH (à la base vide) n'est la que pour ajouter des chemins à ceux qui sont déjà présent via la commande manpath. Je ne suis donc pas sûr que l'on puisse retirer ceux qui ne font pas partie de la variable $MANPATH.

Cordialement,
Idriss
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 22h31   #7
Membre Expert
 
Avatar de jlliagre
 
Inscription : juin 2007
Messages : 964
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2007
Messages : 964
Points : 1 362
Points : 1 362
Pourquoi ? Rien n'empêche d'enlever les chemins indésirables ou en doublon des variables de type PATH.
__________________
ɹǝsn *sıɹɐlos*
jlliagre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 00h44   #8
Responsable Modération
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 971
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 971
Points : 5 958
Points : 5 958
Citation:
Envoyé par jlliagre Voir le message
Pourquoi ? Rien n'empêche d'enlever les chemins indésirables ou en doublon des variables de type PATH.
Parce que $MANPATH semble complémentaire (ou du moins sur mon OS) ... on peut lui retirer des chemins mais pas les chemins qui sont des base à la commande manpath (il y a peut être un autre moyen d'y parvenir, peut être une autre variable mais pas celle-là je crois).

Cordialement,
Idriss
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 12h38   #9
Membre Expert
 
Avatar de jlliagre
 
Inscription : juin 2007
Messages : 964
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2007
Messages : 964
Points : 1 362
Points : 1 362
Quel est ton OS ?
A ma connaissance, quand MANPATH est défini, il est toujours prioritaire sur manpath.
__________________
ɹǝsn *sıɹɐlos*
jlliagre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 12h42   #10
Membre Expert
 
Homme
Ingénieur développement logiciels
Inscription : octobre 2008
Messages : 1 375
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : octobre 2008
Messages : 1 375
Points : 2 034
Points : 2 034
matafan est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/12/2010, 18h34   #11
Responsable Modération
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 971
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 971
Points : 5 958
Points : 5 958
Bonsoir.

Citation:
Envoyé par jlliagre Voir le message
Quel est ton OS ?
A ma connaissance, quand MANPATH est défini, il est toujours prioritaire sur manpath.
J'ai testé sur une Kubuntu : $MANPATH était vide et je lui ai rajouté, via export, un unique chemin. La commande manpath me retournait les path qu'elle contenait déjà, suivie de celui de $MANPATH ...

Je re-testerai ce soir sur une SuSE ou une Fedora (et sur Kubuntu).

Edit : il semble que tu as raison sous SuSE lorsque $MANPATH est positionnée, on ignore le contenu de /etc/manpath.config/tmp qui lui contient les chemins d'origine. Ça doit probablement être la même chose sous Kubuntu, je ne sais pas comment j'étais arrivé à ce résultat (je retenterai pour m'en assurer).

Cordialement,
Idriss
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 08h29   #12
Membre Expert
 
Avatar de jlliagre
 
Inscription : juin 2007
Messages : 964
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2007
Messages : 964
Points : 1 362
Points : 1 362
C'est la même chose aussi sous Ubuntu.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
$ uname -a
Linux m10-ubuntu 2.6.35-23-generic #41-Ubuntu SMP Wed Nov 24 11:55:36 UTC 2010 x86_64 GNU/Linux
$ manpath
/usr/local/man:/usr/local/share/man:/usr/share/man
$ echo $MANPATH

$ export MANPATH=/tmp
$ manpath
manpath: attention: la variable $MANPATH est positionnée, on ignore /etc/manpath.config
/tmp
$ uname -a
Linux m10-ubuntu 2.6.35-23-generic #41-Ubuntu SMP Wed Nov 24 11:55:36 UTC 2010 x86_64 GNU/Linux
__________________
ɹǝsn *sıɹɐlos*
jlliagre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 11h57   #13
Invité de passage
 
Inscription : janvier 2010
Messages : 20
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 20
Points : 3
Points : 3
Je ne savais pas qu'il y avait manpath et $MANPATH...
Quelle est la différence entre les 2 ?

Voici ce que j'obtiens pour les 2 variables :
Code :
1
2
3
4
5
6
[user@machine: ~]$ manpath
/usr/share/man:/usr/local/share/man:/usr/X11/share/man:/usr/X11/man:/usr/local/texlive/2010/bin/x86_64-darwin/man:/usr/local/texlive/2010/texmf/doc/man

[user@machine: ~]$ echo $MANPATH
/usr/share/man:/usr/local/share/man:/usr/X11/share/man:/usr/X11/man:/usr/local/texlive/2010/bin/x86_64-darwin/man:/usr/local/staden-1-6-0/man:/usr/local/staden-1-6-0/man:/usr/local/texlive/2010/texmf/doc/man
Comme vous pouvez le voir j'ai un doublon au niveau du $MANPATH du à la l'installation puis la réinstallation du logicile staden-1-6-0...
Une idée pour le virer ?

Merci pour votre aide,
Picui
PicuiPicui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 12h02   #14
Invité de passage
 
Inscription : janvier 2010
Messages : 20
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 20
Points : 3
Points : 3
Pour info, j'ai lancé sinon la commande suivante dans le répertoire d'installation de ce programme :

Code :
1
2
3
4
5
6
[user@machine: /usr/local/staden-1-6-0]$ grep -FR MANPATH= .
./staden.profile:        MANPATH=`/usr/bin/manpath`
./staden.profile:           MANPATH=/usr/share/%L/man:/usr/dt/share/man:/usr/local/man
./staden.profile:           MANPATH=/usr/man:/usr/local/man:/usr/share/catman:/usr/share/man
./staden.profile:MANPATH=$MANPATH:$STADENROOT/man
La partie en question du fichier staden.profile est la suivante :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Find manual pages
# If MANPATH is not set then we have to get the default one somehow so
# we can append to it.
#
if [ "$MANPATH" = "" ]
then
    # Use the manpath program if available
    if [ -x /usr/bin/manpath ]
    then
        MANPATH=`/usr/bin/manpath`
    else
        # Otherwise guess, based on system type
        if [ "$MACHINE" = "alpha" ]
	then
	    MANPATH=/usr/share/%L/man:/usr/dt/share/man:/usr/local/man
	else
	    MANPATH=/usr/man:/usr/local/man:/usr/share/catman:/usr/share/man
	fi
    fi
    export MANPATH
fi
# Finally add our own component in
MANPATH=$MANPATH:$STADENROOT/man
PicuiPicui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 17h34   #15
Membre Expert
 
Avatar de jlliagre
 
Inscription : juin 2007
Messages : 964
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2007
Messages : 964
Points : 1 362
Points : 1 362
Citation:
Envoyé par PicuiPicui Voir le message
Comme vous pouvez le voir j'ai un doublon au niveau du $MANPATH du à la l'installation puis la réinstallation du logicile staden-1-6-0...
Une idée pour le virer ?
Ben oui, il suffit juste de virer le doublon de ta variable. Par exemple en faisant un puisque manpath renvoie une valeur correcte.
__________________
ɹǝsn *sıɹɐlos*
jlliagre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 20h29   #16
Invité de passage
 
Inscription : janvier 2010
Messages : 20
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 20
Points : 3
Points : 3
J'ai fait cette commande suivante :
Code :
MANPATH=$(manpath):/usr/local/staden-1-6-0/man
Après avoir fermer puis réouvert un bash, j'ai toujours le même doublon... Qui plus est, je viens de me rendre compte que ce chemin ne renvoie vers rien, je n'ai pas le répertoire man dans /usr/local/staden-1-6-0/

J'ai donc refait exactement la même commande que tu me propose :
J'ai rouvert un bash et les variables manpath et $MANPATH me renvoie les mêmes valeurs qu'avant !
Code :
1
2
3
4
5
[user@machine: ~]$ manpath
/usr/share/man:/usr/local/share/man:/usr/X11/share/man:/usr/X11/man:/usr/local/texlive/2010/bin/x86_64-darwin/man:/usr/local/texlive/2010/texmf/doc/man

[user@machine: ~]$ echo $MANPATH
/usr/share/man:/usr/local/share/man:/usr/X11/share/man:/usr/X11/man:/usr/local/texlive/2010/bin/x86_64-darwin/man:/usr/local/staden-1-6-0/man:/usr/local/staden-1-6-0/man:/usr/local/texlive/2010/texmf/doc/man
Il doit bien être écrit quelque part ce $MANPATH !!!
J'ai lancé un grep dans le répertoire /etc et voilà ce que çà m'a renvoyé :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[user@machine: ~]$ sudo grep -FR MANPATH /etc
/etc/man.conf:# when MANPATH contains an empty substring), to find out where the cat
/etc/man.conf:# MANPATH         manpath_element [corresponding_catdir]
/etc/man.conf:# MANPATH_MAP             path_element    manpath_element
/etc/man.conf:# Every automatically generated MANPATH includes these fields
/etc/man.conf:MANPATH   /usr/share/man
/etc/man.conf:MANPATH   /usr/local/share/man
/etc/man.conf:MANPATH   /usr/X11/man
/etc/man.conf:# MANPATH /opt/*/man
/etc/man.conf:# MANPATH /usr/lib/*/man
/etc/man.conf:# MANPATH /usr/share/*/man
/etc/man.conf:# MANPATH /usr/kerberos/man
/etc/man.conf:# Set up PATH to MANPATH mapping
/etc/man.conf:MANPATH_MAP       /bin                    /usr/share/man
/etc/man.conf:MANPATH_MAP       /sbin                   /usr/share/man
/etc/man.conf:MANPATH_MAP       /usr/bin                /usr/share/man
/etc/man.conf:MANPATH_MAP       /usr/sbin               /usr/share/man
/etc/man.conf:MANPATH_MAP       /usr/local/bin          /usr/local/share/man
/etc/man.conf:MANPATH_MAP       /usr/local/sbin         /usr/local/share/man
/etc/man.conf:MANPATH_MAP       /usr/X11/bin            /usr/X11/man
/etc/man.conf:MANPATH_MAP       /usr/bin/X11            /usr/X11/man
/etc/man.conf:MANPATH_MAP       /usr/bin/mh             /usr/share/man
/etc/periodic/weekly/320.whatis:        MANPATH=`/usr/bin/manpath -q`
/etc/periodic/weekly/320.whatis:            if [ -z "${MANPATH}" ]
/etc/periodic/weekly/320.whatis:                /usr/libexec/makewhatis.local "${MANPATH}" || rc=3
/etc/periodic/weekly/320.whatis:                            -L "${MANPATH}" || rc=3
/etc/profile:export MANPATH=$MANPATH:/usr/local/texlive/2010/texmf/doc/man
Je n'y comprends rien !
Merci,
Picui
PicuiPicui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 20h50   #17
Responsable Modération
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 971
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 971
Points : 5 958
Points : 5 958
Bonsoir.

Tu peut essayer de ré-écrire tout les chemins de la variables $MANPATH que tu souhaite et de mettre ceci dans ton .bash_profile sans doute (ou ~/.bashrc pour les autres) :

Code :
echo "export MANPATH=chemin_1:chemin_2:chemin_3:etc" >> ~/.bash_profile
Cordialement,
Idriss
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 21h06   #18
Invité de passage
 
Inscription : janvier 2010
Messages : 20
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 20
Points : 3
Points : 3
Non çà y est je viens de trouver ce qui foutait le bazar...

Le bug se situait au niveau du fichier staden.profile !
Code :
1
2
# Finally add our own component in
MANPATH=$MANPATH:$STADENROOT/man
Comme dans mon /etc/profile, j'ai la ligne suivante :
Code :
1
2
export STADENROOT=/usr/local/staden-1-6-0
. $STADENROOT/staden.profile
A chaque fois que j'ouvre un nouveau terminal il me rajoute "/usr/local/staden-1-6-0/man" dans le $MANPATH, et comme je travaille toujours avec 2 voire 3 terminals d'ouvert, je me retrouvais avec des doublons voire des triplons....

Du coup, j'ai mis en commentaire la ligne du staden.profile et depuis plus de problèmes !!!

J'ai juste une petite question supplémentaire pour moi novice du bash, que veut dire ce '.' avant la commande $STADENROOT/staden.profile ???

Un grand merci pour votre aide et vos réponses.
Picui
PicuiPicui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 22h20   #19
Membre Expert
 
Avatar de jlliagre
 
Inscription : juin 2007
Messages : 964
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2007
Messages : 964
Points : 1 362
Points : 1 362
La commande "." exécute le script dans le shell courant. Sinon, les modifications de variables sont perdues à la fin du script. C'est aussi pour ça que la commande "MANPATH=$(manpath)" ne persistait pas après que tu aie quitté puis relancé bash. Je pensais que tu connaissait ce principe de base des variables d'environnement sous Unix, Elles ne sont pas globales mais locales aux processus et éventuellement à leurs descendants.
__________________
ɹǝsn *sıɹɐlos*
jlliagre est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h16.


 
 
 
 
Partenaires

Hébergement Web