คำสั่ง dnf: ติดตั้ง อัปเดต ลบแพ็กเกจ และความต่างจาก yum

สภาพแวดล้อมทดสอบตระกูล RHELAlmaLinux 9.8บัญชี rootตรวจสอบเมื่อ 2026-10-28
คำสั่งแพ็กเกจdnfตำแหน่ง/usr/bin/dnf

คำสั่ง dnf เป็นคำสั่งจัดการแพ็กเกจบนลินุกซ์ตระกูล RHEL สำหรับค้นหา ติดตั้ง อัปเดต และลบแพ็กเกจ บน AlmaLinux 9 แม้จะพิมพ์ yum ก็จะรันโปรแกรมเดียวกัน บนเซิร์ฟเวอร์ AlmaLinux 9 เราได้รัน search, info, provides และ history จริง แล้วตรวจสอบจากเอาต์พุตว่า search, info และ provides ที่ใช้ค้นหาแพ็กเกจแต่ละคำสั่งดูข้อมูลจากที่ใด รวมถึงบันทึกการทำงานที่เหลืออยู่ใน history

เราไม่ได้รันคำสั่งที่เปลี่ยนแปลงระบบ เช่น การติดตั้ง การลบ และการอัปเดต แต่ตรวจสอบการทำงานของคำสั่งเหล่านั้นจากเอกสารทางการของ DNF และบันทึกการทำงานที่มีอยู่แล้วบนเซิร์ฟเวอร์

1️⃣ ความสัมพันธ์ระหว่างคำสั่ง dnf กับ yum

อาจเข้าใจได้ง่ายว่าการพิมพ์ yum จะรัน yum รุ่นเก่า แต่บน AlmaLinux 9 ทั้ง yum และ dnf เป็นลิงก์ที่ชี้ไปยังไฟล์ปฏิบัติการเดียวกันคือ dnf-3

ls -l /usr/bin/yum /usr/bin/dnf
lrwxrwxrwx 1 root root 5 May 21 04:48 /usr/bin/dnf -> dnf-3
lrwxrwxrwx 1 root root 5 May 21 04:48 /usr/bin/yum -> dnf-3

ความต่างระหว่าง yum กับ dnf มีเพียงชื่อที่พิมพ์เท่านั้น ไม่ว่าจะพิมพ์แบบใด คำสั่งย่อยและออปชันก็เหมือนกัน เอาต์พุตของ search htop ที่รันด้วย yum และด้วย dnf ก็เหมือนกันทุกประการ

ตามเอกสารทางการของ DNF [Changes in DNF CLI compared to YUM] update และ upgrade ทำงานเหมือนกัน และเอกสารแนะนำให้ใช้ upgrade

บนดิสทริบิวชันรุ่นเก่าที่ไม่มี dnf ให้ใช้ คำสั่ง yumตามเดิม ชื่อคำสั่งย่อยในบทความนี้ เช่น install, search และ history ก็เหมือนกันใน yum

2️⃣ การค้นหาแพ็กเกจด้วยคำสั่ง dnf: search, info, provides

เมื่อไม่รู้ชื่อแพ็กเกจที่แน่นอนของโปรแกรมที่ต้องการติดตั้ง ให้ค้นหาด้วย search ตามด้วยคำหนึ่งคำ search จะค้นหาคำนั้นในชื่อและสรุป (Summary) ของแพ็กเกจ และวางแพ็กเกจที่ชื่อตรงกันทุกตัวอักษรไว้บนสุด

dnf search htop
Last metadata expiration check: 0:21:53 ago on Wed Oct 28 15:24:31 2026.
========================== Name Exactly Matched: htop ==========================
htop.x86_64 : Interactive process viewer

htop มีแพ็กเกจที่ชื่อตรงกันทุกตัวอักษรเพียงตัวเดียว ผลลัพธ์จึงจบด้วยบรรทัดเดียวใต้ [Name Exactly Matched]

