Setup-miniconda: conda.lockファイルを使用するときにキャッシュすることは可能ですか?

作成日 2020年12月10日  ·  9コメント  ·  ソース: conda-incubator/setup-miniconda

conda.lockファイルを使用して依存関係をインストールしています。 それをキャッシュする方法があるかどうか疑問に思いました。 現在、通常のキャッシュはそのために機能していないようです。

全てのコメント9件

うーん...私は重いロックファイルを持っています-実行を使用して、キャッシングはLinuxとOSXで機能します:

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

それはウィンドウズでは動作しません、そしてそれは私を悲しませますが、それはまた私を驚かせません。

問題のリポジトリへのリンク、ログ、または「機能しない」以外に提供できる追加情報がある場合は、役に立ちます。

迅速な返信をありがとう@bollwyvl

以前に詳細を提供しなかったことをお詫びします。 私はおもちゃのリポジトリで実験しています。最近のログはここにあります:

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

キャッシュサイズは約0MBと報告されています。

PS。 このリポジトリにはsetup-minicondaを使用していません。CIマシンに組み込まれているcondaで動作するようにしようとしていました。

@bollwyvl

アップデート1

あなたを見てみるとymlに少し掘りを持つファイルsetup-miniconda 、それは私が物事を間違ったの全体の束をしていたが判明しました。 キャッシュフォルダ( ~/conda_pkgs_dir )が存在しなかったため、手動で作成する必要がありました。また、 ~/conda_pkgs_dirを指すようにCONDA_PKGS_DIRS環境変数を設定していません~/conda_pkgs_dir 。 最新のイテレーションは次のとおりです。

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

これはキャッシュが正常に機能しているようで、「依存関係のインストール」ステップがはるかに高速になりました。

洞察に感謝します。

万歳! みんなのためのキャッシュ!

フォルダ全体をキャッシュすると、うまく機能しないことに注意してください。
キャッシュには、tarballと解凍されたコンテンツの両方が含まれています...
ステップステップの後、私たちはその一部をクリーンアップしようとします。

他に壊れているものがない場合は、気軽に閉じてください...特にこのように
この行動には関与していませんでした。

@bollwyvl申し訳ありませんが、これはこのリポジトリの範囲外ですが、キャッシュを最適化するために正確に何をしているのでしょうか。 どのファイルを削除しますか? 開梱された中身またはタールボール?

ええ、それはほとんどそれのサイズです:

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

そこにはさらにいくつかのものがありますが、それと比較すると、それはうんざりするようなものです
たとえば、mklまたはqtが解凍されます。

@bollwyvl簡単な質問: delete.tsを見ると、 .tar.bz2圧縮ファイルではなく、非圧縮フォルダーを削除しているようです。 おそらく何かが足りないのですが、そうすることで、condaは追加の「解凍」ステップを実行する必要があるようです。一方、 .tar.bz2が削除された場合、 condaはすでに解凍されたものを再利用できます。フォルダ。 私は自分のコンピューターでそれを試しましたが、後者はより速いインストールにつながったようです。

コンダもきれいに走れると思います。 @bollwyvl delete.ts代わりにそれを使用できるかもしれませんが、その時点でコンダクリーンに気付いていなかったので、そのようにしました。

$ 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

より小さなキャッシュのためのいくつかのより多くのアイデア:

このページは役に立ちましたか?
0 / 5 - 0 評価