Creation d'un .deb

De drev
Aller à : navigation, rechercher

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://blog.packagecloud.io/debian/debuild/packaging/2015/06/08/buildling-deb-packages-with-debuild/

https://debian-handbook.info/browse/fr-FR/stable/sect.building-first-package.html

https://wiki.debian.org/Packaging/Intro?action=show&redirect=IntroDebianPackaging