tech:construire_un_paquet_debian_deb
Table des matières
Construire un paquet Debian .deb
Voir :
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 <<EOF evented I/O for V8 javascript Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices. EOF echo |fakeroot checkinstall --install=no \ --strip \ --nodoc \ --exclude '/home,/usr/local/include' \ --gzman \ --reset-uids \ --maintainer 'Plop \<plop@acme.fr\>' \ --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
tech/construire_un_paquet_debian_deb.txt · Dernière modification : de Jean-Baptiste
