Adapt installation script to any machine (#258)

* Adapt script to any machine

Adapt script to any machine, independent of the user. We support for installations in VM Ubuntu

* Clear user-bootstrap.sh

* Update user-bootstrap.sh

* Adapt installation script to any machine
This commit is contained in:
David 2019-06-13 14:32:15 +02:00 committed by Nate Foster
parent 573f716edc
commit b5c82700b8
3 changed files with 30 additions and 35 deletions

View File

@ -53,6 +53,6 @@ You will need the script to execute to completion before you can see the `p4` lo
To install dependencies by hand, please reference the [vm](../vm) installation scripts.
They contain the dependencies, versions, and installation procedure.
You should be able to run them directly on an Ubuntu 16.04 machine, although note that the scripts currently assume the existence of a directory `/home/vagrant`:
You should be able to run them directly on an Ubuntu 16.04 machine:
- `sudo ./root-bootstrap.sh`
- `sudo ./user-bootstrap.sh`

View File

@ -10,7 +10,7 @@ apt-get update
KERNEL=$(uname -r)
DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
apt-get install -y --no-install-recommends \
apt-get install -y --no-install-recommends --fix-missing\
atom \
autoconf \
automake \
@ -73,11 +73,11 @@ chmod 440 /etc/sudoers.d/99_p4
usermod -aG vboxsf p4
cd /usr/share/lubuntu/wallpapers/
cp /home/vagrant/p4-logo.png .
cp ~/p4-logo.png .
rm lubuntu-default-wallpaper.png
ln -s p4-logo.png lubuntu-default-wallpaper.png
rm /home/vagrant/p4-logo.png
cd /home/vagrant
rm ~/p4-logo.png
cd ~
sed -i s@#background=@background=/usr/share/lubuntu/wallpapers/1604-lubuntu-default-wallpaper.png@ /etc/lightdm/lightdm-gtk-greeter.conf
# Disable screensaver

View File

@ -1,25 +1,23 @@
#!/bin/bash
# Print script commands.
set -x
# Exit on errors.
set -e
# Print script commands and exit on errors.
set -xe
#Src
BMV2_COMMIT="884e01b531c6fd078cc2438a40258ecae011a65b" # Apr 24, 2019
PI_COMMIT="19de33e83bae7b737a3f8a1c9507c6e84173d96f" # Apr 24, 2019
P4C_COMMIT="61409c890c58d14ec7d6790f263eb44f393e542a" # Apr 24, 2019
PROTOBUF_COMMIT="v3.2.0"
GRPC_COMMIT="v1.3.2"
#Get the number of cores to speed up the compilation process
NUM_CORES=`grep -c ^processor /proc/cpuinfo`
# Mininet
# --- Mininet --- #
git clone git://github.com/mininet/mininet mininet
cd mininet
sudo ./util/install.sh -nwv
cd ..
sudo ./mininet/util/install.sh -nwv
# Protobuf
# --- Protobuf --- #
git clone https://github.com/google/protobuf.git
cd protobuf
git checkout ${PROTOBUF_COMMIT}
@ -32,12 +30,12 @@ make -j${NUM_CORES}
sudo make install
sudo ldconfig
unset CFLAGS CXXFLAGS LDFLAGS
# force install python module
# Force install python module
cd python
sudo python setup.py install
cd ../..
# gRPC
# --- gRPC --- #
git clone https://github.com/grpc/grpc.git
cd grpc
git checkout ${GRPC_COMMIT}
@ -51,7 +49,7 @@ cd ..
# Install gRPC Python Package
sudo pip install grpcio
# BMv2 deps (needed by PI)
# --- BMv2 deps (needed by PI) --- #
git clone https://github.com/p4lang/behavioral-model.git
cd behavioral-model
git checkout ${BMV2_COMMIT}
@ -67,7 +65,7 @@ cd ..
sudo rm -rf $tmpdir
cd ..
# PI/P4Runtime
# --- PI/P4Runtime --- #
git clone https://github.com/p4lang/PI.git
cd PI
git checkout ${PI_COMMIT}
@ -79,7 +77,7 @@ sudo make install
sudo ldconfig
cd ..
# Bmv2
# --- Bmv2 --- #
cd behavioral-model
./autogen.sh
./configure --enable-debugger --with-pi
@ -93,11 +91,10 @@ cd targets/simple_switch_grpc
make -j${NUM_CORES}
sudo make install
sudo ldconfig
cd ..
cd ..
cd ..
cd ../../..
# P4C
# --- P4C --- #
git clone https://github.com/p4lang/p4c
cd p4c
git checkout ${P4C_COMMIT}
@ -106,19 +103,17 @@ mkdir -p build
cd build
cmake ..
make -j${NUM_CORES}
# make -j${NUM_CORES} check <- skip tests as p4c tests are failing currently
sudo make install
sudo ldconfig
cd ..
cd ..
cd ../..
# Tutorials
# --- Tutorials --- #
sudo pip install crcmod
git clone https://github.com/p4lang/tutorials
sudo mv tutorials /home/p4
sudo chown -R p4:p4 /home/p4/tutorials
# Emacs
# --- Emacs --- #
sudo cp p4_16-mode.el /usr/share/emacs/site-lisp/
sudo mkdir /home/p4/.emacs.d/
echo "(autoload 'p4_16-mode' \"p4_16-mode.el\" \"P4 Syntax.\" t)" > init.el
@ -127,22 +122,22 @@ sudo mv init.el /home/p4/.emacs.d/
sudo ln -s /usr/share/emacs/site-lisp/p4_16-mode.el /home/p4/.emacs.d/p4_16-mode.el
sudo chown -R p4:p4 /home/p4/.emacs.d/
# Vim
cd /home/vagrant
# --- Vim --- #
cd ~
mkdir .vim
cd .vim
mkdir ftdetect
mkdir syntax
echo "au BufRead,BufNewFile *.p4 set filetype=p4" >> ftdetect/p4.vim
echo "set bg=dark" >> /home/vagrant/.vimrc
sudo mv /home/vagrant/.vimrc /home/p4/.vimrc
cp /home/vagrant/p4.vim syntax/p4.vim
cd /home/vagrant
echo "set bg=dark" >> ~/.vimrc
sudo mv ~/.vimrc /home/p4/.vimrc
cp ~/p4.vim syntax/p4.vim
cd ~
sudo mv .vim /home/p4/.vim
sudo chown -R p4:p4 /home/p4/.vim
sudo chown p4:p4 /home/p4/.vimrc
# Adding Desktop icons
# --- Adding Desktop icons --- #
DESKTOP=/home/${USER}/Desktop
mkdir -p ${DESKTOP}