![SysV init 스크립트가 아닌 systemd 서비스를 사용하여 .deb를 생성합니다.](https://linux55.com/image/105819/SysV%20init%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EA%B0%80%20%EC%95%84%EB%8B%8C%20systemd%20%EC%84%9C%EB%B9%84%EC%8A%A4%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20.deb%EB%A5%BC%20%EC%83%9D%EC%84%B1%ED%95%A9%EB%8B%88%EB%8B%A4..png)
기존 데비안 패키지에 systemd 서비스 파일을 추가하려고 합니다. 나는 팔로우한다https://wiki.debian.org/Teams/pkg-systemd/Packagingdebian/packagename.service
, 그래서 내 debhelper
버전이 9.x이므로 다음도 수행했습니다 .
- 다음에
dh-systemd
추가Build-Depends
debian/control
- 명령
--with systemd
에 추가되었습니다 .dh
debian/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에서만 테스트했습니다.