데비안에서 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은
program
및dependency 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
? testing
와 unstable
모두 동일한 버전의 패키지를 가지고 있기 때문에 어떤 패키지가 선택 되나요?
올바르게 이해하십시오. -t unstable
옵션이있는 APT는 unstable
에 속한 패키지에 990 우선 순위를 설정하지만 제가 경험 한 바에 따르면 , testing
에서 가져옵니다.
그러면 APT가 우선 순위가 500 인 testing
에서 패키지를 가져 오는 이유는 무엇입니까? unstable
를 990으로 설정 했습니까? 또한 unstable
에서 가능한 한 적은 패키지를 설치하는 최적의 방법은 무엇입니까?
댓글
- 버전이 같으면 파일도 동일 합니다. Apt는 가장 빠른 것을 선택하거나 첫 번째를 선택합니다. 정의 된 미러이지만 다운로드 한 파일의 URL이 동일합니다. 직접 확인하세요. Debian 저장소는 디스크 공간 문제로 인해 패키지의 동일한 파일 / 버전 두 개를 ' 저장하지 않습니다.
답변
sources.list (5) 파일이 설치된 경우 여러 버전의 패키지를 설치할 수 있습니다. 둘 이상의 배포에 대한 참조를 포함합니다 (예 : 안정 및 테스트). APT는 사용 가능한 각 버전에 우선 순위를 할당합니다. 종속성 제약 조건에 따라
apt-get
는 설치 우선 순위가 가장 높은 버전을 선택합니다. APT 환경 설정은 APT가 기본적으로 패키지 버전에 할당하는 우선 순위를 재정의하므로 설치를 위해 선택되는 패키지 버전을 사용자가 제어 할 수 있습니다.소스가있을 때 패키지의 동일한 버전의 여러 인스턴스를 사용할 수 있습니다. .list (5) 파일에는 둘 이상의 소스에 대한 참조가 포함되어 있습니다. 이 경우
apt-get
는 sources.list (5) 파일에서 가장 먼저 나열된 인스턴스를 다운로드합니다. APT 환경 설정은 인스턴스 선택에 영향을주지 않고 버전 선택에만 영향을줍니다.
우선 순위는 버전 번호로 지정된 버전 만 결정합니다. 패키지가 설치됩니다. 확인되면 사용 가능한 첫 번째 패키지 저장소를 사용하여 다운로드합니다.