DNF הידוע גם כ־Dandified YUM הוא מנהל חבילות לדור הבא עבור הפצות מבוססות RPM. הוא נכנס לשימוש לראשונה ב־Fedora 18 והחליפ את הכלי YUM בגרסה האחרונה של Fedora 22.
DNF פועל לשיפור נקודות התוהו ב־YUM, כגון ביצועים, שימוש בזיכרון, פתרון תלותים, מהירות ועוד. DNF מנהל חבילות באמצעות RPM, libsolv וספריית hawkey. אף על פי שהוא אינו מותקן מראש ב־CentOS ו־RHEL 7, אפשר להתקין אותו על ידי הפקודות yum, dnf ולהשתמש בו בנוסף ל־yum.
ניתן לקרוא עוד על DNF כאן:
הגרסה היציבה האחרונה של DNF היא 1.0 (בזמן כתיבת הפוסט) שיצאה ב־11 במאי 2015. היא (וכל הגרסאות הקודמות של DNF) נכתבו בעיקר בפייתון ושוחררו תחת רישיון GPL v2.
התקנה של DNF
DNF אינו זמין במאגר הברירת מחדל של RHEL/CentOS 7. בכל זאת, Fedora 22 מגיעה עם DNF מוטמעת באופן רשמי.
כדי להתקין DNF על מערכות RHEL/CentOS, יש להתקין ולהפעיל את המאגר epel-release.
# yum install epel-release OR # yum install epel-release -y
אף על פי שזה לא אתי טוב להשתמש ב-"-y" עם yum מכיוון שמומלץ לראות מה מתקין במערכת, אם זה אינו חשוב לך, ניתן להשתמש ב-"-y" עם yum כדי להתקין הכל באופן אוטומטי ללא התערבות המשתמש.
לאחר מכן, יש להתקין את חבילת ה-DNF באמצעות פקודת yum ממאגר epel-release.
# yum install dnf
לאחר ההתקנה המוצלחת של dnf, עתיד להראות לך 27 שימושים מעשיים של פקודות DNF עם דוגמאות שיסייעו לך לנהל חבילות בהפצה מבוססת RPM בצורה קלה ויעילה.
1. בדוק את גרסת DNF
בדוק את גרסת DNF המותקנת במערכת שלך.
# dnf --version
2. רשימת מאגרי DNF המופעלים
האפשרות 'repolist' עם הפקודה dnf תציג את כל המאגרים המופעלים במערכת שלך.
# dnf repolist
3. רשימת כל המאגרים המופעלים והמנוטרלים של DNF
האפשרות 'repolist all' תדפיס את כל המאגרים המופעלים/המנוטרלים במערכת שלך.
# dnf repolist all
4. רשימת כל החבילות הזמינות והמותקנות באמצעות DNF
הפקודה "dnf list" תציג את כל החבילות הזמינות מכל המאגרים והחבילות המותקנות במערכת ה-Linux שלך.
# dnf list
5. רשימת כל החבילות המותקנות באמצעות DNF
בעוד שהפקודה "dnf list" מציגה את כל החבילות הזמינות/מותקנות מכל המאגרים. עם זאת, יש לך אפשרות לרשום רק את החבילות שמותקנות באמצעות האפשרות "list installed" כפי שמוצג למטה.
# dnf list installed
6. רשימת כל החבילות הזמינות באמצעות DNF
באופן דומה, האפשרות "list available" תציג את כל החבילות הזמינות להתקנה מכל המאגרים שמופעלים.
# dnf list available
7. חיפוש אחר חבילה באמצעות DNF
אם אין לך מושג על החבילה שברצונך להתקין, במצב כזה תוכל להשתמש באפשרות 'search' עם פקודת dnf כדי לחפש את החבילה שמתאימה למילה או מחרוזת (אמרו ננו).
# dnf search nano
8. ראה מה מספק קובץ/תת-חבילה?
האפשרות של dnf "provides" מוצאת את שם החבילה שמספקת קובץ/תת-חבילה מסוים. לדוגמה, אם ברצונך לגלות מה מספק '/bin/bash' במערכת שלך?
# dnf provides /bin/bash
9. קבל פרטי חבילה באמצעות DNF
נניח שברצונך לקבל את המידע על חבילה לפני התקנתה במערכת, ניתן להשתמש במפתח "info" כדי לקבל מידע מפורט על חבילה (אמרו ננו) כמצויין למטה.
# dnf info nano
10. התקן חבילה עם DNF
כדי להתקין חבילה בשם nano, פשוט הריץ את הפקודה למטה וזה יפתור ויתקין את כל התלות הדרושות באופן אוטומטי עבור החבילה nano.
# dnf install nano
11. עדכון חבילה באמצעות DNF
ניתן לעדכן רק את החבילה הספציפית (לדוג' systemd) ולהשאיר את כל המערכת במקום.
# dnf update systemd
12. לבדוק עדכונים למערכת באמצעות DNF
ניתן לבדוק עדכונים עבור כל החבילות במערכת פשוט כך.
# dnf check-update
13. לעדכן את כל חבילות המערכת באמצעות DNF
ניתן לעדכן את כל המערכת כולל כל החבילות המותקנות עם הפקודות הבאות.
# dnf update OR # dnf upgrade
14. להסיר/למחוק חבילה באמצעות DNF
כדי להסיר חבילה לא רצויה (לדוג' nano), ניתן להשתמש במפתח "remove" או "erase" עם פקודת dnf כדי להסיר אותה.
# dnf remove nano OR # dnf erase nano
15. להסיר חבילות יתומות באמצעות DNF
החבילות שהותקנו כדי לעמוד בתלות יתכנו שיהיו בלתי שימושיות אם לא ישמשו על ידי יישומים אחרים. כדי להסיר את החבילות היתומות אנא בצע את הפקודה הבאה.
# dnf autoremove
16. להסיר חבילות מטמונות באמצעות DNF
A lot of time we encounter out-of-date headers and unfinished transactions which results into error while executing dnf. We may clean all the cached packages and headers containing remote package information simply by executing.
# dnf clean all
17. לקבלת עזרה בפקודת DNF ספציפית
ניתן לקבל עזרה לגבי פקודת dnf ספציפית (לדוג' clean) פשוט על ידי ביצוע הפקודה הבאה.
# dnf help clean
18. לרשום את כל הפקודות והאפשרויות של DNF
כדי לרשום עזרה לגבי כל הפקודות והאפשרויות של dnf הקיימות, פשוט הקלד.
# dnf help
19. להציג את היסטוריית DNF
ניתן לקרוא את ההיסטוריה של dnf כדי לראות את רשימת הפקודות שבוצעו כבר. בכך ניתן לדעת מה הותקן/הוסר עם חותמת זמן.
# dnf history
20. לרשום את כל חבילות הקבוצה
הפקודה "dnf grouplist" תדפיס את כל החבילות הזמינות או המותקנות, ואם אין כלום מוזכר, היא תציג את כל הקבוצות הידועות.
# dnf grouplist
21. התקנת חבילת קבוצה באמצעות DNF
כדי להתקין קבוצת חבילות שמגובשות יחד כחבילת קבוצה (נניה אמריקאית תוכנה לחינוך) פשוט ככה.
# dnf groupinstall 'Educational Software'
22. עדכון של חבילת קבוצה
בואו נעדכן חבילת קבוצה (אמריקאית תוכנה לחינוך) על ידי ביצוע הפקודה הבאה.
# dnf groupupdate 'Educational Software'
23. הסרת חבילת קבוצה
אנו יכולים להסיר את חבילת הקבוצה (אמריקאית תוכנה לחינוך) ככה.
# dnf groupremove 'Educational Software'
24. התקנת חבילה ממחסן מסוים
DNF מאפשרת להתקין כל חבילה מסוימת (אמריקאית phpmyadmin) ממחסן (epel) פשוט ככה,
# dnf --enablerepo=epel install phpmyadmin
25. סנכרון של חבילות המותקנות לגרסה יציבה
הפקודה "dnf distro-sync" תספק אפשרויות נדרשות לסנכרון כל החבילות המותקנות לגרסה האחרונה ויציבה ביותר הזמינה מכל מחסן מאופשר. אם לא נבחרה חבילה, כל החבילות המותקנות יתואגדו.
# dnf distro-sync
26. התקנה מחדש של חבילה
הפקודה "dnf reinstall nano" תתקין מחדש חבילה שכבר הותקנה (אמריקאית nano).
# dnf reinstall nano
27. גרסת ירידה של חבילה
האפשרות "ירידה בגרסה" תקטין את החבילה שצוינה (אמריקאית acpid) לגרסה נמוכה אם יש אפשרות לכך.
# dnf downgrade acpid
פלט לדוגמה
Using metadata from Wed May 20 12:44:59 2015 No match for available package: acpid-2.0.19-5.el7.x86_64 Error: Nothing to do.
האבחנה שלי: DNF לא ירד את החבילה כפי שצפוי. גם דווח על כך כשגיאה.
מסקנה
DNF הוא המצב העליון של מנהל החבילות YUM. זה נוטה לעשות המון עיבוד אוטומטי שאינו מתקבל הרבה על ידי מנהלי מערכת Linux מנוסים, כפי שאני מאמין. כדי לתת משל:
--skip-broken
אינו מוכר על ידי DNF ואין חלופה.- אין דבר כמו פקודת ‘resolvedep‘ אף על פי כן אתה יכול להריץ dnf provides.
- אין פקודת ‘deplist‘ כדי למצוא תלות בחבילות.
- כאשר אתה מחייב ריפוי של מאגר, זה אומר שההוצאה תחול על כל הפעולות, לא כמו yum שמחריב את המאגרים האלו רק בזמן ההתקנה והעדכונים, וכו'
כמה משתמשי Linux אינם מרוצים מהכיוון שהאקוסיסטמה של Linux נעה אליו. תחילה Systemd הסיר את מערכת ההפעלה init v ועכשיו DNF יחליפו את YUM במהירות יותר ב־Fedora 22 ולאחר מכן ב־RHEL ו־CentOS.
מה דעתך? האם ההפצות וכל האקוסיסטמה של Linux אינם מעריכים את המשתמשים שלהם ומתקדמים נגד רצונם. גם נאמר בתעשיית המחשבים – "למה לתקן, אם לא פגום?", ולא גם שיטת ההפעלה init V ולא YUM פגומים.
זהו כולו עבור כעת. אנא תעדו את דעותיכם המוערכות בתגובות למטה. תיהנו מהמאמר? עשו לייק ושתפו כדי לעזור לנו להפיץ.
Source:
https://www.tecmint.com/dnf-commands-for-fedora-rpm-package-management/