dnf search wget
Last metadata expiration check: 0:22:35 ago on Wed Oct 28 15:24:31 2026.
========================== Name Exactly Matched: wget ==========================
wget.x86_64 : A utility for retrieving files using the HTTP or FTP protocols
========================= Name & Summary Matched: wget =========================
perl-HTTP-Tinyish-Wget.noarch : HTTP::Tinyish wget backend
wget2-devel.x86_64 : Libraries and header files needed for using wget2 libraries
wget2-libs.x86_64 : Runtime libraries for GNU Wget2
============================== Name Matched: wget ==============================
wget2.x86_64 : An advanced file and recursive website downloader

คำที่อยู่ในหลายแพ็กเกจอย่าง wget จะแสดงแยกเป็นสามกลุ่ม คือชื่อตรงกันทุกตัวอักษร มีทั้งในชื่อและสรุป และมีเฉพาะในชื่อ

search ไม่ได้ดูประโยคคำอธิบาย (Description) จึงไม่เหมาะกับการค้นหาคำที่มีเฉพาะในคำอธิบาย กรณีนี้ให้เพิ่มออปชัน [--all] เพื่อขยายการค้นหาไปถึงคำอธิบายและ URL

เมื่อรู้ชื่อแพ็กเกจแล้ว ให้ใช้ info ตรวจสอบเวอร์ชัน ขนาด และรีโพซิทอรีที่แพ็กเกจนั้นมา

dnf info htop
Last metadata expiration check: 0:22:37 ago on Wed Oct 28 15:24:31 2026.
Available Packages
Name         : htop
Version      : 3.3.0
Release      : 1.el9
Architecture : x86_64
Size         : 198 k
Source       : htop-3.3.0-1.el9.src.rpm
Repository   : epel
Summary      : Interactive process viewer
URL          : http://hisham.hm/htop/
License      : GPLv2+
Description  : htop is an interactive text-mode process viewer for Linux, similar to
             : top(1).

htop ที่ยังไม่ได้ติดตั้งจะแสดงใน info htop ใต้ [Available Packages] เป็นเวอร์ชัน 3.3.0 จากรีโพซิทอรี epel เนื่องจาก htop เป็นแพ็กเกจที่มีเฉพาะในรีโพซิทอรี epel หากรัน search ใหม่โดยไม่รวม epel จะไม่พบอะไรเลย

dnf info wget
Last metadata expiration check: 0:22:38 ago on Wed Oct 28 15:24:31 2026.
Installed Packages
Name         : wget
Version      : 1.21.1
Release      : 11.el9_8
Architecture : x86_64
Size         : 3.1 M
Source       : wget-1.21.1-11.el9_8.src.rpm
Repository   : @System
From repo    : appstream
Summary      : A utility for retrieving files using the HTTP or FTP protocols
URL          : http://www.gnu.org/software/wget/
License      : GPLv3+
Description  : GNU Wget is a file retrieval utility which can use either the HTTP or
             : FTP protocols. Wget features include the ability to work in the
             : background while you are logged out, recursive retrieval of
             : directories, file name wildcard matching, remote file timestamp
             : storage and comparison, use of Rest with FTP servers and Range with
             : HTTP servers to retrieve files over slow or unstable connections,
             : support for Proxy servers, and configurability.

wget ที่ติดตั้งแล้วแสดงใต้ [Installed Packages] โดย Repository เป็น @System และรีโพซิทอรีที่ดาวน์โหลดมาตอนติดตั้งถูกระบุเป็น appstream ในบรรทัด [From repo]

ในทางกลับกัน หากรู้เพียงชื่อไฟล์แต่ไม่รู้ว่าอยู่ในแพ็กเกจใด ให้ใส่พาธของไฟล์ต่อท้าย provides

dnf provides /usr/bin/tree
Last metadata expiration check: 0:22:40 ago on Wed Oct 28 15:24:31 2026.
tree-1.8.0-10.el9.x86_64 : File system tree viewer
Repo        : @System
Matched from:
Filename    : /usr/bin/tree

tree-1.8.0-10.el9.x86_64 : File system tree viewer
Repo        : baseos
Matched from:
Filename    : /usr/bin/tree

