GNU/Linux >> Belajar Linux >  >> Linux

Cara menginstal/menghapus/meminta/memperbarui paket RPM di Linux (Lembar Cheat)

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 “/var/lib/rpm ” direktori.

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 datang dalam dua kategori:sumber dan biner .

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 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

Ini 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 dengan 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 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).
Catatan :[versi] dikendalikan oleh penulis asli dan [rilis] dikendalikan oleh siapa pun yang membuat RPM.

Memahami Versi RPM

Bidang RPM [versi] dan [rilis] tidak selalu numerik dan mungkin berisi karakter lain selain angka biasa. Adalah umum untuk melihat versi "10" dan versi "10a" dari paket yang sama. Terkadang memilih versi terbaru bisa jadi rumit. Inilah cara RPM sendiri membandingkan versi dan nomor rilis secara internal:

1. Hapus awalan [name] dan akhiran “[arch].rpm”. Misalnya,:
“bash-3.1-16.1.x86_64.rpm” menjadi “3.1-16.1” dan “bash-3.1-16.5a.1.x86_64.rpm” menjadi “3.1-16.5a.1”

2. Bandingkan string yang tersisa karakter demi karakter, kiri-ke-kanan sampai angka ditemukan. Jika karakternya berbeda, karakter mana pun yang muncul kemudian dalam urutan penyusunan adalah RPM yang lebih baru.

3. Ketika sebuah digit ditemukan, ubah seluruh urutan digit menjadi satu bilangan biner. Dalam contoh kita, dua karakter "16" digabungkan menjadi nilai enam belas (16). Nilai biner yang dihasilkan dibandingkan dan nilai yang lebih besar adalah RPM yang lebih baru. Dengan demikian, RPM dengan [versi] "0010" lebih baru daripada RPM dengan [versi] "9".

Langkah 2 dan 3 diulang seperlunya sampai terjadi perbedaan.

Memasang dan Menghapus File

Catatan :Biasanya hanya satu atau dari RPM yang dapat diinstal sekaligus.

Versi yang lebih baru biasanya dipasang menggunakan "-U ” (memperbarui) fungsi RPM alih-alih fungsi “-i “Fungsi RPM. 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 --install (install new RPM; error if already installed)
# rpm -U --upgrade (delete existing RPM, if any; install new)
# rpm -F --freshen (update RPM only if package already installed)
# rpm -e --erase (remove, delete, expunge)

Opsi Umum
Output:-v (verbose – nama file), -h (hash)
Prekondisi:–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

Petunjuk :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 [packages] [information]
# rpm -qa (all installed packages)
# rpm -q package_name
# rpm -qf (filename)
# rpm -qp (package filename)

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)

Petunjuk :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 (verify all)
# rpm -Vf (filename)
# rpm -Vp (package filename)
Catatan :Banyak distribusi Linux menyertakan RPM "prelink" yang mencoba 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)

# 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)

Perbaiki basis data RPM

Alat RPM menggunakan implementasi database kustomnya sendiri untuk memuat informasinya. Terkadang database itu bisa rusak; gejala termasuk klaim bahwa paket RPM yang diinstal hilang; atau upaya untuk memperbarui RPM hanya hang. Jika basis data RPM Anda macet atau rusak, Anda dapat mencoba memperbaikinya dengan perintah ini. Proses ini tidak dijamin berhasil.

Anda harus masuk dengan hak pengguna super (alias "root") untuk langkah-langkah ini. Perintah dapat disalin dan ditempelkan langsung ke jendela terminal root.

1. Pastikan tidak ada proses RPM yang berjalan di sistem Anda. Gunakan perintah ps untuk mengidentifikasi mereka. Gunakan perintah kill untuk menghentikan proses "rpm" yang Anda temukan; "kill -9" mungkin diperlukan.

2. Hapus file kunci yang digunakan RPM:

# rm -f /var/lib/rpm/__db*

3. Jika Anda mengalami perintah “rpm” yang menggantung, coba lagi. Jika berhasil, Anda selesai. Jika tidak, lakukan Langkah #1 dan #2 lagi. Kemudian lanjutkan ke langkah berikutnya.

4. Buat cadangan basis data RPM Anda:

# cd /var/lib
# mkdir rpm-backup
# rsync -av ./rpm/. ./rpm-backup/.

5. Bangun kembali basis data RPM Anda:

# rpm -vv --rebuilddb > /tmp/rpmrebuilddb.log 2>&1

6. Coba lagi perintah RPM Anda yang gagal.


Linux
  1. Cara membuat paket rpm

  2. Cara Mengaktifkan Snap di Linux Mint 20 dan Menginstal Paket Snap

  3. Cara Menginstal, Menghapus, dan Memperbarui Perangkat Lunak di Arch Linux

  1. Cara Menginstal Paket Dari Repositori Tertentu Di Linux

  2. Cara menginstal paket perangkat lunak dengan playbook Ansible

  3. Cara Menginstal Paket RPM Di Ubuntu

  1. Cara menginstal paket pada Sistem Linux RHEL 8 / CentOS 8

  2. Cara menginstal perangkat lunak di RHEL 8

  3. Contoh perintah RPM untuk menanyakan, menginstal, menghapus, dan meningkatkan paket