Problème de version de librairie non définie


#1

Bonjour,

j’essaie d’installer un programme sous forme de tarball (.tar.gz) d’un programme compilé pour une RedHat 7.

Mon problème est que ce programme appel une librairie libcrypto.so.10 qui n’est pas fourni par debian.

Chez RedHat, libcrypto.so.10 est fourni par le paquet openssl-libs-1.0.2k-8.el7.x86_64.rpm.
En étudiant ce paquet openssl-libs-1.0.2k-8.el7.x86_64.rpm, on s’aperçoit que libcrypto.so.10 est un lien symbolique vers libcrypto.so.1.0.2k.

Debian fournit bien une librairie libcrypto.so.1.0.2 (sans le “k” final) dans le paquet libssl.1.0.2 (libssl1.0.2_1.0.2l-2+deb9u3_amd64.deb)

J’ai donc créé un lien symbolique de libcrypto.so.10 vers /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.2 comme sur la RedHat.

Mais l’exécution du programme me renvoie l’erreur suivante :

./bin/install: ./libs/libcrypto.so.10: version `libcrypto.so.10’ not found (required by ./libs/libexport.so.1)

J’en déduis que la version libcrypto.so.1.0.2 de debian n’a pas la définition de la version libcrypto.so.10 pour pouvoir être exploitée par les autres programmes (dont ici libexport.so.1).

Est-il possible de rendre ces versions compatibles ?


#2

Salut
Tu peux aussi tenter une conversion du rpm en deb avec l’outil alien
https://wiki.debian.org/Alien


#3

La lib existe sous debian, c’est juste qu’elle n’y a pas le même nom.

Comme indiqué ici https://askubuntu.com/questions/339364/libssl-so-10-cannot-open-shared-object-file-no-such-file-or-directory ça donne:

sudo apt-get update
sudo apt-get install libssl1.0.0 libssl-dev # (je me demande si ce n'est pas plutot libssl1.0-dev mais je n'ai pas testé)
cd /lib/x86_64-linux-gnu
sudo ln -s libssl.so.1.0.0 libssl.so.10
sudo ln -s libcrypto.so.1.0.0 libcrypto.so.10

#4

il y a aussi openssl qui fourni des libssl et libcrypto

https://wiki.openssl.org/index.php/Libcrypto_API

 apt show openssl
Package: openssl
Version: 1.1.1a-1
Priority: optional
Section: utils
Maintainer: Debian OpenSSL Team <pkg-openssl-devel@lists.alioth.debian.org>
Installed-Size: 1 478 kB
Depends: libc6 (>= 2.15), libssl1.1 (>= 1.1.1)
Suggests: ca-certificates
Homepage: https://www.openssl.org/
Tag: implemented-in::c, interface::commandline, protocol::ssl, role::program,
 scope::utility, security::cryptography, security::integrity,
 use::checking
Download-Size: 836 kB
APT-Manual-Installed: yes
APT-Sources: http://deb.debian.org/debian buster/main amd64 Packages
Description: boîte à outils SSL - outils de cryptographie
 Ce paquet fait partie de l'implémentation du projet SSL des protocoles
 cryptographiques SSL et TLS pour communiquer de façon sécurisée sur internet.
 .
 Il fournit le binaire de ligne de commande généraliste /usr/bin/openssl,
 utiles pour des tâches de cryptographie telles que :
   - créer des paramètres de clés RSA, DH et DSA ;
   - créer des certificats X.509, CSR et CRL ;
   - calculer des empreintes numériques ;
   - crypter et décrypter par des algorithmes de chiffrement ;
   - tester des clients et serveurs SSL/TLS ;
   - gérer le courriel signé par S/MIME ou crypté.

#5

Bonjour grandtobab,

j’y avais pensé, mais mon archive n’est pas paquagée en rpm, c’est un simple tar.gz.
Donc, je ne peux pas utiliser Alien.


#6

Bonjour mattotop,

c’est pourtant ce que j’avais fais avec la libssl1.0.2, mais ça ne marche pas.
J’ai installé le libssl1.0-dev, mais ça n’apporte rien.

Pour info, la libssl1.0.0 (la version mineure 0) n’est plus disponible dans les dépôts.
Mais un changement de version mineure ne doit normalement pas être bloquant.


#7

oui, les paquets debian libssl1.0.2 et libssl1.0-dev sont basés sur les sources d’openssl !!!
Mais le paquet openssl de debian ne fournit pas les librairies.
En fait ce paquet dépend maintenant de libssl1.1.

Donc, ça ne résout pas mon problème.

Je pense que le problème est que l’entête de la librairie libssl1.0.2 ne contient pas la référence à la version “.so.10”.
Je me demande si ce n’est pas une erreur ou une maladresse d’avoir rajouté cette référence dans la version RedHat…
En tout cas, ça me bloque !


#8

je pensais a récuperer https://centos.pkgs.org/7/centos-x86_64/openssl-libs-1.0.2k-12.el7.x86_64.rpm.html
depuis
https://pkgs.org/download/openssl-libs


#9

Merci grandtoubab,
en fait, j’ai décompressé le RPM dans un répertoire annexe et créé un lien symbolique libcrypto.so.10 vers la librairie de ce répertoire…
et ça marche !

Même si ce n’est pas totalement satisfaisant puisqu’il a fallu désarchiver un programme de la RedHat alors que debian dispose normalement de la même librairie (car c’est bien la librairie libssl1.0.2 qui est utilisée dans les deux cas), cela me permet quand même de débloquer la situation.