スナップ は、Linuxカーネルを使用するオペレーティングシステム用にCanonicalによって開発されたソフトウェアパッケージングおよびデプロイシステムです。 スナップと呼ばれるパッケージ 、およびそれらを使用するためのツール、 snapd 、さまざまなLinuxディストリビューションで作業し、上流のソフトウェア開発者がアプリケーションをユーザーに直接配布できるようにします。スナップは、ホストシステムへのアクセスを仲介するサンドボックスで実行される自己完結型のアプリケーションです。 Snapは元々クラウドアプリケーション向けにリリースされましたが、後にモノのインターネットデバイスやデスクトップアプリケーションでも機能するように移植されました。
スナップパッケージは誰もが好むわけではありませんが、Ubuntuエコシステムの不可欠な部分です。
それには長所と短所があります。欠点の1つは、Snapパッケージは通常サイズが大きく、多くのディスク容量を必要とすることです。
これは、特にルートパーティションでディスク容量が不足している場合に問題になる可能性があります。
Snapパッケージで使用されるディスク間隔を削減するために使用できる巧妙なトリックを共有しましょう。
スナップに関連するシステムファイルは、/ var / lib/snapdディレクトリに保存されます。インストールしたSnapパッケージの数に基づいて、このディレクトリサイズは数GBになる可能性があります。
$ sudo du -sh /var/lib/snapd
5.4G /var/lib/snapd
Code language: JavaScript (javascript)
たくさんありますよね?ここでディスク容量を解放できます。
設計上、Snapはシステムにインストールしたパッケージの古いバージョンを少なくとも1つ保持します。
スナップコマンドを使用すると、この動作を確認できます:
$ snap list --all
Code language: PHP (php)
同じパッケージが異なるバージョンとリビジョン番号で2回リストされているはずです。
ディスク容量を解放するために、追加のパッケージバージョンを削除できます。どれを削除するかをどうやって知るのですか?これらの古いパッケージには「無効」というラベルが付いていることがわかります。
心配しないで。手動で行う必要はありません。 Snapcraftチームで働いていたAlanPopeによって書かれた気の利いたbashスクリプトのおかげで、それを自動的に行う方法があります。
bashシェルスクリプトを作成して実行する方法をご存知だと思います。基本的に、clean-snap.shという名前の新しいファイルを作成し、それに次の行を追加します。
#!/bin/bash
# Removes old revisions of snaps
# CLOSE ALL SNAPS BEFORE RUNNING THIS
set -eu
snap list --all | awk '/disabled/{print $1, $3}' |
while read snapname revision; do
snap remove "$snapname" --revision="$revision"
done
Code language: PHP (php)
保存してエディタを閉じます。
このスクリプトを実行するには、スクリプトをホームディレクトリに保存してから、Ubuntuでターミナルを開き、次のコマンドを実行します。
sudo bash clean-snap.sh
Code language: CSS (css)
古いバージョンのパッケージの削除が開始されていることがわかります。今すぐSnapで使用されているディスク容量を確認すると、ディレクトリサイズが縮小されていることがわかります。
このチュートリアルでは、単純なbashスクリプトを使用して、不要なスナップパッケージからディスクスペースをクリーンアップする方法を見つけました…