4 votes

Comment diagnostiquer et résoudre : /usr/lib64/libz.so.1 : aucune information de version disponible

I j'ai passé un sacré bon moment installation de lxml pour Python 2.7 sur CentOS 5.6. Pour rappel, Python 2.7 est une installation alternative de Python sur CentOS 5.6 qui est livré avec Python 2.4 installé.

Il a été construit à partir de la source selon ses instructions.

./configure
make
make altinstall

Cependant, après environ 20 heures d'essais, j'ai réussi à trouver une solution viable et j'ai pu installer lxml .

Jusqu'à ce que je remarque l'erreur suivante en haut de l'interpréteur :

python2.7: /usr/lib64/libz.so.1: no version information available (required by python2.7)
Python 2.7.2 (default, Jun 30 2011, 18:55:26) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print 'Sheeeeut!'

Cette erreur s'affiche à chaque fois que j'exécute un script.

Par exemple :

$ ./test.py
/usr/local/bin/python2.7: /usr/lib64/libz.so.1: no version information available (required by /usr/local/bin/python2.7)

Le script fonctionne parfaitement, mais cette erreur est gênante. Après quelques recherches, j'ai l'impression d'avoir une mauvaise version de libz installé, qu'il s'agit d'une ancienne version ou qu'il a été construit pour une plateforme différente.

Je ne sais pas trop comment, j'ai seulement installé libz par le biais de yum pour autant que je sache. Bien que je ne me souvienne pas de toutes les petites choses que j'ai essayées pendant mes vingt heures d'essai.

Vous pourriez aussi être intéressé par ce que mon lib64 Voici quelques informations

$ ls -ltrh libz*
-rwxr-xr-x 1 root root  84K Jan  9  2007 libz.so.1.2.3
-rwxr-xr-x 1 root root 107K Jan  9  2007 libz.a
-rwxr-xr-x 1 root root 154K Feb 22 23:30 libzdb.so.7.0.2
lrwxrwxrwx 1 root root   13 Apr 20 20:46 libz.so.1 -> libz.so.1.2.3
lrwxrwxrwx 1 root root   15 Jun 30 18:43 libzdb.so.7 -> libzdb.so.7.0.2
lrwxrwxrwx 1 root root   13 Jul  1 11:35 libz.so -> libz.so.1.2.3
lrwxrwxrwx 1 root root   15 Jul  1 11:35 libzdb.so -> libzdb.so.7.0.2

Avis : les articles qui disent 1er juillet ou 30 juin sont de moi. J'avais initialement déplacé ces fichiers dans un dossier de sauvegarde car ils semblaient être des doublons et avaient une date postérieure à/pendant mes problèmes auxquels j'ai fait allusion plus tôt et que j'ai eus avec le système de gestion de la sécurité. lxml

J'ai envie de supprimer complètement Python 2.7 et de le réinstaller. Je pense que le fait de l'installer sur /usr/local/ était un mauvais choix par défaut. Cependant, sans le make uninstall L'option étant présente, cela semble être une tâche qui prend du temps pour une solution dont je ne suis pas sûr qu'elle résoudrait mon problème.

0 votes

Je n'ai jamais trouvé de solution fonctionnelle à ce problème. Malheureusement, j'ai mis ce projet de côté pendant les 10 derniers mois.

3voto

harrymc Points 394411

Desde Que signifie l'erreur "no version information available" de l'éditeur de liens dynamiques de Linux ? qui se rapporte à Libpam :

La mention "aucune information disponible sur la version" signifie que signifie que le numéro de version de la bibliothèque est inférieur sur l'objet partagé. Pour exemple, si le numéro major.minor.patch est 7.15.5 sur la machine sur laquelle vous construisez le binaire, et que le numéro de patch major.minor.patch est 7.12.1 sur la machine de la machine d'installation, ld va affichera l'avertissement.

Vous pouvez résoudre ce problème en compilant avec un bibliothèque (en-têtes et objets partagés) qui correspond à la version des objets partagés livrée avec votre système d'exploitation cible. Par exemple, si vous allez installer sur RedHat 3.4.6-9, vous ne voulez pas compiler sur Debian 4.1.1-21. C'est l'une des raisons pour lesquelles la plupart des distributions sont pour des numéros de distro linux spécifiques.

Sinon, vous pouvez faire une liaison statique. Cependant, vous ne voulez pas faire ça avec quelque chose comme PAM, donc vous voulez installer un environnement de développement de développement qui correspond au de production de votre client (ou au moins installer et lier avec les bonnes versions des bibliothèques).

0 votes

Oui, c'est exactement ce que j'ai regardé. Je savais que c'était le problème, mais je ne sais pas ce que je dois faire pour le résoudre. Je suppose que le coupable est ceci : /usr/lib64/libz.so.1 mais à partir de là, je ne sais pas comment procéder. Merci d'avoir au moins essayé de répondre à cette question.

0 votes

Les solutions possibles ont été listées ci-dessus : (1) recompiler votre produit en utilisant une bibliothèque de niveau inférieur, (2) lier votre produit de manière statique afin de ne pas utiliser la version locale partagée. Je ne vois pas de troisième solution, mais peut-être que quelqu'un d'autre ici en verra une.

2voto

Craig Sayler Points 21

J'ai plusieurs versions sur mon système et j'ai rencontré le même problème. Sous /usr/bin J'ai créé le python-2.4.3 et l'a fait pointer vers Python, ce qui a résolu le problème. python-2.4.3 a été effacé d'une manière ou d'une autre après la compilation de mes autres versions que nous utilisons. Je pense que l'application yum qui est construite dans Python 2.4.3 est à l'origine du problème.

0voto

ZaB Points 2419
yum install python-lxml

Cela devrait faire l'affaire

0 votes

Veuillez apprendre à utiliser les outils de formatage disponibles pour vos réponses, merci.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X