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

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

パッケージマネージャー は、新しいソフトウェアのインストール、システムのアップグレード、または特定のソフトウェアなどの更新の場合にユーザーを許可するソフトウェアです。 1つのソフトウェアに多くの依存関係があり、そのソフトウェアを完全にインストールするためにシステムに存在する必要があるLinuxベースのシステムの場合、パッケージマネージャーのようなソフトウェアはすべてのシステムで非常に必要なツールになります。

各Linuxディストリビューションには、上記の機能用のデフォルトのパッケージマネージャーが付属していますが、これらすべての中で最も見つかったものは次のとおりです。 yum RHEL およびFedora システム(現在 DNFに置き換えられている場合 Fedora 22+から 以降)および apt Debianから。

APTをお探しの場合 特定のパッケージの更新をブロックまたは無効にするツールの場合は、この記事を読む必要があります。

APTを使用したCertianパッケージの更新を無効化/ロックまたはブラックリストに登録

Dnf またはDanified yumがyumに取って代わります Fedora 私たちのリストの別のシステムです。適切に調査すれば、これらのパッケージマネージャーは次の機能に使用できます。

  1. リポジトリから新しいソフトウェアをインストールします。
  2. ソフトウェアをインストールする前に、それらの依存関係をインストールして、ソフトウェアの依存関係を解決します。
  3. 各ソフトウェアの依存関係のデータベースを維持します。
  4. 既存のソフトウェアのダウングレードバージョン。
  5. カーネルバージョンのアップグレード。
  6. インストール可能なパッケージの一覧表示。

個々のパッケージマネージャーに関する詳細な記事と実際の例についてはすでに説明しました。それぞれのLinuxディストリビューションでパッケージ管理を制御および管理するには、それらを読む必要があります。

関連項目:

  1. この20の実用的な例でYumコマンドをマスターする
  2. Fedora22以降のバージョンでパッケージを管理するための27のDNFコマンド
  3. 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パッケージマネージャーを使用してパッケージの更新を無効化/ロックするのに役立ついくつかのヒントです。同じことをするための他のトリックがあれば、私たちと一緒にコメントすることができます。


Linux
  1. CentOSでYUMパッケージリポジトリを無効にする方法

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

  3. Linux で「trap」コマンドを使用して Ctrl+c または Ctrl+z を無効にする方法

  1. Yumコマンドを使用したCentOSでのパッケージリポジトリの無効化と削除

  2. rpm パッケージを下位バージョンにダウングレードする (「rpm」コマンドを使用)

  3. パッケージをインストール、削除、およびアップグレードするための YUM コマンドの例

  1. Linux での yum コマンドの例

  2. ファイル競合の yum トランザクション チェックを無効にする

  3. CentOSで特定のコマンドが属するパッケージを見つける方法は?