/ Var / cache / apt içeriğini el ile silmek güvenli midir?


21

Çok sınırlı disk alanı olan gömülü bir sistemde /var/cache/apt700 MB srcpkgcache.bin.*ve birkaç büyük dosyayla dolu bir klasörüm var *.bin.

Sahne sudo apt-get cleangörünür bir fark yoktu.

Bu *.bin*dosyaları el ile silmek güvenli midir?


6
Ubuntu 14.04'ten itibaren, *.binsöz konusu klasördeki dosyaları kaldırmak tamamen güvenlidir - apt ile ilgili bir işlem yapılmamaktadır. Bir sonraki dosyaları apt-get updateyeniden oluşturur *.bin. Bu soru kesinlikle olduğunu değil de dosyalar hakkında /var/cache/apt/archives, ancak dosyalar /var/cache/apt/*.bin. Büyük fark. İlki yayınlanarak temizlenebilir apt-get clean, ikincisinin elle çıkarılması gerekir. Açıkça soruyu kapatmak için oy verenler , soruyu doğru okumamışlardır . Maalesef, ikramiyemin bir kısmını ödül olarak verdikten sonra yeniden oy kullanamıyorum.
0xC0000022L

3
Bu bir kopya değil . Bağlantılı cevap alt dizin hakkındadır archivesiçinde /var/cache/apt/bu bir hakkındadır, *.bin*dosyalar.
Olaf Dietsche

Yanıtlar:


11

Pek sayılmaz. Bu dosyalar sisteminize neyin uygun neyin mevcut olduğunu belirleme konusunda yardımcı olur. Bu dizinin boşaltılması, apt-get sisteminin kırılmasına neden olur. İşte birkaç ipucu.

İlk önce, otomatik temizleme

ekle

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

sonuna kadar /etc/apt/apt.conf. Apt ve dpkg işlemlerinin daha uzun sürmesini sağlar, ancak önbellek dizininizin her zaman temiz kalmasını sağlar.

Sonra, Arşivleri kaldır

Tüm kaynak arşivlerini kaldırarak ve devre dışı bırakarak başlayın (kullanmadığınız). Gömülü bir sistemde muhtemelen onlara ihtiyacınız yok. Daha sonra, kullanılmayan tüm arşivleri kaldırın. apt-cache policyEmin değilseniz, bir paketin hangi repodan geldiğini bulmak için koşabilirsiniz .

Arşivlerin Kaldırılması

Bazı PPA'lar sadece 1 veya 2'ye ihtiyaç duyduğunuzda çok sayıda pakete sahip olmak konusunda korkunçtur. Bu PPA'ları devre dışı bırakmayı ve deb dosyalarını elle kurmayı deneyin. Bu durumlarda yerden tasarruf edersiniz, ancak otomatik güncelleme kaybedersiniz. Dpkg'nin bağımlılıklarla başa çıkacağını unutmayın, böylece hala tonlarca şeyi deps.deb ile yükleyerek apt-get -f installbağımlılıkları getirmeye çalışabilirsiniz .

Tamamen Aşırı Cevap 1

Gömülü bir sistemden bahsettiği için, ana depoların% 90'ı size bir fayda sağlamaz. Bunu vermek için kendi apt-get repo sunucunuzu çalıştırabilirsiniz. Bu bağlantıya bakın . Kolay değil ve sadece bir makine için bir PIA. Ancak bu makinelerden birkaçına sahipseniz tamamen buna değer. (Size uygun repo sunucusu, gerçekte kullandığınız paketlerin yalnızca bir alt kümesini barındırabilir. Her şeyi yansıtmanız gerekmez)

Tamamen Aşırı Cevap 2

Alan gerçekten bir sorunun büyüklüğü ise, apt'leri bir arada devre dışı bırakabilir ve dpkg yoluyla elle yükleme işlemine geri dönebilirsiniz. Bunu birkaç gömülü sistemde yapmak zorunda kaldım. İşe yarıyor ama yönetici kabusu.


Bu harika bir cevap (özellikle de tamamen aşırı olanlar) ancak /etc/apt/apt.conf, Ubuntu 14.04'te artık mevcut değil. Mevcut en iyi uygulama nedir?
zachaysan

1
Varsa, dosyayı oluşturun. Hala okunacak.
coteyr

5
Lütfen, neden *.bindosyaları silmek güvenli olmadığını yazıyorsunuz ? Herhangi bir çalıştırma, apt-get updatebu dosyaları sıfırdan yeniden oluşturur (test edilir). Mesela benim kullanım durumum LXC konteynır şablonları oluşturmak ve arşivi olabildiğince aşağıya çekmek istiyorum. Güvensiz olması için hiçbir sebep göremiyorum. Ve Cevabınız sadece bir sebep göstermez devletler Güvenli olmadığını. Ubuntu 14.04'te tamamen güvenli olduğunu test etti .
0xC0000022L

1
apt-cache cleanBir dpkg aramasına dahil edilmesinin temiz önbellekle sonuçlanacağını söylüyorsunuz, ancak kullanıcı apt-cache cleanonlar için hiçbir şey temizlemediğini söylüyor . Ayrıca cevabınız tamamen yanlış çünkü dpkg /var/cache/apt/*paket istatistiklerinden haberdar olmak için içerik kullanmıyor .
Anwar,

1
Apt-get manpage açıkça işlevini açıklar cleanAlınan paket dosyalarının yerel depo dışarı * temiz verniklerin olarak. Kilit dosyası dışındaki her şeyi / var / cache / apt / archives / ve /var/cache/apt/archives/partial/.* adresinden kaldırır. Tehlikeli ise, böyle bir işlem yapılmaz.
Anwar,

3

Elbette silebilirsiniz pkgcache.binve srcpkgcache.binhiçbir şey olmuyor. Sadece apt-get updateonları yeniden oluşturmak için koş .


... ve bu .debdosyaların silinmesinden bağımsız olarak doğru mu?
einpoklum - Monica

1

Tutun pkgcache.binve srcpkgcache.bingüvenle diğerlerini silebilirsiniz. Dizinlere dokunma!


Tamam teşekkürler. *bin.*Dosyaları geçici olarak bir yedekleme klasörüne taşıdım . Ancak, apt-get neden önbellek içindeki önbelleği yönetiyor ? Önbellek dizini doğası gereği geçici bir depolama olmalıdır.
Kasım'da

Bu sorun zaten bildirildi. :) Buraya
Frantique

Elbette pkgcache.bin ve srcpkgcache.bin dosyalarını silebilirsiniz, hiçbir şey olmuyor. apt-get update onları yeniden yaratır.
Tomas M,

0

Elbette bunun için bir NFS paylaşımı (ağ dosya sistemi) oluşturabilirsiniz. Bu dosyaları sunucuda bırakın ve paylaşımı yalnızca paketleri güncellemek / yüklemek istediğinizde bağlayın. Gömülü ortamlarda, kurulum yine de nispeten statik olacaktır.

sshfs başka iyi bir seçenektir, kurulumu çok daha kolaydır (temelde sadece standart olan SSH'yi gerektirir), ancak daha fazla ek yükü vardır (daha yavaş).


Bu, teknik olarak çalışmalıdır, ancak apt çalıştırmalarının tam kontrolüne sahip değilseniz. Eğer böyle bir şey kullanıyorsanız, apt-get update komutunu çalıştıran cron işleri gibi "otomatik" görevleri devre dışı bıraktığınızdan emin olmanız gerekir.
coteyr
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.