ไม่ว่า Fedora จะเริ่มรับเลี้ยงหรือไม่ dnf เป็นผู้จัดการแพ็คเกจใหม่ และไลบรารีการจัดการแพ็คเกจเริ่มต้นจะไม่แทนที่เก่าที่ดี yum package manager เพื่อประโยชน์ในการแจกแจงสปินออฟอื่น ๆ (เช่น Red Hat Enterprise Linux (เรเอล) และ CentOS) จนกว่าจะได้รับการพิสูจน์แล้วว่าเชื่อถือได้เท่ากับยำและแข็งขึ้น (ตาม Fedora Project Wiki, ณ วันที่ 15 พฤศจิกายน 2558, dnf ยังอยู่ในสภาพที่ทดสอบได้) ดังนั้น ของคุณ การจัดการยำ ทักษะจะให้บริการคุณได้ดีในระยะเวลาหนึ่ง
ด้วยเหตุนี้ในคู่มือนี้เราจะแนะนำให้คุณรู้จัก ยำ-utilsซึ่งเป็นคอลเล็กชันของยูทิลิตี้ที่ผสานรวมกับ yum เพื่อขยายคุณสมบัติดั้งเดิมของมันได้หลายวิธี จึงทำให้มีประสิทธิภาพและใช้งานง่ายยิ่งขึ้น
ยำ-utils รวมอยู่ใน repo ฐาน (ซึ่งเปิดใช้งานโดยค่าเริ่มต้น) ดังนั้นการติดตั้งในการแจกจ่ายตาม Fedora นั้นง่ายเหมือนทำ:
# yum update && yum ติดตั้ง yum-utils
สาธารณูปโภคทั้งหมดที่ให้บริการโดย ยำ-utils จะถูกติดตั้งโดยอัตโนมัติด้วยแพ็คเกจหลัก ซึ่งเราจะอธิบายในหัวข้อถัดไป
เครื่องมือที่จัดให้โดย ยำ-utils มีการระบุไว้ในหน้าคน:
#คนยำอรรถล.
มี 10 ตัว ยำ สาธารณูปโภคที่เราคิดว่าคุณน่าจะสนใจ:
debuginfo-install ติดตั้ง debuginfo แพ็คเกจ (และการขึ้นต่อกัน) ที่จำเป็นสำหรับการดีบัก ในกรณีที่เกิดความผิดพลาดหรือในขณะที่กำลังพัฒนาแอพพลิเคชั่นที่ใช้แพ็คเกจบางอย่าง
ในการดีบักแพ็คเกจ (หรือไฟล์ปฏิบัติการอื่น ๆ ) เราจะต้องติดตั้ง gdb (ดีบักเกอร์ GNU) และใช้เพื่อเริ่มโปรแกรมในโหมดดีบัก
ตัวอย่างเช่น:
# gdb $ ( postfix ใด)
คำสั่งดังกล่าวจะเริ่มต้นa gdb เชลล์ ที่เราสามารถพิมพ์การกระทำที่จะดำเนินการ ตัวอย่างเช่น, วิ่ง (ดังภาพด้านล่าง) จะเริ่มโปรแกรม ในขณะที่ bt (ไม่แสดง) จะแสดงการติดตามสแต็ก (หรือที่เรียกว่า ย้อนรอย) ของโปรแกรม ซึ่งจะแสดงรายการการเรียกฟังก์ชันที่นำไปสู่จุดหนึ่งในการทำงานของโปรแกรม (โดยใช้ข้อมูลนี้ทั้งนักพัฒนาและผู้ดูแลระบบสามารถทราบได้ว่าเกิดอะไรขึ้นในกรณีของ ชน).
การดำเนินการอื่น ๆ ที่มีอยู่และผลลัพธ์ที่คาดหวังจะแสดงอยู่ใน ผู้ชาย gdb.
คำสั่งต่อไปนี้แสดงที่เก็บแพ็คเกจที่ติดตั้งในปัจจุบัน … ติดตั้งจาก:
# find-repos-of-install httpd postfix dovecot
หากทำงานโดยไม่มีข้อโต้แย้ง find-repos-of-install จะส่งคืนรายการแพ็คเกจที่ติดตั้งในปัจจุบันทั้งหมด
package-cleanup จัดการการล้างแพ็คเกจ ทำซ้ำ แพ็คเกจกำพร้า (โปรแกรมที่ติดตั้งจากแหล่งอื่นที่ไม่ใช่ปัจจุบัน ที่เก็บข้อมูลที่กำหนดค่าไว้) และความไม่สอดคล้องของการพึ่งพาอื่น ๆ รวมถึงการลบเมล็ดเก่าตามที่แสดงในต่อไปนี้ ตัวอย่าง:
# package-cleanup -- เด็กกำพร้า # package-cleanup --oldkernels.
คุณไม่ต้องกังวลว่าคำสั่งสุดท้ายจะทำลายเคอร์เนลของคุณ มันจะมีผลกับแพ็คเกจเคอร์เนลเก่า (เวอร์ชันที่เก่ากว่าที่รันอยู่ในปัจจุบัน) ที่ไม่จำเป็นอีกต่อไป
repo-กราฟ ส่งคืนรายการการพึ่งพาแพ็คเกจแบบเต็มใน จุด รูปแบบสำหรับแพ็กเกจทั้งหมดที่พร้อมใช้งานจากที่เก็บที่กำหนดค่าไว้ อีกทางหนึ่ง repo-กราฟ
สามารถส่งคืนข้อมูลเดียวกันโดยที่เก็บหากใช้กับ --repoid=
ตัวเลือก.
ตัวอย่างเช่น มาดูการขึ้นต่อกันของแต่ละแพ็คเกจในที่เก็บการอัพเดท:
# repo-กราฟ --repoid=updates | น้อย.
ในคำสั่งข้างต้น เราจะส่งผลลัพธ์ของ repo-กราฟ ให้น้อยลงเพื่อให้เห็นภาพได้ง่ายขึ้น แต่คุณสามารถเปลี่ยนเส้นทางไปยังไฟล์ในเครื่องเพื่อตรวจสอบในภายหลังได้:
# repo-graph --repoid=updates> updates-dependencies.txt
ไม่ว่าในกรณีใด เราจะเห็นได้ว่า iputils แพ็คเกจขึ้นอยู่กับ systemd และ opensl-libs.
repoclosure อ่านข้อมูลเมตาของที่เก็บที่กำหนดค่าไว้ ตรวจสอบการขึ้นต่อกันของแพ็คเกจที่รวมอยู่ในนั้น และแสดงรายการของการพึ่งพาที่ยังไม่ได้แก้ไขสำหรับแต่ละแพ็คเกจ:
#ปิดรับคืน.
การแก้แค้น สืบค้นไดเร็กทอรีด้วยแพ็คเกจ rpm และส่งคืนรายการแพ็คเกจใหม่ล่าสุดหรือเก่าที่สุดในไดเร็กทอรี เครื่องมือนี้จะมีประโยชน์หากคุณมีไดเร็กทอรีที่คุณจัดเก็บไว้หลายตัว .rpm แพ็คเกจของโปรแกรมต่างๆ
เมื่อดำเนินการโดยไม่มีข้อโต้แย้ง การแก้แค้น ส่งคืนแพ็คเกจใหม่ล่าสุด ถ้าวิ่งด้วย --เก่า
ตั้งค่าสถานะ มันจะส่งคืนแพ็คเกจที่เก่าที่สุด:
#ลส -ล. #cd รอบต่อนาที # ls -l รอบต่อนาที # รีโพแมนเนจรอบต่อนาที
โปรดทราบว่าการเปลี่ยนชื่อแพ็คเกจ rpm จะไม่ส่งผลต่อวิธีการ การแก้แค้น ทำงาน
การทำซ้ำ ค้นหาที่เก็บ yum และรับข้อมูลเพิ่มเติมเกี่ยวกับแพ็คเกจ ไม่ว่าจะติดตั้งหรือไม่ (การขึ้นต่อกัน ไฟล์ที่รวมอยู่ในแพ็คเกจ และอื่นๆ)
ตัวอย่างเช่น, htop (การตรวจสอบกระบวนการ Linux) ยังไม่ได้ติดตั้งบนระบบนี้ ดังที่คุณเห็นด้านล่าง:
#ที่htop. # rpm -qa | grep htop
ตอนนี้สมมติว่าเราต้องการแสดงรายการการพึ่งพาของ htopพร้อมกับไฟล์ที่รวมอยู่ในการติดตั้งเริ่มต้น ให้รันคำสั่งสองคำสั่งต่อไปนี้ตามลำดับ:
# repoquery -- ต้องการ htop # repoquery --list htop
yum-debug-dump อนุญาตให้คุณดัมพ์รายการทั้งหมดของแพ็คเกจทั้งหมดที่คุณติดตั้ง แพ็คเกจทั้งหมดที่มีอยู่ในที่เก็บ การกำหนดค่าที่สำคัญ และข้อมูลระบบลงในไฟล์ซิป
สิ่งนี้มีประโยชน์ในกรณีที่คุณต้องการดีบักปัญหาที่เกิดขึ้น เพื่อความสะดวกของเรา yum-debug-dump ตั้งชื่อไฟล์เป็น yum_debug_dump-
#ยำ-ดีบัก-ดัมพ์
เช่นเดียวกับไฟล์ข้อความที่บีบอัด เราสามารถดูเนื้อหาโดยใช้ zless สั่งการ:
# zless yum_debug_dump-mail.linuxnewz.com-2015-11-27_08:34:01.txt.gz
หากคุณจำเป็นต้องกู้คืนข้อมูลการกำหนดค่าที่ได้รับจาก yum-debug-dump, คุณสามารถใช้ได้ yum-debug-restore ให้ทำดังนี้
# yum-debug-restore yum_debug_dump-mail.linuxnewz.com-2015-11-27_08:34:01.txt.gz
yumdownloader ดาวน์โหลดไฟล์ RPM ต้นทางจากที่เก็บ รวมถึงการขึ้นต่อกัน มีประโยชน์ในการสร้างที่เก็บเครือข่ายเพื่อเข้าถึงจากเครื่องอื่นที่มีการจำกัดการเข้าถึงอินเทอร์เน็ต
Yumdownloader ให้คุณไม่เพียงแต่ดาวน์โหลดไบนารี RPMs เท่านั้น แต่ยังรวมถึงแหล่งข้อมูลด้วย (หากใช้กับ --แหล่งที่มา
ตัวเลือก).
ตัวอย่างเช่น มาสร้างไดเร็กทอรีชื่อ htop-files ที่เราจะจัดเก็บ RPM ที่จำเป็นในการติดตั้งโปรแกรมโดยใช้ rpm ในการทำเช่นนั้น เราต้องใช้ --resolve
สลับพร้อมกับ yumdownloader:
# mkdir ไฟล์ htop # cd htop-ไฟล์ # yumdownloader --resolve htop # รอบต่อนาที -Uvh
reposync มีความเกี่ยวข้องอย่างใกล้ชิดกับ yumdownloader (อันที่จริงพวกเขาสนับสนุนตัวเลือกเกือบเหมือนกัน) แต่มีข้อได้เปรียบอย่างมาก แทนที่จะดาวน์โหลดไฟล์ไบนารีหรือไฟล์ RPM ต้นทาง มันจะซิงโครไนซ์ที่เก็บระยะไกลกับไดเร็กทอรีในเครื่อง
มาซิงค์ที่รู้จักกันดี ที่เก็บ EPEL ไปยังไดเร็กทอรีย่อยที่เรียกว่า epel-ท้องถิ่น ภายในไดเร็กทอรีการทำงานปัจจุบัน:
#ผู้ชาย reposync. #mkdir epel-ท้องถิ่น # reposync --repoid=epel --download_path=epel-local
โปรดทราบว่ากระบวนการนี้จะใช้เวลาสักครู่ในขณะที่กำลังดาวน์โหลด 8867 แพ็คเกจ:
เมื่อการซิงโครไนซ์เสร็จสิ้น ให้ตรวจสอบจำนวนพื้นที่ดิสก์ที่ใช้โดยมิเรอร์ที่สร้างขึ้นใหม่ของที่เก็บ EPEL โดยใช้ ดูคำสั่ง:
# du -sch epel-local/*
ตอนนี้มันขึ้นอยู่กับคุณแล้วถ้าคุณต้องการเก็บสิ่งนี้ไว้ EPEL มิเรอร์หรือใช้เพื่อติดตั้งแพ็คเกจแทนการใช้รีโมต ในกรณีแรก โปรดทราบว่าคุณจะต้องแก้ไข /etc/yum.repos.d/epel.repo ตามนั้น
yum-complete-transaction เป็นส่วนหนึ่งของ ยำ-utils โปรแกรมที่ดักจับธุรกรรม yum ที่ยังไม่เสร็จหรือยกเลิกในระบบและพยายามทำให้เสร็จ
ตัวอย่างเช่น เมื่อเราอัปเดตเซิร์ฟเวอร์ Linux ผ่าน ยำ package manager บางครั้งมันก็แสดงข้อความเตือนซึ่งอ่านดังนี้:
มีธุรกรรมที่ยังไม่เสร็จเหลืออยู่ คุณอาจลองเรียกใช้ yum-complete-transaction ก่อนเพื่อดำเนินการให้เสร็จสิ้น
เพื่อแก้ไขข้อความเตือนดังกล่าวและแก้ไขปัญหาดังกล่าว yum-complete-transaction คำสั่งมาในรูปเพื่อทำธุรกรรมที่ยังไม่เสร็จ จะพบธุรกรรม yum ที่ไม่สมบูรณ์หรือยกเลิกใน ธุรกรรมทั้งหมด* และ ทำรายการ* ไฟล์ที่สามารถพบได้ใน /var/lib/yum ไดเรกทอรี
วิ่ง yum-complete-transaction คำสั่งให้เสร็จสิ้นการทำธุรกรรม yum ที่ไม่สมบูรณ์:
# yum-complete-transaction --cleanup-only
ตอนนี้คำสั่ง yum จะทำงานโดยไม่มีคำเตือนธุรกรรมที่ไม่สมบูรณ์
#ยำอัพเดท.
บันทึก: เคล็ดลับนี้แนะนำโดยหนึ่งในผู้อ่านประจำของเรา นายโทมัส ในช่องแสดงความคิดเห็น ที่นี่.
ในบทความนี้ เราได้กล่าวถึงยูทิลิตี้ที่มีประโยชน์ที่สุดบางส่วนที่มีให้ผ่าน ยำ-utils. สำหรับรายการทั้งหมด คุณสามารถดูหน้าคน (man yum-utils
).
นอกจากนี้ แต่ละเครื่องมือเหล่านี้มีหน้าคนแยกต่างหาก (ดู ผู้ชาย reposyncตัวอย่างเช่น) ซึ่งเป็นแหล่งที่มาหลักของเอกสารที่คุณควรอ้างอิงหากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับเอกสารเหล่านี้
หากคุณใช้เวลาสักครู่เพื่อตรวจสอบหน้าคนของ ยำ-utilsบางทีคุณอาจพบเครื่องมืออื่นที่คุณต้องการให้เราอธิบายในเชิงลึกมากขึ้นในบทความแยกต่างหาก ถ้าใช่ หรือหากคุณมีคำถาม ความคิดเห็น หรือข้อเสนอแนะเกี่ยวกับบทความนี้ โปรดแจ้งให้เราทราบว่าข้อใดโดยส่งบันทึกถึงเราโดยใช้แบบฟอร์มความคิดเห็นด้านล่าง