Slow Conda solves can block environment creation, package installs, and updates long before any files are changed. Enabling the libmamba solver tells Conda to use the newer dependency resolver for package decisions instead of the older classic solver.
Recent Conda releases already use libmamba by default, but older installations or explicit .condarc settings can still point to classic. The active value is visible through conda config and conda info, so check the current solver before changing a shared workstation or build runner.
The conda-libmamba-solver package must be present in the base environment because Conda loads solver plugins from there. conda config --set solver libmamba writes the setting to the user .condarc by default, and new Conda commands read the setting without restarting the shell.
Related: How to set Conda channel priority
Related: How to enable conda-forge in Conda
Related: How to install a package with Conda
Steps to enable the libmamba Conda solver:
- Check the current solver setting.
$ conda config --show solver solver: classic
If the output already shows solver: libmamba, skip the change step and run the smoke test to confirm Conda can still solve a package request.
- Check whether the libmamba solver plugin is installed in base.
$ conda list --name base conda-libmamba-solver # packages in environment at /opt/conda: # # Name Version Build Channel conda-libmamba-solver 26.4.0 pyh3785b3c_0
- Install the solver plugin if the package row is missing.
$ conda install --name base conda-libmamba-solver
If Conda stops with CondaToSNonInteractiveError on Anaconda channels, review the listed channel URLs and accept the required Terms of Service or install the package from an approved channel before continuing.
Related: How to install a package with Conda
- Set libmamba as the default solver.
$ conda config --set solver libmamba
- Confirm the saved solver setting.
$ conda config --show solver solver: libmamba
- Inspect the configuration source if the active value is not the expected one.
$ conda config --show-sources ==> /home/user/.condarc <== channels: - defaults solver: libmamba
Multiple files can appear in this output. A later file or environment-specific setting can override an earlier solver value.
- Confirm the runtime solver reported by Conda.
$ conda info active environment : None conda version : 26.3.2 solver : libmamba (default) ##### snipped ##### - Run a dry-run solve with the enabled solver.
$ conda create --dry-run --name solver-smoke --override-channels --channel conda-forge zlib Channels: - conda-forge Platform: linux-64 Collecting package metadata (repodata.json): done Solving environment: done DryRunExit: Dry run. Exiting. ## Package Plan ## environment location: /opt/conda/envs/solver-smoke added / updated specs: - zlib The following NEW packages will be INSTALLED: libzlib conda-forge/linux-64::libzlib-1.3.2-hdc9db2a_2 zlib conda-forge/linux-64::zlib-1.3.2-hdc9db2a_2The dry run does not create the solver-smoke environment. The explicit conda-forge channel keeps the smoke test independent of Anaconda channel Terms of Service prompts.
Related: How to enable conda-forge in Conda
Mohd Shakir Zakaria is a cloud architect with deep roots in software development and open-source advocacy. Certified in AWS, Red Hat, VMware, ITIL, and Linux, he specializes in designing and managing robust cloud and on-premises infrastructures.