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-forgechannel -
The
conda-forgechannel 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
venvshould 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.