2 Oracle Linux Yumサーバーを使用するためのシステムの構成

dnf.confファイルで、グローバル構成オプションを定義します。その後で、.repoファイルを編集または作成して、サブスクライブするリポジトリを定義します。

グローバルDNF構成設定の構成

/etc/dnf/dnf.confのmain構成を編集します。DNFのグローバル定義は、DNF構成ファイルの[main]セクション・ヘッダーの下側にあります。次の表に、DNFの主要なディレクティブを示します。

ノート:

下位互換性のために、/etc/dnf/dnf.confへのシンボリック・リンクが/etc/yum.confに作成されます。構成の構文は全般的には同じですが、非推奨になった構成オプションや新しく追加された構成オプションもあります。構成オプションと構文の違いの詳細は、『Oracle Linux 8: リリース・ノートfor Oracle Linux 8』を参照してください。

詳細は、dnf.conf(5)マニュアル・ページを参照してください。

ディレクティブ 説明
cachedir ダウンロードしたパッケージを格納するためのディレクトリ。
debuglevel 0 (なし)から10 (すべて)までのロギング・レベル。
exclude インストールまたは更新から除外するパッケージのスペース区切りのリスト。例: exclude=VirtualBox-4.? kernel*
gpgcheck 1に設定すると、GPG署名を確認することでパッケージの真正性を検証できます。パッケージが未署名の場合、gpgcheckを0に設定する必要がありますが、悪意のあるユーザーによってパッケージが改変されている可能性にも注意してください。
gpgkey GPG公開キー・ファイルへのパス。
installonly_limit インストール可能ないずれかのパッケージのバージョンの最大数。
keepcache 0に設定すると、インストール後にパッケージが削除されます。
logfile yumログ・ファイルへのパス。
obsoletes 1に設定すると、アップグレード中に古いパッケージが置換されます。
plugins 1に設定すると、yumの機能を拡張するプラグインが有効になります。
proxy ポート番号を含むプロキシ・サーバーのURL。「Yumサーバーでプロキシを使用するためのシステムの構成」を参照してください
proxy_password プロキシ・サーバーでの認証パスワード。
proxy_username プロキシ・サーバーでの認証ユーザー名。
reposdir yum.repo拡張子付きのリポジトリ・ファイルを検索するディレクトリ。デフォルト・ディレクトリは/etc/yum.repos.dです。「異なるYumリポジトリへのサブスクライブ」を参照してください。

[main]構成の例

次のリストに、DNF構成ファイルの[main]セクションの例を示します。

[main]
cachedir=/var/cache/dnf
keepcache=0
debuglevel=2
logfile=/var/log/dnf.log
obsoletes=1
gpgkey=file://media/RPM-GPG-KEY
gpgcheck=1
plugins=1
installonly_limit=3

Yumサーバーでプロキシを使用するためのシステムの構成

組織でインターネット・アクセスの仲介手段としてプロキシ・サーバーを使用している場合は、次の例に示すように、/etc/dnf/dnf.confproxy設定を指定します。

proxy=http://proxysvr.example.com:3128

プロキシ・サーバーで認証が要求される場合は、さらに、proxy_usernameおよびproxy_passwordの設定を次のように指定します。

proxy=http://proxysvr.example.com:3128
proxy_username=user
proxy_password=password              

注意:

すべてのdnfユーザーに、/etc/dnf/dnf.confまたは/etc/sysconfig/rhn/up2dateへの読取りアクセスが必要です。このファイルをどこからでも読み取れるようにする必要がある場合、ユーザーのログイン・パスワード、特にrootsパスワードと同じパスワードを使用しないでください。

ファイアウォールを通じたOracle Linux Yumサーバーへのアクセスの構成

Oracle Linux yumサーバーは、コンテンツ配信ネットワーク(CDN)を通じてコンテンツを配信します。Oracle Linux yumサーバーに接続すると、接続元のシステムと地理的に近いCDNのノードに接続します。CDNを使用することで、一般にダウンロード速度が速くなります。

CDNには、世界中の異なるネットワークに配置された多数のノードがあるため、エグレス・ファイアウォール・ルールに構成できる単一のIPアドレスやネットワーク範囲は存在しません。

システムのアウトバウンド接続を制限する厳格なファイアウォール・ポリシーが存在する環境では、非武装地帯(DMZ)内にローカルyumミラー・サーバーを構成することをお薦めします。ローカルyumミラーの構成方法の詳細は、「ローカルYumミラーの設定と使用」を参照してください。

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

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

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

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

dnf list "*release-eln*"

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

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

DNFは、yumリポジトリ構成ファイルを使用して、各種のパッケージとその依存関係のインストール元を特定します。デフォルトでは、dnf.confファイルでreposdirディレクティブを使用して代理のディレクトリを定義していないかぎり、dnfは、リポジトリ構成ファイルが/etc/yum.repos.dディレクトリにあるものと想定します。

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

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

