{{tag>Debian Deb}}
= Construire un paquet Debian .deb
Voir :
* [[https://www.debian.org/doc/manuals/maint-guide/index.fr.html|Guide du nouveau responsable Debian]]
* [[compilation_opencv_sur_debian|Création d'un paquet Debian OpenCV]]
* http://blog.easter-eggs.org/index.php/post/2014/04/10/Backporter-un-package-Debian-testing-vers-Debian-stable
== Pour construire un paquet à partir des sources
Voir checkinstall http://openmaniak.com/fr/checkinstall.php
Voir [[Debian - Construction d un paquet a partir des sources - wdfs]]
Construire un paquet Debian .deb
Créer un répertoire temporaire. Entrer dans ce répertoire.
Télécharger la source .tar.gz d'origine et la nommer ex.: package_x.x.x.orig.tar.gz
Décompresser la source d'origine dans un dossier nommé package-x.x.x. C'est dans ce dossier qu'il faut effectuer les modifications (ex. créer /debian avec dh_make)
À la racine du répertoire package-x.x.x, entrer "dpkg-buildpackage -rfakeroot" pour lancer la génération du .deb
Dans le répertoire temporaire (..), en plus du .deb on devrait maintenant avoir un diff.gz, en plus d'un .dsc
Et pour générer un .src.deb:
Créer le .src.deb avec: ar -r package_x.x.x-x_arch.src.deb package_x.x.x-x.diff.gz package_x.x.x-x.dsc package_x.x.x.orig.tar.gz
== Création d'un paquet Debian - Exemple avec NodeJS
Voir : https://github.com/ruxkor/checkinstall/blob/master/checkinstallrc-dist
wget https://nodejs.org/dist/v8.9.3/node-v8.9.3.tar.gz
tar xvf node-v8.9.3.tar.gz
cd node-v8.9.3
./configure
make -j $(nproc)
cat >description-pak <' \
--pkglicense 'GPL' \
--pkgname nodejs \
--pkgrelease 1 \
--pkgversion 8.9.3 \
--pkggroup web \
--pkgsource 'https://nodejs.org/dist/v8.9.3/node-v8.9.3.tar.gz' \
--requires 'libc-ares2 (>= 1.8.0), libc6 (>= 2.14), libgcc1 (>= 1:4.1.1), libssl1.0.0 (>= 1.0.1), libstdc++6 (>= 4.1.1), libv8-3.14.5, zlib1g (>= 1:1.1.4)'
# --review-control
== Méthode 2
Voir :
* dpkg-dev: /usr/bin/dpkg-buildpackage
* lintian
* dh-make
* debhelper
apt-get install dh-make debhelper lintian
apt-get install dpkg-dev # dpkg-buildpackage
dh_make --single --native --yes --email root@localhost
cd /debian/
dos2unix preinst postinst prerm postrm copyright control
# Modification de la cible dh_install dans le fichier debian/rules
cat >> debian/rules << FIN_AJOUT_debian_rules
override_dh_install:
dh_install --sourcedir=$X_BASEDIR/src
FIN_AJOUT_debian_rules
dpkg-buildpackage -us -uc 2>&1 > /dev/null
# Vérification par lintian
lintian --suppress-tags dir-or-file-in-opt,embedded-library,executable-not-elf-or-script ../${PKG_NAME}_${PKG_VERSION}_amd64.deb
== Notes
Les scripts de postinstall et autres sont dans ''/var/lib/dpkg/info''
# ls -1 /var/lib/dpkg/info/atop.*
/var/lib/dpkg/info/atop.conffiles
/var/lib/dpkg/info/atop.list
/var/lib/dpkg/info/atop.md5sums
/var/lib/dpkg/info/atop.postinst
/var/lib/dpkg/info/atop.postrm
/var/lib/dpkg/info/atop.preinst
/var/lib/dpkg/info/atop.prerm
== Autres
''/usr/share/apport/package-hooks/wsl-pro-service.py''
'''apport package hook for wsl-pro-service
(c) Canonical Ltd.
'''
import apport.hookutils
def add_info(report):
pass