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.
Hm... saya menjalankan file-lock yang berat, dan caching berfungsi di linux dan osx:
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
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
Beberapa ide lagi untuk cache yang lebih kecil: