Pacman tarafından Arch Linux'ta kurulu eski paketleri nasıl silebilirim?


51

Yakın zamanda Arch Linux'u yükledim ve nispeten hızlı bir şekilde çok fazla depolama alanında yiyor olduğumu öğrendim. Hangi nedenle olursa olsun ben zaten 2 haftada 17GB kullandım. Çok fazla yazılıma sahip değilim, bu yüzden eski paketlerin hepsinin bir yerde bulunduğuna inanmaya başladım.

Bunu desteklemek için, eğer bir paket kurduysam, bu paketi çıkardıktan sonra yeniden yüklediğimi farkettim, pacman yalnızca yazılımı yeniden yüklemek zorunda kalmadan yalnızca paketten çıkarır ve yeniden yükler.

Temel sistemimi kurduktan sonra, fazladan yazılımdan önce yaklaşık 2GB kullandım ya da belki. O zamandan beri sadece Matlab, Skype, Wine ve diğer birkaç küçük programı kurdum. Tabii ki, aynı zamanda eksik kütüphaneleri ve benzerlerini de yükledim, fakat yaklaşık 15GB değerinde değil.

Burada tamamen yanlış mıyım veya yeni sürümleri indirirken / yükseltirken Arch hiçbir zaman eski paketleri silmez mi?

Öyleyse, bu kullanılmayan paketleri nasıl silerim?

Ayrıca, kurulu paketleri çıkardığımda kullanıyorum pacman -R ...


1
Paccache'i düzenli olarak cronveya systemdiş olarak ayarlamak iyi bir fikir olabilir .
Sparhawk

Yanıtlar:


59

Hayır, pacman eski paketleri önbelleğinizden ( /var/cache/pacman/pkg) kaldırmaz , bu nedenle zamanla doldurulabilir.

Önbelleği temizlemek için iki yaklaşım benimseyebilirsiniz: kaba kuvvet biri pacman -Sc:

-c, --clean
Disk alanını boşaltmak için artık önbellekten yüklenmemiş paketleri ve şu anda kullanılmayan eşitleme veritabanlarını kaldırın. Pacman paketleri indirdiğinde, onları bir önbellek dizinine kaydeder. Ek olarak, veritabanları indirdiğiniz her bir senkronizasyon DB'si için kaydedilir ve pacman.conf (5) yapılandırma dosyasından silinse bile silinmez. Yalnızca artık kurulu olmayan paketleri kaldırmak için bir --clean anahtarını kullanın; tüm dosyaları önbellekten kaldırmak için ikisini kullanın. Her iki durumda da, paketleri ve / veya kullanılmayan indirilen veritabanlarını kaldırma seçeneğine sahip olacaksınız.

Veya, daha ayrıntılı bir yaklaşım için, pacman-katkıda bulunan gemilerden birini kullanabilirsiniz paccache:

paccache, pacman paket tarball'larını içeren herhangi bir dizinden ne kadar ve neyin silindiğini kontrol etmeye yardımcı olacak çok sayıda seçeneğe sahip esnek bir pacman önbellek temizleme aracıdır.

Varsayılan olarak, paccacheyüklü bir paketin son üç sürümü hariç tümü kaldırılır, ancak bu sayıyı -k, --keepanahtarla değiştirebilirsiniz. Ayrıca -d, --dryrundeğişikliklerinizi önizlemek için bir anahtar var. Tüm paccache --helpanahtarlar için bakınız .

Pacman-Contrib paketinde paket yönetimine yardımcı olmak için çok sayıda yardımcı program vardır, hepsine bakmaya ve nasıl çalıştıklarını ve Arch'ı çalıştırmayı çok daha kolay hale getirebileceklerini anlamalarına değer. Tüm listeyi aşağıdakilerle görebilirsiniz:

pacman -Ql pacman-contrib | awk -F"[/ ]" '/\/usr\/bin/ {print $NF}'

jasonwryan dedi ki :) Ayrıca çift --cleananahtarla çok dikkatli olun : en son sürümle ilgili herhangi bir sorun olması durumunda çalışma paketine kolayca geri dönmeyi yasaklar (örneğin, yeni paket eski bir lib veya Python sürümüne dayanır; aynı donanım ve en son sürümle aynıdır) çekirdek). Pacman önbelleğini /çok daha iyi bir çözümden başka bir yerde ayarlamayı bulurum (sadece /etc/pacman.conf dizinindeki yolu ayarlayın ).
tuk0z

