-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathinstall.sh
164 lines (146 loc) · 3.25 KB
/
install.sh
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
#!/bin/bash
mkdir external
########DETECT DISTRO
if command -v apt &> /dev/null
then
IS_DEBIAN=true
elif command -v yum &> /dev/null
then
IS_RED_HAT=true
else
echo "Error: neither apt or yum is installed"
exit
fi
########FROM DISTRIBUTION
#Kernel headers
if $IS_DEBIAN
then
sudo apt install -y linux-headers-`uname -r` libaio-dev maven
elif $IS_RED_HAT
then
sudo yum -y install linux-headers-`uname -r`
fi
########FROM SOURCE
LABSTOR_ROOT=`pwd`
#LABSTOR
scspkg create labstor
#Install Jarvis-CD
echo "INSTALLING JARVIS"
cd external
git clone https://github.com/lukemartinlogan/jarvis-cd.git -b vLabstor
cd jarvis-cd
bash dependencies.sh
source ~/.bashrc
python3 -m pip install -e . --user -r requirements.txt
jarvis deps scaffold labstor
jarvis deps local-install all
source ~/.bashrc
cd ${LABSTOR_ROOT}
echo
echo
#Install SCSPKG
echo INSTALLING SCSPKG
cd external
git clone https://github.com/scs-lab/scspkg.git
cd scspkg
git switch v0.1.0
bash install.sh
source ~/.bashrc
cd ${LABSTOR_ROOT}
echo
echo
#Install CMAKE
echo INSTALLING CMAKE
spack install cmake@3.22.1
spack load cmake
scspkg from-spack cmake@3.22.1 cmake-labstor
echo
echo
#Install Yaml-CPP
echo INSTALLING YAML-CPP
scspkg create yaml-cpp
cd `scspkg pkg-src yaml-cpp`
git clone https://github.com/jbeder/yaml-cpp.git
cd yaml-cpp
git checkout db6deedcd301754723065e0bbb1b75927c5b49c7
mkdir build
cd build
cmake ../ -DYAML_BUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=`scspkg pkg-root yaml-cpp`
make -j8
make install
echo
echo
#FIO
echo INSTALLING FIO
scspkg create fio
cd `scspkg pkg-src fio`
wget https://github.com/axboe/fio/archive/refs/tags/fio-3.28.tar.gz
tar -xzf fio-3.28.tar.gz
cd fio-fio-3.28
./configure --prefix=`scspkg pkg-root fio`
make -j8
make install
echo
echo
#SPDK
echo INSTALLING SPDK
scspkg create spdk
cd `scspkg pkg-src spdk`
git clone https://github.com/spdk/spdk
cd spdk
git checkout v21.10
git submodule update --init
sudo scripts/pkgdep.sh --all
./configure --prefix=`scspkg pkg-root spdk`
make -j8
make install
export SPDK_ROOT=`scspkg pkg-src spdk`/spdk
echo
echo
#LIBURING
echo INSTALLING LIBURING
scspkg create liburing
cd `scspkg pkg-src liburing`
git clone https://github.com/axboe/liburing.git
cd liburing
./configure --prefix=`scspkg pkg-root liburing`
make -j8
make install
echo
echo
#FxMark
echo INSTALLING FXMARK
#https://www.usenix.org/system/files/conference/atc16/atc16_paper-min.pdf
scspkg create fxmark
cd `scspkg pkg-src fxmark`
git clone https://github.com/sslab-gatech/fxmark.git
cd fxmark
make
cp -r bin `scspkg pkg-root fxmark`/bin
echo
echo
#Filebench
scspkg create filebench
cd `scspkg pkg-src filebench`
wget https://github.com/filebench/filebench/archive/refs/tags/1.4.9.1.tar.gz
tar -xzf 1.4.9.1.tar.gz
cd filebench-1.4.9.1
libtoolize
aclocal
autoheader
automake --add-missing
autoconf
./configure --prefix=`scspkg pkg-root filebench`
make -j8
make install
#Install MPICH
scspkg create mpich
cd `scspkg pkg-src mpich`
wget http://www.mpich.org/static/downloads/3.2/mpich-3.2.tar.gz --no-check-certificate
tar -xzf mpich-3.2.tar.gz
cd mpich-3.2
./configure --prefix=`scspkg pkg-root mpich` --enable-fast=O3 --enable-romio --enable-shared
make -j8
make install
#Add LabStor package dependencies
scspkg add-deps labstor filebench fxmark liburing spdk fio yaml-cpp cmake-labstor mpich