ผลการค้นหา /usr/bin/tree แบ่งเป็นสองกลุ่ม คือฝั่งแพ็กเกจ tree ที่ติดตั้งแล้ว (@System) และฝั่งรีโพซิทอรี (baseos) โดย Filename ใต้ [Matched from] คือพาธที่ตรงกันจริง หากเขียนเพียงชื่อไฟล์โดยไม่มีพาธ dnf จะเติม /usr/bin/ และ /usr/sbin/ ไว้ข้างหน้าแล้วค้นหาอีกครั้ง หากยังไม่พบก็จะจบด้วยข้อผิดพลาดด้านล่าง

dnf provides nosuchfile
Last metadata expiration check: 0:22:41 ago on Wed Oct 28 15:24:31 2026.
Error: No matches found. If searching for a file, try specifying the full path or using a wildcard prefix ("*/") at the beginning.

ข้อความแสดงข้อผิดพลาดแนะนำให้เขียนพาธเต็ม หรือเติมไวลด์การ์ด [*/] ไว้ข้างหน้า คำสั่งทั้งสามรับอะไรเป็นอินพุตและค้นหาจากที่ใด เปรียบเทียบได้ทีละขั้นในแผนภาพด้านล่าง

🧭 จุดที่คำสั่งค้นหาแพ็กเกจทั้งสามดู
แผนภาพอธิบาย
🔍 คำสั่ง
$ dnf search htopinfo htopprovides /usr/bin/tree
① สิ่งที่ป้อนhtopคำหนึ่งคำhtopชื่อแพ็กเกจ/usr/bin/treeพาธของไฟล์
➜
② จุดที่ค้นหาชื่อและสรุป (Summary) ของแพ็กเกจค้นหาแพ็กเกจทั้งหมดที่มีคำนั้นจากทั้งรีโพซิทอรีเมทาดาทาของแพ็กเกจหนึ่งตัวแสดงแยกระหว่างที่ติดตั้งแล้วกับที่ติดตั้งได้รายการไฟล์ที่แพ็กเกจมีให้ค้นหาย้อนกลับว่าไฟล์ในพาธนั้นอยู่ในแพ็กเกจใด
➜
③ เอาต์พุตรายการแพ็กเกจที่ตรงกันhtop.x86_64 : Interactive process viewerเวอร์ชัน ขนาด รีโพซิทอรี คำอธิบายVersion 3.3.0, Size 198 k, Repository epelแพ็กเกจที่มีไฟล์นั้นtree-1.8.0-10.el9.x86_64, @System, baseos
search ค้นหาคำในชื่อและสรุปของแพ็กเกจ แล้วแสดงรายการโดยเริ่มจากแพ็กเกจที่ชื่อตรงกันทุกตัวอักษร
info แสดงเวอร์ชัน ขนาด และรีโพซิทอรีที่มาของแพ็กเกจหนึ่งตัว แพ็กเกจที่ติดตั้งแล้วจะแสดง @System ในช่อง Repository
provides ค้นหาแพ็กเกจย้อนกลับจากพาธของไฟล์ โดยฝั่งที่ติดตั้งแล้ว (@System) และฝั่งรีโพซิทอรี (baseos) จะแสดงแยกกัน

3️⃣ การติดตั้ง ลบ และอัปเดตแพ็กเกจ: install, remove, upgrade

ติดตั้งแพ็กเกจที่พบด้วย install โดย dnf จะติดตั้งทั้งแพ็กเกจที่ระบุและแพ็กเกจที่ต้องพึ่งพาซึ่งแพ็กเกจนั้นต้องการไปพร้อมกันในครั้งเดียว

dnf install htop

ตามเอกสารทางการ dnf จะแสดงรายการแพ็กเกจที่จะติดตั้ง (สรุปทรานแซกชัน) แล้วถามว่าจะดำเนินการต่อหรือไม่ หากเพิ่ม [-y] จะดำเนินการต่อโดยไม่ถาม

แพ็กเกจที่ต้องพึ่งพาซึ่งต้องติดตั้งไปด้วย สามารถตรวจสอบล่วงหน้าได้ด้วย repoquery [--requires]

