Debian/Ubuntu Packaging for OVN
This document provides instructions for installing OVN on Debian and
Ubuntu, either from distribution packages or by building .deb
packages from source. Instructions for installing OVN from source
without packaging can be found in the OVN on Linux, FreeBSD and NetBSD.
The steps below are practically the same for Debian and Ubuntu.
Installing from Packages
Debian and Ubuntu provide pre-built OVN packages. You can install them
using apt-get as superuser.
For a central node (runs OVN databases, ovn-northd and ovn-ic):
$ sudo apt-get install ovn-central
For each host/hypervisor (runs ovn-controller):
$ sudo apt-get install ovn-host
Additional packages:
$ sudo apt-get install ovn-common # shared components
$ sudo apt-get install ovn-controller-vtep # VTEP gateway support
Note
The packaged version available in distributions may not be the latest OVN release.
Building .deb Packages from Source
Build Requirements
Install the standard Debian packaging tools and the OVN build dependencies. On Debian/Ubuntu:
$ sudo apt-get install build-essential fakeroot devscripts
$ sudo apt-get install graphviz autoconf automake bzip2 \
debhelper dh-autoreconf dh-python libssl-dev libtool \
openssl procps python3-all python3-sphinx \
python3-twisted python3-zope.interface \
libunbound-dev libunwind-dev
The second set of packages corresponds to the Build-Depends
list in the debian/control file of the OVN source tree.
Bootstrapping
Refer to Bootstrapping.
Configuring
Refer to Configuring.
The Debian build rules configure OVN with --enable-ssl,
--enable-shared, and --with-ovs-source. If you are building
manually, make sure to prepare the OVS sources first as described in the
bootstrapping section.
Building
The OVSDIR environment variable must point to a fully configured
and built OVS source tree (i.e., one where ./boot.sh,
./configure, and make have been run) before building the
packages:
$ export OVSDIR=/path/to/built/ovs
You can then build the .deb packages using dpkg-buildpackage:
$ dpkg-buildpackage -us -uc
Or using debuild:
$ debuild -us -uc
Both methods use the debian/rules file which takes care of
configuring, building, and packaging.
This produces the following .deb packages:
ovn-common: Shared OVN components (ovn-nbctl, ovn-sbctl, ovn-trace, ovn-appctl, ovn-detrace, ovn-ctl, man pages).ovn-central: OVN DB servers, ovn-northd and ovn-ic for the central node.ovn-host: ovn-controller for each host/hypervisor.ovn-controller-vtep: ovn-controller-vtep for VTEP gateways.
Installing
Install the packages using dpkg:
$ sudo dpkg -i ovn-common_*.deb
$ sudo dpkg -i ovn-central_*.deb # on central node
$ sudo dpkg -i ovn-host_*.deb # on each host
Note
dpkg does not automatically resolve dependencies. If you
encounter dependency errors, run sudo apt-get install -f
to install the missing dependencies.
Reporting Bugs
Report problems to https://github.com/ovn-org/ovn/issues or discuss@openvswitch.org.