Command line interface (AER 2.32)

cas-mirror

NOTE: The cas-mirror tool is a component of the Anaconda repository enterprise product and is not available for free.

The mirror tool is used to setup a package mirror of the Anaconda repository within your organization. The following conda command installs the mirror tool:

conda install cas-mirror

Installing cas-mirror will make these commands available:

cas-sync --help
cas-merge --help
cas-sync-api-v4 --help
cas-server --help

The first command cas-sync is used to bring the local mirror of the Anaconda repository up-to-date with our remote servers. To configure the location of the mirror on your file system, check the output of:

cas-sync --config

and, if necessary, create a configuration file (either ~/.cas-mirror or system-wise /etc/cas-mirror) which contains the desired location of the local mirror on the filesystem, the platforms which should be mirrored, as well as an optional blacklist of packages (the names of packages which should not be mirrored, e.g.

mirror_dir: /home/data/mirror
remote_url: ""  # where to get miniconda and anaconda installers -- blank to skip
# possible platforms are: linux-64, linux-32, osx-64, win-32, win-64
platforms:
  - linux-64
  - win-32
blacklist:
  - dnspython
  - shapely
  - gdal

Once you are happy with the mirror directory (which may be the default), you can run:

cas-sync

Running this command for the first time will take many hours, because the entire Anaconda repository is being downloaded. Subsequent runs will take significantly less time. To serve the Anaconda repository over HTTP, you can run:

cas-server

The port on which the repository is being served may be changed using the --port option. Note that you will need to run cas-server as root when you intend to serve on port 80.

If you’ve already downloaded most of the anaconda repository, and you’re only interested in the changes since cas-sync was last run, you can use the delta configuration option:

mirror_dir: /home/data/mirror
remote_url: ""  # where to get miniconda and anaconda installers -- blank to skip
# possible platforms are: linux-64, linux-32, osx-64, win-32, win-64
platforms:
  - linux-64
  - win-32
blacklist:
  - dnspython
  - shapely
  - gdal
delta: true
delta_dir: delta_pkgs

Instead of mirroring to the existing local repository, it will record the necessary changes to bring the mirror up to date in a separate directory (delta_pkgs in this case). You can then use this generated directory to update air-gapped mirrors using the cas-merge command.

The cas-merge command takes a delta directory and combines its contents with an existing mirror directory. New packages are added, missing packages are deleted, and the repodata is updated.

If instead of mirroring to a local directory, you want to make the changes directly into an existing Anaconda Repository instance, the cas-sync-api-v4 can be used. You’ll need to use the dest_site config option:

mirror_dir: /home/data/mirror
remote_url: ""  # where to get miniconda and anaconda installers -- blank to skip
# possible platforms are: linux-64, linux-32, osx-64, win-32, win-64
platforms:
  - linux-64
  - win-32
blacklist:
  - dnspython
  - shapely
  - gdal
dest_site: some_site

Make sure that the site is defined in the anaconda config and you’re properly logged into it before invoking cas-sync-api-v4.

More extensive information about the cas-mirror tool’s functionality and configurable options is available at Configuring your PyPI or Anaconda Repository mirror.

cas-installer

A token from Anaconda is required to install cas-installer, and you should have received it when your organization purchased Anaconda Repository, Workgroup or Enterprise. If you no longer have access to your token, submit a support ticket or contact Enterprise Support. You can also email support at the email address given to you by your sales representative.

When you have the token, run:

export TOKEN=<your Anaconda Cloud token>
conda config --add channels https://conda.anaconda.org/t/$TOKEN/anaconda-server

This tool allows you to create an installer for a conda environment. It is important that the cas-installer package is installed into the “root” conda environment (not “root” user). The following command ensures that this happens:

conda install -n root cas-installer=1.3.2

Once installed, the cas-installer command will be available:

cas-installer -h

The command takes an installer specification file as its argument, which specifies the name of the installer, the conda channel to pull packages from, the conda packages included in the installer etc. Here is an example:

# ----------------- required -----------------
# name
name: test

# channels to pull packages from
# The &channels creates a backreference so that it can be reused as
# *channels in the conda_default_channels section below.
channels: &channels
  - http://repo.continuum.io/pkgs/free/

# specifications
specs:
  - python
  - grin

# ----------------- optional -----------------
# platform e.g. linux-32, osx-64, win-32 defaults to current platform
#platform: linux-64

# The conda default channels which are used when running a conda which
# was installed be the cas-installer created (requires conda (3.6.2 or
# greater) in the specifications). The *channels is a YAML reference to
# &channels above.  It inserts all the channels from the channels key, so
# that they do not have to be typed twice.
conda_default_channels: *channels

# installer filename
#installer_filename: grin.sh

# default install prefix
default_prefix: /opt/anaconda

For Windows, the tool creates nsis-based .exe installers, which can only be created on a Windows platform, although the architecture may be different. For Unix, the tool creates bash-based .sh installer, which can only be created on Unix (Linux, Mac OS X) systems.