Setup-miniconda: É possível armazenar em cache ao usar arquivos conda.lock?

Criado em 10 dez. 2020  ·  9Comentários  ·  Fonte: conda-incubator/setup-miniconda

Estou usando um arquivo conda.lock para instalar dependências. Eu queria saber se há uma maneira de armazená-lo em cache. Atualmente, parece que o cache normal não parece funcionar para isso.

Todos 9 comentários

Hm ... eu tenho uma execução pesada de lockfile, e o cache funciona no linux e osx:

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

Não funciona no Windows e, embora me deixe triste, também não me surpreende.

Se você tiver links para o repositório em questão, ou registros, ou qualquer informação adicional que você possa fornecer diferente de "não funciona", isso ajudaria!

Obrigado @bollwyvl pela sua resposta rápida.

Desculpe por não fornecer mais detalhes antes. Estou experimentando em um repositório de brinquedos, você pode encontrar um registro recente aqui:

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

O tamanho do cache é de aproximadamente 0 MB.

PS. Não estou usando setup-miniconda para este repo, estava tentando fazê-lo funcionar com o conda integrado em máquinas de CI.

@bollwyvl

Atualização 1

Olhando para o seu arquivo yml com uma pequena pesquisa em setup-miniconda , descobri que eu estava fazendo um monte de coisas erradas. A pasta de cache ( ~/conda_pkgs_dir ) não existia, então tive que criá-la manualmente, também não estava definindo a variável de ambiente CONDA_PKGS_DIRS para apontar para ~/conda_pkgs_dir . Esta é a iteração mais recente:

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

que parece que o cache está funcionando bem e a etapa de "instalação de dependências" agora é muito mais rápida.

Obrigado pelo insight.

Huzzah! Cache para todos!

Observe que o cache de toda a pasta não funcionará tão bem quanto poderia, pois
o cache contém os tarballs _e_ o conteúdo descompactado ... Em nosso
passo passo a passo, nós (tentamos) limpar um pouco disso.

Sinta-se à vontade para fechar se não houver mais nada quebrado ... especialmente como este
não estava envolvendo esta ação.

@bollwyvl Desculpe, eu sei que isso está totalmente fora do escopo deste repositório, mas posso perguntar o que exatamente você faz para otimizar o cache? De quais arquivos você se livra? o conteúdo descompactado ou os tarballs?

Sim, é praticamente o seu tamanho:

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

Há mais algumas coisas lá também, mas são coisas insignificantes em comparação
para, digamos, mkl ou qt descompactado.

@bollwyvl Pergunta rápida: olhando para delete.ts , parece que você está excluindo as pastas descompactadas, ao invés dos .tar.bz2 arquivos compactados. Provavelmente estou perdendo alguma coisa, mas parece que, ao fazer isso, o conda precisa realizar uma etapa adicional de "descompactação", enquanto se .tar.bz2 forem excluídos, conda pode simplesmente reutilizar o já descompactado pastas. Experimentei no meu computador e parece que o último levou a instalações mais rápidas.

Eu acho que você poderia executar o conda limpo também. @bollwyvl talvez pudéssemos usar isso em vez de delete.ts , eu fiz assim porque não estava ciente de conda clean naquele 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
Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

tdegeus picture tdegeus  ·  11Comentários

magland picture magland  ·  4Comentários

goanpeca picture goanpeca  ·  9Comentários

sadielbartholomew picture sadielbartholomew  ·  8Comentários

volpatto picture volpatto  ·  12Comentários