즉, 백포트 저장소에서 직접 데비안 패키지 종속성을 정의하는 것이 가능합니까?
패키지가 설치될 때 자체적으로 빌드되는 사용자 정의 데비안 패키지를 만들려고 합니다. 그러나 해당 패키지를 빌드하려면 linux-headers
백포트 저장소(또한)에서만 사용할 수 있는 최신 패키지가 필요합니다 linux-compiler
. 커널도 백포트에서 설치되기 때문입니다.
패키지에 사용자 정의 APT 기본 설정 파일을 포함하려고 시도했지만 도움이 되지 않았습니다. apt
진행 중인 설치 프로세스 중에 구성 파일을 다시 읽지 않으므로 어떤 방법이 적합합니까 ? 기본 설정 파일의 내용은 다음과 같으며, 수동으로 설치하면 올바른 버전을 제공합니다.
Package: linux-headers-amd64 linux-compiler-gcc-6-x86
Pin: release n=stretch-backports
Pin-Priority: 1000
그럼 그냥 말로만 하면 모든 일이 순조롭게 진행될 수 있는 방법이 없을까요 apt install my-custom-package
?
답변1
패키지 자체에 대한 패키지 종속성으로 패키지를 설치하기 위해 리포지토리를 지정할 수 없습니다. 당신이 할 수 있는 유일한 일은 최소 버전을 지정하는 것입니다:
Depends: linux-headers-amd64 (>= 4.19)
패키지에 구성 파일을 제공 할 수 있지만 apt
말씀하신 대로 설치 중에는 고려되지 않습니다. 또한 패키지 설치는 종속성을 사용하지 않는 한 다른 패키지의 설치를 요청할 수 없으므로 새 저장소를 설정한 다음 apt-get install
에서 설치할 수 없습니다 postinst
.
아마도 가장 좋은 접근 방식은 백포트 저장소를 구성하는 패키지를 제공하는 것일 수 있습니다(필요한 경우 핀 우선 순위를 추가하지 않고 질문에서 수행한 방식으로 수정하면 결국 사용자 설정이 손상될 수 있음).그 다음에실제 패키지를 설치하십시오(어쨌든 지정해야 합니다 -t stretch-backports
). 또는 를 사용할 수 있습니다 dkms
.
그런데, 커널 컴파일러 패키지에 의존해서는 안 됩니다. 특정 헤더 패키지에는 적절한 종속성이 있으므로 필요한 경우 컴파일러 패키지가 전이적으로 당겨집니다.