Skip to content

Transitioning from Anaconda to Miniforge

Due to recent changes in Anaconda's Terms of Service, the VACC can no longer provide or support the use of Anaconda, Miniconda, or any of the Anaconda licensed channels (e.g. defaults) on the VACC cluster and still comply with the new license terms.

Over the past year, the terms of service for Academic licenses, both personal and institutional, have been ambiguous, conflicting, and fluid. One of the main issues for the VACC, as an HPC center, is that while there is a stated exception to scaled deployment restrictions for academic institutions, the exemption is for educational use only. With so many research projects taking advantage of VACC resources, we cannot guarantee compliance for a central installation. Additionally, restrictions on third-party access are problematic, since there are many external collaborators on the VACC.

Therefore, the VACC is implementing a transition that will require the use of Miniforge (available by module as miniforge/25.11.0-py3.12) in place of Anaconda or Miniconda, along with the conda-forge channel, when creating new environments. This transition aligns with similar decisions made by HPC centers at many other academic and research institutions.

Using the Anaconda licensed channels for research without a personal license will likely violate the Anaconda license. At the time of this writing, package installation from licensed channels is still allowed for instructional use according to Anaconda's Academic Policy in addition to the Academic End User License Agreement (EULA) which you must agree to when signing up for academic access.

If you decide to use Anaconda or Miniconda locally installed with any licensed Anaconda channel(s) or to explicitly add the defaults channel (or any other licensed Anaconda channels) when using Miniforge, it is your responsibility to obtain the correct license (academic or personal), know and understand the agreed upon EULA and Academic Policy, and to abide by those terms. Academic access must be renewed annually with Anaconda. The VACC will not support new or continued use of local Anaconda or Miniconda installations. In these cases, both installation and module set up must be done by the licensed person.

Miniforge, a conda-forge distribution, provides Conda, Mamba, pip and venv with the following features pre-configured:

  • Packages in the base environment are obtained from the conda-forge channel

  • The conda-forge channel is set as the default (and only) channel

Dates of Important Changes

Anaconda modules currently installed on the VACC will continue to be available for the near future. Please be aware of the following scheduled changes and required actions:

February 3rd

  • the Miniforge module (miniforge/25.11.0-py3.12) is now available
  • transition to using Miniforge when creating new Python environments as soon as practicable
  • begin checking for Anaconda repository dependencies in current environments and reinstall as needed
  • reinstall environments created with venv by April 15th
  • begin updating scripts to load the Miniforge module instead of Anaconda modules (i.e., python3.xx-anaconda)

April 15th (tentative)

  • all Anaconda modules (i.e., python3.xx-anaconda) will redirect to the Miniforge module
  • the Open OnDemand JupyterLab and Jupyter Notebook apps will be updated to use only Miniforge
  • any virtual environments created with venv should have been reinstalled by now

May 15 (tentative)

  • the placeholder Anaconda modules will be removed from the VACC
  • all scripts previously loading Anaconda modules should now be updated to load the Miniforge module instead
  • all environments found to have used a restricted Anaconda channel should have been reinstalled without said channel(s) or an appropriate license should have been obtained by the user

As of April 15th, the VACC is effectively switching to conda-forge as the only default package installation channel and a reduced number of preinstalled packages in the base environment. At this point, any virtual environments created with venv should have been reinstalled. If they have not been reinstalled they will no longer work. With the removal of the placeholder Anaconda modules on May 15th, any scripts that have not been updated to load the Miniforge module instead of the Anaconda modules will fail. Virtual environments that utilized restricted Anaconda channels should have been identified and reinstalled without license-controlled channels.

Use the Miniforge module instead of Anaconda

From this point forward, when creating new Python virtual environments, you should be transitioning away from using the Anaconda modules (for example, python3.12-anaconda) or personal installations of Anaconda or Miniconda. As soon as practicable to do so, please switch to using the miniforge module and take note of upcoming module changes that may impact current job scripts or previously installed environments. You can load the new module via:

