20 דוגמאות מעשיות של פקודות RPM ב-Linux

RPM (Red Hat Package Manager) הוא כלי לניהול חבילות ברירת המחדל הקוד הפתוח והמובא בשימוש רחב עבור מערכות מבוססות Red Hat כמו CentOS, Fedora, Rocky, ו-Alma Linux.

כלי ניהול חבילות rpm מאפשר למנהלי מערכות ולמשתמשים להתקין, לעדכן, להסיר, לשאול, לאמת, ולנהל חבילות תוכנה במערכות הפעלה Unix/Linux, הידועות לפני כן כקובץ .rpm, וכוללת תוכנות תוכנה מקומפלות וספריות הנדרשות על ידי החבילות.

מאמר זה מספק 20 דוגמאות של פקודות RPM שימושיות שעשויות להיות לך שימושיות. בעזרת פקודות אלו של RPM, ניתן לנהל את ההתקנה, העדכון והסרת החבילות במערכות ה-Linux שלך.

עובדות על RPM

כאן מספר עובדות על RPM (Red Hat Package Manager):

  • RPM זמין בחינם ומשוחרר תחת הרישיון הציבורי הכללי (GPL).
  • RPM שומר על מסד נתונים של כל החבילות שהותקנו, שמירת מידע זה בתיקיית /var/lib/rpm.
  • RPM משמש כאמצעי הראשי להתקנת חבילות במערכות Linux. אם התקנו חבילות באמצעות קוד מקור, RPM אינו ניהול אותן.
  • RPM פועל עם קבצי .rpm, המכילים מידע חיוני על החבילה כמו זהותה, המקור, תלותיה, פרטי הגרסה, ועוד.

מצבים בסיסיים עבור פקודת RPM

להלן המצבים הבסיסיים עבור פקודת RPM:

  • התקנה – הפקודה rpm -i מתקינה חבילה חדשה במערכת.
  • שדרוג – הפקודה rpm -U משדרגת חבילה קיימת לגרסה חדשה.
  • הסרה – הפקודה rpm -e מסירה חבילה מהמערכת.
  • שאילתה – הפקודה rpm -q מבצעת שאילתה במסד הנתונים של RPM לקבלת מידע על חבילות שהותקנו.
  • אימות – הפקודה rpm -V מאמת את שלמותן של קבצי החבילה שהותקנו.
  • רענון – הפקודה rpm -F משדרגת או מתקינה חבילה רק אם היא כבר מותקנת.
  • בניית מסד נתונים מחדש – הפקודה rpm --rebuilddb מבנה את מסד הנתונים של RPM מחדש, פותרת בעיות פגיעות במסד הנתונים.
  • ייבוא מפתח GPG – הפקודה rpm --import מייבאת מפתח GPG שמשמש לאימות חתימת החבילה.
  • שאילתת הכל – הפקודה rpm -qa מפרטת את כל החבילות שהותקנו במערכת.
  • שאילתת קבצים – הפקודה rpm -ql מפרטת את כל הקבצים שהותקנו על ידי חבילה מסוימת.
  • שאילתת תיעוד – הפקודה rpm -qd מפרטת את קבצי התיעוד שסופקו על ידי חבילה.
  • שאילתת תלות – הפקודה rpm -qR מפרטת את התלות בזמן ריצה של חבילה.
  • שאילתה מספקת – הפקודה rpm -q --provides מפרטת את היכולות שמספקת חבילה.
  • שאילתה מצריכה – הפקודה rpm -q --requires מפרטת את התלות שדרושה על ידי חבילה.

היכן למצוא חבילות RPM

אפשר למצוא חבילות RPM במספר מקומות, תלוי בהתאם להפצת הלינוקס שלך. הנה מיקומים נפוצים שבהם אפשר למצוא ולהוריד את כל חבילות ה-RPM.

אנא זכור שאתה חייב להיות משתמש root כאשר אתה מתקין חבילות בלינוקס, עם הרשאות של root אתה יכול לנהל פקודות rpm עם האפשרויות המתאימות.

1. כיצד לבדוק את חתימת חבילת RPM

תמיד בדקו את החתימה ה-PGP של החבילות לפני התקנתם במערכות לינוקס שלכם ווודאו ששלמותן ומקורן הם בסדר.

השתמשו בפקודה הבאה עם --checksig (לבדוק חתימה) אפשרות לבדוק את החתימה של חבילה בשם hardinfo.

