Few concepts are extensively used in
Mamba and in this documentation as well.
You should start by getting familiar with those as a starting point.
In Unix-like platforms, installing a software consists in placing files in subdirectories of an “installation prefix”:
no file is placed outside of the installation prefix
dependencies must be installed in the same prefix (or standard system prefixes with lower precedence)
Examples on Unix: the root of the filesystem, the
An environment is just another way to call a target prefix.
Mamba’s environments are similar to virtual environments known from Python’s
virtualenv and similar software, but more powerful since Mamba also manages native dependencies and generalizes the virtual environment concept to many programming languages.
When downloading for the first time the index of packages for resolution of the environment, or the packages themselves, a cache is generated to speed-up next operations:
the index has a configurable time-to-live (TTL) during which it will be considered as valid
the packages are preferentially hard-linked to the cache location
This cache is shared by all environments or target prefixes based on the same root prefix. Basically, that cache directory is a subdirectory located at
The root prefix also provide a convenient structure to store environments
$root_prefix/envs/, even if you are free to create an environment elsewhere.
The base environment is the environment located at the root prefix.
condaimplementation still heavily used.
mambainstallation alongside a Python installation (since
condarequire Python to run)
condabeing themselves Python packages, they are installed in base environment, making the CLIs available in all activated environment based on this base environement.
create base environment because it’s already part of the root prefix structure, directly
install in base instead.
The activation of an environment makes all its contents available to your shell. It mainly adds target prefix subdirectories to your
$PATH environment variable.
activation implementation is platform dependent.
stackor not upon the currently activated env.
system prefix < base < env1 < env2.
The deactivation is the opposite operation of activation, removing from your shell what makes the environment content accessible.