Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision |
other:uvcdat:cdat_conda:miniconda3_install [2021/03/09 11:38] – [Fine-tuning conda] jypeter | other:uvcdat:cdat_conda:miniconda3_install [2021/04/22 15:22] – [Using mamba instead of conda] Added missing information jypeter |
---|
Most of the packages we will install will be provided by the //conda-forge// channel (''-c conda-forge'' option). The installation steps will also add dependencies that will theoretically come from //conda-forge//, but could also come from the //defaults// channel. | Most of the packages we will install will be provided by the //conda-forge// channel (''-c conda-forge'' option). The installation steps will also add dependencies that will theoretically come from //conda-forge//, but could also come from the //defaults// channel. |
| |
The following will **make sure that we only get packages from //conda-forge//** (see [[https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-channels.html|Managing channels]] and [[https://conda-forge.org/docs/user/tipsandtricks.html#how-to-fix-it|Using multiple channels => How to fix it]]) | The following will **make sure that we only get packages from //conda-forge//** unless the requested packages really don't exist on //conda-forge// (see [[https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-channels.html|Managing channels]] and [[https://conda-forge.org/docs/user/tipsandtricks.html#how-to-fix-it|Using multiple channels => How to fix it]]) |
| |
<code>$ conda config --add channels conda-forge | <code>$ conda config --add channels conda-forge |
$ conda config --set channel_priority strict | $ conda config --set channel_priority strict |
$ cat .condarc | $ cat ~/.condarc |
channels: | channels: |
- conda-forge | - conda-forge |
==== Using mamba instead of conda ==== | ==== Using mamba instead of conda ==== |
| |
Even when using a proper ''.condarc'' in order to get packages coming only from //conda-forge//, ''conda install'' may fail to solve the dependencies after meditating during an enormous time, when we specify **complex environments**. Using CDAT as a base environment, and adding a lot of extra packages is a complex environment. | Even when using a proper ''.condarc'' in order to get packages coming only from //conda-forge//, ''conda install'' may fail to solve the dependencies after meditating during an enormous time (e.g. [[https://github.com/conda/conda/issues/9367#issuecomment-793968239|Solving environment: failed with initial frozen solve. Retrying with flexible solve.]]), when we try to deal with **complex environments** (i.e. we already have lots of installed packages and we want to add even more packages). |
| |
The only solution seems to replace ''conda'' with [[https://github.com/mamba-org/mamba|mamba]], a reimplementation of the conda package manager in C++ ([[https://wolfv.medium.com/making-conda-fast-again-4da4debfb3b7|Making conda fast again]]) | Using CDAT as a base environment, and adding a lot of extra packages is a **complex environment**. |
| |
| The only solution seems to replace ''conda'' with [[https://github.com/mamba-org/mamba|mamba]], a reimplementation of the conda package manager in C++ ([[https://wolfv.medium.com/making-conda-fast-again-4da4debfb3b7|Making conda fast again]]): |
| * Install ''mamba'' in the //base// (i.e. miniconda) environment\\ ''conda install mamba -n base -c conda-forge'' |
| * Use ''mamba'' instead of ''conda'' when installing packages\\ ''mamba install -c conda_forge lots_of_packages'' |
| |
| |