Debian에서 APT 고정이 어떻게 작동하는지 파악하려고 노력하고 있지만 우선순위를 해결하는 방법을 파악하는 데 어려움을 겪고 있습니다.
source.list
다음 항목이 정확한 순서로 포함된 파일이 있습니다 .
deb <repository> stretch main
deb <repository> testing main
deb <repository> unstable main
다음 저장소에는 각 분기에 대한 이러한 패키지가 포함되어 있습니다.
- 스트레치에는 포장이 포함되어 있습니다
dependency version 1.0
. - 테스트 포함 패키지
dependency version 2.0
; - 불안정한 패키지
program
에는dependency version 2.0
;
패키지는 program
에 따라 다릅니다 dependency version 2.0
.
이 패키지를 설치해야 program
하지만 가능한 한 적은 수의 패키지를 설치하고 싶기 때문에 이 브랜치를 고정하기 위해 unstable
다음 파일을 만들었습니다 .preferences
Package: *
Pin: release a=unstable
Pin-Priority: -1
unstable
작동 방식을 올바르게 이해했다면 APT에 명시적으로 알릴 때만 패키지를 설치해야 합니다.
또한 해당 분기가 기본 분기인지 apt.conf
확인하기 위해 파일을 만들었습니다 .stable
APT::Default-Release "stable";
명령을 실행한 후 apt-get update
분기의 우선순위는 다음과 같습니다.
stable: 990
testing: 500
unstable: -1
이제 패키지를 설치하고 싶습니다 program
. 이를 위해 다음 명령을 실행합니다.
apt-get install -t unstable program
이제 내 질문은 APT가 어느 지점에서 패키지를 가져올 것인가 dependency version 2.0
입니다. 둘 다 동일한 패키지 버전을 testing
갖고 있으므로 어느 것이 선택됩니까?unstable
내가 올바르게 이해했다면, -t unstable
해당 옵션이 있는 APT는 자신이 속한 패키지에 대해 990의 우선순위를 설정 unstable
하지만 내 경험상 패키지에서 추출합니다 testing
.
그러면 APT가 우선순위가 990으로 설정되어 있는데 왜 testing
500에서 패킷을 추출 합니까? unstable
또한 가능한 한 적은 수의 패키지를 설치하는 가장 좋은 방법은 무엇입니까 unstable
?
답변1
이에 대한 설명은 다음과 같습니다.apt_preferences
맨페이지:
source.list(5) 파일에 여러 릴리스(예: 안정 및 베타)에 대한 참조가 포함되어 있는 경우 여러 버전의 패키지를 설치에 사용할 수 있습니다. APT는 사용 가능한 각 버전에 우선순위를 할당합니다. 종속성에 따라 우선
apt-get
순위가 가장 높은 버전이 설치 대상으로 선택됩니다. APT 기본 설정은 APT가 기본적으로 패키지 버전에 할당하는 우선순위를 재정의하여 사용자가 설치를 위해 선택할 버전을 제어할 수 있도록 합니다.source.list(5) 파일에 여러 소스에 대한 참조가 포함되어 있으면 동일한 패키지 버전의 여러 인스턴스를 사용할 수 있습니다. 이 경우
apt-get
source.list(5) 파일에 나열된 가장 빠른 인스턴스가 다운로드됩니다. APT 기본 설정은 인스턴스 선택에 영향을 주지 않으며 버전 선택에만 영향을 미칩니다.
우선순위는 단순히 설치된 패키지 버전을 결정합니다(버전 번호로 지정). 식별되면 사용 가능한 첫 번째 패키지 저장소를 사용하여 다운로드합니다.