DNF5 5.4 は C++ で書き直し、Python への依存を外した Package 管理の道具
要約
Fedora 41 から既定になった管理の道具で、C++ で書き直し Python への依存を外しました。空の容器に一連の道具を入れると大きさは約六割減り、repoquery のような問い合わせは旧版のおよそ二倍の速さで返ります。
おすすめ- ソフト名
- DNF5
- バージョン
- 5.4
- 料金
- 無料
- オープンソース
- オープンソース
- OS
- Linux
- 更新日時
- 2026-10-04 07:09
Fedora の dnf は、静かに骨組みを入れ替えていた
Fedora 41 より後のシステムで dnf と打つと、実際に動いているのは当時の Python で書かれたものではないことがほとんどです。DNF5 は同じ企画を書き直した版で、C++ で実装され、Fedora 41 から既定のパッケージ管理の道具になりました。dnf という命令は、いまはそれを指す結び付きにすぎません。企画は rpm のソフトを管理する団体の下で手入れされ、使用の許しは GPL の第二代とそれ以降の改訂です。読む値があるのは、道具が一つ書き直されたからではありません。そんなことは毎日のように起きます。そうではなく、今回の書き直しが、使う人が実際に感じる場所を狙っているからです。入れたときにどれだけの場所を占めるか、命令が動き出すまでどれだけ待つか、問い合わせがどれだけ早く返るか、その三つです。
Python を外して浮いたのは、大きさと起動の手間
旧版の dnf は Python の上に建てられていたので、呼ばれるたびにまず解釈の道具を起こし、その上に一群の部品を読み込んでから、ようやく本来の仕事に入っていました。DNF5 はその理屈を翻訳済みの部品群へ移し、命令の道具そのものはもう Python に頼りません。Fedora の公の説明にある数字によると、空の容器にこの一連の道具を入れると、大きさは元よりおよそ 60 パーセント小さくなります。問い合わせの利はもっと直接で、倉庫にあるものを並べる repoquery のような命令は、処理の速さが元のおよそ二倍になり、依存を並べるときも長い引数の列を解くときも待ち時間が縮みます。月に一度の用なら些細な話ですが、脚本から一時間に百回呼ばれるものなら、何がまだ現実的かを決めます。
実際に変わったところ
三つの道具が一つになりました。元の dnf、microdnf、そして絵の側の土台は、それぞれ自分の控えを持ち、同じ記録を何重にも保存していました。dnf5 とその裏で動く仕組みは一つの写しを分け合うので、その重なりは消えました。追加の部品は別に包まず本体と一緒に入るようになり、更新のあとに版が食い違う事態はずっと起こりにくくなりました。パッケージを扱う、倉庫を扱う、依存を解くという三つの接点は一つの部品にまとめられ、脚本の言葉への結び付きは一つの道具から作られ、名の付け方も揃いました。出力と説明も作り直されています。処理の一覧はより細かく語り、脚本の断片が出す長ったらしい出力は包の名ごとに記録のファイルへ流し、命令ごとに独立した手引きが付き、Shell の補いも強められました。
移るときに見ておきたい二つのこと
一つは、履歴の保管が互いに通じないことです。dnf と dnf5 はそれぞれの形式で記録するので、旧い道具で入れた包は、新しい側では一つの出来事として見えません。DNF5 は最初に処理を実行するとき、旧い履歴を読み、システムの状態を移し替えようとします。これは「この包は当時、依存として入った」といった情報をなるべく残すためで、後から依存の包を、利用者が自分で選んで入れたものと取り違え、回収の機会を逃すのを避ける狙いがあります。もう一つは、企業向けの配布がまだ旧版を使っていることです。商用の第九代、その二つの地域版、そして第十代は、いずれも既定が元の dnf のままで、DNF5 はまだそこを引き継いでいません。2026 年 9 月の時点で最新は 5.4 です。ふつうに Fedora を使う人なら dnf と打てば足り、区別を示したいときだけ dnf5 と書けば済みます。
移る値段を低く保つため、よく使う命令と選択肢には互換の別名が残され、手に馴染んだ書き方はそのまま通ります。python3-dnf と libdnf という二組の旧い部品もシステムに残っていて DNF5 と並べて置けますが、入れたソフトを両方で交互にいじるのは勧められません。システムの状態を分け合っていないからです。
誰が気にすべきか
Fedora の机を一台だけ使い、ときどきソフトを入れる程度なら、感じるのは「命令の返りが少し早くなった」くらいでしょう。本当に得をするのは、Fedora を土台の像として使うときです。容器の中に Python の実行環境を一つ入れずに済めば、像は一回り小さくなります。サーバで repoquery を繰り返し走らせて資産を数えるなら、二倍になった問い合わせの速さは、積み上がれば確かな時間になります。値は選択肢がいくつか増えたことではなく、パッケージ管理の道具が脚本の言葉から翻訳済みの言葉へ移ったことです。小さく、問い合わせが速く、同じ控えを二重に持たない。Fedora 41 以降を使っている人はすでにこれを踏んでいて、企業の側はもうしばらく待つことになります。