20 أمر YUM لنظام Linux (Yellowdog Updater، Modified) لإدارة الحزم

في هذا المقال، سنتعلم كيفية تثبيت، تحديث، إزالة، العثور على الحزم، إدارة الحزم والمستودعات على أنظمة Linux باستخدام أداة YUM (Yellowdog Updater Modified) التي طورتها RedHat.

الأوامر العملية المعروضة في هذا المقال تم اختبارها على خادم RHEL 8 الخاص بنا، يمكنك استخدام هذه المواد لأغراض الدراسة، شهادات RHEL، أو مجرد استكشاف طرق تثبيت حزم جديدة والحفاظ على نظامك محدثًا.

الشرط الأساسي لهذا المقال هو أن يكون لديك فهم أساسي للأوامر ونظام تشغيل Linux يعمل، حيث يمكنك استكشاف وممارسة جميع الأوامر المدرجة أدناه.

ما هو YUM؟

YUM (Yellowdog Updater Modified) هو أداة إدارة حزم مفتوحة المصدر على سطر الأوامر وأداة مبنية على واجهة رسومية لأنظمة Linux المعتمدة على RPM (RedHat Package Manager).

يتيح للمستخدمين ومديري النظام تثبيت وتحديث وإزالة أو البحث عن حزم البرمجيات على النظام. تم تطويره وإصداره بواسطة سيث فيدال بموجب 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

استخدم وظيفة list للبحث عن الحزمة المحددة بالاسم. على سبيل المثال للبحث عن حزمة تسمى 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 “، قم فقط بتنفيذ الأمر التالي.

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