Eclean

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Eclean and the translation is 63% complete.
Outdated translations are marked like this.

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
Hinweis
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