Eclean
eclean es una herramienta para limpiar los ficheros fuente del repositorio y los paquetes binarios. Es parte del paquete app-portage/gentoolkit y gestionado por el proyecto Portage-Tools.
La herramienta eclean-kernel también está disponible en Gentoo, separada de las utilidades eclean que vienen con gentoolkit, a través del paquete app-admin/eclean-kernel. eclean-kernel se utiliza para automatizar la limpieza de núcleos Linux antiguos.
Instalación
Emerge
Instale app-portage/gentoolkit:
root #
emerge --ask app-portage/gentoolkit
Lea el artículo sobre Gentoolkit para obtener más información sobre otras utilidades incluidas en el paquete app-portage/gentoolkit.
Utilización
Por defecto los ficheros fuente están localizados en el directorio /usr/portage/distfiles, mientras que los paquetes binarios están localizados en el directorio /usr/portage/packages. Las localizaciones de cada uno se pueden cambiar alterando las variables DISTDIR y PKGDIR respectivamente en /etc/portage/make.conf. Ambas localizaciones pueden crecer bastantes si no se limpian periodicamente. Esta es la razón por la que se creó eclean.
Invocación
Utilice eclean --help para ver la lista completa de acciones, opciones y descripción de su utilización:
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: --changed-deps - delete packages for which ebuild dependencies have changed -i, --ignore-failure - ignore failure to locate PKGDIR 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`
Limpiar los fichero de distribucion (distfiles)
Para limpiar los ficheros fuente se pasa el argumento distfiles
:
root #
eclean distfiles
O se lanza la opción corta:
root #
eclean-dist
Si los distfiles
ocupan demasiado espacio, ejecute una limpieza profunda:
root #
eclean -d distfiles
Limpiar paquetes
Para el directorio con los paquetes binarios se utilza la orden:
root #
eclean packages
O se lanza la opción corta:
root #
eclean-pkg
Opciones
Por defecto no se borran los ficheros fuente y los paquetes binarios correspondientes a cualquier ebuild en el repositorio. De esta forma, los administradores del sistema pueden bajar de versión de un paquete de forma fácil o instalar un paquete que se eliminó anteriormente siempre que el paquete esté todavía en el árbol actual del repositorio.
A modo de ejemplo, suponga que los paquetes foo-1.0 y foo-1.1 se encuentran ambos en el repositorio. Después de actualizar desde foo-1.0 hacia foo-1.1, lance eclean distfiles: se mantendrán los ficheros fuente de ambas versiones de modo que si hay un problema con foo-1.1 entonces el usuario puede instalar fácilmente foo-1.0 sin tener que descargar los fuentes de nuevo.
El otro caso posible es instalar un paquete que se eliminó previamente. Suponga que un paquete foo (cualquier versión) está instalado en el sistema. Después de (inadvertidamente) eliminarlo y lanzar eclean distfiles, los ficheros fuente para foo se mantendrán de modo que se puedan reinstalar si tener que descargar de nuevo los ficheros fuente.
Los mismos ejemplos se pueden aplicar para paquetes binarios.
Para conservar más espacio en disco, añada la opción --deep
: cada fichero fuente o paquete binario que no corresponda con algún paquete actualmente instalado (la versión es importante) se eliminará. Por favor, observe quede esta forma los usuarios no estarán protegidos en el caso en que deseen bajar la versión de un paquete o instalar de nuevo un paquete eliminado previamente.
Como alternativa, utilice tanto la opción --deep
como la opción --package-names
: Cada fichero fuente o paquete binario que no corresponda con algún paquete instalado actualmente (la versión no importa), se eliminará. Esto tampoco protegerá en el caso en el que se necesite instalar de nuevo un paquete que se eliminó previamente pero protegerá los fuentes si se quiere bajar la versión de paquete más adelante.
Para obtener más detalles, lea la página eclean(1) del manual:
user $
man 1 eclean
Resolución de problemas
La limpieza deja algunos distfiles
Problema: al intentar limpiar los distfiles, algunos distfiles no son eliminados y el mensaje "The following unavailable installed packages were found" se muestra. Por ejemplo:
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
Esto ocurre cuando el ebuild de un paquete ha sido eliminado del repositorio de ebuilds Gentoo pero el paquete sigue instalado en el sistema. Generalmente, se eliminan del repositorio porque ya no se necesitan. La razón por la que no son eliminados del sistema es que siguen listados en el archivo world de Portage.
La solución es eliminar los paquetes del archivo world, o eliminar los átomos de paquete específicos a través de:
root #
emerge --ask --depclean =sys-kernel/gentoo-sources-4.19.44
Y después lanzar eclean de nuevo para eliminar los distfiles.
Vea también
- Gentoolkit
- Base de conocimiento: Eliminar distfiles obsoletos
- DISTDIR — define la localización en la que Portage almacenará los archivos de código fuente que se ha descargado.