Each Answer to this Q is separated by one/two green lines.
The miniforge installer is a relatively new, community-led, minimal conda installer that (as it says in its readme) “can be directly compared to Miniconda, with the added feature that conda-forge is the default channel”.
It is unclear what is different between miniforge and Miniconda, or what the miniforge use case is.
If miniforge is the same as Miniconda except it just uses the
conda-forge channel by default, why create a whole different installer – why not just use miniconda and add
conda-forge as the first channel to use in
If miniforge is different from Miniconda, what is different about the two?
miniforge is the community (conda-forge) driven minimalistic
conda installer. Subsequent package installations come thus from
miniconda is the Anaconda (company) driven minimalistic
conda installer. Subsequent package installations come from the
anaconda channels (default or otherwise).
miniforge started a few months ago because
miniconda doens’t support aarch64, very quickly the ‘PyPy’ people jumped on board, and in the mean time there are also
miniforge versions for all Linux architectures, as well as MacOS.
Soon there will also be a windows variant (hopefully also for both CPython and PyPy)
I guess that an ARMv7 (32Bit ARM) variant is also on the horizon (Raspbian)
The license. As of the 30 September 2020 update to the Anaconda Terms of Service, access to the Main conda channel (hosted at repo.anaconda.org) is restricted: https://www.anaconda.com/terms-of-service
While both the conda and miniconda installers are published under a BSD 3-clause license, if you actually use the installed conda clients without removing the Main channel, you’ll be in violation of Anaconda’s ToS. The miniforge installer avoids this altogether, which is of particular interest to large organizations that wish to use conda.
The short answer: miniforge-installed conda is the same as Miniconda-installed conda, except that it uses the
conda-forge channel (and only the
conda-forge channel) as the default channel.
This can be deduced by looking at the two files the miniforge repo uses to build the miniforge installer:
Miniforge3/construct.yaml, a yaml file that specifies what the final conda environment should look like for the conda installer that
construct.yaml it sets
conda-forge as the only channel (there is no defaults channel added; also see this Github comment) and then installs a few packages (python, conda, pip, and bzip2). It also writes those changes to the condarc.