Conda Repositories

Available in Nexus Repository OSS and Nexus Repository Pro

NEW IN 3.19


"Package, dependency and environment management for any language---Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, FORTRAN

Conda is an open-source package management system and environment management system that runs on Windows, macOS, and Linux. Conda quickly installs, runs and updates packages and their dependencies. Conda easily creates, saves, loads, and switches between environments on your local computer. It was created for Python programs but it can package and distribute software for any language."

You can create a proxy repository in Nexus Repository Manager that will cache packages from a remote anaconda repository, like  Continuum, Conda-Forge and Anaconda. Then, you can make the Conda client use your Nexus Repository proxy instead of the remote repository.

This format is disabled in NXRM Pro HA-C environments.

Supported features

  • Conda versions - 4.6 and newer
  • Conda package formats - .conda and  tar.bz2
  • Repository types - Proxy

Repository configuration

Proxying the Conda repository

To proxy a Conda repository, you simply create a new conda (proxy) as documented in Repository Management in detail.

Minimal configuration steps are:

Configuring the Conda client to use NXRM

Using the Conda client, you can now download packages from your NXRM Conda proxy like so:

$ conda install -c <user>:<password>@<hostname>:<port>/repository/<repository_name> numpy

The command above tells Conda to fetch (and install) packages from your NXRM Conda proxy. NXRM will download any non-proxied packages from the remote Conda repository and cache them in NXRM. The next time any client requests the same package from your NXRM Conda proxy the already cached package will be returned to the client.

After these changes, you can install packages without directly specifying a channel, like this:

$ conda install numpy

Using NXRM Exclusively

If you are using the Conda client only with NXRM, you can add channels to the Conda repositories in the .condarc file and remove the default channels:

$ conda config --add channels <user>:<password>@<hostname>:<port>/repository/<repository_name>
$ conda config --remove channels defaults

And also set the "channel_alias"  in the ~/.condarc file to be the URL of your conda repository with "/conda" appended to the end of it:

# Note: You must add the "conda" subdirectory to the end 
channel_alias: <protocol>//<user>:<password>@<hostname>:<port>/repository/<repository_name>/conda