J'ai posé la même question aux MOTU Ubuntu il y a quelque temps, et ma réponse ci-dessous est similaire à l'explication qu'ils m'ont donnée. Depuis, j’emballe activement des articles pour divers projets (et backports), avec leurs conseils et leurs connaissances.
Thomas Ward
commentaire supplémentaire En bref, vous ne pouvez pas créer un seul fichier .deb qui fonctionnera toujours dans différentes versions d'Ubuntu. C'est à cause de diverses bibliothèques et versions, comme je l'explique dans ma réponse ci-dessous. Ma réponse ci-dessous contient de longues explications, ainsi que des exemples de comparaison vous permettant de voir pourquoi il est préférable de créer des paquetages séparément pour chaque version d'Ubuntu.
Thomas Ward
Réponses:
6
Vous devrez créer des packages distincts. Cela est dû au fait que différentes versions de la bibliothèque sont nécessaires dans différentes versions d'Ubuntu.
De plus, lorsque vous construirez les packages dans les fichiers binaires, il ne créera que les bibliothèques disponibles dans cette version d'Ubuntu.
, C'est ensuite pourquoi debian/changelogvous ne sont autorisés à spécifier une version d'Ubuntu à la fois sur la ligne de version (par exemple: rkhunter (1.3.8-7~natty1~ppa1) natty; urgency=low- noter les nattypièces modifications maverick, lucid, oneiric, hardy, etc.)
Jetez un coup d’œil aux fichiers de mon rkhunterPPA pour les backports: https://launchpad.net/~trekcaptainusa-tw/+archive/rkhunter Ne hésitez pas à voir ce que les entrées de journal des modifications affichent, et comment j'ai nommé les numéros de version du paquet (vous pouvez omettre la ~ppa#partie à la fin, mais vous devez ajouter la version d’ubuntu aux noms de paquet si vous construisez pour plusieurs versions d’Ubuntu, puis construisez-les séparément).
EDIT
Pour mieux comprendre ce que je veux dire, je vous exhorte à comparer lesdebian/controlfichiersréelset lesdebian/changelogfichiers de la version derkhunter dans mon PPA (pour Lucid), et à comparer cela à la version source dans les mises en pension de Oneiric, vous remarquerez les modifications qui ont dû être apportées pour que Lucid soit intégré (de telles modifications sont courantes; par conséquent, lors de la construction pour Natty, par exemple, vous spécifierez des versions de paquetages plus récentes que celles de Lucid, Maverick ou autres. La même chose est dite pour la construction pour Oneiric, et pour le portage sur Natty, vous devez parfois spécifier différentes versions de dépendances de construction, entre autres pour l'ancienne version d'Ubuntu)
@ Mr.Pallazzo, de rien. Si vous avez des questions, n'hésitez pas. Mon adresse e-mail ubuntu.com est répertoriée dans le profil de mon tableau de bord (si vous vous connectez au tableau de bord). Vous pouvez également me trouver sur les canaux IRC Ubuntu si vous avez besoin d'une aide spécifique (pseudo). : Resistance, réseau IRC: irc.freenode.net) Je vous recommande également les chaînes # ubuntu-packaging et # ubuntu-motu sur irc.freenode.net si vous avez besoin d’assistance supplémentaire :)
Thomas Ward
1
Vous n'êtes pas obligé de créer des packages séparés. Tant que les bibliothèques que vous avez utilisées dans lucid sont toujours disponibles dans les dernières versions, le paquet s’installera parfaitement.
Psusi
@ psusi c'est vrai, mais dans certains cas, un programme a besoin d'une version spécifique d'une bibliothèque qui n'existe que dans une version antérieure, raison pour laquelle les utilisateurs créent des versions de paquetages distinctes pour chaque distribution.
Thomas Ward
@ThomasWard, les auteurs de bibliothèques et les emballeurs travaillent dur pour que cela ne se produise pas. Si une version plus récente d'une bibliothèque n'est pas compatible avec les versions antérieures, le nom du package est modifié afin que les deux versions puissent être installées simultanément. C'est ce qu'on appelle une rupture / bosse ABI.
psusi
@ psusi plutôt que de nous disputer à ce sujet, peut-être pouvons-nous convenir que ma méthode n'est pas toujours requise, mais qu'elle empêche effectivement les problèmes liés à des choses que vous déclarez?
Réponses:
Vous devrez créer des packages distincts. Cela est dû au fait que différentes versions de la bibliothèque sont nécessaires dans différentes versions d'Ubuntu.
De plus, lorsque vous construirez les packages dans les fichiers binaires, il ne créera que les bibliothèques disponibles dans cette version d'Ubuntu.
, C'est ensuite pourquoi
debian/changelog
vous ne sont autorisés à spécifier une version d'Ubuntu à la fois sur la ligne de version (par exemple:rkhunter (1.3.8-7~natty1~ppa1) natty; urgency=low
- noter lesnatty
pièces modificationsmaverick
,lucid
,oneiric
,hardy
, etc.)Jetez un coup d’œil aux fichiers de mon
rkhunter
PPA pour les backports: https://launchpad.net/~trekcaptainusa-tw/+archive/rkhunter Ne hésitez pas à voir ce que les entrées de journal des modifications affichent, et comment j'ai nommé les numéros de version du paquet (vous pouvez omettre la~ppa#
partie à la fin, mais vous devez ajouter la version d’ubuntu aux noms de paquet si vous construisez pour plusieurs versions d’Ubuntu, puis construisez-les séparément).EDIT
Pour mieux comprendre ce que je veux dire, je vous exhorte à comparer les
debian/control
fichiersréelset lesdebian/changelog
fichiers de la version derkhunte
r dans mon PPA (pour Lucid), et à comparer cela à la version source dans les mises en pension de Oneiric, vous remarquerez les modifications qui ont dû être apportées pour que Lucid soit intégré (de telles modifications sont courantes; par conséquent, lors de la construction pour Natty, par exemple, vous spécifierez des versions de paquetages plus récentes que celles de Lucid, Maverick ou autres. La même chose est dite pour la construction pour Oneiric, et pour le portage sur Natty, vous devez parfois spécifier différentes versions de dépendances de construction, entre autres pour l'ancienne version d'Ubuntu)la source