はじめに
Linux には様々なディストリビューションがあり、各ディストリビューションごとに独自の標準リポジトリが設定されています。同じディストリビューションでもバージョンによって標準リポジトリの内容や構成が異なります。あるパッケージをインストールしようとしたのに、パッケージが存在しないという経験をされたことがあるのではないでしょうか。
この記事では、dnf
(またはyum
など)の標準リポジトリがディストリビューションやバージョンによってどのように変わるのか、そして外部リポジトリの追加方法について説明します。
1. 標準リポジトリとは?
標準リポジトリは、各ディストリビューションの開発チームによって管理され、安定性と互換性が確保されたパッケージを提供するためのリポジトリです。これらのリポジトリは、dnf
や yum
などのパッケージマネージャを通じてパッケージのインストールやアップデートを行う際に使用されます。
2. ディストリビューションごとの標準リポジトリの違い
各ディストリビューションは独自のリポジトリを持ち、含まれるパッケージやバージョンはそれぞれ異なります。ここでは、主要なディストリビューションについて説明します。
2.1 Amazon Linux
-
Amazon Linux 2:
- 標準リポジトリ:
amzn2-core
,amzn2extra
- 安定したパッケージを提供し、公式リポジトリを通じて更新されます。
- Node.js や PHP などの特定のバージョンをインストールするには、
amzn2extra
リポジトリを有効化する必要があります。
- 標準リポジトリ:
-
Amazon Linux 2023:
- 標準リポジトリ:
amazonlinux
-
dnf
を使用し、更新されたパッケージを提供します。 - Amazon Linux 2 に比べて、標準で提供されるパッケージのバージョンが異なります。
- 標準リポジトリ:
2.2 CentOS / RHEL
-
CentOS 7:
- 標準リポジトリ:
base
,updates
,extras
- パッケージマネージャは
yum
を使用。 - 安定性重視で、比較的古いバージョンのパッケージが多い。
- 標準リポジトリ:
-
CentOS 8:
- 標準リポジトリ:
BaseOS
,AppStream
,Extras
-
dnf
を使用し、リポジトリの構成が CentOS 7 から変更されました。 - より新しいバージョンのパッケージが含まれています。
- 標準リポジトリ:
2.3 Fedora
-
Fedora:
- 標準リポジトリ:
fedora
,updates
- 常に最新の技術を取り入れ、最新のパッケージが提供されます。
- 開発者や新しい技術を試したいユーザー向け。
- 標準リポジトリ:
2.4 Oracle Linux
-
Oracle Linux:
- 標準リポジトリ: Oracle が提供するリポジトリ。
- RHEL と互換性があり、Oracle 独自のパッケージも提供されています。
3. バージョンごとのリポジトリの違い
同じディストリビューションでも、バージョンが異なるとリポジトリの構成や内容が異なります。
-
CentOS 7 vs CentOS 8:
- CentOS 7 では
yum
が使用され、リポジトリ構成はシンプルです。 - CentOS 8 では
dnf
に変更され、リポジトリの構成も大きく変わり、モジュールストリームや AppStream などが導入されています。
- CentOS 7 では
-
Amazon Linux 2 vs Amazon Linux 2023:
- Amazon Linux 2 は
amzn2-core
やamzn2extra
などのリポジトリを使用し、yum
で管理されます。 - Amazon Linux 2023 は
amazonlinux
リポジトリを使用し、dnf
を使ってパッケージ管理を行います。
- Amazon Linux 2 は
4. 外部リポジトリの追加
標準リポジトリに含まれていない最新のパッケージや特定のバージョンをインストールしたい場合、外部リポジトリを追加することができます。
4.1 NodeSource リポジトリの追加例
Node.js の最新バージョンをインストールするには、NodeSource リポジトリを追加します。
# NodeSource リポジトリの追加
curl -fsSL https://rpm.nodesource.com/setup_20.x | bash -
# Node.js 20.x のインストール
dnf install -y nodejs
この手順により、標準リポジトリにはない最新の Node.js バージョンをインストールできます。
4.2 EPEL リポジトリの追加例
EPEL(Extra Packages for Enterprise Linux)は、RHEL や CentOS 用の追加パッケージを提供します。
# EPEL リポジトリの追加
dnf install -y epel-release
# リポジトリの確認
dnf repolist
EPEL リポジトリを追加することで、標準リポジトリにはない多くの便利なパッケージをインストールできるようになります。
5. リポジトリの確認方法
現在システムに追加されているリポジトリを確認するには、以下のコマンドを使用します。
# 有効なリポジトリの一覧を表示
dnf repolist
# すべてのリポジトリ(無効も含む)を表示
dnf repolist all
これにより、どのリポジトリがシステムに設定されているかを確認できます。
6. まとめ
-
dnf
の標準リポジトリは、Linux ディストリビューションやそのバージョンによって異なる。 - 標準リポジトリに含まれていないパッケージや最新バージョンをインストールするには、外部リポジトリを追加することが一般的
- 外部リポジトリを追加する際は、その信頼性やセキュリティについて十分に確認することが重要
これで、Linux ディストリビューションやバージョンによって異なる dnf
の標準リポジトリの仕組みについて理解が深まったと思います。