Debian apt-get update
เรียกและอัพเดตดัชนีแพ็กเกจ เพราะฉันคุ้นเคยกับวิธีการทำสิ่งนี้ฉันรู้สึกประหลาดใจที่พบว่าyum update
ทำทุกอย่างและอัพเกรดระบบ สิ่งนี้ทำให้ฉันอยากรู้วิธีปรับปรุงดัชนีแพ็คเกจโดยไม่ต้องติดตั้งอะไร
Debian apt-get update
เรียกและอัพเดตดัชนีแพ็กเกจ เพราะฉันคุ้นเคยกับวิธีการทำสิ่งนี้ฉันรู้สึกประหลาดใจที่พบว่าyum update
ทำทุกอย่างและอัพเกรดระบบ สิ่งนี้ทำให้ฉันอยากรู้วิธีปรับปรุงดัชนีแพ็คเกจโดยไม่ต้องติดตั้งอะไร
คำตอบ:
check-update
คำสั่งจะรีเฟรชดัชนีแพคเกจและตรวจสอบการปรับปรุงที่ใช้ได้:
yum check-update
yum
ได้รับการเรียกใช้เมื่อเร็ว ๆ นี้เห็นบางส่วนของคำตอบอื่น ๆ หาทางเลือก ...
ในขณะที่yum check-update
จะตรวจสอบการอัพเดตสำหรับแพ็คเกจที่ติดตั้งหากจำเป็นต้องรีเฟรชดังนั้นคำสั่งอื่น ๆ ส่วนใหญ่จะ
คำสั่งที่เทียบเท่าอย่างเคร่งครัดapt-get update
คือyum makecache
... อย่างไรก็ตามโดยทั่วไปไม่แนะนำให้เรียกใช้โดยตรงใน yum
yum
คำสั่งอื่น ๆเช่นyum upgrade
จะทำงานโดยอัตโนมัติyum check-update
หากจำเป็น ในคำอื่น ๆเป็นพื้นเดียวกับyum upgrade
apt-get update; apt-get upgrade
yum makecache
? มันระบุไว้ในหน้าคนและดูเหมือนว่าจะทำงานเช่นapt-get update
... นอกจากนี้ยังทราบว่าyum check-update
ไม่เคยดำเนินการฟื้นฟูให้ดูคำตอบอื่น ๆ , FWIW :)
น่าเสียดายที่yum check-update
ค่าเริ่มต้นจะไม่ดึงการเปลี่ยนแปลงจากที่เก็บระยะไกลจนกว่าyum.conf
พารามิเตอร์ metadata_expire ของจะผ่านไป (ค่าเริ่มต้น 90m) เห็นได้ชัดว่าจุดประสงค์ของมันคือ "รู้ว่าเครื่องของคุณมีการอัพเดทใด ๆ ที่จำเป็นต้องใช้โดยไม่ต้องเรียกใช้งานแบบโต้ตอบหรือไม่" ดังนั้นโดยทั่วไปแล้วมันคือ "ตรวจสอบว่าแพ็คเกจใดที่สามารถอัปเดตได้ คาดหวัง
ดังนั้นหากคุณเรียกใช้yum check-update
และรับสิ่งนี้:
$ sudo yum check-update
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
packagename version repo
ซึ่งหมายความว่าการตรวจสอบการอัปเดตไม่ได้ทำการอัปเดตเหมือนอย่างที่apt-get update
ทำ
คุณสามารถดูได้ว่าต้องใช้เวลานานเท่าใดก่อนที่จะทำการ "รีเฟรชอัตโนมัติ" ที่คำสั่งทั้งหมดทำภายใต้โดยเรียกใช้สิ่งนี้ :yum repolist enabled -v
หลีกเลี่ยง:
ใช้ yum clean expire-cache
(หรือyum clean all
) ก่อนจากนั้นคำสั่ง yum ใด ๆ ในอนาคตจะรีเฟรชแคชอัตโนมัติ "เมื่อทำงาน" . เพราะคำสั่ง yum apt-get update
อนาคตรีเฟรชแคชนี้เป็นในทางปฏิบัติเช่นเดียวกับ
หรือเปลี่ยนพารามิเตอร์ metadata_expire ของ yum.conf ให้น้อยกว่าค่าเริ่มต้น 90 นาทีฉันเดา
หรือเรียกใช้yum makecache
(จากคำตอบอื่น ๆ ) ซึ่งดูเหมือนว่าจะลบแคชและดึงสำเนาที่สดใหม่ลงไปทันที แต่ดูเหมือนจะใช้เวลานานกว่าclean all
(?) FWIW
นั่นคือคำสั่งเพื่ออัพเดตแคชโลคัลดังนั้น
yum makecache
น่าจะเป็นคำสั่งที่คุณกำลังมองหาตามการทำงานกับแคชยำ
โดยปกติคุณไม่จำเป็นต้องเรียกใช้คำสั่งนี้โดยตรงเนื่องจาก yum ตรวจสอบและรีเฟรชข้อมูลเมตาตามค่า metadata_expire ใน yum.conf แล้วโดยค่าเริ่มต้นคือ 6 ชั่วโมง
อย่างไรก็ตามอาจมีกรณีการใช้งานอย่างน้อยหนึ่งกรณีซึ่งอยู่ในเพลย์บุ๊ค Ansibleเนื่องจากคุณไม่มีวิธีในเพลย์ลิสต์ Ansible เพื่ออัปเดตแคชเท่านั้นโดยไม่ต้องติดตั้งแพ็คเกจใด ๆ (ดูปัญหาAnsible 33461และ40068ซึ่งดูเหมือนว่า ได้รับการแก้ไขในรุ่น 2.8, 46183 ) โมดูล yum แบบ Ansible ต้องใช้ชื่อแพ็กเกจสำหรับตัวเลือก 'update_cache: ใช่' เพื่อให้มีผล ดังนั้นในฐานะที่เป็นทางเลือก 'คำสั่ง: yum makecache' ใน playbook
dnf ยังมีคำสั่ง makecache แม้ว่าจะเป็นไปได้ที่จะบังคับให้ซิงโครไนซ์ข้อมูลเมตาด้วยสวิตช์ --refresh
yum makecache
; บางทีคุณอาจขยายคำตอบของคุณเพื่อให้มีประโยชน์มากขึ้นเช่นโดยอธิบายว่าทำไมyum makecache
ไม่แนะนำหรือสิ่งที่dnf
เทียบเท่า
yum
ส่งคืนรายการอัพเดตแพ็กเกจทั้งหมดจากที่เก็บทั้งหมดหากมีอยู่apt-get update
รีเฟรชไฟล์ดัชนี แต่yum check-update
ทำไม่ได้