GNU/Linux >> Belajar Linux >  >> Linux

Cara menanyakan informasi paket dengan manajer paket rpm

RPM adalah akronim rekursif untuk RPM Package Manager:ini adalah manajer paket tingkat rendah default di beberapa distribusi Linux yang paling terkenal dan paling banyak digunakan, seperti Fedora, Red Hat Enterprise Linux, CentOS, OpenSUSE dan turunannya. Perangkat lunak ini, seperti yang Anda harapkan, gratis dan open source; ketika dipanggil dengan -q opsi ini dapat digunakan untuk paket kueri untuk mengambil informasi spesifik, seperti dependensi, rekomendasi, file, dll. Dalam tutorial ini kita mempelajari cara melakukan kueri semacam itu.

Dalam tutorial ini Anda akan belajar :

  • Cara menjalankan rpm dalam mode “permintaan”
  • Cara mendapatkan informasi umum tentang sebuah paket
  • Cara membaca log perubahan paket
  • Cara membuat daftar file yang disediakan oleh sebuah paket
  • Cara membuat daftar skrip yang digunakan oleh sebuah paket
  • Cara membuat daftar dependensi dan rekomendasi paket
  • Cara membuat daftar paket yang dianggap usang oleh rpm

Cara menanyakan informasi paket dengan manajer paket rpm

Persyaratan dan konvensi perangkat lunak yang digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
Kategori Persyaratan, Konvensi, atau Versi Perangkat Lunak yang Digunakan
Sistem Distribusi yang menggunakan manajer paket rpm
Perangkat Lunak Manajer paket rpm
Lainnya Tidak ada
Konvensi # – mengharuskan perintah-linux yang diberikan untuk dieksekusi dengan hak akses root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo command
$ – mengharuskan perintah-linux yang diberikan untuk dieksekusi sebagai pengguna biasa yang tidak memiliki hak istimewa

Memanggil rpm dalam mode kueri

Manajer paket rpm dapat digunakan untuk mengubah status sistem, karena dapat digunakan untuk menginstal, meningkatkan dan menghapus paket (ketika dipanggil dengan -i , -U dan e opsi, masing-masing), atau dapat berjalan dalam mode "kueri", tanpa memerlukan hak administratif, ketika diluncurkan dengan -q opsi, yang merupakan versi pendek dari --query .

Jika sebuah paket sudah terinstal di sistem kami, yang perlu kami lakukan hanyalah menyebutkan namanya; jika tidak, dan kami ingin menanyakan .rpm yang diunduh file, misalnya, kita harus menggunakan -p (--package ) opsi, dan berikan jalur file sebagai argumen. Mari kita lihat beberapa contoh praktis tentang cara mengambil informasi tentang sebuah paket.

Mendapatkan informasi umum tentang sebuah paket

Salah satu hal dasar yang mungkin ingin kita lakukan ketika menangani paket rpm adalah menampilkan informasi umum tentangnya. Untuk menyelesaikan tugas ini, yang harus kita lakukan adalah menggunakan -i (atau --info ) opsi saat menjalankan rpm dalam mode kueri. Demi contoh ini kami akan bekerja dengan paket "gimp", yang sudah diinstal di sistem. Dalam hal ini kita akan menjalankan:

$ rpm -qi gimp

Segera setelah kami menjalankan perintah, kami menerima output yang mirip dengan berikut ini, yang mencakup informasi, seperti deskripsi perangkat lunak, versinya, arsitektur, tanggal pemasangan, ukuran, dll:

Name        : gimp
Epoch       : 2
Version     : 2.10.24
Release     : 1.fc34
Architecture: x86_64
Install Date: Mon 21 Jun 2021 11:26:33 AM CEST
Group       : Unspecified
Size        : 109267268
License     : GPLv3+ and GPLv3
Signature   : RSA/SHA256, Sat 03 Apr 2021 02:00:02 AM CEST, Key ID 1161ae6945719a39
Source RPM  : gimp-2.10.24-1.fc34.src.rpm
Build Date  : Sat 03 Apr 2021 01:13:55 AM CEST
Build Host  : buildhw-x86-11.iad2.fedoraproject.org
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://www.gimp.org/
Bug URL     : https://bugz.fedoraproject.org/gimp
Summary     : GNU Image Manipulation Program
Description :
GIMP (GNU Image Manipulation Program) is a powerful image composition and
editing program, which can be extremely useful for creating logos and other
graphics for web pages. GIMP has many of the tools and filters you would expect
to find in similar commercial offerings, and some interesting extras as well.
GIMP provides a large image manipulation toolbox, including channel operations
and layers, effects, sub-pixel imaging and anti-aliasing, and conversions, all
with multi-level undo.