2
Eğer yoksa paccache, pacman-contribpaketi yükleyerek elde edebilirsiniz .
pfrenssen

+1, ancak $ pacman -Ql pacman-contrib | awk -F"[/ ]" '/\/usr\/bin\/./ {print $NF}'sonuçlarda boş bir satır olmamasını öneririm ? ;-)
Cbhihe 27:18

Welp, rm -rf /var/cache/pacman/pkgyapılacak yanlış şeydi
Post Öz


13

Paket önbelleğiniz içeride /var/cache/pacman/pkg/.

NOT: pacman paketler 2018'de güncellendi ve ayrıca aşağıda açıklandığı pacman-contribgibi komut dosyalarını / araçları kullanmak için kurulum gerektiriyor paccache.

Yap:

paccache -d

Bunu yapmak -dryrunve bir sonraki çalıştırmada bu yardımcı programın çalışmasının neler kaldırabileceğini görmek için:

paccache -r

Önbelleğe alınmış paketleri kaldırmak için. 17GB'lar dik ses çıkarıyor. Kaçak kayıt kütüğünün olmadığından emin ol. Yap:

du -h /var/log

Ya da sadece:

du -h /var

Neler olduğu hakkında daha genel bir fikir için.


7

pacman -Sccne istiyorsan onu yapar, ama tavsiye edilmez Gönderen Wiki

Ayrıca, önbellek klasörünü pacman -Scc ile tamamen boşaltmak da mümkündür , ancak yukarıdakilere ek olarak, bir paketin gerektiğinde doğrudan önbellek klasöründen yeniden yüklenmesini önleyen, böylece zorlayan yeniden indirmek için. Daha fazla disk alanı için çaresiz bir ihtiyaç olmadığı sürece asla kullanmamalısınız.

Bir kenara, paketleri kaldırdığımda kullanmayı tercih ediyorum pacman -Rnsc, çünkü paket bağımlılıklarını ve buna bağlı paketleri de ortadan kaldırıyor. Her zamanki gibi, hangi paketlerin çıkarıldığını dikkatlice okuyun, çünkü sistemimizi kullanılamaz bir durumda kolayca bırakabilirsiniz.


Bu harika - yani o rm /var/cache/pacman/pkg/*zaman eşdeğer ? Veya - en azından varsayılan olarak sanırım. Pkg önbelleğimi /tmpuzun zaman önce çoğu makineye squidyerleştirdim ve yönlendiricideki merkezi bir önbellek işlemesine izin verdim . pacman -SccSanki kadar kolay değil .
mikeserv

@mikeserv Yönlendiricinizde merkezi bir Pacman paketi önbelleği var mı? Nasıl kurdunuz, hem Arch masaüstü hem de dizüstü bilgisayarım olduğu için sesini seviyorum.
severen,

6

Ben kuvvetle kullanımını önermek paccacheyerine pacman -Sc. Kaldırılan paketlerin sürümlerini seçerek kaldırmak için çok etkili bir bayrak bile var -u. paccacheTavsiye ettiğim bayraklar ( paccache v5.0.2'nin bir parçası olarak):

  • -d, --dryrun: kuru çalışma gerçekleştirin, yalnızca aday paketleri bulun
  • -r, --remove: aday paketleri kaldır
  • -u, --uninstalled: yalnızca kaldırılan paketleri hedefle
  • -k, --keep <num>: önbellekteki her paketin "num" unu sakla (varsayılan: 3)

Örnek: Kaldırılan paketlerin kalan önbellek sürümlerini kontrol et

paccache -dvuk0

1
Bu seçeneklerin yazdırılması dışında mevcut cevaplara nasıl eklenir?
jasonwryan

Çok sayıda kullanılmamış büyük paketi çıkardıysanız, bunları pacman'ın önbelleğinden kaldırmak istiyorsunuz. Bu bayrak mümkündür -uarasında paccache. Büyük paketlerin örnekleri, örneğin size bir fikir vermek için Gnome, KDE veya Texlive'dir.
strpeter

1
Evet, bayrağa aşinayım. Demek istediğim, cevaba sadece daha fazla bayrak eklemek, zaten burada olanı kopyaladığı gerçeğini değiştirmiyor.
jasonwryan

-kbayrak benim için yeni ve çok iyi yardım iletişim izah değildi, bu yüzden burada kullanım faydalı oldu.
hLk
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.