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

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

Q:システムに複数の yum リポジトリがあります。たとえば、centos、epel、docker、mongo などです。yum update コマンドを実行すると、すべてのリポジトリからインストールされたパッケージが更新されます。 yum の更新中に特定のリポジトリを除外するにはどうすればよいですか?

A:yum の更新中に、特定のリポジトリに属する​​パッケージを除外するには、このチュートリアルで説明されている 2 つの方法のいずれかを使用します。

また、リポジトリ全体を除外するのではなく、特定のパッケージを除外することもできます:Linux Yum Update のパッケージをスキップする 10 の Yum Exclude の例 (カーネル更新を Yum で除外する方法)

1.リポジトリ リストを取得

システムで利用可能なすべてのリポジトリを表示するには、以下に示すように yum repolist を実行します。

# yum repolist
repo id                repo name              status
base                   CentOS-6 - Base        6,575
extras                 CentOS-6 - Extras         62
updates                CentOS-6 - Updates     1,622
dockerrepo             Docker Repository          2
mongodb-org-3.0        MongoDB Repository        75
repolist: 8,336

上記の例では、次のようになります:

  • 上記の最初の 3 つのリポジトリは、CentOS のメイン リポジトリです:base、extras、updates
  • dockerrepo は、Docker コンテナ関連のパッケージを含むサードパーティのリポジトリです
  • mongodb-org-3.0 は、MongoDB 関連のパッケージを含むサードパーティのリポジトリです。

以下に示すように yum update を実行すると、システムに既にインストールされているすべてのパッケージが、上記のすべてのリポジトリから入手可能な最新バージョンにアップグレードされます。

yum update

システムに mongodb が既にインストールされている場合、上記の「yum update」を実行すると、mongodb パッケージも最新バージョンにアップグレードされます。

「yum update」を実行するときに mongodb をアップグレードしたくない場合は、次のセクションで説明するように、yum update 中にそれを除外する必要があります。

また、特定のパッケージが属するリポジトリを知りたい場合は、そのリポジトリをアップグレードから除外できるようにするには、以下に示すように yum info コマンドを使用します。

yum info package-name | grep -i repo

yum コマンドを初めて使用する場合:15 の Linux Yum コマンドの例 – パッケージのインストール、アンインストール、更新

2. Yum Update からリポジトリを除外する (方法 1)

オプション –disablerepo=repository-name を yum update と共に使用できます。これは、指定されたリポジトリ名に属するパッケージをアップグレードしません。

次の例では、yum update は、MongoDB リポジトリに属する​​インストール済みパッケージを除く、すべてのインストール済みパッケージをアップグレードします。

yum --disablerepo=mongodb-org-3.0 update

yum update の最後に –disablerepo オプションを指定することもできます。以下は、yum 更新中に Docker リポジトリに属する​​パッケージを除外します。

yum update --disablerepo=dockerrepo

「yum repolist」コマンド出力の 1 列目を調べると、除外する正確なリポジトリ名を取得できます。

3.有効なパラメーターを使用して Yum Update からリポジトリを除外する (方法 2)

yum update コマンド ラインから特定のリポジトリを除外する代わりに、リポジトリ構成ファイルで enabled パラメータを 0 に設定することで、パッケージを yum update から完全に除外できます。

以下に示すように、リポジトリ構成ファイルは /etc/yum.repos.d ディレクトリの下にあります。

# ls -l /etc/yum.repos.d/
-rw-r--r--. 1 root root 1926 Jan 30  2016 CentOS-Base.repo
-rw-r--r--  1 root root  166 Feb 18  2016 docker.repo
-rw-r--r--  1 root root  142 Feb  5  2016 mongodb-org-3.0.repo
..
..

mongodb リポジトリを除外するには、mongodb リポジトリ ファイルを開き、以下に示すように enabled の値を 0 に変更します。

# vi /etc/yum.repos.d/mongodb-org-3.0.repo 
[mongodb-org-3.0]
name=MongoDB Repository
baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=0

これで、yum repolist を実行しても、出力に MongoDB リポジトリは表示されません。

# yum repolist
repo id           repo name              status
base              CentOS-6 - Base        6,575
extras            CentOS-6 - Extras         62
updates           CentOS-6 - Updates     1,622
dockerrepo        Docker Repository          2
repolist: 8,261

これは、システムに mongodb 関連のパッケージがインストールされていても、次の「yum update」を実行すると、mongodb パッケージがアップグレードされなくなることも意味します。

yum update

4. Yum update コマンドラインから複数のリポジトリを除外

以下に示すように、コンマで区切られたリポジトリを指定することで、yum の更新中に複数のリポジトリを除外することもできます。

次の例では、yum 更新中に MongoDB、Docker、および EPEL リポジトリを除外します。

yum update --disablerepo=mongodb-org-3.0,dockerrepo,epel

5. Yum Update のリポジトリを有効にする

リポジトリ構成ファイルで「enabled=0」を設定してリポジトリを無効にした場合でも、以下に示すように –enablerepo オプションを使用して、「yum update」中にそれを含めることができます。

次の例では、/etc/yum.repos.d/ ディレクトリの下のリポジトリ ファイルでこのリポジトリが無効になっている場合でも、「yum update」中に MongoDB リポジトリからのパッケージが含まれます。

yum update --enablerepo=mongodb-org-3.0

6. Yum Update で EnableRepo と DisableRepo を組み合わせる

また、enablerepo と disablerepo オプションを組み合わせてクリエイティブにすることもできます。

たとえば、次の yum update コマンドは、MongoDB リポジトリからパッケージのみをアップグレードします。

yum update --disablerepo=* --enablerepo=mongodb-org-3.0

上記では:

  • –disablerepo=* これは、最初にすべてのリポジトリを無効にし、yum 更新の対象としないことを示します
  • –enablerepo=mongo これは、yum の更新中に MongoDB リポジトリのみを考慮する必要があることを示します (上記の無効化オプションと組み合わせた場合)

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

  2. ローカルのRedHatリポジトリを作成する方法

  3. Linuxシステム管理者認定試験の準備方法

  1. Yumリポジトリを追加する方法

  2. Linuxでリポジトリをミラーリングする方法

  3. Dnf / yumのリポジトリに署名するキーをインポートする方法は?

  1. Red Hat Enterprise Linuxを無料で入手するにはどうすればよいですか?

  2. CentOSでyumキャッシュをクリーンアップする方法は?

  3. CentOS/RHEL にシステム パッケージをインストールするための Yum リポジトリを作成する方法