시스템 서비스로 실행하기 위해 모노 응용 프로그램을 패키지하려고합니다.
https://wiki.debian.org/Teams/pkg-systemd/Packaging 여기에 지침을 따랐습니다.
데비안 제어 파일 빌드에 dh-systemd (> = 1.5)를 추가했습니다.
다음과 같이 --with = systemd를 규칙 파일에 추가했습니다.
%:
dh $@ --with=cli --with=systemd
서비스 파일을 mypackage.service라는 debian 폴더에 다음 내용으로 추가했습니다.
[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
그러나 건물은 다음과 같은 lintian 경고 및 오류를 제공합니다.
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
이것은 여러 가지 이유로 나를 혼란스럽게합니다.
- 이 경고는 systemd로 대체 된 오래된 시스템 인 init.d에 관한 것입니다.이 오류와 경고는 잘못입니까, 패키지를 잘못 구성했기 때문에 init.d를 사용하고 있다고 생각하십니까?
- --with = systemd가 이러한 스크립트를 만들 것이라는 인상을 받았습니다.
최신 정보
생성 된 포스트 룸 파일은 다음과 같습니다.
#!/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
생성 된 prerm 파일은 다음과 같습니다.
#!/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
패키지가 실제로 제대로 설치되고 서비스가 올바르게 시작됩니다. lintian 오류는 걱정스럽고 오류의 맨 아래에 도달하고 싶습니다.
dh
)가 적절한 것을 생성해야합니다. 실행 dpkg-deb --control
생성 된 DEB 파일을, 그리고 새로 생성의 모습 DEBIAN
에 대한 디렉토리 postinst
, postrm
파일.
postrm
스크립트에 무엇이 포함되어 있습니까? debhelper 상용구가 있습니까?