Ketika saya menjalankan snap list --all
perintah itu menunjukkan semua versi snap paket yang diinstal.
Name Version Rev Tracking Developer Notes
atom 1.26.1 150 stable snapcrafters classic
brave v0.22.669dev 23 stable brave -
core 16-2.32.6 4571 stable canonical core
core 16-2.32.5 4486 stable canonical core,disabled
firefox 59.0.2-1 71 stable mozilla disabled
firefox 60.0-2 85 stable mozilla -
gimp 2.10.0 38 stable snapcrafters disabled
gimp 2.10.0 39 stable snapcrafters -
gimp 2.8.22 30 stable snapcrafters disabled
gnome-3-26-1604 3.26.0 64 stable/… canonical -
gnome-3-26-1604 3.26.0 62 stable/… canonical disabled
gnome-characters 3.28.0 86 stable/… canonical -
gnome-characters 3.26.2 69 stable/… canonical disabled
gnome-logs 3.26.2 25 stable/… canonical disabled
gnome-logs 3.28.0 31 stable/… canonical -
gnome-system-monitor 3.26.0 36 stable/… canonical disabled
gnome-system-monitor 3.26.0 39 stable/… canonical -
libreoffice 6.0.3.2 59 stable canonical disabled
libreoffice 6.0.4.2 63 stable canonical -
Sekarang ada begitu banyak paket yang dinonaktifkan di sana yang tidak lagi digunakan. Jadi saya ingin menghapus paket-paket itu. Di sini perintahnya snap remove gnome-3-26-1604 --revision=62
. Sekarang saya harus melakukannya untuk semua revisi dan untuk semua paket satu per satu. Apakah ada perintah yang akan menghapus paket snap yang dinonaktifkan atau tidak digunakan dengan satu baris perintah?
Terima kasih sebelumnya...
package-management
snap
Ryko
sumber
sumber
Jawaban:
Saya akan melihat ke dalam menambahkan ini dalam waktu dekat (sebagai 20% hal). Sementara itu, kamu bisa jatuh
menjadi skrip shell dan jalankan itu.
sumber
snap remove
(jika Anda melakukansnap login
)xargs
untuk menjadikannya oneliner :)Saya menemukan lebih elegan dan mudah digunakan pada alias (menggunakan tanda kutip tunggal) solusi ini :
Mulai dari snap 2.34 dan kemudian, Anda dapat mengatur jumlah maksimum revisi snap yang disimpan oleh sistem dengan mengatur
refresh.retain
opsi ( sumber ).sumber
Kemampuan untuk membersihkan / menghapus snap lama / cacat telah dibahas sebelumnya tetapi belum diimplementasikan. Sementara itu sayangnya ini proses manual.
sumber
Membangun jawaban sebelumnya, Anda mungkin harus melakukan sesuatu seperti:
Yang menghindari memancarkan kesalahan ketika tidak ada revisi snap dinonaktifkan dan mencari "dinonaktifkan" secara khusus di kolom catatan.
sumber
$6
bukan$5
. Thesnap list
perintah benar-benar membutuhkan--format
pilihan sehingga output yang dapat konsisten untuk scripting.Membangun saran @Chipaca, @ Ctrl-C, dan @Pablo Lalloni:
Ini mencari "nonaktif" di kolom "Catatan"
snap list --all
dan menjalankansnap remove <snap> --revision <rev>
snap yang sesuai.sumber
Setelah melihat catatan dari Mike tentang skrip yang melanggar antar versi karena jumlah kolom output berubah, saya mencari untuk melihat apakah ada binding yang dapat dibaca mesin untuk hal ini.
Yang saya temukan adalah API SISA snapd .
Setara dengan
snap list --all
isIa mengembalikan JSON. Untuk memfilternya ke paket yang tidak aktif dan mengubahnya ke daftar
snap remove
perintah, Anda dapat menggunakanjq
:Anda secara teknis dapat menjalankan semua itu dalam satu baris (jeda yang saya masukkan adalah untuk dibaca), tapi cukup sedikit, jadi saya membungkusnya dalam sebuah skrip: remove-disabled-snaps.sh
sumber