.. _installing:

.. toctree::

.. _installingVPP:

Downloading and Installing VPP
==============================

If you want to use VPP it can be convenient to install the binaries from
existing packages. This guide describes how to pull, install and run the VPP packages.

FD.io VPP packages are stored in Packagecloud.io package repositories. There is
a package repository for the latest VPP release packages as well as a package
repository associated with each branch in the VPP git repository.  The VPP merge
jobs which run on Jenkins (https://jenkins.fd.io) for each actively supported
git branch uploads packages to packagecloud that are built from the vpp code in
the branch.


Installing on Ubuntu / Debian OS Distros
----------------------------------------

The following are instructions on how to install VPP on Ubuntu.

.. toctree::

   ubuntu


Package Descriptions
----------------------------------

The following is a brief description of the packages to be installed with VPP.

.. toctree::

   packages
