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


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

데비안 패키지 관리를 관리하기위한 APT 및 DPKG 명령에 대해 배우고 숙달 한 다음 두 도구에 대한 30 개 이상의 예제를 다룰 심층 기사를 사용하십시오.

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

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

apt-mark 명령은 소프트웨어 패키지가 자동으로 설치되는 것으로 표시하거나 표시를 해제하며 옵션 보류 또는 보류 해제와 함께 사용됩니다.

  1. hold – this option used to mark a package as held back, which will block the package from being installed, upgraded or removed.
  2. unhold – this option used to remove a previously set hold on a package and allow to install, upgrade and remove package.

예를 들어, 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

핀 우선 순위를 적용하는 패키지를 추가로 식별하기 위해 릴리스 키워드와 함께 다른 옵션을 사용할 수 있습니다. 해당 키워드는 다음과 같습니다.

  1. a -> Archive
  2. c -> Component
  3. o -> Origin
  4. l -> Label
  5. n -> Architecture

처럼:

Pin: release o=Debian,a=Experimental

데비안 패키지 실험 아카이브에서 명시된 패키지를 가져 오는 것을 의미합니다.

APT 자동 제거 파일을 사용하여 패키지 업데이트 블랙리스트

설치에서 패키지를 블랙리스트에 추가하는 또 다른 방법은 01autoremove 인 /etc/apt/apt.conf.d/ 디렉토리에 포함 된 파일 중 하나의 항목을 업데이트하는 것입니다.

샘플 파일은 다음과 같습니다.

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 의 끝에 패키지 이름을 입력하고 파일을 저장하고 닫습니다. 이것은 해당 패키지의 추가 업데이트를 검색하기 위해 apt를 차단합니다.

예를 들어 패키지가 업데이트되지 않도록 블랙리스트에 추가하려면 다음과 같이 항목을 추가하십시오.

Never-MarkAuto-Sections
  {
        "metapackages";
        "restricted/metapackages";
        "universe/metapackages";
        "multiverse/metapackages";
        "oldlibs";
        "restricted/oldlibs";
        "universe/oldlibs";
        "multiverse/oldlibs";
        "apache2*";
  };
};

업데이트를위한 맞춤형 패키지 선택

이에 대한 또 다른 대안은 업데이트 할 항목을 선택하는 것입니다. apt 도구를 사용하면 업데이트 할 항목을 자유롭게 선택할 수 있지만이를 위해서는 업그레이드에 사용할 수있는 모든 패키지에 대한 지식이 있어야합니다.

이러한 경우 다음 명령 세트가 도움이 될 수 있습니다.

ㅏ. "보류중인 업데이트가있는 패키지를 나열하려면

# apt-get -u -V upgrade

비. "선택적 패키지 만 설치합니다.

# apt-get --only-upgrade install <package-name>

결론

이 기사에서는 APT 방식을 사용하여 패키지 업데이트를 비활성화/차단하거나 블랙리스트에 올리는 몇 가지 방법을 설명했습니다. 다른 선호하는 방법을 알고 있다면 의견을 통해 알려주거나 패키지 업데이트를 비활성화/잠금하는 yum 명령을 찾고 있다면 아래 기사를 읽으십시오.