[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: faire un paquet .deb



salut,

On Mon, Aug 25, 2025 at 12:55:52AM +0200, hamster wrote:
> Je cherche a faire un paquet .deb mais je peine a trouver un tuto adapté

Voici le Makefile avec lequel je maintiens mon paquet
"belike-mc" dans lequel je garde trace de tous les paquets
que je juge utile:

APP      = belike-mc
ROOT     = root
CTRL     = ${ROOT}/DEBIAN/control
VERSION != sed ' /^Version: /!d; s///; q ' ${CTRL}
SRC     != find ${ROOT} -type f
DEB      = ${APP}_${VERSION}.deb
${DEB}  : ${SRC} ; LANG= dpkg-deb --build --root-owner-group ${ROOT} ${DEB}
dir:
	mkdir ${ROOT}; cd ${ROOT};\
	mkdir -p DEBIAN sbin bin usr/share/man/man1 usr/bin

* les fichiers qui doivent être installés doivent être copiés dans root
  à la bonne place. eg.
  root/bin/maintenance installe la commande /bin/maintenance

* le répertoire root/DEBIAN correspond aux repertoires debian dans les
  sources des paquets. c'est ici que tu places tes fichiers control,
  post*, pre* … le seul fichier obligatoire dans ce répertoire est
  root/DEBIAN/control. pour en créer un, trouve un paquet qui ressemble
  à ton besoin et fais apt show lepaquet > root/DEBIAN/control.

le tiens ressemblerait à

Package: belike-mc
Version: 0.0-17
Architecture: all
Section: belike
Maintainer: hamster
Depends: sshd, x11vncserver, fail2ban, tmux
Description: outils de maintenance de hamster
 tous les outils dont hamster a besoin pour faire
 des interventions à distance.

apres tu as juste à lancer la commande make et ton paquet est créé.

par contre:

> Pour configurer, ca nécessite de modifier des
> fichiers comme /etc/ssh/sshd_config et je vois nettement moins bien comment
> le faire.

Si tu veux utiliser debconf, je ne suis pas sur que ce soit recommandé
de modifier la conf d'autres paquets (je vais regarder le lien que
Charles nous a partagé)

Si par "configurer" tu entends jouer les bourins et écraser les fichiers
de configuration existants (au mépris de debconf et de possibles
modifications locales) (façon ansible par exemple), c'est très simple:

dans root/DEBIAN/postinst, tu fais un shell avec des heredocs. exemple:

<<% cat > /etc/ssh/sshd_config.d/git.conf
Match User git
	X11Forwarding no
	AllowTcpForwarding no
	PermitTTY no
	ExposeAuthInfo yes
	ForceCommand /srv/git/sh
%

les heredocs sont de vrais templates puisque les variable expansions
y sont possibles

<<% cat
hostname: $(hostname)
home    : $HOME
${extra+extra: $extra}
%

me donne

hostname: prometheus
home    : /home/mc

tu peux proteger le boundary avec \ :

<<\% cat
hostname: $(hostname)
home    : $HOME
${extra+extra: $extra}
%

me donne:

hostname: $(hostname)
home    : $HOME
${extra+extra: $extra}

> En bref, si quelqu’un a un lien vers un tuto plus adapté a ce que je veux
> faire je suis preneur.

-- 
Marc Chantreux
Pôle CESAR (Calcul et services avancés à la recherche)
Université de Strasbourg
14 rue René Descartes,
BP 80010, 67084 STRASBOURG CEDEX
03.68.85.60.79

Attachment: signature.asc
Description: PGP signature


Reply to: