GNU/Linux >> Linux の 問題 >  >> Linux

AptToolを使用してパッケージアップデートを無効化/ロックまたはブラックリストに登録する方法

APT Advanced Packaging Toolは、Linuxベースのシステムにあるもう1つのパッケージマネージャーです。当初はdpkgのフロントエンドとして設計されました .debと連携する パッケージ、aptは、Mac OS、OpenSolarisなどでの可視性を示すことに成功しました。

APT について学び、習得したい およびDPKG Debianパッケージ管理を管理するコマンドを使用してから、30以上をカバーする詳細な記事を使用してください。 両方のツールの例。

25 Debian/Ubuntuパッケージ管理に役立つAPTコマンド15Debian/Ubuntuでのパッケージ管理に役立つDpkgコマンド

この記事では、Debian Linuxおよびその派生物(UbuntuやLinux Mintなど)でパッケージを無効化/ロックしてインストール、アップグレード、および削除するためのさまざまな手法について説明します。

1。保留/保留解除オプションで「apt-mark」を使用してパッケージを無効化/ロックする

コマンドapt-mark ソフトウェアパッケージを自動的にインストールされるものとしてマークまたはマーク解除し、オプションホールドで使用されます または保留

  1. 保留 –このオプションは、パッケージを保留としてマークするために使用されます。これにより、パッケージのインストール、アップグレード、または削除がブロックされます。
  2. 保留しない –このオプションは、以前に設定されたパッケージの保留を削除し、パッケージのインストール、アップグレード、および削除を可能にするために使用されます。

たとえば、パッケージを作成する場合は、apache2と言います。 インストール、アップグレード、またはアンインストールに使用できない場合は、root権限を持つターミナルで次のコマンドを使用できます。

# apt-mark hold apache2

このパッケージを更新できるようにするには、「保留」を置き換えるだけです。 ‘と‘ 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

ピン優先度を適用しているパッケージをさらに識別するために、releaseキーワードで他のオプションを使用できます。それらのキーワードは次のとおりです。

  1. a ->アーカイブ
  2. c ->コンポーネント
  3. o ->起源
  4. l ->ラベル
  5. n ->アーキテクチャ

のように:

Pin: release o=Debian,a=Experimental

記載されているパッケージをDebianパッケージの実験アーカイブからプルすることを意味します。

APT自動削除ファイルを使用してパッケージアップデートをブラックリストに登録する

インストールからパッケージをブラックリストに登録する別の方法は、/etc/apt/apt.conf.d/に含まれているファイルの1つでそのエントリを更新することです。 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の最後にパッケージの名前を入力するだけです ファイルを保存して閉じます。これにより、そのパッケージのさらなる更新を検索するためのaptがブロックされます。

たとえば、パッケージが更新されないようにブラックリストに登録するには、次のようにエントリを追加します。

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コマンドを探している場合は、以下の記事をお読みください。

CentOS/RHELでYumを使用してパッケージ更新を無効化/ロックする
Linux
  1. Yumコマンドを使用して特定のパッケージ更新を無効化/ロックする4つの方法

  2. KernelCareの自動更新を無効にするにはどうすればよいですか?

  3. diff3ツールを使用してLinuxで3つのファイルを比較する方法

  1. CheckInstallを使用してソースからパッケージを構築する方法

  2. Dpkg -iまたはAptでDebファイルをインストールする方法は?

  3. 「hdparm」ツールを使用して USB デバイスへの書き込みアクセスを無効にする方法

  1. Aptロックを保持しているプロセスを強制終了する方法は?

  2. icmp_echo_ignore_all を使用して Linux で Ping 応答を無効にする方法

  3. UNIX / Linux :ユーザー アカウントをロックまたは無効にする方法