core-extra/install.sh

122 lines
2.7 KiB
Bash
Raw Normal View History

#!/bin/bash
# exit on error
set -e
ubuntu_py=3.6
centos_py=36
2019-12-21 07:45:05 +00:00
function install_python_depencencies() {
sudo python3 -m pip install -r daemon/requirements.txt
}
2019-12-21 07:45:05 +00:00
function install_ospf_mdr() {
rm -rf /tmp/ospf-mdr
git clone https://github.com/USNavalResearchLaboratory/ospf-mdr /tmp/ospf-mdr
cd /tmp/ospf-mdr
./bootstrap.sh
./configure --disable-doc --enable-user=root --enable-group=root --with-cflags=-ggdb \
--sysconfdir=/usr/local/etc/quagga --enable-vtysh \
--localstatedir=/var/run/quagga
make -j8
sudo make install
cd -
}
function build_core() {
./bootstrap.sh
./configure $1
make -j8
2019-12-21 07:45:05 +00:00
}
2019-12-21 07:45:05 +00:00
function install_core() {
sudo make install
}
function install_dev_core() {
cd gui
sudo make install
cd -
cd netns
sudo make install
cd -
cd daemon
2019-12-21 07:45:05 +00:00
}
# detect os/ver for install type
os=""
if [[ -f /etc/os-release ]]; then
. /etc/os-release
os=${ID}
fi
2019-12-21 07:45:05 +00:00
# parse arguments
while getopts "dv:" opt; do
case ${opt} in
d)
dev=1
;;
v)
ubuntu_py=${OPTARG}
centos_py=${OPTARG}
;;
\?)
echo "script usage: $(basename $0) [-d] [-v python version]" >&2
exit 1
;;
esac
done
shift $((OPTIND - 1))
2019-12-21 07:45:05 +00:00
# check install was found
case ${os} in
"ubuntu")
echo "Installing CORE for Ubuntu"
2020-03-05 19:44:13 +00:00
echo "installing core system dependencies"
sudo apt install -y automake pkg-config gcc libev-dev ebtables iproute2 \
python${ubuntu_py} python${ubuntu_py}-dev python3-pip python3-tk tk libtk-img ethtool autoconf
2020-03-05 19:44:13 +00:00
python3 -m pip install grpcio-tools
echo "installing ospf-mdr system dependencies"
sudo apt install -y libtool gawk libreadline-dev
install_ospf_mdr
if [[ -z ${dev} ]]; then
echo "normal install"
2019-12-21 07:45:05 +00:00
install_python_depencencies
build_core
2019-12-21 07:45:05 +00:00
install_core
else
echo "dev install"
2020-03-05 19:44:13 +00:00
python3 -m pip install pipenv
build_core
install_dev_core
python3 -m pipenv sync --dev
fi
;;
"centos")
2020-03-05 19:44:13 +00:00
echo "Installing CORE for CentOS"
echo "installing core system dependencies"
sudo yum install -y automake pkgconf-pkg-config gcc gcc-c++ libev-devel iptables-ebtables iproute \
python${centos_py} python${centos_py}-devel python3-pip python3-tkinter tk ethtool autoconf
sudo python3 -m pip install grpcio-tools
2020-03-05 19:44:13 +00:00
echo "installing ospf-mdr system dependencies"
sudo yum install -y libtool gawk readline-devel
install_ospf_mdr
if [[ -z ${dev} ]]; then
2020-03-05 19:44:13 +00:00
echo "normal install"
2019-12-21 07:45:05 +00:00
install_python_depencencies
build_core --prefix=/usr
install_core
else
2020-03-05 19:44:13 +00:00
echo "dev install"
sudo python3 -m pip install pipenv
build_core --prefix=/usr
install_dev_core
sudo python3 -m pipenv sync --dev
python3 -m pipenv sync --dev
fi
;;
2019-12-21 07:45:05 +00:00
*)
echo "unknown OS ID ${os} cannot install"
;;
2019-12-21 07:45:05 +00:00
esac