-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Vincent Jamart wrote:
| Y a une méthode plus "propre" que de relancer un ldconfig incluant mon
| path vers les librairies en question pour qu'elles soient trouvées par le
| binaire? En plus la variable en elle-meme semble etre une mauvaise chose
| si je me réfère à http://www.visi.com/~barr/ldpath.html
| : "Ship your binaries as .o files, and as part of the install process
| relink them with the correct installation library path"
| mwais...?

Euh, bof. bofbofbof
Pas tout-à-fait d'accord avec ça.

C'est aussi l'intérêt des paquets: de trouver les librairies à un endroit bien 
déterminé (du moins
+ou-). Le fait d'avoir /lib, /usr/lib et /usr/local/lib dans le chemin de recherche 
statique de
ld.so ("runtime linker" (*)) devrait en principe être un système assez flexible pour 
tout ce qui est
installé proprement (oui, il y a aussi /usr/X11R6 et qqes petits trucs en plus).
(*) je mets pas ça pour toi hein, Vincent, ni pour Jef ;)))

Il me semble avoir vu qqe part un programme permettant de manipuler les en-têtes ELF, 
et donc de
modifier le "library search path" qui est encodé dans ces-entêtes (pour les "binaries"
("éxécutables") et shared libs).
Mais c'est assez compliqué et je ne suis pas certain que c'est le moyen le plus 
"propre" (et je
n'arrive plus à mettre la main dessus sur freshmeat.net lol).

| On Wed, 12 May 2004, Jean-Francois Dive wrote:
|>si je me souviens bien, avec rexec .profile n'est pas lu par bash car etant
|>Pour le detail man bash section INVOCATION. Un rapide
|>coup d'oeuil semble dailleur confirmer se que je pensais.

Oui mais bash va quand même lire ce qui se trouve dans BASH_ENV, que tu peux 
positionner selon
l'utilisateur via PAM (pam_env, pour être précis).
Exemple:
/etc/pam.d/rexec:
#%PAM-1.0
...
auth required   pam_env.so envfile=/etc/environment.rexec
...

Note qu'on passe directement à pam_env.so un fichier contenant un environnement à lire.
Cela s'applique donc à tous les utilisateurs qui se connectent via rexec

/etc/environment.rexec:
LD_LIBRARY_PATH=.......

Si tu veux utiliser du scripting shell à cet endroit, p.ex. pour ajouter un filtrage 
selon
l'utilisateur (disons, ne positionner LD_LIBRARY_PATH que pour "toto" et "bidule"), il 
faut faire
autrement:

/etc/environment.rexec:
BASH_ENV=/etc/profile.rexec

/etc/profile.rexec:
case $USER in
        toto|bidule) LD_LIBRARY_PATH=..... ;;
esac

Note que je n'ai pas testé tout ça, c'est juste une proposition, à toi de faire le 
proof-of-concept ;)))

|>On Wed, May 12, 2004 at 11:30:31AM +0200, Vincent Jamart wrote:
...
|>>En local, un ldd trouve toutes les librairies d?pendantes mais un remote exec sur 
cette meme
machine avec le
|>>meme user pour ex?cuter "ldd foo" sort en erreur: le librairies ne sont
|>>pas trouv?es. Une id?e sur une solution pour le rexec de mon binaire?
Note que si tu veux laisser aux bons soins de l'utilisateur de configurer son 
LD_LIBRARY_PATH (et
pas via un /etc/profile.rexec qui est global (et donc root:root)), tu pourrais aussi 
mettre ceci
dans /etc/profile.rexec (cf. ci-dessus):
case $USER in
        toto|bidule)
                [ -r $HOME/.profile.rexec ] && . $HOME/.profile.rexec
                ;;
esac

- --
~  -o) Pascal Bleser        http://guru.unixtech.be
~  /\\ <[EMAIL PROTECTED]> <[EMAIL PROTECTED]>
~ _\_v The more things change, the more they stay insane.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)

iD8DBQFApcVur3NMWliFcXcRAgibAKCmAD4JuopfSWdIIiJe/mmHZg65PACfRwGn
iNBlrC/GuE+QOow227+/gEk=
=vkV+
-----END PGP SIGNATURE-----
_______________________________________________________
Linux Mailing List - http://www.unixtech.be
Subscribe/Unsubscribe: http://www.unixtech.be/mailman/listinfo/linux
Archives: http://www.mail-archive.com/[EMAIL PROTECTED]
IRC: chat.unixtech.be:6667 - #unixtech

Répondre à