| RPMパッケージマネージャー(RPM) | |
|---|---|
| 原著作者 | エリック・トロアン、マーク・ユーイング、[ 1 ]レッドハット |
| 開発者 | コミュニティとレッドハット[ 2 ] [ 3 ] |
| リリース | 1997年 (1997年)[ 1 ] |
| 安定放出 | |
| 執筆 | C、C++、Perl [ 5 ] |
| オペレーティング·システム | Linux、Unixライク |
| 利用可能 | 41言語[ 6 ] |
| タイプ | パッケージ管理システム |
| ライセンス | GPL |
| Webサイト | rpm.org |
| リポジトリ |
|
RPM(元々はRed Hat Package Manager、現在はRPM Package Managerの再帰的頭字語)は、無料のオープンソースのパッケージ管理システムです。[ 7 ] RPMという名前は、ファイル形式とパッケージマネージャプログラム自体を指します。RPMは主にLinuxディストリビューション向けに設計されており、ファイル形式はLinux Standard Baseの基本パッケージ形式です。.rpm
Red Hat Linuxで使用するために作成されたRPM ですが、現在ではPCLinuxOS、Fedora Linux、AlmaLinux、CentOS、openSUSE、OpenMandriva、Oracle Linuxなど多くのLinux ディストリビューションで使用されています。また、 Novell NetWare (バージョン 6.5 SP3 以降)、IBM の AIX (バージョン 4 以降)、[ 8 ] IBM i、[ 9 ] ArcaOS [ 10 ]など、他のいくつかのオペレーティングシステムにも移植されています。 RPM パッケージには 任意のファイル セットを含めることができます。ほとんどの RPM ファイルは、コンパイル済みのソフトウェア バージョンを含む「バイナリ RPM」(または BRPM) です。バイナリ パッケージをビルドするために使用されるソース コードを含む「ソース RPM」(または SRPM) もあります。これらは、通常の (B)RPM と区別する適切なタグがファイル ヘッダーにあり、インストール時に /usr/src に展開されます。 SRPM は通常、ファイル拡張子「.src.rpm」(拡張子文字が 3 文字に制限されているファイルシステムでは .spm、例: 古い DOS FAT)を持ちます。
RPMは元々1997年にErik TroanとMarc Ewingによって[ 1 ]、、、、の経験に基づいて書かれたものpmsです。rpppm
pmは、1995 年 5 月に Rik Faith と Doug Hoffman によって Red Hat Software 向けに作成されました。その設計と実装はpms、1993 年秋に Faith と Kevin Martin によって Bogus Linux ディストリビューション向けに作成されたパッケージ管理システム に大きく影響を受けています。は のpm「Pristine Sources + patches」パラダイムを維持しつつpms、実装に存在する機能を追加し、恣意的な制限を排除しています。 は、pmインストールされたパッケージの追跡と検証のための大幅に強化されたデータベース サポートを提供します。[ 5 ] [ 11 ] [ 12 ]
ソフトウェアのインストールとメンテナンスを行うシステム管理者にとって、手動での構築ではなくパッケージ管理を使用することには、シンプルさ、一貫性、これらのプロセスを自動化して非対話的に実行できるといった利点があります。rpm はバックエンド データベースとしてBerkeley DBを使用していますが、2019 年のバージョン 4.15 以降は Berkeley DB を使用せずに rpm パッケージを構築することもできます ( –disable-bdb)。[ 13 ]
RPMの主な機能は以下のとおりです。
.tar.gz:).tar.bz2はSRPMに含まれているため、検証が容易になります。パッケージは特定のディストリビューション内から提供される場合もあれば(例えばRed Hat Enterprise Linux)、他の関係者によってそのディストリビューション向けにビルドされる場合もある(例えばFedora Linux 用のRPM Fusion )。 [ 14 ]相互依存する RPM 間の循環依存(いわゆる「依存関係地獄」)は問題となる可能性がある。[ 15 ]このような場合、単一のインストール コマンドで関連するすべてのパッケージを指定する必要がある。
RPMパッケージは、インターネット上の1つまたは複数のリポジトリに一元的に収集されることが多い。サイトによっては、独自のRPMリポジトリを持っている場合もあり、それはインターネット上のリポジトリのローカルミラーとして機能する場合もあれば、有用なRPMパッケージをローカルで管理するコレクションとして機能する場合もある。
RPM のフロントエンドはいくつかあり、リポジトリから RPM を取得してインストールするプロセスを容易にし、依存関係の解決を支援します。これらには以下が含まれます。
rpmquery(例えば)Red Hat Enterprise Linuxで利用可能なコマンドラインユーティリティlibzyppSailfish OS用パッケージマネージャの裏側で動作しているのは、 に格納されている RPM データベースです/var/lib/rpm。バックエンドにはBerkeley DB をPackages使用しています。 は、インストールされている RPM のすべてのメタ情報を含む単一のデータベース ( ) で構成されています。 クエリを高速化するためにデータを複製するインデックス作成用に複数のデータベースが作成されます。 データベースは、ユーザー (RPM を使用) がパッケージをインストールしたときに変更および作成されたすべてのファイルを追跡するために使用され、これによりユーザー (RPM を介して) は後で変更を元に戻してパッケージを削除できます。 データベースが破損した場合 (RPM クライアントが強制終了された場合に発生する可能性があります)、インデックス データベースはコマンドを使用して再作成できますrpm --rebuilddb。[ 18 ]
RPM形式は様々なLinuxディストリビューションで共通していますが、詳細な規則やガイドラインはディストリビューションによって異なる場合があります。
RPMは通常、単一のファイルとして提供され、ファイル名は次の形式になります。
<name>-<version>-<release>.src.rpmソースパッケージの場合、または<name>-<version>-<release>.<architecture>.rpmバイナリの場合。例えば、パッケージファイル名ではlibgnomeuimm-2.0-2.0.0_3.i386.rpm、<name>はlibgnomeuimm、<version>は、は2.0、<release>は2.0.0_3、は<architecture>ですi386。関連付けられたソースパッケージの名前はとなります。libgnomeuimm-2.0-2.0.0_3.src.rpm
拡張子を持つ RPM ファイルはnoarch.rpm、特定の CPU アーキテクチャに依存しません。たとえば、これらの RPM ファイルには、他のプログラムで使用するグラフィックやテキストが含まれている場合があります。また、シェルスクリプトや、 Pythonなどのインタプリタ型プログラミング言語で記述されたプログラムが含まれている場合もあります。
RPMパッケージの内容にはパッケージラベルも含まれており、そこには以下の情報が記載されています。
パッケージラベルのフィールドはファイル名と一致する必要はありません。
ライブラリは、バージョンごとに2つの別々のパッケージで配布されます。1つは実行時に使用するプリコンパイル済みのコードを含み、もう1つはヘッダーファイルなどの関連開発ファイルを含みます。これらのパッケージ名には「-devel」が付加されます。システム管理者は、バイナリパッケージと開発パッケージのバージョンが一致していることを確認する必要があります。
フォーマットはバイナリで、4つのセクションから構成されています。[ 7 ]
rpm2cpioRPMパッケージを作成するための「レシピ」は、スペックファイルです。スペックファイルは「.spec」という拡張子で終わり、パッケージ名、バージョン、RPMリビジョン番号、パッケージのビルド、インストール、クリーンアップの手順、および変更履歴が含まれています。必要に応じて、1つのRPMスペックファイルから複数のパッケージを作成できます。RPMパッケージは、rpmbuildツールを使用してRPMスペックファイルから作成されます。
仕様ファイルは通常、ソースコードとともにパッケージ化されたSRPMファイル内に含まれて配布されます。
一般的なRPMパッケージは、直接インストールできる状態でプリコンパイルされたソフトウェアです。対応するソースコードも配布できます。これはSRPMパッケージで行われ、ソフトウェアとその構築方法を記述した「SPEC」ファイルも含まれます。SRPMパッケージを使用すると、ユーザー自身がコードをコンパイルしたり、場合によっては変更したりすることもできます。
ソフトウェアパッケージには、プラットフォームに依存しないスクリプトのみが含まれる場合があります。そのような場合、開発者はSRPMのみを提供することになりますが、これはインストール可能なRPMパッケージの一種です。
これは SRPM の特別バージョンです。「SPEC」ファイルとオプションのパッチが含まれていますが、ソースは含まれていません (通常はライセンスのため)。[ 22 ]
2010年6月現在 現在、RPMには2つのバージョンが開発されている。1つはFedoraプロジェクトとRed Hatが主導するもので、もう1つは以前のRPMメンテナーであり、Red Hatの元従業員が率いる別のグループによるものだ。
rpm.orgコミュニティによる最初の主要なコード改訂は2007年7月に行われました。バージョン4.8は2010年1月に、バージョン4.9は2011年3月に、4.10は2012年5月に、4.11は2013年1月に、4.12は2014年9月に、そして4.13は2015年7月にリリースされました。
このバージョンは、 Fedora Linux、Red Hat Enterprise Linuxとその派生版、openSUSE、SUSE Linux Enterprise、Unity Linux、Mageia、[ 23 ] OpenEmbedded、Tizen、OpenMandriva Lx(旧Mandriva )などのディストリビューションで使用されています。
1999年からRPMのメンテナーを務めてきたジェフ・ジョンソンは、他の複数のディストリビューションの参加者と共に開発を継続した。RPMバージョン5は2007年5月にリリースされた。
このバージョンは、 Wind River Linux (Wind River Linux 10 まで)、Rosa Linux、OpenMandriva Lx ( 2011 年に rpm5 に切り替えた旧Mandriva Linux [ 24 ] )などのディストリビューションで使用され、他の一般的な UNIX プラットフォーム用のパッケージを提供するOpenPKGプロジェクトでも使用されました。
OpenMandriva Lxは4.0リリースでrpm.org [ 25 ]に切り替えました。
RPM5 の最後の主要ユーザーであった OpenEmbedded は、RPM5 の問題により rpm.org に切り替えました。[ 26 ] [ 27 ]
は、メンテナンスされていないRPM 4.xシリーズを廃止し、パッケージ管理を改善するためにRPM 5.xに置き換える予定です。
{{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク){{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)