These instructions have been tested on:
- Amazon Linux 2017.03
- Fedora 27
Please follow the instructions appropriate for your distribution.
Installation via rustup
is recommended. Follow
these instructions.
For Amazon Linux 2017.03/CentOS/RHEL:
yum clean all
yum upgrade -y
yum groupinstall -y "Development Tools"
yum install -y \
wget \
cmake \
pkgconfig \
openssl-devel \
sqlite-devel
For Fedora 26/27/28:
dnf clean all
dnf upgrade -y
dnf groupinstall -y "Development Tools"
dnf install -y \
wget \
cmake \
pkgconfig \
openssl-devel \
sqlite-devel
For Amazon Linux 2017.03 or other distributions without libsodium
available in system repositories:
cd /tmp
curl https://download.libsodium.org/libsodium/releases/old/libsodium-1.0.14.tar.gz | tar -xz
cd /tmp/libsodium-1.0.14
./configure
make
make install
rm -rf /tmp/libsodium-1.0.14
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
For Fedora 26/27/28, libsodium-1.0.14
is already available as a system package:
dnf install libsodium libsodium-devel
For Fedora 26/27/28, you may also need to install zeromq
(libzmq
) before being able to successfully
build libindy
:
dnf install zeromq zeromq-devel
If you discover that there are other dependencies not mentioned here, please open an issue.
git checkout https://github.com/hyperledger/indy-sdk.git
cd ./indy-sdk/libindy
cargo build
indy-cli
is dependent on libindy
and must be built before indy-cli
.
After building libindy
, run the following commands from the indy-sdk
directory:
cd indy-cli
RUSTFLAGS="-L ../libindy/target/{BUILD_TYPE}" cargo build
In the above command, substitute {BUILD_TYPE}
with release
or debug
as appropriate.
If you have installed libindy.so
to a system-wide location and subsequently run ldconfig
, you do not need
to specify the RUSTFLAGS
environment variable as rustc
should be able to find libindy.so
without additional
help.
If not, however, indy-cli
needs help to be able to find libindy.so
while being built. Setting LD_LIBRARY_PATH
is only referenced at runtime and not at build time and is not helpful in this case. Specifying RUSTFLAGS
in the
command above will tell rustc
to also check ../libindy/target/{BUILD_TYPE}
for libraries.
Start local nodes pool with Docker
This may be useful if you want to launch integration tests inside another container attached to the same docker network.
RUST_TEST_THREADS=1 cargo test
It is possible to change ip of test pool by providing of TEST_POOL_IP environment variable:
RUST_TEST_THREADS=1 TEST_POOL_IP=10.0.0.2 cargo test
See ci/amazon.dockerfile for example of Amazon Linux based environment creation in Docker.