Add $install + various cleanup.
This commit is contained in:
+58
-48
@@ -17,34 +17,37 @@ KERNEL_LOC=http://www.openflow.org/downloads/mininet
|
|||||||
DIST=Unknown
|
DIST=Unknown
|
||||||
RELEASE=Unknown
|
RELEASE=Unknown
|
||||||
CODENAME=Unknown
|
CODENAME=Unknown
|
||||||
|
ARCH=`uname -m`
|
||||||
|
|
||||||
test -e /etc/debian_version && DIST="Debian"
|
test -e /etc/debian_version && DIST="Debian"
|
||||||
grep Ubuntu /etc/lsb-release &> /dev/null && DIST="Ubuntu"
|
grep Ubuntu /etc/lsb-release &> /dev/null && DIST="Ubuntu"
|
||||||
if [ "$DIST" = "Ubuntu" ] || [ "$DIST" = "Debian" ]; then
|
if [ "$DIST" = "Ubuntu" ] || [ "$DIST" = "Debian" ]; then
|
||||||
sudo apt-get install -y lsb-release
|
install='sudo apt-get -y install'
|
||||||
|
remove='sudo apt-get -y remove'
|
||||||
|
$install -y lsb-release
|
||||||
fi
|
fi
|
||||||
if which lsb_release &> /dev/null; then
|
if which lsb_release &> /dev/null; then
|
||||||
DIST=`lsb_release -is`
|
DIST=`lsb_release -is`
|
||||||
RELEASE=`lsb_release -rs`
|
RELEASE=`lsb_release -rs`
|
||||||
CODENAME=`lsb_release -cs`
|
CODENAME=`lsb_release -cs`
|
||||||
fi
|
fi
|
||||||
echo "Detected Linux distribution: $DIST $RELEASE $CODENAME"
|
echo "Detected Linux distribution: $DIST $RELEASE $CODENAME $ARCH"
|
||||||
|
|
||||||
# Kernel params
|
# Kernel params
|
||||||
|
|
||||||
if [ "$DIST" = "Debian" ]; then
|
if [ "$DIST" = "Ubuntu" ]; then
|
||||||
KERNEL_NAME=2.6.33.1-mininet
|
|
||||||
KERNEL_HEADERS=linux-headers-${KERNEL_NAME}_${KERNEL_NAME}-10.00.Custom_i386.deb
|
|
||||||
KERNEL_IMAGE=linux-image-${KERNEL_NAME}_${KERNEL_NAME}-10.00.Custom_i386.deb
|
|
||||||
elif [ "$DIST" = "Ubuntu" ]; then
|
|
||||||
if [ "$RELEASE" = "10.04" ]; then
|
if [ "$RELEASE" = "10.04" ]; then
|
||||||
KERNEL_NAME='3.0.0-15-generic'
|
KERNEL_NAME='3.0.0-15-generic'
|
||||||
else
|
else
|
||||||
KERNEL_NAME=`uname -r`
|
KERNEL_NAME=`uname -r`
|
||||||
fi
|
fi
|
||||||
KERNEL_HEADERS=linux-headers-${KERNEL_NAME}
|
KERNEL_HEADERS=linux-headers-${KERNEL_NAME}
|
||||||
|
elif [ "$DIST" = "Debian" ] && [ "$ARCH" = "i386" ] && [ "$CODENAME" = "lenny" ]; then
|
||||||
|
KERNEL_NAME=2.6.33.1-mininet
|
||||||
|
KERNEL_HEADERS=linux-headers-${KERNEL_NAME}_${KERNEL_NAME}-10.00.Custom_i386.deb
|
||||||
|
KERNEL_IMAGE=linux-image-${KERNEL_NAME}_${KERNEL_NAME}-10.00.Custom_i386.deb
|
||||||
else
|
else
|
||||||
echo "Install.sh currently only supports Ubuntu and Debian."
|
echo "Install.sh currently only supports Ubuntu and Debian Lenny i386."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -61,7 +64,10 @@ OVS_KMODS=($OVS_BUILD/datapath/linux/{openvswitch_mod.ko,brcompat_mod.ko})
|
|||||||
function kernel {
|
function kernel {
|
||||||
echo "Install Mininet-compatible kernel if necessary"
|
echo "Install Mininet-compatible kernel if necessary"
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
if [ "$DIST" = "Debian" ]; then
|
if [ "$DIST" = "Ubuntu" ] && [ "$RELEASE" = "10.04" ]; then
|
||||||
|
$install linux-image-$KERNEL_NAME
|
||||||
|
fi
|
||||||
|
elif [ "$DIST" = "Debian" ]; then
|
||||||
# The easy approach: download pre-built linux-image and linux-headers packages:
|
# The easy approach: download pre-built linux-image and linux-headers packages:
|
||||||
wget -c $KERNEL_LOC/$KERNEL_HEADERS
|
wget -c $KERNEL_LOC/$KERNEL_HEADERS
|
||||||
wget -c $KERNEL_LOC/$KERNEL_IMAGE
|
wget -c $KERNEL_LOC/$KERNEL_IMAGE
|
||||||
@@ -84,16 +90,13 @@ function kernel {
|
|||||||
# /boot/grub/menu.lst to set the default to the entry corresponding to the
|
# /boot/grub/menu.lst to set the default to the entry corresponding to the
|
||||||
# kernel you just installed.
|
# kernel you just installed.
|
||||||
fi
|
fi
|
||||||
if [ "$DIST" = "Ubuntu" ] && [ "$RELEASE" = "10.04" ]; then
|
|
||||||
sudo apt-get -y install linux-image-$KERNEL_NAME
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function kernel_clean {
|
function kernel_clean {
|
||||||
echo "Cleaning kernel..."
|
echo "Cleaning kernel..."
|
||||||
|
|
||||||
# To save disk space, remove previous kernel
|
# To save disk space, remove previous kernel
|
||||||
sudo apt-get -y remove $KERNEL_IMAGE_OLD
|
$remove $KERNEL_IMAGE_OLD
|
||||||
|
|
||||||
# Also remove downloaded packages:
|
# Also remove downloaded packages:
|
||||||
rm -f ~/linux-headers-* ~/linux-image-*
|
rm -f ~/linux-headers-* ~/linux-image-*
|
||||||
@@ -102,7 +105,7 @@ function kernel_clean {
|
|||||||
# Install Mininet deps
|
# Install Mininet deps
|
||||||
function mn_deps {
|
function mn_deps {
|
||||||
echo "Installing Mininet dependencies"
|
echo "Installing Mininet dependencies"
|
||||||
sudo aptitude install -y gcc make screen psmisc xterm ssh iperf iproute \
|
$install gcc make screen psmisc xterm ssh iperf iproute \
|
||||||
python-setuptools python-networkx
|
python-setuptools python-networkx
|
||||||
|
|
||||||
if [ "$DIST" = "Ubuntu" ] && [ "$RELEASE" = "10.04" ]; then
|
if [ "$DIST" = "Ubuntu" ] && [ "$RELEASE" = "10.04" ]; then
|
||||||
@@ -130,11 +133,10 @@ function mn_deps {
|
|||||||
# http://www.openflowswitch.org/wk/index.php/Debian_Install
|
# http://www.openflowswitch.org/wk/index.php/Debian_Install
|
||||||
# ... modified to use Debian Lenny rather than unstable.
|
# ... modified to use Debian Lenny rather than unstable.
|
||||||
function of {
|
function of {
|
||||||
echo "Installing OpenFlow and its tools..."
|
echo "Installing OpenFlow and OpenFlow WireShark dissector..."
|
||||||
|
|
||||||
cd ~/
|
cd ~/
|
||||||
sudo apt-get install -y git-core automake m4 pkg-config libtool \
|
$install git-core autoconf automake autotools-dev pkg-config \
|
||||||
make libc6-dev autoconf autotools-dev gcc
|
make gcc libtool libc6-dev
|
||||||
git clone git://openflowswitch.org/openflow.git
|
git clone git://openflowswitch.org/openflow.git
|
||||||
cd ~/openflow
|
cd ~/openflow
|
||||||
|
|
||||||
@@ -148,7 +150,7 @@ function of {
|
|||||||
sudo make install
|
sudo make install
|
||||||
|
|
||||||
# Install dissector:
|
# Install dissector:
|
||||||
sudo apt-get install -y wireshark libgtk2.0-dev
|
$install wireshark libgtk2.0-dev
|
||||||
cd ~/openflow/utilities/wireshark_dissectors/openflow
|
cd ~/openflow/utilities/wireshark_dissectors/openflow
|
||||||
make
|
make
|
||||||
sudo make install
|
sudo make install
|
||||||
@@ -167,7 +169,7 @@ function of {
|
|||||||
|
|
||||||
# Remove avahi-daemon, which may cause unwanted discovery packets to be
|
# Remove avahi-daemon, which may cause unwanted discovery packets to be
|
||||||
# sent during tests, near link status changes:
|
# sent during tests, near link status changes:
|
||||||
sudo apt-get remove -y avahi-daemon
|
$remove avahi-daemon
|
||||||
|
|
||||||
# Disable IPv6. Add to /etc/modprobe.d/blacklist:
|
# Disable IPv6. Add to /etc/modprobe.d/blacklist:
|
||||||
if [ "$DIST" = "Ubuntu" ]; then
|
if [ "$DIST" = "Ubuntu" ]; then
|
||||||
@@ -183,23 +185,33 @@ function of {
|
|||||||
function ovs {
|
function ovs {
|
||||||
echo "Installing Open vSwitch..."
|
echo "Installing Open vSwitch..."
|
||||||
|
|
||||||
if [ "$DIST" = "Debian" ] && [ "$CODENAME" == "lenny" ]; then
|
if [ "$DIST" = "Ubuntu" ]; then
|
||||||
sudo aptitude -y install pkg-config gcc make git-core python-dev libssl-dev
|
if [ `echo "$RELEASE >= 11.10" | bc` = 1 ]; then
|
||||||
# Install Autoconf 2.63+ backport from Debian Backports repo:
|
# Use upstream OVS packages
|
||||||
# Instructions from http://backports.org/dokuwiki/doku.php?id=instructions
|
$install openvswitch-switch openvswitch-controller
|
||||||
sudo su -c "echo 'deb http://www.backports.org/debian lenny-backports main contrib non-free' >> /etc/apt/sources.list"
|
return
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get -y --force-yes install debian-backports-keyring
|
|
||||||
sudo apt-get -y --force-yes -t lenny-backports install autoconf
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$DIST" = "Ubuntu" ]; then
|
$install $KERNEL_HEADERS
|
||||||
sudo apt-get -y install $KERNEL_HEADERS
|
$install pkg-config gcc make python-dev libssl-dev libtool
|
||||||
fi
|
|
||||||
|
if [ "$DIST" = "Debian" ]; then
|
||||||
|
if [ "$CODENAME" = "lenny" ]; then
|
||||||
|
$install git-core
|
||||||
|
# Install Autoconf 2.63+ backport from Debian Backports repo:
|
||||||
|
# Instructions from http://backports.org/dokuwiki/doku.php?id=instructions
|
||||||
|
sudo su -c "echo 'deb http://www.backports.org/debian lenny-backports main contrib non-free' >> /etc/apt/sources.list"
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get -y --force-yes install debian-backports-keyring
|
||||||
|
sudo apt-get -y --force-yes -t lenny-backports install autoconf
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
$install git
|
||||||
|
fi
|
||||||
|
|
||||||
# Install OVS from release
|
# Install OVS from release
|
||||||
cd ~/
|
cd ~/
|
||||||
git clone git://openvswitch.org/openvswitch
|
git clone git://openvswitch.org/openvswitch $OVS_SRC
|
||||||
cd $OVS_SRC
|
cd $OVS_SRC
|
||||||
git checkout $OVS_RELEASE
|
git checkout $OVS_RELEASE
|
||||||
./boot.sh
|
./boot.sh
|
||||||
@@ -208,14 +220,12 @@ function ovs {
|
|||||||
echo "Creating build sdirectory $BUILDDIR"
|
echo "Creating build sdirectory $BUILDDIR"
|
||||||
sudo mkdir -p $BUILDDIR
|
sudo mkdir -p $BUILDDIR
|
||||||
fi
|
fi
|
||||||
opts="--with-linux=$BUILDDIR"
|
opts="--with-linux=$BUILDDIR"
|
||||||
mkdir -p $OVS_BUILD
|
mkdir -p $OVS_BUILD
|
||||||
cd $OVS_BUILD
|
cd $OVS_BUILD
|
||||||
../configure $opts
|
../configure $opts
|
||||||
make
|
make
|
||||||
sudo make install
|
sudo make install
|
||||||
# openflowd is deprecated, but for now copy it in
|
|
||||||
sudo cp tests/test-openflowd /usr/local/bin/ovs-openflowd
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Install NOX with tutorial files
|
# Install NOX with tutorial files
|
||||||
@@ -223,17 +233,17 @@ function nox {
|
|||||||
echo "Installing NOX w/tutorial files..."
|
echo "Installing NOX w/tutorial files..."
|
||||||
|
|
||||||
# Install NOX deps:
|
# Install NOX deps:
|
||||||
sudo apt-get -y install autoconf automake g++ libtool python python-twisted \
|
$install autoconf automake g++ libtool python python-twisted \
|
||||||
swig libssl-dev make
|
swig libssl-dev make
|
||||||
if [ "$DIST" = "Debian" ]; then
|
if [ "$DIST" = "Debian" ]; then
|
||||||
sudo apt-get -y install libboost1.35-dev
|
$install libboost1.35-dev
|
||||||
elif [ "$DIST" = "Ubuntu" ]; then
|
elif [ "$DIST" = "Ubuntu" ]; then
|
||||||
sudo apt-get -y install python-dev libboost-dev
|
$install python-dev libboost-dev
|
||||||
sudo apt-get -y install libboost-filesystem-dev
|
$install libboost-filesystem-dev
|
||||||
sudo apt-get -y install libboost-test-dev
|
$install libboost-test-dev
|
||||||
fi
|
fi
|
||||||
# Install NOX optional deps:
|
# Install NOX optional deps:
|
||||||
sudo apt-get install -y libsqlite3-dev python-simplejson
|
$install libsqlite3-dev python-simplejson
|
||||||
|
|
||||||
# Fetch NOX destiny
|
# Fetch NOX destiny
|
||||||
cd ~/
|
cd ~/
|
||||||
@@ -266,7 +276,7 @@ function oftest {
|
|||||||
echo "Installing oftest..."
|
echo "Installing oftest..."
|
||||||
|
|
||||||
# Install deps:
|
# Install deps:
|
||||||
sudo apt-get install -y tcpdump python-scapy
|
$install tcpdump python-scapy
|
||||||
|
|
||||||
# Install oftest:
|
# Install oftest:
|
||||||
cd ~/
|
cd ~/
|
||||||
@@ -280,7 +290,7 @@ function oftest {
|
|||||||
function cbench {
|
function cbench {
|
||||||
echo "Installing cbench..."
|
echo "Installing cbench..."
|
||||||
|
|
||||||
sudo apt-get install -y libsnmp-dev libpcap-dev
|
$install libsnmp-dev libpcap-dev
|
||||||
cd ~/
|
cd ~/
|
||||||
git clone git://openflow.org/oflops.git
|
git clone git://openflow.org/oflops.git
|
||||||
cd oflops
|
cd oflops
|
||||||
@@ -299,13 +309,13 @@ function other {
|
|||||||
|
|
||||||
# Install tcpdump and tshark, cmd-line packet dump tools. Also install gitk,
|
# Install tcpdump and tshark, cmd-line packet dump tools. Also install gitk,
|
||||||
# a graphical git history viewer.
|
# a graphical git history viewer.
|
||||||
sudo apt-get install -y tcpdump tshark gitk
|
$install tcpdump tshark gitk
|
||||||
|
|
||||||
# Install common text editors
|
# Install common text editors
|
||||||
sudo apt-get install -y vim nano emacs
|
$install vim nano emacs
|
||||||
|
|
||||||
# Install NTP
|
# Install NTP
|
||||||
sudo apt-get install -y ntp
|
$install ntp
|
||||||
|
|
||||||
# Set git to colorize everything.
|
# Set git to colorize everything.
|
||||||
git config --global color.diff auto
|
git config --global color.diff auto
|
||||||
|
|||||||
Reference in New Issue
Block a user