SysV init 스크립트가 아닌 systemd 서비스를 사용하여 .deb를 생성합니다.

SysV init 스크립트가 아닌 systemd 서비스를 사용하여 .deb를 생성합니다.

기존 데비안 패키지에 systemd 서비스 파일을 추가하려고 합니다. 나는 팔로우한다https://wiki.debian.org/Teams/pkg-systemd/Packagingdebian/packagename.service, 그래서 내 debhelper버전이 9.x이므로 다음도 수행했습니다 .

  • 다음에dh-systemd 추가Build-Dependsdebian/control
  • 명령 --with systemd에 추가되었습니다 .dhdebian/rules

이제 다시 빌드 패키지를 사용하면 debuild -i -us -uc -b다음 출력과 함께 실패합니다.

Now running lintian...
[...]
W: packagename: init.d-script-not-marked-as-conffile etc/init.d/packagename
E: packagename: init.d-script-not-included-in-package etc/init.d/packagename

파일이 있으면 빌드 스크립트에 init.d 스크립트가 필요한 것 같습니다 .service. 실제로 생성된 콘텐츠에는 DEBIAN/postinst다음 섹션이 포함됩니다.

# Automatically added by dh_installinit
if [ -x "/etc/init.d/infinoted" ]; then
        update-rc.d infinoted defaults >/dev/null
        invoke-rc.d infinoted start || exit $?
fi
# End automatically added section

이것이 예상되는 동작입니까? 파일을 포함할 때 항상 SysV init 스크립트를 포함해야 합니까 .service? 그렇지 않은 경우 이 섹션이 생성되지 않도록 권장되는 방법은 무엇입니까?

내 시스템은 Debian Jessie입니다.

답변1

오버레이가 dh_installinit저에게 효과적입니다. 방금 다음 항목에 추가했습니다 debian/rules.

override_dh_installinit:
        true

여전히 systemd 장치를 설치하고 모든 것이 예상대로 작동하는 것 같습니다.

하지만 이것이 예상된 동작인지 버그인지는 아직 알 수 없습니다. 저는 Debian Stretch나 Sid에서는 테스트하지 않았고 Jessie에서만 테스트했습니다.

관련 정보