20 פקודות Linux YUM (Yellowdog Updater, Modified) שימושיות לניהול חבילות

במאמר זה, נלמד כיצד להתקין, לעדכן, להסיר, למצוא חבילות, לנהל חבילות ומאגרים במערכות Linux באמצעות הכלי YUM (Yellowdog Updater Modified) שפותח על ידי RedHat.

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

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

מהו YUM?

YUM (Yellowdog Updater Modified) הוא כלי לניהול חבילות מבוסס מסדיר של קו פקודה וגרפי פתוח למערכות Linux המבוססות על RPM (RedHat Package Manager).

הוא מאפשר למשתמשים ולמנהלי מערכות להתקין, לעדכן, להסיר או לחפש חבילות תוכנה במערכת. פותח ושוחרר על ידי Seth Vidal תחת GPL (רישיון ציבורי כללי) כקוד פתוח, שמשמעו שכל אחד יכול להוריד ולגשת לקוד כדי לתקן באגים ולפתח חבילות מותאמות.

YUM משתמש במספר רב של מאגרי צד שלישי כדי להתקין חבילות באופן אוטומטי על ידי פתרון בעיות התלות שלהן.

עדכון: פקודת yum הוחלפה על ידי פקודת dnf, שהיא גרסת הדור הבא של yum ומוכרת כהחלפה ל-YUM ברוב ההפצות החדשות של RPM.

1. להתקין חבילה עם YUM

כדי להתקין חבילה בשם Firefox, רץ פשוט את הפקודה הבאה והיא תמצא ותתקין באופן אוטומטי את כל התלות הנדרשות עבור Firefox.

# yum install firefox
Loaded plugins: fastestmirror
Dependencies Resolved

================================================================================================
 Package                    Arch        Version                    Repository            Size        
================================================================================================
Updating:
firefox                        i686        10.0.6-1.el6.centos     updates             20 M
Updating for dependencies:
 xulrunner                     i686        10.0.6-1.el6.centos     updates             12 M

Transaction Summary
================================================================================================
Install       0 Package(s)
Upgrade       2 Package(s)

Total download size: 32 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): firefox-10.0.6-1.el6.centos.i686.rpm                                |  20 MB   01:10
(2/2): xulrunner-10.0.6-1.el6.centos.i686.rpm                              |  12 MB   00:52
------------------------------------------------------------------------------------------------
Total                                                           63 kB/s |  32 MB   02:04

Updated:
  firefox.i686 0:10.0.6-1.el6.centos

Dependency Updated:
  xulrunner.i686 0:10.0.6-1.el6.centos

Complete!

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

# yum -y install firefox

2. הסרת חבילה באמצעות YUM

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

# yum remove firefox
Loaded plugins: fastestmirror
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package firefox.i686 0:10.0.6-1.el6.centos set to be erased
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================
 Package                    Arch        Version                        Repository            Size        
====================================================================================================
Removing:
 firefox                    i686        10.0.6-1.el6.centos            @updates              23 M

Transaction Summary
====================================================================================================
Remove        1 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)

Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing        : firefox-10.0.6-1.el6.centos.i686                                                                                                                          1/1

Removed:
  firefox.i686 0:10.0.6-1.el6.centos

Complete!

באותו אופן, הפקודה לעיל תבקש אישור לפני הסרת חבילה. כדי לבטל את ההנחיה לאישור פשוט הוסף את האופציה -y כמתואר להלן.

# yum -y remove firefox

3. עדכון חבילה באמצעות YUM

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

# yum update mysql
Loaded plugins: fastestmirror
Dependencies Resolved

============================================================================================================
 Package            Arch                Version                    Repository                    Size
============================================================================================================
Updating:
 vsftpd             i386                2.0.5-24.el5_8.1           updates                       144 k

Transaction Summary
============================================================================================================
Install       0 Package(s)
Upgrade       1 Package(s)

Total size: 144 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating       : vsftpd                                                                     1/2
  Cleanup        : vsftpd                                                                     2/2

Updated:
  vsftpd.i386 0:2.0.5-24.el5_8.1

