GNU/Linux >> Linux の 問題 >  >> Linux

Linuxでスナップパッケージのバージョンをクリーンアップする方法[クイックヒント]

スナップパッケージは誰もが好むわけではありませんが、Ubuntuエコシステムの不可欠な部分です。

それには長所と短所があります。欠点の1つは、Snapパッケージは通常サイズが大きく、多くのディスク容量を必要とすることです。

これは、特にルートパーティションでディスク容量が不足している場合に問題になる可能性があります。

Snapパッケージで使用されるディスク間隔を削減するために使用できる巧妙なトリックを共有しましょう。

古いSnapパッケージバージョンをクリーンアップしてディスク領域を解放する

スナップに関連するシステムファイルは、/ var / lib/snapdディレクトリに保存されます。インストールしたSnapパッケージの数に基づいて、このディレクトリサイズは数GBになる可能性があります。

私の言葉をそのまま受け入れるのではありません。 duコマンドを使用してディレクトリサイズを確認し、評価を行います。

[email protected]:~$ sudo du -sh /var/lib/snapd
5.4G	/var/lib/snapd

Disk Usage Analyzer GUIツールを使用して、Ubuntuでのディスク使用量を確認することもできます。

たくさんありますよね?ここでディスク容量を解放できます。

設計上、Snapはシステムにインストールしたパッケージの古いバージョンを少なくとも1つ保持します。

スナップコマンドを使用すると、この動作を確認できます:

snap list --all

同じパッケージが異なるバージョンとリビジョン番号で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

保存してエディタを閉じます。

このスクリプトを実行するには、スクリプトをホームディレクトリに保存してから、Ubuntuでターミナルを開き、次のコマンドを実行します。

sudo bash clean-snap.sh

古いバージョンのパッケージの削除が開始されていることがわかります。

今すぐSnapで使用されているディスク容量を確認すると、ディレクトリサイズが縮小されていることがわかります。

[email protected]:~$ sudo du -sh /var/lib/snapd
3.9G	/var/lib/snapd

これで問題が解決する場合は、このコマンドをときどき実行できます。

このスクリプトはどのように機能しますか?

このスクリプトの機能に興味がある場合は、説明させてください。

「snaplist–all」コマンドの出力はすでに見てきました。その出力はawkコマンドに渡されます。 Awkは強力なスクリプトツールです。

awkの「/disabled/ {print $ 1、$ 3}」の部分は、各行で「disabled」という文字列を探し、見つかった場合は、最初の列と3番目の列を抽出します。

この出力はさらに、whileコマンドとreadコマンドの組み合わせに渡されます。読み取りコマンドは、最初の列のスナップ名と3番目の列の値をリビジョン変数に取得します。

次に、これらの変数を使用してsnap removeコマンドを実行し、スパンパッケージ名の名前とそのリビジョン番号を使用して削除します。

whileループは、「無効」の文字列が含まれている行が見つかった場合にのみ実行されます。

シェルスクリプトについて少し知っていれば、これはすべて簡単に理解できます。慣れていない方のために、初心者向けのbashチュートリアルシリーズを用意しています。

GBを取り戻しましたか?

Snapパッケージの保持値を2に設定するようにアドバイスするフォーラムがいくつか表示される場合があります。

sudo snap set system refresh.retain=2

もう必要ないと思います。 Snapのデフォルトの動作は、パッケージごとに合計2つのバージョンを保存することです。

全体として、スペースが不足している場合は、追加のパッケージバージョンを削除することで、Ubuntuのディスクスペースを解放する方法の1つになる可能性があります。

このチュートリアルで空き容量が増えた場合は、コメントセクションでお知らせください。

元の記事


Linux
  1. Linuxでディスクをパーティション分割する方法

  2. AlmaLinux8にSnapPackageManagerをインストールして使用する方法

  3. Linux –ディスクスペースの使用を最小限に抑える方法は?

  1. LinuxRPMパッケージを作成する方法

  2. UbuntuLinuxにXML::LibXMLをインストールする方法[クイックヒント]

  3. Linuxでグループからユーザーを削除する方法[クイックヒント]

  1. Linuxでpkgsrcを使用する方法

  2. Linuxでディスク容量を確認する方法

  3. Linuxでパーティションを削除する方法