diff --git a/examples/README.md b/examples/README.md index 5463101..4be5564 100644 --- a/examples/README.md +++ b/examples/README.md @@ -77,7 +77,7 @@ This example creates a network and runs multiple tests on it. This example shows how to connect a Mininet network to the Internet using NAT. It also answers the eternal question "why can't I ping -google?" +`google.com`?" #### popen.py: @@ -87,7 +87,7 @@ This example monitors a number of hosts using `host.popen()` and #### popenpoll.py: This example demonstrates monitoring output from multiple hosts using -the `node.popen()` interface (which returns Popen objects) and `pmonitor()`. +the `node.popen()` interface (which returns `Popen` objects) and `pmonitor()`. #### scratchnet.py, scratchnetuser.py: @@ -102,7 +102,7 @@ A simple example of configuring network and CPU bandwidth limits. #### sshd.py: This example shows how to run an `sshd` process in each host, allowing -you to log in via ssh. This requires connecting the Mininet data network +you to log in via `ssh`. This requires connecting the Mininet data network to an interface in the root namespace (generaly the control network already lives in the root namespace, so it does not need to be explicitly connected.) @@ -111,9 +111,9 @@ connected.) This example attempts to create a 1024-host network, and then runs the CLI on it. It may run into scalability limits, depending on available -memory and sysctl configuration (see `INSTALL`.) +memory and `sysctl` configuration (see `INSTALL`.) #### treeping64.py: This example creates a 64-host tree network, and attempts to check full -connectivity using ping, for different switch/datapath types. +connectivity using `ping`, for different switch/datapath types. diff --git a/util/install.sh b/util/install.sh index e39f174..d7921e6 100755 --- a/util/install.sh +++ b/util/install.sh @@ -47,6 +47,19 @@ if [ "$DIST" = "Ubuntu" ] || [ "$DIST" = "Debian" ]; then $install bc fi fi +test -e /etc/fedora-release && DIST="Fedora" +if [ "$DIST" = "Fedora" ]; then + install='sudo yum -y install' + remove='sudo yum -y erase' + pkginst='sudo rpm -ivh' + # Prereqs for this script + if ! which lsb_release &> /dev/null; then + $install redhat-lsb-core + fi + if ! which bc &> /dev/null; then + $install bc + fi +fi if which lsb_release &> /dev/null; then DIST=`lsb_release -is` RELEASE=`lsb_release -rs` @@ -67,8 +80,11 @@ elif [ "$DIST" = "Debian" ] && [ "$ARCH" = "i386" ] && [ "$CODENAME" = "lenny" ] 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" = "Fedora" ]; then + KERNEL_NAME=`uname -r` + KERNEL_HEADERS=kernel-headers-${KERNEL_NAME} else - echo "Install.sh currently only supports Ubuntu and Debian Lenny i386." + echo "Install.sh currently only supports Ubuntu, Debian Lenny i386 and Fedora." exit 1 fi @@ -140,9 +156,15 @@ function kernel_clean { # Install Mininet deps function mn_deps { echo "Installing Mininet dependencies" - $install gcc make socat psmisc xterm ssh iperf iproute telnet \ - python-setuptools cgroup-bin ethtool help2man \ - pyflakes pylint pep8 + if [ "$DIST" = "Fedora" ]; then + $install gcc make socat psmisc xterm openssh-clients iperf \ + iproute telnet python-setuptools libcgroup-tools \ + ethtool help2man pyflakes pylint python-pep8 + else + $install gcc make socat psmisc xterm ssh iperf iproute telnet \ + python-setuptools cgroup-bin ethtool help2man \ + pyflakes pylint pep8 + fi echo "Installing Mininet core" pushd $MININET_DIR/mininet @@ -164,8 +186,12 @@ function mn_dev { function of { echo "Installing OpenFlow reference implementation..." cd $BUILD_DIR/ - $install git-core autoconf automake autotools-dev pkg-config \ - make gcc libtool libc6-dev + $install autoconf automake libtool make gcc + if [ "$DIST" = "Fedora" ]; then + $install git pkgconfig glibc-devel + else + $install git-core autotools-dev pkg-config libc6-dev + fi git clone git://openflowswitch.org/openflow.git cd $BUILD_DIR/openflow @@ -515,7 +541,11 @@ function oftest { function cbench { echo "Installing cbench..." - $install libsnmp-dev libpcap-dev libconfig-dev + if [ "$DIST" = "Fedora" ]; then + $install net-snmp-devel libpcap-devel libconfig-devel + else + $install libsnmp-dev libpcap-dev libconfig-dev + fi cd $BUILD_DIR/ git clone git://openflow.org/oflops.git cd oflops @@ -607,6 +637,14 @@ function modprobe { } function all { + if [ "$DIST" = "Fedora" ]; then + printf "\nFedora 19 support status:\n" + printf "the install script options -b, -f, -n, and -p should work.\n\n" + printf "Just try:\n" + printf " install.sh -fnp\n" + printf "with Fedora's kernel (3.10) and openvswitch (1.10.0) packages.\n" + exit 3 + fi echo "Installing all packages except for -eix (doxypy, ivs, nox-classic)..." kernel mn_deps