다음과 같은 질문이 있습니다.
바이너리 파일에만 접근할 수 있습니다. 바이너리에서 완전히 자동화된 패키지를 만들려고 합니다 .deb
. 패키징했는데 서비스 파일을 제외하고는 작동합니다.
debian 폴더에 서비스 파일을 만들었습니다.
hello
-- hello
-- debian/hello.service
내 규칙 파일은 다음과 같습니다
$ cat debian/rules
#!/usr/bin/make -f
%:
dh $@
override_dh:install:
dh_install hello usr/bin
패키지가 생성되고 있지만 서비스가 시작되지 않으며 아래에 서비스 파일도 생성되지 않습니다 /etc/systemd/system/
.
postinst 파일은 다음과 같습니다#!/bin/bash set -e
if [ $1 = configure] || [$1 = abort-upgrade]; then
if [ -x /etc/init.d/hello ]; then
update-rc.d hello defaults >/dev/null
답변1
dh_installsystemd
적절한 시스템 서비스 도우미( 호환성 수준 12) 를 호출해야 합니다 .
이를 달성하는 가장 간단한 방법은 dh
시퀀스에 의존하는 것입니다. 빌드할 것이 없더라도 올바른 작업을 수행합니다.
#!/usr/bin/make -f
%:
dh $@
override_dh_install:
dh_install hello usr/bin
이렇게 하면 systemd 도우미를 포함하여 다른 모든 도우미가 올바른 순서로 실행됩니다.
debhelper 호환성 수준이 10보다 낮으면 systemd 시퀀스를 명시적으로 활성화해야 합니다.
%:
dh $@ --with systemd
(서비스 파일은 . /lib/systemd/system
대신 .로 끝납니다. /etc/systemd/system
)
다음과 같이 작성하면 재정의를 완전히 삭제할 수도 있습니다.
hello usr/bin
debian/install
(또는 debian/hello.install
패키지 이름이 이라고 가정하면 ) 입니다 hello
.