snap list --all
コマンドを実行すると、インストールされているスナップパッケージのすべてのバージョンが表示されます。
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 -
現在、使用されていない無効化されたパッケージが非常に多くあります。だから私はそれらのパッケージを削除したい。ここで、コマンドはsnap remove gnome-3-26-1604 --revision=62
です。次に、すべてのリビジョンとすべてのパッケージに対して1つずつ実行する必要があります。 1行のコマンドで無効または未使用のスナップパッケージを削除するコマンドはありますか?
前もって感謝します...
すぐに(20%のものとして)追加することを検討します。一方、あなたは落とすことができます
#!/bin/sh
set -eu
snap list --all | awk '/disabled/{print $1, $3}' |
while read snapname revision; do
snap remove "$snapname" --revision="$revision"
done
シェルスクリプトに入れて実行します。
エイリアスでよりエレガントで使いやすいことがわかりました(一重引用符を使用) このソリューション :
snap list --all | while read snapname ver rev trk pub notes; do if [[ $notes = *disabled* ]]; then Sudo snap remove "$snapname" --revision="$rev"; fi; done
スナップ2.34以降では、refresh.retain
オプション( source )を設定することにより、システムに保存されるスナップのリビジョンの最大数を設定できます。
Sudo snap set system refresh.retain=2
古いスナップ/無効なスナップを削除/削除する機能は、以前は discussed でしたが、まだ実装されていません。残念ながら、残念ながらそれは手動のプロセスです。
以前の回答に基づいて、おそらく次のようなことを行う必要があります。
snap list --all | awk '$5~"disabled"{print $1" --revision "$3}' | xargs -rn3 snap remove
これにより、無効なスナップリビジョンが存在せず、特にメモ列で「無効」を検索するときにエラーが発生することを回避できます。
@ Chipaca、@ Ctrl-C、および@Pablo Lalloniの提案を基に作成:
snap list --all | awk '$5~"disabled"{print $1" --revision "$3}' | xargs -rn3 snap remove
これにより、snap list --all
の[メモ]列で[無効]が検索され、対応するスナップのsnap remove <snap> --revision <rev>
が実行されます。