Complete!

4. רשימת חבילה באמצעות YUM

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

# yum list openssh
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.neu.edu.cn
 * epel: mirror.neu.edu.cn
 * extras: mirror.neu.edu.cn
 * rpmforge: mirror.nl.leaseweb.net
 * updates: mirror.nus.edu.sg
Installed Packages
openssh.i386                                       4.3p2-72.el5_6.3                                                                      installed
Available Packages                                 4.3p2-82.el5                                                                          base

כדי להקל על החיפוש שלך, הגדר שמות חבילות עם גירסתם, במידה ואתה מכיר. לדוגמה, כדי לחפש גרסה ספציפית OpenSSH-4.3p2 של החבילה, השתמש בפקודה.

# yum list openssh-4.3p2

[ אולי תאהב גם: כיצד לאבטח ולהתקין את שרת OpenSSH ]

5. חיפוש חבילה באמצעות YUM

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

# yum search vsftpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.neu.edu.cn
 * epel: mirror.neu.edu.cn
 * extras: mirror.neu.edu.cn
 * rpmforge: mirror.nl.leaseweb.net
 * updates: ftp.iitm.ac.in
============================== Matched: vsftpd ========================
ccze.i386 : A robust log colorizer
pure-ftpd-selinux.i386 : SELinux support for Pure-FTPD
vsftpd.i386 : vsftpd - Very Secure Ftp Daemon

6. השגת מידע על חבילה באמצעות YUM

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

# yum info firefox
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.neu.edu.cn
 * epel: mirror.neu.edu.cn
 * extras: mirror.neu.edu.cn
 * rpmforge: mirror.nl.leaseweb.net
 * updates: ftp.iitm.ac.in
Available Packages
Name       : firefox
Arch       : i386
Version    : 10.0.6
Release    : 1.el5.centos
Size       : 20 M
Repo       : updates
Summary    : Mozilla Firefox Web browser
URL        : http://www.mozilla.org/projects/firefox/
License    : MPLv1.1 or GPLv2+ or LGPLv2+
Description: Mozilla Firefox is an open-source web browser, designed for standards
           : compliance, performance and portability.

7. רשימת כל החבילות הזמינות באמצעות YUM

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

# yum list | less

8. רשימת כל החבילות המותקנות באמצעות YUM

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

# yum list installed | less

9. פונקציית Yum Provides

פונקציית מספק של Yum משמשת למציאת איזו חבילה שייכת קובץ ספציפי. לדוגמה, אם אתה רוצה לדעת את שמה של החבילה שיש לה את /etc/httpd/conf/httpd.conf.

# yum provides /etc/httpd/conf/httpd.conf
Loaded plugins: fastestmirror
httpd-2.2.3-63.el5.centos.i386 : Apache HTTP Server
Repo        : base
Matched from:
Filename    : /etc/httpd/conf/httpd.conf

httpd-2.2.3-63.el5.centos.1.i386 : Apache HTTP Server
Repo        : updates
Matched from:
Filename    : /etc/httpd/conf/httpd.conf

httpd-2.2.3-65.el5.centos.i386 : Apache HTTP Server
Repo        : updates
Matched from:
Filename    : /etc/httpd/conf/httpd.conf

httpd-2.2.3-53.el5.centos.1.i386 : Apache HTTP Server
Repo        : installed
Matched from:
Other       : Provides-match: /etc/httpd/conf/httpd.conf

10. בדיקת עדכונים זמינים באמצעות Yum

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

# yum check-update

11. עדכון מערכת באמצעות Yum

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

# yum update

12. רשימת כל החבילות הקבוצתיות הזמינות

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

# yum grouplist
Installed Groups:
   Administration Tools
   DNS Name Server
   Dialup Networking Support
   Editors
   Engineering and Scientific
   FTP Server
   Graphics
   Java Development
   Legacy Network Server
Available Groups:
   Authoring and Publishing
   Base
   Beagle
   Cluster Storage
   Clustering
   Development Libraries
   Development Tools
   Eclipse
   Educational Software
   KDE (K Desktop Environment)
   KDE Software Development

