**RPM Package Manager** (maksud: Pengurus Pakej RPM, dulunya dikenali sebagai **Red Hat Package Manager** dan disingkatkan sebagai **RPM**) adalah sebuah sistem pengurusan pakej. Nama RPM merujuk kepada dua benda iaitu format fail sesebuah pakej perisian dan perisian yang dipakejkan dengan format ini. RPM ditujukan terutamanya untuk edaran Linux; format fail RPM adalah format pakej dasar bagi Linux Standard Base.

Dibangunkan pada asalnya oleh Red Hat untuk Red Hat Linux, RPM kini telah digunakan oleh banyak edaran Linux. Ia juga turut diadaptasikan di dalam sistem pengendalian lain seperti Novell NetWare (pada versi 6.5 SP3) dan AIX IBM pada versi 5.

Pangkalan data RPM
------------------

Bekerja disebalik pengurus pakej adalah pangkalan data RPM, tersimpan di dalam `/var/lib/rpm`. Ia terdiri daripada sebuah pangkalan data (`Packages`) tunggal mengandungi kesemua maklumat meta bagi rpm-rpm yang dipasang dan pangkalan data yang pelbagai digunakan bagi tujuan pengindeksan. Pangkalan data digunakan untuk mengikuti perkembangan fail-fail yang diubah atau dicipta apabila seorang pengguna memasang (menggunakan RPM) sesebuah pakej, lantas membenarkan pengguna tersebut untuk membalikkan (melalui RPM) perubahan-perubahan tersebut dan membuang pakej tersebut dikemudian nanti. Sekiranya pangkalan data rosak (yang mana mungkin apabila pelanggan RPM dimatikan), pangkalan data indeks tersebut boleh dicipta semula dengan menggunakan arahan `rpm--rebuilddb`.

Label pakej
-----------

Setiap pakej RPM memiliki *label pakej* yang mana mengandungi maklumat-maklumat berikut:

* nama perisian
* versi perisian (versi diambil daripada sumber "upstream" asal perisian berkenaan)
* rilisan pakej (bilangan kali pakej tersebut telah dibina semula menggunakan versi yang sama bagi perisian berkenaan) lapangan ini juga selalu digunakan untuk menentukan edaran khusus yang mana pakej tersebut ditujukan kepada dengan menggabungkan rentetan seperti "mdv" (dulunya, "mdk") (Mandriva Linux), "fc4" (Fedora Core 4), "rhl9" (Red Hat Linux 9), "suse100" (SUSE Linux 10.0) dsb.
* senibina yang pakej tersebut dibinakan untuk (i386, i686, athlon, ppc, dsb.)

Fail RPM selalunya mempunyai format berikut:

```
<nama>-<versi>-<keluaran>.<seni_bina>.rpm
```

Contohnya:

```
nano-0.98-2.i386.rpm
```

Sebuah *label pakej* diisikan di dalam fail tersebut dan tidak semestinya perlu mempunyai nama yang sama dengan fail tersebut. Kod sumber juga boleh diedarkan di dalam pakej RPM. Label-label pakej sebegini tidak mempunyai bahagian senibina dan digantikan dengan "src". Cth.:

```
libgnomeuimm2.0-2.0.0-3.src.rpm
```

Tambahan lagi, pustaka diedarkan dalam dua pakej berasingan untuk setiap versi. Satunya mengandungi kod prakompilan dan satu lagi mengandungi fail-fail pembinaan seperti fail *header* dsb. untuk pustaka berkenaan. Pakej-pakej tersebut mempunyai "-devel" ditambahkan pada lapangan nama mereka. Pengguna perlu berhati-hati memeriksa supaya versi pakej pembinaan adalah bersamaan dengan pakej binari, kalau tidak pustaka mungkin tidak akan berfungsi dengan baik.

Fail-fail RPM dengan lanjutan noarch.rpm merujuk kepada fail-fail yang tidak bergantung kepada mana-mana seni bina komputer. Fail-fail ini selalunya menyertakan grafik serta teks untuk digunakan oleh atur cara lain, dan kadang kala atur cara yang ditulis dengan bahasa pengaturcaraan tahap tinggi seperti atur cara Python dan skrip cangkerang.

Rujukan
-------

1. ↑  "Maximum RPM: Taking the Red Hat Package Manager to the Limit". rpm.org. Diarkibkan daripada yang asal pada 2008-07-05. Dicapai pada 2008-02-29.
2. ↑  "Repair an RPM database safely". Dicapai pada 2008-02-29.

Pautan luar
-----------

* (Inggeris)Red Hat RPM Guide dari projek Fedora.
* (Inggeris)RPM.org Community Package Manager homepage
* (Inggeris)Jeff Johnson's RPM Package Manager homepage
* (Inggeris)Pre December 2006 RPM.org website content
* (Inggeris)RPM and DPKG command reference Diarkibkan 2016-10-28 di Wayback Machine