rpm --checksig hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm: digests OK

2. כיצד להתקין חבילת RPM

כדי להתקין חבילת תוכנה RPM, השתמשו בפקודה הבאה עם -ivh אפשרות, שתתקין את חבילת ה-rpm בשם hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm במערכת לינוקס.

rpm -ivh hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:hardinfo-2.0.11-1                ################################# [100%]

הבה נפרק את הרכיבים של הפקודה לעיל:

  • -i : להתקין חבילה
  • -v : מדובר עבור תצוגה יפה יותר
  • -h: הדפס סמני חשיש (#) להצגת התקדמות ההתקנה.

3. כיצד לבדוק את התלויויות החבילה RPM לפני התקנה

נניח שאתה רוצה לבצע בדיקת תלויות לפני התקנה או עדכון חבילה. לדוגמה, השתמש בפקודה הבאה כדי לבדוק את התלויויות החבילה hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm.

הפקודה מחפשת ומציגה את התלויויות הריצה הנדרשות על ידי החבילה " hardinfo ", מה שעוזר לזהות ולהבטיח שכל התלויויות הנדרשות מוכנות לפני התקנת החבילה.

rpm -qpR hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm
 
libX11.so.6()(64bit)
libatk-1.0.so.0()(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.33)(64bit)
libc.so.6(GLIBC_2.34)(64bit)
libc.so.6(GLIBC_2.38)(64bit)
libc.so.6(GLIBC_2.7)(64bit)
libcairo-gobject.so.2()(64bit)
libcairo.so.2()(64bit)
...

בואו נפרק את הרכיבים של הפקודה למעלה:

  • -q : שאילת חבילה.
  • -p : רשימת יכולות שהחבילה מספקת.
  • -R : רשימת יכולות שעליהן תלויה החבילה.

4. כיצד להתקין חבילת RPM ללא התלויויות

כדי להתקין חבילת rpm ללא התלויויות, אפשר להשתמש באפשרות --nodeps, שתאפשר התקנת RPM חזק מאוד ללא בדיקה או פתרון התלויויות.

rpm -ivh --nodeps hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

הפקודה למעלה מתקינה חזק מאוד את חבילת ה-rpm בהתעלמות משגיאות התלויויות, אך אם הקבצים התלויים אלה חסרים, התוכנה לא תעבוד בכלל עד שתתקין אותם.

5. כיצד לבדוק חבילת RPM המותקנת

כדי לבדוק חבילת rpm המותקנת, אפשר להשתמש באפשרות -q, שתשאל ותציג מידע על גרסת החבילה המותקנת.

rpm -q hardinfo

hardinfo-2.0.11-1.x86_64

6. כיצד למצוא את המיקומים של קבצי RPM המותקנים

כדי לצפות בכל הקבצים של חבילת rpm המותקנת, השתמש ב-ql (שאילתת רשימה) עם פקודת rpm.

rpm -ql hardinfo

/usr/bin/hardinfo2
/usr/lib/.build-id
/usr/lib/.build-id/3a
/usr/lib/.build-id/53
/usr/lib/.build-id/7c
/usr/lib/.build-id/ba
/usr/lib/.build-id/e0
/usr/lib64/hardinfo2
/usr/lib64/hardinfo2/modules
/usr/lib64/hardinfo2/modules/benchmark.so
/usr/lib64/hardinfo2/modules/computer.so
/usr/lib64/hardinfo2/modules/devices.so
/usr/lib64/hardinfo2/modules/network.so
...

7. איך לרשום חבילות RPM שהותקנו לאחרונה

השתמש בפקודת rpm הבאה עם -qa (שאילתה הכוללת) וזו תרשום את כל חבילות ה-rpm שהותקנו לאחרונה.

rpm -qa --last


hardinfo-2.0.11-1.x86_64                      Mon 04 Mar 2024 01:32:14 PM IST
pipewire-pulseaudio-1.0.3-1.fc39.x86_64       Mon 04 Mar 2024 01:32:02 PM IST
pipewire-jack-audio-connection-kit-1.0.3-1.fc39.x86_64 Mon 04 Mar 2024 01:32:02 PM IST
pipewire-alsa-1.0.3-1.fc39.x86_64             Mon 04 Mar 2024 01:32:02 PM IST
libsoup-devel-2.74.3-3.fc39.x86_64            Mon 04 Mar 2024 01:32:02 PM IST
json-glib-devel-1.8.0-1.fc39.x86_64           Mon 04 Mar 2024 01:32:02 PM IST
gtk3-devel-3.24.41-1.fc39.x86_64              Mon 04 Mar 2024 01:32:02 PM IST
xdg-desktop-portal-gtk-1.15.1-1.fc39.x86_64   Mon 04 Mar 2024 01:32:01 PM IST
xdg-desktop-portal-1.18.2-1.fc39.x86_64       Mon 04 Mar 2024 01:32:01 PM IST
libcanberra-gtk3-0.30-32.fc39.x86_64          Mon 04 Mar 2024 01:32:01 PM IST
gtk3-3.24.41-1.fc39.x86_64                    Mon 04 Mar 2024 01:32:01 PM IST
...

8. איך לרשום את כל חבילות RPM המותקנות

הקלד את הפקודה הבאה כדי להדפיס את כל שמות החבילות המותקנות במערכת ה-Linux שלך.

rpm -qa

fonts-filesystem-2.0.5-12.fc39.noarch
libreport-filesystem-2.17.11-3.fc39.noarch
hunspell-filesystem-1.7.2-5.fc39.x86_64
abattis-cantarell-vf-fonts-0.301-10.fc39.noarch
fedora-gpg-keys-39-1.noarch
fedora-repos-39-1.noarch
setup-2.14.4-1.fc39.noarch
filesystem-3.18-6.fc39.x86_64
basesystem-11-18.fc39.noarch
default-fonts-core-sans-4.0-9.fc39.noarch
langpacks-fonts-en-4.0-9.fc39.noarch
...

9. איך לעדכן חבילת RPM

אם אנו רוצים לעדכן חבילת RPM, האופציה –U (עדכון) תשמש. אחד היתרונות העיקריים של השימוש באפשרות זו הוא שזו לא תעדכן רק את הגרסה העדכנית ביותר של חבילה, אלא שזו תשמור גם את הגיבוי של החבילה הישנה כך שבמקרה והחבילה המעודכנת לא תפעל, ניתן יהיה להשתמש שוב בחבילה המותקנת קודם.

rpm -Uvh hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

10. איך להסיר חבילת RPM

כדי לבטל התקנה של חבילת RPM, למשל, אנו משתמשים בשם החבילה hardinfo, לא בשם החבילה המקורי hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm. האופציה -e (למחוק) משמשת להסרת החבילה.

rpm -evv hardinfo

11. איך להסיר חבילת RPM ללא הסמכויות

האופציה --nodeps (לא לבדוק תלות) תסיר בכוח חבילת rpm מהמערכת. אך שים לב כי הסרת חבילה מסוימת עשויה לשבור אפליקציות עבודה אחרות.

rpm -ev --nodeps hardinfo

12. איך למצוא חבילת RPM של קובץ ספציפי

תנאי, יש לך רשימת קבצים ותרצה לגלות לאיזו חבילה שייכים הקבצים האלו. לדוגמה, הפקודה הבאה עם אפשרות -qf (שאילתת קובץ) תציג לך את הקובץ /usr/bin/htpasswd ששייך לחבילה httpd-tools-2.4.58-1.fc39.x86_64.

rpm -qf /usr/bin/htpasswd

httpd-tools-2.4.58-1.fc39.x86_64

13. איך לשאול מידע על חבילת RPM שמותקנת

תנאי יש לך חבילת rpm שמותקנת ותרצה לדעת מידע על החבילה. האפשרות הבאה -qi (שאילתת מידע) תדפיס את המידע הזמין על החבילה שמותקנת.

rpm -qi hardinfo

Name        : hardinfo
Version     : 2.0.11
Release     : 1
Architecture: x86_64
Install Date: Mon 04 Mar 2024 01:32:14 PM IST
Group       : unknown
Size        : 5174404
License     : GPL2+
Signature   : (none)
Source RPM  : hardinfo-2.0.11-1.src.rpm
Build Date  : Sat 02 Mar 2024 06:37:42 AM IST
Build Host  : fedora.bigbear.dk
Relocations : /usr 
Vendor      : Humanity
URL         : https://www.hardinfo2.org
Summary     : hardinfo2 built using CMake
Description :
Hardinfo2 is a small application that displays information about your hardware and operating system.  It has online benchmarking to check your machine performance against other machines.

14. לקבלת המידע של חבילת RPM לפני התקנה

הורדת חבילה מהאינטרנט ורוצה לדעת את המידע על החבילה לפני התקנה. לדוגמה, האפשרות הבאה -qip (שאילתת מידע על החבילה) תדפיס את המידע על החבילה sqlbuddy.

rpm -qip sqlbuddy

Name        : sqlbuddy                     Relocations: (not relocatable)
Version     : 1.3.3                        Vendor: (none)
Release     : 1                            Build Date: Wed 02 Nov 2011 11:01:21 PM BDT
Install Date: (not installed)              Build Host: rpm.bar.baz
Group       : Applications/Internet        Source RPM: sqlbuddy-1.3.3-1.src.rpm
Size        : 1155804                      License: MIT
Signature   : (none)
Packager    : Erik M Jacobs
URL         : http://www.sqlbuddy.com/
Summary     : SQL Buddy â Web based MySQL administration
Description : SQLBuddy is a PHP script that allows for web-based MySQL administration.

15. איך לשאול תיעוד של חבילת RPM שמותקנת

כדי לקבל את רשימת התיעוד הזמין של חבילה שמותקנת, יש להשתמש בפקודה הבאה עם האפשרות -qdf (שאילתת קובץ מסמך) תציג את דפי המדריך הקשורים לחבילת vmstat.

rpm -qdf /usr/bin/vmstat

/usr/share/doc/procps-ng/AUTHORS
/usr/share/doc/procps-ng/FAQ
/usr/share/doc/procps-ng/NEWS
/usr/share/doc/procps-ng/README.md
/usr/share/doc/procps-ng/bugs.md
/usr/share/man/man1/free.1.gz
/usr/share/man/man1/pgrep.1.gz
...

16. איך לאמת חבילת RPM

וידוא חבילה משווה את המידע של קבצים המותקנים של החבילה נגד מסד הנתונים של rpm. ה־-Vp (verify package) משמש לוידוא חבילה.

rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm

S.5....T.  c /etc/httpd/conf.d/sqlbuddy.conf

17. כיצד לוודא את כל חבילות ה־RPM

הקלד את הפקודה הבאה כדי לוודא את כל חבילות ה־rpm שמותקנות.

rpm -Va

S.5....T.  c /etc/rc.d/rc.local
.......T.  c /etc/dnsmasq.conf
.......T.    /etc/ld.so.conf.d/kernel-2.6.32-279.5.2.el6.i686.conf
S.5....T.  c /etc/yum.conf
S.5....T.  c /etc/yum.repos.d/epel.repo

18. כיצד לייבא מפתח GPG של RPM

כדי לוודא חבילות RHEL/CentOS/Fedora, עליך לייבא את מפתח ה־GPG. כדי לעשות זאת, בצע את הפקודה הבאה. זה יייבא את מפתח ה־CentOS 8 GPG.

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8

19. כיצד לרשומת את כל מפתחי ה־GPG של RPM שיובאו

כדי להדפיס את כל מפתחי ה־GPG שיובאו במערכת שלך, השתמש בפקודה הבאה.

rpm -qa gpg-pubkey*

gpg-pubkey-0608b895-4bd22942
gpg-pubkey-7fac5991-4615767f
gpg-pubkey-0f2672c8-4cd950ee
gpg-pubkey-c105b9de-4e0fd3a3
gpg-pubkey-00f97f56-467e318a
gpg-pubkey-6b8d79e6-3f49313d
gpg-pubkey-849c449f-4cb9df30

20. כיצד לבנות מחדש את מסד הנתונים של RPM שנפגם

לפעמים מסד הנתונים של rpm נפגם ומפסיק את כל הפונקציונליות של rpm ויישומים אחרים במערכת. לכן, בזמן זה אנו צריכים לבנות מחדש את מסד הנתונים של rpm ולשחזר אותו בעזרת הפקודה הבאה.

cd /var/lib
rm __db*
rpm --rebuilddb
rpmdb_verify Packages

לסיכום, הפקודות של rpm המוצגות מספקות מדריך מקיף לניהול יעיל של חבילות תוכנה על הפצות Linux המבוססות על RHEL.

Source:
https://www.tecmint.com/20-practical-examples-of-rpm-commands-in-linux/