في هذا المقال، سنتعلم كيفية تثبيت، تحديث، إزالة، العثور على الحزم، إدارة الحزم والمستودعات على أنظمة 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
كما هو موضح في المثال أدناه.
# 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/