設定 - EPELリポジトリとRemiリポジトリ

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動

概要

RHELは、安定性と安全性で知られる広く普及しているLinuxのディストリビューションである。
しかし、Red Hat社が提供する標準のパッケージリポジトリには、必ずしも最新のソフトウェアバージョンや必要な追加ソフトウェアが含まれているとは限らない。

そこで、RemiリポジトリやEPELリポジトリ等のリポジトリは、システムに簡単にインストールできる様々な追加パッケージを提供する。


EPELとは

EPELリポジトリとは? EPELはExtra Packages for Enterprise Linuxの略で、Fedora Special Interest Groupによって作成・管理されている。
このリポジトリは、RHEL 9を含むEnterprise Linux用の高品質な追加パッケージ一式を提供することで知られている。

EPELの特長は、Fedora対応パッケージに基づいているため、Enterprise Linuxディストリビューションのパッケージと競合したり置き換わったりしないことである。

これほど人気がある主な理由は、バンドルされている一連の機能である。

  • EPELを使用すると、無料で多数のパッケージにアクセスできる。
  • Fedoraグループによって管理されているため、100%オープンソースで安全である。
  • Fedoraと同等の機能をコアに使用しているため、既存のパッケージと競合したり置き換わったりすることはない。
  • 高品質でエンタープライズグレードのパッケージのみを入手することができる。


例えば、KDE Plasmaデスクトップ全体をインストールする場合等に使用することもできる。


EPELリポジトリの追加

まず、CodeReady Linux Builderリポジトリを有効にする。
標準でアクセスできるようになっているため、有効にするだけである。

sudo dnf update
sudo subscription-manager repos --enable codeready-builder-for-rhel-9-$(arch)-rpms


次に、EPELをインストールする。
Remiリポジトリを追加する場合においても、最初にEPELリポジトリを追加する必要がある。

# RHEL 9
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
または
sudo dnf install epel-release epel-next-release


これにより、リポジトリファイルが/etc/yum.repos.d/epel.repoにダウンロードされて有効になる。

EPELをインストールした後、システム内の全てのリポジトリをリストアップして、プロセス全体をクロスチェックする。
インストールされたEPELリポジトリが表示されていることを確認できる場合、EPELリポジトリが正常にインストールされたことを意味する。

sudo dnf repolist


EPELリポジトリに含まれるパッケージの一覧は、以下のコマンドで確認できる。

sudo dnf --disablerepo="*" --enablerepo="epel" list available


また、特定のパッケージを探している場合は、grepコマンドを使用すれば簡単に検索できる。
例えば、neofetchを探している場合は、以下のコマンドを使う必要がある。

sudo dnf --disablerepo="*" --enablerepo="epel" list available | grep 'neofetch'


neofetchは"neofetch.noarch"という名前で提供されていることが分かる。
しかし、neofetch.noarchの詳細が知りたい場合は、指定されたコマンドを使用することにより、簡単に詳細を抽出することができる。

sudo dnf --enablerepo=epel info neofetch.noarch


パッケージの詳細な説明が表示されるので、探しているパッケージを特定するのに役立つ。
目的のパッケージをインストールするには、以下のコマンドを使用する。

sudo dnf --enablerepo=epel install neofetch.noarch


EPELリポジトリからインストールしたパッケージの一覧は、以下のコマンドで確認できる。

sudo dnf list installed | grep @epel



CRBリポジトリの追加 (RHEL 9の場合)

RHEL 9では、EPELパッケージがCRBリポジトリのパッケージに依存する可能性があるため、CRBリポジトリも有効にすることを推奨する。

RHEL 9で利用可能なCRBリポジトリは、開発者関連のツールやライブラリを提供している。
一般的なEPELパッケージの中には、CRBから利用可能なパッケージに依存するものがある。
したがって、RHELでEPELリポジトリをセットアップしている場合は、CRBも有効にすることが推奨される。

リポジトリの追加 / 削除や有効 / 無効を含むDNFの各種設定オプションを管理するDNF用プラグインconfig-managerを使用することができる。
config-managerプラグインをインストールするには、以下のコマンドを実行する。

sudo dnf install dnf-plugins-core


CRBを有効化する。

sudo subscription-manager repos --enable=codeready-builder-for-rhel-9-x86_64-rpms
sudo /usr/bin/crb enable


CRBが正常に有効化されていることを確認する。

dnf repolist


CRBリポジトリから利用できるパッケージの一覧を見ることができる。

dnf repo-pkgs crb list


EPELリポジトリの追加と機能を確認できる。

sudo dnf repolist epel


EPELリポジトリで利用可能なパッケージを一覧表示するには、以下のコマンドを実行する。

sudo dnf --disablerepo="*" --enablerepo="epel" list available


さらにフィルタリングして、必要なパッケージがEPELリポジトリで利用可能かどうかを確認するには、以下のコマンドを実行する。

sudo dnf --disablerepo="*" --enablerepo="epel" list available | grep <パッケージ名>

