Memelihara Software Menggunakan RPM (Red Hat Package Manager)
RPM adalah manajer perangkat lunak yang kuat yang dapat digunakan untuk membangun, menginstal, menanyakan, memverifikasi, memperbarui, dan menghapus paket perangkat lunak individual. Paket RPM terdiri dari arsip file, dan informasi paket seperti nama, versi, deskripsi, dan informasi tentang dependensi pada paket RPM lainnya.
RPM lebih dari sekadar alat khusus Red Hat. Banyak distro modern lainnya, seperti Ubuntu dan SuSE, juga menggunakan RPM. Manfaat menggunakan RPM meliputi:
- Distribusi, pemasangan, peningkatan, dan penghapusan perangkat lunak yang disederhanakan
- Menjamin bahwa:
- perangkat lunak prasyarat diinstal pada sistem.
- versi perangkat lunak prasyarat tetap kompatibel.
- file konfigurasi yang dimodifikasi secara lokal tidak diblokir saat RPM diperbarui.
- File konfigurasi yang dimodifikasi secara lokal disimpan dengan akhiran “.rpmsave” jika paket tersebut kemudian dihapus.
- Memungkinkan sertifikasi bahwa perangkat lunak yang diinstal tidak diubah, dimodifikasi, dirusak, atau diubah dengan cara apa pun.
RPM menyimpan informasi tentang paket yang diinstal di bawah direktori “/var/lib/rpm”. Komponen alat RPM adalah:
- Basis data khusus yang berisi informasi tentang semua perangkat lunak yang diinstal pada sistem, dikumpulkan dari RPM individu.
- A “/bin/rpm” dapat dieksekusi.
- Repositori yang dapat diakses internet dari paket RPM yang tersedia.
Jenis Paket RPM
Paket RPM tersedia dalam dua kategori:
1. sumber
2. biner
RPM Sumber
RPM sumber selalu dapat dikenali karena nama file diakhiri dengan string “.src.rpm”. Dalam RPM sumber tidak hanya file kode sumber program asli tetapi skrip yang memungkinkan kode dikompilasi ulang secara otomatis, diinstal secara otomatis, dan dihapus secara otomatis. Tidak ada file yang dapat dieksekusi pengguna akhir dalam RPM sumber. Biasanya, hanya pengembang yang tertarik dengan RPM sumber.
RPM Biner
RPM biner berisi komponen pengguna akhir dari RPM. Nama file RPM biner mengidentifikasi arsitektur host untuk konten. Misalnya, file RPM biner:
bash-3.1-16.1.x86_64.rpm
– berisi file yang hanya dapat digunakan pada CPU arsitektur Intel X86 64-bit. Nilai arsitektur umum lainnya termasuk "i386" untuk host Intel 32-bit. Beberapa RPM biner dapat diinstal pada arsitektur CPU apa pun karena file mereka akan berfungsi di host mana pun; contoh paket “.noarch.rpm” ini adalah RPM “tzdata” yang berisi informasi tentang zona waktu dunia. Untuk memperbarui sistem Anda ke versi terbaru dari sebuah paket, Anda memerlukan RPM biner terbaru untuk itu.
Skema Penamaan RPM
Setiap paket RPM terkandung dalam satu file. Nama file memiliki beberapa bidang untuk sepenuhnya mengidentifikasi isi paket. Meskipun alat RPM itu sendiri tidak bergantung pada nama file itu sendiri, Anda harus memahami konvensi nama file untuk membantu Anda mengidentifikasi atau mengunduh paket yang tepat.
Berikut adalah contoh nama file RPM:
bash-3.1-16.1.x86_64.rpm
RPM ini untuk shell BASH (“/bin/bash”). Nama file terdiri dari beberapa bagian:
[name]-[version]-[release].[arch].rpm
dimana:
- [nama] adalah nama program atau paket. [nama] biasanya diberikan oleh pembuat program. Dalam contoh kami, pengembang memutuskan untuk menamai produk mereka "bash" karena alasan yang tampak lucu bagi mereka.
- [versi] mengidentifikasi edisi perangkat lunak mana yang terdapat dalam RPM ini. Nomor [versi] ditetapkan oleh pembuat program. Menggunakan nomor [versi] memungkinkan seseorang untuk menentukan versi sumber penulis mana yang digunakan untuk menghasilkan RPM.
- [rilis] memberikan nomor edisi file RPM itu sendiri dan bukan versi file sumber penulis. RPM yang diperbarui dapat dikeluarkan untuk menyediakan versi yang ditambal dari perangkat lunak asli pembuatnya. Patch tidak harus berasal dari pengembang asli, jadi RPM [rilis] akan bertambah, bukan [versi].
- [lengkungan] menjelaskan isi RPM dan memberitahu apakah file ini berisi sumber produk (".src.rpm"), file arsitektur-independen (".noarch.rpm"), atau file yang hanya dapat diinstal pada host tertentu ketik (".sh.rpm" hanya akan berfungsi pada prosesor tertanam STRONGHOLD).
Memasang dan Menghapus File
Biasanya hanya satu [versi] atau [rilis] RPM yang dapat diinstal sekaligus. Versi yang lebih baru biasanya diinstal menggunakan fungsi RPM “-U” (pembaruan) alih-alih fungsi RPM “-i”. Pengecualian umum untuk satu-satunya aturan RPM adalah RPM kernel. Sebuah sistem biasanya memiliki beberapa versi kernel yang diinstal; RPM memiliki daftar RPM yang mungkin memiliki beberapa versi yang diinstal. Untuk menghapus satu versi saat beberapa versi diinstal, Anda harus menentukan nama dan versi paket secara lengkap.
Pada arsitektur x86_64, adalah umum untuk menginstal paket RPM 32-bit “.i386” dan 64-bit “.x86_64” untuk mendukung aplikasi 32-bit dan 64-bit. Biasanya, RPM tidak menampilkan arsitektur paket pada kueri tetapi Anda dapat menampilkannya secara manual.
Pemasangan dan Penghapusan
- rpm -i atau –install ### (instal RPM baru; error jika sudah diinstal)
- rpm -U atau –upgrade ### (hapus RPM yang ada, jika ada; instal baru)
- rpm -F atau –menyegarkan ### (perbarui RPM hanya jika paket sudah diinstal)
- rpm -e atau –erase ### (hapus, hapus, hapus)
Opsi Umum
- Keluaran :-v (verbose – nama file), -h (hash)
- Prasyarat :–nodeps, –replacefiles, –force (HATI-HATI DI SINI !!!)
- Relokasi :–excludepath, –prefix, –relocate, –badreloc, –root
- Dukungan URL :ftp, http
Contoh:
rpm -ivh binutils-2.11.90.0.8-12.i386.rpm rpm -Uvh finger-0.17-9-i386.rpm rpm -Fvh ftp://updates.redhat.com/current/i386/*.rpm rpm -e diffutils rpm -e kernel-enterprise-2.4.9-e.12
Kiat dan Trik
– Jangan pernah menggunakan opsi “-U” untuk menginstal RPM kernel baru.
– Fungsi pembaruan “-U” pertama-tama menghapus RPM saat ini dari sistem dan kemudian mencoba menginstal RPM baru. Masalah apa pun yang mencegah pemasangan RPM baru akan membuat sistem tidak dapat di-boot. Ini bukan yang Anda inginkan, jadi selalu gunakan sakelar “-i” untuk menginstal RPM kernel.
Permintaan (Paket dan/atau Informasi)
Gunakan kueri untuk informasi tentang paket yang diinstal. Anda dapat melakukan kueri terhadap semua paket yang diinstal, atau satu paket yang diinstal. Anda juga dapat mengetahui RPM mana yang memasok file tertentu.
- rpm -q [paket] [informasi]
- rpm -qa
- rpm -q package_name
- rpm -qf [nama file]
- rpm -qp [nama file paket]
Informasi
default (nama paket)
-i :informasi umum
-l :daftar file
Contoh:
rpm -qa rpm -q kernel -i (information) rpm -q kernel -l (files contained in package) rpm -q kernel --requires (prereqs) rpm -q kernel --provides (capabilities provided by package) rpm -q kernel --scripts (scripts run during installation and removal) rpm -q kernel --changelog (revision history) rpm -q kernel -queryformat format (rpm --querytags for list of options)
Kiat dan Trik
– Saat mencari paket RPM tertentu ketika nama persisnya tidak diketahui, saluran perintah seperti:
$ rpm -qa | grep foo
umum digunakan. Versi alat RPM yang lebih baru memungkinkan ini dilakukan secara ringkas sebagai:
$ rpm -qa '*foo*'
Kueri – Verifikasi (File)
Database RPM berisi banyak atribut tentang setiap file yang diinstal oleh RPM. Anda dapat memverifikasi status file saat ini terhadap informasi yang dikatalogkan oleh RPM saat paket diinstal.
- rpm -V package_name
- rpm -Va (verifikasi semua)
- rpm -Vf (nama file)
- rpm -Vp (nama file paket)
Banyak distribusi Linux menyertakan “prelink ” RPM yang berupaya mengurangi waktu yang diperlukan untuk memulai aplikasi menggunakan pustaka bersama (sebagian besar aplikasi menggunakan setidaknya satu pustaka bersama dan berpotensi lusinan) dengan menambahkan informasi khusus langsung ke file program aplikasi.
Menambahkan informasi ini memang membuat aplikasi mulai lebih cepat, tetapi perubahan file membatalkan sebagian besar atribut file dalam database RPM, seperti tanggal modifikasi file terakhir, ukuran file, dan checksum MD5 file.
Permintaan – Verifikasi (Paket)
Berikut adalah beberapa kueri RPM untuk verifikasi paket.
- rpm -import /mnt/cdrom/RPM-GPG-KEY
- rpm -q gpg-pubkey
- rpm –checksig m4-1.4.1-11.i386.rpm
Contoh:
rpm -qf /path/filename (what package owns filename) rpm -qf /path/filename -i (what does it do) rpm -qp m4-1.4.1-11.i386.rpm -l (files in m4) rpm -qp m4-1.4.1-11.i386.rpm --requires (prereqs needed to install m4) rpm -q --whatprovides glibc.so (what package provides requisite library)