ล้างรายการ apt-get


32

ฉันกำลังสร้างอิมเมจสำหรับลีนุกซ์แบบฝังที่ใช้เดเบียน ฉันใช้apt-get updateก่อนหน้านี้บนอุปกรณ์ที่ฉันต้องการใช้เป็นฐานสำหรับรูปภาพนั้นดังนั้นรายการภายใต้/var/lib/apt/listsจึงค่อนข้างใหญ่ (ขนาดเกือบ 100 MB)

ฉันต้องการที่จะรักษาapt-getฟังก์ชั่น (ดังนั้นฉันไม่ต้องการที่จะลบที่เก็บ apt) แต่ฉันต้องการที่จะเพิ่มพื้นที่ว่างในรายการเหล่านี้ (รายการเกือบสองเท่าของขนาดของภาพ)

ไม่มีใครรู้วิธีการทำเช่นนั้น? ฉันสามารถลบไฟล์ใต้ได้/var/lib/apt/listsไหม?

คำตอบ:


47

คุณสามารถใช้:

rm /var/lib/apt/lists/*

นี่จะเป็นการลบรายการแพ็กเกจ จะไม่มีการลบที่เก็บซึ่งถูกกำหนดค่าในไฟล์/etc/apt/sources.listปรับแต่ง สิ่งที่สามารถเกิดขึ้นได้คือเครื่องมือที่apt-cacheไม่สามารถรับข้อมูลแพ็คเกจได้เว้นแต่ว่าคุณจะอัพเดทรายการแพ็คเกจ และapt-get installจะล้มเหลวด้วยE: Unable to locate package <package>เนื่องจากไม่มีข้อมูลเกี่ยวกับแพ็คเกจ

จากนั้นเพียงแค่เรียกใช้:

apt-get update

เพื่อเขียนรายการเหล่านั้นใหม่และคำสั่งจะทำงานอีกครั้ง

อย่างไรก็ตามขอแนะนำให้เรียกใช้apt-get updateก่อนติดตั้งอะไร


6

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

updateทางเลือกหนึ่งคือการที่คุณสามารถบีบอัดรายการและอย่าลืมที่จะยกเลิกการบีบอัดพวกเขาก่อนที่คุณต่อไป

สิ่งที่ฉันทำบ่อยๆ (โดยเฉพาะเมื่อฉันต้องการทดลองกับแหล่งข้อมูลพิเศษ) คือการสร้างไดเรกทอรี/etc/apt/sources.availableและเพิ่มรายการสำหรับการแจกแจง ฉันสามารถเปิดใช้งานชุดย่อยใด ๆ ได้อย่างง่ายดายโดยการสร้าง symlink จาก/etc/apt/sources.list.dและปิดการใช้งานโดยการลบ symlink เหล่านั้น

ที่มีรายชื่อแหล่งที่ว่างเปล่าที่คุณสามารถapt-get update- /var/lib/apt/listsที่ควรล้างของคุณ จากนั้นเชื่อมโยงแหล่งข้อมูลที่เหมาะสมกลับเข้ามา/etc/apt/sources.list.dแต่ไม่updateถึงเวลาเช่นที่คุณตั้งใจจะใช้จริง

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