Eclean
eclean ist ein Tool um Portage Quelldateien und Binärpakete zu reinigen. Es ist Teil des Paketes app-portage/gentoolkit und wird vom Portage-Tools Project verwaltet.
Also available on Gentoo is the eclean-kernel tool, available separately from the eclean tools installed with gentoolkit, in the app-admin/eclean-kernel package. eclean-kernel is used to automate the clean up of old Linux kernels.
Installation
Emerge
eclean installieren:
root #
emerge --ask app-portage/gentoolkit
Beachten Sie den Gentoolkit Artikel für Informationen zu weiteren Werkzeugen beinhaltet im Paket app-portage/gentoolkit.
Bedienung
Standardmäßig befinden sich die Quelldateien im Verzeichnis /usr/portage/distfiles, wohingegen Binärpakete im Verzeichnis /usr/portage/packages befinden. Die Orte für beide können durch Änderung der Variable DISTDIR bzw. PKGDIR in /etc/portage/make.conf vorgenommen werden. Beide Orte können ziemlich gross werden, wenn sie nicht regelmäßig aufgeräumt werden. Dies ist der Grund warum eclean erschaffen wurde.
Aufruf
Verwenden Sie eclean --help um eine komplette Zusammenfassung, Optionsliste und Verwendungsübersicht zu sehen:
user $
eclean --help
Usage: eclean [global-option] ... <action> [action-option] ... eclean-dist [global-option, distfiles-option] ... eclean-pkg [global-option, packages-option] ... eclean(-dist,-pkg) [--help, --version] Available global options: -C, --nocolor - turn off colors on output -d, --deep - only keep the minimum for a reinstallation -e, --exclude-file=<path> - path to the exclusion file -i, --interactive - ask confirmation before deletions -n, --package-names - protect all versions (when --deep -p, --pretend - only display what would be cleaned -q, --quiet - be as quiet as possible -t, --time-limit=<time> - don't delete files modified since <time> <time> is a duration: "1y" is "one year", "2w" is "two weeks", etc. Units are: y (years), m (months), w (weeks), d (days) and h (hours). -h, --help - display the help screen -V, --version - display version info Available actions: packages - clean outdated binary packages from PKGDIR distfiles - clean outdated packages sources files from DISTDIR Available options for the packages action: NONE :) Available options for the distfiles action: -f, --fetch-restricted - protect fetch-restricted files (when --deep) -s, --size-limit=<size> - don't delete distfiles bigger than <size> <size> is a size specification: "10M" is "ten megabytes", "200K" is "two hundreds kilobytes", etc. Units are: G, M, K and B. More detailed instruction can be found in `man eclean`
Distfiles bereinigen
Säubern Sie das Quelldatei-Verzeichnis durch Übergabe des distfiles
Arguments:
root #
eclean distfiles
Oder durch Aufruf der kurzen Option:
root #
eclean-dist
Pakete bereinigen
Für das Verzeichnis mit den Binärpaketen verwenden Sie stattdessen den folgenden Befehl:
root #
eclean packages
Oder durch Aufruf der kurzen Option:
root #
eclean-pkg
Optionen
Standardmässig werden Quelldateien und Binärpakete mit Bezug zu irgendeinem Ebuild im aktuellen Repositorium nicht gelöscht. Dadurch können Systemadministratoren leicht ein Paket downgraden oder ein zuvor entferntes Paket installieren, vorausgesetzt das Paket befindet sich immer noch im aktuellen Repositorium.
Als Beispiel nehmen wir an, dass sich die Pakete foo-1.0 und foo-1.1 beide im Repositorium befinden. Nach der Aktualisierung von foo-1.0 auf foo-1.1 führen Sie eclean distfiles aus: Die Quelldateien für beide Versionen werden behalten, so dass der Benutzer leicht foo-1.0 erneut installieren kann falls ein Problem mit foo-1.1 auftritt, ohne irgendetwas noch einmal herunterladen zu müssen.
Der andere mögliche Fall ist die Installation eins zuvor entfernten Paketes. Angenommen ein Paket foo (irgendeine Version) ist auf dem System installiert. Nach seiner (irrtümlichen) Entfernung und der Ausführung von eclean distfiles werden die Quelldateien von foo behalten, so dass es erneut installiert werden kann ohne irgend etwas erneut herunterzuladen.
Die gleichen Beispiele sind ebenfalls für Binärpakete anwendbar.
Um mehr Festplattenplatz zu sparen fügen Sie die Option --deep
hinzu: Jede Quelldatei oder Binärpaket das nicht in Verbindung zu einem aktuell installierten Paket (die Version ist egal) wird gelöscht. Bitte beachten Sie dass die Benutzer auf diese Weise für den Fall, dass sie ein Paket downgraden oder ein zuvor entferntes Paket erneut installieren müssen nicht geschützt sind.
Als Alternative können Sie die beiden Optionen --deep
und --package-names
verwenden: Alle Quelldateien oder Binärpakete die nicht in Beziehung zu einem momentan installierten Paket stehen (die Version ist egal) werden gelöscht. Dies schützt nicht im Falle einer erneuten Installation eines zuvor entfernten Paketes, aber es wird die Quellen schützen wenn später ein Downgrade eines Paketes notwendig ist.
Für weitere Details lesen Sie die eclean(1) Man-Page:
user $
man 1 eclean
Troubleshooting
Cleaning leaves some distfiles
Problem: when trying to clean distfiles, some distfiles are not removed and the message "The following unavailable installed packages were found" is displayed. For example:
root #
eclean --deep distfiles
* Building file list for distfiles cleaning... * Your distfiles directory was already clean. The following unavailable installed packages were found sys-kernel/gentoo-sources-4.19.44 sys-kernel/gentoo-sources-4.19.45 sys-kernel/gentoo-sources-4.19.46
This situation occurs when a package's ebuild has been removed from the Gentoo ebuild repository and the package is currently installed on the system. Generally if the listed packages/distfiles are no longer needed; the reason they are not being removed is because they are listed in Portage's world file.
The solution is to to remove the packages from the world file, or remove the specific package atom(s) via:
root #
emerge --ask --depclean =sys-kernel/gentoo-sources-4.19.44
Then re-run eclean again in order to remove the distfiles.
Siehe auch
- Gentoolkit — eine Suite von Werkzeugen, die die Verwaltung eines Gentoo-Systems und insbesondere die Verwaltung von Portage erleichtern.
- Knowledge Base: Veraltete Distfiles entfernen
- DISTDIR — definiert den Ort im Dateisystem, an dem Portage die heruntergeladenen Quelltextarchive ablegt.