Files
gitea-pages/admin-guide/configuration/software/conda.md

2.6 KiB

Conda / Anaconda

Conda / Anaconda (https://conda.org) is a package manager that can be used to easily create tailored Python environments without having required C/... binaries of some packages installed on the local system. (i.e. conda will take care that required binaries are installed into the environment)

Due to certain license restrictions the usage of Anaconda at PSI is not allowed without obtaining a professional license from Anaconda.com!

However the usage of the command `conda` and/or of packages from conda-forge is still possible - see below ...

This guide explains how to install and configure conda in accordance to the Anaconda.com license terms.

Installation

On a standard Linux system the conda package can be simply installed via a:

yum install conda

To instruct puppet to install the package you can have following hiera config:

base::pkg_group::extra:
  - 'conda'

base::package_groups:
  - 'extra'

Configuration

To overwrite the default configuration of conda (which would violate the license because packages would be installed from anaconda.org by default) following config file needs to be deployed in /etc/conda/condarc.d/base.yml (or similar):

channels:
- conda-forge

# Show channel URLs when displaying what is going to be downloaded
# and in 'conda list'. The default is False.
show_channel_urls: True
always_copy: true

To place the file via Puppet/Hiera you can have following configuration:

files::files:
  /etc/conda/condarc.d/base.yml:
    content: | 
      channels:
      - conda-forge
      - nodefaults

      # Show channel URLs when displaying what is going to be downloaded
      # and in 'conda list'. The default is False.
      show_channel_urls: True
      always_copy: true

To be able to use the conda command a user needs to source the command into its current shell. This can be done like this:

source /opt/conda/etc/profile.d/conda.sh

Afterwards conda environments can be created in a license conformed way as documented at https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html

Usage

More details on the usage of the conda command can be found here: https://docs.conda.io/projects/conda/en/stable/user-guide/index.html

Important Info

It seems that the conda list <package> command still uses the default channel. However conda install seem to respect the config above.

Probably related to this here: https://stackoverflow.com/questions/67695893/how-do-i-completely-purge-and-disable-the-default-channel-in-anaconda-and-switch