במאמר זה, נלמד כיצד להתקין, לעדכן, להסיר, למצוא חבילות, לנהל חבילות ומאגרים במערכות 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 כפי שמוצג בדוגמה למעלה.
# 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/