Membaca log perubahan paket

Seperti yang kita ketahui, changelog adalah log di mana semua perubahan yang dibuat pada proyek dilaporkan dan diurutkan secara kronologis. Jika yang ingin kita lakukan adalah membaca changelog dari sebuah paket rpm, kita harus memanggil manajer paket rpm dalam mode query dan menggunakan --changelog pilihan. Mari kita lihat contohnya:

$ rpm -q --changelog gimp

Berikut adalah output (terpotong) dari perintah di atas pada Fedora versi terbaru (34):

[...]
 Thu Jan 09 2020 Josef Ridky <[email protected]> - 2:2.10.14-3
- Demodularizing of gimp (#1772469)

* Mon Nov 18 2019 Kalev Lember <[email protected]> - 2:2.10.14-2
- Rebuild for libmypaint 1.4.0

* Mon Nov 04 2019 Kalev Lember <[email protected]> - 2:2.10.14-1
- Update to 2.10.14

* Tue Aug 20 2019 Josef Ridky <[email protected]> - 2:2.10.12-3
- Fix default configuration for font folders (#1706653)

* Wed Jul 31 2019 Josef Ridky <[email protected]> - 2:2.10.12-2
- Fix issue with reading SVG files (#1715882)

* Thu Jul 25 2019 Fedora Release Engineering <[email protected]> - 2:2.10.12-1.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

* Thu Jun 13 2019 Kalev Lember <[email protected]> - 2:2.10.12-1
- Update to 2.10.12

* Thu Apr 11 2019 Richard Shaw <[email protected]> - 2:2.10.10-2
- Rebuild for OpenEXR 2.3.0.

* Mon Apr 08 2019 Josef Ridky <[email protected]> - 2:2.10.10-1
- New upstream release 2.10.10 (#1697119)

Mendaftar semua file yang disediakan oleh sebuah paket

Ketika kami menginstal sebuah paket di sistem kami, serangkaian file disalin di tempat yang sesuai, sebagaimana dimaksud oleh pengelolanya. Jika kita ingin membuat daftar file yang disediakan oleh sebuah paket yang sudah terinstal di sistem kita, kita dapat memanggil manajer paket
rpm dalam mode kueri dengan -l opsi (kependekan dari --list ):

$ rpm -ql gimp

Seperti yang kami katakan sebelumnya, jika kami ingin menanyakan paket sebelum kita menginstalnya, sebagai gantinya, kita harus menambahkan -p opsi, dan berikan jalur paket sebagai argumen:

$ rpm -qlp /path/to/package.rpm

Perintah di atas akan menghasilkan hasil sebagai berikut:

/etc/gimp
/etc/gimp/2.0
/etc/gimp/2.0/controllerrc
/etc/gimp/2.0/gimprc
/etc/gimp/2.0/gtkrc
/etc/gimp/2.0/menurc
/etc/gimp/2.0/sessionrc
/etc/gimp/2.0/templaterc
/etc/gimp/2.0/toolrc
/etc/gimp/2.0/unitrc
/usr/bin/gimp
/usr/bin/gimp-2.10
/usr/bin/gimp-console
/usr/bin/gimp-console-2.10
/usr/bin/gimp-test-clipboard-2.0
[...]

Mendaftar skrip yang digunakan oleh sebuah paket

Beberapa .rpm paket menggunakan serangkaian skrip atau "scriptlet" yang dijalankan sebagai bagian dari proses instalasi atau penghapusan. Jika kita ingin melihatnya, kita dapat melakukannya dengan memanggil rpm dalam mode query dengan --scripts
pilihan. Demi contoh ini, kami akan memeriksa skrip yang disertakan dalam systemd paket:

$ rpm -q --scripts systemd

Di bawah ini kita dapat melihat output (terpotong) dari perintah di atas, ketika diluncurkan pada Fedora 34. Seperti yang Anda lihat, sebelum skrip itu sendiri, kita dapat melihat konteks penggunaannya juga dilaporkan (misalnya "pra-instal" atau "pasca-instal" ”):

preinstall scriptlet (using /bin/sh):
getent group cdrom &>/dev/null || groupadd -r -g 11 cdrom &>/dev/null || :
getent group utmp &>/dev/null || groupadd -r -g 22 utmp &>/dev/null || :
getent group tape &>/dev/null || groupadd -r -g 33 tape &>/dev/null || :
getent group dialout &>/dev/null || groupadd -r -g 18 dialout &>/dev/null || :
getent group input &>/dev/null || groupadd -r input &>/dev/null || :
getent group kvm &>/dev/null || groupadd -r -g 36 kvm &>/dev/null || :
getent group render &>/dev/null || groupadd -r render &>/dev/null || :
getent group systemd-journal &>/dev/null || groupadd -r -g 190 systemd-journal 2>&1 || :
[...]

Opsi serupa lainnya adalah --triggers yang digunakan untuk menampilkan skrip pemicu terkandung dalam sebuah paket. Apa itu skrip pemicu? Mereka pada dasarnya adalah skrip yang dieksekusi (dipicu) ketika status paket lain
berubah:

$ rpm -q --triggers systemd

Dengan perintah di atas kita dapat memvisualisasikan skrip pemicu yang terdapat di systemd paket:

triggerun scriptlet (using /bin/sh) -- systemd < 246.1-1
# This is for upgrades from previous versions before systemd-resolved became the default.
systemctl --no-reload preset systemd-resolved.service &>/dev/null || :

if systemctl -q is-enabled systemd-resolved.service &>/dev/null; then
  systemctl -q is-enabled NetworkManager.service 2>/dev/null && \
  ! test -L /etc/resolv.conf 2>/dev/null && \
  ! mountpoint /etc/resolv.conf &>/dev/null && \
  grep -q 'Generated by NetworkManager' /etc/resolv.conf 2>/dev/null && \
  echo -e '/etc/resolv.conf was generated by NetworkManager.\nRemoving it to let systemd-resolved manage this file.' && \
  mv -v /etc/resolv.conf /etc/resolv.conf.orig-with-nm && \
  ln -sv ../run/systemd/resolve/stub-resolv.conf /etc/resolv.conf 2>/dev/null || :

  systemctl start systemd-resolved.service &>/dev/null || :
fi
triggerpostun scriptlet (using /bin/sh) -- systemd < 247.3-2
# This is for upgrades from previous versions before oomd-defaults is available.
# We use %triggerpostun here because rpm doesn't allow a second %triggerun with
# a different package version.
systemctl --no-reload preset systemd-oomd.service &>/dev/null || :

Mencantumkan dependensi dan rekomendasi paket

Tugas umum lainnya yang mungkin ingin kita lakukan adalah menemukan dependensi dari paket rpm. Opsi yang memungkinkan kita menyelesaikan tugas adalah -R (kependekan dari --requires ). Untuk memeriksa dependensi paket "gimp", misalnya, kita akan menjalankan perintah berikut:

$ rpm -qR gimp

Setelah kita menjalankan perintah, daftar dependensi perangkat lunak akan dilaporkan di layar:

/usr/bin/python2
babl(x86-64) >= 0.1.78
config(gimp) = 2:2.10.24-1.fc34
fontconfig >= 2.12.4
freetype >= 2.1.7
gegl04(x86-64) >= 0.4.30
gimp-libs(x86-64) = 2:2.10.24-1.fc34
glib2 >= 2.56.2
gtk2 >= 2.24.32
hicolor-icon-theme
[...]

Jika alih-alih -R opsi yang kami gunakan --recommends kita dapat memperoleh daftar perangkat lunak yang tidak sepenuhnya dibutuhkan oleh paket yang kita minta, tetapi direkomendasikan olehnya:

$ rpm -q --recommends gimp

Mendaftarkan paket-paket yang dianggap usang oleh rpm

Dengan cara yang sama dari contoh di atas, kita dapat melihat paket apa yang diberikan usang oleh paket yang kita query. Yang harus kita lakukan adalah menggunakan --obsoletes pilihan:

$ rpm -q --obsoletes gimp

Berikut adalah output dari perintah pada contoh:

gimp < 2:2.10.24-1.fc34
gimp-help-browser < 2:2.10.24-1.fc34
gimp-unstable < 2:2.10

Kesimpulan

Rpm adalah pengelola paket yang sangat kuat:dalam tutorial ini kita melihat cara menjalankannya dalam mode "permintaan". Kami melihat bagaimana mendapatkan informasi umum tentang sebuah paket, seperti versi dan arsitekturnya, cara membaca changelog paket, cara membuat daftar semua file yang akan diinstal oleh sebuah paket, cara melihat "scriptlet" yang digunakan sebagai bagian dari manajemen paket dan cara mendapatkan daftar dependensi dan rekomendasi paket.


Linux
  1. Cara membuat paket rpm

  2. Cara Menggunakan Pengelola Paket XBPS di Void Linux

  3. Cara menghapus semua paket dengan DNF yang tidak bergantung pada paket lain

  1. Cara membuat paket RPM Linux

  2. Cara Menginstal Paket RPM di Debian 11 Bullseye

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

  1. Cara Menginstal Paket RPM di Ubuntu

  2. Cara Mendaftar Paket yang Terinstal di CentOS dengan Yum atau RPM

  3. Bagaimana cara mengekstrak isi rpm?