Create Debian Package (.deb)

Revision for “Create Debian Package (.deb)” created on 4 février 2016 à 13 h 35 min

Titre
Create Debian Package (.deb)
Contenu
== 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. <pre> - 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 </pre> Exemple du fichier *control* : <pre> Package: languille11 Version: 2.10 Section: base Priority: optional Architecture: all Depends: apache2, php5, mysql-server Maintainer: Anthony Magnini <anthonym@languille11.fr> Description: Package to install website Languille11 Homepage: http://www.languille11.fr </pre> 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 : <pre> dpkg-deb --build nom_du_paquet </pre> Et voila le paquet Debian est créé. Pour l'installer : <pre> dpkg -i nom_du_paquet.deb </pre> ===== Exemple De script pour la création automatique d'un paquet Debian à partir des sources ===== *build-debian-package.sh <pre> #!/bin/sh if [ -f ${1} ]; then echo "Utilisation : ./build-debian-package.sh <source>" 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 </pre> == 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]]
Extrait


OldNewDate CreatedAuthorActions
4 février 2016 à 13 h 35 min Anthony Magnini