|
|
|
@ -11,22 +11,34 @@ function usage()
|
|
|
|
|
echo ""
|
|
|
|
|
echo "$0"
|
|
|
|
|
echo " -h --help"
|
|
|
|
|
echo " -a --all"
|
|
|
|
|
echo " -d --developer-tools Install tools for developers (code styling, code coverage, etc.)"
|
|
|
|
|
echo ""
|
|
|
|
|
exit 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
INSTALL_CRYPTO=false
|
|
|
|
|
function install_all_dependencies ()
|
|
|
|
|
{
|
|
|
|
|
INSTALL_DEV_TOOLS=true
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
while getopts 'hi-:' optchar; do
|
|
|
|
|
INSTALL_CRYPTO=false
|
|
|
|
|
INSTALL_DEV_TOOLS=false
|
|
|
|
|
|
|
|
|
|
while getopts 'adhi-:' optchar; do
|
|
|
|
|
case "$optchar" in
|
|
|
|
|
-)
|
|
|
|
|
case "$OPTARG" in
|
|
|
|
|
help) usage;;
|
|
|
|
|
all) install_all_dependencies;;
|
|
|
|
|
developer-tools) INSTALL_DEV_TOOLS=true;;
|
|
|
|
|
*) echo "Invalid argument '$OPTARG'"
|
|
|
|
|
usage;;
|
|
|
|
|
esac
|
|
|
|
|
;;
|
|
|
|
|
h) usage;;
|
|
|
|
|
a) install_all_dependencies;;
|
|
|
|
|
d) INSTALL_DEV_TOOLS=true;;
|
|
|
|
|
*) echo "Invalid argument '$OPTARG'"
|
|
|
|
|
usage;;
|
|
|
|
|
esac
|
|
|
|
@ -39,21 +51,6 @@ rootdir=$(readlink -f $scriptsdir/..)
|
|
|
|
|
|
|
|
|
|
if [ -s /etc/redhat-release ]; then
|
|
|
|
|
. /etc/os-release
|
|
|
|
|
|
|
|
|
|
# Includes Fedora, CentOS 7, RHEL 7
|
|
|
|
|
# Add EPEL repository for CUnit-devel and libunwind-devel
|
|
|
|
|
if echo "$ID $VERSION_ID" | grep -E -q 'rhel 7|centos 7'; then
|
|
|
|
|
if ! rpm --quiet -q epel-release; then
|
|
|
|
|
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [ $ID = 'rhel' ]; then
|
|
|
|
|
subscription-manager repos --enable "rhel-*-optional-rpms" --enable "rhel-*-extras-rpms"
|
|
|
|
|
elif [ $ID = 'centos' ]; then
|
|
|
|
|
yum --enablerepo=extras install -y epel-release
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Minimal install
|
|
|
|
|
yum install -y gcc gcc-c++ make CUnit-devel libaio-devel openssl-devel \
|
|
|
|
|
libuuid-devel libiscsi-devel python
|
|
|
|
@ -65,11 +62,26 @@ if [ -s /etc/redhat-release ]; then
|
|
|
|
|
yum install -y autoconf automake libtool help2man
|
|
|
|
|
# Additional dependencies for DPDK
|
|
|
|
|
yum install -y numactl-devel nasm
|
|
|
|
|
# Dependencies for developers
|
|
|
|
|
yum install -y git astyle python-pycodestyle lcov \
|
|
|
|
|
sg3_utils pciutils ShellCheck
|
|
|
|
|
# Additional (optional) dependencies for showing backtrace in logs
|
|
|
|
|
yum install -y libunwind-devel || true
|
|
|
|
|
if [[ $INSTALL_DEV_TOOLS == "true" ]]; then
|
|
|
|
|
# Tools for developers
|
|
|
|
|
# Includes Fedora, CentOS 7, RHEL 7
|
|
|
|
|
# Add EPEL repository for CUnit-devel and libunwind-devel
|
|
|
|
|
if echo "$ID $VERSION_ID" | grep -E -q 'rhel 7|centos 7'; then
|
|
|
|
|
if ! rpm --quiet -q epel-release; then
|
|
|
|
|
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [[ $ID = 'rhel' ]]; then
|
|
|
|
|
subscription-manager repos --enable "rhel-*-optional-rpms" --enable "rhel-*-extras-rpms"
|
|
|
|
|
elif [[ $ID = 'centos' ]]; then
|
|
|
|
|
yum --enablerepo=extras install -y epel-release
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
yum install -y git astyle python-pycodestyle lcov \
|
|
|
|
|
sg3_utils pciutils ShellCheck
|
|
|
|
|
# Additional (optional) dependencies for showing backtrace in logs
|
|
|
|
|
yum install -y libunwind-devel || true
|
|
|
|
|
fi
|
|
|
|
|
# Additional dependencies for NVMe over Fabrics
|
|
|
|
|
yum install -y libibverbs-devel librdmacm-devel
|
|
|
|
|
# Additional dependencies for building docs
|
|
|
|
@ -83,27 +95,30 @@ elif [ -f /etc/debian_version ]; then
|
|
|
|
|
# Minimal install
|
|
|
|
|
apt-get install -y gcc g++ make libcunit1-dev libaio-dev libssl-dev \
|
|
|
|
|
uuid-dev libiscsi-dev python
|
|
|
|
|
# Additional dependencies for SPDK CLI - not available on older Ubuntus
|
|
|
|
|
apt-get install -y python3-configshell-fb python3-pexpect || echo \
|
|
|
|
|
"Note: Some SPDK CLI dependencies could not be installed."
|
|
|
|
|
|
|
|
|
|
# Additional dependencies for DPDK
|
|
|
|
|
apt-get install -y libnuma-dev nasm
|
|
|
|
|
# Additional dependencies for ISA-L used in compression
|
|
|
|
|
apt-get install -y autoconf automake libtool help2man
|
|
|
|
|
# Dependencies for developers
|
|
|
|
|
apt-get install -y git astyle pep8 lcov clang sg3-utils pciutils shellcheck
|
|
|
|
|
# Additional python style checker not available on ubuntu 16.04 or earlier.
|
|
|
|
|
apt-get install -y pycodestyle || true
|
|
|
|
|
# Additional (optional) dependencies for showing backtrace in logs
|
|
|
|
|
apt-get install -y libunwind-dev || true
|
|
|
|
|
if [[ $INSTALL_DEV_TOOLS == "true" ]]; then
|
|
|
|
|
# Tools for developers
|
|
|
|
|
apt-get install -y git astyle pep8 lcov clang sg3-utils pciutils shellcheck
|
|
|
|
|
# Additional python style checker not available on ubuntu 16.04 or earlier.
|
|
|
|
|
apt-get install -y pycodestyle || true
|
|
|
|
|
# Additional (optional) dependencies for showing backtrace in logs
|
|
|
|
|
apt-get install -y libunwind-dev || true
|
|
|
|
|
# Additional dependecies for nvmf performance test script
|
|
|
|
|
apt-get install -y python3-paramiko
|
|
|
|
|
fi
|
|
|
|
|
# Additional dependencies for NVMe over Fabrics
|
|
|
|
|
apt-get install -y libibverbs-dev librdmacm-dev
|
|
|
|
|
# Additional dependencies for building docs
|
|
|
|
|
apt-get install -y doxygen mscgen graphviz
|
|
|
|
|
# Additional dependencies for SPDK CLI - not available on older Ubuntus
|
|
|
|
|
apt-get install -y python3-configshell-fb python3-pexpect || echo \
|
|
|
|
|
"Note: Some SPDK CLI dependencies could not be installed."
|
|
|
|
|
# Additional dependencies for FUSE and CUSE
|
|
|
|
|
apt-get install -y libfuse3-dev
|
|
|
|
|
# Additional dependecies for nvmf performance test script
|
|
|
|
|
apt-get install -y python3-paramiko
|
|
|
|
|
elif [ -f /etc/SuSE-release ] || [ -f /etc/SUSE-brand ]; then
|
|
|
|
|
# Minimal install
|
|
|
|
|
zypper install -y gcc gcc-c++ make cunit-devel libaio-devel libopenssl-devel \
|
|
|
|
@ -112,11 +127,13 @@ elif [ -f /etc/SuSE-release ] || [ -f /etc/SUSE-brand ]; then
|
|
|
|
|
zypper install -y libnuma-devel nasm
|
|
|
|
|
# Additional dependencies for ISA-L used in compression
|
|
|
|
|
zypper install -y autoconf automake libtool help2man
|
|
|
|
|
# Dependencies for developers
|
|
|
|
|
zypper install -y git-core lcov python-pycodestyle sg3_utils \
|
|
|
|
|
pciutils ShellCheck
|
|
|
|
|
# Additional (optional) dependencies for showing backtrace in logs
|
|
|
|
|
zypper install libunwind-devel || true
|
|
|
|
|
if [[ $INSTALL_DEV_TOOLS == "true" ]]; then
|
|
|
|
|
# Tools for developers
|
|
|
|
|
zypper install -y git-core lcov python-pycodestyle sg3_utils \
|
|
|
|
|
pciutils ShellCheck
|
|
|
|
|
# Additional (optional) dependencies for showing backtrace in logs
|
|
|
|
|
zypper install libunwind-devel || true
|
|
|
|
|
fi
|
|
|
|
|
# Additional dependencies for NVMe over Fabrics
|
|
|
|
|
zypper install -y rdma-core-devel
|
|
|
|
|
# Additional dependencies for building pmem based backends
|
|
|
|
@ -130,50 +147,53 @@ elif [ $(uname -s) = "FreeBSD" ] ; then
|
|
|
|
|
pkg install -y gmake cunit openssl git bash misc/e2fsprogs-libuuid python
|
|
|
|
|
# Additional dependencies for ISA-L used in compression
|
|
|
|
|
pkg install -y autoconf automake libtool help2man
|
|
|
|
|
# Dependencies for developers
|
|
|
|
|
pkg install -y devel/astyle bash py27-pycodestyle \
|
|
|
|
|
misc/e2fsprogs-libuuid sysutils/sg3_utils nasm
|
|
|
|
|
if [[ $INSTALL_DEV_TOOLS == "true" ]]; then
|
|
|
|
|
# Tools for developers
|
|
|
|
|
pkg install -y devel/astyle bash py27-pycodestyle \
|
|
|
|
|
misc/e2fsprogs-libuuid sysutils/sg3_utils nasm
|
|
|
|
|
fi
|
|
|
|
|
# Additional dependencies for building docs
|
|
|
|
|
pkg install -y doxygen mscgen graphviz
|
|
|
|
|
elif [ -f /etc/arch-release ]; then
|
|
|
|
|
# Install main dependencies
|
|
|
|
|
pacman -Sy --needed --noconfirm gcc make cunit libaio openssl \
|
|
|
|
|
libutil-linux libiscsi python
|
|
|
|
|
# Additional dependencies for SPDK CLI
|
|
|
|
|
pacman -Sy --needed --noconfirm python-pexpect python-pip
|
|
|
|
|
pip install configshell_fb
|
|
|
|
|
# Additional dependencies for DPDK
|
|
|
|
|
pacman -Sy --needed --noconfirm numactl nasm
|
|
|
|
|
# Additional dependencies for ISA-L used in compression
|
|
|
|
|
pacman -Sy --needed --noconfirm autoconf automake libtool help2man
|
|
|
|
|
|
|
|
|
|
# Dependencies for developers
|
|
|
|
|
pacman -Sy --needed --noconfirm git astyle autopep8 \
|
|
|
|
|
clang sg3_utils pciutils shellcheck
|
|
|
|
|
# Additional (optional) dependencies for showing backtrace in logs
|
|
|
|
|
pacman -Sy --needed --noconfirm libunwind
|
|
|
|
|
if [[ $INSTALL_DEV_TOOLS == "true" ]]; then
|
|
|
|
|
# Tools for developers
|
|
|
|
|
pacman -Sy --needed --noconfirm git astyle autopep8 \
|
|
|
|
|
clang sg3_utils pciutils shellcheck
|
|
|
|
|
# Additional (optional) dependencies for showing backtrace in logs
|
|
|
|
|
pacman -Sy --needed --noconfirm libunwind
|
|
|
|
|
#fakeroot needed to instal via makepkg
|
|
|
|
|
pacman -Sy --needed --noconfirm fakeroot
|
|
|
|
|
su - $SUDO_USER -c "pushd /tmp;
|
|
|
|
|
git clone https://aur.archlinux.org/perl-perlio-gzip.git;
|
|
|
|
|
cd perl-perlio-gzip;
|
|
|
|
|
yes y | makepkg -si --needed;
|
|
|
|
|
cd ..; rm -rf perl-perlio-gzip
|
|
|
|
|
popd"
|
|
|
|
|
# sed is to modify sources section in PKGBUILD
|
|
|
|
|
# By default it uses git:// which will fail behind proxy, so
|
|
|
|
|
# redirect it to http:// source instead
|
|
|
|
|
su - $SUDO_USER -c "pushd /tmp;
|
|
|
|
|
git clone https://aur.archlinux.org/lcov-git.git;
|
|
|
|
|
cd lcov-git;
|
|
|
|
|
sed -i 's/git:/git+http:/' PKGBUILD;
|
|
|
|
|
makepkg -si --needed --noconfirm;
|
|
|
|
|
cd .. && rm -rf lcov-git;
|
|
|
|
|
popd"
|
|
|
|
|
fi
|
|
|
|
|
# Additional dependencies for building docs
|
|
|
|
|
pacman -Sy --needed --noconfirm doxygen graphviz
|
|
|
|
|
# Additional dependencies for SPDK CLI
|
|
|
|
|
pacman -Sy --needed --noconfirm python-pexpect python-pip
|
|
|
|
|
pip install configshell_fb
|
|
|
|
|
# Additional dependencies for FUSE and CUSE
|
|
|
|
|
pacman -Sy --needed --noconfirm fuse3
|
|
|
|
|
#fakeroot needed to instal via makepkg
|
|
|
|
|
pacman -Sy --needed --noconfirm fakeroot
|
|
|
|
|
su - $SUDO_USER -c "pushd /tmp;
|
|
|
|
|
git clone https://aur.archlinux.org/perl-perlio-gzip.git;
|
|
|
|
|
cd perl-perlio-gzip;
|
|
|
|
|
yes y | makepkg -si --needed;
|
|
|
|
|
cd ..; rm -rf perl-perlio-gzip
|
|
|
|
|
popd"
|
|
|
|
|
# sed is to modify sources section in PKGBUILD
|
|
|
|
|
# By default it uses git:// which will fail behind proxy, so
|
|
|
|
|
# redirect it to http:// source instead
|
|
|
|
|
su - $SUDO_USER -c "pushd /tmp;
|
|
|
|
|
git clone https://aur.archlinux.org/lcov-git.git;
|
|
|
|
|
cd lcov-git;
|
|
|
|
|
sed -i 's/git:/git+http:/' PKGBUILD;
|
|
|
|
|
makepkg -si --needed --noconfirm;
|
|
|
|
|
cd .. && rm -rf lcov-git;
|
|
|
|
|
popd"
|
|
|
|
|
# Additional dependency for building docs
|
|
|
|
|
pacman -S --noconfirm --needed gd ttf-font
|
|
|
|
|
su - $SUDO_USER -c "pushd /tmp;
|
|
|
|
|