{{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