Yellowdog Updater Modified ( YUM ) は、RPM パッケージマネージャを使用してLinuxオペレーティングシステムを実行しているコンピュータ用の、無料のオープンソースのコマンドラインパッケージ管理ユーティリティです。[ 4 ] YUM にはコマンドライン インターフェイスがありますが、 YUM の機能にグラフィカル ユーザー インターフェイスを提供する他のツールもいくつかあります。
YUM は、 RPM ベースのディストリビューションで自動更新とパッケージおよび依存関係の管理を可能にします。 [ 5 ] DebianのAdvanced Package Tool (APT)と同様に、YUM はソフトウェアリポジトリ(パッケージのコレクション) と連携し、ローカル[ 6 ]またはネットワーク接続経由でアクセスできます。
YUM の内部では、ソフトウェアのデジタル配布のパッケージング標準であるRPMに依存しており、ハッシュとデジタル署名を使用してソフトウェアの作者と完全性を自動的に検証します。同様の機能を提供する一部のアプリ ストアとは異なり、YUM も RPM もエンド ユーザーによるパッケージのコピーに対する独自の制限を組み込みでサポートしていません。YUM はPythonプログラミング言語のライブラリとして実装されており、コマンドライン インターフェイスを提供する少数のプログラムがあります。[ 7 ] YUM Extender (yumex) などの GUI ベースのラッパーも存在し、[ 8 ] Fedora Linux ではバージョン 22 まで採用されていました。[ 9 ]
YUM の書き直しであるDNF が、 Fedora 22 [ 9 ] (2015 年)で YUM に代わってデフォルトのパッケージマネージャとなりました。これは、Fedora が Python 2 から Python 3 に移行したため必要でした。Python 3 は YUM ではサポートされていません。 [ 10 ] DNF は、パフォーマンスの向上、依存関係の競合の解決の改善、他のソフトウェア アプリケーションとの統合の容易化など、いくつかの点で YUM を改善しています。[ 11 ] RHEL 8以降、yum はDNFのエイリアスです。[ 12 ]
オリジナルのパッケージマネージャである Yellowdog UPdater (YUP) は、1999~2001 年に、Terra Soft Solutionsの Dan Burcaw、Bryan Stillwell、Stephen Edie、Troy Bengegerdes によって、 Yellow Dog Linuxのグラフィカルインストーラのバックエンドエンジンとして開発されました(当時の CEO であったKai Staatsのリーダーシップの下) 。[ 4 ]
YUMはYUPを完全に書き直したもので、主にセス・ビダルとマイケル・ステナーによってデューク大学物理学科で使用されていたRed Hat Linuxシステムを更新および管理するために開発されました。ビダルは2013年7月8日にノースカロライナ州ダーラムで自転車事故により亡くなるまでYUMへの貢献を続けました。[ 13 ] [ 14 ] [ 15 ]
2003 年、デューク大学の Robert G. Brown が YUM のドキュメントを公開しました。[ 7 ]その後、Fedora、Rocky Linux、AlmaLinux、CentOS、Yellow Dog Linux 自体を含む多くの RPM ベースの Linux ディストリビューションが採用され、YUMは元のYUPユーティリティに取って代わりました。YUP はSourceForgeで2001 年に最後に更新されました。 [ 16 ] 2005 年までに、 Linux市場の半分以上で使用されていると推定され、[ 3 ] 2007 年までに YUM は RPM ベースの Linux ディストリビューションの「推奨ツール」と見なされるようになりました。[ 17 ]
YUMは、旧APT-RPMの認識されていた欠点[ 18 ]とRed Hat up2dateパッケージ管理ツールの制限の両方に対処することを目的としていました。YUMはRed Hat Enterprise Linux 5以降でup2dateに取って代わりました。[ 19 ]一部の著者はYUMをYellowdog Update Managerと呼んだり、「Your Update Manager」の方が適切だと示唆したりしています。[ 20 ] [ 21 ] YUMの基本的な知識は、Linuxシステム管理者認定の要件としてよく含まれています。[ 5 ] YUMのGNU General Public Licenseは、ライセンスの他の条項が遵守されている限り、フリーでオープンソースのソフトウェアをロイヤリティなしで自由に配布および変更することを許可しています。[ 4 ]
yumは元々Linux用に作成されたものですが、 AIX [ 22 ] 、IBM i [ 23 ]、ArcaOS [ 24 ]など、他の多くのオペレーティングシステムにも移植されています。
YUM次のような操作を実行できます。
yum install <パッケージ名>
yum remove <package_name>
yumアップデート
おいしいリストが利用可能です
yum list installed

YUM の 2.x バージョンには、YUM の動作を変更できる Python のプログラミング拡張機能用の追加のインターフェースがあります。特定のプラグインはデフォルトでインストールされます。[ 26 ]一般的にインストールされる[ 27 ]パッケージにはyum-utils、YUM API を使用するコマンドと多くのプラグインが含まれています。
「フロントエンド」と呼ばれるグラフィカルユーザーインターフェースにより、YUM をより簡単に使用できるようになります。PackageKitとYum Extender (yumex) はその 2 つの例です。[ 8 ] Yum Extender は、Fedora が DNF に移行した際に一時的に非推奨になりましたが、[ 28 ] Python 3 と Gtk 3 で書き直され、開発が進められています。この新しい Yum Extender は、Fedora 34 以降で利用可能です。[ 29 ]
パッケージに関する情報(パッケージ自体ではなく)はメタデータと呼ばれます。これらのメタデータは、各パッケージの情報と組み合わせて、パッケージ間の依存関係を決定(可能であれば解決)します。目的は、依存関係地獄と呼ばれる状況を回避することです。別のツールである は、YUMソフトウェアリポジトリをcreaterepo設定し、必要なメタデータを標準XML形式で生成します( -d オプションが指定されている場合はSQLiteメタデータも生成します)。[ 30 ] [ 31 ]このツール(以前は Yam と呼ばれていました)は、リポジトリの作成と保守に役立ちます。[ 32 ]mrepo
YUM の XML リポジトリは、他の多くの開発者からの意見を取り入れて構築され、RPM ベースのリポジトリの標準として急速に普及しました。[ 31 ] YUM を直接使用するディストリビューションに加えて、SUSE Linux 10.1 [ 33 ]はYaSTで YUM リポジトリのサポートを追加し、Open Build Serviceリポジトリは YUM XML リポジトリ形式のメタデータを使用しています。[ 31 ]
YUMはリモートメタデータをローカルクライアントに自動的に同期しますが、他のツールはユーザーからの要求があった場合にのみ同期するように選択されます。自動同期により、ユーザーが適切な間隔でコマンドを実行できなかったためにYUMが失敗することはありません。[ 34 ] [ 35 ]