Pertanyaan Amankah secara manual menghapus konten / var / cache / apt?


Pada sistem tertanam dengan ruang disk yang sangat terbatas, saya memiliki folder /var/cache/apt penuh dengan 700MB srcpkgcache.bin.* dan beberapa besar *.bin file.

Pertunjukan sudo apt-get clean tidak membuat perbedaan yang terlihat.

Aman untuk menghapusnya secara manual *.bin* file?


20
2017-11-28 16:11


asal


Pada Ubuntu 14.04 itu sangat aman untuk menghapus *.bin file dalam folder tersebut - dengan asumsi tidak ada proses terkait apt yang sedang berjalan. Selanjutnya apt-get update akan diregenerasikan *.bin file. Pertanyaan ini sudah pasti tidak tentang file dalam /var/cache/apt/archives, tetapi file /var/cache/apt/*.bin. Perbedaan besar. Yang pertama dapat dibersihkan dengan menerbitkan apt-get clean, yang terakhir harus dihapus secara manual. Jelas mereka yang memilih untuk menutup pertanyaan belum Baca baca pertanyaannya dengan benar. Sayangnya saya tidak dapat memilih untuk membuka kembali setelah memberikan beberapa perwakilan saya. - 0xC0000022L
Ini adalah tidak duplikat. Jawaban terkait adalah tentang subdirektori archives dalam /var/cache/apt/, yang satu ini tentang *.bin* file. - Olaf Dietsche
Kemungkinan duplikat dari Hapus file dari / var / cache / apt (BUKAN arsip) - Eliah Kagan


Jawaban:


Tidak juga. File-file itu membantu sistem Anda menentukan apa yang tersedia dan apa yang tidak. Mengosongkan direktori itu akan menghasilkan sistem apt-get yang rusak. Berikut beberapa kiat.

Pertama, bersihkan otomatis

tambah sebuah

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

sampai akhir /etc/apt/apt.conf. Ini akan membuat proses apt dan dpkg memakan waktu lebih lama, tetapi akan membuatnya begitu direktori cache Anda selalu bersih.

Selanjutnya, Hapus arsip

Mulailah dengan menghapus dan melumpuhkan semua arsip sumber (yang tidak Anda gunakan). Pada sistem embedded Anda mungkin tidak membutuhkannya. Selanjutnya hapus semua arsip yang tidak digunakan. Anda bisa berlari apt-cache policy untuk mencari tahu apa yang repo paket berasal dari jika Anda tidak yakin.

Penghapusan lebih banyak arsip

PPAs beberapa mengerikan tentang memiliki sejumlah besar paket di dalamnya ketika Anda hanya perlu 1 atau 2. Coba nonaktifkan PPA dan hanya menginstal file deb secara manual. Anda menghemat ruang dalam kasus tersebut, tetapi Anda kehilangan pembaruan otomatis. Perlu diingat bahwa dpkg akan menangani dependensi, jadi Anda masih dapat menginstal hal-dengan-ton-of-deps.deb kemudian jalankan apt-get -f install untuk mengambil dependensi.

Jawaban Sangat Ekstrim 1

Karena berbicara tentang sistem tertanam, 90% dari repositori utama tidak akan ada gunanya bagimu. Untuk menangani ini, Anda dapat menjalankan server apt-get repo Anda sendiri Lihat tautan ini. Ini tidak mudah, dan ini adalah PIA hanya untuk satu mesin. Tetapi jika Anda memiliki beberapa mesin ini, itu benar-benar sepadan. (Server apt to repo dapat menghosting hanya sebagian paket yang benar-benar Anda gunakan. Anda tidak perlu mencerminkan semuanya)

Jawaban Sangat Ekstrim 2

Jika ruang benar-benar sebesar masalah, maka Anda dapat menonaktifkan semua bersama-sama dan kembali ke menginstal secara manual melalui dpkg. Saya harus melakukan ini pada beberapa sistem embedded. Berhasil, tapi ini mimpi buruk admin.


11
2017-11-28 16:29



Ini adalah jawaban yang bagus (terutama yang sangat ekstrim) tetapi /etc/apt/apt.conf tidak ada lagi di Ubuntu 14.04. Apa praktik terbaik saat ini? - zachaysan
JUst buat file jika tidak ada. Itu masih akan dibaca. - coteyr
Tolong, mengapa Anda menulis itu tidak aman untuk menghapus *.bin file? Setiap run of apt-get update akan meregenerasi file-file tersebut dari awal (diuji). Misalnya kasus penggunaan saya adalah saya ingin membuat templat kontainer LXC dan ingin menghapus arsip sebanyak mungkin. Saya tidak bisa melihat alasan apa pun. Itu tidak aman. Dan jawaban Anda tidak menunjukkan alasan, hanya menyatakan itu tidak aman. Sudah diuji sangat aman pada Ubuntu 14.04. - 0xC0000022L
Anda mengatakan termasuk apt-cache clean dalam panggilan dpkg akan menghasilkan cache yang lebih bersih, tetapi kata pengguna apt-cache clean tidak membersihkan apa pun untuk mereka. Juga jawaban Anda sangat salah karena dpkg tidak digunakan /var/cache/apt/* konten untuk mendapatkan informasi untuk statistik paket. - Anwar
Itu apt-get manpage jelas menggambarkan fungsi clean as * membersihkan membersihkan repositori lokal dari file paket yang diambil. Ini menghapus segalanya kecuali file kunci dari / var / cache / apt / archives / dan /var/cache/apt/archives/partial/.* Jika berbahaya, tidak akan ada fungsi seperti itu untuk dibersihkan. - Anwar


Tentu saja Anda dapat menghapus pkgcache.bin dan srcpkgcache.bin, tidak ada yang terjadi. Lari saja apt-get update untuk menciptakan kembali mereka.


2
2017-10-16 08:26



... dan apakah ini benar secara independen dari penghapusan .deb file? - einpoklum


Menjaga pkgcache.bin dan srcpkgcache.bin, Anda dapat menghapus yang lain dengan aman. Jangan sentuh direktori!


1
2017-11-28 16:12



Ok terima kasih. Saya memindahkan sementara *bin.* file ke folder cadangan. Namun, mengapa apt-get mengelola cache dalam cache? Direktori cache harus merupakan penyimpanan sementara oleh alam. - ysap
Masalah ini sudah dilaporkan dengan bug. :) Lihat sini - Frantique
Anda tentu saja dapat menghapus pkgcache.bin dan srcpkgcache.bin, tidak ada yang terjadi. pembaruan apt-get membuat ulang mereka. - Tomas M


Anda tentu saja dapat membuat NFS-share (filesystem jaringan) untuk ini. Tinggalkan file ini di server dan pasang hanya ketika Anda ingin memperbarui / memasang paket. Dalam lingkungan yang tertanam, instalasi biasanya relatif statis.

sshfs adalah opsi lain yang baik, jauh lebih mudah untuk diatur (pada dasarnya hanya membutuhkan SSH yang standar), tetapi memiliki lebih banyak overhead (lebih lambat).


0
2017-11-28 18:28



Ini harus bekerja secara teknis, kecuali Anda tidak memiliki kontrol penuh ketika berjalan tepat. Jika Anda menggunakan sesuatu seperti ini, Anda perlu memastikan bahwa Anda menonaktifkan tugas "otomatis" seperti tugas cron yang menjalankan pembaruan apt-get. - coteyr