Amazon Linux 2022へEPEL・Fedora 36レポジトリを追加する

aws_logo

Amazon Linux 2022の GA にともない提供するパッケージ構成が変わりうるので、本記事で説明する手順は GA までの参考程度にどうぞ。

早速タイトル詐欺を暴露しますが、EPELレポジトリは導入しません。

その代わり『提供するパッケージがEPELとほとんど同じ』であるFedoraレポジトリを Amazon Linux 2022(AL2022)に導入する手順を説明します。

Amazon Linux 1・2で確立されたEPELユースケースを考えると Amazon Linux 2022(AL2022)へのパッケージ導入にあたりEPELで検索する人が多いんじゃないかと予想しますが、AL2022 ではEPELが使えないのでその代わりの記事ということになります。

Fedoraレポジトリ導入の背景

Fedoraとの関係
https://docs.aws.amazon.com/linux/al2022/ug/relationship-to-fedora.html

The Generally Available (GA) version of Amazon Linux 2022 isn’t directly comparable to any specific Fedora release. The Amazon Linux 2022 GA version includes components from Fedora 34, 35, and 36. Some of the components are the same as the components in Fedora and some are modified.

まず上記AWS公式ドキュメントによれば、AL2022はFedora 34〜36がベースになっているとのこと。
RHEL/CentOSベースだったAmazon Linux 2とは毛色が異なるようです。

RHEL/CentOSとFedoraはRed Hatが後援であることから近い間柄ではありますが、EPELレポジトリはFedoraに導入できません。そしてAmazon Linuxにも導入きません。惜しい。

とはいえ、FedoraとEPELの両者で提供しているパッケージはかなり似通っていますから、AL2022へのFedora 36レポジトリ導入を試したところ、うまくいきました。
これによりAL2022が最初から提供するパッケージ以外の、多少ニッチなパッケージまで導入できるようになります。

レポジトリ導入手順

AL2022のDockerイメージからコンテナを起動、Fedoraレポジトリを導入し、パッケージ検索するまでを試してみましょう。

# お試し用のAL2022コンテナを起動する
$ docker run --rm -it public.ecr.aws/amazonlinux/amazonlinux:2022 bash 
# レポジトリ導入
$ cat <<'TXT' > /etc/yum.repos.d/fedora.repo 

# See also: docker run --rm -it fedora:36 cat /etc/yum.repos.d/fedora.repo
[fedora]
name=Fedora 36 - $basearch
#baseurl=http://download.example/pub/fedora/linux/releases/36/Everything/$basearch/os/
metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-36&arch=$basearch
enabled=1
metadata_expire=7d
repo_gpgcheck=0
type=rpm  
gpgcheck=1
gpgkey=https://getfedora.org/static/fedora.gpg
skip_if_unavailable=False
TXT 
# AL2022に含まれないニッチなパッケージを確認する
$ dnf repoquery --nvr 'gimp'


Update 2022/07/06
余談。FedoraにおけるEPELの代替としてRPM Fusionがありますが、 その導入については別記事で扱う予定。

https://rpmfusion.org/

AL2022へのRPM Fusionレポジトリ導入手順の記事を投稿しました。

https://www.gclue.jp/2022/07/amazon-linux-2022-epl-rpmfusion.html