Create Debian Package (.deb)

Wikis > Informatique > Linux > APT > Create Debian Package (.deb)

== Arborescence d’un paquet Debian ==

Un paquet Debian contient un dossier DEBIAN contenant les infos relatives au paquet, et les fichiers qui devront être copiés sur le système.

- dossier_du_paquet/
--- DEBIAN/
----- control  //Contient les informations du paquet
----- preinst  //Script exécuté avant l'installation du paquet
----- postinst //Script exécuté après l'installation du paquet
----- prerm    //Script exécuté avant la suppression du paquet
----- postrm   //Script exécuté après la suppression du paquet
--- var/
----- www/
------- languille11/  // Structure des fichiers a copier ( dans l'exemple tous sera copié dans /var/www/languille11/... )
------- fichier1
------- fichier2
------- fichier3

Exemple du fichier *control* :

Package: languille11
Version: 2.10
Section: base
Priority: optional
Architecture: all
Depends: apache2, php5, mysql-server
Maintainer: Anthony Magnini 
Description: Package to install website Languille11
Homepage: http://www.languille11.fr

Les scripts de pré installation, post installation, pré suppression, post suppression doivent être exécutable.

== Compilation du paquet ==

Une fois le paquet créé comme on le souhaite, on se place au même niveau que le *dossier_du_paquet* et on compile le .deb par la commande :

dpkg-deb --build nom_du_paquet

Et voila le paquet Debian est créé.

Pour l’installer :

dpkg -i nom_du_paquet.deb

===== Exemple De script pour la création automatique d’un paquet Debian à partir des sources =====

*build-debian-package.sh

#!/bin/sh

if [ -f ${1} ]; then
echo "Utilisation : ./build-debian-package.sh "
else

SOURCE=$1
INSTALLFOLDER="var/www"
VERSION=$(cat ${SOURCE}/utils/debian/control | grep "Version" | awk '{print $2}')
NAME=$(cat ${SOURCE}/utils/debian/control | grep "Package" | awk '{print $2}')
ARCH=$(cat ${SOURCE}/utils/debian/control | grep "Architecture" | awk '{print $2}')

echo "Creation de l'arborescence du paquet"

mkdir -p ${NAME}_${VERSION}_${ARCH}/DEBIAN

mkdir -p ${NAME}_${VERSION}_${ARCH}/${INSTALLFOLDER}/${NAME}

echo "Recuperation des informations du paquet"

cp $1/utils/debian/* ${NAME}_${VERSION}_${ARCH}/DEBIAN/

chmod 755 ${NAME}_${VERSION}_${ARCH}/DEBIAN/p*

echo "Recuperation des sources du paquet"

cp -r $1/* ${NAME}_${VERSION}_${ARCH}/${INSTALLFOLDER}/${NAME}/

echo "Creation du paquet debian"

dpkg-deb --build ${NAME}_${VERSION}_${ARCH}

#dpkg-buildpackage -us -uc ${NAME}_${VERSION}_${ARCH}

rm -rf ${NAME}_${VERSION}_${ARCH}

echo "Le paquet Debian est disponible"

fi

== Mise en ligne du paquet Debian ==

Pour mettre en ligne le paquet Debian, utiliser un répos comme expliqué dans [[Créer un repos privé Debian|cette rubrique]]