Rocky Linux: memeriksa paket terpasang dengan DNF dan RPM

Untuk melihat paket terpasang di Rocky Linux, gunakan dnf list --installed atau rpm -qa. DNF mengelola informasi paket dan repositori; RPM meminta data dari basis data paket lokal dan dapat mengidentifikasi paket pemilik sebuah berkas.

Contoh DNF menggunakan antarmuka DNF 4. Periksa dnf --version dan bantuan lokal sebelum menyesuaikan perintah untuk versi lain. Kueri dasar umumnya tidak memerlukan hak administrator; pemeriksaan berkas terlindungi di bawah memakai sudo.

Periksa daftar lengkap paket yang terinstal

DNF (Dandified YUM) adalah manajer paket untuk Rocky Linux. Perintah berikut menampilkan nama dan arsitektur paket, versi, serta informasi asal yang tersedia bagi pengelola. Informasi asal itu bukan bukti independen tentang asal setiap berkas.

dnf list --installed

RPM berarti RPM Package Manager. Untuk menanyakan basis data lokal dan mengurutkan entri, gunakan perintah berikut.

rpm -qa | sort

-q memilih kueri dan -a memilih semua paket. Keluaran baku mencakup nama, versi, release, dan arsitektur, bukan hanya nama. Untuk nama saja gunakan rpm -qa --qf '%{NAME}\n' | sort; versi atau arsitektur berbeda dapat menghasilkan nama berulang.

Jika hasilnya panjang, Anda dapat menelusurinya dengan less atau menemukan hanya nama yang diperlukan dengan grep.

rpm -qa | sort | less
rpm -qa | grep -i postgresql

Tekan q untuk keluar dari less. Pencarian tanpa hasil tidak membuktikan fitur tidak ada: nama executable dapat berbeda dari nama paket. Kueri RPM juga tidak mencakup aplikasi yang dipasang di luar RPM, seperti Flatpak atau program yang dikompilasi sendiri.

Periksa status instalasi dan informasi untuk paket tertentu

Saat Anda mengetahui namanya

rpm -q mengeluarkan nama dan versi yang tepat jika paket diinstal, dan jika tidak diinstal, mengembalikan pesan kesalahan dan status keluar non-nol.

rpm -q curl
dnf info --installed curl

Ganti curl dengan paket yang dicari. Paket yang terpasang belum tentu berarti layanannya aktif atau mendengarkan jaringan; periksa layanan dan konfigurasinya secara terpisah.

Saat mencari paket dari perintah atau file

Anda dapat memeriksa paket mana yang memasang file yang ada menggunakan rpm -qf. Untuk perintah dengan tautan simbolik, lebih akurat untuk menemukan jalur sebenarnya terlebih dahulu menggunakan readlink -f dan kemudian melakukan kueri.

rpm -qf /usr/bin/curl
rpm -qf "$(readlink -f "$(command -v python3)")"

Pastikan command -v python3 menghasilkan jalur dan readlink -f dapat menyelesaikannya. Alias, fungsi shell, lingkungan virtual, atau berkas yang dipasang manual dapat memerlukan pemeriksaan lain; tidak adanya pemilik RPM tidak otomatis berarti berkas tidak valid.

Untuk menemukan paket repositori yang menyediakan perintah atau file yang belum terpasang, gunakan dnf provides.

dnf provides '*/semanage'

Tanda kutip mempertahankan pola untuk DNF agar tidak diperluas shell. Hasil bergantung pada repositori aktif dan metadata; kegagalan akses repositori berbeda dari pencarian yang selesai tanpa hasil. Pencarian ini tidak memasang paket.

Lihat versi, waktu instalasi, dan sumber secara detail

Menggunakan format kueri RPM, Anda dapat menampilkan hanya item yang dibutuhkan dalam urutan yang diinginkan. Contoh di bawah memisahkan nama paket, epoch/versi/rilis, dan arsitektur dengan tab.

rpm -qa --qf '%{NAME}\t%{EPOCHNUM}:%{VERSION}-%{RELEASE}\t%{ARCH}\n' | sort

Epoch adalah komponen numerik untuk perbandingan versi, sedangkan release menunjukkan revisi paket. \t dan \n masing-masing menandakan tab dan baris baru; lihat manual format kueri RPM.

Urutan paket yang baru saja dipasang dapat diperiksa sebagai berikut.

rpm -qa --last | head -n 30

Ini menampilkan hingga 30 entri terbaru menurut waktu instalasi versi yang saat ini terpasang, bukan otomatis waktu pertama kali program dipasang. Untuk operasi pembaruan atau penghapusan, periksa riwayat DNF.

