[Toulibre] rpmbuild et dépendances, ou pourquoi y'a t-il une différence entre l'install par rpm et par compilation ?
HAMMER Cédric Ext ROSI/DPS
chammer.ext at orange-ftgroup.com
Ven 5 Oct 15:38:45 CEST 2007
Eric, voici l'état de mon serveur:
> 1) repérer les différents scripts find-requires par exemple:
> locate rpm | grep requires
# locate rpm | grep requires
/usr/lib/rpm/find-requires
/usr/lib/rpm/find-requires.perl
> 2) lancer le/les script/s sur ton exécutable par exemple:
> echo /bin/bash | /usr/lib/rpm/find-requires ldd
# echo /bin/bash | /usr/lib/rpm/find-requires ldd
libc.so.6
libdl.so.2
libtermcap.so.2
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.2)
libc.so.6(GLIBC_2.3)
libdl.so.2(GLIBC_2.0)
libdl.so.2(GLIBC_2.1)
# echo /bin/bash | /usr/lib/rpm/find-requires.perl ldd
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.2)
libc.so.6(GLIBC_2.3)
libdl.so.2
libdl.so.2(GLIBC_2.0)
libdl.so.2(GLIBC_2.1)
libtermcap.so.2
... Pas de 2.3.4 donc ...
> Tu peux vérifier la version de ldd en faisant ldd --version.
# ldd --version
ldd (GNU libc) 2.3.2 [...]
> ldd -v /path/to/proftpd
# ldd -v /usr/local/sbin/proftpd
libpam.so.0 => /lib/libpam.so.0 (0x0029c000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x006f1000)
libc.so.6 => /lib/tls/i686/libc.so.6 (0x00111000)
libdl.so.2 => /lib/libdl.so.2 (0x00732000)
liblaus.so.1 => /lib/liblaus.so.1 (0x00c29000)
/lib/ld-linux.so.2 (0x00974000)
Version information:
/usr/local/sbin/proftpd:
libcrypt.so.1 (GLIBC_2.0) => /lib/libcrypt.so.1
libc.so.6 (GLIBC_2.2.3) => /lib/tls/i686/libc.so.6
libc.so.6 (GLIBC_2.3) => /lib/tls/i686/libc.so.6
libc.so.6 (GLIBC_2.2) => /lib/tls/i686/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib/tls/i686/libc.so.6
libc.so.6 (GLIBC_2.3.4) => /lib/tls/i686/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/tls/i686/libc.so.6
/lib/libpam.so.0:
libdl.so.2 (GLIBC_2.1) => /lib/libdl.so.2
libdl.so.2 (GLIBC_2.0) => /lib/libdl.so.2
libc.so.6 (GLIBC_2.1.3) => /lib/tls/i686/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib/tls/i686/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/tls/i686/libc.so.6
libc.so.6 (GLIBC_2.3) => /lib/tls/i686/libc.so.6
/lib/libcrypt.so.1:
libc.so.6 (GLIBC_2.1.3) => /lib/tls/i686/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/tls/i686/libc.so.6
/lib/tls/i686/libc.so.6:
ld-linux.so.2 (GLIBC_2.1) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_2.0) => /lib/ld-linux.so.2
/lib/libdl.so.2:
libc.so.6 (GLIBC_2.1.3) => /lib/tls/i686/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib/tls/i686/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/tls/i686/libc.so.6
libc.so.6 (GLIBC_PRIVATE) => /lib/tls/i686/libc.so.6
ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
/lib/liblaus.so.1:
libc.so.6 (GLIBC_2.1.3) => /lib/tls/i686/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/tls/i686/libc.so.6
Bizarrement la version installée via la compilation montre une dépendance à proftpd, pourtant elle fonctionne très bien !
> Tu peux aussi comparer la sortie de ldd -v /bin/bash sur ta machine créant des RPMs moisis avec celle qui fonctionne.
Identique et pas de présence de Glibc 2.3.4 ...
J'ai tenté en vain de forcer une réinstallation de Glibc, juste au cas où (via un apt-get install --reinstall glibc, vu que le serveur possède une source apt, qui fournit Glibc 2.3.2) ; d'autres idées ?
*********************************
This message and any attachments (the "message") are confidential and intended solely for the addressees.
Any unauthorised use or dissemination is prohibited.
Messages are susceptible to alteration.
France Telecom Group shall not be liable for the message if altered, changed or falsified.
If you are not the intended addressee of this message, please cancel it immediately and inform the sender.
********************************
Plus d'informations sur la liste de diffusion Toulouse-ll