ディレクティブ 説明
baseurl リポジトリ・チャネルの場所(file://ftp://http://、またはhttps://アドレスとして表現)。このディレクティブは指定する必要があります。
enabled 1に設定すると、yumでチャネルを使用できます。
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サーバーにアクセスできます。リポジトリのbaseurlは、どのリージョナル・サーバーを使用するかの定義に$ociregion変数を使用し、yumサーバーが配置されているドメインの定義に$ocidomain変数を使用します。変数を使用すると、Oracle Linuxデプロイメント全体での構成の標準をある程度維持しながら、Oracle Cloud Infrastructureの顧客が利用できる追加のリソースへのアクセスが提供されます。

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

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

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

通常、インスタンスの作成時に、この変数はOracle Cloud Infrastructureサービス・ネットワーク上の最近接リージョナルyumサーバーをポイントするように設定されます。/etc/dnf/vars/ociregionファイルが存在しない場合やファイルが空の場合、baseurlはパブリック・アクセスが可能な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/OracleLinux/ol-release/myrepo/x86_64

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

sudo dnf config-manager --enable repository

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

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

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

なんらかの理由でyumリポジトリ構成のすべてが失われ、リカバリが必要になった場合は、/etc/yum.repos.d/temporary_base.repoに一時的なyumリポジトリ構成ファイルを作成し、次の構成を移入します。

例2-1 Oracle Linux 9

[ol9_baseos_developer]
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

例2-2 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

一時的なベース・リポジトリ構成により、標準yumリポジトリ構成の設定に必要なリリース・パッケージを再インストールするために、ベース・リポジトリにアクセスできます。少なくとも、次のコマンドを実行する必要があります。

sudo dnf reinstall oraclelinux-release-eln

nは、構成するOracle Linuxリリース番号に置き換えます。

リポジトリ構成が使用可能であることを確認して、リカバリできるように作成した/etc/yum.repos.d/temporary_base.repoを削除します。
ls /etc/yum.repos.d/oracle-linux-oln.repo
rm /etc/yum.repos.d/temporary_base.repo

nは、構成するOracle Linuxリリース番号に置き換えます。

この手順の完了後に、その他の適切なリリース・パッケージを必要に応じてインストールまたは再インストールすると正しいリポジトリ構成が得られます。dnf config-managerツールを使用して、必要なすべてのリポジトリを有効にします。

ローカルYumリポジトリを提供するためのISOイメージの使用

ノート:

システムには、Oracle Linuxメディア・パックDVDイメージ全体をホストするために十分な記憶域が存在する必要があります。

ローカルyumリポジトリを作成するには、次の手順を実行します(たとえば、システムでインターネットにアクセスできない場合)。

  1. インターネットにアクセスできるシステムで、https://edelivery.oracle.com/linuxにあるOracle Software Delivery Cloudからリムーバブル・ストレージ(USBメモリー・スティックなど)にOracle Linux DVDイメージ全体をダウンロードします。

    ノート:

    ISOが正常にコピーされたことを確認するには、次のように、そのチェックサムをedelivery.oracle.comに表示されているダイジェスト値と比較します。

    sudo sha1sum OracleLinux.iso
    203b8185d8c6551378b41da26b088f23e131343f OracleLinux.iso
  2. リムーバブル・ストレージを、ローカルyumリポジトリを作成するシステムに移動し、DVDイメージをローカル・ファイル・システムのディレクトリにコピーします。

    sudo cp /media/USB_stick/OracleLinux.iso /ISOs
  3. 適切なマウント・ポイント(たとえば、/var/OSimage/OL_x86_64)を作成し、そこにDVDイメージをマウントします。

    sudo mkdir -p /var/OSimage/OL_x86_64
    sudo mount -o loop,ro /ISOs/OracleLinux.iso /var/OSimage/OL_x86_64

    ノート:

    読取り専用のマウント・オプション(ro)を含めて、ISOの内容が誤って変更されないようにします。

  4. 再起動後にシステムで常にDVDイメージがマウントされるように、/etc/fstabにエントリを作成します。

    /ISOs/OracleLinux.iso /var/OSimage/OL_x86_64 iso9660 loop,ro 0 0
  5. すべての既存のyumリポジトリを無効にします。

    /etc/yum.repos.dディレクトリで、すべてのエントリを無効化します。

    sudo dnf config-manager --disable \*
  6. 新しいリポジトリ・ファイル(たとえば、/etc/yum.repos.d/OL.repo)に、次のエントリを作成します。次に例を示します。

    [OL_BaseOS]
    name=Oracle Linux x86_64 ISO BaseOS
    baseurl=file:///var/OSimage/OL_x86_64/BaseOS
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
    gpgcheck=1 
    enabled=1
    
    [OL_AppStream]
    name=Oracle Linux x86_64 ISO AppStream
    baseurl=file:///var/OSimage/OL_x86_64/AppStream
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
    gpgcheck=1 
    enabled=1 

    正しいGPGキー・ファイルは、gpgkeyパラメータで指定したパスに存在する必要があります。すべてのOracle Linuxリリース・パッケージの署名に使用されるGPGキーはOracle Linux yumサーバーからダウンロードできますが、このキーはISO自体でも提供されます。詳細は、https://yum.oracle.com/faq.html#a10を参照してください。

  7. dnfキャッシュをクリーン・アップします。

    sudo dnf clean all
  8. dnfコマンドを使用してリポジトリにアクセスできるかどうかをテストします。

    sudo dnf repolist
    Loaded plugins: refresh-packagekit, security
    ...
    repo id                          repo name                             status
    OL_AppStream                    Oracle Linux x86_64 ISO AppStream      5,783
    OL_BaseOS                       Oracle Linux x86_64 ISO BaseOS         1,697
    repolist: 7,480