🚀

centos7からamazon linux2へ移行後、iusをインストールしようとすると生じたエラー

2024/09/22に公開

背景

centos7環境では、新しいバージョンのgitをインストールするため、事前にiusをインストールしていた。

RHEL and derivatives typically ship older versions of git. You can download a tarball and build from source, or use a 3rd-party repository such as the IUS Community Project to obtain a more recent version of git.

Gitの公式サイトより引用。
https://git-scm.com/download/linux

以下のコマンドにより、iusをインストール。

yum install \
https://repo.ius.io/ius-release-el7.rpm \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

下記URLを参考。
https://ius.io/setup#rhelcentos-7

これにより、最新のgitをインストールできていた。

sudo yum install git224 --enablerepo=ius

現象

amazonlinux2へ移行すると、iusをインストールするコマンドでエラーが生じた。
実行結果を見ると、ius-release-2-1.el7.ius.noarch というパッケージに対し、epel-release = 7 が必要というエラー。iusのドキュメントを読むと、epel7はEOLとなっている。
centos7のEOLに伴い、epel7もEOLを迎えたよう。
https://docs.fedoraproject.org/en-US/epel/#end_of_life_releases

解決策

Amazonlinux2には、Amazon Linux 2 Extrasというメカニズムがあり、
こちらを利用するとepelをインストールでき、iusのエラーが発生せず、gitのインストールが可能となった。下記URLを参考とした。
https://dev.classmethod.jp/articles/amazon-linux-2-enable-epel-repository-with-amazon-linux-extras/

sudo amazon-linux-extras install -y epel
sudo yum install epel-release

この時はやりたかったことは実現できたので、そのまま先に進めた。
iusやepelとはなんぞや?状態だったので関係性を含めて調べ、簡単にメモしておく。

調査メモ

iusとは

CentOS7の標準リポジトリをより新しいバージョンに置き換えるためのリポジトリ。
CentOS7には標準でgit1.8がインストールされている。新しいバージョンをインストールするためにiusを利用する。

IUS(Inline with Upstream Stable)は、RHEL および CentOS 向けの厳選ソフトウェアの新しいバージョンを提供する yum リポジトリです。

IUSのドキュメントより引用。

epelとは

Extra Packages for Enterprise Linux の略で、日本語にすると「エンタープライズLinux用の拡張パッケージ」です。
Red Hat Enterprise Linux (RHEL) や CentOS などのRHEL互換のLinuxディストリビューションに、標準では提供されていない追加のパッケージを提供します。
fedoraという他のLinuxディストリビューションをベースとして、RHEL環境で利用できるようにパッケージングしたもの。

geminiから引用。

iusをインストールするためにepelが必要?

iusとepelは、どちらもRHEL/CentOSで追加のパッケージを提供するサードパーティのリポジトリ。
iusは特定のソフトウェアの最新バージョンに特化していることが多い。epelは開発ツールやデータベースなど、さまざまなソフトウェアが含まれている。
geminiによると、IUSはepelに依存しているとのこと。

IUSの依存関係: IUSは、EPELで提供されるパッケージに依存しているためです。IUSで提供されるソフトウェアのインストールや管理には、EPELで提供されるツールやライブラリが必要となります。
リポジトリの構成: IUSのリポジトリは、EPELが事前に設定されていることを前提としています。EPELがなければ、IUSのリポジトリが正常に機能しません。

geminiから引用。

Discussion