Apt 도구를 사용하여 패키지 업데이트를 비활성화/잠금하거나 블랙리스트에 추가하는 방법
APT는 Advanced Packaging Tool이 Linux 기반 시스템에 있는 또 다른 패키지 관리자임을 의미합니다. 처음에는 .deb 패키지와 함께 작동하도록 dpkg의 프런트 엔드로 설계되었지만 apt는 Mac OS, Open Solaris 등에서 가시성을 보여주는 데 성공했습니다.
데비안 패키지 관리를 관리하기 위해 APT 및 DPKG 명령에 대해 배우고 숙달하고 싶다면 30개 이상 이상을 다룰 심층 기사를 사용하세요. 두 도구에 대한 예입니다.
이 기사에서는 Debian Linux와 Ubuntu 및 Linux Mint와 같은 파생 제품에서 패키지를 설치, 업그레이드, 제거할 수 없도록 비활성화/잠그는 다양한 기술을 살펴보겠습니다.
1. 보류/보류 해제 옵션과 함께 'apt-mark'를 사용하여 패키지 비활성화/잠금
apt-mark 명령은 소프트웨어 패키지가 자동으로 설치되었음을 표시하거나 표시 해제하며 hold 또는 unhold 옵션과 함께 사용됩니다.
- hold – 이 옵션은 패키지를 보류된 것으로 표시하여 패키지 설치, 업그레이드 또는 제거를 차단하는 데 사용됩니다.
- 보류 해제 – 이 옵션은 이전에 패키지에 설정된 보류를 제거하고 패키지를 설치, 업그레이드 및 제거할 수 있도록 하는 데 사용됩니다.
예를 들어 설치, 업그레이드 또는 제거에 사용할 수 없는 apache2
패키지를 만들려면 터미널에서 루트 권한으로 다음 명령을 사용할 수 있습니다.
apt-mark hold apache2
이 패키지를 업데이트할 수 있도록 하려면 'hold'를 'unhold'로 바꾸세요.
apt-mark unhold apache2
APT 기본 설정 파일을 사용하여 패키지 업데이트 차단
특정 패키지의 업데이트를 차단하는 또 다른 방법은 /etc/apt/preferences
또는 /etc/apt/preferences.d/official-package-repositories.pref에 해당 항목을 추가하는 것입니다. 코드> 파일. 이 파일은 사용자가 지정한 우선 순위에 따라 특정 패키지 업데이트를 업데이트하거나 차단하는 역할을 합니다.
패키지를 차단하려면 패키지 이름, 추가 기능, 우선순위를 입력하기만 하면 됩니다. 여기서 우선순위 < 1
는 패키지를 차단합니다.
패키지를 차단하려면 /etc/apt/preferences
파일에 다음과 같이 세부 정보를 입력하세요.
Package: <package-name> (Here, '*' means all packages)
Pin: release *
Pin-Priority: <less than 0>
예를 들어 apache2 패키지에 대한 업데이트를 차단하려면 다음과 같이 항목을 추가하세요.
Package: apache2
Pin: release o=Ubuntu
Pin-Priority: 1
Pin Priority를 적용할 패키지를 추가로 식별하기 위해 release 키워드와 함께 다른 옵션을 사용할 수 있습니다. 해당 키워드는 다음과 같습니다.
- a -> 보관
- c -> 구성요소
- o -> 출처
- l -> 라벨
- n -> 아키텍처
좋다 :
Pin: release o=Debian,a=Experimental
데비안 패키지 실험 아카이브에서 명시된 패키지를 가져오는 것을 의미합니다.
APT 자동 제거 파일을 사용하여 패키지 업데이트를 블랙리스트에 추가
설치에서 패키지를 블랙리스트에 추가하는 또 다른 방법은 /etc/apt/apt.conf.d/
디렉토리에 포함된 파일 중 하나(01autoremove)의 해당 항목을 업데이트하는 것입니다.
샘플 파일은 다음과 같습니다.
APT
{
NeverAutoRemove
{
"^firmware-linux.*";
"^linux-firmware$";
};
VersionedKernelPackages
{
# linux kernels
"linux-image";
"linux-headers";
"linux-image-extra";
"linux-signed-image";
# kfreebsd kernels
"kfreebsd-image";
"kfreebsd-headers";
# hurd kernels
"gnumach-image";
# (out-of-tree) modules
".*-modules";
".*-kernel";
"linux-backports-modules-.*";
# tools
"linux-tools";
};
Never-MarkAuto-Sections
{
"metapackages";
"restricted/metapackages";
"universe/metapackages";
"multiverse/metapackages";
"oldlibs";
"restricted/oldlibs";
"universe/oldlibs";
"multiverse/oldlibs";
};
};
이제 패키지를 블랙리스트에 추가하려면 Never-MarkAuto-Sections
에 해당 패키지 이름을 입력하기만 하면 됩니다. Never-MarkAuto-Section
끝에 패키지 이름을 입력하고 파일을 저장하고 닫으면 됩니다. 그러면 해당 패키지의 추가 업데이트를 검색하는 것이 차단됩니다.
예를 들어 패키지 업데이트를 블랙리스트에 추가하려면 다음과 같이 항목을 추가하세요.
Never-MarkAuto-Sections
{
"metapackages";
"restricted/metapackages";
"universe/metapackages";
"multiverse/metapackages";
"oldlibs";
"restricted/oldlibs";
"universe/oldlibs";
"multiverse/oldlibs";
"apache2*";
};
};
업데이트를 위한 사용자 정의 패키지 선택
이에 대한 또 다른 대안은 업데이트할 항목을 선택하는 것입니다. apt 도구를 사용하면 업데이트할 항목을 자유롭게 선택할 수 있지만 이를 위해서는 업그레이드할 수 있는 모든 패키지에 대한 지식이 있어야 합니다.
이러한 경우 다음 명령 세트가 도움이 될 수 있습니다.
a. 보류 중인 업데이트가 있는 패키지를 나열합니다.
apt-get -u -V upgrade
b. 선택적인 패키지만 설치합니다.
apt-get --only-upgrade install <package-name>
결론
이 기사에서는 APT 방식을 사용하여 패키지 업데이트를 비활성화/차단하거나 블랙리스트에 추가하는 몇 가지 방법을 설명했습니다. 다른 선호하는 방법을 알고 계시다면 댓글을 통해 알려주시거나 패키지 업데이트를 비활성화/잠금하는 yum 명령을 찾고 계시다면 아래 문서를 읽어보세요.