18 مثالا لاستخدام مدير الحزم YUM


محمد أحمد العيل

يتناول هذا المقال كيفية تثبيت الحزم، تحديثها، حذفها، البحث عنها وإدارة مستودعاتها Repositories على توزيعة لينكس تستخدم مدير الحزم YUM الذي تُطوّره شركة Red Hat. يُمكن استخدام الأمثلة المذكورة في هذا الدّرس، والتي جُرِّبت على خادوم Red Hat Enterprise Linux 7، لأغراض الدراسة، التحضير لشهادة متخصّصة أو لاستكشاف طرق جديدة لتثبيت الحزم والإبقاء على نظامك محدَّثا.
يجب، لكي تتبع الأمثلة المقدَّمة في هذا الدرس، أن يكون لديك فهم لأساسيات عمل الأوامر في لينكس وتوزيعة تستخدم YUM للتجربة عليها، Fedora أو Red Hat Enterprise Linux 7 على سبيل المثال.

ما هو مدير الحزم YUM؟

يُستخدَم مدير الحزم YUM (اختصار لـYellowdog Updater Modified) لإدارة البرامج المُحزَّمة بصيغة RPM (RedHat Package Manager). يمكن استخدام YUM من سطر الأوامر أو عبر واجهة رسومية. يتيح مدير الحزم YUM لمدير النظام تثبيت الحزم، تحديثها، حذفها أو البحث عنها. يُوزَّع مدير الحزم YUM حسب رخصة غنو GNU العمومية.

  1. تثبيت الحزم

    يُستخدَم الأمر install في مدير الحزم YUM على النحو التالي لتثبيت حزمة برنامج يُسمَّى Firefox. يتولّى مدير الحزم تثبيت الاعتمادات Dependencies، أي البرامج والمكتبات Libraries التي يتطلب عملُ الحزمة Firefox وجودَها (يجب أن تكون لديك صلاحيات المستخدم الجذر لتثبيت الحزم):

    [root@academy1 ~]# yum install firefox
    Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
    Resolving Dependencies
    --> Running transaction check
    ---> Package firefox.x86_64 0:45.3.0-1.el7_2 will be installed
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    =========================================================================
    Package       Arch      Version            Repository                Size
    =========================================================================
    Installing:
    firefox       x86_64    45.3.0-1.el7_2     rhel-7-server-eus-rpms    76 M
    
    Transaction Summary
    =========================================================================
    Install  1 Package
    
    Total download size: 76 M
    Installed size: 142 M
    Is this ok [y/d/N]: y
    Downloading packages:
    (...)
    Installed:
    firefox.x86_64 0:45.3.0-1.el7_2                                                                                                                     
    
    Complete!

    يطلُب الأمر أعلاه التأكيد (Is this ok) قبل البدء في تنزيل الحزمة وتثبيتها (اكتب y ثم اضغط على زرّEnter للتأكيد). استخدم الخيار y- إن كنت ترغب في تثبيت الحزم تلقائيا دون طلب التأكيد:

     
    # yum -y install firefox
    

     

  2. حذف حزمة

    يحذف الأمر التالي الحزمة firefox تماما من النظام (بما في ذلك اعتماداتها):

    [root@academy1 ~]# yum remove firefox
    Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
    Resolving Dependencies
    --> Running transaction check
    ---> Package firefox.x86_64 0:45.3.0-1.el7_2 will be erased
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ===========================================================================================
    Package          Arch              Version           Repository                    Size
    ===========================================================================================
    Removing:
    firefox          x86_64           45.3.0-1.el7_2     @rhel-7-server-eus-rpms       142 M
    
    Transaction Summary
    ===========================================================================================
    Remove  1 Package
    
    Installed size: 142 M
    Is this ok [y/N]: y
    Downloading packages:
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
    Erasing    : firefox-45.3.0-1.el7_2.x86_64                                                                                                      1/1 
    Verifying  : firefox-45.3.0-1.el7_2.x86_64                                                                                                      1/1 
    
    Removed:
    firefox.x86_64 0:45.3.0-1.el7_2                                                                                                                     
    
    Complete!

    يطلُب الأمر التأكيد قبل حذف الحزمة. استخدم الخيار y- لتعطيل طلب التأكّد كالتالي:

    # yum -y remove firefox

     

  3. تحديث حزمة

    فلنفترض أن لديك حزمة MySQL قديمة، لم تُحدَّث منذ زمن؛ وترغب في تحديثها إلى آخر إصدار. الأمر التالي يؤدي المهمة:

    # yum update mysql

     

  4. سرد قائمة بالحزم

    يُستخدَم أمر السرد list للبحث عن حزمة معيّنة عن طريق اسمها. يبحث الأمر التالي عن حزمة باسم openssh:

     
    [root@academy1 ~]# yum list openssh
    Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
    Installed Packages
    openssh.x86_64                  6.6.1p1-25.el7_2                  @rhel-7-server-eus-rpms
    

    يمكن جعل البحث أكثر دقة بذكر إصدار الحزمة إن عُرِف؛ مثلا:

    # yum list openssh-6.6.1p1

     

  5. البحث عن حزمة

    يمكن استخدام الأمر search للبحث عن حزمة لا تتذكر اسمها بالضبط؛ مثلا نبحث عن ftp:

    [root@academy1 ~]# yum search ftp
    Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
    ================== N/S matched: ftp =================================
    ftp.x86_64 : The standard UNIX FTP (File Transfer Protocol) client
    tftp.x86_64 : The client for the Trivial File Transfer Protocol (TFTP)
    tftp-server.x86_64 : The server for the Trivial File Transfer Protocol (TFTP)
    vsftpd.x86_64 : Very Secure Ftp Daemon
    curl.x86_64 : A utility for getting files from remote servers (FTP, HTTP, and others)
    lftp.i686 : A sophisticated file transfer program
    lftp.x86_64 : A sophisticated file transfer program
    wget.x86_64 : A utility for retrieving files using the HTTP or FTP protocols
    
    Name and summary matches only, use "search all" for everything.

     

  6. الحصول على معلومات عن حزمة

    استخدم الأمر info للحصول على معلومات عن حزمة؛ مثلا قبل تثبيتها:

    [root@academy1 ~]# yum info firefox
    Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
    Available Packages
    Name        : firefox
    Arch        : x86_64
    Version     : 45.3.0
    Release     : 1.el7_2
    Size        : 76 M
    Repo        : rhel-7-server-eus-rpms/7Server/x86_64
    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. سرد جميع الحزم المتوفّرة

    يسرُد الأمر list عند استخدامها دون معطيات جميع الحزم المتوفرة في المستودعات؛ وهي كثيرة؛ لذا أعد توجيه نتيجة أمر السّرد إلى الأمر less لتيسير عمليّة التصفح:

    [root@academy1 ~]# yum list | less

    استخدم المعطى installed إن أردت أن يقتصر السّرد على الحزم المثبّتة:

    [root@academy1 ~]# yum list installed | less

     

  8. العثور على حزمة انطلاقا من ملفّ

    يُستخدَم الأمر provides في مدير الحزم YUM لمعرفة الحزمة التي يتبع لها ملفّ مّا. مثلا؛ نريد معرفة الحزمة التي توفّر ملفّ الإعداد etc/httpd/conf/httpd.conf/، لذا ننفذ الأمر بالطريقة التالية:

    [root@academy1 ~]# yum provides /etc/httpd/conf/httpd.conf
    Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
    httpd-2.4.6-17.el7.x86_64 : Apache HTTP Server
    Repo        : rhel-7-server-eus-rpms
    Matched from:
    Filename    : /etc/httpd/conf/httpd.conf
    
    httpd-2.4.6-17.el7.x86_64 : Apache HTTP Server
    Repo        : rhel-7-server-rpms
    Matched from:
    Filename    : /etc/httpd/conf/httpd.conf

    يُظهر الأمر اسم الحزمة والمستودع الذي تأتي منه.

  9. التحقق من وجود تحديثات وتحديث النظام

    استخدم الأمر yum check-update لمعرفة الحزم المثبّتة التي تتوفّر لها تحديثات. أما إن أردت تحديث الحزم إلى آخر إصدار متوفّر فالأمر yum update يؤدي المهمة.

  10. سرد مجموعات الحزم

    تُجمَّع كثير من الحزم في مجموعات لتسهيل التعامل معها؛ فبدلا من تثبيت هذه الحزم الواحدة تلو الآخرى، أو كتابة أسمائها جميعا، يمكن تثبيتها دفعة واحدة عن طريق اسم المجموعة. استخدم الأمر grouplist لسرد مجموعات الحزم المتوفّرة:

    [root@academy1 ~]# yum grouplist
    Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
    Available Environment Groups:
    Minimal Install
    Infrastructure Server
    File and Print Server
    Basic Web Server
    Virtualization Host
    Server with GUI
    Installed Groups:
    Development Tools
    Graphical Administration Tools
    Legacy UNIX Compatibility
    Security Tools
    System Administration Tools
    Available Groups:
    Compatibility Libraries
    Console Internet Tools
    RT
    Scientific Support
    Smart Card Support
    System Management
    Done

     

  11. تثبيت مجموعة حزم

    استخدم الأمر groupinstall لتثبيت مجموعة حزم. يثبّت الأمر التالي مجموعة حزم File and Print Server (خادوم الطباعة وتشارك الملفات):

    [root@academy1 ~]# yum groupinstall 'File and Print Server'
    Dependencies Resolved
    
    ======================================================================================
    Package             Arch        Version               Repository                  Size
    ======================================================================================
    Installing for group install "File and Storage Server":
    cifs-utils          x86_64      6.2-7.el7             rhel-7-server-eus-rpms      84 k
    nfs4-acl-tools      x86_64      0.3.3-14.el7          rhel-7-server-eus-rpms      47 k
    targetcli           noarch      2.1.fb41-3.el7        rhel-7-server-eus-rpms      61 k
    targetd             noarch      0.7.1-1.el7           rhel-7-server-eus-rpms      48 k
    Installing for dependencies:
    PyYAML              x86_64      3.10-11.el7           rhel-7-server-eus-rpms      153 k
    libyaml             x86_64      0.1.4-11.el7_0        rhel-7-server-eus-rpms      55 k
    lvm2-python-libs    x86_64      7:2.02.130-5.el7_2.5  rhel-7-server-eus-rpms      166 k
    pyparsing           noarch      1.5.6-9.el7           rhel-7-server-eus-rpms      94 k
    python-configshell  noarch      1:1.1.fb18-1.el7      rhel-7-server-eus-rpms      67 k
    python-kmod         x86_64      0.9-4.el7             rhel-7-server-eus-rpms      57 k
    python-rtslib       noarch      2.1.fb57-3.el7        rhel-7-server-eus-rpms      88 k
    python-setproctitle x86_64      1.1.6-5.el7           rhel-7-server-eus-rpms      15 k
    python-urwid        x86_64      1.1.1-3.el7           rhel-7-server-eus-rpms      654 k
    
    Transaction Summary
    =========================================================================================
    Install  4 Packages (+9 Dependent packages)
    
    Total download size: 1.6 M
    Installed size: 5.7 M
    Is this ok [y/d/N]:

     

  12. تحديث مجموعة حزم

    يُستخدَم الأمر groupupdate على النحو التالي لتحديث مجموعة حزم سبق تثبيتها:

    [root@academy1 ~]# yum groupupdate 'File and Print Server'

     

  13. حذف مجموعة حزم

    استخدم الأمر groupremove لحذف مجموعة حزم مثبتة؛ مثلا لحذف مجموعة الحزم السابقة:

    [root@academy1 ~]#  yum groupremove 'File and Print Server'

     

  14. سرد مستودعات YUM

    يمكن سرد المستودعات المفعَّلة في مدير الحزم YUM باستخدام الأمر التالي:

    [root@academy1 ~]# yum repolist 
    Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
    repo id                                            repo name                                                                                    status
    !rhel-7-server-eus-rpms/7Server/x86_64             Red Hat Enterprise Linux 7 Server - Extended Update Support (RPMs)                           11,241
    !rhel-7-server-rpms/7Server/x86_64                 Red Hat Enterprise Linux 7 Server (RPMs)                                                     11,250
    !rhel-7-server-rt-beta-rpms/x86_64                 Red Hat Enterprise Linux for Real Time Beta (RHEL 7 Server) (RPMs)                               15
    !rhel-7-server-rt-rpms/7Server/x86_64              Red Hat Enterprise Linux for Real Time (RHEL 7 Server) (RPMs)                                   129
    !rhel-ha-for-rhel-7-server-eus-rpms/7Server/x86_64 Red Hat Enterprise Linux High Availability (for RHEL 7 Server) - Extended Update Support (RP    224
    !rhel-ha-for-rhel-7-server-rpms/7Server/x86_64     Red Hat Enterprise Linux High Availability (for RHEL 7 Server) (RPMs)                           224
    !rhel-rs-for-rhel-7-server-eus-rpms/7Server/x86_64 Red Hat Enterprise Linux Resilient Storage (for RHEL 7 Server) - Extended Update Support (RP    279
    !rhel-rs-for-rhel-7-server-rpms/7Server/x86_64     Red Hat Enterprise Linux Resilient Storage (for RHEL 7 Server) (RPMs)                           279
    repolist: 23,641

    أضف الخيار all إلى الأمر السابق إن أردت سرد جميع المستودعات بما فيها تلك غير المفعَّلة:

    [root@academy1 ~]# yum repolist  all

     

  15. تثبيت حزمة مع تحديد المستودع

    يُستخدم الخيار enablerepo-- في أمر التثبيت لتحديد المستودع الذي نريد تنزيل الحزمة منه:

    [root@academy1 ~]# yum --enablerepo=rhel-7-server-rpms install postgresql
    Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
    Resolving Dependencies
    --> Running transaction check
    ---> Package postgresql.x86_64 0:9.2.15-1.el7_2 will be installed
    --> Processing Dependency: postgresql-libs(x86-64) = 9.2.15-1.el7_2 for package: postgresql-9.2.15-1.el7_2.x86_64
    --> Processing Dependency: libpq.so.5()(64bit) for package: postgresql-9.2.15-1.el7_2.x86_64
    --> Running transaction check
    ---> Package postgresql-libs.x86_64 0:9.2.15-1.el7_2 will be installed
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    =======================================================================================
    Package           Arch          Version             Repository                    Size
    =======================================================================================
    Installing:
    postgresql        x86_64        9.2.15-1.el7_2      rhel-7-server-eus-rpms        3.0 M
    Installing for dependencies:
    postgresql-libs   x86_64        9.2.15-1.el7_2      rhel-7-server-eus-rpms        231 k
    
    Transaction Summary
    ========================================================================================
    Install  1 Package (+1 Dependent package)
    
    Total download size: 3.2 M
    Installed size: 16 M
    Is this ok [y/d/N]:

     

  16. صدفة YUM تفاعلية

    يتيح مدير الحزم YUM صدفة Shell لتنفيذ أوامر عدّة لإدارة الحزم:

    [root@academy1 ~]# yum shell
    Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
    > update
    > repolist
    repo id                                           repo name                                                                                     status
    rhel-7-server-eus-rpms/7Server/x86_64             Red Hat Enterprise Linux 7 Server - Extended Update Support (RPMs)                            11,241
    rhel-7-server-rpms/7Server/x86_64                 Red Hat Enterprise Linux 7 Server (RPMs)                                                      11,250
    rhel-7-server-rt-beta-rpms/x86_64                 Red Hat Enterprise Linux for Real Time Beta (RHEL 7 Server) (RPMs)                                15
    rhel-7-server-rt-rpms/7Server/x86_64              Red Hat Enterprise Linux for Real Time (RHEL 7 Server) (RPMs)                                    129
    rhel-ha-for-rhel-7-server-eus-rpms/7Server/x86_64 Red Hat Enterprise Linux High Availability (for RHEL 7 Server) - Extended Update Support (RPM    224
    rhel-ha-for-rhel-7-server-rpms/7Server/x86_64     Red Hat Enterprise Linux High Availability (for RHEL 7 Server) (RPMs)                            224
    rhel-rs-for-rhel-7-server-eus-rpms/7Server/x86_64 Red Hat Enterprise Linux Resilient Storage (for RHEL 7 Server) - Extended Update Support (RPM    279
    rhel-rs-for-rhel-7-server-rpms/7Server/x86_64     Red Hat Enterprise Linux Resilient Storage (for RHEL 7 Server) (RPMs)                            279
    > exit
    Leaving Shell

     

  17. عرض سجلّ أوامر YUM

    يُستخدَم الأمر history على النحو التالي لعرض قائمة بآخر أوامر YUM المنفّذة:

    [root@academy1 ~]# yum history 
    Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
    ID      | Login user               | Date and time    | Action(s)      | Altered
    -------------------------------------------------------------------------------
        14 | Mohamed ... <meyil>      | 2016-09-01 23:57 | Erase        |    1   
        13 | Mohamed ... <meyil>      | 2016-09-01 23:48 | Install        |    1   
        12 | Mohamed ... <meyil>      | 2016-08-02 23:41 | I, U            |    6   
        11 | Mohamed ... <meyil>      | 2016-07-31 23:19 | Install         |    2   
        10 | Mohamed ... <meyil>      | 2016-07-21 22:09 | Install         |    1   
        9   | Mohamed ... <meyil>      | 2016-07-21 15:29 | Install        |    4   
        8   | Mohamed ... <meyil>      | 2016-07-21 14:18 | I, U           |   75   
        7   | Mohamed ... <meyil>      | 2016-06-11 01:32 | Erase          |    1   
        6   | Mohamed ... <meyil>      | 2016-06-07 13:51 | Update         |    1   
        5   | Mohamed ... <meyil>      | 2016-06-05 02:57 | Install        |    2   
        4   | Mohamed ... <meyil>      | 2016-06-05 02:56 | Update         |    1   
        3   | Mohamed ... <meyil>      | 2016-05-28 03:16 | Install        |    1   
        2   | Mohamed ... <meyil>      | 2016-05-28 02:45 | I, U           |  190 EE
        1   | System <unset>             | 2016-05-27 20:43 | Install        | 1293   
    history list

     

  18. تنظيف تخبئة Cache مدير الحزم

    يحتفظ مدير الحزم YUM بنسخ من البيانات المتعلقة بالحزم ضمن مجلّد var/cache/yum/؛ يمكن حذف جميع هذه النسخ بتنفيذ الأمر التالي:

    [root@academy1 ~]# yum clean all
    Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
    Cleaning repos: rhel-7-server-eus-rpms rhel-7-server-rpms rhel-7-server-rt-beta-rpms rhel-7-server-rt-rpms rhel-ha-for-rhel-7-server-eus-rpms
                : rhel-ha-for-rhel-7-server-rpms rhel-rs-for-rhel-7-server-eus-rpms rhel-rs-for-rhel-7-server-rpms
    Cleaning up everything

     

ترجمة - بتصرّف - لمقال20 Linux YUM (Yellowdog Updater, Modified) Commands for Package Management لصاحبه Ravi Saive.



1 شخص أعجب بهذا


تفاعل الأعضاء


الحقيقة, أرى yum أكثر سهولة و اختصار من apt 

شارك هذا التعليق


رابط هذا التعليق
شارك على الشبكات الإجتماعية


يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن