Debian 패키지 규칙에서 명령을 실행하시겠습니까?

Debian 패키지 규칙에서 명령을 실행하시겠습니까?

나는 이것에 설명된 것과 비슷한 것을 하려고 노력 중입니다.Q&A, 내가 사용하는 것을 제외하고 setfacl.

나는 다음을 가지고 있습니다 debian/rules:

...
override_dh_fixperms:
    dh_fixperms
    setfacl -m u:applicationX:rw /etc/NetworkManager/

이 패키지는 Jenkins 서버에 구축되었습니다. 오류를 반환합니다:

make[2]: setfacl: Command not found

이 명령은 설치 프로세스 중에 실행될 것으로 예상했는데, 패키지가 설치된 장치에는 setfacl빌드 프로세스 중에 명령이 Jenkins 서버에서 실행되는 것으로 보입니다.

위의 작업을 수행하는 방법을 오해 했습니까? 대상 컴퓨터에서 실행할 수 있는 규칙이 있나요?

또한 수정되는 파일은 내 패키지 자체의 일부가 아닙니다.

답변1

패키지 빌드 중에는 ACL을 저장할 수 없습니다. 패키지를 설치한 후에 이 작업을 수행해야 합니다 postinst. 이렇게 하려면 postinst디렉터리 debian에 라는 파일을 만들고 setfacl그 안에 명령을 추가하세요. 또한 파일 acl에 종속성을 추가 해야 합니다 control.

귀하의 패키지가 속하지 않는다는 사실은 /etc/NetworkManager번거로움을 더욱 가중시킵니다. 하지만 귀하의 패키지는 데비안 아카이브에 업로드될 운명이 아닌 것 같습니다... 또한 일반적으로 그러한 가능성을 아무런 문제 없이 처리하려면 몇 가지 어려움을 겪어야 합니다. ACL 파일을 삭제하고 다시 만드는 것이 가능 /etc/NetworkManager하지만 실제로는 그럴 가능성이 거의 없습니다.

관련 정보