dnf repoquery --requires htop
Last metadata expiration check: 0:22:59 ago on Wed Oct 28 15:24:31 2026.
libc.so.6(GLIBC_2.34)(64bit)
libcap.so.2()(64bit)
libhwloc.so.15()(64bit)
libm.so.6()(64bit)
libm.so.6(GLIBC_2.2.5)(64bit)
libm.so.6(GLIBC_2.29)(64bit)
libncursesw.so.6()(64bit)
libnl-3.so.200()(64bit)
libnl-3.so.200(libnl_3)(64bit)
libnl-genl-3.so.200()(64bit)
libnl-genl-3.so.200(libnl_3)(64bit)
libtinfo.so.6()(64bit)
rtld(GNU_HASH)

หากใส่เพียง [--requires] จะแสดงเฉพาะชื่อไลบรารีที่ htop ต้องการ ส่วนไลบรารีนั้นอยู่ในแพ็กเกจใด ตรวจสอบได้ด้วยคำสั่งถัดไป

dnf repoquery --requires --resolve htop
Last metadata expiration check: 0:23:01 ago on Wed Oct 28 15:24:31 2026.
glibc-0:2.34-283.el9_8.i686
glibc-0:2.34-283.el9_8.x86_64
hwloc-libs-0:2.4.1-6.el9_7.x86_64
libcap-0:2.48-10.el9_8.1.x86_64
libnl3-0:3.11.0-1.el9.x86_64
ncurses-libs-0:6.2-12.20210508.el9.x86_64

เมื่อเพิ่ม [--resolve] ผลลัพธ์จะเปลี่ยนเป็นชื่อแพ็กเกจที่ให้ไลบรารีนั้น ในจำนวนนี้ hwloc-libs ไม่มีอยู่บนเซิร์ฟเวอร์ที่ทดสอบ จึงจะถูกติดตั้งไปด้วยเมื่อติดตั้ง htop

remove จะลบแพ็กเกจที่ระบุพร้อมกับแพ็กเกจที่พึ่งพาแพ็กเกจนั้น และในค่าเริ่มต้นจะลบแพ็กเกจที่ต้องพึ่งพาซึ่งไม่จำเป็นอีกต่อไปด้วย

dnf remove htop

แม้จะลบเพียง htop แพ็กเกจที่ต้องพึ่งพาซึ่งแพ็กเกจอื่นไม่ต้องการ เช่น hwloc-libs ที่ติดตั้งมาเพราะ htop ก็จะถูกลบไปด้วย

แพ็กเกจที่เคยติดตั้งเป็นแพ็กเกจที่ต้องพึ่งพา แต่ตอนนี้ไม่มีแพ็กเกจใดต้องการแล้ว จะถูกลบโดย autoremove ให้ตรวจสอบรายการที่จะถูกลบก่อนด้วย list [--autoremove]

dnf list --autoremove
Last metadata expiration check: 0:23:09 ago on Wed Oct 28 15:24:31 2026.
Autoremove Packages
cmake-rpm-macros.noarch            3.31.8-3.el9                       @appstream
grub2-tools-efi.x86_64             1:2.06-126.el9_8.alma.1            @baseos
grub2-tools-extra.x86_64           1:2.06-126.el9_8.alma.1            @baseos
libatomic.x86_64                   11.5.0-14.el9.alma.1               @baseos
libvisual.x86_64                   1:0.4.0-34.el9                     @appstream
libwayland-server.x86_64           1.21.0-1.el9                       @appstream
dnf autoremove

บนเซิร์ฟเวอร์ที่ทดสอบ รายการแสดงแพ็กเกจ 6 ตัว และ autoremove จะลบทั้ง 6 ตัวนี้ในครั้งเดียว

ตรวจสอบว่าแพ็กเกจที่ติดตั้งไว้มีเวอร์ชันใหม่หรือไม่ด้วย check-update หากใส่ชื่อแพ็กเกจ จะตรวจเฉพาะแพ็กเกจนั้น

dnf check-update libavif libdav1d
Last metadata expiration check: 0:52:20 ago on Wed Oct 28 15:24:31 2026.

libavif.x86_64                          1.1.1-3.el9                         epel
libdav1d.x86_64                         1.5.4-1.el9                         epel

