Next: Invocación de guix pull
, Previous: Paquetes con múltiples salidas, Up: Gestión de paquetes [Contents][Index]
guix gc
Los paquetes instalados, pero no usados, pueden ser recolectados. La
orden guix gc
permite a las usuarias ejecutar explícitamente el
recolector de basura para reclamar espacio del directorio
/gnu/store—¡borrar archivos o directorios manualmente puede dañar
el almacén sin reparación posible!
El recolector de basura tiene un conjunto de raíces conocidas:
cualquier archivo en /gnu/store alcanzable desde una raíz se
considera vivo y no puede ser borrado; cualquier otro archivo se
considera muerto y puede ser borrado. El conjunto de raíces del
recolector de basura (“raíces del GC” para abreviar) incluye los perfiles
predeterminados de las usuarias; por defecto los enlaces bajo
/var/guix/gcroots representan dichas raíces. Por ejemplo, nuevas
raíces del GC pueden añadirse con guix build --root
(see Invocación de guix build
). La orden guix gc --list-roots
las
enumera.
Antes de ejecutar guix gc --collect-garbage
para liberar espacio,
habitualmente es útil borrar generaciones antiguas de los perfiles de
usuaria; de ese modo, las construcciones antiguas de paquetes a las que
dichas generaciones hacen referencia puedan ser reclamadas. Esto se consigue
ejecutando guix package --delete-generations
(see Invocación de guix package
).
Nuestra recomendación es ejecutar una recolección de basura periódicamente, o cuando tenga poco espacio en el disco. Por ejemplo, para garantizar que al menos 5 GB están disponibles en su disco, simplemente ejecute:
guix gc -F 5G
Es completamente seguro ejecutarla como un trabajo periódico no-interactivo
(see Ejecución de tareas programadas, para la configuración de un trabajo de ese
tipo). La ejecución de guix gc
sin ningún parámetro recolectará
tanta basura como se pueda, pero eso es no es normalmente conveniente: puede
encontrarse teniendo que reconstruir o volviendo a bajar software que está
“muerto” desde el punto de vista del recolector pero que es necesario para
construir otras piezas de software—por ejemplo, la cadena de herramientas
de compilación.
La orden guix gc
tiene tres modos de operación: puede ser usada
para recolectar archivos muertos (predeterminado), para borrar archivos
específicos (la opción --delete), para mostrar información sobre la
recolección de basura o para consultas más avanzadas. Las opciones de
recolección de basura son las siguientes:
--collect-garbage[=min]
-C [min]
Recolecta basura—es decir, archivos no alcanzables de /gnu/store y subdirectorios. Esta operación es la predeterminada cuando no se especifican opciones.
Cuando se proporciona min, para una vez que min bytes han sido
recolectados. min puede ser un número de bytes, o puede incluir una
unidad como sufijo, como MiB
para mebibytes y GB
para
gigabytes (see size specifications in GNU
Coreutils).
Cuando se omite min, recolecta toda la basura.
--free-space=libre
-F libre
Recolecta basura hasta que haya espacio libre bajo /gnu/store,
si es posible: libre denota espacio de almacenamiento, por ejemplo
500MiB
, como se ha descrito previamente.
Cuando libre o más está ya disponible en /gnu/store, no hace nada y sale inmediatamente.
--delete-generations[=duración]
-d [duración]
Before starting the garbage collection process, delete all the generations older than duration, for all the user profiles and home environment generations; when run as root, this applies to all the profiles of all the users.
Por ejemplo, esta orden borra todas las generaciones de todos sus perfiles que tengan más de 2 meses de antigüedad (excepto generaciones que sean las actuales), y una vez hecho procede a liberar espacio hasta que al menos 10 GiB estén disponibles:
guix gc -d 2m -F 10G
--delete
-D
Intenta borrar todos los archivos del almacén y directorios especificados como parámetros. Esto falla si alguno de los archivos no están en el almacén, o todavía están vivos.
--list-failures
Enumera los elementos del almacén correspondientes a construcciones fallidas existentes en la caché.
Esto no muestra nada a menos que el daemon se haya ejecutado pasando --cache-failures (see --cache-failures).
--list-roots
Enumera las raíces del recolector de basura poseídas por la usuaria; cuando se ejecuta como root, enumera todas las raíces del recolector de basura.
--list-busy
Enumera los elementos del almacén que actualmente están siendo usados por procesos en ejecución. Estos elementos del almacén se consideran de manera efectiva raíces del recolector de basura: no pueden borrarse.
--clear-failures
Borra los elementos especificados del almacén de la caché de construcciones fallidas.
De nuevo, esta opción únicamente tiene sentido cuando el daemon se inicia con --cache-failures. De otro modo, no hace nada.
--list-dead
Muestra la lista de archivos y directorios muertos todavía presentes en el almacén—es decir, archivos y directorios que ya no se pueden alcanzar desde ninguna raíz.
--list-live
Muestra la lista de archivos y directorios del almacén vivos.
Además, las referencias entre los archivos del almacén pueden ser consultadas:
--references
¶--referrers
Enumera las referencias (o, respectivamente, los referentes) de los archivos del almacén pasados como parámetros.
--requisites
¶-R
Enumera los requisitos los archivos del almacén pasados como parámetros. Los requisitos incluyen los mismos archivos del almacén, sus referencias, las referencias de estas, recursivamente. En otras palabras, la lista devuelta es la clausura transitiva de los archivos del almacén.
See Invocación de guix size
, para una herramienta que perfila el tamaño de la
clausura de un elemento. See Invocación de guix graph
, para una herramienta de
visualización del grafo de referencias.
--derivers
¶Devuelve la/s derivación/es que conducen a los elementos del almacén dados (see Derivaciones).
Por ejemplo, esta orden:
guix gc --derivers $(guix package -I ^emacs$ | cut -f4)
devuelve el/los archivo/s .drv que conducen al paquete emacs
instalado en su perfil.
Fíjese que puede haber cero archivos .drv encontrados, por ejemplo porque estos archivos han sido recolectados. Puede haber más de un archivo .drv encontrado debido a derivaciones de salida fija.
Por último, las siguientes opciones le permiten comprobar la integridad del almacén y controlar el uso del disco.
Verifica la integridad del almacén.
Por defecto, comprueba que todos los elementos del almacén marcados como válidos en la base de datos del daemon realmente existen en /gnu/store.
Cuando se proporcionan, opciones debe ser una lista separada por comas
que contenga uno o más valores contents
and repair
.
Cuando se usa --verify=contents, el daemon calcula el hash del contenido de cada elemento del almacén y lo compara contra el hash de su base de datos. Las incongruencias se muestran como corrupciones de datos. Debido a que recorre todos los archivos del almacén, esta orden puede tomar mucho tiempo, especialmente en sistemas con una unidad de disco lenta.
El uso de --verify=repair o --verify=contents,repair hace
que el daemon intente reparar elementos corruptos del almacén obteniendo
sustituciones para dichos elementos (see Sustituciones). Debido a que la
reparación no es atómica, y por tanto potencialmente peligrosa, está
disponible únicamente a la administradora del sistema. Una alternativa
ligera, cuando sabe exactamente qué elementos del almacén están corruptos,
es guix build --repair
(see Invocación de guix build
).
Optimiza el almacén sustituyendo archivos idénticos por enlaces duros—esto es la deduplicación.
El daemon realiza la deduplicación después de cada construcción satisfactoria o importación de archivos, a menos que se haya lanzado con la opción --disable-deduplication (see --disable-deduplication). Por tanto, esta opción es útil principalmente cuando el daemon se estaba ejecutando con --disable-deduplication.
Guix uses an sqlite database to keep track of the items in (see El almacén). Over time it is possible that the database may grow to a large
size and become fragmented. As a result, one may wish to clear the freed
space and join the partially used pages in the database left behind from
removed packages or after running the garbage collector. Running
sudo guix gc --vacuum-database
will lock the database and
VACUUM
the store, defragmenting the database and purging freed pages,
unlocking the database when it finishes.
Next: Invocación de guix pull
, Previous: Paquetes con múltiples salidas, Up: Gestión de paquetes [Contents][Index]