Saya baru saja menginstal Arch Linux dan menemukan bahwa saya menggerogoti banyak penyimpanan relatif cepat. Untuk alasan apa pun saya sudah menggunakan 17GB hanya dalam waktu sekitar 2 minggu. Saya tidak memiliki banyak perangkat lunak yang diinstal jadi saya dituntun untuk percaya bahwa semua paket lama dikelola di suatu tempat.
Untuk mendukung ini, saya perhatikan bahwa jika saya menginstal sebuah paket, menghapus paket itu, dan kemudian menginstalnya kembali bahwa pacman hanya membongkar dan menginstal ulang perangkat lunak tanpa harus mengunduhnya kembali.
Setelah saya menginstal sistem basis saya, sebelum perangkat lunak tambahan, saya menggunakan sekitar 2GB atau lebih mungkin. Sejak itu saya hanya menginstal Matlab, Skype, Wine, dan beberapa program kecil lainnya. Tentu saja saya juga telah menginstal pustaka yang hilang dan sejenisnya, tetapi tidak bernilai hampir 15GB.
Apakah saya benar-benar salah di sini atau apakah Arch tidak pernah menghapus paket lama saat mengunduh / memutakhirkan ke versi baru?
Jika demikian, bagaimana cara saya menghapus paket yang tidak digunakan ini?
Juga, ketika saya menghapus paket yang diinstal saya gunakan pacman -R ...
sumber
cron
atausystemd
pekerjaan.Jawaban:
Tidak, pacman tidak menghapus paket lama dari cache Anda (
/var/cache/pacman/pkg
) jadi, seiring waktu, itu dapat mengisi.Anda dapat mengadopsi dua pendekatan untuk membersihkan cache: brute force one dengan
pacman -Sc
:Atau, untuk pendekatan yang lebih bernuansa, Anda dapat menggunakan salah satu utilitas yang kapal dengan pacman-contrib,
paccache
:Secara default,
paccache
akan menghapus semua kecuali tiga versi terakhir dari paket yang diinstal, tetapi Anda dapat mengubah nomor ini dengan-k, --keep
sakelar. Ada juga-d, --dryrun
saklar untuk melihat perubahan Anda. Lihatpaccache --help
semua sakelar.Ada sejumlah utilitas dalam paket pacman-contrib untuk membantu manajemen paket, ada baiknya mencari semuanya dan mendapatkan pemahaman tentang bagaimana mereka bekerja dan dapat membuat Arch berjalan lebih mudah. Anda dapat melihat daftar lengkapnya dengan:
sumber
--clean
saklar ganda : yang melarang dengan mudah kembali ke paket yang berfungsi, jika ada masalah yang terjadi dengan versi terbaru (misalnya paket baru bergantung pada lib yang lebih lama atau rilis Python; sama dengan perangkat keras dan terbaru inti). Saya menemukan pengaturan cache pacman di tempat lain daripada/
solusi yang jauh lebih baik (cukup setel path di /etc/pacman.conf ).paccache
Anda bisa mendapatkannya dengan menginstalpacman-contrib
paket.$ pacman -Ql pacman-contrib | awk -F"[/ ]" '/\/usr\/bin\/./ {print $NF}'
untuk menghindari garis kosong dalam hasil? ;-)rm -rf /var/cache/pacman/pkg
adalah hal yang salah untuk dilakukanCache paket Anda ada di
/var/cache/pacman/pkg/
.CATATAN:
pacman
paket diperbarui pada 2018 dan juga memerlukan instalasipacman-contrib
untuk menggunakan skrip / alat seperti yangpaccache
dijelaskan di bawah ini.Melakukan:
Untuk melakukan
-dryrun
dan melihat apa yang bisa dihapus dari utilitas itu saat Anda melakukan selanjutnya:Untuk menghapus paket yang di-cache. 17gbs memang terdengar curam. Pastikan Anda tidak memiliki beberapa log run-away. Melakukan:
Atau bahkan sekadar:
Untuk ide yang lebih umum tentang apa yang terjadi.
sumber
pacman -Scc
melakukan apa yang Anda minta, tetapi tidak disarankan. Dari WikiSelain itu, ketika saya menghapus paket, saya lebih suka menggunakan
pacman -Rnsc
, karena itu juga menghapus dependensi paket serta paket yang tergantung pada yang satu ini. Seperti biasa, baca dengan cermat paket mana yang dihapus, karena Anda dapat dengan mudah meninggalkan sistem kami dalam keadaan tidak dapat digunakan.sumber
rm /var/cache/pacman/pkg/*
itu? Atau - setidaknya sebagai default, saya kira. Saya telah memindahkan cache pkg ke/tmp
sebagian besar mesin pada waktu yang lalu dan membiarkansquid
menangani satu cache pusat di router. Tidak semudah itupacman -Scc
.Saya sangat menyarankan penggunaan
paccache
bukanpacman -Sc
. Bahkan ada bendera yang sangat efektif untuk menghapus versi selektif dari paket yang dihapus-u
. Bendera yangpaccache
saya sarankan adalah (sebagai bagian dari paccache v5.0.2):-d
,--dryrun
: melakukan lari kering, hanya menemukan paket kandidat-r
,--remove
: hapus paket kandidat-u
,--uninstalled
: hanya menargetkan paket yang dihapus-k
,--keep <num>
: simpan "num" dari setiap paket di cache (default: 3)Contoh: Periksa sisa versi cache dari paket yang dihapus
sumber
-u
daripaccache
. Contoh paket besar adalah misalnya Gnome, KDE, atau Texlive untuk memberi Anda ide.-k
bendera baru bagi saya dan tidak sangat baik dijelaskan dalam dialog bantuan, sehingga penggunaannya di sini adalah berguna.