Pour des raisons diverses et variées il se peut que l'on soit obligé de compiler les sources d'un package plutot que d'utiliser le package d'origine.

J'ai besoin d'utiliser le démon nrpe avec le passage d'argument, pour des raisons de sécurité Debian à choisi de fournir le package sans cette option. Il faut

donc recompiler en y intégrant cette option (--enable-command-args)

Pour éviter que l'apt-gte upgrade vous change votre binaire vous pouvez bloquer la mise à jour via la commande:

apt-mark hold nagios-nrpe-server

Pour compiler les sources vous avez besoin des packages suivants:

  • build-dep
  • dpkg-dev
  • libssl-dev
  • dpatch
  • debhelper
  • libwrap0-dev
  • autotools-dev
  • build-essential
  • fakeroot
  • hardening-includes

Pour les Debian supérieur à 9 (buster,..)

le package devscripts remplace les packages : build-dep et hardening-includes

Ce qui donne:

  • devscripts
  • dpkg-dev
  • libssl-dev
  • dpatch
  • debhelper
  • libwrap0-dev
  • autotools-dev
  • build-essential
  • fakeroot

Ce qui donne :

  • apt-get install devscripts dpkg-dev libssl-dev dpatch debhelper libwrap0-dev autotools-dev build-essential fakeroot

Placez vous de préférence dans votre home directory

Récupération du package source :

apt-get source nagios-nrpe-server

Modifier le ficher rules qui se trouve dans nom_du_package_source_décompressé/debian/

Dans notre cas il se trouve dans : ~/nagios-nrpe-3.0.1/debian/

Il faut ajouter la ligne entre : "dh_auto_configure --\" et "--with-piddir=/var/run/nagios"

--enable-command-args \

Fabrication du package :

Positionnez vous un répertoire au-dessus de debian, soit dans notre cas :

~/nagios-nrpe-3.0.1/debian/

dpkg-buildpackage -rfakeroot

 

Si vous avez l'erreur :

gpg: skipped "Bas Couwenberg <Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.>": No secret key
gpg: dpkg-sign.AxHzTdVY/nagios-nrpe_3.2.1-1.dsc: clear-sign failed: No secret key

dpkg-buildpackage: error: failed to sign .dsc file

avec la commande dpkg-buildpackage -rfakeroot utiliser la commande : dpkg-buildpackage -uc -us

puis installer le package créé via la commande

dpkg -i nom_du_package.deb