apt: source.list를 통해 최신 버전을 사용할 수 있는데 왜 이전 버전의 패키지를 설치합니까?

apt: source.list를 통해 최신 버전을 사용할 수 있는데 왜 이전 버전의 패키지를 설치합니까?

나는 그것을 다시 수행했다. 클린 부팅 liveISO. 이는 파일에서 항목을 제거함을 나타냅니다 /etc/apt/preferences.d.

Package: *
Pin: release o=linuxmint,c=upstream
Pin-Priority: 700

결과를 변경합니다. 따라서 /etc/apt/preferences.d결과에서 기본 설정 파일을 제거한 후에도 몇 가지 추가 요소가 여전히 초기 결과에 영향을 미쳤습니다. 더 파고 싶은데 어디에 있는지 모르겠어요.

긴 이야기 짧게

문제의 패키지에는 종속성이 없습니다( deb구성표의 /lib/apt/lists에 있는 파일 내용과 dpkg -I로컬 file구성표 deb 파일의 파일 내용에 따라). 둘 다 동일한 아키텍처, 동일한 소스 및 동일한 부품을 가지고 있습니다.

현재로서는 설치할 이전 버전을 선택하기 위해 /preferences에서 "make"에 대한 /etc/apt/preferences.d핀을 찾았지만 만약을 대비해 해당 파일(보유하지 않음 ) 을 삭제했지만 여전히 이전 버전을 얻습니다. 같은 방식으로. 또 무엇을 시도해 볼 수 있나요? 사전 참조를 다시 읽는 명령 이 있을까요 ?/etc/apt/preferencesapt/etc/apt/apt.confapt-get updateAPT

APT::Default-Release비어 있습니다( no 여야 합니다 /etc/apt/apt.conf. 그렇죠?).

로컬 아카이브에 파일이 없습니다 Release(사용한 적이 없으며 apt-secure구성표 file가 로 표시됨 trusted).

지금까지의 진행 상황과 man apt_preferences결과는 apt-get install여전히 수수께끼입니다.

작동하다:

웹 검색을 통해 관련 링크만 얻을 수 있습니다.추가된 저장소 사이에 일종의 검색 순서가 있나요?, 주문에 대한 정보를 나타냅니다.동일한버전.

apt나는 데비안 아카이브를 설정하는 방법을 배우고 있으며 매뉴얼 페이지 , apt-get, apt.conf, 를 탐색하고 있습니다 sources.list. 위의 QA 링크에 언급된 것 외에는 주문에 대한 정보가 표시되지 않았습니다.

내 발자국. 난 끝났어 apt-get update등등 liveISO 부팅 PC에서 파일을 복사하고, 데비안 아카이브를 설정하고, 두 번째 스테이션에서 해당 작업을 수행했습니다.apt-get install -d package1package2debapt cacheapt-get install package1

소스 코드를 완전히 제거하고 로컬 구성표 행만 file작성했을 때 /etc/apt/sources.list(다음에 ) 12개 정도의 패키지가 모두 로컬에서 성공적으로 설치되었습니다.apt-get update

그러나 원래 구성표가 여전히 존재하는 동안 로컬 구성표와file 동일한 행을 추가하면 하나의 패키지(위 단락에서 언급된 패키지 중 하나)에 대해 apt가 구성표에서 버전을 다운로드하여 설치하려고 시도하는 것을 알 수 있습니다. 양이 적다면. 최근에 liveISO 소스와 동일한 아카이브에서 파일을 다운로드했기 때문에 숫자가 낮을수록 이전 버전을 의미한다고 가정합니다./etc/apt/sources.listdeb/etc/apt/sources.list.ddebdebdeb

apt-get이전 버전을 우선시하는 이유는 무엇일까요?

답변1

일반적으로 말해서, 많은 패키지는 상호 의존적입니다(즉, 다른 개별 패키지에 의존함을 의미함)."A"는 "B"와 "C"에 따라 달라집니다.. 때로는 패키지(예: "B")가 종속된 패키지(예: "A") 중 하나를 손상시키는 방식으로 업데이트될 수 있습니다. 종속성의 변경 사항을 수용하기 위해 모든 종속 패키지가 자체적으로 업데이트될 때까지 종속성을 업데이트하고 싶지 않을 것입니다.

이 예에서 만약"A"는 "B"와 "C"에 따라 달라집니다.그러나 "B"는 "A"를 깨뜨리는 방식으로 업데이트됩니다(예: 메서드 중 하나가 추가 매개변수를 요구하도록 변경되는 경우). "A"가 "B"의 새 버전과 작동하도록 업데이트될 때까지 B "A"가 깨지는 것을 방지하려면 이전 버전으로 고정해야 합니다.

이러한 종속성 체인은 매우 복잡해질 수 있으므로 apt와 같은 고급 종속성 관리 시스템이 필요하고 상호 호환되지 않는 전체 종속성 하위 집합이 공존할 수 있도록 하는 Anaconda와 같은 가상 환경이 필요합니다.

관련 정보