13. התקנת חבילות קבוצה

כדי להתקין קבוצה מסוימת של חבילות, אנו משתמשים באפשרות כמו groupinstall. לדוגמה, כדי להתקין " MySQL Database ", פשוט הפעל את הפקודה הבאה.

# yum groupinstall 'MySQL Database'
Dependencies Resolved

=================================================================================================
Package								Arch      Version			 Repository        Size
=================================================================================================
Updating:
 unixODBC                           i386      2.2.11-10.el5      base              290 k
Installing for dependencies:
 unixODBC-libs                      i386      2.2.11-10.el5      base              551 k

Transaction Summary
=================================================================================================
Install       1 Package(s)
Upgrade       1 Package(s)

Total size: 841 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : unixODBC-libs	1/3
  Updating       : unixODBC         2/3
  Cleanup        : unixODBC         3/3

Dependency Installed:
  unixODBC-libs.i386 0:2.2.11-10.el5

Updated:
  unixODBC.i386 0:2.2.11-10.el5

Complete!

14. עדכון חבילות קבוצה

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

# yum groupupdate 'DNS Name Server'

Dependencies Resolved
================================================================================================================
 Package			Arch	        Version				Repository           Size
================================================================================================================
Updating:
 bind                           i386            30:9.3.6-20.P1.el5_8.2          updates              981 k
 bind-chroot                    i386            30:9.3.6-20.P1.el5_8.2          updates              47 k
Updating for dependencies:
 bind-libs                      i386            30:9.3.6-20.P1.el5_8.2          updates              864 k
 bind-utils                     i386            30:9.3.6-20.P1.el5_8.2          updates              174 k

Transaction Summary
================================================================================================================
Install       0 Package(s)
Upgrade       4 Package(s)

Total size: 2.0 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating       : bind-libs            1/8
  Updating       : bind                 2/8
  Updating       : bind-chroot          3/8
  Updating       : bind-utils           4/8
  Cleanup        : bind                 5/8
  Cleanup        : bind-chroot          6/8
  Cleanup        : bind-utils           7/8
  Cleanup        : bind-libs            8/8

Updated:
  bind.i386 30:9.3.6-20.P1.el5_8.2                  bind-chroot.i386 30:9.3.6-20.P1.el5_8.2

Dependency Updated:
  bind-libs.i386 30:9.3.6-20.P1.el5_8.2             bind-utils.i386 30:9.3.6-20.P1.el5_8.2

Complete!

15. הסרת חבילות קבוצה

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

# yum groupremove 'DNS Name Server'

Dependencies Resolved

===========================================================================================================
 Package                Arch              Version                         Repository          Size
===========================================================================================================
Removing:
 bind                   i386              30:9.3.6-20.P1.el5_8.2          installed           2.1 M
 bind-chroot            i386              30:9.3.6-20.P1.el5_8.2          installed           0.0

Transaction Summary
===========================================================================================================
Remove        2 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)

Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing        : bind                                                   1/2
warning: /etc/sysconfig/named saved as /etc/sysconfig/named.rpmsave
  Erasing        : bind-chroot                                            2/2

Removed:
  bind.i386 30:9.3.6-20.P1.el5_8.2                                        bind-chroot.i386 30:9.3.6-20.P1.el5_8.2

Complete!

16. רשימת מאגרי Yum מופעלים

כדי לרשום את כל מאגרי Yum המופעלים במערכת שלך, השתמש באפשרות הבאה.

# yum repolist

repo id                     repo name                                            status
base                        CentOS-5 - Base                                      enabled:  2,725
epel                        Extra Packages for Enterprise Linux 5 - i386         enabled:  5,783
extras                      CentOS-5 - Extras                                    enabled:    282
mod-pagespeed               mod-pagespeed                                        enabled:      1
rpmforge                    RHEL 5 - RPMforge.net - dag                          enabled: 11,290
updates                     CentOS-5 - Updates                                   enabled:    743
repolist: 20,824

