異なるYumリポジトリへのサブスクライブ

Oracle Linuxでは、yumを通じてメンテナンスされるリリース・パッケージとして利用可能なモジュラyumリポジトリ構成ファイルを使用します。リリース・パッケージはリポジトリ管理を簡略化し、システムを更新するたびにyumリポジトリの定義が自動的に最新の状態に維持されるようにします。

すべてのOracle Linuxシステムでは、デフォルトでoraclelinux-release-el8パッケージがインストールされます。このパッケージには、Oracle Linuxシステムで一般的なOSソフトウェア・パッケージをインストールできるようにするために必要なすべてのリポジトリにアクセスするためのコア・リポジトリ構成と、他のyumリポジトリ構成を取得するために使用される他のリリース・パッケージが含まれています。

リリースに対応するすべてのyumリポジトリ構成を管理するために利用可能なすべてのRPMファイルのリストが、次のコマンドを実行することで取得できます。nは、-el8などのRPMファイルのOracle Linuxリリース・バージョンです。

dnf list "*release-eln*"

特定のソフトウェア・セットに応じたyumリポジトリ構成をインストールするには、dnfコマンドを使用して対応するパッケージをインストールします。

Yumリポジトリ構成ファイルの編集

DNFは、yumリポジトリ構成ファイルを使用して、各種のパッケージとその依存関係のインストール元を構成します。デフォルトでは、リポジトリ構成ファイルは/etc/yum.repos.dディレクトリに格納されます。リポジトリ構成を格納する別のディレクトリの場所を定義するには、dnf.confファイルにreposdirディレクティブを設定します。

このリポジトリ・ディレクトリを使用して、使用可能にするリポジトリの.repoファイルを定義します。.repoファイルには、複数のyumリポジトリのエントリを含めることができます。リポジトリをサブスクライブするには、enabledオプションの値を1に編集して、構成ファイルを保存します。この変更はすぐに反映されます。

次の表で、リポジトリの基本ディレクティブについて説明します。リポジトリ・ファイルに現れるその他のディレクティブは、DNF構成ファイル[main]セクションにあるグローバル定義をオーバーライドします。詳細は、dnf.conf(5)マニュアル・ページを参照してください。

ディレクティブ 説明
baseurl リポジトリの場所(file://ftp://http://、またはhttps://アドレスとして表現)。このディレクティブは指定する必要があります。
enabled dnfがリポジトリを使用できるようにするかどうか。リポジトリを有効にする場合は値を1に、リポジトリを無効にする場合は0に設定します。
name リポジトリ・チャネルのわかりやすい名前。このディレクティブは指定する必要があります。

リポジトリのリスト例

次のリストは、.repo構成ファイルのリポジトリ・セクションの例を示しています。

[ol8_appstream]
name=Oracle Linux $releasever Application Stream ($basearch)
baseurl=https://yum.oracle.com/repo/OracleLinux/OL8/appstream/$basearch
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

この例では、gpgkeyおよびgpgcheckの値が任意のグローバル設定をオーバーライドします。dnfは、変数$basearchを現在のシステムのアーキテクチャ名で置換します。

リージョナルYumサーバー・リポジトリへのコンピュート・インスタンス・アクセスの構成

Oracle Cloud Infrastructureのコンピュート・インスタンスは、サービス・ゲートウェイを通じてリージョナルyumサーバーにアクセスできます。リポジトリのベースURLは、使用するリージョン・サーバーの定義に$ociregion変数を使用し、yumサーバーが配置されているドメインの定義に$ocidomain変数を使用します。変数を使用すると、Oracle Linuxデプロイメント全体での構成の標準をある程度維持しながら、Oracle Cloud Infrastructureの顧客が利用できる追加のリソースへのアクセスが提供されます。

たとえば、Oracle Linux 8のol8_baseos_latestリポジトリのベースURLは次のとおりです。

baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL8/baseos/latest/$basearch

$ociregion変数は、/etc/dnf/vars/ociregionの内容を移入することで設定できます。たとえば、$ociregion-phxに設定されると、ベースURLはフェニックスのリージョナルyumを指すように拡張されます。

通常、インスタンスの作成時に、この変数はOracle Cloud Infrastructureサービス・ネットワーク上の最近接リージョナルyumサーバーをポイントするように設定されます。/etc/dnf/vars/ociregionファイルが存在しない場合やファイルが空の場合、ベースURLは一般に公開可能なOracle Linux yumサーバーをポイントします。

DNF config-managerプラグインの使用

dnf-plugins-coreパッケージには、構成の管理と既存の構成に更新を安全に適用するために役立つ複数のユーティリティが含まれています。これらのユーティリティのうち最も重要なものは、dnf config-managerプラグインです。

dnf config-managerを使用すると、指定したURLまたは指定したリポジトリ・ファイル内のリポジトリを追加できます。たとえば、リモート・サーバーでホストされているOracle Linux用のリポジトリ構成ファイルを追加するには、次のコマンドを実行します。

sudo dnf config-manager --add-repo https://example.com/my_yum_config.repo

同じコマンドを使用して、リポジトリがホストされているURLを指定すると、有効なyumリポジトリのリポジトリ構成ファイルを自動的に生成することもできます。たとえば、サンプル・リポジトリ用の/etc/repos.dに構成ファイルを作成するには、次のコマンドを実行します。

sudo dnf config-manager --add-repo https://example.com/repo/el-release/myrepo/x86_64

dnf config-managerを使用してリポジトリを有効化する場合は、--enableオプションを使用します。たとえば、myrepoという名前のリポジトリを有効化する場合は、次のコマンドを実行します。

sudo dnf config-manager --enable myrepo

--disableオプションを使用すると、同様の方法でリポジトリを無効化できます。

また、dnf config-managerツールは、--setoptおよび--saveオプションを指定することで、その他の構成オプションを設定する場合にも使用できます。詳細は、dnf.plugin.config_manager(8)マニュアル・ページを参照してください。

ベースYumリポジトリ構成のリカバリ方法

このタスクは、システムの基本リポジトリ構成が破損しているか、失われている場合に実行します。
  1. /etc/yum.repos.dに一時リポジトリ構成ファイルを作成します。
    sudo mkdir /etc/yum.repos.d/temp_base.repo
  2. システムのOSバージョンに対応するエントリをファイルに移入します。
    • Oracle Linux 9の場合:

      [ol9_baseos_latest]
      name=Oracle Linux 9 BaseOS Latest ($basearch)
      baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL9/baseos/latest/$basearch/
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
      gpgcheck=1
      enabled=1
    • Oracle Linux 8の場合:

      [ol8_baseos_latest]
      name=Oracle Linux 8 BaseOS Latest ($basearch)
      baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL8/baseos/latest/$basearch/
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
      gpgcheck=1
      enabled=1
  3. システムのOSバージョンの必要なリリース・パッケージを再インストールして、標準のyumリポジトリ構成を設定します。
    sudo dnf reinstall oraclelinux-release-olrelease-nbr
  4. リカバリが成功したことを確認します。
    ls /etc/yum.repos.d/oraclelinux-release-olrelease-nbr
  5. 一時構成ファイルを削除します。
    rm /etc/yum.repos.d/temporary_base.repo
  6. 他の必要なリリース・パッケージを再インストールして、正しいリポジトリ構成を取得します。
    sudo dnf reinstall repository
  7. 必要なリポジトリを有効にします。
    sudo dnf config-manager --enable repository