@@ -31,7 +31,7 @@ In case installation still uses the `defaults` channel double check your configu
### Which conda distribution should be used
- The recommendation is to use [`miniforge`](https://github.com/conda-forge/miniforge) which uses the `conda-forge` channel by default which is community maintained, free to use and only contains open source software.
-`micromamba` is a good alternative for users that prefer `mamba`.
-`micromamba` is a good alternative for users that prefer `mamba` (but `mamba` is also included in `miniforge`).
- We advise against the use of `miniconda`. Even if `conda` installed via `miniconda` can be configured to ignore the `defaults` channel, the `defaults` channel will be used for the construction of the `base` environment.
- Using `Anaconda` is clearly not an option since all software comes from the `defaults` channel.
...
...
@@ -40,7 +40,7 @@ In case installation still uses the `defaults` channel double check your configu
In order to remove an old conda distribution (like miniconda/anaconda) you need to:
- Remove the installation directory (e.g. `~/miniconda3/`). Note that this typically includes your environments which you might want to keep (see below).
- Make sure that your shell's configuration file does not contain any traces of the old conda distribution, i.e. a block starting with `# >>> conda initialize >>>` and ending with `# <<< conda initialize <<<` or any `export` statements or modifications of the `PATH` variable. Potentially this can be done auromatically with `conda init --reverse`.
- Make sure that your shell's configuration file does not contain any traces of the old conda distribution, i.e. a block starting with `# >>> conda initialize >>>` and ending with `# <<< conda initialize <<<` or any `export` statements or modifications of the `PATH` variable (only those that add conda paths). Potentially this can be done auromatically with `conda init --reverse`.
- The official documentation [also contains a guide to transitioning from `defaults` to `conda-forge`](https://conda-forge.org/docs/user/transitioning_from_defaults/)
### Check existing `conda` environments
...
...
@@ -51,12 +51,11 @@ In order to remove an old conda distribution (like miniconda/anaconda) you need
### `conda` vs `mamba
-Since both are free to use (of course only if installed from a free source).
-Both are free to use (of course only if installed from a free source).
-`mamba` does not default to the `defaults` channel.
-`conda` does not default to the `defaults` channel when installed via [miniforge](https://github.com/conda-forge/miniforge/blob/e733f7bbc41f42551e9f02766d8a0301b72fde26/README.md?plain=1#L7-L8)
- Independent of the choice you need to double check the configurations if you have previously used `conda` / `mamba` or you install conda environments using exported yaml files.
- Nowadays most features of `conda` (in particular the solver) have been intregrated in `mamba`.
- Mamba is a slightly faster solver because it was built particularly with performance in mind
- Nowadays `conda` and `mamba` are nearly equivalent, i.e. `mamba` covers most of `conda`'s functionality and `conda` uses `mamba`'s solver by default. Some aspects of `mamba` might be slightly faster. You can use aliases to retain script compatibility.
### Check your configuration
...
...
@@ -70,16 +69,16 @@ If needed set it with `conda config --set override_channels_enabled True`.
## Details and background
Software (and in particular scientific software) is often difficult to install. Additionally, reproducible science requires independent installations of multiple versions of a software. `anaconda` aims to provide easy installation of important scientific software with proper version management. To this end the `conda` package manager has been created.
Software (and in particular scientific software) is often difficult to install. Additionally, reproducible science requires independent installations of multiple versions of a software. `anaconda` aims to provide easy installation of important scientific software with proper version management. To this end the `conda` package manager has been created. It provides the possibility to install software independent of the programming language (it covers much more than only python and R) and operating system (it covers Linux, Mac and Windows).
At the source of the conda ecosystem there are conda *recipes* which contain information on metadata, requirements and installation instructions that are needed to build a package. These `packages` which are a pre-built (binary) archives containing software, metadata, and information on dependencies, ready to be installed into a Conda environment. These packages are stored in
`channels`, i.e. repositories (online or local) where conda packages are stored and made available for installation.
At the source of the conda ecosystem there are conda *recipes* which contain information on metadata, requirements and installation instructions that are needed to build a package. These `packages` which are a pre-built archives containing software, metadata, and information on dependencies, ready to be installed into a Conda environment. These packages are stored in
`channels`, i.e. repositories (online or local) where conda packages are stored and made available for installation. Many channels are free and contain only free and open source software - most importnatly `conda-forge` and `bioconda`.
The `defaults` channel consists of conda packages that are maintained by Anaconda, Inc. It consists of several [subchannels](https://docs.anaconda.com/working-with-conda/reference/default-repositories/): `pkgs/main`, `pkgs/r``pkgs/pro`, `pkgs/msys2`, `pkgs/free`, `pkgs/archive`.
Most conda channels are currently hosted by Anaconda Inc (if one is looking for risks in using `conda` then this might be one since its a single point of failure).
Locally conda `packages` can be installed in environments which will install the package and its requirements.
A `conda` distribution is an installable software that provides `conda` (and all its requirements needed to run conda).
A `conda` distribution is an installable software that provides `conda` (and all its requirements needed to run conda), e.g. `mini-forge`.
The `defaults` channel consists of conda packages that are maintained by Anaconda, Inc. It consists of several [subchannels](https://docs.anaconda.com/working-with-conda/reference/default-repositories/): `pkgs/main`, `pkgs/r``pkgs/pro`, `pkgs/msys2`, `pkgs/free`, `pkgs/archive`.