웹사이트 검색

Apt 도구를 사용하여 패키지 업데이트를 비활성화/잠금하거나 블랙리스트에 추가하는 방법


APT는 Advanced Packaging Tool이 Linux 기반 시스템에 있는 또 다른 패키지 관리자임을 의미합니다. 처음에는 .deb 패키지와 함께 작동하도록 dpkg의 프런트 엔드로 설계되었지만 apt는 Mac OS, Open Solaris 등에서 가시성을 보여주는 데 성공했습니다.

데비안 패키지 관리를 관리하기 위해 APTDPKG 명령에 대해 배우고 숙달하고 싶다면 30개 이상 이상을 다룰 심층 기사를 사용하세요. 두 도구에 대한 예입니다.

이 기사에서는 Debian Linux와 Ubuntu 및 Linux Mint와 같은 파생 제품에서 패키지를 설치, 업그레이드, 제거할 수 없도록 비활성화/잠그는 다양한 기술을 살펴보겠습니다.

1. 보류/보류 해제 옵션과 함께 'apt-mark'를 사용하여 패키지 비활성화/잠금

apt-mark 명령은 소프트웨어 패키지가 자동으로 설치되었음을 표시하거나 표시 해제하며 hold 또는 unhold 옵션과 함께 사용됩니다.

  1. hold – 이 옵션은 패키지를 보류된 것으로 표시하여 패키지 설치, 업그레이드 또는 제거를 차단하는 데 사용됩니다.
  2. 보류 해제 – 이 옵션은 이전에 패키지에 설정된 보류를 제거하고 패키지를 설치, 업그레이드 및 제거할 수 있도록 하는 데 사용됩니다.

예를 들어 설치, 업그레이드 또는 제거에 사용할 수 없는 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 키워드와 함께 다른 옵션을 사용할 수 있습니다. 해당 키워드는 다음과 같습니다.

  1. a -> 보관
  2. c -> 구성요소
  3. o -> 출처
  4. l -> 라벨
  5. 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 명령을 찾고 계시다면 아래 문서를 읽어보세요.