Setup-miniconda: ¿Es posible almacenar en caché cuando se utilizan archivos conda.lock?

Creado en 10 dic. 2020  ·  9Comentarios  ·  Fuente: conda-incubator/setup-miniconda

Estoy usando un archivo conda.lock para instalar dependencias. Me preguntaba si hay una manera de almacenarlo en caché. Actualmente, parece que el almacenamiento en caché normal no parece funcionar para eso.

Todos 9 comentarios

Hm ... tengo una ejecución pesada de uso de archivos de bloqueo, y el almacenamiento en caché funciona en linux y osx:

https://github.com/robots-from-jupyter/robotframework-jupyterlibrary/runs/1493514408?check_suite_focus=true

No funciona en Windows y, aunque me entristece, tampoco me sorprende.

Si tiene enlaces al repositorio en cuestión, o registros, o cualquier información adicional que pueda proporcionar que no sea "no funciona", ¡eso ayudaría!

Gracias @bollwyvl por su rápida respuesta.

Perdón por no proporcionar más detalles antes. Estoy experimentando con un repositorio de juguetes, puedes encontrar un registro reciente aquí:

https://github.com/ma-sadeghi/xyztest/runs/1534789528?check_suite_focus=true

Se informa que el tamaño de la caché es de ~ 0 MB.

PD. No estoy usando setup-miniconda para este repositorio, estaba tratando de hacerlo funcionar con el conda incorporado en las máquinas de CI.

@bollwyvl

Actualización 1

Mirando su archivo yml con un poco de investigación en setup-miniconda , resultó que estaba haciendo un montón de cosas mal. La carpeta de caché ( ~/conda_pkgs_dir ) no existía, así que tuve que crearla manualmente, además no estaba configurando la variable de entorno CONDA_PKGS_DIRS para apuntar a ~/conda_pkgs_dir . Aquí está la iteración más reciente:

https://github.com/ma-sadeghi/xyztest/runs/1535236467?check_suite_focus=true

lo que parece que el almacenamiento en caché funciona bien y el paso de "instalación de dependencias" ahora es mucho más rápido.

Gracias por la información.

¡Hurra! ¡Caché para todos!

Tenga en cuenta que almacenar en caché toda la carpeta no funcionará tan bien como podría, ya que
el caché contiene tanto los archivos tar _y_ el contenido descomprimido ... En nuestro
post paso paso nosotros (intentamos) limpiar algo de eso.

Siéntete libre de cerrar si no hay nada más roto ... especialmente porque esto
no estaba involucrado en esta acción.

@bollwyvl Lo siento, sé que esto está completamente fuera del alcance de este repositorio, pero ¿puedo preguntar qué es exactamente lo que hace para optimizar el almacenamiento en caché? ¿De qué archivos te deshaces? los contenidos desempaquetados o los tarballs?

Sí, ese es más o menos el tamaño:

https://github.com/conda-incubator/setup-miniconda/blob/master/src/delete.ts

También hay algunas cosas más allí, pero en comparación son cosas insignificantes
a, digamos, mkl o qt desempaquetados.

@bollwyvl Pregunta rápida: mirando delete.ts , parece que está eliminando las carpetas sin comprimir, en lugar de los archivos comprimidos .tar.bz2 . Probablemente me esté perdiendo algo, pero parece que al hacerlo, conda necesita hacer un paso adicional de "descomprimir", mientras que si .tar.bz2 se eliminan, conda simplemente puede reutilizar el ya descomprimido carpetas. Lo probé en mi computadora y parecía que este último conducía a instalaciones más rápidas.

Creo que también podrías ejecutar conda clean. @bollwyvl tal vez podríamos usar eso en lugar de delete.ts , lo hice así porque no estaba al tanto de conda clean en ese momento.

$ conda clean --help



usage: conda clean [-h] [-a] [-i] [-p] [-t] [-f]
                   [-c TEMPFILES [TEMPFILES ...]] [-d] [--json] [-q] [-v] [-y]

Remove unused packages and caches.

Options:

optional arguments:
  -h, --help            Show this help message and exit.

Removal Targets:
  -a, --all             Remove index cache, lock files, unused cache packages,
                        and tarballs.
  -i, --index-cache     Remove index cache.
  -p, --packages        Remove unused packages from writable package caches.
                        WARNING: This does not check for packages installed
                        using symlinks back to the package cache.
  -t, --tarballs        Remove cached package tarballs.
  -f, --force-pkgs-dirs
                        Remove *all* writable package caches. This option is
                        not included with the --all flag. WARNING: This will
                        break environments with packages installed using
                        symlinks back to the package cache.
  -c TEMPFILES [TEMPFILES ...], --tempfiles TEMPFILES [TEMPFILES ...]
                        Remove temporary files that could not be deleted
                        earlier due to being in-use. Argument is path(s) to
                        prefix(es) where files should be found and removed.

Output, Prompt, and Flow Control Options:
  -d, --dry-run         Only display what would have been done.
  --json                Report all output as json. Suitable for using conda
                        programmatically.
  -q, --quiet           Do not display progress bar.
  -v, --verbose         Can be used multiple times. Once for INFO, twice for
                        DEBUG, three times for TRACE.
  -y, --yes             Do not ask for confirmation.

Examples:

    conda clean --tarballs
¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

tdegeus picture tdegeus  ·  11Comentarios

mrmundt picture mrmundt  ·  12Comentarios

goanpeca picture goanpeca  ·  9Comentarios

jaimergp picture jaimergp  ·  13Comentarios

sadielbartholomew picture sadielbartholomew  ·  8Comentarios