# Installing Rucio Clients

## Prerequisites

Rucio clients runs on Python 2.6, 2.7.

Platforms: Rucio should run on any Unix-like platform.

## Python Dependencies

Rucio clients need the following python modules:

    argparse>=1.4.0             # Command-line parsing library
    argcomplete>=1.8.2          # Bash tab completion for argparse
    kerberos>=1.2.5             # Kerberos high-level interface
    pykerberos>=1.1.14          # Kerberos high-level interface
    requests==2.18.1            # Python HTTP for Humans.
    requests-kerberos==0.11.0   # A Kerberos authentication handler for python-requests
    wsgiref>=0.1.2              # WSGI (PEP 333) Reference Library
    dogpile.cache>=0.6.3        # Caching API plugins
    nose>=1.3.7                 # For rucio test-server
    boto>=2.47.0                # S3 boto protocol
    python-swiftclient>=3.3.0   # OpenStack Object Storage API Client Library
    tabulate>=0.7.7             # Pretty-print tabular data
    progressbar>=2.3            # Text progress bar
    bz2file>=0.98               # Read and write bzip2-compressed files.
    python-magic>=0.4.13        # File type identification using libmagic
    futures>=3.1.1              # Clean single-source support for Python 3 and 2
    six>=1.10.0                 # Python 2 and 3 compatibility utilities

All Dependencies are automatically installed with pip.

## Install via pip

When `pip` is available, the distribution can be downloaded from the Rucio PyPI server and installed in one step:

    $> pip install rucio-clients

This command will download the latest version of Rucio and install it to your system.

## Upgrade via pip

To upgrade via pip:

    $> pip install --upgrade rucio-clients

## Install via pip and virtualenv

To install the Rucio clients in an isolated `virtualenv` environment:

    $> wget --no-check-certificate https://raw.github.com/pypa/virtualenv/master/virtualenv.py
    $> python virtualenv.py rucio
    $> source rucio/bin/activate.csh
    $> pip install rucio-clients
    $> export RUCIO_HOME=`pwd`/rucio/

## Installing using setup.py

Otherwise, you can install from the distribution using the `setup.py` script:

    $> python setup.py install