3 votes

Créer un paquet Debian pour plusieurs versions d'Ubuntu

J'ai une bibliothèque et quelques binaires que je veux empaqueter sous forme de paquet Debian. J'ai des dépendances sur : libboost-log*, libprotobuf* etc.

Je ne veux pas ajouter de dépendance sur les paquets dev "libboost-all-dev" etc et je veux ajouter des dépendances sur des paquets non dev. J'ai réalisé en regardant l'archive des paquets ubuntu que certaines de ces bibliothèques changent de nom dans les différentes versions d'ubuntu :

libboost-filesystem1.65 et libboost-filesystem1.58

Dois-je créer un paquet séparé pour chaque version d'ubuntu (14, 16, 18 etc.) ?

De plus, mes binaires sont compilés sur ubuntu 18 et ils sont liés à la dernière version de boost (1.65). Lorsque je les compile et les installe sur une version plus ancienne (ubuntu 16 où la version de boost est 1.58), j'obtiens une erreur lors de l'exécution du binaire.

myprog : erreur lors du chargement des bibliothèques partagées : libboost_system.so.1.65.1 : cannot open shared object file : No such file or directory

Existe-t-il un moyen de compiler un binaire sur une seule version d'ubuntu et de spécifier les dépendances de manière à ce que le paquetage fonctionne sur toutes les versions d'ubuntu ?

2voto

Robie Basak Points 14936

Existe-t-il un moyen de compiler un binaire sur une seule version d'Ubuntu et de spécifier les dépendances de manière à ce que le paquetage fonctionne sur toutes les versions d'Ubuntu ?

En ce qui concerne les débats, en général, non, vous ne pouvez pas. Les dépendances livrées dans Ubuntu peuvent rompre l'ABI entre les versions, de sorte qu'une dépendance particulière peut ne pas avoir d'ABI commun dans les versions livrées entre deux versions spécifiques d'Ubuntu.

Il est nécessaire de gérer les backports individuellement, par version, si vous souhaitez maintenir les backports à l'aide de debs.

L'intégration de dépendances est un moyen de contourner ce problème. Voir aussi Claquettes pour plus de détails. En théorie, vous pourriez aussi le faire avec des debs, mais vous trouverez probablement que l'outil autour des snaps (snapcraft) rend la création beaucoup plus facile. Les snaps sont également plus sûrs pour les utilisateurs, car ils fonctionnent de manière confinée.

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