# Setup Indy SDK build environment for Ubuntu based distro (Ubuntu 16.04)

1. Install Rust and rustup (https://www.rust-lang.org/install.html).
2. Install required native libraries and utilities:
   
   ```
   apt-get update && \
   apt-get install -y \
      build-essential \
      pkg-config \
      cmake \
      libssl-dev \
      libsqlite3-dev \
      libsodium-dev
   ```
3. Checkout and build the library:
   
   ```
   git checkout https://github.com/hyperledger/indy-sdk.git
   cd ./indy-sdk
   cargo build
   ```
4. Run integration tests:
   * Start local nodes pool on `10.0.0.2:9701-9708` with Docker:
     
     ```
     docker network create --subnet 10.0.0.0/8 pool_network
     docker build -f ci/indy-pool.dockerfile -t indy_pool .
     docker run -d --ip="10.0.0.2" --net=pool_network indy_pool
     ```
   * Run tests
     
     ```
     RUST_TEST_THREADS=1 cargo test
     ```

See [ci/ubuntu.dockerfile](https://github.com/hyperledger/indy-sdk/tree/master/ci/ubuntu.dockerfile) for example of Ubuntu based environment creation in Docker.