Skip to content

DrMainIT/miniforge

 
 

Repository files navigation

Miniforge

Build Miniforge

This repository holds a minimal installer for Conda specific to conda-forge. Miniforge allows you to install the conda package manager with the following features pre-configured:

  • conda-forge set as the default (and only) channel.
  • Optional support for PyPy in place of standard Python interpretter (aka "CPython").
  • Optional support for Mamba in place of Conda.
  • An emphasis on supporting various CPU architectures (x86_64, ppc64le, and aarch64 including Apple M1).

It can be compared to the Miniconda installer.

Download

Miniforge installers are available here: https://github.com/conda-forge/miniforge/releases

Miniforge3

Latest installers with Python 3.9 (*) in the base environment:

OS Architecture Download
Linux x86_64 (amd64) Miniforge3-Linux-x86_64
Linux aarch64 (arm64) (**) Miniforge3-Linux-aarch64
Linux ppc64le (POWER8/9) Miniforge3-Linux-ppc64le
OS X x86_64 Miniforge3-MacOSX-x86_64
OS X arm64 (Apple Silicon) (***) Miniforge3-MacOSX-arm64
Windows x86_64 Miniforge3-Windows-x86_64

(*) The Python version is specific only to the base environment. Conda can create new environments with different Python versions and implementations.

(**) While the Raspberry PI includes a 64 bit processor, the RasbianOS is built on a 32 bit kernel and is not a supported configuration for these installers. We recommend using a 64 bit linux distribution such as Ubuntu for Raspberry PI.

(***) Apple silicon builds are experimental and haven't had testing like the other platforms.

Miniforge-pypy3

Latest installers with PyPy 3.7 in the base environment:

OS Architecture Download
Linux x86_64 (amd64) Miniforge-pypy3-Linux-x86_64
Linux aarch64 (arm64) Miniforge-pypy3-Linux-aarch64
Linux ppc64le (POWER8/9) Miniforge-pypy3-Linux-ppc64le
OS X x86_64 Miniforge-pypy3-MacOSX-x86_64

Mambaforge

Latest installers with Mamba in the base environment:

OS Architecture Download
Linux x86_64 (amd64) Mambaforge-Linux-x86_64
Linux aarch64 (arm64) Mambaforge-Linux-aarch64
Linux ppc64le (POWER8/9) Mambaforge-Linux-ppc64le
OS X x86_64 Mambaforge-MacOSX-x86_64
OS X arm64 (Apple Silicon) Mambaforge-MacOSX-arm64
Windows x86_64 Mambaforge-Windows-x86_64

Mambaforge-pypy3

Latest installers with Mamba and PyPy 3.7 in the base environment:

OS Architecture Download
Linux x86_64 (amd64) Mambaforge-pypy3-Linux-x86_64
Linux aarch64 (arm64) Mambaforge-pypy3-Linux-aarch64
Linux ppc64le (POWER8/9) Mambaforge-pypy3-Linux-ppc64le
OS X x86_64 Mambaforge-pypy3-MacOSX-x86_64

Install

Unix-like platforms

Download the installer using curl or wget or your favorite program download files and run the script. For eg:

curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh"
bash Mambaforge-$(uname)-$(uname -m).sh

or

wget "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh"
bash Mambaforge-$(uname)-$(uname -m).sh

Uninstallation

Uninstalling Miniforge means removing the files that were created during the installation process. You will typically want to remove:

  1. Any modifications to your shell rc files that were made by Miniforge:
# Use this first command to see what rc files will be updated
conda init --reverse --dry-run
# Use this next command to take action on the rc files listed above
conda init --reverse
  1. Remove the folder and all subfolders where the base environment for Miniforge was installed:
CONDA_BASE_ENVIRONMENT=$(conda info --base)
echo The next command will delete all files in ${CONDA_BASE_ENVIRONMENT}
# Warning, the rm command below is irreversible!
# check the output of the echo command above
# To make sure you are deleting the correct directory
rm -rf ${CONDA_BASE_ENVIRONMENT}
  1. Any global conda configuration files that are left behind.
echo ${HOME}/.condarc will be removed if it exists
rm -f "${HOME}/.condarc"

Windows

Download the installer and double click it on the file browser.

Non-interactive install

For non-interactive usage, look at the options by running the following:

bash Miniforge3-Linux-x86_64.sh -h   # or similar for other installers for unix platforms

or if you are on windows, run:

start /wait "" build/Miniforge3-Windows-x86_64.exe /InstallationType=JustMe /RegisterPython=0 /S /D=%UserProfile%\Miniforge3

Downloading the installer as part of a CI pipeline

If you wish to download the appropriate installer through the command line in a more automated fashion, you may wish to a command similar to

For Linux, any architecture, use the following command

wget -O Miniforge3.sh "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"

For MacOSX, any architecture, use the following command

curl -fsSLo Miniforge3.sh "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-$(uname -m).sh"

This will download the appropriate installer for the present architecture with the filename Miniforge3.sh. Run the shell script with the command in batch mode with the -b flash:

bash Miniforge3.sh -b

Homebrew

On macOS, you can install miniforge with Homebrew by running

brew install miniforge

Features

  • Automatic build of constructor.
  • Automatic upload of constructor results.
  • Automatic testing of constructor.
  • Integration with conda-forge's developer documentation.
  • Integration with conda-forge's official site.
  • Upstream to Anaconda ?

Testing

After construction on the CI, the installer is tested against a range of distribution that match the installer architecture ($ARCH). For example when architecture is aarch64, the constructed installer is tested against:

  • Centos 7
  • Debian Buster (10)
  • Debian Bullseye (11)
  • Ubuntu 16.04 (LTS)
  • Ubuntu 18.04 (LTS)
  • Ubuntu 20.04 (LTS)
  • Ubuntu 21.10 (Latest non-LTS version)

Local usage

Installers are built and uploaded via the CI but if you want to construct your own Miniforge installer, here is how:

# Configuration
export ARCH=aarch64
export DOCKERIMAGE=condaforge/linux-anvil-aarch64

bash build_miniforge.sh

Release

To release a new version of Miniforge:

  • Make a new pre-release on GitHub with name $CONDA_VERSION-$BUILD_NUMBER
  • Wait until all artifacts are uploaded by CI
    • For each build, we upload 3 artifacts
      1. One installer with the version name
      2. One installer without the version name
      3. The SHA256
    • At the time of writing, the is a sum of 60 artifacts, and with the two sources, we expect a grand total of 62 artifacts.
  • Mark the pre-release as a release

NOTE: using a pre-release is important to make sure the latest links work.

License

BSD 3-Clause

History

Relevant conversations:

About

A conda-forge distribution.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 74.0%
  • JavaScript 19.5%
  • Python 6.5%