2.「redhat.repo」ファイルの「enabled=1」設定がyumで反映されない
の原因を説明し「redhat.repo」ファイルの編集方法を解説します。
「redhat.repo」ファイルの「enabled=」設定が反映されない事例
「/etc/yum.repos.d/redhat.repo」ファイルはRHNにサブスクリプション登録すると自動で作成されます。
「redhat.repo」ファイルを直接開いて、リポジトリ設定を「無効(enabled=0)」から「有効(enabled=1)」に変更し、「yum」コマンドを実行しても「有効」にした、リポジトリの設定箇所が「無効」のままで「有効」にした、リポジトリが利用できない事象が発生する場合があります。
※「有効」から「無効」にした場合も同様に、「有効」なリポジトリを「無効」にできない場合があります。
■「redhat.repo」ファイルを直接編集してもリポジトリが「有効」にならない事例
https://isleofhoso.com/rhel-rhn-subscription-add/
※対象サーバをRHNへサブスクリプション登録することで「redhat.repo」ファイルは自動生成されます。
「redhat.repo」ファイルの「enabled=」設定が反映されない理由
「subscription-manager repos --enable(disable)」コマンドを利用してリポジトリを有効・無効設定したものがこの事象に該当します。
このコマンドを利用してリポジトリの有無を変更したものは、「redhat.repo」ファイルを直接編集しても、コマンド実行した設定が優先されるため、編集箇所が元に戻ってしまいます。
上記、「画像1」の例で説明すると
subscription-manager repos --disable rhel-7-server-v2vwin-1-debug-rpms
を実行して「rhel-7-server-v2vwin-1-debug-rpms」リポジトリを「無効(--disable)」に設定されています。
そのため、「redhat.repo」ファイルを直接編集して「rhel-7-server-v2vwin-1-debug-rpms」リポジトリを「有効(enabled=1)」にしても、yum実行すると「rhel-7-server-v2vwin-1-debug-rpms」リポジトリ は、「無効(enabled=0)」な設定として結果が表示されます。
また、yum実行時に「redhat.repo」ファイルの 「rhel-7-server-v2vwin-1-debug-rpms」リポジトリの設定を自動で「無効(enabled=0)」に戻します。
「rhel-7-server-v2vwin-1-debug-rpms」リポジトリを有効にしたい場合は、以下のコマンドを実行してリポジトリを「有効(--enable)」にしてください。
subscription-manager repos --enable rhel-7-server-v2vwin-1-debug-rpms
■ 「redhat.repo」ファイルの設定が、「subscription-manager」コマンドで元に戻る事例
「redhat.repo」ファイルの編集方法2つ
「subscription-manager repos --enable(disable)」コマンド実行により「redhat.repo」ファイルの設定が自動で元に戻るので、正しく設定するための編集方法と注意事項を解説します。
1. 「subscription-manager repos」コマンドで「redhat.repo」のリポジトリを管理する方法
ルールは1つ
1.「redhat.repo」ファイルを直接開いて編集を行わないようにする
「redhat.repo」ファイルのリポジトリの「有効」「無効」は、「subscription-manager repos --enable(disable)」コマンド でのみ行う
■コマンドの使い方
リポジトリを「有効」にする場合(「rhel-7-server-v2vwin-1-debug-rpms」の場合)
subscription-manager repos --enable rhel-7-server-v2vwin-1-debug-rpms
リポジトリを「無効」にする場合 (「rhel-7-server-v2vwin-1-debug-rpms」の場合)
subscription-manager repos --disable rhel-7-server-v2vwin-1-debug-rpms
■指定するリポジトリについて
「subscription-manager」で指定するリポジトリは「redhat.repo」ファイル内の「[]」で囲われた箇所になります。※下記、「画像3」を参照
2. 「redhat.repo」を直接編集してリポジトリを管理する方法
ルールは2つ
1.「subscription-manager repos --enable(disable)」コマンド を利用しない
2.「/etc/yum/pluginconf.d/subscription-manager.conf」ファイルの「enabled=1」を 「enabled=0」に変更する
サブスクリプション登録後に、「redhat.repo」ファイルが自動生成されます。それ以降は「subscription-manager repos --enable(disable)」コマンドを実行しない。
「redhat.repo」ファイルを直接開いて、各リポジトリの「enabled」行を編集して設定を変更する
※リポジトリ有効:「enabled=1」
※リポジトリ無効:「enabled=0」
また、「/etc/yum/pluginconf.d/subscription-manager.conf」の「enabled =0」とすることで「redhat.repo」ファイルの自動生成(自動変更)がされなくなり「subscription-manager」が無効になります。※下記、「画像4」参照
「subscription-manager repos --enable(disable)」コマンド実行してしまうと、「/etc/yum/pluginconf.d/subscription-manager.conf」ファイルの「enabled =0」が「enabled=1」に自動で上書きされてしまいます。
※下記、「画像5」参照
「redhat.repo」直接編集と「subscription-manager」コマンドを併用利用した場合
リポジトリの「有効」と「無効」の優先度は、「/etc/yum/pluginconf.d/subscription-manager.conf」ファイルの「enabled=1」と「enabled=0」の設定で動作が変わります。
「subscription-manager.conf」の設定が 「enabled=1」の場合
- 「subscription-manager repos --enable(disable) リポジトリ名」コマンドで設定したリポジトリはコマンド実行の設定が優先されます。
- コマンド実行したリポジトリの設定は「redhat.repo」ファイルの設定に関係なく、コマンド実行した設定が優先されます。
- コマンド実行していないリポジトリに関しては、「redha.repo」ファイルの設定が優先されます。
---例---
■事前設定
リポジトリA:コマンド実行でリポジトリを有効に設定
リポジトリB:コマンド実行していない
■redhat.repoファイルの初期設定
リポジトリA:有効 ※コマンド実行で有効になっている
リポジトリB:無効
■redhat.repoファイルの編集内容
リポジトリAのリポジトリを有効から無効に変更
リポジトリBのリポジトリを無効から有効に変更
■yum実行結果
リポジトリAのリポジトリ有効
->redhat.repoファイルを無効に編集してもyumは有効として認識
リポジトリBのリポジトリ有効
->コマンド実行していないので、redhat.repoファイルの編集内容が反映
「subscription-manager.conf」の設定が 「enabled=0」の場合
- 「redhat.repo」ファイルの設定が優先されます。
- 「subscription-manager repos --enable(disable) リポジトリ名」コマンドを実行すると「enabled=1」に設定が変更されてしまいます。
---例---
■事前設定
リポジトリA:コマンド実行していない
リポジトリB:コマンド実行していない
■redhat.repoファイルの初期設定
リポジトリA:有効
リポジトリB:無効
■redhat.repoファイルの編集内容
リポジトリAのリポジトリを有効から無効に変更
リポジトリBのリポジトリを無効から有効に変更
■yum実行結果
リポジトリAのリポジトリ無効
->redhat.repoファイルの編集内容が反映
リポジトリBのリポジトリ有効
->redhat.repoファイルの編集内容が反映
コメント