Tujuan pemeriksaan Perintah yang direkomendasikan
Daftar lengkap paket yang terpasang dnf list --installed atau rpm -qa
Periksa paket tertentu rpm -q package-name
Detail paket dnf info --installed package-name
Paket yang memiliki sebuah berkas rpm -qf file-path
Cari paket yang menyediakan berkas dnf provides '*/filename'
Urutan instalasi terbaru rpm -qa --last

Ganti package-name, file-path, dan filename pada tabel dengan nilai yang sebenarnya.

Periksa alasan instalasi dan riwayat DNF

Paket yang diklasifikasikan userinstalled

Klasifikasi userinstalled membantu membedakan paket yang dipertahankan secara eksplisit dari dependensi. Menurut referensi DNF, hasilnya juga dapat mencakup instalasi dari grup, profil modul, atau paket yang dipasang di luar DNF.

dnf history userinstalled

Hasilnya bukan daftar pasti perintah yang dijalankan secara manual oleh seseorang; migrasi dan perubahan alasan instalasi juga memengaruhi interpretasi. Jangan menghapus paket secara otomatis hanya berdasarkan hasil ini; periksa juga layanan dan dependensi.

Riwayat transaksi DNF

Riwayat operasi instalasi, pembaruan, dan penghapusan serta informasi detail dari transaksi tertentu dapat diperiksa sebagai berikut.

dnf history
dnf history info transaction_ID

Ganti transaction_ID dengan nomor transaksi sebenarnya. Riwayat bergantung pada catatan yang tersedia dan tidak mencatat semua perubahan di luar DNF; kueri ini tidak membatalkan transaksi.

Periksa file instalasi dan perubahan konfigurasi

rpm -V membandingkan informasi yang tercatat pada saat instalasi dengan ukuran file saat ini, checksum, izin akses, pemilik, dan lain-lain. Jika perintah berhasil tanpa keluaran, tidak ada perbedaan yang dilaporkan pada item yang diperiksa. Kesalahan, berkas tak terbaca, atau paket yang tidak ada harus diselidiki; keluaran kosong bukan sertifikasi keamanan menyeluruh.

sudo rpm -V openssh-server

Manual RPM menjelaskan penanda, misalnya S untuk ukuran, 5 untuk digest dan M untuk mode. Verifikasi dapat menjalankan %verifyscript milik paket; gunakan --noscripts bila ingin mencegahnya.

Berkas konfigurasi di /etc dapat dilaporkan berbeda setelah perubahan yang memang disengaja oleh administrator. Jangan segera mengembalikan setelah melihat hasil; sebaliknya, bandingkan dengan catatan manajemen perubahan dan cadangan.

Simpan daftar paket server dalam sebuah file

Untuk pemecahan masalah atau migrasi, berguna untuk menyimpan nama, versi, dan arsitektur sebagai teks sehingga Anda dapat dengan mudah membandingkan antara dua titik waktu atau dua server.

rpm -qa --qf '%{NAME}\t%{EPOCHNUM}:%{VERSION}-%{RELEASE}\t%{ARCH}\n' | sort > installed-packages.tsv

Hasil TSV berisi tiga kolom bertab; periksa dengan less installed-packages.tsv. Operator > menimpa berkas yang sudah ada, jadi pilih nama lain jika inventaris sebelumnya perlu dipertahankan.

Daftar ini adalah catatan keadaan pada saat itu dan bukan skrip instalasi yang dapat dijalankan begitu saja di server lain. Jika versi utama Rocky Linux, repositori aktif, dan aliran modul berbeda, Anda mungkin tidak mendapatkan versi yang sama, jadi prosedur pemulihan harus diuji secara terpisah.

Masalah yang sering terjadi

  • Jika muncul pernyataan bahwa perintah tidak ada: Beberapa plugin DNF mungkin hilang pada instalasi minimal. Pertama, periksa paket yang menyediakan perintah tersebut.
  • Jika nama berbeda dari yang Anda harapkan: Nama executable dan nama paket mungkin tidak sama, jadi gunakan rpm -qf atau dnf provides.
  • Jika daftar terlihat berbeda: Pastikan kedua kueri memakai sistem atau kontainer yang sama. Filter pengecualian DNF dapat memengaruhi hasil; pada DNF 4, dnf --disableexcludes=all list --installed dapat digunakan untuk membandingkan tanpa filter tersebut. RPM menanyakan basis data lokal sedangkan DNF juga memakai konfigurasi dan metadata.
  • Jika Anda mengalami kesalahan database: Pertama, periksa apakah ada operasi paket lain yang sedang berlangsung, dan jangan sembarangan menghapus file kunci atau database.

Dokumen Referensi