ウェブサイト検索

スナップ バージョンをクリーンアップしてディスク領域を解放する方法


スクリプトを含むこのクイック ガイドは、古いスナップ バージョンをクリーンアップし、Ubuntu システムのディスク領域を解放するのに役立ちます。

Ubuntu を使用したテスト システムのディスク容量が不足していました。

そこで私は、どのパッケージが貴重な SSD スペースを消費しているかを調べるために、GNOME のディスク使用状況アナライザーを介して調査していました。通常のキャッシュとホーム ディレクトリとは別に、驚いたことに、Snap と Flatpak がかなりの量のストレージ スペースを消費していることがわかりました。

スナップ サイズ – クリーンアップ前

ただし、必要な場合以外は Snap や Flatpak を使用しないというルールを常に守っています。これは主に、設置サイズやその他の問題が原因です。私はバニラの deb パッケージと rpm パッケージを好みます。長年にわたり、私はこのテスト システムで一定量の Snap パッケージをインストールおよび削除してきました。

問題はアンインストール後に発生します。 Snap は、一般ユーザーには知られていないいくつかの残留ファイルをシステム内に保持します。

そこで、Snap フォルダー /var/lib/snapd/snaps を開いて、Snap が以前にインストール/アンインストールされたパッケージの古いバージョンを追跡していることを発見しました。

たとえば、以下の画像では、GNOME 3.28、3.34、Wine が表示されていますが、これらはすべてかなり前に削除されています。しかし、彼らはまだそこにいます。これは、適切にアンインストールした後も、アンインストールされたパッケージのバージョンを保持する Snap の設計が原因で発生します。

snapsディレクトリ下のファイル

あるいは、次を使用してターミナルで同じものを取得できます。

snap list --all

すべてのスナップリスト

いくつかのリビジョンを保持する場合のデフォルト値は 3 です。つまり、Snap は、アクティブなバージョンを含め、各パッケージの 3 つの古いバージョンを保持します。ディスク容量に制約がない場合は、これで問題ありません。

ただし、サーバーやその他のユースケースでは、ディスク容量を消費するというコストの問題が簡単に発生する可能性があります。

ただし、次のコマンドを使用すると、カウントを簡単に変更できます。値は 2 ~ 20 の範囲で指定できます。

sudo snap set system refresh.retain=2

スナップバージョンのクリーンアップ

Canonical の元エンジニアリング マネージャーである Popey 氏は、SuperUser への投稿で、古いバージョンの Snaps をクリーンアップして最新のバージョンを維持できる簡単なスクリプトを提供しました。

スナップアップをクリーンアップするために使用するスクリプトは次のとおりです。

#!/bin/bash
 #Removes old revisions of snaps
 #CLOSE ALL SNAPS BEFORE RUNNING THIS
 set -eu
 LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $3}' |
     while read snapname revision; do
         snap remove "$snapname" --revision="$revision"
     done

上記のスクリプトを .sh としてディレクトリ (例: clean_snap.sh) に保存し、実行権限を与えて実行します。

chmod +x clean_snap.sh

スクリプトを実行すると、ディスク容量が大幅に減少しました。スクリプトには、削除されるパッケージの名前も表示されます。

スクリプトの実行

クリーンアップ後のスナップのサイズ

終わりのメモ

Snap の設計がどれほど効率的であるかについては常に議論があります。設計上壊れている、肥大化している、システムに負担がかかる、と多くの人が言っています。その議論の一部は真実であり、私はそれを否定しません。アプリケーションのサンドボックス化の概念全体は、適切に実装および強化されれば素晴らしいものになります。 Flatpak は Snap に比べてより良い仕事をすると思います。

そうは言っても、これがディスク領域をクリーンアップするのに役立つことを願っています。 Ubuntu でテストされていますが、Snap をサポートするすべての Linux ディストリビューションで動作するはずです。

また、追加の手順で Ubuntu をクリーンアップする方法に関するガイドもご覧ください。

最後に、Flatpak アプリをクリーンアップしたい場合は、このガイドを参照してください。

関連記事