Tutoriel Linux

Debian 패키지 버전 선택하기 apt-cache 정책으로

Débutant2 min de lecture

당신이 Debian 또는 Ubuntu에서 업데이트를 준비하고, 어떤 패키지가 예상치 못한 버전을 제안하는 것을 알게 되었습니다. apt upgrade를 실행하거나 특정 버전을 강제하기 전에, apt-cache policy 명령어가 설치된 버전, 후보 버전 및 이를 제안하는 저장소를 보여줍니다.

목표는 가시적인 정보로 결정을 내리는 것입니다. APT 구성을 읽고, 패키지의 버전을 비교하며, 설치를 시뮬레이션하고, 저장소나 의존성이 예상한 변경사항과 일치하지 않으면 중단할 것입니다.

APT 업데이트 전에 확대경으로 검사된 Debian 패키지
후보 및 그 저장소의 조회가 목표 업데이트에 선행됩니다.

패키지를 살펴보기 전에 저장소 읽기

후보 버전은 활성 APT 소스에서 가져옵니다. 최신 Debian에서는 /etc/apt/sources.list나 .list 파일, 또는 /etc/apt/sources.list.d/ 아래에 있는 .sources 파일로 설명될 수 있습니다. 테스트 저장소, 기업 미러 또는 추가된 소프트웨어 소스는 APT의 선택을 변경할 수 있습니다.

grep -R --line-number --no-messages 
  -e '^deb ' -e '^Types:' -e '^URIs:' -e '^Suites:' 
  /etc/apt/sources.list /etc/apt/sources.list.d/

URL, Debian 또는 Ubuntu 릴리스 및 명시된 구성 요소를 재확인하십시오. 더 최신 버전을 얻기 위해 포럼에서 발견한 소스를 추가하지 마십시오. 인덱스의 마지막 업데이트 이후 파일이 변경되었다면, 이 범위를 검증한 후에만 sudo apt update를 실행하십시오.

설치된 버전, 후보 및 사용 가능 버전 비교

저장소에 실제로 존재하는 패키지를 선택하십시오. 예를 들어 curl을 선택할 수 있습니다. 다음 명령어는 아무것도 수정하지 않습니다. 설치된 버전, 후보 버전 및 저장소별 우선순위 표를 표시합니다.

apt-cache policy curl
apt-cache madison curl
apt list --upgradable

apt-cache policy에서 Installed는 이미 설치된 버전을 나타냅니다. Candidate는 APT가 현재 구성으로 선택할 버전입니다. 표의 행은 알려진 각 버전의 출처 및 우선 순위를 나타냅니다. apt-cache madison은 버전 및 아카이브의 짧은 개요를 제공합니다. 마지막 명령어는 패키지가 실제로 제안된 업데이트 목록에 포함되었는지 확인하는 데 사용됩니다.

다른 후보가 있다는 것은 업데이트가 적절하다는 것을 증명하지 않습니다. 버전은 보안 릴리스, 백포트 또는 서드파티 저장소에서 올 수 있습니다. 더 광범위한 작업을 수행하기 전에 환경을 확인하기 위해, Debian 버전: 업데이트 전에 검증하기 위한 신뢰할 수 있는 명령어를 참고하여 배포판과 그 버전 번호를 재확인하십시오.

버전을 선택하기 전에 설치 시뮬레이션하기

후보가 일관성 있어 보이면, 먼저 APT에 시뮬레이션을 요청하십시오. -s 옵션은 시스템에 기록하지 않고 설치할 패키지, 업데이트할 패키지 또는 제거할 패키지를 나열합니다.

sudo apt-get -s install curl
sudo apt-get -s install curl=MADISON에서_READ한_버전

MADISON에서_READ한_버전을 자신의 컴퓨터에서 표시된 버전으로 바꾸십시오. 시뮬레이션은 예정된 패키지와 예상된 의존성으로 제한되어야 합니다. 만약 시뮬레이션이 프로덕션 패키지를 제거하거나 Debian 릴리스를 변경하거나 예상치 못한 긴 체인을 설치하라고 제안한다면, 실제 명령어를 실행하지 마십시오.

실제 명령어는 -s 없이 같은 구문을 사용합니다. 서버에서는 패키지가 네트워크 서비스, 여러 애플리케이션에서 사용되는 라이브러리 또는 커널에 영향을 미칠 때 유지 관리 창을 선택하겠습니다. APT 목록만으로는 재부팅이나 애플리케이션 테스트가 필요한지 여부를 알 수 없습니다.

후보가 예상한 변경 사항과 일치하지 않을 때

무작위로 apt install 패키지=버전으로 이 경우를 해결하지 마십시오. apt-cache policy의 출력을 검토하고, 후보를 가져오는 저장소를 식별한 후, 기계가 이를 사용하는 경우 APT의 기본 설정 파일을 확인하세요.

grep -R --line-number --no-messages . /etc/apt/preferences /etc/apt/preferences.d/
apt-cache policy curl
apt-cache showpkg curl

핀 지정 규칙은 아카이브의 우선 순위를 변경할 수 있습니다. 홀드 상태로 지정된 패키지는 정상적인 업데이트에서 제외됩니다. 이 주제는 후보 읽기와는 별개의 것이지만, Debian 패키지 업데이트를 차단한 후 홀드를 해제하는 방법를 통해 이 잠금을 제어하는 방법을 설명합니다.

로컬로 다운로드한 .deb 파일의 경우, 저장소에 접근할 수 있는 경우에는 apt install ./패키지.deb를 사용하는 것이 좋습니다. 이렇게 하면 APT가 의존성을 해결할 수 있습니다. 가이드 Dpkg under Linux: APT를 차단하지 않고 .deb 패키지 설치하기는 이 경우를 별도로 다룹니다.

apt-cache policy는 읽기 명령어입니다. 모든 특정 변경 전에 이 단계를 유지하십시오: 읽을 수 있는 저장소, 확인된 후보, 깨끗한 시뮬레이션, 그리고 나서야 설치하십시오. 버전의 출처가 불분명한 경우, 먼저 소스 또는 APT의 기본 설정을 수정하십시오.

Debian 매뉴얼 페이지 apt-cache(8)는 APT 정책에 의해 표시되는 서브 명령어와 우선 목록을 자세히 설명합니다.