$ module purge
$ module load miniforge

Since Miniforge provides Conda, Mamba, pip and venv, you can create environments and install packages very much the same as before. See our documentation on Installing Python Libraries and Packages for more detail.

Move or update your .condarc file

If you have an existing ~/.condarc file, this may conflict with the miniforge module. Additionally, it will likely list the Anaconda defaults channel, which should no longer be used on the VACC due to restrictive Terms of Service. To avoid this possibility, please rename this file by running the following command:

$ mv ~/.condarc ~/dot-condarc

You can still access your old file at ~/dot-condarc. If you have other channels in your ~/.condarc file that are necessary for your work (e.g. bioconda), you can keep your ~/.condarc file (skipping the above step), but be sure to remove the Anaconda defaults channel by running the following command after loading the miniforge module:

$ conda config --remove channels defaults

"Conda-forge" is a large community, but may not have every package you need. If you are interested in a particular package, you can find out if any channels offer it by searching on the anaconda.org website (this is not the same as anaconda.com). If you find a channel that you want conda to install packages from, you can add it to the conda configuration as follows:

$ conda config --add channels bioconda

This will put bioconda at the top of the list of channels. Channels have priority order, where the channel listed highest in the configuration has the highest priority. If you prefer the channel added to the bottom of the list of channels, you should instead use:

$ conda config --append channels bioconda

You can list all configured channels with the following command:

$ conda config --show channels
channels:
  - conda-forge
  - bioconda

NOTE: While the community-provided packages are stored on Anaconda, Inc.'s servers as a courtesy, they are not owned or created by Anaconda, Inc. so they do not fall under Anaconda's licensing terms.

Check for Anaconda Repository Dependencies

To check pre-existing environments, installed using Anaconda or Miniconda, for packages that used Anaconda's restricted channel(s), you'll first need to get a list of your environments.

$ conda env list
# conda environments:
#
myenv        /users/x/y/myNetID/.conda/envs/myenv
test         /users/x/y/myNetID/.conda/envs/test
base         /gpfs1/sw/rh9/pkgs/miniforge/25.11.0-1

For each environment path listed, check where the installed packages came from:

$ conda list --explicit --prefix /users/x/y/myNetID/.conda/envs/myenv | grep anaconda.com
https://repo.anaconda.com/pkgs/main/linux-64/libgd-2.2.5-h8e06009_4.conda

If you see any packages listed from "repo.anaconda.com", these fall under the Anaconda Terms of Service and may require a license for continued use. If you are using an environment that depends on "repo.anaconda.com" exclusively for instructional use, you can continue to use it. However, if you use this environment for research, it is a violation of Anaconda's terms of service unless you obtain your own license. Otherwise, in order to come into compliance, you will need to replace packages installed through the Anaconda restricted channels with packages from non-proprietary channels such as conda-forge. The best way to do this is to reinstall the environment with Miniforge. You should give the environment a new name, distinct from the original name. After confirming that the new environment is fully functional, you should remove the old environment. You may wish to save an archived copy for reference.

Reinstall Virtual Environments created with venv

If you created any virtual environments using venv instead of conda when using any of the Anaconda modules, these environments will have to be rebuilt using Miniforge because their Python interpreter is a symbolic link back to the Anaconda installation that was used to create that venv. Once the old Anaconda modules are removed, these virtual environments will no longer work.

If you have not followed a consistent pattern and naming convention when creating virtual environments with venv, you can try to locate them using the following find commands:

find ~ -type f -name pyvenv.cfg
find /gpfs2/scratch/$USER -type f -name pyvenv.cfg

You should either build a new venv using the Miniforge module, or create a Conda environment using the conda or mamba commands provided by the Miniforge module.


If you have any questions about the transition or problems reinstalling an environment, please open a ticket with VACC support by emailing vacchelp@uvm.edu or visit us at one of our Research Computing Virtual Café sessions.