คำสั่งด้านบนที่ใส่ libavif และ libdav1d จบด้วยรหัสออก 100 เพราะทั้งสองมีเวอร์ชันใหม่ check-update จะจบด้วย 100 เมื่อมีอัปเดต 0 เมื่อไม่มี และ 1 เมื่อเกิดข้อผิดพลาด จึงใช้เป็นเงื่อนไขแยกทางในสคริปต์ได้

หากใส่ชื่อแพ็กเกจต่อท้าย list จะแสดงทั้งเวอร์ชันที่ติดตั้งแล้วและเวอร์ชันใหม่ในรีโพซิทอรี ส่วน updateinfo list ใช้ตรวจสอบว่าอัปเดตนั้นอยู่ภายใต้ประกาศ (advisory) ใด

dnf list libavif
Last metadata expiration check: 0:52:21 ago on Wed Oct 28 15:24:31 2026.
Installed Packages
libavif.x86_64                        0.11.1-5.el9                         @epel
Available Packages
libavif.x86_64                        1.1.1-3.el9                          epel

สำหรับ libavif เวอร์ชันที่ติดตั้งแล้ว 0.11.1-5.el9 แสดงใต้ [Installed Packages] และเวอร์ชัน 1.1.1-3.el9 จากรีโพซิทอรีแสดงแยกใต้ [Available Packages]

dnf updateinfo list libavif
Last metadata expiration check: 0:52:24 ago on Wed Oct 28 15:24:31 2026.
FEDORA-EPEL-2026-d611eab94a bugfix libavif-1.1.1-3.el9.x86_64

เวอร์ชันใหม่นั้นเป็นอัปเดตตามประกาศ bugfix FEDORA-EPEL-2026-d611eab94a ส่วนอัปเดตด้านความปลอดภัยจะแสดงในตำแหน่งเดียวกันพร้อมระดับและ Sec. เช่น [Moderate/Sec.]

การอัปเดตทำด้วย upgrade โดย upgrade จะติดตั้งเวอร์ชันใหม่เฉพาะในขอบเขตที่ dependency เข้ากันได้ เวอร์ชันที่เห็นใน check-update จึงอาจไม่ถูกติดตั้งตามนั้นทุกประการ

dnf upgrade libavif

หากใส่ชื่อแพ็กเกจ จะอัปเกรดเฉพาะแพ็กเกจนั้นและแพ็กเกจที่ต้องพึ่งพาที่จำเป็นเป็นเวอร์ชันใหม่

dnf upgrade

หากไม่ใส่ชื่อ เป้าหมายคือแพ็กเกจที่ติดตั้งไว้ทั้งหมด ขั้นตอนที่แสดงสรุปทรานแซกชันแล้วถามว่าจะดำเนินการต่อหรือไม่เหมือนกับ install และทรานแซกชันที่รันแล้วจะถูกบันทึกเป็นหมายเลขใน history

4️⃣ รายการรีโพซิทอรีของคำสั่ง dnf: repolist

ที่ที่ search และ install ใช้ค้นหาแพ็กเกจคือรีโพซิทอรี (repository) โดย repolist จะแสดง id และชื่อของรีโพซิทอรีที่เปิดใช้งานอยู่ในขณะนี้

dnf repolist
repo id             repo name
appstream           AlmaLinux 9 - AppStream
baseos              AlmaLinux 9 - BaseOS
epel                Extra Packages for Enterprise Linux 9 - x86_64
epel-cisco-openh264 Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64
extras              AlmaLinux 9 - Extras
nginx-stable        nginx stable repo
remi-modular        Remi's Modular repository for Enterprise Linux 9 - x86_64
remi-safe           Safe Remi's RPM repository for Enterprise Linux 9 - x86_64

อาจเข้าใจได้ง่ายว่ารีโพซิทอรีที่ไม่อยู่ในรายการคือไม่มีบนเซิร์ฟเวอร์ แต่เอาต์พุตเริ่มต้นของ repolist แสดงเฉพาะรีโพซิทอรีที่เปิดใช้งาน หากเพิ่ม [--all] จะแสดงรีโพซิทอรีที่ปิดอยู่ด้วยพร้อมคอลัมน์ status บนเซิร์ฟเวอร์ที่ทดสอบ รีโพซิทอรี CRB ทั้งสามของ AlmaLinux 9 เป็น disabled ทั้งหมด

