Setup-miniconda: Ist es möglich, bei Verwendung von conda.lock-Dateien zwischenzuspeichern?

Erstellt am 10. Dez. 2020  ·  9Kommentare  ·  Quelle: conda-incubator/setup-miniconda

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.

Alle 9 Kommentare

Hm ... ich habe einen umfangreichen Lockfile-Verwendungslauf und das Caching funktioniert unter Linux und OSX:

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

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

Update 1

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
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

jaimergp picture jaimergp  ·  13Kommentare

bollwyvl picture bollwyvl  ·  12Kommentare

goanpeca picture goanpeca  ·  9Kommentare

ma-sadeghi picture ma-sadeghi  ·  4Kommentare

volpatto picture volpatto  ·  12Kommentare