Setup-miniconda: Apakah mungkin untuk melakukan cache saat menggunakan file conda.lock?

Dibuat pada 10 Des 2020  ·  9Komentar  ·  Sumber: conda-incubator/setup-miniconda

Saya menggunakan file conda.lock untuk menginstal dependensi. Saya bertanya-tanya apakah ada cara untuk menyimpannya. Saat ini, tampaknya caching biasa tampaknya tidak berfungsi untuk itu.

Semua 9 komentar

Hm... saya menjalankan file-lock yang berat, dan caching berfungsi di linux dan osx:

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

Itu tidak berfungsi di windows, dan sementara itu membuat saya sedih, itu juga tidak mengejutkan saya.

Jika Anda memiliki tautan ke repo yang dimaksud, atau log, atau informasi tambahan apa pun yang dapat Anda berikan selain "tidak berfungsi" yang akan membantu!

Terima kasih @bollwyvl atas balasan cepat Anda.

Maaf karena tidak memberikan detail lebih lanjut sebelumnya. Saya sedang bereksperimen pada repo mainan, Anda dapat menemukan log terbaru di sini:

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

Ukuran cache dilaporkan ~0MB.

PS. Saya tidak menggunakan setup-miniconda untuk repo ini, saya mencoba membuatnya bekerja dengan conda bawaan pada mesin CI.

@bollwyvl

Perbarui 1

Melihat file yml dengan sedikit menggali setup-miniconda , ternyata saya melakukan banyak hal yang salah. Folder cache ( ~/conda_pkgs_dir ) tidak ada, jadi saya harus membuatnya secara manual, saya juga tidak mengatur variabel lingkungan CONDA_PKGS_DIRS untuk menunjuk ke ~/conda_pkgs_dir . Berikut iterasi terbaru:

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

yang sepertinya caching berfungsi dengan baik dan langkah "menginstal dependensi" sekarang jauh lebih cepat.

Terima kasih atas wawasannya.

Sabas! Tembolok untuk semua orang!

Perhatikan bahwa men-cache seluruh folder tidak akan berfungsi sebaik mungkin, karena
cache berisi tarball _dan_ konten yang belum dibongkar... Di kami
langkah langkah pos kami (mencoba) untuk membersihkan sebagian dari itu.

Jangan ragu untuk menutup jika tidak ada yang rusak ... terutama seperti ini
tidak melibatkan tindakan ini.

@bollwyvl Maaf saya tahu ini sepenuhnya di luar cakupan repo ini, tetapi bolehkah saya bertanya apa sebenarnya yang Anda lakukan untuk mengoptimalkan caching? File mana yang Anda singkirkan? isi yang dibongkar atau tarbal?

Ya itu kira-kira ukurannya:

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

Ada beberapa barang lagi di sana juga, tapi itu barang yang aneh jika dibandingkan
untuk, katakanlah, mkl atau qt dibongkar.

@bollwyvl Pertanyaan cepat: melihat delete.ts , tampaknya Anda menghapus folder yang tidak terkompresi, daripada file terkompresi .tar.bz2 . Saya mungkin melewatkan sesuatu, tetapi tampaknya dengan melakukan itu, conda perlu melakukan langkah "dekompresi" tambahan, sedangkan jika .tar.bz2 dihapus, conda cukup menggunakan kembali yang sudah didekompresi folder. Saya mencobanya di komputer saya dan sepertinya yang terakhir menyebabkan pemasangan lebih cepat.

Saya pikir Anda bisa menjalankan conda clean juga. @bollwyvl mungkin kita bisa menggunakannya daripada delete.ts , saya melakukannya seperti itu karena saya tidak mengetahui conda clean pada saat itu.

$ 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
Apakah halaman ini membantu?
0 / 5 - 0 peringkat