9.5. Yum と Yum リポジトリーの設定
注記
/etc/yum.conf に存在します。このファイルには、必須の [main] セクションが 1 つあり、ここでは全体に影響を与える yum オプションを設定できます。また、1 つ以上の [repository] セクションを含めてリポジトリー固有のオプションを設定することもできます。ただし、/etc/yum.repos.d/ ディレクトリー内にある、新規または既存の .repo ファイルで個々のリポジトリーを定義することが推奨されます。/etc/yum.conf ファイルの各 [repository] セクションで定義した値は、[main] セクションで設定された値よりも優先されます。
/etc/yum.conf設定ファイルの[main]セクションを編集して yum のグローバルオプションを設定する方法/etc/yum.confの[repository]セクションと/etc/yum.repos.d/ディレクトリー内の.repoファイルを編集することで、個々のリポジトリーのオプションを設定する方法- 動的バージョンとアーキテクチャーの値が適切に処理されるように
/etc/yum.confの yum 変数と/etc/yum.repos.d/ディレクトリー内のファイルを使用する方法 - コマンドラインで yum リポジトリを追加、有効、無効にする方法
- カスタムの yum リポジトリーを設定する方法
9.5.1. [main] オプションの設定
/etc/yum.conf 設定ファイルには、1 つの [main] セクションが含まれます。このセクションにあるキー値ペアの中には yum の動作に影響を与えるものもあれば、yum のリポジトリーの処理方法に影響を与えるものもあります。/etc/yum.conf 内にある [main] のセクション下に、多くのオプションを追加することができます。
/etc/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=3
[コメントは省略されています ]
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d[main] セクションで最もよく使用されるオプションです。
assumeyes=valueassumeyesオプションは、yum が重要なアクションに関する確認を尋ねるかどうかを決定します。value を以下のどちらかに置き換えます。0— (デフォルト)。yum は実行する重要な動作の確認を尋ねます。1—yumが実行する重要な動作の確認を尋ねません。assumeyes=1に設定すると、yum はコマンドラインオプション-yおよび--assumeyesと同様の動作を実行します。cachedir=directory- このオプションを使って、yum がキャッシュおよびデータベースファイルを保存するディレクトリーを設定します。directory をディレクトリーへの絶対パスで置き換えます。デフォルトでは、yum のキャッシュディレクトリーは
/var/cache/yum/$basearch/$releasever/です。 debuglevel=value- このオプションは、yum が生成するデバッグ出力の詳細を指定します。ここでは、value は
1から10までの整数になります。debuglevel値を大きい値に設定すると、yum はより詳細なデバッグ出力を表示します。debuglevel=0は、デバッグ出力を無効にします。デフォルト値はdebuglevel=2です。 exactarch=value- このオプションを使うと、インストール済みのパッケージを更新の際に yum が正確なアーキテクチャーを考慮するように設定できます。value を以下のいずれかで置き換えます。
0— パッケージの更新時には正しいアーキテクチャーを考慮に入れて実行しません。1(デフォルト値) — パッケージの更新時に正しいアーキテクチャーを考慮します。この設定では、yum は 64 ビットアーキテクチャーのシステムにすでにインストール済みパッケージを更新するために 32 ビットアーキテクチャーのパッケージをインストールしません。 exclude=package_name [more_package_names]excludeオプションを使うと、インストールまたはシステムの更新中にキーワードを使ってパッケージを除外することができます。除外する複数のパッケージを一覧表示したい場合は、パッケージをスペースで区切り、引用符で囲みます。ワイルドカードを使ったシェル glob 表現 (*や?など) が利用できます。gpgcheck=valuegpgcheckオプションを使うと、yum がパッケージに GPG 署名確認を実行するかどうかを指定できます。value を以下のいずれかで置き換えます。0— インストールされるローカルパッケージなど、全リポジトリー内のパッケージ上での GPG 署名確認を無効にします。1(デフォルト) — インストールされるローカルパッケージなど、全リポジトリーのすべてのパッケージ上で GPG 署名確認を有効にします。gpgcheckが有効だと、すべてのパッケージ署名が確認されます。このオプションが/etc/yum.confファイルの[main]セクションで設定されている場合は、全リポジトリに対して GPG 確認ルールが設定されます。代わりに、個々のリポジトリーにgpgcheck=valueを設定することもできます。つまり、あるリポジトリーで GPG 確認を有効にしながら別のリポジトリでは無効にすることができます。個々のリポジトリーに対応する.repoファイルでgpgcheck=valueを設定すると、/etc/yum.confにデフォルト値がある場合はそれを無効にします。group_command=valuegroup_commandオプションを使うと、yum group install、yum group upgrade、およびyum group removeの各コマンドがパッケージグループを処理する方法を指定できます。value を以下のいずれかで置き換えます。simple— パッケージグループのすべてのメンバーをインストールします。以前にインストールされたパッケージのみを更新し、その間にグループに追加されたパッケージはインストールしません。compat—simpleに似ていますが、yum upgradeは前回の更新以降にグループに追加されたパッケージもインストールします。objects— (デフォルト)。このオプションでは、yum は以前にインストールされたグループを追跡し、グループの一部としてインストールされたパッケージと個別にインストールされたパッケージを区別します。例9.15「LibreOffice パッケージグループの情報を表示する」 を参照してください。group_package_types=package_type [more_package_types]- このオプションでは、
yumgroupinstallコマンドが呼び出された際にどのタイプのパッケージがインストールされるか (optional、default、または mandatory) を指定できます。default および mandatory のパッケージタイプがデフォルトで選択されます。 history_record=value- このオプションを使うと、yum はトランザクション履歴を記録します。value を以下のいずれかで置き換えます。
0— yum はトランザクションの履歴エントリーを記録 しません。1(デフォルト値) — yum はトランザクションの履歴エントリーを記録します。この操作により、ある程度のディスク領域が使用され、トランザクションの時間が少し長くなりますが、過去の操作に関する多くの情報が提供されます。この情報は、yumhistoryコマンドで表示できます。history_record=1がデフォルト値です。注記
yum は履歴記録を使って、yum 以外で行われたrpmdbデータベースへの変更を検出します。変更が検出されると、yum は警告を表示し、rpmdbの変更によって起こり得る問題を自動的に検索します。history_recordがオフになっていると、yum はこのような変更を検出できず、自動チェックは実行されません。 installonlypkgs=space separated list of packages- ここでは、yum でインストールを行い、更新を行わないパッケージの一覧をスペースで区切って提供できます。デフォルトでインストールのみに設定されているパッケージの一覧については、
yum.conf(5) の man ページを参照してください。installonlypkgsディレクティブを/etc/yum.confファイルに追加する場合は、yum.conf(5) のinstallonlypkgsセクション下に表示されているものも含め、インストールのみである すべての パッケージを一覧表示してください。特に、カーネルパッケージは常にinstallonlypkgs(デフォルトのとおり) に一覧表示するようにしてください。また、デフォルトのカーネルがブートに失敗した場合でもバックアップカーネルを常に利用できるように、installonly_limitは常に2より大きい値に設定することをお勧めします。 installonly_limit=value- このオプションは、
installonlypkgsディレクティブでリストされるパッケージを同時にインストールできる数を設定します。value をinstallonlypkgsでリストされている単一パッケージについて同時インストールできるバージョンの最大数を表す整数で置き換えます。installonlypkgsディレクティブのデフォルトには複数の様々なカーネルパッケージが含まれているため、installonly_limitの値を変更すると、単一のカーネルパッケージのインストール済みバージョンの最大数にも影響が及ぶ点に注意してください。/etc/yum.confに表示されているデフォルト値は、installonly_limit=3です。また、この値を低く、特に2より下に設定することは推奨されません。 keepcache=valuekeepcacheは、インストールの成功後に yum がヘッダーおよびパッケージのキャッシュを保持するかどうかを決定します。ここでは、value を以下のいずれかに置き換えます。0— (デフォルト)。インストールの成功後に、ヘッダーとパッケージのキャッシュを保持しません。1— インストールの成功後、キャッシュを保持します。logfile=file_name- ログ出力の場所を指定するため、file_name を yum がログ出力を書き込むファイルへの絶対パスで置き換えます。デフォルトでは、yum は
/var/log/yum.logにログを記録します。 max_connenctions=number- ここでの value は、同時接続の最大数を表します。デフォルトは 5 です。
multilib_policy=valuemultilib_policyオプションは、インストールするパッケージに複数のアーキテクチャーバージョンがある場合にインストール動作を設定します。ここでの value は、以下のいずれかになります。best— このシステムに最適なアーキテクチャーをインストールします。例えば AMD64 システムにmultilib_policy=bestを設定すると、yum は全パッケージの 64-bit バージョンをインストールします。all— 常に全パッケージ用の可能なあらゆるアーキテクチャーをインストールします。例えば、AMD64 システムでmultilib_policyをallに設定すると、yum はパッケージの i686 および AMD64 が利用可能であれば両バージョンをインストールします。obsoletes=valueobsoletesオプションは、更新の実行時に obsoletes 処理ロジックを有効にします。あるパッケージがスペックファイル内で別のパッケージを 廃止する ように宣言している場合、宣言しているパッケージがインストールされると、宣言されているパッケージはこのパッケージによって置き換えられます。例えば、パッケージ名が変更された場合などに obsoletes は宣言されます。value を以下のいずれかで置き換えます。0— 更新の実行時に yum の obsoletes 処理ロジックを無効にします。0— (デフォルト)。更新の実行時に yum の obsoletes 処理ロジックを有効にします。plugins=value- これは、yum プラグインを有効または無効にするグローバルスイッチです。value は以下のいずれかになります。
0— yum のプラグインをグローバルで無効にします。重要
一部のプラグインは重要な yum サービスを提供するため、すべてのプラグインを無効にすることは推奨されません。特に、product-id および subscription-manager プラグインは証明書ベースのContent Delivery Network(CDN) のサポートを提供します。プラグインをグローバルで無効にするオプションは便利なオプションとして提供されていますが、通常は yum に潜在的な問題があると判断された場合にのみ使用することが推奨されます。1(デフォルト値) — すべての yum プラグインを全体的に有効にします。plugins=1に設定した場合は、ある yum プラグインの設定ファイル内でenabled=0を設定することでそのプラグインを無効にすることも可能です。yum の各種プラグインの詳細については、「Yum のプラグイン」 を参照してください。プラグインの制御に関する詳細は、「Yum プラグインを有効、設定、無効にする方法」 を参照してください。 reposdir=directory- ここでの directory は
.repoファイルがあるディレクトリーへの絶対パスです。すべての.repoファイルには、リポジトリー情報 (/etc/yum.confの[repository]セクションと類似) が含まれています。yum は.repoファイルおよび/etc/yum.confファイルの[repository]セクションからすべてのリポジトリー情報を収集し、トランザクションに使用するリポジトリーのマスター一覧を作成します。reposdirが設定されていない場合は、yum はデフォルトのディレクトリーである/etc/yum.repos.d/を使用します。 retries=value- このオプションは、エラーを返す前に yum がファイルの取得を試行する回数を設定します。 value は
0以上の整数で、0に設定すると、yum はその試行を何度も続けます。デフォルト値は10です。
[main] オプションの完全なリストは、yum.conf(5) の man ページ の [main] OPTIONS セクションを参照してください。
9.5.2. [repository] オプションの設定
[repository] セクションでは、個別の yum リポジトリーを定義することができます。ここで、repository は、my_personal_repo (スペースは使用不可) などの一意のリポジトリー ID になります。競合を回避するために、カスタムリポジトリーには、Red Hat リポジトリーで使用されている名前を使用しないでください。
[repository] セクションでは、少なくとも以下の例のような形式が必要になります。
[repository] name=repository_name baseurl=repository_url
[repository] セクションには、以下のディレクティブを含める必要があります。
name=repository_name- ここでは、repository_name は、リポジトリーを説明するヒューマンリーダブルな文字列になります。
baseurl=repository_url- repository_urlをリポジトリーの repodata ディレクトリーがあるディレクトリーへの URL で置き換えます。
- リポジトリーが HTTP にある場合は、
http://path/to/repoを使用します。 - リポジトリーが FTP にある場合は、
ftp://path/to/repoを使用します。 - リポジトリーがマシンのローカルにある場合は、
file:///path/to/local/repoを使用します。 - 特定のオンラインリポジトリーでベーシック HTTP 認証が必要な場合は、
username:password@linkとして URL にユーザー名とパスワードを先頭に追加して、指定することができます。たとえば、http://www.example.com/repo/ にあるリポジトリーでユーザー名 「user」 とパスワード 「password」 が必要な場合、baseurlのリンクは、http://として指定できます。user:password@www.example.com/repo/
通常この URL は以下のような HTTP リンクになります。baseurl=http://path/to/repo/releases/$releasever/server/$basearch/os/
[repository] ディレクティブもあります。
enabled=value- これで簡単に yum に特定のリポジトリーを使用するか無視するかを伝えられます。value は以下のいずれかになります。
0— 更新およびインストールの実行時には、パッケージソースとしてこのリポジトリーを含めません。これはリポジトリーを迅速に有効または無効にする簡単な方法です。更新またはインストール用に有効としたくないリポジトリーから、単一パッケージが欲しい場合に便利です。1— パッケージソースとしてこのリポジトリーを含めます。リポジトリーのオンとオフは、--enablerepo=repo_nameもしくは--disablerepo=repo_nameオプションをyumに渡すか、PackageKit ユーティリティーの ソフトウェアの追加/削除 ウィンドウから実行できます。 async=value- リポジトリーパッケージの並行ダウンロードを制御します。value は以下のいずれかになります。
auto— (デフォルト) 可能な場合、並行ダウンロードを使用します。つまり、失敗を回避するために yum はプラグインが作成したリポジトリーについては自動的にこれを無効にします。on— リポジトリーの並行ダウンロードが有効になります。off— リポジトリーの並行ダウンロードが無効になります。
[repository] オプションがあります。このうちのいくつかは、[main] オプションと同一形式、同一機能になります。全一覧については、yum.conf(5) の man ページの [repository] OPTIONS セクションを参照してください。
例9.25 /etc/yum.repos.d/redhat.repo ファイルのサンプル
/etc/yum.repos.d/redhat.repo ファイルのサンプルです:
# # Red Hat Repositories # Managed by (rhsm) subscription-manager # [red-hat-enterprise-linux-scalable-file-system-for-rhel-6-entitlement-rpms] name = Red Hat Enterprise Linux Scalable File System (for RHEL 6 Entitlement) (RPMs) baseurl = https://cdn.redhat.com/content/dist/rhel/entitlement-6/releases/$releasever/$basearch/scalablefilesystem/os enabled = 1 gpgcheck = 1 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release sslverify = 1 sslcacert = /etc/rhsm/ca/redhat-uep.pem sslclientkey = /etc/pki/entitlement/key.pem sslclientcert = /etc/pki/entitlement/11300387955690106.pem [red-hat-enterprise-linux-scalable-file-system-for-rhel-6-entitlement-source-rpms] name = Red Hat Enterprise Linux Scalable File System (for RHEL 6 Entitlement) (Source RPMs) baseurl = https://cdn.redhat.com/content/dist/rhel/entitlement-6/releases/$releasever/$basearch/scalablefilesystem/source/SRPMS enabled = 0 gpgcheck = 1 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release sslverify = 1 sslcacert = /etc/rhsm/ca/redhat-uep.pem sslclientkey = /etc/pki/entitlement/key.pem sslclientcert = /etc/pki/entitlement/11300387955690106.pem [red-hat-enterprise-linux-scalable-file-system-for-rhel-6-entitlement-debug-rpms] name = Red Hat Enterprise Linux Scalable File System (for RHEL 6 Entitlement) (Debug RPMs) baseurl = https://cdn.redhat.com/content/dist/rhel/entitlement-6/releases/$releasever/$basearch/scalablefilesystem/debug enabled = 0 gpgcheck = 1 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release sslverify = 1 sslcacert = /etc/rhsm/ca/redhat-uep.pem sslclientkey = /etc/pki/entitlement/key.pem sslclientcert = /etc/pki/entitlement/11300387955690106.pem
9.5.3. Yum 変数の使用
yum コマンドおよびすべての yum 設定ファイル (つまり /etc/yum.conf および /etc/yum.repos.d/ ディレクトリー内のすべての .repo ファイル) 内で、以下の組み込み変数を使用および参照することができます。
$releasever- この変数を使用すると、Red Hat Enterprise Linux のリリースバージョンを参照することができます。yum は
/etc/yum.conf設定ファイルにあるdistroverpkg=valueの行から$releaseverの値を取得します。/etc/yum.confにそのような行がない場合、yum はredhat-releaseファイルを提供するredhat-releaseproductパッケージからバージョン番号を取得することで、正しい値を推測します。 $arch- この変数を使用して、Python の
os.uname()機能を呼び出す時に返り値としてシステムの CPU アーキテクチャーを参照できます。$archの有効な値は、i586、i686、x86_64です。 $basearch$basearchを使用すると、システムのベースアーキテクチャーを参照できます。たとえば、i686 および i586 の両マシンはi386のベースアーキテクチャーを持っており、AMD64 および Intel 64 の両マシンはx86_64のベースアーキテクチャーを持っています。$YUM0-9- これら 10 個の変数は、同じ名前を持つシェル環境変数の値でそれぞれ置換されます。これら変数のいずれかが (例えば
/etc/yum.confで) 参照され、同じ名前を持つシェル環境変数が存在しない場合は、設定ファイルの変数は置換されません。
/etc/yum/vars/ ディレクトリー内に変数と同じ名前を持つファイルを作成して (「$」 記号はなし) 、1 行目に希望する値を追加します。
$osname と呼ばれる新しい変数を定義するには、1 行目に 「Red Hat Enterprise Linux」 の名前を持つ新しいファイルを作成して、/etc/yum/vars/osname として保存します。
~]# echo "Red Hat Enterprise Linux 7" > /etc/yum/vars/osname.repo ファイルでは、「Red Hat Enterprise Linux 7」 の代わりに以下を使用することができます。
name=$osname $releasever
9.5.4. 現行設定の表示
/etc/yum.conf ファイルの [main] セクションで指定されたオプション) を表示するには、コマンドラインのオプションなしで yum-config-manager コマンドを実行します。
yum-config-manageryum-config-manager section…yum-config-manager glob_expression…例9.26 main セクションの設定を表示する
~]$ yum-config-manager main \*
Loaded plugins: langpacks, product-id, subscription-manager
================================== main ===================================
[main]
alwaysprompt = True
assumeyes = False
bandwith = 0
bugtracker_url = https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%20Linux%206&component=yum
cache = 0[出力は省略されています]9.5.5. Yum リポジトリーの追加、有効化、無効化
注記
yum-config-manager コマンドを使用してリポジトリーを追加、有効、無効にする方法を説明します。
重要
Content Delivery Network (CDN) に登録されている場合、/etc/yum.repos.d/redhat.repo ファイル内のリポジトリー管理には Red Hat サブスクリプションマネージャー ツールが使用されます。
Yum リポジトリーの追加
[repository] セクションを /etc/yum.conf ファイルか、/etc/yum.repos.d/ ディレクトリー内の .repo ファイルに追加します。yum は、このディレクトリー内にある .repo ファイル拡張子が付いたすべてのファイルを読み取ることができます。リポジトリーは /etc/yum.conf 内ではなく、ここに定義することが推奨されます。
警告
Content Delivery Network (CDN) 以外の未検証または信頼できないソフトウェアソースからソフトウェアパッケージを取得してインストールする場合には、セキュリティー上のリスクが伴います。セキュリティー、安定性、互換性、保全性に関する問題につながる恐れがあります。
.repo ファイルがあります。あるリポジトリーをシステムに追加して、有効にするには、root で以下のコマンドを実行します。
yum-config-manager--add-reporepository_url
.repo ファイルへのリンクになります。
例9.27 example.repo を追加する
~]# yum-config-manager --add-repo http://www.example.com/example.repo
Loaded plugins: langpacks, product-id, subscription-manager
adding repo from: http://www.example.com/example.repo
grabbing file http://www.example.com/example.repo to /etc/yum.repos.d/example.repo
example.repo | 413 B 00:00
repo saved to /etc/yum.repos.d/example.repoYum リポジトリーの有効化
root として以下を入力します。
yum-config-manager--enablerepository…
yum repolist all を使用)。別の方法では、glob 表現を使用すると、一致するすべてのリポジトリーを有効にできます。
yum-config-manager--enableglob_expression…
例9.28 /etc/yum.conf のカスタムセクションで定義されるリポジトリーを有効にする
[example]、[example-debuginfo]、[example-source] セクション内で定義されたリポジトリーを有効にするには、以下を入力します。
~]# yum-config-manager --enable example\*
Loaded plugins: langpacks, product-id, subscription-manager
============================== repo: example ==============================
[example]
bandwidth = 0
base_persistdir = /var/lib/yum/repos/x86_64/7Server
baseurl = http://www.example.com/repo/7Server/x86_64/
cache = 0
cachedir = /var/cache/yum/x86_64/7Server/example[出力は省略されています]例9.29 すべてのリポジトリーの有効化
/etc/yum.conf ファイルと /etc/yum.repos.d/ ディレクトリーで定義されたすべてのリポジトリーを有効にするには、以下のコマンドを入力します。
~]# yum-config-manager --enable \*
Loaded plugins: langpacks, product-id, subscription-manager
============================== repo: example ==============================
[example]
bandwidth = 0
base_persistdir = /var/lib/yum/repos/x86_64/7Server
baseurl = http://www.example.com/repo/7Server/x86_64/
cache = 0
cachedir = /var/cache/yum/x86_64/7Server/example[出力は省略されています]yum-config-manager --enable コマンドは現在のリポジトリー設定を表示します。
Yum リポジトリーの無効化
root で以下のコマンドを実行します。
yum-config-manager--disablerepository…
yum repolist all を使用)。yum-config-manager --enable と同様に、glob 表現を使用して、一致するすべてのリポジトリーを同時に無効にすることができます。
yum-config-manager--disableglob_expression…
例9.30 すべてのリポジトリーの無効化
/etc/yum.conf ファイルと /etc/yum.repos.d/ ディレクトリーで定義されたすべてのリポジトリーを無効にするには、以下のコマンドを入力します。
~]# yum-config-manager --disable \*
Loaded plugins: langpacks, product-id, subscription-manager
============================== repo: example ==============================
[example]
bandwidth = 0
base_persistdir = /var/lib/yum/repos/x86_64/7Server
baseurl = http://www.example.com/repo/7Server/x86_64/
cache = 0
cachedir = /var/cache/yum/x86_64/7Server/example[出力は省略されています]yum-config-manager --disable コマンドは現在の設定を表示します。
9.5.6. Yum リポジトリーの作成
- シェルプロンプトで
rootとして以下を入力し、createrepo パッケージをインストールします。yum install createrepo - リポジトリーに配置するパッケージすべてを、
/mnt/local_repo/などの 1 つのディレクトリーにコピーします。 - このディレクトリーに移動して、以下のコマンドを実行します。
createrepo --database /mnt/local_repoこれにより yum リポジトリーに必要なメタデータ、さらには sqlite データベースが作成されるため yum の動作が迅速化します。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.