dnf repolist --all | grep -i crb
crb                           AlmaLinux 9 - CRB                         disabled
crb-debuginfo                 AlmaLinux 9 - CRB - Debug                 disabled
crb-source                    AlmaLinux 9 - CRB - Source                disabled

จำนวนแพ็กเกจ ที่อยู่มิเรอร์ เวลาหมดอายุของเมทาดาทา และตำแหน่งไฟล์ตั้งค่าของรีโพซิทอรีหนึ่งรายการ ตรวจสอบได้ด้วย repoinfo

dnf repoinfo baseos
Last metadata expiration check: 0:22:55 ago on Wed Oct 28 15:24:31 2026.
Repo-id            : baseos
Repo-name          : AlmaLinux 9 - BaseOS
Repo-status        : enabled
Repo-revision      : 1793090609
Repo-updated       : Tue Oct 27 17:43:29 2026
Repo-pkgs          : 3458
Repo-available-pkgs: 3458
Repo-size          : 21 G
Repo-mirrors       : https://mirrors.almalinux.org/mirrorlist/9/baseos
Repo-baseurl       : http://aws.repo.almalinux.org/almalinux/9.8/BaseOS/x86_64/os/ (9 more)
Repo-expire        : 86400 second(s) (last: Wed Oct 28 15:24:26 2026)
Repo-filename      : /etc/yum.repos.d/almalinux-baseos.repo
Total packages: 3458

repoinfo baseos แสดงแพ็กเกจ 3,458 ตัว และตั้งให้ตรวจสอบเมทาดาทาใหม่ทุก 86,400 วินาที (หนึ่งวัน) ไฟล์ .repo ในบรรทัด [Repo-filename] คือไฟล์ตั้งค่าของรีโพซิทอรีนี้ ส่วนออปชัน [--set-enabled] และ [--set-disabled] สำหรับเปิดและปิดรีโพซิทอรีใช้ร่วมกับคำสั่ง config-manager ของ dnf-plugins-core

5️⃣ ประวัติการทำงานและการย้อนกลับของคำสั่ง dnf: history

เมื่อผ่านการติดตั้งและลบหลายครั้ง จะติดตามได้ยากว่าเปลี่ยนอะไรไปเมื่อใด แต่ dnf จะใส่หมายเลขให้ทุกทรานแซกชัน (transaction) และบันทึกไว้ใน history หากใส่ชื่อแพ็กเกจ จะแสดงเฉพาะทรานแซกชันที่เปลี่ยนแพ็กเกจนั้น

dnf history list tmux
ID     | Command line             | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    51 | install -y tmux          | 2026-10-15 20:40 | Install        |    1

เอาต์พุตที่กรองด้วย tmux เหลือเพียงบรรทัดเดียวของทรานแซกชันหมายเลข 51 ที่ติดตั้ง tmux ช่วงหมายเลขเขียนด้วยจุดสองจุด เช่น [50..51]

dnf history list 50..51
ID     | Command line             | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    51 | install -y tmux          | 2026-10-15 20:40 | Install        |    1
    50 | -y -q install mlocate    | 2026-10-07 19:39 | Install        |    1 EE

ตัวเลขในคอลัมน์ [Altered] คือจำนวนแพ็กเกจที่เปลี่ยน ท้ายบรรทัดหมายเลข 50 มี [EE] ต่อท้าย ซึ่งหมายความว่าทรานแซกชันเสร็จสิ้นแล้วแต่มีเอาต์พุตคำเตือนหรือข้อผิดพลาด

บรรทัดคำสั่ง แพ็กเกจที่เปลี่ยน และรหัสผลลัพธ์ของทรานแซกชันหนึ่งรายการ ตรวจสอบได้ด้วย history info

