パッケージマネージャー は、新しいソフトウェアのインストール、システムのアップグレード、または特定のソフトウェアなどの更新の場合にユーザーを許可するソフトウェアです。 1つのソフトウェアに多くの依存関係があり、そのソフトウェアを完全にインストールするためにシステムに存在する必要があるLinuxベースのシステムの場合、パッケージマネージャーのようなソフトウェアはすべてのシステムで非常に必要なツールになります。
各Linuxディストリビューションには、上記の機能用のデフォルトのパッケージマネージャーが付属していますが、これらすべての中で最も見つかったものは次のとおりです。 yum RHEL およびFedora システム(現在 DNFに置き換えられている場合 Fedora 22+から 以降)および apt Debianから。
APTをお探しの場合 特定のパッケージの更新をブロックまたは無効にするツールの場合は、この記事を読む必要があります。
APTを使用したCertianパッケージの更新を無効化/ロックまたはブラックリストに登録Dnf またはDanified yumがyumに取って代わります Fedora 私たちのリストの別のシステムです。適切に調査すれば、これらのパッケージマネージャーは次の機能に使用できます。
- リポジトリから新しいソフトウェアをインストールします。
- ソフトウェアをインストールする前に、それらの依存関係をインストールして、ソフトウェアの依存関係を解決します。
- 各ソフトウェアの依存関係のデータベースを維持します。
- 既存のソフトウェアのダウングレードバージョン。
- カーネルバージョンのアップグレード。
- インストール可能なパッケージの一覧表示。
個々のパッケージマネージャーに関する詳細な記事と実際の例についてはすでに説明しました。それぞれのLinuxディストリビューションでパッケージ管理を制御および管理するには、それらを読む必要があります。
関連項目:
- この20の実用的な例でYumコマンドをマスターする
- Fedora22以降のバージョンでパッケージを管理するための27のDNFコマンド
- Ubuntuパッケージを管理するための25のAPTコマンドを学ぶ
この記事では、特定のパッケージの更新をロック/無効にする方法を説明します。 RHEL / CentOSおよびFedoraシステムでYumパッケージマネージャーを使用する( Fedora 21 まで適用可能) 、それ以降の新しいバージョンのFedoraには、デフォルトのパッケージマネージャーとしてdnfが付属しています。
Yumを使用したパッケージ更新の無効化/ロック
Yellow dog Updater、変更済み (うーん )は、CentOSやFedoraなどのRedHatベースのディストリビューションのパッケージ管理ツールです。 Yumを使用してパッケージ更新をロック/無効化するために使用されるさまざまな戦略について、以下で説明します。
1。インストールまたは更新のためにパッケージを完全に無効にする
1。 yum.conf
を開いて編集します /etc/yum.confにあるファイル または/etc/yum/yum.conf 。
以下のようになります:
[main] cachedir=/var/cache/yum/$basearch/$releasever keepcache=0 debuglevel=2 logfile=/var/log/yum.log exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 installonly_limit=5 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release ...
ここで、特定のパッケージをインストールまたはアップグレードから除外するには、除外するパッケージの名前とともに除外変数を追加する必要があります。たとえば、すべてのpython-3
を除外したい場合 パッケージが更新されないようにしたら、次の行をyum.conf
に追加します。 :
exclude=python-3*
除外する複数のパッケージの場合、名前をスペースで区切るだけです。
exclude=httpd php
[main] cachedir=/var/cache/yum/$basearch/$releasever keepcache=0 debuglevel=2 logfile=/var/log/yum.log exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 installonly_limit=5 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release exclude=python-3* [Exclude Single Package] exclude=httpd php [Exclude Multiple Packages] ...
yum.conf
のエントリを無視して、これらのパッケージを含める 、「-disableexcludes」を使用します 」と設定し、 all | main | repoid に設定します 、ここで「メイン」 yum.confに入力されたものです および「repoid」 repos.dで除外が指定されているものです 後で説明するように、ディレクトリ。
次に、指定されたパッケージをインストールまたは更新してみて、yumコマンドがそれらのインストールまたは更新を無効にすることを確認しましょう。
# yum install httpd php Loaded plugins: fastestmirror, langpacks, versionlock Loading mirror speeds from cached hostfile * base: mirror.nbrc.ac.in * epel: mirror.wanxp.id * extras: mirror.nbrc.ac.in * updates: mirror.nbrc.ac.in Nothing to do
# yum update httpd php Loaded plugins: fastestmirror, langpacks, versionlock Loading mirror speeds from cached hostfile * base: mirror.nbrc.ac.in * epel: mirror.wanxp.id * extras: mirror.nbrc.ac.in * updates: mirror.nbrc.ac.in No packages marked for update
2。インストールまたは更新のためにパッケージを一時的に無効にする
2。 上記は、ファイルが編集されない限り、そのパッケージが更新されないため、パッケージを除外するための永続的な解決策でした。これも一時的な解決策です。更新を行うときは、-x
を使用してください 次のように、yumコマンドを切り替えて、更新したくないパッケージを除外します。
# yum -x python-3 update
上記のコマンドは、python-3
を除く、更新が利用可能なすべてのパッケージを更新します。 システム上で。
ここで、複数のパッケージを除外するには、-x
を使用します 複数回、またはパッケージ名を','
で区切る 単一のスイッチで。
# yum -x httpd -x php update OR # yum -x httpd,php update
3。 --exclude
を使用する スイッチは-xと同じように機能します 、 -xを置き換える必要があります –除外 ','
を渡します パッケージ名の個別のリスト。
# yum --exclude httpd,php
3。リポジトリを使用してパッケージの更新を無効にする
4。 リポジトリの追加を介して外部ソースからインストールされたパッケージの場合、将来的にアップグレードを停止する別の方法があります。これは、.repo
を編集することで実行できます。 /etc/yum/repos.d/に作成されたファイル または/etc/yum.repos.d ディレクトリ。
リポジトリにパッケージ名を含む除外オプションを追加します 。いいね:パッケージを除外するには、ワインと言います epelレポから 、epel.repo
に次の行を追加します ファイル:
[epel] name=Extra Packages for Enterprise Linux 7 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 exclude=wine
次に、ワインを更新してみます パッケージの場合、以下に示すようなエラーが発生します:
# yum update wine Loaded plugins: fastestmirror, langpacks, versionlock epel/x86_64/metalink | 5.6 kB 00:00 Loading mirror speeds from cached hostfile * base: mirror.nbrc.ac.in * epel: mirror.wanxp.id * extras: mirror.nbrc.ac.in * updates: mirror.nbrc.ac.in No Match for argument: wine No package wine available. No packages marked for update
4。バージョンロックオプションを使用してパッケージの更新を無効にする
5。 yumでパッケージのバージョンをマスクしてアップグレードできないようにする別の方法は、versionlock
を使用することです。 yumのオプションですが、これを行うには、 yum-plugin-versionlockが必要です。 システムにインストールされているパッケージ。
# yum -y install yum-versionlock
たとえば、パッケージのバージョンをロックするには、 httpdと言います。 2.4.6へ ただ、rootとして次のコマンドを書くだけです。
# yum versionlock add httpd
サンプル出力
Loaded plugins: fastestmirror, langpacks, versionlock Adding versionlock on: 0:httpd-2.4.6-40.el7.centos versionlock added: 1
ロックされたパッケージを表示するには、次のコマンドを使用して、バージョンロックされたパッケージを一覧表示します。
# yum versionlock list httpd
サンプル出力
Loaded plugins: fastestmirror, langpacks, versionlock 0:httpd-2.4.6-40.el7.centos.* versionlock list done
結論
これらは、yumパッケージマネージャーを使用してパッケージの更新を無効化/ロックするのに役立ついくつかのヒントです。同じことをするための他のトリックがあれば、私たちと一緒にコメントすることができます。