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 ?
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
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é.
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.
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 !
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.