updates to install doc
This commit is contained in:
parent
eb030aaca7
commit
595e77a1ef
1 changed files with 83 additions and 84 deletions
167
docs/install.md
167
docs/install.md
|
@ -3,30 +3,30 @@
|
|||
* Table of Contents
|
||||
{:toc}
|
||||
|
||||
# Overview
|
||||
## Overview
|
||||
|
||||
This section will describe how to install CORE from source or from a pre-built package.
|
||||
|
||||
# Required Hardware
|
||||
## Required Hardware
|
||||
|
||||
Any computer capable of running Linux should be able to run CORE. Since the physical machine will be hosting numerous
|
||||
virtual machines, as a general rule you should select a machine having as much RAM and CPU resources as possible.
|
||||
|
||||
# Operating System
|
||||
## Operating System
|
||||
|
||||
CORE requires a Linux operating system because it uses virtualization provided by the kernel. It does not run on
|
||||
Windows or Mac OS X operating systems (unless it is running within a virtual machine guest.) The virtualization
|
||||
technology that CORE currently uses is Linux network namespaces.
|
||||
|
||||
Ubuntu and Fedora/CentOS Linux are the recommended distributions for running CORE. However, these distributions are
|
||||
Ubuntu and CentOS Linux are the recommended distributions for running CORE. However, these distributions are
|
||||
not strictly required. CORE will likely work on other flavors of Linux as well, assuming dependencies are met.
|
||||
|
||||
**NOTE: CORE Services determine what run on each node. You may require other software packages depending on the
|
||||
services you wish to use. For example, the HTTP service will require the apache2 package.**
|
||||
|
||||
# Installed Files
|
||||
## Installed Files
|
||||
|
||||
CORE files are installed to the following directories, when the installation prefix is **/usr**.
|
||||
CORE files are installed to the following directories by default, when the installation prefix is **/usr**.
|
||||
|
||||
Install Path | Description
|
||||
-------------|------------
|
||||
|
@ -43,27 +43,35 @@ Install Path | Description
|
|||
/etc/init.d/core-daemon|SysV startup script for daemon
|
||||
/usr/lib/systemd/system/core-daemon.service|Systemd startup script for daemon
|
||||
|
||||
# Pre-Req Installing Python
|
||||
## Pre-Req Installing Python
|
||||
|
||||
You may already have these installed, and can ignore this step if so, but if
|
||||
needed you can run the following to install python and pip.
|
||||
Python 3.6 is the minimum required python version. Newer versions can be used if available.
|
||||
These steps are needed, since the system packages can not provide all the
|
||||
dependencies needed by CORE.
|
||||
|
||||
### Ubuntu
|
||||
|
||||
```shell
|
||||
sudo apt install python3.6
|
||||
sudo apt install python3-pip
|
||||
```
|
||||
|
||||
# Pre-Req Python Requirements
|
||||
|
||||
The newly added gRPC API which depends on python library grpcio is not commonly found within system repos.
|
||||
To account for this it would be recommended to install the python dependencies using the **requirements.txt** found in
|
||||
the latest [CORE Release](https://github.com/coreemu/core/releases).
|
||||
### CentOS
|
||||
|
||||
```shell
|
||||
sudo pip3 install -r requirements.txt
|
||||
sudo yum install python36
|
||||
sudo yum install python3-pip
|
||||
```
|
||||
|
||||
# Pre-Req Installing OSPF MDR
|
||||
### Dependencies
|
||||
|
||||
Install the current python dependencies.
|
||||
|
||||
```shell
|
||||
sudo python3 -m pip install -r requirements.txt
|
||||
```
|
||||
|
||||
## Pre-Req Installing OSPF MDR
|
||||
|
||||
Virtual networks generally require some form of routing in order to work (e.g. to automatically populate routing
|
||||
tables for routing packets from one subnet to another.) CORE builds OSPF routing protocol configurations by
|
||||
|
@ -73,23 +81,21 @@ default when the blue router node type is used.
|
|||
suite with a modified version of OSPFv3, optimized for use with mobile wireless networks. The **mdr** node type
|
||||
(and the MDR service) requires this variant of Quagga.
|
||||
|
||||
## Ubuntu <= 16.04 and Fedora/CentOS
|
||||
|
||||
There is a built package which can be used.
|
||||
### Ubuntu
|
||||
|
||||
```shell
|
||||
wget https://github.com/USNavalResearchLaboratory/ospf-mdr/releases/download/v0.99.21mr2.2/quagga-mr_0.99.21mr2.2_amd64.deb
|
||||
sudo dpkg -i quagga-mr_0.99.21mr2.2_amd64.deb
|
||||
sudo apt install libtool gawk libreadline-dev
|
||||
```
|
||||
|
||||
## Ubuntu >= 18.04
|
||||
|
||||
Requires building from source, from the latest nightly snapshot.
|
||||
### CentOS
|
||||
|
||||
```shell
|
||||
# packages needed beyond what's normally required to build core on ubuntu
|
||||
sudo apt install libtool libreadline-dev autoconf gawk
|
||||
sudo yum install libtool gawk readline-devel
|
||||
```
|
||||
|
||||
### Build and Install
|
||||
|
||||
```shell
|
||||
git clone https://github.com/USNavalResearchLaboratory/ospf-mdr
|
||||
cd ospf-mdr
|
||||
./bootstrap.sh
|
||||
|
@ -112,14 +118,14 @@ error while loading shared libraries libzebra.so.0
|
|||
|
||||
this is usually a sign that you have to run ```sudo ldconfig```` to refresh the cache file.
|
||||
|
||||
# Installing from Packages
|
||||
## Installing from Packages
|
||||
|
||||
The easiest way to install CORE is using the pre-built packages. The package managers on Ubuntu or Fedora/CentOS
|
||||
The easiest way to install CORE is using the pre-built packages. The package managers on Ubuntu or CentOS
|
||||
will help in automatically installing most dependencies, except for the python ones described previously.
|
||||
|
||||
You can obtain the CORE packages from [CORE Releases](https://github.com/coreemu/core/releases).
|
||||
|
||||
## Ubuntu
|
||||
### Ubuntu
|
||||
|
||||
Ubuntu package defaults to using systemd for running as a service.
|
||||
|
||||
|
@ -127,16 +133,7 @@ Ubuntu package defaults to using systemd for running as a service.
|
|||
sudo apt install ./core_$VERSION_amd64.deb
|
||||
```
|
||||
|
||||
Run the CORE GUI as a normal user:
|
||||
|
||||
```shell
|
||||
core-gui
|
||||
```
|
||||
|
||||
After running the *core-gui* command, a GUI should appear with a canvas for drawing topologies.
|
||||
Messages will print out on the console about connecting to the CORE daemon.
|
||||
|
||||
## Fedora/CentOS
|
||||
### CentOS
|
||||
|
||||
**NOTE: tkimg is not required for the core-gui, but if you get an error message about it you can install the package
|
||||
on CentOS <= 6, or build from source otherwise**
|
||||
|
@ -153,10 +150,6 @@ SELINUX=disabled
|
|||
|
||||
# add the following to the kernel line in /etc/grub.conf
|
||||
selinux=0
|
||||
|
||||
# Fedora 15 and newer, disable sandboxd
|
||||
# reboot in order for this change to take effect
|
||||
chkconfig sandbox off
|
||||
```
|
||||
|
||||
Turn off firewalls:
|
||||
|
@ -176,63 +169,46 @@ iptables -F
|
|||
ip6tables -F
|
||||
```
|
||||
|
||||
Start the CORE daemon.
|
||||
## Installing from Source
|
||||
|
||||
Steps for building from cloned source code. Python 3.6 is the minimum required version
|
||||
a newer version can be used below if available.
|
||||
|
||||
### Distro Requirements
|
||||
|
||||
System packages required to build from source.
|
||||
|
||||
#### Ubuntu
|
||||
|
||||
```shell
|
||||
# systemd
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl start core-daemon
|
||||
|
||||
# sysv
|
||||
sudo service core-daemon start
|
||||
sudo apt install git automake pkg-config gcc libev-dev ebtables iproute2 \
|
||||
python3.6 python3.6-dev python3-pip python3-tk tk libtk-img ethtool autoconf
|
||||
```
|
||||
|
||||
Run the CORE GUI as a normal user:
|
||||
#### CentOS
|
||||
|
||||
```shell
|
||||
core-gui
|
||||
sudo yum install git automake pkgconf-pkg-config gcc gcc-c++ libev-devel iptables-ebtables iproute \
|
||||
python36 python36-devel python3-pip python3-tkinter tk ethtool autoconf
|
||||
```
|
||||
|
||||
After running the *core-gui* command, a GUI should appear with a canvas for drawing topologies. Messages will print out on the console about connecting to the CORE daemon.
|
||||
### Clone Repository
|
||||
|
||||
# Building and Installing from Source
|
||||
|
||||
This option is listed here for developers and advanced users who are comfortable patching and building source code.
|
||||
Please consider using the binary packages instead for a simplified install experience.
|
||||
|
||||
## Download and Extract Source Code
|
||||
|
||||
You can obtain the CORE source from the [CORE GitHub](https://github.com/coreemu/core) page.
|
||||
|
||||
## Install grpcio-tools
|
||||
|
||||
Python module grpcio-tools is currently needed to generate code from the CORE protobuf file during the build.
|
||||
Clone the CORE repository for building from source.
|
||||
|
||||
```shell
|
||||
sudo pip3 install grpcio-tools
|
||||
git clone https://github.com/coreemu/core.git
|
||||
```
|
||||
|
||||
## Distro Requirements
|
||||
### Install grpcio-tools
|
||||
|
||||
### Ubuntu 18.04 Requirements
|
||||
Python module grpcio-tools is currently needed to generate gRPC protobuf code.
|
||||
|
||||
```shell
|
||||
sudo apt install automake pkg-config gcc iproute2 libev-dev ebtables python3.6 python3.6-dev python3-pip tk libtk-img ethtool python3-tk
|
||||
sudo python3 -m pip install grpcio-tools
|
||||
```
|
||||
|
||||
### Ubuntu 16.04 Requirements
|
||||
|
||||
```shell
|
||||
sudo apt-get install automake ebtables python3-dev libev-dev python3-setuptools libtk-img ethtool
|
||||
```
|
||||
|
||||
### CentOS 7 with Gnome Desktop Requirements
|
||||
|
||||
```shell
|
||||
sudo yum -y install automake gcc python36 python36-devel libev-devel tk ethtool iptables-ebtables iproute python3-pip python3-tkinter
|
||||
```
|
||||
|
||||
## Build and Install
|
||||
### Build and Install
|
||||
|
||||
```shell
|
||||
./bootstrap.sh
|
||||
|
@ -241,7 +217,7 @@ make
|
|||
sudo make install
|
||||
```
|
||||
|
||||
# Building Documentation
|
||||
## Building Documentation
|
||||
|
||||
Building documentation requires python-sphinx not noted above.
|
||||
|
||||
|
@ -254,7 +230,7 @@ sudo yum install python3-sphinx
|
|||
make doc
|
||||
```
|
||||
|
||||
# Building Packages
|
||||
## Building Packages
|
||||
Build package commands, DESTDIR is used to make install into and then for packaging by fpm.
|
||||
|
||||
**NOTE: clean the DESTDIR if re-using the same directory**
|
||||
|
@ -270,3 +246,26 @@ make fpm DESTDIR=/tmp/core-build
|
|||
```
|
||||
|
||||
This will produce and RPM and Deb package for the currently configured python version.
|
||||
|
||||
## Running CORE
|
||||
|
||||
Start the CORE daemon.
|
||||
|
||||
```shell
|
||||
# systemd
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl start core-daemon
|
||||
|
||||
# sysv
|
||||
sudo service core-daemon start
|
||||
```
|
||||
|
||||
Run the GUI
|
||||
|
||||
```shell
|
||||
# default gui
|
||||
core-gui
|
||||
|
||||
# new beta gui
|
||||
coretk-gui
|
||||
```
|
||||
|
|
Loading…
Reference in a new issue