1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
#!/bin/bash
# install dependencies
# (this script must be run as root)
BASEDIR=$(dirname $0)
source $BASEDIR/defaults.sh
apt-get -y update
apt-get install -y --no-install-recommends \
build-essential \
graphviz \
libboost-filesystem-dev \
libboost-python-dev \
libboost-system-dev \
libboost-thread-dev \
libgflags-dev \
libgoogle-glog-dev \
libhdf5-serial-dev \
libopenblas-dev \
python-virtualenv \
wget
if $WITH_CMAKE ; then
apt-get install -y --no-install-recommends cmake
fi
if ! $WITH_PYTHON3 ; then
# Python2
apt-get install -y --no-install-recommends \
libprotobuf-dev \
protobuf-compiler \
python-dev \
python-numpy \
python-protobuf \
python-pydot \
python-skimage
else
# Python3
apt-get install -y --no-install-recommends \
python3-dev \
python3-numpy \
python3-skimage
# build Protobuf3 since it's needed for Python3
PROTOBUF3_DIR=~/protobuf3
pushd .
if [ -d "$PROTOBUF3_DIR" ] && [ -e "$PROTOBUF3_DIR/src/protoc" ]; then
echo "Using cached protobuf3 build ..."
cd $PROTOBUF3_DIR
else
echo "Building protobuf3 from source ..."
rm -rf $PROTOBUF3_DIR
mkdir $PROTOBUF3_DIR
# install some more dependencies required to build protobuf3
apt-get install -y --no-install-recommends \
curl \
dh-autoreconf \
unzip
wget https://github.com/google/protobuf/archive/3.0.x.tar.gz -O protobuf3.tar.gz
tar -xzf protobuf3.tar.gz -C $PROTOBUF3_DIR --strip 1
rm protobuf3.tar.gz
cd $PROTOBUF3_DIR
./autogen.sh
./configure --prefix=/usr
make --jobs=$NUM_THREADS
fi
make install
popd
fi
if $WITH_IO ; then
apt-get install -y --no-install-recommends \
libleveldb-dev \
liblmdb-dev \
libopencv-dev \
libsnappy-dev
fi
if $WITH_CUDA ; then
# install repo packages
CUDA_REPO_PKG=cuda-repo-ubuntu1404_7.5-18_amd64.deb
wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/$CUDA_REPO_PKG
dpkg -i $CUDA_REPO_PKG
rm $CUDA_REPO_PKG
if $WITH_CUDNN ; then
ML_REPO_PKG=nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb
wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/$ML_REPO_PKG
dpkg -i $ML_REPO_PKG
fi
# update package lists
apt-get -y update
# install packages
CUDA_PKG_VERSION="7-5"
CUDA_VERSION="7.5"
apt-get install -y --no-install-recommends \
cuda-core-$CUDA_PKG_VERSION \
cuda-cudart-dev-$CUDA_PKG_VERSION \
cuda-cublas-dev-$CUDA_PKG_VERSION \
cuda-curand-dev-$CUDA_PKG_VERSION
# manually create CUDA symlink
ln -s /usr/local/cuda-$CUDA_VERSION /usr/local/cuda
if $WITH_CUDNN ; then
apt-get install -y --no-install-recommends libcudnn7-dev
fi
fi
|