Dpkg Debuild dh_helper: /opt/package에 설치된 바이너리를 /usr/local/bin으로 심볼릭 링크하는 방법은 무엇입니까?

Dpkg Debuild dh_helper: /opt/package에 설치된 바이너리를 /usr/local/bin으로 심볼릭 링크하는 방법은 무엇입니까?

나는 첫 번째 데비안 프로젝트를 패키징하고 있으며 문제를 100% 해결했습니다 gnu-make(나에게는 여기서는 무엇이든 가능하므로 지금 내 어려움은 전적으로 탐색 dpkg/ debuild시스템에 있습니다).

이제 다음과 같은 규칙 파일과 호환성을 갖춘 더미 컴파일이 생겼습니다.

// debian/compat
10

// debian/rules

#!/usr/bin/make -f
%:
  dh $@

override_dh_auto_install:
  cat binaries.txt | xargs -I arg install -D -m 0755 arg $$(pwd)/debian/package/opt/package/arg

모든 컴파일 및 소스 파일이 포함 debian디렉토리에서 make를 통해 관리된다고 가정하면 예상대로 작동하는 최소한의 경우가 있습니다.

// binaries.txt
foo
bar

간단한 make 프로세스에 의해 생성된 더미 바이너리를 나열하는 바이너리 파일입니다.

여기 문서에 따라 deb_helper내 바이너리를 심볼릭 링크하기 위한 심볼릭 링크를 작성하려고 합니다./opt/package/usr/local/bin

https://manpages.debian.org/stretch/dpkg/dpkg-maintscript-helper.1.en.html

그러나 나는 운이 별로 좋지 않았다. 이에 대한 절차는 무엇입니까?

답변1

패키지에 심볼릭 링크를 보내려면 다음을 사용하는 것이 좋습니다.dh_link. 가장 쉬운 방법은 원하는 심볼릭 링크를 나열하는 것입니다 debian/links(또는 debian/package.links소스 패키지가 여러 바이너리 패키지를 빌드하는 경우).

opt/package/bin/foo usr/bin/foo
opt/package/bin/bar usr/bin/bar

데비안 패키지는 그 아래에 어떤 파일도 제공하지 않으므로 /usr/local빌드 도구는 이를 잘 지원하지 않습니다.

에서 다른 것이 필요하지 않은 경우 /opt/package바이너리를 /usr/bin.

당신은 또한 사용할 수 있습니다dh_install설치를 단순화하려면 설치할 바이너리를 나열하십시오 debian/install.

foo opt/package/bin
bar opt/package/bin

또는

foo usr/bin
bar usr/bin

dh_auto_install그런 다음 오버레이를 제거할 수 있습니다 .

관련 정보