27 คำสั่ง 'DNF' (Fork of Yum) สำหรับการจัดการแพ็คเกจ RPM ใน Linux
DNF หรือที่รู้จักในชื่อ Dandified YUM คือตัวจัดการแพ็คเกจรุ่นถัดไปสำหรับการจัดจำหน่ายตาม RPM เปิดตัวครั้งแรกใน Fedora 18 และได้เข้ามาแทนที่ยูทิลิตี้ YUM ใน Fedora 22 รุ่นล่าสุด
DNF มุ่งหวังที่จะปรับปรุงจุดคอขวดของ YUM ได้แก่ ประสิทธิภาพ การใช้หน่วยความจำ ความละเอียดในการอ้างอิง ความเร็ว และปัจจัยอื่นๆ อีกมากมาย DNF ทำการจัดการแพ็คเกจโดยใช้ RPM, libsolv และ hawkey ไลบรารี แม้ว่าจะไม่ได้ติดตั้งมาใน CentOS และ RHEL 7 คุณก็สามารถ yum, dnf และใช้ร่วมกับ yum ได้
คุณอาจต้องการอ่านเพิ่มเติมเกี่ยวกับ DNF ที่นี่:
- เหตุผลเบื้องหลังการเปลี่ยน Yum ด้วย DNF
DNF รุ่นเสถียรล่าสุดคือ 1.0 (ณ เวลาที่เขียนโพสต์) ซึ่งเผยแพร่เมื่อวันที่ 11 พฤษภาคม 2015 มัน (และ DNF เวอร์ชันก่อนหน้าทั้งหมด) ส่วนใหญ่เขียนด้วย Python และเผยแพร่ภายใต้ GPL v2 License
การติดตั้ง 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 ทั้งหมด' จะพิมพ์ที่เก็บที่เปิดใช้งาน/ปิดใช้งานทั้งหมดภายใต้ระบบของคุณ
dnf repolist all
4. แสดงรายการแพ็คเกจที่มีอยู่และที่ติดตั้งทั้งหมดโดยใช้ DNF
คำสั่ง “รายการ dnf” จะแสดงรายการแพ็คเกจทั้งหมดที่มีอยู่จากที่เก็บทั้งหมดและแพ็คเกจที่ติดตั้งบนระบบ Linux ของคุณ
dnf list
5. แสดงรายการแพ็คเกจที่ติดตั้งทั้งหมดโดยใช้ DNF
ในขณะที่คำสั่ง “dnf list” จะแสดงแพ็คเกจที่มีอยู่/ติดตั้งทั้งหมดจากที่เก็บทั้งหมด อย่างไรก็ตาม คุณมีตัวเลือกในการแสดงรายการเฉพาะแพ็คเกจที่ติดตั้งโดยใช้ตัวเลือก “รายการที่ติดตั้ง” ดังที่แสดงด้านล่าง
dnf list installed
6. แสดงรายการแพ็คเกจที่มีอยู่ทั้งหมดโดยใช้ DNF
ในทำนองเดียวกัน ตัวเลือก “รายการที่มีอยู่” จะแสดงรายการแพ็คเกจทั้งหมดที่พร้อมให้ติดตั้งจากที่เก็บข้อมูลที่เปิดใช้งานทั้งหมด
dnf list available
7. ค้นหาแพ็คเกจโดยใช้ DNF
ในกรณีที่คุณไม่ทราบเกี่ยวกับแพ็คเกจที่คุณต้องการติดตั้ง ในสถานการณ์เช่นนี้ คุณอาจใช้ตัวเลือก 'ค้นหา' ด้วยคำสั่ง dnf เพื่อค้นหาแพ็คเกจที่ตรงกับคำหรือสตริง (เช่น nano ).
dnf search nano
8. ดูว่าไฟล์/แพ็คเกจย่อยมีอะไรบ้าง?
ตัวเลือก dnf “ให้” ค้นหาชื่อของแพ็คเกจที่ให้ไฟล์/แพ็คเกจย่อยเฉพาะ ตัวอย่างเช่น หากคุณต้องการค้นหาสิ่งที่ให้ '/bin/bash' ในระบบของคุณ?
dnf provides /bin/bash
9. รับรายละเอียดของแพ็คเกจโดยใช้ DNF
สมมติว่าคุณต้องการทราบข้อมูลของแพ็คเกจก่อนทำการติดตั้งบนระบบ คุณอาจใช้สวิตช์ “ข้อมูล” เพื่อรับข้อมูลโดยละเอียดเกี่ยวกับแพ็คเกจ (เช่น นาโน) ได้ดังต่อไปนี้
dnf info nano
10. ติดตั้งแพ็คเกจด้วย DNF
หากต้องการติดตั้งแพ็คเกจชื่อ นาโน เพียงเรียกใช้คำสั่งด้านล่าง มันจะแก้ไขและติดตั้งการขึ้นต่อกันที่จำเป็นทั้งหมดสำหรับแพ็คเกจ นาโน โดยอัตโนมัติ
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. ลบแพ็คเกจ Orphan โดยใช้ DNF
แพคเกจเหล่านั้นที่ติดตั้งเพื่อตอบสนองการขึ้นต่อกันอาจไม่มีประโยชน์หากไม่ได้ถูกใช้โดยแอปพลิเคชันอื่น หากต้องการลบแพ็คเกจเด็กกำพร้าเหล่านั้นให้รันคำสั่งด้านล่าง
dnf autoremove
16. ลบแพ็คเกจแคชโดยใช้ DNF
หลายครั้งที่เราพบส่วนหัวที่ล้าสมัยและธุรกรรมที่ยังไม่เสร็จสิ้น ซึ่งส่งผลให้เกิดข้อผิดพลาดขณะดำเนินการ dnf เราอาจทำความสะอาดแพ็คเกจและส่วนหัวที่แคชไว้ทั้งหมดที่มีข้อมูลแพ็คเกจระยะไกลเพียงแค่ดำเนินการ
dnf clean all
17. รับความช่วยเหลือเกี่ยวกับคำสั่ง DNF เฉพาะ
คุณอาจได้รับความช่วยเหลือจากคำสั่ง dnf เฉพาะเจาะจง (เช่น clean) เพียงแค่ดำเนินการคำสั่งด้านล่างนี้
dnf help clean
18. แสดงรายการคำสั่งและตัวเลือก DNF ทั้งหมด
หากต้องการแสดงรายการความช่วยเหลือเกี่ยวกับคำสั่งและตัวเลือก dnf ที่มีอยู่ทั้งหมด เพียงพิมพ์
dnf help
19. ดูประวัติของ DNF
คุณสามารถเรียกประวัติ 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) จาก repo (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 คือระดับบนสุดของ Package Manager YUM มันมีแนวโน้มที่จะทำการประมวลผลจำนวนมากโดยอัตโนมัติ ซึ่งผู้ดูแลระบบ Linux ที่มีประสบการณ์หลายคนจะไม่ได้รับการยกย่องอย่างที่ฉันเชื่อ ดังตัวอย่าง:
- DNF ไม่รู้จัก
--skip-broken
และไม่มีทางเลือกอื่น - ไม่มีอะไรที่เหมือนกับคำสั่ง 'resolvedep' อย่างไรก็ตาม คุณสามารถเรียกใช้ dnf ได้
- ไม่มีคำสั่ง 'deplist' เพื่อค้นหาการขึ้นต่อกันของแพ็คเกจ
- คุณไม่รวม repo หมายความว่าการยกเว้นจะมีผลกับการดำเนินการทั้งหมด ซึ่งแตกต่างจาก yum ที่ไม่รวม repo เหล่านั้นเฉพาะในเวลาที่ติดตั้งและอัปเดต เป็นต้น
ผู้ใช้ Linux หลายคนไม่พอใจกับการเปลี่ยนแปลงของระบบนิเวศ Linux ขั้นแรก Systemd ลบ init system v และตอนนี้ DNF จะเข้ามาแทนที่ YUM เร็วกว่านี้ใน Fedora 22 และหลังจากนั้นใน RHEL และ CentOS
คุณคิดอย่างไร? เป็นการแจกจ่ายและระบบนิเวศของ Linux ทั้งหมดไม่ได้ให้คุณค่ากับผู้ใช้และก้าวไปในทางที่ผิด นอกจากนี้ ในอุตสาหกรรมไอทีมักพูดกันว่า “ทำไมต้องแก้ไข ถ้าไม่เสียหาย ” และทั้ง init System V เสียหายหรือ YUM
นั่นคือทั้งหมดที่สำหรับตอนนี้. โปรดแจ้งให้เราทราบความคิดอันมีค่าของคุณในความคิดเห็นด้านล่าง กดไลค์และแชร์เราและช่วยให้เราแพร่กระจาย