 mardi 29 mai création de paquets debian  lors de cette réunion il y avait 9 personnes 6 membres alexis jibux laurent christophe jean tony et mircea 2 visiteurs julien et david 2 visiteurs  julien sous kubuntu depuis 4 mois david sous kubuntu mais connaît linux depuis 5 ans ils sont tous les deux à l école d ingénieur d électronique et d informatique de dijon ils sont venus pour découvrir l association et pour suivre l atelier atelier de création de paquets debian présenté par alexis le but de cet atelier était de découvrir la structure d un paquet debian et de créer un paquet simple nom d un paquet debian pour découvrir la structure d un paquet debian nous sommes partis du paquet officiel réalisé par alexis  http packagesdebianorg stable text ffe pour commencer voici comment se décompose le nom du paquet ffe0211i386deb ffe nom du programme 021 version du programme 1 version du paquet debian i386 système pour lequel ce paquet fonctionne structure d un paquet debian la commande suivante permet de déterminer le type du fichier téléchargé file ffe0161i386deb ffe0161i386deb debian binary package format 20 l option k permet d obtenir plus d infirmations sur le type du fichier dans ce cas nous voyons qu il s agit d un fichier archive de type ar file k ffe0161i386deb ffe0161i386deb debian binary package format 20012 current ar archive 012 archive file 012 assembler source un paquet debian est donc une archive de type ar cette commande permet d afficher le contenu de l archive et donc du paquet debian ar t ffe0161i386deb debianbinary controltargz datatargz et cette commande permet d extraire le contenu de l archive ar x ffe0161i386deb nous commençons par analyser le contenu du fichier controltargz qui est également un fichier archive au format targz que nous décompressons tar xvzf controltargz md5sums control nous affichons le contenu du fichier control cat control package ffe version 0161 section text priority optional architecture i386 depends libc6 2366 installedsize 100 maintainer alexis bezverkhyy bezverky gmailcom mailto bezverky gmailcom description tool for parsing flat and csv files and converting them to different formats ffe has many areas of use with fixed lenth and csv files it can extract particular fields or records from a flat file convert data from one format to an other csv to fixed lenth display flat file content in human readable form etc in addition one input file can contain several types of records lines and the input file structure and output definitions are independent meaning one output format can be used with several input files this input file structure and output format are freely configurable so the output can be formatted eg as fixed length separated tokenized xml sql homepage http ffextractorsourceforgenet ce fichier contient donc des informations importantes comme la version du programme ses dépendances le nom du mainteneur la description du programme nous regardons ensuite le contenu du ficher  md5sums  cat md5sums 8f3466a2d1e9b58a3f73fe4557a36b0e usr bin ffe a52294736234ced6b07d9740a39716fb usr share doc ffe ffehtml 45a9c44690a99e2083851b6ce8931e18 usr share doc ffe changeloggz 836c88730ed63916289e7bbad26ee422 usr share doc ffe newsgz 2f151768c3a0974cfc681337e78f3211 usr share doc ffe readme 6f433ade0f9971c778ae3080923bad6b usr share doc ffe authors 01948ff1b19dead9772d5aeea131c669 usr share doc ffe copyright bc03a498b55149d36b1c4008e687e571 usr share doc ffe changelogdebiangz c63ce234c530fc5c26d1b7bf3fed3d92 usr share info ffeinfogz 3038e20aba1ca199d948d19289747264 usr share man man1 ffe1gz ce fichier contient donc la somme md5 de chaque fichier contenu dans l archive ces sommes md5 permettent de contrôler que le paquet n est pas corrompu ou piraté ensuite nous décompressons l archive  datatargz  tar xvzf datatargz usr usr bin usr bin ffe usr share usr share doc usr share doc ffe usr share doc ffe ffehtml usr share doc ffe changeloggz usr share doc ffe newsgz usr share doc ffe readme usr share doc ffe authors usr share doc ffe copyright usr share doc ffe changelogdebiangz usr share info usr share info ffeinfogz usr share man usr share man man1 usr share man man1 ffe1gz cette archive contient donc tous les fichiers qui seront installés par le paquet sur le système nous retrouvons l arborescence complète des fichiers tels qu ils seront placés sur le système création d un paquet simple pour créer une paquet simple nous allons créer un dossier qui contiendra tous les fichiers nécessaires mkdir coagul ensuite il faut créer le fichier control ce fichier doit reprendre la même structure que le paquet étudié précédemment vim control ensuite il faut créer la structure des dossiers et y placer les fichiers qui seront installés par le paquet mkdir p usr share doc coagul vim usr share doc coagul coucoutxt ensuite il faut créer le fichier md5sums md5sum find usr type f md5sums attention  le fichier md5sums ne doit pas contenir les md5sums des fichiers placés dans controltargz ensuite il faut créer les deux archives tar zcf controltargz control md5sums tar zcf datatargz usr il faut encore créer ou copier le fichier debianbinary qui ne contient que la chaîne 20 pour indiquer la version du système de gestion des paquets pour finir il faut créer l archive correspondant au paquet debian ar q coagul011i386deb debianbinary controltargz datatargz  attention  il faut toujours placer en premier dans l archive le fichier debianbinary  ajout de script d installation dans un paquet debian il est possible d ajouter des scripts de post et préinstallation ces scripts seront exécutés en tant que root et peuvent faire tout ce que vous voulez sur le système preinst postinst prerm postrm après avoir créé les scripts il faut reconstruire le fichier controltargz tar zcf controltargz control md5sums preinst postinst prerm postrm une fois le paquet installé les scripts sont disponibles dans le dossier suivant ls c1 var lib dpkg info coagul var lib dpkg info coagullist var lib dpkg info coagulmd5sums var lib dpkg info coagulpostinst var lib dpkg info coagulpostrm var lib dpkg info coagulpreinst var lib dpkg info coagulprerm protection des fichiers de configuration si votre paquet contient des fichiers de configuration il est possible de prévenir l utilisateur que ces fichiers ont changé lors de l installation d une nouvelle version du paquet pour cela il faut créer le fichier conffiles mkdir etc vim etc coagulconf vim conffiles et recréer le paquet avec ces nouveaux fichiers tar zcf controltargz control md5sums preinst postinst prerm postrm conffiles tar zcf datatargz etc usr création de paquets à partir de fichiers sources et par compilation pour finir alexis nous a présenté rapidement comment créer un paquet debian à partir de fichiers sources et par compilation dans ce cas c est plus compliqué et cela dépassait le cadre de cet atelier très intéressant merci beaucoup alexis pour cet atelier  mardi 29 mai création de paquets debian  salut tony j ai lu le tuto et cela me dépasse largement mais c est passionnant de voir l intérieur des choses merci donc à alexis une seule remarque bénigne ensuite nous décompre ssion l archive datatargz doit être nous décompre ssons  a   mardi 29 mai création de paquets debian  relisant le titre je me demandais si cela ne valait pas la peine de faire deux articles un sur le compte rendu de la soirée et un sur le but même création d un paquet debian ce n est qu un avis  mardi 29 mai création de paquets debian  c est un bon article tu as repris à peu près toutes les commandes qu on a utilisées juste quelques coquilles après avoir cré é les scripts il faut reconstruire le fichier controltargz et pour créer une paquet simple   nous allons créer un dossier qui contiendra tous les fichiers nécessaire s  aussi je pense qu il faut bien préciser que le fichier debianbinary doit être le premier dans l archive ar et aussi insister sur le fait que les fichiers dans conffiles de doivent pas être référencés dans md5sums  mardi 29 mai création de paquets debian  bonjour claude merci pour la relecture autrement ne soit pas si modeste car tu m as largement prouvé que tu étais capable de comprendre et d appliquer des choses plus complexes en informatique que les informations de cet article  mardi 29 mai création de paquets debian  je pense qu il faudrait détailler et préciser certains points pour en faire un article  mardi 29 mai création de paquets debian  merci pour la relecture c est corrigé  réunions  