GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So bereinigen Sie Snap-Paketversionen in Linux [Kurztipp]

Snap-Pakete sind nicht jedermanns Favorit, aber sie sind ein integraler Bestandteil des Ubuntu-Ökosystems.

Es hat seine Vor- und Nachteile. Einer der Nachteile ist, dass Snap-Pakete normalerweise größer sind und viel Speicherplatz beanspruchen.

Dies könnte ein Problem sein, wenn Ihnen der Speicherplatz ausgeht, insbesondere auf der Root-Partition.

Lassen Sie mich Ihnen einen netten Trick zeigen, mit dem Sie den von Snap-Paketen verwendeten Speicherplatz verringern können.

Alte Snap-Paketversionen bereinigen, um Speicherplatz freizugeben

Die Snap-bezogenen Systemdateien werden im Verzeichnis /var/lib/snapd gespeichert. Basierend auf der Anzahl der von Ihnen installierten Snap-Pakete kann diese Verzeichnisgröße mehrere GB betragen.

Nehmen Sie nicht nur mein Wort dafür. Führen Sie eine Bewertung durch, indem Sie den Befehl du verwenden, um die Verzeichnisgröße zu überprüfen.

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

Sie können auch das GUI-Tool Disk Usage Analyzer verwenden, um die Festplattennutzung in Ubuntu anzuzeigen.

Das ist viel, oder? Sie könnten hier Speicherplatz freigeben.

Snap behält standardmäßig mindestens eine ältere Version der Pakete, die Sie auf Ihrem System installiert haben.

Sie können dieses Verhalten sehen, indem Sie den Snap-Befehl verwenden:

snap list --all

Sie sollten dasselbe Paket zweimal mit unterschiedlicher Versions- und Revisionsnummer sehen.

Um Speicherplatz freizugeben, können Sie die zusätzlichen Paketversionen löschen. Woher wissen Sie, welche Sie löschen müssen? Sie können sehen, dass diese älteren Pakete als „deaktiviert“ gekennzeichnet sind.

Mach dir keine Sorgen. Sie müssen es nicht manuell tun. Dank eines raffinierten Bash-Skripts, das von Alan Pope geschrieben wurde, als er im Snapcraft-Team arbeitete, gibt es eine Art automatische Möglichkeit, dies zu tun.

Ich hoffe, Sie wissen, wie man ein Bash-Shell-Skript erstellt und ausführt. Erstellen Sie im Grunde eine neue Datei mit dem Namen clean-snap.sh und fügen Sie ihr die folgenden Zeilen hinzu.

#!/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

Speichern Sie es und schließen Sie den Editor.

Um dieses Skript auszuführen, bewahren Sie es in Ihrem Home-Verzeichnis auf und öffnen Sie dann das Terminal in Ubuntu und führen Sie diesen Befehl aus:

sudo bash clean-snap.sh

Sie können sehen, dass es beginnt, die ältere Version von Paketen zu entfernen.

Wenn Sie jetzt den von Snap belegten Speicherplatz überprüfen, sehen Sie, dass die Verzeichnisgröße jetzt reduziert ist.

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

Wenn dies für Sie funktioniert, können Sie diesen Befehl gelegentlich ausführen.

Wie funktioniert dieses Skript?

Wenn Sie neugierig sind, was dieses Skript macht, lassen Sie es mich erklären.

Sie haben bereits die Ausgabe des Befehls „snap list –all“ gesehen. Seine Ausgabe wird an den Befehl awk übergeben. Awk ist ein mächtiges Scripting-Tool.

Der awk-Teil „/disabled/{print $1, $3}“ sucht in jeder Zeile nach der Zeichenfolge „disabled“ und extrahiert die erste und dritte Spalte, wenn sie gefunden wird.

Diese Ausgabe wird weiter an eine Kombination aus while und read-Befehl weitergegeben. Der Lesebefehl holt den Wert der ersten Spalte Snapname und der dritten Spalte in die Revisionsvariable.

Diese Variablen werden dann verwendet, um den Snap-Remove-Befehl zum Löschen mit dem Namen des Span-Pakets und seiner Revisionsnummer auszuführen.

Die While-Schleife wird so lange ausgeführt, wie Zeilen mit der Zeichenfolge „deaktiviert“ darin gefunden werden.

Das alles macht leicht Sinn, wenn Sie sich ein wenig mit Shell-Scripting auskennen. Wenn Sie damit nicht vertraut sind, haben wir eine Bash-Tutorial-Reihe für Anfänger für Sie.

Hast du deine GBs zurückbekommen?

In einigen Foren wird möglicherweise empfohlen, den Aufbewahrungswert für Snap-Pakete auf 2 festzulegen.

sudo snap set system refresh.retain=2

Ich glaube nicht, dass es mehr benötigt wird. Das Standardverhalten von Snap besteht jetzt darin, insgesamt 2 Versionen für jedes Paket zu speichern.

Alles in allem, wenn Ihnen der Speicherplatz ausgeht, könnte das Entfernen der zusätzlichen Paketversion sicherlich eine der Möglichkeiten sein, Festplattenspeicher auf Ubuntu freizugeben.

Wenn dieses Tutorial Ihnen geholfen hat, Speicherplatz freizugeben, lassen Sie es mich im Kommentarbereich wissen.

Originalartikel


Linux
  1. So partitionieren Sie eine Festplatte unter Linux

  2. So installieren und verwenden Sie den Snap-Paket-Manager unter Alma Linux 8

  3. So erstellen Sie ein Linux-RPM-Paket

  4. So installieren Sie XML::LibXML unter Ubuntu Linux [Kurztipp]

  5. Linux – So minimieren Sie die Speicherplatznutzung?

So verwenden Sie RAR-Dateien in Ubuntu Linux [Kurztipp]

So fügen Sie ein Verzeichnis zu PATH in Linux hinzu [Kurztipp]

Wie kann ich Speicherplatz auf einer Linux-Instanz bereinigen?

So verschlüsseln Sie eine Partition unter Linux

So installieren Sie Snap Package Manager unter Rocky Linux 8

So installieren Sie Snap Package Manager in Linux-Distributionen