J'essaye d'empaqueter une application mono pour fonctionner comme un service systemd.
J'ai suivi les instructions ici: https://wiki.debian.org/Teams/pkg-systemd/Packaging
J'ai ajouté dh-systemd (> = 1.5) à mon fichier de contrôle debian, cela dépend.
J'ai ajouté --with = systemd à mon fichier de règles comme suit:
%:
dh $@ --with=cli --with=systemd
J'ai ajouté mon fichier de service à mon dossier debian appelé mypackage.service avec le contenu suivant:
[Unit]
Description=My Service Description
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/mono /usr/lib/mypackage/myservice.exe
[Install]
WantedBy=multi-user.target
Cependant, la construction donne les avertissements et les erreurs lintian suivants:
Now running lintian...
E: mypackage: postrm-does-not-call-updaterc.d-for-init.d-script etc/init.d/mypackage
W: mypackage: init.d-script-not-marked-as-conffile etc/init.d/mypackage
E: mypackage: init.d-script-not-included-in-package etc/init.d/mypackage
Cela me déroute pour plusieurs raisons
- Ces avertissements concernent init.d qui est l'ancien système qui est remplacé par systemd, ces erreurs et avertissements sont-ils tout simplement faux, debuild pense-t-il que j'utilise init.d parce que j'ai mal configuré mon paquet?
- J'avais l'impression que --with = systemd créerait ces scripts pour moi.
Mise à jour
Le fichier postrm généré est le suivant:
#!/bin/sh
set -e
# Automatically added by dh_systemd_start
if [ -d /run/systemd/system ]; then
systemctl --system daemon-reload >/dev/null || true
fi
# End automatically added section
# Automatically added by dh_systemd_enable
if [ "$1" = "remove" ]; then
if [ -x "/usr/bin/deb-systemd-helper" ]; then
deb-systemd-helper mask mypackage.service >/dev/null
fi
fi
if [ "$1" = "purge" ]; then
if [ -x "/usr/bin/deb-systemd-helper" ]; then
deb-systemd-helper purge mypackage.service >/dev/null
deb-systemd-helper unmask mypackage.service >/dev/null
fi
fi
# End automatically added section
le fichier prerm généré est le suivant:
#!/bin/sh
set -e
# Automatically added by dh_systemd_start
if [ -d /run/systemd/system ]; then
deb-systemd-invoke stop mypackage.service >/dev/null
fi
# End automatically added section
# Automatically added by dh_installinit
if [ -x "/etc/init.d/mypackage" ] || [ -e "/etc/init/mypackage.conf" ]; then
invoke-rc.d mypackage stop || exit $?
fi
# End automatically added section
Le package s'installe en fait correctement et le service démarre correctement. Les erreurs lintiennes sont inquiétantes et j'aimerais aller au fond des choses.
dh) devrait en générer des appropriés. Exécutez dpkg-deb --controlle fichier deb généré, et regardez dans le nouvellement créé DEBIANrépertoire postinst, postrmfichiers.
postrmscript? A-t-il le passe-partout debhelper?