dnf history info 51
Transaction ID : 51
Begin time     : Thu Oct 15 20:40:51 2026
Begin rpmdb    : d3db9c92a9d0f6ef9a7a1404552bb76e9d56ba7602b1fce73fa5a62170d33c5c
End time       : Thu Oct 15 20:40:51 2026 (0 seconds)
End rpmdb      : a862c33ee6a2f2d0479e4dc2631907dee47591c5b6795551b755c6cd090ac1df
User           : root <root>
Return-Code    : Success
Releasever     : 9
Command Line   : install -y tmux
Persistence    : Persist
Comment        :
Packages Altered:
    Install tmux-3.2a-5.el9.x86_64 @baseos

เมื่อเปิดหมายเลข 51 พบว่า [Command Line] ยังเก็บคำสั่งที่รัน install -y tmux ไว้ตามเดิม [Packages Altered] ระบุ tmux ที่ติดตั้งและรีโพซิทอรี @baseos ส่วน [Return-Code] ระบุ Success หากไม่ใส่หมายเลข จะแสดงทรานแซกชันล่าสุด

หากติดตั้งผิด ให้ใส่หมายเลขทรานแซกชันต่อท้าย history undo เพื่อรันการทำงานที่ตรงข้ามกับทรานแซกชันนั้น ส่วน rollback จะย้อนสถานะแพ็กเกจกลับไปยังจุดหลังทรานแซกชันที่ระบุทันที

dnf history undo 51

ทรานแซกชัน 51 คือการติดตั้ง tmux ดังนั้น undo 51 จึงเป็นทรานแซกชันตรงข้ามที่ลบ tmux

dnf history rollback 50

rollback 50 จะย้อนทรานแซกชันทั้งหมดที่รันหลัง 50 จนถึงรายการสุดท้าย ผลลัพธ์จึงอาจต่างจาก undo 51 ที่ลบเพียง tmux

ตามเอกสารทางการ หากมีแพ็กเกจที่ย้อนกลับไม่ได้ undo และ rollback จะจบโดยไม่เปลี่ยนแปลงอะไรเลย และแม้การเปลี่ยนแปลงที่ทำโดยตรงด้วย rpm จะไม่อยู่ในบันทึก ก็จะไม่หยุดด้วยข้อผิดพลาด

🔲 ซิมูเลเตอร์คำสั่ง dnf

ในซิมูเลเตอร์ด้านล่าง คุณสามารถพิมพ์คำสั่ง search, info, provides, repolist และ history ด้วยตัวเองเพื่อดูเอาต์พุตได้ แม้จะพิมพ์ด้วย yum ก็ได้ผลลัพธ์เดียวกัน

ซิมูเลเตอร์คำสั่ง dnfdnf 4.14.0
[root@server work]#
ใช้ปุ่ม ↑↓ บนแป้นพิมพ์เพื่อเรียกคำสั่งที่พิมพ์ไว้ก่อนหน้ากลับมา

🔢 FAQ & เนื้อหาแนะนำ

คือเวลาที่ตรวจสอบสำเนาเมทาดาทาของรีโพซิทอรีในเครื่องครั้งล่าสุด ตามเอกสารทางการ เมื่อเกินเวลา metadata_expire ที่แต่ละรีโพซิทอรีกำหนดไว้ ก็จะดาวน์โหลดมาใหม่ คำสั่งที่ไม่จำเป็นต้องใช้ข้อมูลล่าสุดเสมอ เช่น search และ provides จะใช้สำเนาในเครื่องแม้จะหมดอายุแล้ว หากเพิ่ม [--refresh] จะบังคับดาวน์โหลดใหม่ ส่วน [-C] จะใช้เฉพาะแคช

เมื่อลองใส่คำสั่งที่ไม่มีอยู่อย่าง foo พบข้อผิดพลาด [No such command] พร้อมคำแนะนำให้ลองติดตั้งปลั๊กอินในรูปแบบ [dnf install dnf-command(ชื่อ)] เพราะคำสั่งย่อยบางตัวถูกเพิ่มโดยแพ็กเกจปลั๊กอินอย่าง dnf-plugins-core หากเป็นการพิมพ์ผิด ให้ตรวจสอบรายการคำสั่งด้วย [dnf --help]

