4 votes

Quel est le moyen le plus simple de créer un paquet source et binaire lorsque vous êtes l'auteur original ?

Les guides d'empaquetage de Debian, que j'ai lus jusqu'à présent, partent du principe que l'empaqueteur n'est pas le responsable, et qu'il doit donc disposer des archives originales, des rustines, etc.

Si j'ai une application qui se construit avec "make" (pas autotools, etc.), de quel type de guide d'emballage ai-je besoin ?

Je ne veux pas faire des tarballs inutiles et des patchs vides.

Je veux les paquets source et binaire.

1voto

Rich S Points 313

Personne ne veut rien d'inutile. Et rassurez-vous, les communautés qui ont adopté l'emballage .deb (Debian, Ubuntu, Mint, ...) ont discuté longuement de tout ce qui s'y trouve.

L'idée de base de l'emballage est qu'il existe :

  • un tarball avec lequel il n'y a rien de spécifique à la distribution, qui est l'arbre source indépendant de la distribution du programme. Si cela sait déjà comment se comporter dans des distributions particulières, c'est bien, sinon, non. C'est le fichier tarball qui doit être nommé yourname_version.orig.tar.(xz,gz,bz2) pour être trouvé lors de la création du paquet.

  • une archive qui contient tout ce qui est spécifique à une version particulière de Debian dans un dossier séparé nommé - debian. L'une des raisons pour lesquelles il faut les séparer, et que la question préparait déjà, est que les personnes qui font l'emballage ne sont généralement pas les mêmes que celles qui maintiennent le logiciel lui-même. Cela aide lorsqu'il y a une mise à jour du logiciel afin qu'elle ne puisse pas écraser l'emballage. Et cela permet de s'assurer qu'aucune modification cachée n'est apportée à l'arbre source d'origine. Et un développeur RedHat ne voudrait pas voir les parties spécifiques à Debian, donc tout le monde est content d'avoir le dossier Debian séparé du reste.

Donc, il y a les deux tarballs. Pas trop de frais généraux, j'ai tendance à penser. La principale préoccupation est l'intégrité de l'arbre source amont.

En fonction de votre lieu de résidence et de votre degré de sociabilité, il existe différentes façons de commencer à apprendre à emballer. Pour beaucoup, il suffit de parcourir

c'est tout ce qu'ils veulent. D'autres sont heureux avec

  • le paquet dh-make qui fournit dh_make qui, en gros, empaquette automatiquement

et encore d'autres auront un regard sur

de rencontrer un développeur Debian essentiellement social pour être guidé dans les premiers moments les plus abrupts. Une fois que vous avez une certaine routine, il ne faut que quelques minutes pour passer de 0 à un paquet installable, c'est surtout le temps de la compilation que vous attendez, donc ce n'est pas trop demander IMHO. La plupart du travail est ensuite consacré à la description des paquets ou à des éléments dont les développeurs ne se sont pas suffisamment souciés, comme les pages de manuel manquantes ou des éléments optionnels comme la notification automatique des mises à jour.

Bonne chance.

1voto

user.dz Points 45060

L'emballage de Debian en tant qu'auteur original, le type de ces paquets est appelé indigène .

  • debian fait partie de l'arbre des sources (archive des sources).
  • Pas de correctifs pour Debian.

Références :

Pour les guides, il y en a beaucoup mais essayez de vous en tenir aux guides officiels de Debian/Ubuntu. De plus, vérifiez toujours sa date de mise à jour avant de vous y engager. Je vous recommande de commencer ici :

Tutoriel sur l'empaquetage Debian qui donne un aperçu clair du flux de travail en amont utilisé par la distribution. (de nombreux tutoriels omettent ce point)

0voto

Alexis Wilke Points 2410

Les deux choses que je fais sont :

  1. Créer le dossier debian

    Dans ce dossier, je crée les fichiers suivants en fonction des besoins (c'est-à-dire que je ne crée pas de fichiers dont vous n'avez pas besoin) :

     changelog
     compat
     control
     rules
     shlibs.local
     source/format
     source/options
     project-name.docs
     project-name.install
     project-name.preinst
     project-name.postinst
     project-name.prerm
     project-name.postrm
     project-name.service
     project-name.logrotate
     project-name.cron.daily
     project-name.cron.monthly
     ...
  2. Ensuite, je construis le paquet avec :

     dpkg-buildpackage -us -uc

    Vraiment, j'utilise un script. Cette commande va encombrer votre arbre source de toutes sortes de fichiers. Donc de mon côté, je fais d'abord une copie puis j'exécute la commande dans la copie. Je peux ensuite supprimer la copie.

     cd project-name
     VERSION=`dpkg-parsechangelog --show-field Version`
     cd ..
     cp -r project-name project-name-${VERSION}
     cd project-name-${VERSION}
     dpkg-buildpackage -us -uc

Dans le debian/source/options Je l'ai fait :

tar-ignore = "tmp"
tar-ignore = ".git"

car sans ces deux éléments, ces dossiers seront ajoutés à votre paquetage source alors qu'ils ne devraient probablement pas l'être.

Une autre façon est d'utiliser le système PPA à https://launchpad.net/ et qui a l'avantage d'être très facile à installer le paquet résultant sur n'importe quelle machine. Il est également public si vous voulez partager les paquets résultants (si vous ne voulez pas partager, alors évidemment vous ne devriez pas utiliser celui-là).

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