yum เทียบเท่ากับ 'apt-get update' คืออะไร?


86

Debian apt-get updateเรียกและอัพเดตดัชนีแพ็กเกจ เพราะฉันคุ้นเคยกับวิธีการทำสิ่งนี้ฉันรู้สึกประหลาดใจที่พบว่าyum updateทำทุกอย่างและอัพเกรดระบบ สิ่งนี้ทำให้ฉันอยากรู้วิธีปรับปรุงดัชนีแพ็คเกจโดยไม่ต้องติดตั้งอะไร

คำตอบ:


90

check-updateคำสั่งจะรีเฟรชดัชนีแพคเกจและตรวจสอบการปรับปรุงที่ใช้ได้:

yum check-update

3
คำสั่งนี้จะช่วยให้คุณสามารถตรวจสอบว่าการปรับปรุงใด ๆ ที่มีอยู่สำหรับแพคเกจติดตั้ง yumส่งคืนรายการอัพเดตแพ็กเกจทั้งหมดจากที่เก็บทั้งหมดหากมีอยู่ apt-get updateรีเฟรชไฟล์ดัชนี แต่yum check-updateทำไม่ได้
SuB

นี้จะไม่ทำงานหากyumได้รับการเรียกใช้เมื่อเร็ว ๆ นี้เห็นบางส่วนของคำตอบอื่น ๆ หาทางเลือก ...
rogerdpack

29

ในขณะที่yum check-updateจะตรวจสอบการอัพเดตสำหรับแพ็คเกจที่ติดตั้งหากจำเป็นต้องรีเฟรชดังนั้นคำสั่งอื่น ๆ ส่วนใหญ่จะ

คำสั่งที่เทียบเท่าอย่างเคร่งครัดapt-get updateคือyum makecache... อย่างไรก็ตามโดยทั่วไปไม่แนะนำให้เรียกใช้โดยตรงใน yum


1
ฉันไม่เข้าใจประโยคแรก คุณสามารถใช้ถ้อยคำใหม่ได้ไหม?
tshepang

8
หมายความว่าyumคำสั่งอื่น ๆเช่นyum upgradeจะทำงานโดยอัตโนมัติyum check-updateหากจำเป็น ในคำอื่น ๆเป็นพื้นเดียวกับyum upgrade apt-get update; apt-get upgrade
มิเคล

ขอขอบคุณ! yum check-update ไม่ได้ช่วยฉันกับข้อผิดพลาด 404 แต่ makecache ยำช่วย! ขอบคุณมาก!
socketpair

ต้นฉบับเป็นเรื่องเกี่ยวกับการปรับปรุง repodata โดยอัตโนมัติเพื่อนำเสนอข้อมูลล่าสุด (สิ่งที่ฉลาด - ไม่ได้ทำหรืออย่างน้อยก็ไม่ได้ในปี 2554) หลังจากการแก้ไขตอนนี้ก็ไร้ความหมายอย่างประหลาด :(.
James Antill

ทำไมไม่ได้ขอแนะนำให้ทำงานyum makecache? มันระบุไว้ในหน้าคนและดูเหมือนว่าจะทำงานเช่นapt-get update... นอกจากนี้ยังทราบว่าyum check-updateไม่เคยดำเนินการฟื้นฟูให้ดูคำตอบอื่น ๆ , FWIW :)
rogerdpack

21

น่าเสียดายที่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


2
ไม่แน่ใจว่าทำไมคำตอบนี้อ่อนเพลียที่ด้านล่าง ดูเหมือนว่าคำตอบที่ชัดเจนและเรียบง่าย
cbmanica

2

นั่นคือคำสั่งเพื่ออัพเดตแคชโลคัลดังนั้น

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เทียบเท่า
Stephen Kitt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.