rpm -q อ่านเฉพาะฐานข้อมูลแพ็กเกจที่ติดตั้งบนเซิร์ฟเวอร์ (RPMDB) แล้วแสดงเวอร์ชันของแพ็กเกจนั้น หากไม่มีจะตอบว่า [package htop is not installed] ส่วน dnf list --installed แสดงฐานข้อมูลเดียวกันโดยเพิ่มข้อมูลรีโพซิทอรี จึงมีรีโพซิทอรีที่ดาวน์โหลดมา (@epel) แสดงข้างแพ็กเกจที่ติดตั้ง หากใช้ dnf list โดยไม่มี [--installed] จะแสดงเวอร์ชันใหม่ในรีโพซิทอรีด้วย

🧭 เนื้อหาแนะนำเกี่ยวกับคำสั่งแพ็กเกจ บทความ 6 · อ้างอิง 2
🗂️ คำสั่งแพ็กเกจ
📄 แนวคิดของ YUM และคำสั่งพื้นฐาน 📄 คำสั่ง dnf 📄 คำสั่ง yum-config-manager 📄 ความต่างของ RPM · YUM
📄 คำสั่ง apt · apt-get 📄 ติดตั้ง snapd
yum update
Linux · แพ็กเกจ
แนวคิดของ YUM บนลินุกซ์และคำสั่งพื้นฐาน
YUM (Yellow dog Updater, Modified) เป็นเครื่องมือติดตั้งและจัดการแพ็กเกจที่ใช้ในดิสทริบิวชันลินุกซ์ตระกูล Red Hat (RPM)
อ่านบทความ →เนื้อหาปัจจุบัน
แผนภาพอธิบาย search, info, provides ของคำสั่ง dnf: ขั้นตอนที่ provides ค้นหาแพ็กเกจย้อนกลับจากพาธของไฟล์
Linux · แพ็กเกจ
คำสั่ง dnf: ติดตั้ง อัปเดต ลบแพ็กเกจ และความต่างจาก yum
คำสั่ง dnf เป็นคำสั่งจัดการแพ็กเกจบนลินุกซ์ตระกูล RHEL สำหรับค้นหา ติดตั้ง อัปเดต และลบแพ็กเกจ และบน AlmaLinux 9 แม้จะพิมพ์ yum ก็จะรันโปรแกรมเดียวกัน
อ่านบทความ →เนื้อหาปัจจุบัน
รีโพสิทอรี YUM_CentOS-Base.repo (CentOS 7)
Linux · รีโพซิทอรี
คำสั่ง yum-config-manager | ตั้งค่ารีโพสิทอรี YUM
โดยค่าเริ่มต้น คำสั่ง yum จะติดตั้งแพ็กเกจจากรีโพสิทอรีพื้นฐาน (ปกติเป็นเวอร์ชันเสถียร)
อ่านบทความ →เนื้อหาปัจจุบัน
yum update
Linux · แพ็กเกจ
Linux: ความต่างระหว่าง RPM กับ YUM
บทความที่สรุปความแตกต่างระหว่าง RPM กับ YUM ซึ่งเป็นเครื่องมือจัดการแพ็กเกจของลินุกซ์
อ่านบทความ →เนื้อหาปัจจุบัน

ℹ️ ประกาศเรื่องลิงก์แอฟฟิลิเอต
เนื้อหาของเว็บไซต์นี้มีลิงก์แอฟฟิลิเอต หากผู้เข้าชมซื้อสินค้าหรือบริการผ่านลิงก์เหล่านี้ เว็บไซต์นี้จะได้รับค่าคอมมิชชันจากผู้ขาย ในกระบวนการนี้ ราคาที่ผู้ซื้อจ่าย(ราคาจะลดลงเมื่อมีโปรโมชัน↓)จะไม่สูงขึ้นแต่อย่างใด ราคา ส่วนลด และข้อมูลสต็อกที่แสดงเป็นข้อมูล ณ เวลาที่เขียนและอาจต่างจากความเป็นจริง โปรดตรวจสอบกับผู้ขายอีกครั้งก่อนซื้อ การเลือกและการประเมินสินค้าเขียนตามเกณฑ์ของเราเอง และการได้รับค่าคอมมิชชันหรือไม่ไม่มีผลต่อลำดับการแนะนำหรือเนื้อหาการประเมิน

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *

Prove your humanity: 0   +   4   =