APT 고정 종속성 분석

APT 고정 종속성 분석

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-getsource.list(5) 파일에 나열된 가장 빠른 인스턴스가 다운로드됩니다. APT 기본 설정은 인스턴스 선택에 영향을 주지 않으며 버전 선택에만 영향을 미칩니다.

우선순위는 단순히 설치된 패키지 버전을 결정합니다(버전 번호로 지정). 식별되면 사용 가능한 첫 번째 패키지 저장소를 사용하여 다운로드합니다.

관련 정보