Creation d'un .deb
Prérequis
Recuperation du code source de l'application a empaqueter
Le nom du tarball doit être du type NOMAPP_VERSION.orig.tar.gz
Le nom du répertoire une fois décompressé doit être du type NOMAPP-VERSION
par exemple gjitenkai, un dictionnaire Japonais écrit avec GTK3
cd ~/projects wget https://github.com/odrevet/gjitenkai/archive/v1.0.0.tar.gz -O gjitenkai_1.0.0.orig.tar.gz tar xf gjitenkai_1.0.0.orig.tar.gz
Installation des paquets et configuration du système
pour permettre la création de .deb a partir des sources d'un logiciel
Avec Docker
Il est pratique d'utiliser docker comme environnement de travail:
- Portabilité : Fonctionne sous les autres OS que debian ou dérivé (ubuntu), par exemple, ArchLinux, Windows...
- Segmentation : Séparation claire de l’environnement du build et du système hôte (sans chroot)
- Reproduction : la configuration peut être re-appliqué ulterieurement sans crainte de changement de configuration
Création d'une image
nommée drev/makedeb basée sur debian permettant la fabriquation de paquets .deb
- A l'aide d'un Dockfile
FROM debian:latest RUN apt-get update && apt-get -y install dh-make nano ENV USER=root
Commande de build de l'image
docker build -t drev/makedeb:latest .
Utilisation de l'image
Lancer l'image avec le répertoire project monté dans root
host$ docker run -it -v /home/odrevet/projects:/root/projects drev/makedeb dock# cd root/projects/gjitenkai-1.0.0
Voir section lancement de la création du paquet, commune a toute les configuration ayant satisfait les prérequis
lancement de la création du paquet
Une fois que les prérequis sont satisfait, lancement de la création du paquet
On supposera que l'on se situe dans le repertoire projet, contenant le tarbar de l'application a empaquete correctement nommé ainsi que ce même tarball de compressé
Creation du repertoire debian contenant les fichiers requis
A l'aide de la commande dh_make
$ cd gjitenkai-1.0.0 $ dh_make --createorig s
Edition du fichier debian/control
Source: gjitenkai Section: unknown Priority: optional Maintainer: Olivier Drevet <XXX@gmail.com> Build-Depends: debhelper (>= 9), cmake, libgtk-3-dev Standards-Version: 3.9.5 Homepage: <insert the upstream URL, if relevant> #Vcs-Git: git://anonscm.debian.org/collab-maint/gjitenkai.git #Vcs-Browser: http://anonscm.debian.org/?p=collab-maint/gjitenkai.git;a=summary Package: gjitenkai Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: A new implementation of Gjiten, a Gnome japanese dictionary The goal of this rewrite of Gjiten is to have a Gjiten with new features and a new interface, while keeping the original overall design.
Installation des dépendances de l’application à empaqueter
Dans ce cas :
apt install cmake libgtk-3-dev
Creer le paquet
Les paquets .deb seront crées dans le répertoire parent a celui du projet
Avec buildpackage
dpkg-buildpackage -us -uc
Avec debuild
installer le paquet devscripts puis faire un
debuild -us -uc
Sources
https://www.debian.org/doc/manuals/maint-guide/build.fr.html
https://debian-handbook.info/browse/fr-FR/stable/sect.building-first-package.html
https://wiki.debian.org/Packaging/Intro?action=show&redirect=IntroDebianPackaging