APT 고정 종속성 해결

데비안에서 APT 고정이 작동하는 방식을 익히려고 노력하고 있지만 우선 순위를 해결하는 방법을 파악하는 데 어려움을 겪고 있습니다.

정확한 순서로 다음 항목이있는 source.list 파일이 있습니다.

deb <repository> stretch main deb <repository> testing main deb <repository> unstable main 

다음 저장소에는 브랜치별로 이러한 패키지가 포함되어 있습니다.

  • stretch에는 dependency version 1.0 패키지가 포함됩니다.
  • 테스트에는 dependency version 2.0;
  • unstable은 programdependency version 2.0 패키지를 포함합니다.

program 패키지는 dependency version 2.0에 따라 다릅니다.

program 패키지이지만 unstable에서 가능한 한 적은 패키지를 설치하려고하므로 다음 파일을 사용하여이 브랜치를 고정 :

Package: * Pin: release a=unstable Pin-Priority: -1 

제대로 작동하는지, APT에 명시 적으로 지시 할 때만 unstable에서 패키지를 설치해야합니다.

또한 apt.conf 파일을 사용하여 stable 분기가 기본값인지 확인합니다.

APT::Default-Release "stable"; 

명령을 실행 한 후 apt-get update, 브랜치의 우선 순위는 다음과 같습니다.

stable: 990 testing: 500 unstable: -1 

이제 이렇게하려면 다음 명령을 실행합니다.

apt-get install -t unstable program 

이제 제 질문은 APT가 어느 지점에서 패키지 dependency version 2.0? testingunstable 모두 동일한 버전의 패키지를 가지고 있기 때문에 어떤 패키지가 선택 되나요?

올바르게 이해하십시오. -t unstable 옵션이있는 APT는 unstable에 속한 패키지에 990 우선 순위를 설정하지만 제가 경험 한 바에 따르면 , testing에서 가져옵니다.

그러면 APT가 우선 순위가 500 인 testing에서 패키지를 가져 오는 이유는 무엇입니까? unstable를 990으로 설정 했습니까? 또한 unstable에서 가능한 한 적은 패키지를 설치하는 최적의 방법은 무엇입니까?

댓글

  • 버전이 같으면 파일도 동일 합니다. Apt는 가장 빠른 것을 선택하거나 첫 번째를 선택합니다. 정의 된 미러이지만 다운로드 한 파일의 URL이 동일합니다. 직접 확인하세요. Debian 저장소는 디스크 공간 문제로 인해 패키지의 동일한 파일 / 버전 두 개를 ' 저장하지 않습니다.

답변

apt_preferences 맨 페이지 :

sources.list (5) 파일이 설치된 경우 여러 버전의 패키지를 설치할 수 있습니다. 둘 이상의 배포에 대한 참조를 포함합니다 (예 : 안정 및 테스트). APT는 사용 가능한 각 버전에 우선 순위를 할당합니다. 종속성 제약 조건에 따라 apt-get는 설치 우선 순위가 가장 높은 버전을 선택합니다. APT 환경 설정은 APT가 기본적으로 패키지 버전에 할당하는 우선 순위를 재정의하므로 설치를 위해 선택되는 패키지 버전을 사용자가 제어 할 수 있습니다.

소스가있을 때 패키지의 동일한 버전의 여러 인스턴스를 사용할 수 있습니다. .list (5) 파일에는 둘 이상의 소스에 대한 참조가 포함되어 있습니다. 이 경우 apt-get는 sources.list (5) 파일에서 가장 먼저 나열된 인스턴스를 다운로드합니다. APT 환경 설정은 인스턴스 선택에 영향을주지 않고 버전 선택에만 영향을줍니다.

우선 순위는 버전 번호로 지정된 버전 만 결정합니다. 패키지가 설치됩니다. 확인되면 사용 가능한 첫 번째 패키지 저장소를 사용하여 다운로드합니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다