Conda Repositories

Available in Nexus Repository OSS and Nexus Repository Pro

Introduction

"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.

Supported features

  • Conda versions - 4.6 and newer
  • Conda package formats - .conda and  tar.bz2
  • NXRM 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. The NXRM Conda proxy will download any missing packages from the remote Conda repository and cache the packages on the NXRM Conda proxy. The next time any client requests the same package from your NXRM Conda proxy, the already cached package will be returned to the client.

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

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

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

$ conda install numpy