จะปลอดภัยหรือไม่ที่จะลบเนื้อหา / var / cache / apt ด้วยตนเอง?


21

ในระบบฝังตัวที่มีพื้นที่ดิสก์ จำกัด มากฉันมีโฟลเดอร์ที่/var/cache/aptมีขนาด 700MB srcpkgcache.bin.*และ*.binไฟล์ขนาดใหญ่สองสามไฟล์

การแสดงsudo apt-get cleanไม่ได้ทำให้เห็นความแตกต่าง

การลบ*.bin*ไฟล์เหล่านี้ด้วยตนเองปลอดภัยหรือไม่


6
ในฐานะของ Ubuntu 14.04 มันปลอดภัยอย่างสมบูรณ์ที่จะลบ*.binไฟล์ในโฟลเดอร์ดังกล่าว - สมมติว่าไม่มีกระบวนการที่เกี่ยวข้องกับ apt กำลังทำงานอยู่ ถัดไปapt-get updateจะสร้าง*.binไฟล์ใหม่ คำถามนี้เป็นเด็ดไม่เกี่ยวกับไฟล์ในแต่ไฟล์/var/cache/apt/archives /var/cache/apt/*.binแตกต่างใหญ่ อดีตสามารถทำความสะอาดได้โดยการออกapt-get cleanหลังจะต้องถูกลบออกด้วยตนเอง เห็นได้ชัดว่าผู้ลงคะแนนเพื่อปิดคำถามไม่ได้อ่านคำถามอย่างถูกต้อง น่าเสียดายที่ฉันไม่สามารถลงคะแนนให้เปิดใหม่หลังจากให้รางวัลตัวแทนบางส่วนในค่าหัว
0xC0000022L

3
สิ่งนี้ไม่ซ้ำกัน คำตอบที่เชื่อมโยงนั้นเกี่ยวกับไดเรกทอรีย่อยarchivesภายในคำตอบ/var/cache/apt/นี้เกี่ยวกับ*.bin*ไฟล์
Olaf Dietsche

1
มีความเป็นไปได้ที่ซ้ำกันของการลบไฟล์ออกจาก / var / cache / apt (ไม่ใช่ที่เก็บถาวร)
Eliah Kagan

คำตอบ:


11

ไม่ได้จริงๆ ไฟล์เหล่านั้นช่วยให้ระบบของคุณทราบว่ามีอะไรบ้างและไม่มีอะไรบ้าง การล้างไดเรกทอรีนั้นจะส่งผลให้ระบบ apt-get ใช้งานไม่ได้ นี่คือเคล็ดลับ

ก่อนอื่นให้ทำความสะอาดอัตโนมัติ

เพิ่ม

DPkg::Post-Invoke { "apt-get clean"; };

/etc/apt/apt.confที่ส่วนท้ายของ มันจะทำให้กระบวนการ apt และ dpkg ใช้เวลานานขึ้น แต่จะทำให้มันเพื่อให้แคชไดเรกทอรีของคุณสะอาดอยู่เสมอ

ถัดไปลบคลังเก็บ

เริ่มต้นด้วยการลบและปิดการใช้งานการเก็บถาวรต้นฉบับทั้งหมด (ที่คุณไม่ได้ใช้งาน) ในระบบฝังตัวคุณอาจไม่ต้องการมัน ถัดไปลบคลังเก็บทั้งหมดที่ไม่ได้ใช้งาน คุณสามารถเรียกใช้apt-cache policyเพื่อทราบว่าแพ็กเกจ repo มาจากไหนหากไม่แน่ใจ

กำจัดการเก็บถาวรเพิ่มเติม

PPA บางอันน่ากลัวที่มีแพ็กเกจจำนวนมากเมื่อคุณต้องการเพียง 1 หรือ 2 ลองปิดการใช้งาน PPA เหล่านั้นและเพียงแค่ติดตั้งไฟล์ deb ด้วยตนเอง คุณประหยัดพื้นที่ในกรณีเหล่านั้น แต่คุณหลวมการอัปเดตอัตโนมัติ โปรดจำไว้ว่า dpkg จะจัดการการขึ้นต่อกันดังนั้นคุณยังคงสามารถติดตั้งสิ่งต่าง ๆ ได้พร้อม ๆ กันแล้วจึงเรียกใช้apt-get -f installเพื่อดึงการอ้างอิง

คำตอบสุดขีดทั้งหมด 1

เพราะพูดถึงระบบฝังตัว 90% ของ repos หลักจะไม่ทำอะไรที่ดี ในการจัดการเรื่องนี้คุณสามารถเรียกใช้เซิร์ฟเวอร์ repo apt-get ของคุณเองดูลิงค์นี้ มันไม่ใช่เรื่องง่ายและเป็น PIA สำหรับเครื่องเดียว แต่ถ้าคุณมีหลาย ๆ เครื่องมันก็คุ้มค่าจริงๆ (คุณ apt repo เซิร์ฟเวอร์สามารถโฮสต์เพียงชุดย่อยของแพคเกจที่คุณใช้จริง ๆ คุณไม่จำเป็นต้องทำมิเรอร์ทั้งหมด)

คำตอบที่สมบูรณ์มาก 2

หากพื้นที่มีขนาดใหญ่มากปัญหาคุณสามารถปิดการใช้งาน apt ทั้งหมดด้วยกันและกลับไปใช้การติดตั้งด้วยตนเองผ่าน dpkg ฉันต้องทำสิ่งนี้กับระบบฝังตัวหลายระบบ มันใช้งานได้ แต่มันเป็นฝันร้ายของผู้ดูแลระบบ


นี่เป็นคำตอบที่ยอดเยี่ยม (โดยเฉพาะคำตอบที่ยอดเยี่ยมที่สุด) แต่ /etc/apt/apt.conf ไม่มีอยู่ใน Ubuntu 14.04 อีกต่อไป แนวปฏิบัติที่ดีที่สุดในปัจจุบันคืออะไร?
zachaysan

1
JUst สร้างไฟล์หากไม่มีอยู่ มันจะยังคงถูกอ่าน
coteyr

5
กรุณาทำไมคุณเขียนมันไม่ปลอดภัยที่จะลบ*.binไฟล์? การเรียกใช้ใด ๆapt-get updateจะสร้างไฟล์เหล่านั้นใหม่ตั้งแต่เริ่มต้น (ทดสอบแล้ว) ตัวอย่างเช่นกรณีการใช้งานของฉันคือฉันต้องการสร้างเทมเพลตคอนเทนเนอร์ LXC และต้องการตัดการจัดเก็บลงให้มากที่สุด ฉันไม่เห็นเหตุผลว่าทำไมจึงไม่ปลอดภัย และคำตอบของคุณไม่ได้บ่งบอกถึงเหตุผลเพียงระบุว่าไม่ปลอดภัย ผ่านการทดสอบแล้วว่าปลอดภัยอย่างสมบูรณ์บน Ubuntu 14.04
0xC0000022L

1
คุณกำลังบอกว่ารวมถึงapt-cache cleanการโทรแบบ dpkg จะส่งผลให้แคชสะอาด แต่ผู้ใช้บอกapt-cache cleanว่าไม่ได้ทำความสะอาดอะไรเลยสำหรับพวกเขา คำตอบของคุณนั้นผิดโดยสิ้นเชิงเพราะ dpkg ไม่ได้ใช้/var/cache/apt/*เนื้อหาเพื่อรับข้อมูลสถิติของแพ็คเกจ
อันวาร์

1
apt-get manpageอย่างชัดเจนอธิบายฟังก์ชั่นของการcleanเป็น * ล้างสะอาดออกมาจากพื้นที่เก็บข้อมูลในท้องถิ่นของไฟล์แพคเกจที่ดึง มันลบทุกอย่างยกเว้นไฟล์ล็อคจาก / var / cache / apt / archives / และ /var/cache/apt/archives/partial/.* หากเป็นอันตรายจะไม่มีฟังก์ชั่นการทำความสะอาด
อันวาร์

3

แน่นอนคุณสามารถลบpkgcache.binและsrcpkgcache.binไม่มีอะไรเกิดขึ้น เพียงเรียกใช้apt-get updateเพื่อสร้างใหม่อีกครั้ง


... และนี่เป็นความจริงที่เป็นอิสระจากการลบ.debไฟล์หรือไม่
einpoklum - คืนสถานะให้โมนิก้า

1

เก็บpkgcache.binและsrcpkgcache.binคุณสามารถลบผู้อื่นได้อย่างปลอดภัย อย่าสัมผัสไดเรกทอรี!


โอเคขอบคุณ. ฉันย้าย*bin.*ไฟล์ไปยังโฟลเดอร์สำรองชั่วคราว อย่างไรก็ตามทำไม apt-get จัดการแคชภายในแคช ไดเรกทอรีแคชควรเป็นที่เก็บข้อมูลชั่วคราวตามลักษณะ
ysap

ปัญหานี้ได้รับรายงานข้อผิดพลาดแล้ว :) ดูที่นี่
Frantique

แน่นอนคุณสามารถลบ pkgcache.bin และ srcpkgcache.bin ไม่มีอะไรเกิดขึ้น apt-get update จะสร้างมันขึ้นมาใหม่
Tomas M

0

แน่นอนคุณสามารถสร้าง NFS-share (ระบบไฟล์เครือข่าย) สำหรับสิ่งนี้ ปล่อยไฟล์เหล่านี้ไว้บนเซิร์ฟเวอร์และติดตั้งการแบ่งใช้เมื่อคุณต้องการอัพเดต / ติดตั้งแพ็กเกจเท่านั้น ในสภาพแวดล้อมแบบฝังตัวการติดตั้งมักจะค่อนข้างคงที่อยู่แล้ว

sshfs เป็นอีกตัวเลือกที่ดีมากตั้งค่าได้ง่ายกว่ามาก (โดยทั่วไปต้องการเพียง SSH ซึ่งเป็นมาตรฐาน) แต่มีค่าใช้จ่ายมากกว่า (ช้ากว่า)


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