例:
sudo dnf --disablerepo="*" --enablerepo="epel" list available | grep chromium


EPELリポジトリからパッケージをインストールするには、以下のコマンドを実行する。

sudo dnf --enablerepo="epel" install <パッケージ名>


※注意
一部の依存関係は、標準リポジトリからインストールされる場合がある。


Remiリポジトリの追加

多くのEPELパッケージは、PowerTools / CRBリポジトリのパッケージを依存パッケージとして必要としている。
まず、PowerTools / CRBリポジトリを有効にする。

# RHEL 8
sudo dnf config-manager --set-enabled powertools
sudo dnf install epel-release

# RHEL 9
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
sudo dnf config-manager --set-enabled remi


コマンドラインからリポジトリを素早く有効、および、無効にするため、yum-config-managerをインストールする。

sudo dnf install dnf-utils


Remiリポジトリの設定ファイルのインストールが完了した後、Remiリポジトリを有効にする必要がある。

sudo yum-config-manager --enable remi


EPELとRemiのリポジトリが有効になっているかどうかを確認する。

sudo dnf repolist


Remiリポジトリをインストールした後、インストール可能なパッケージを一覧表示する。

sudo dnf --disablerepo="*" --enablerepo="remi" list available


代わりに、Remi-Safeリポジトリで、利用可能なパッケージの一覧を確認することもできる。

sudo dnf --disablerepo="*" --enablerepo="remi-safe" list available


また、Remiリポジトリを使用する場合は、dnfコマンドのパラメータで指定する。

sudo dnf --enablerepo=remi install <パッケージ名>



EPELとRemiの両方を使用する場合

EPELとRemiの両方を使う場合、カンマでつなげて両方をパラメータに指定する。

sudo dnf --enablerepo=epel,remi install [パッケージ名]



RPM Fusionリポジトリ

RPM Fusionリポジトリとは

RPM Fusionリポジトリは非公式のリポジトリである。

以下に示すような属性を持つパッケージは、RPM Fusionのようなリポジトリで提供されている可能性がある。

  • 関連パッケージの機能が連邦法や州法に準拠していない可能性がある。
  • 関連パッケージがクローズドソースである可能性がある。
  • 関連パッケージがプロプライエタリ (個人所有) である。
  • そのパッケージが法的に担保されている。


例えば、RHELや他のEnterprise Linuxディストリビューションが出荷していないパッケージ (ソフトウェアコーデック等) を提供している。

RPM Fusionリポジトリはコミュニティによって管理されており、フリーと非フリーの2つのリポジトリがある。

  • ライセンスガイドライン付きのオープンソースパッケージは、無料のRPM Fusionリポジトリからアクセスできる。
  • 商用パッケージのみで利用可能な再配布可能パッケージは、不自由なRPM Fusionリポジトリからアクセスする。


RPM Fusionリポジトリのインストール

RHELベースのLinuxディストリビューションにおいて、RPM Fusionリポジトリをインストールして有効にするには、
まず、Enterprise Linux向けの追加パッケージを提供するEPELリポジトリを有効にする必要がある。

次に、フリーおよび非フリーのRPM Fusionリポジトリをインストールして有効にする。

sudo dnf install --nogpgcheck \
     https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm \
     https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-$(rpm -E %rhel).noarch.rpm


また、以下に示すコマンドを実行する必要があるかもしれない。

sudo subscription-manager repos --enable codeready-builder-for-rhel-9-$(arch)-rpms


RPM Fusionリポジトリの検証

システム上のリポジトリを確認する。

sudo dnf update
sudo dnf repolist


RPM Fusionのフリーと非フリーのパッケージリストを表示する。

# フリー
sudo dnf repository-packages rpmfusion-free-updates list

# 非フリー
sudo dnf repository-packages rpmfusion-nonfree-updates list


RPM Fusionリポジトリからパッケージをインストール

sudo dnf install <パッケージ名>


RPM Fusionリポジトリからパッケージをアンインストール

sudo dnf remove <パッケージ名>


RPM Fusionリポジトリの有効化 / 無効化

# 有効化する場合
sudo yum-config-manager --enable rpmfusion-free-updates
sudo yum-config-manager --enable rpmfusion-nonfree-updates

# 無効化する場合
sudo yum-config-manager --disable rpmfusion-free-updates
sudo yum-config-manager --disable rpmfusion-nonfree-updates



備考

EPELリポジトリおよびRemiリポジトリにおいて、最初の1度だけ公開鍵を取得する必要がある。
この鍵は、一括アップデートでは取得できないので、個別に何かをインストールするなどして取得する。

例えば、Remiリポジトリの公開鍵は、下記のコマンドでPHPをインストールまたはアップデートすることで取得できる。
また、EPELリポジトリの公開鍵は、PHPをインストールする時に必要な依存性パッケージをインストールすることで取得できる。

sudo dnf --enablerepo=epel,remi install php