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

10 Linux Yum Update のパッケージをスキップする Yum Exclude の例 (Kernel Updates を Yum Exclude する方法)

yum update を実行すると、システムにインストールされているすべてのパッケージの最新バージョンがダウンロードされます。最新バージョンにアップグレードしてください。

1 つ (または複数) の特定のパッケージを yum に自動的に更新させたくない場合があります。

このような状況では、以下の例に示すように yum exclude オプションを使用してください。

1.オプション -x を使用して単一パッケージを除外

たとえば、このシステムでは PHP 5.1 を使用しており、このシステムで実行されているカスタム php アプリケーションは、他の新しいバージョンの PHP ではまだテストされていません。

# rpm -q php
php-5.1.0-27.el6_5.x86_64

したがって、この場合、更新を行うときに、特定の 1 つのパッケージ (php.ini) のみを除外したいと考えています。以下に示すように、以下は、「yum update」コマンドを実行すると、php パッケージがバージョン 5.3.3 に更新されることを示しています。

# yum check-update php
php.x86_64    5.3.3-40.el6_6      updates

以下は、yum 更新中に 1 つのパッケージ (php) のみを除外します。

# yum -x php update

2.オプション -x を使用して複数のパッケージを除外

以下に示すように、複数の -x オプションを指定することで、複数のパッケージを除外できます:

yum -x php -x httpd update

コンマで区切られたパッケージのリストを指定して、複数のパッケージを除外することもできます。以下は、上記とまったく同じように動作します。

yum -x php,httpd update

3.ワイルドカードを使用して複数のパッケージ (カーネル パッケージなど) を除外

ほとんどの場合、yum update でカーネルを自動的にアップグレードしたくない場合があります。

実際の yum 更新を行う前に、yum check-update を実行できます。これにより、yum 更新中にアップグレードされるすべてのパッケージが表示されます。

以下に示すように、この例では、yum update によってアップグレードされる 3 つのカーネル関連パッケージがあります。

# yum check-update | grep -i kernel
kernel.x86_64            2.6.32-504.1.3.el6  updates
kernel-firmware.noarch   2.6.32-504.1.3.el6  updates
kernel-headers.x86_64    2.6.32-504.1.3.el6  updates

-x 除外リストで個々のパッケージ名をすべて指定する代わりに、以下に示すように、単純にシェル glob ワイルドカードを使用できます。以下は、yum 更新中にアップグレードを開始するすべてのカーネル関連パッケージを除外します。

yum -x kernel* update

4. -x オプションの複数のワイルドカード リスト

-x オプションで複数のワイルドカード リストを指定することもできます。

以下に示すように、次の yum 更新時にアップグレードされる複数の php パッケージがあることを示しています。

# yum check-update | grep -i php
php.x86_64         5.3.3-40.el6_6   updates
php-cli.x86_64     5.3.3-40.el6_6   updates
php-common.x86_64  5.3.3-40.el6_6   updates
php-xml.x86_64     5.3.3-40.el6_6   updates

次回の yum 更新時にすべての php およびカーネル関連パッケージを除外する場合は、次を使用できます。この例では「 」を使用する必要があることに注意してください。

yum -x 'php*' -x 'kernel*' update

5. -x の代わりに –exclude を使用する

以下に示すように、-x の代わりに –exclude を使用することもできます:

yum --exclude php update
yum --exclude httpd update
yum --exclude kernel update

yum -exclude php*,httpd*,kernel* update

6. yum.conf ファイルを使用してパッケージを除外

除外するパッケージをコマンド ラインで指定する代わりに、/etc/yum.conf ファイルで指定できます。

たとえば、すべての php、httpd、およびカーネル パッケージを yum 更新から除外するには、次の行を追加します:

exclude=php* httpd* kernel*

または、次のコマンドを実行します:

echo "exclude=php* httpd* kernel*" >> /etc/yum.conf

7.カンマ区切りのリストを使用

コンマで区切られたワイルドカード パッケージのリストを指定して、複数のパッケージを除外することもできます。以下は、上記とまったく同じように動作します。

