Ich verwende eine conda.lock-Datei, um Abhängigkeiten zu installieren. Ich habe mich gefragt, ob es eine Möglichkeit gibt, es zwischenzuspeichern. Derzeit scheint das normale Caching dafür nicht zu funktionieren.
Hm ... ich habe einen umfangreichen Lockfile-Verwendungslauf und das Caching funktioniert unter Linux und OSX:
Es funktioniert nicht unter Windows, und obwohl es mich traurig macht, überrascht es mich auch nicht.
Wenn Sie Links zu dem betreffenden Repository oder Protokolle oder zusätzliche Informationen haben, die Sie außer "funktioniert nicht" bereitstellen könnten, wäre dies hilfreich!
Danke @bollwyvl für deine schnelle Antwort.
Entschuldigung, dass ich nicht früher mehr Details bekannt gegeben habe. Ich experimentiere mit einem Spielzeug-Repo, ein aktuelles Protokoll finden Sie hier:
https://github.com/ma-sadeghi/xyztest/runs/1534789528?check_suite_focus=true
Die Cachegröße wird mit ~0 MB angegeben.
PS. Ich verwende nicht setup-miniconda
für dieses Repository, ich habe versucht, es mit dem integrierten conda
auf CI-Rechnern zum Laufen zu bringen.
@bollwyvl
Wenn ich mir deine yml
Datei ansehe und ein wenig in setup-miniconda
, stellte sich heraus, dass ich eine ganze Reihe von Dingen falsch gemacht hatte. Der Cache-Ordner ( ~/conda_pkgs_dir
) war nicht vorhanden, also musste ich ihn manuell erstellen, außerdem habe ich die Umgebungsvariable CONDA_PKGS_DIRS
nicht so eingestellt, dass sie auf ~/conda_pkgs_dir
. Hier ist die neueste Iteration:
https://github.com/ma-sadeghi/xyztest/runs/1535236467?check_suite_focus=true
was so aussieht, als ob das Caching gut funktioniert und der Schritt "Abhängigkeiten installieren" jetzt viel schneller ist.
Danke für den Einblick.
Huzza! Cache für alle!
Beachten Sie, dass das Zwischenspeichern des gesamten Ordners nicht so gut funktioniert, wie es könnte, da
der Cache enthält sowohl die Tarballs _und_ den entpackten Inhalt... In unserem
Nach dem Schritt Schritt versuchen wir, einiges davon zu bereinigen.
Schließt gerne, wenn sonst nichts kaputt ist... zumal das hier
war nicht mit dieser Aktion verbunden.
@bollwyvl Entschuldigung, ich weiß, dass dies völlig außerhalb des Umfangs dieses Repositorys liegt, aber darf ich fragen, was genau Sie tun, um das Caching zu optimieren? Welche Dateien werden Sie los? der ausgepackte Inhalt oder die Tarballs?
Ja, das ist ungefähr die Größe:
https://github.com/conda-incubator/setup-miniconda/blob/master/src/delete.ts
Es ist auch noch etwas mehr drin, aber im Vergleich ist es knifflig
zu, sagen wir, mkl oder qt ausgepackt.
@bollwyvl Kurze Frage: delete.ts
ansehen , scheinen Sie die unkomprimierten Ordner und nicht die komprimierten Dateien mit .tar.bz2
löschen. Ich vermisse wahrscheinlich etwas, aber es scheint, dass Conda dabei einen zusätzlichen "Dekomprimieren"-Schritt durchführen muss, während .tar.bz2
gelöscht werden, conda
einfach die bereits dekomprimierten . wiederverwenden kann Ordner. Ich habe es auf meinem Computer ausprobiert und es schien, dass letzteres zu schnelleren Installationen führte.
Ich denke, Sie könnten auch Conda sauber machen. @bollwyvl vielleicht könnten wir das anstelle von delete.ts
, ich habe es so gemacht, weil mir in diesem Moment Conda Clean nicht bewusst war.
$ 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
Noch ein paar Ideen für einen kleineren Cache: