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:
parent
573f716edc
commit
b5c82700b8
@ -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.
|
To install dependencies by hand, please reference the [vm](../vm) installation scripts.
|
||||||
They contain the dependencies, versions, and installation procedure.
|
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 ./root-bootstrap.sh`
|
||||||
- `sudo ./user-bootstrap.sh`
|
- `sudo ./user-bootstrap.sh`
|
||||||
|
@ -10,7 +10,7 @@ apt-get update
|
|||||||
|
|
||||||
KERNEL=$(uname -r)
|
KERNEL=$(uname -r)
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
|
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 \
|
atom \
|
||||||
autoconf \
|
autoconf \
|
||||||
automake \
|
automake \
|
||||||
@ -73,11 +73,11 @@ chmod 440 /etc/sudoers.d/99_p4
|
|||||||
usermod -aG vboxsf p4
|
usermod -aG vboxsf p4
|
||||||
|
|
||||||
cd /usr/share/lubuntu/wallpapers/
|
cd /usr/share/lubuntu/wallpapers/
|
||||||
cp /home/vagrant/p4-logo.png .
|
cp ~/p4-logo.png .
|
||||||
rm lubuntu-default-wallpaper.png
|
rm lubuntu-default-wallpaper.png
|
||||||
ln -s p4-logo.png lubuntu-default-wallpaper.png
|
ln -s p4-logo.png lubuntu-default-wallpaper.png
|
||||||
rm /home/vagrant/p4-logo.png
|
rm ~/p4-logo.png
|
||||||
cd /home/vagrant
|
cd ~
|
||||||
sed -i s@#background=@background=/usr/share/lubuntu/wallpapers/1604-lubuntu-default-wallpaper.png@ /etc/lightdm/lightdm-gtk-greeter.conf
|
sed -i s@#background=@background=/usr/share/lubuntu/wallpapers/1604-lubuntu-default-wallpaper.png@ /etc/lightdm/lightdm-gtk-greeter.conf
|
||||||
|
|
||||||
# Disable screensaver
|
# Disable screensaver
|
||||||
|
@ -1,25 +1,23 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Print script commands.
|
# Print script commands and exit on errors.
|
||||||
set -x
|
set -xe
|
||||||
# Exit on errors.
|
|
||||||
set -e
|
|
||||||
|
|
||||||
|
#Src
|
||||||
BMV2_COMMIT="884e01b531c6fd078cc2438a40258ecae011a65b" # Apr 24, 2019
|
BMV2_COMMIT="884e01b531c6fd078cc2438a40258ecae011a65b" # Apr 24, 2019
|
||||||
PI_COMMIT="19de33e83bae7b737a3f8a1c9507c6e84173d96f" # Apr 24, 2019
|
PI_COMMIT="19de33e83bae7b737a3f8a1c9507c6e84173d96f" # Apr 24, 2019
|
||||||
P4C_COMMIT="61409c890c58d14ec7d6790f263eb44f393e542a" # Apr 24, 2019
|
P4C_COMMIT="61409c890c58d14ec7d6790f263eb44f393e542a" # Apr 24, 2019
|
||||||
PROTOBUF_COMMIT="v3.2.0"
|
PROTOBUF_COMMIT="v3.2.0"
|
||||||
GRPC_COMMIT="v1.3.2"
|
GRPC_COMMIT="v1.3.2"
|
||||||
|
|
||||||
|
#Get the number of cores to speed up the compilation process
|
||||||
NUM_CORES=`grep -c ^processor /proc/cpuinfo`
|
NUM_CORES=`grep -c ^processor /proc/cpuinfo`
|
||||||
|
|
||||||
# Mininet
|
# --- Mininet --- #
|
||||||
git clone git://github.com/mininet/mininet mininet
|
git clone git://github.com/mininet/mininet mininet
|
||||||
cd mininet
|
sudo ./mininet/util/install.sh -nwv
|
||||||
sudo ./util/install.sh -nwv
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
# Protobuf
|
# --- Protobuf --- #
|
||||||
git clone https://github.com/google/protobuf.git
|
git clone https://github.com/google/protobuf.git
|
||||||
cd protobuf
|
cd protobuf
|
||||||
git checkout ${PROTOBUF_COMMIT}
|
git checkout ${PROTOBUF_COMMIT}
|
||||||
@ -32,12 +30,12 @@ make -j${NUM_CORES}
|
|||||||
sudo make install
|
sudo make install
|
||||||
sudo ldconfig
|
sudo ldconfig
|
||||||
unset CFLAGS CXXFLAGS LDFLAGS
|
unset CFLAGS CXXFLAGS LDFLAGS
|
||||||
# force install python module
|
# Force install python module
|
||||||
cd python
|
cd python
|
||||||
sudo python setup.py install
|
sudo python setup.py install
|
||||||
cd ../..
|
cd ../..
|
||||||
|
|
||||||
# gRPC
|
# --- gRPC --- #
|
||||||
git clone https://github.com/grpc/grpc.git
|
git clone https://github.com/grpc/grpc.git
|
||||||
cd grpc
|
cd grpc
|
||||||
git checkout ${GRPC_COMMIT}
|
git checkout ${GRPC_COMMIT}
|
||||||
@ -51,7 +49,7 @@ cd ..
|
|||||||
# Install gRPC Python Package
|
# Install gRPC Python Package
|
||||||
sudo pip install grpcio
|
sudo pip install grpcio
|
||||||
|
|
||||||
# BMv2 deps (needed by PI)
|
# --- BMv2 deps (needed by PI) --- #
|
||||||
git clone https://github.com/p4lang/behavioral-model.git
|
git clone https://github.com/p4lang/behavioral-model.git
|
||||||
cd behavioral-model
|
cd behavioral-model
|
||||||
git checkout ${BMV2_COMMIT}
|
git checkout ${BMV2_COMMIT}
|
||||||
@ -67,7 +65,7 @@ cd ..
|
|||||||
sudo rm -rf $tmpdir
|
sudo rm -rf $tmpdir
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
# PI/P4Runtime
|
# --- PI/P4Runtime --- #
|
||||||
git clone https://github.com/p4lang/PI.git
|
git clone https://github.com/p4lang/PI.git
|
||||||
cd PI
|
cd PI
|
||||||
git checkout ${PI_COMMIT}
|
git checkout ${PI_COMMIT}
|
||||||
@ -79,7 +77,7 @@ sudo make install
|
|||||||
sudo ldconfig
|
sudo ldconfig
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
# Bmv2
|
# --- Bmv2 --- #
|
||||||
cd behavioral-model
|
cd behavioral-model
|
||||||
./autogen.sh
|
./autogen.sh
|
||||||
./configure --enable-debugger --with-pi
|
./configure --enable-debugger --with-pi
|
||||||
@ -93,11 +91,10 @@ cd targets/simple_switch_grpc
|
|||||||
make -j${NUM_CORES}
|
make -j${NUM_CORES}
|
||||||
sudo make install
|
sudo make install
|
||||||
sudo ldconfig
|
sudo ldconfig
|
||||||
cd ..
|
cd ../../..
|
||||||
cd ..
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
# P4C
|
|
||||||
|
# --- P4C --- #
|
||||||
git clone https://github.com/p4lang/p4c
|
git clone https://github.com/p4lang/p4c
|
||||||
cd p4c
|
cd p4c
|
||||||
git checkout ${P4C_COMMIT}
|
git checkout ${P4C_COMMIT}
|
||||||
@ -106,19 +103,17 @@ mkdir -p build
|
|||||||
cd build
|
cd build
|
||||||
cmake ..
|
cmake ..
|
||||||
make -j${NUM_CORES}
|
make -j${NUM_CORES}
|
||||||
# make -j${NUM_CORES} check <- skip tests as p4c tests are failing currently
|
|
||||||
sudo make install
|
sudo make install
|
||||||
sudo ldconfig
|
sudo ldconfig
|
||||||
cd ..
|
cd ../..
|
||||||
cd ..
|
|
||||||
|
|
||||||
# Tutorials
|
# --- Tutorials --- #
|
||||||
sudo pip install crcmod
|
sudo pip install crcmod
|
||||||
git clone https://github.com/p4lang/tutorials
|
git clone https://github.com/p4lang/tutorials
|
||||||
sudo mv tutorials /home/p4
|
sudo mv tutorials /home/p4
|
||||||
sudo chown -R p4:p4 /home/p4/tutorials
|
sudo chown -R p4:p4 /home/p4/tutorials
|
||||||
|
|
||||||
# Emacs
|
# --- Emacs --- #
|
||||||
sudo cp p4_16-mode.el /usr/share/emacs/site-lisp/
|
sudo cp p4_16-mode.el /usr/share/emacs/site-lisp/
|
||||||
sudo mkdir /home/p4/.emacs.d/
|
sudo mkdir /home/p4/.emacs.d/
|
||||||
echo "(autoload 'p4_16-mode' \"p4_16-mode.el\" \"P4 Syntax.\" t)" > init.el
|
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 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/
|
sudo chown -R p4:p4 /home/p4/.emacs.d/
|
||||||
|
|
||||||
# Vim
|
# --- Vim --- #
|
||||||
cd /home/vagrant
|
cd ~
|
||||||
mkdir .vim
|
mkdir .vim
|
||||||
cd .vim
|
cd .vim
|
||||||
mkdir ftdetect
|
mkdir ftdetect
|
||||||
mkdir syntax
|
mkdir syntax
|
||||||
echo "au BufRead,BufNewFile *.p4 set filetype=p4" >> ftdetect/p4.vim
|
echo "au BufRead,BufNewFile *.p4 set filetype=p4" >> ftdetect/p4.vim
|
||||||
echo "set bg=dark" >> /home/vagrant/.vimrc
|
echo "set bg=dark" >> ~/.vimrc
|
||||||
sudo mv /home/vagrant/.vimrc /home/p4/.vimrc
|
sudo mv ~/.vimrc /home/p4/.vimrc
|
||||||
cp /home/vagrant/p4.vim syntax/p4.vim
|
cp ~/p4.vim syntax/p4.vim
|
||||||
cd /home/vagrant
|
cd ~
|
||||||
sudo mv .vim /home/p4/.vim
|
sudo mv .vim /home/p4/.vim
|
||||||
sudo chown -R p4:p4 /home/p4/.vim
|
sudo chown -R p4:p4 /home/p4/.vim
|
||||||
sudo chown p4:p4 /home/p4/.vimrc
|
sudo chown p4:p4 /home/p4/.vimrc
|
||||||
|
|
||||||
# Adding Desktop icons
|
# --- Adding Desktop icons --- #
|
||||||
DESKTOP=/home/${USER}/Desktop
|
DESKTOP=/home/${USER}/Desktop
|
||||||
mkdir -p ${DESKTOP}
|
mkdir -p ${DESKTOP}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user