yum -x php*,kernel* update

上記の -x オプションを使用して他の例で示した方法と一貫性を持たせるために、以下に示すように、(スペースだけでなく) コンマを使用して複数のパッケージを区切ることもできます。

# vi /etc/yum.conf
exclude=php*,httpd*,kernel*

8.カスタム リポジトリ ファイル内のパラメータを除外

メインの yum.conf ファイルで exclude パラメータを指定する代わりに、個々のリポジトリ ファイルで指定することもできます。

たとえば、mongodb をインストールした場合、/etc/yum.repos.d ディレクトリの下に mongodb.repo があります。この mongodb.repo ファイル内で、mongodb リポジトリの除外パッケージ リストを指定できます。

# vi /etc/yum.repos.d/mongodb.repo
exclude=mongo*

9. check-update (Dry-run -x) を使用して Yum Exclude チェックをシミュレートします

-x オプションを check-update とともに指定することもできます。これは、コマンド ラインまたは yum.conf ファイルで指定した -x オプションが期待どおりに機能しているかどうかを確認するのに役立ちます。

たとえば、次の例は、yum の更新中にカーネルがアップグレードされることを示しています。

# yum check-update | grep -i kernel
kernel.x86_64                        2.6.32-504.1.3.el6                  updates
kernel-firmware.noarch               2.6.32-504.1.3.el6                  updates
kernel-headers.x86_64                2.6.32-504.1.3.el6                  updates

以下は、結果に何も返さなかったため、-x フラグが期待どおりに機能することを示しています。

# yum -x kernel* check-update | grep -i kernel

たとえば、yum.conf ファイルに次の除外行があるとします。

# grep exclude /etc/yum.conf
exclude=php*,httpd*,kernel*

次に、上記の /etc/yum.conf で指定された除外リストが期待どおりに機能することを示します。これは、check-update が次の出力にそれらのパッケージ (カーネルを含む) を表示しなかったためです。

# yum check-update | egrep 'php|httpd|kernel'

10. Exclude from yum.conf ファイルを無視

yum.conf ファイルに記載されている除外を無効にしたい場合。つまり、yum.conf ファイルで指定された除外リストを yum update で考慮したくない場合は、コマンド ラインから –disableexcludes オプションを使用できます。

前の例では、yum 更新によって更新される php、httpd、およびカーネル パッケージを除外しました。

ただし、yum でその除外リストを無視して (つまり、除外を無効にして)、通常の yum update コマンドの一部として php、httpd、およびカーネルのアップグレードを続行する場合は、次を実行します。

yum --disableexcludes=all update

以下は、disableexcludes に指定できる 3 つの可能な値です。

  • all すべての除外を無効にする
  • main yum.conf ファイルのメイン セクションで指定された除外を無効にする
  • repoid 指定されたリポジトリ ID に指定された除外を無効にする

特定のカスタム リポジトリに対してのみ除外を無効にする場合は、リポジトリ ID を指定できます (以下に示すように、yum repolist コマンドの 1 列目)。

# yum repolist
repo id   repo name           status
mongodb   MongoDB Repository    240
base      CentOS-6 - Base     6,518
extras    CentOS-6 - Extras      35
updates   CentOS-6 - Updates    315

以下は、/etc/yum.repos.d ディレクトリの下の mongodb.repo ファイルで指定された除外リストを無効 (無視) します。

yum --disableexcludes=mongodb update

Linux
  1. Linuxサーバーで自動リブートレスカーネルアップデートを設定する方法

  2. Linux スレッド同期に C Mutex ロックの例を使用する方法

  3. Linux でのパッケージ管理のための 15 の aptitude コマンドの例

  1. Linux –カーネルでUser_namespacesを有効にする方法は? (非特権の `unshare`の場合。)?

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

  3. サンドボックス化のために、Linux プロセスのソケット作成を無効にする方法は?

  1. yumupdateコマンドの15以上の例

  2. Linux カーネル クラッシュ分析に kdump を使用する方法

  3. CentOS / Red Hat で Yum 更新用の特定のリポジトリを除外する方法