Groups that share packages across users can save storage and network traffic by installing packages from a shared directory (e.g. on a network file server).

Create and populate shared package directory

  1. Create a quilt_packages directory on the shared file system.

  2. Set the QUILT_PRIMARY_PACKAGE_DIR to the path for quilt_packages in step 1.

    # select a path that you control & is durable, e.g.
    export SHARE_PATH=YOUR_SHARED_PATH/quilt_packages
    export QUILT_PRIMARY_PACKAGE_DIR=$SHARE_PATH
    mkdir -p "$SHARE_PATH"
    chmod o+r "$SHARE_PATH"
  3. Install packages to the shared directory

    quilt build USERNAME/PACKAGE PATH_TO_BUILD_YML
    quilt install USERNAME/PACKAGE
  4. Set read permissions on shared directory and sub-directories

    chgrp -R readers "$QUILT_PRIMARY_PACKAGE_DIR"
    chmod -R g+rx "$QUILT_PRIMARY_PACKAGE_DIR"

Configure clients to read from shared directory

  1. Each reader should set the following environment variable:

    # consider setting this in .bashrc
    export QUILT_PACKAGE_DIRS=$SHARE_PATH
  2. Readers can can import shared packages as follows

    example:

    from quilt.data.USERNAME import PACKAGE

Import precedence

Quilt will first check QUILT_PRIMARY (defaults to the local machine) and then check QUILT_PACKAGE_DIRS (if available) when importing a package.

Refer to the Python API docs for details on quilt commands.