1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linuxの基礎知識:パッケージ管理の進化を理解し、yum と dnf の違いを押さえて dnf を積極活用しよう

Last updated at Posted at 2025-01-03

はじめに

Linuxディストリビューションでソフトウェアのインストールや更新を行う際に使用されるパッケージ管理コマンドには、大きく分けて dnf と yum の2つがあります。

どちらもRed Hat系ディストリビューション(CentOS、RHEL、Fedoraなど)で使用されますが、それぞれの特徴や違いを理解することは、効率的なシステム管理において非常に重要です。

この記事では、dnf と yum の違いについて、基本的なポイントをまとめています。この情報が、どなたかの技術の支えになれば幸いです。

書こうと思ったきっかけ

この記事を書こうと思ったきっかけは、以前投稿した記事に対する質問があったことです。これを機に、自分の知識を改めて整理しようと考えました。

これまでEC2環境を構築する際に、無料利用枠として選択されていたAmazon Linux 2ですが、来年の6月30日をもってサポートが終了することが確定しています。

この2つのマシンイメージは基本的な部分は共通していますが、パッケージ管理ツールとして使用されるコマンドに違いがあります。

詳しくは、以下のAWS公式ドキュメントをご参照ください。

そもそもパッケージ管理とは?

パッケージ管理とは、ソフトウェアのインストール、更新、削除、および依存関係の管理を行う仕組みのことを指します。

特にLinuxでは、システム上のソフトウェアを効率的に管理するために、パッケージ管理システム(Package Manager)が利用されています。

パッケージ管理の役割

  1. インストールの簡略化
    必要なソフトウェアを手動でダウンロードしてインストールするのではなく、コマンド一つで簡単に導入できます。

  2. 依存関係の管理
    ソフトウェアが動作するために必要な他のライブラリやツールを自動でインストールします。

  3. 更新の効率化
    システム全体のパッケージを一括でアップデートすることができます。

  4. 削除の容易さ
    ソフトウェアを削除する際に、関連するファイルも含めて安全に削除できます。

  5. セキュリティ向上
    公式リポジトリから最新バージョンを取得するため、セキュリティパッチを効率的に適用できます。

パッケージ管理システムの種類

Linuxディストリビューションごとに異なるパッケージ管理システムが利用されます。

パッケージ管理システム 主な利用ディストリビューション 形式
yum / dnf CentOS, RHEL, Fedora .rpm
apt Debian, Ubuntu .deb
zypper openSUSE .rpm
pacman Arch Linux .pkg.tar.xz

普段、私は主にRHEL系やDebian系のディストリビューションを使うことが多いので、上記の中では yum / dnfapt を利用しています。

yum と dnf の概要理解

yumについて

yum(Yellowdog Updater, Modified)は、Red Hat系ディストリビューションで広く使用されてきたパッケージ管理ツールです。以下のような特徴があります。

  • 依存関係の解決: 必要なパッケージや依存関係を自動的に処理。

  • 豊富なオプション: パッケージのインストール、削除、更新、検索などが可能。

  • 歴史的背景: 長年にわたって使用され、多くのシステム管理者に馴染みがある。

しかし、パフォーマンスや依存関係の解決速度、機能拡張性に課題がありました。

dnfについて

dnf(Dandified YUM)は、yum の次世代版として開発されたパッケージ管理ツールです。以下のような改善点があります。

  • 高速化: dnf はC言語で書かれた libsolv ライブラリを使用しているため、依存関係の解決が高速。

  • プラグインの強化: モジュール化された設計で拡張性が向上。

  • メモリ使用量の削減: パフォーマンスが向上し、大規模なリポジトリでも快適に操作可能。

  • コマンド互換性: yum とほぼ同じコマンドで操作可能。

dnf は、Fedora 22以降や RHEL 8以降の標準パッケージ管理ツールとして採用されています。

yum と dnf の主な違い

以下に、yum と dnf の主な違いを簡単に表形式でまとめました。

項目 yum dnf
依存関係の解決 Pythonスクリプトで処理 libsolv を使用し高速で正確
メモリ使用量 高い 低い
プラグインの拡張性 限定的 モジュール化され高い
速度 やや遅い 高速
エラーメッセージ やや分かりづらい 分かりやすく詳細
使用環境 CentOS 7以前、RHEL 7以前 Fedora 22以降、RHEL 8以降、CentOS 8以降

結論:dnfの活用を推奨

パッケージ管理でなんとなく yum コマンドを使っている方には、これからは dnf コマンドを活用することを強くお勧めします!

特に、最新のLinuxディストリビューションを使用している場合、dnf のほうが性能面や機能面でのメリットが大きいため、効率的なシステム管理が可能です。

主なコマンドの違い

以下に、yum と dnf での基本的な操作コマンドの違いをまとめました。

1. パッケージのインストール

yum

yum install <パッケージ名>

dnf

dnf install <パッケージ名>

2. パッケージの削除

yum

yum remove <パッケージ名>

dnf

dnf remove <パッケージ名>

3. システム全体のアップデート

yum

yum update

dnf

dnf upgrade

まとめ

dnf は yum の後継として設計され、パフォーマンスや機能が大幅に向上しています。
多くのコマンドが yum と互換性を持つため、yum を使っていた管理者も簡単に移行できます。

新しいシステムをセットアップする際は、dnf を積極的に活用することで、より効率的なパッケージ管理が可能です。

今回の記事では、yum と dnf の違いを簡単に整理しました。この内容が、誰かのの技術向上や効率的なシステム運用に役立てば幸いです!

関連記事

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?