16. רשימת כל מאגרי Yum מופעלים ולא מופעלים

הפקודה הבאה תציג את כל מאגרי ה-yum המופעלים והלא מופעלים במערכת.

# yum repolist all

repo id                     repo name                                            status
C5.0-base                   CentOS-5.0 - Base                                    disabled
C5.0-centosplus             CentOS-5.0 - Plus                                    disabled
C5.0-extras                 CentOS-5.0 - Extras                                  disabled
base                        CentOS-5 - Base                                      enabled:  2,725
epel                        Extra Packages for Enterprise Linux 5 - i386         enabled:  5,783
extras                      CentOS-5 - Extras                                    enabled:    282
repolist: 20,824

17. התקנת חבילה ממאגר ספציפי

כדי להתקין חבילה מסוימת ממאגר מופעל או לא מופעל, עליך להשתמש ב---enablerepo אפשרות בפקודת yum שלך. לדוגמה, כדי ל-התקן את PhpMyAdmin, פשוט הפעל את הפקודה.

# yum --enablerepo=epel install phpmyadmin

Dependencies Resolved
=============================================================================================
 Package                Arch           Version            Repository           Size
=============================================================================================
Installing:
 phpMyAdmin             noarch         3.5.1-1.el6        epel                 4.2 M

Transaction Summary
=============================================================================================
Install       1 Package(s)

Total download size: 4.2 M
Installed size: 17 M
Is this ok [y/N]: y
Downloading Packages:
phpMyAdmin-3.5.1-1.el6.noarch.rpm                       | 4.2 MB     00:25
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : phpMyAdmin-3.5.1-1.el6.noarch             1/1
  Verifying  : phpMyAdmin-3.5.1-1.el6.noarch             1/1

Installed:
  phpMyAdmin.noarch 0:3.5.1-1.el6

Complete!

18. פסקול יום אינטראקטיבי

כלי Yum מספק פסקול מותאם שבו ניתן לבצע מספר פקודות.

# yum shell
Loaded plugins: fastestmirror
Setting up Yum Shell
> update httpd
Loading mirror speeds from cached hostfile
 * base: mirrors.sin3.sg.voxel.net
 * epel: ftp.riken.jp
 * extras: mirrors.sin3.sg.voxel.net
 * updates: mirrors.sin3.sg.voxel.net
Setting up Update Process
>

19. נקות את מטמון Yum

כברירת מחדל, yum שומר את כל נתוני החבילה של המאגרים המופעלים ב/var/cache/yum/ עם תיקייה משנה עבור כל אחת מהן, כדי לנקות את כל הקבצים המטומטמים מהמאגרים המופעלים, עליך להפעיל את הפקודה הבאה באופן קבוע כדי לנקות את כל המטמון ולוודא שאין שום שטח מיותר שמשתמש בו. אנו לא רוצים לספק את הפלט של הפקודה הבאה, כי אנו מעדיפים לשמור על הנתונים המטומטמים כפי שהם.

# yum clean all

20. צפייה בהיסטוריה של Yum

כדי לצפות בכל העיסוקים הקודמים של הפקודת yum, פשוט השתמש בפקודה הבאה.

# yum history

Loaded plugins: fastestmirror
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    10 | root               | 2012-08-11 15:19 | Install        |    3
     9 | root               | 2012-08-11 15:11 | Install        |    1
     8 | root               | 2012-08-11 15:10 | Erase          |    1 EE
     7 | root               | 2012-08-10 17:44 | Install        |    1
     6 | root               | 2012-08-10 12:19 | Install        |    2
     5 | root               | 2012-08-10 12:14 | Install        |    3
     4 | root               | 2012-08-10 12:12 | I, U           |   13 E<
     3 | root               | 2012-08-09 13:01 | Install        |    1 >
     2 | root               | 2012-08-08 20:13 | I, U           |  292 EE
     1 | System            | 2012-08-08 17:15 | Install        |  560
history list

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

Source:
https://www.tecmint.com/20-linux-yum-yellowdog-updater-modified-commands-for-package-mangement/