Difference between revisions of "VPP/Installing VPP binaries from packages"

From fd.io
< VPP
Jump to: navigation, search
(Add fd.io repo)
Line 36: Line 36:
 
* '''vpp-api-lua''' - Description: Lua binding for the VPP Binary API.
 
* '''vpp-api-lua''' - Description: Lua binding for the VPP Binary API.
  
== Ubuntu/Debian ==
+
== Ubuntu/Debian/Centos ==
  
Beginning with the VPP 18.04 release, packages are published for both the amd64 (Intel) and aarch64 (ARM) architectures. The packages are stored in the same repository so no special action is required to select your architecture.
+
Packages are published for both the amd64 (Intel) and aarch64 (ARM) architectures. The packages are stored in the same repository so no special action is required to select your architecture.
  
 
=== Add fd.io repo ===
 
=== Add fd.io repo ===
  
1. Pick Ubuntu version:
+
VPP release packages are available at: https://packagecloud.io/fdio/release
* Ubuntu 16.04 - Xenial
+
  export UBUNTU="xenial"
+
  
2. Pick VPP version:
+
If you follow that link you should see a screen presenting buttons to click to get instructions for installing Debian/Rpm packages. Click on the appropriate link for instructions, and those should work
* Latest VPP Release
+
for Ubuntu 16.04, 18.04, or Centos7What to expect when following the link to https://packagecloud.io/fdio/release is in the image below:
  unset -v RELEASE
+
[[File:Packagecloud repo install.png|500px|Packagecloud repo install]]
* Latest VPP 18.07 Throttle Branch
+
  export RELEASE=".stable.1807"
+
* Latest VPP 18.04 Throttle Branch
+
  export RELEASE=".stable.1804"
+
* Latest VPP 18.01 Throttle Branch
+
   export RELEASE=".stable.1801"
+
* MASTER (in development)
+
  export RELEASE=".master"
+
  
3. Then run:
+
If you wish to install the merge-by-merge packages for the vpp master branch or the vpp stable/YYMM branches, the instructions are the same but use instead:
  sudo rm /etc/apt/sources.list.d/99fd.io.list
+
  echo "deb [trusted=yes] https://nexus.fd.io/content/repositories/fd.io$RELEASE.ubuntu.$UBUNTU.main/ ./" | sudo tee -a /etc/apt/sources.list.d/99fd.io.list
+
  sudo apt-get update
+
  sudo apt-get install vpp vpp-lib
+
  
* Optional packages:
+
* https://packagecloud.io/fdio/master - for the master branch
  sudo apt-get install vpp-plugins vpp-dbg vpp-dev vpp-api-java vpp-api-python vpp-api-lua
+
* https://packagecloud.io/fdio/1807 - for the stable/1807 branch.
  
=== Uninstalling VPP Packages ===
+
=== Install Packages ===
  
  sudo apt-get remove --purge vpp*
+
==== Debs ====
  
== Centos ==
+
Once you have installed the repo:
  
=== Add fd.io repo ===
+
sudo apt-get update
 +
sudo apt-get install vpp
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
+
* Optional Debs
  
==== CentOS 7.3 - VPP Release RPMs (Latest) ====
+
sudo apt-get install vpp-plugins vpp-dbg vpp-dev vpp-api-java vpp-api-python vpp-api-lua
<div class="mw-collapsible-content">
+
  
Create a file /etc/yum.repos.d/fdio-release.repo with contents:
+
Note: vpp-plugins contains the dpdk-plugin needed to use dpdk drivers for hardware interfaces.
  
<pre>
+
* Uninstalling Debs
[fdio-release]
+
name=fd.io release branch latest merge
+
baseurl=https://nexus.fd.io/content/repositories/fd.io.centos7/
+
enabled=1
+
gpgcheck=0
+
</pre>
+
</div>
+
</div>
+
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
+
sudo apt-get remove --purge vpp*
  
==== CentOS 7.3 - VPP stable/1807 branch RPMs ====
 
<div class="mw-collapsible-content">
 
 
Create a file /etc/yum.repos.d/fdio-stable-1807.repo with contents:
 
 
<pre>
 
[fdio-stable-1807]
 
name=fd.io stable/1807 branch latest merge
 
baseurl=https://nexus.fd.io/content/repositories/fd.io.stable.1804.centos7/
 
enabled=1
 
gpgcheck=0
 
</pre>
 
</div>
 
</div>
 
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
 
 
==== CentOS 7.3 - VPP stable/1804 branch RPMs ====
 
<div class="mw-collapsible-content">
 
 
Create a file /etc/yum.repos.d/fdio-stable-1804.repo with contents:
 
 
<pre>
 
[fdio-stable-1804]
 
name=fd.io stable/1804 branch latest merge
 
baseurl=https://nexus.fd.io/content/repositories/fd.io.stable.1804.centos7/
 
enabled=1
 
gpgcheck=0
 
</pre>
 
</div>
 
</div>
 
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
 
 
 
==== CentOS 7.3 - VPP stable/1801 branch RPMs ====
 
<div class="mw-collapsible-content">
 
 
Create a file /etc/yum.repos.d/fdio-stable-1801.repo with contents:
 
 
<pre>
 
[fdio-stable-1801]
 
name=fd.io stable/1801 branch latest merge
 
baseurl=https://nexus.fd.io/content/repositories/fd.io.stable.1801.centos7/
 
enabled=1
 
gpgcheck=0
 
</pre>
 
</div>
 
</div>
 
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
 
 
==== CentOS 7.3 - VPP stable/1710 branch RPMs ====
 
<div class="mw-collapsible-content">
 
 
Create a file /etc/yum.repos.d/fdio-stable-1710.repo with contents:
 
 
<pre>
 
[fdio-stable-1710]
 
name=fd.io stable/1710 branch latest merge
 
baseurl=https://nexus.fd.io/content/repositories/fd.io.stable.1710.centos7/
 
enabled=1
 
gpgcheck=0
 
</pre>
 
</div>
 
</div>
 
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
 
 
==== CentOS 7.3 - VPP stable/1707 branch RPMs ====
 
<div class="mw-collapsible-content">
 
 
Create a file /etc/yum.repos.d/fdio-stable-1707.repo with contents:
 
 
<pre>
 
[fdio-stable-1707]
 
name=fd.io stable/1707 branch latest merge
 
baseurl=https://nexus.fd.io/content/repositories/fd.io.stable.1707.centos7/
 
enabled=1
 
gpgcheck=0
 
</pre>
 
</div>
 
</div>
 
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
 
 
==== CentOS 7.3 - VPP master branch RPMs (in development) ====
 
<div class="mw-collapsible-content">
 
 
Create a file /etc/yum.repos.d/fdio-master.repo with contents:
 
 
<pre>
 
[fdio-master]
 
name=fd.io master branch latest merge
 
baseurl=https://nexus.fd.io/content/repositories/fd.io.master.centos7/
 
enabled=1
 
gpgcheck=0
 
</pre>
 
</div>
 
</div>
 
  
=== Install VPP RPMs ===
+
==== RPMs ====
 +
Once you have installed the repo:
  
 
  sudo yum install vpp
 
  sudo yum install vpp
Line 202: Line 81:
  
 
  sudo yum install vpp-plugins vpp-devel vpp-api-python vpp-api-lua vpp-api-java
 
  sudo yum install vpp-plugins vpp-devel vpp-api-python vpp-api-lua vpp-api-java
 +
 +
Note: vpp-plugins contains the dpdk-plugin needed to use dpdk drivers for hardware interfaces.
  
 
* Start VPP
 
* Start VPP
Line 290: Line 171:
  
 
[https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html More information on maven dependency managment]
 
[https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html More information on maven dependency managment]
 +
 +
== Old Nexus Apt/Yum repo instructions ==
 +
 +
If you wish to access the old Nexus Apt/Yum repo instructions there are available [https://wiki.fd.io/index.php?title=VPP/Installing_VPP_binaries_from_packages&oldid=8167#Ubuntu.2FDebian here].

Revision as of 19:38, 21 September 2018

Intro

If you are simply using vpp, it can be convenient to simply install the packages. The instructions below will pull the latest freshest package build from the master branch (updated on every merge).

Package Descriptions

  • vpp - Description: Vector Packet Processing--executables. This package provides VPP executables: vpp, vpp_api_test, vpp_json_test
    • vpp - the vector packet engine
    • vpp_api_test - vector packet engine API test tool
    • vpp_json_test - vector packet engine JSON test tool
  • vpp-lib - Description: Vector Packet Processing--runtime libraries. This package contains the VPP shared libraries, including:
    • vppinfra - foundation library supporting vectors, hashes, bitmaps, pools, and string formatting.
    • svm - vm library
    • vlib - vector processing library
    • vlib-api - binary API library
    • vnet - network stack library
  • vpp-plugins - Description: Vector Packet Processing--plugin modules
    • acl
    • dpdk
    • flowprobe
    • gtpu
    • ixge
    • kubeproxy
    • l2e
    • lb
    • memif
    • nat
    • pppoe
    • sixrd
    • stn
  • vpp-dbg - Description: Vector Packet Processing--debug symbols
  • vpp-dev - Description: Vector Packet Processing--development support. This package contains development support files for the VPP libraries
  • vpp-api-java - Description: JAVA binding for the VPP Binary API.
  • vpp-api-python - Description: Python binding for the VPP Binary API.
  • vpp-api-lua - Description: Lua binding for the VPP Binary API.

Ubuntu/Debian/Centos

Packages are published for both the amd64 (Intel) and aarch64 (ARM) architectures. The packages are stored in the same repository so no special action is required to select your architecture.

Add fd.io repo

VPP release packages are available at: https://packagecloud.io/fdio/release

If you follow that link you should see a screen presenting buttons to click to get instructions for installing Debian/Rpm packages. Click on the appropriate link for instructions, and those should work for Ubuntu 16.04, 18.04, or Centos7. What to expect when following the link to https://packagecloud.io/fdio/release is in the image below: Packagecloud repo install

If you wish to install the merge-by-merge packages for the vpp master branch or the vpp stable/YYMM branches, the instructions are the same but use instead:

Install Packages

Debs

Once you have installed the repo:

sudo apt-get update sudo apt-get install vpp

  • Optional Debs

sudo apt-get install vpp-plugins vpp-dbg vpp-dev vpp-api-java vpp-api-python vpp-api-lua

Note: vpp-plugins contains the dpdk-plugin needed to use dpdk drivers for hardware interfaces.

  • Uninstalling Debs

sudo apt-get remove --purge vpp*


RPMs

Once you have installed the repo:

sudo yum install vpp
  • Optional RPMs
sudo yum install vpp-plugins vpp-devel vpp-api-python vpp-api-lua vpp-api-java

Note: vpp-plugins contains the dpdk-plugin needed to use dpdk drivers for hardware interfaces.

  • Start VPP
sudo systemctl restart vpp

Uninstalling VPP RPMs

sudo yum autoremove vpp*

openSUSE

Blog-post: https://www.suse.com/communities/blog/vector-packet-processing-vpp-opensuse/

Install from official repositories

openSUSE Tumbleweed (rolling release)

sudo zypper install vpp vpp-plugins

openSUSE Leap 42.3

sudo zypper addrepo --name network https://download.opensuse.org/repositories/network/openSUSE_Leap_42.3/network.repo
sudo zypper install vpp vpp-plugins

Install from FD.io repositories

If the version of VPP you require has not yet made it in to the official repository you can elect to use the FD.io release repository.

openSUSE Leap 42.3

This repository is available since VPP 18.04.

sudo zypper addrepo --type rpm-md --name "FD.io release" https://nexus.fd.io/content/repositories/fd.io.osleap423/ fdio-leap423
sudo zypper install vpp vpp-plugins

Uninstall

openSUSE Tumbleweed (rolling release)

sudo zypper remove -u vpp vpp-plugins

openSUSE Leap 42.3

sudo zypper remove -u vpp vpp-plugins

Optionally also remove the repository:

sudo zypper removerepo network

or

sudo zypper removerepo fdio-leap423

Getting jvpp jar

Directly downloading jvpp.jar

vpp provides java bindings which can be downloaded

Getting jvpp via maven

Add the following to the repositories section in your ~/.m2/settings.xml to pick up the fd.io maven repo:

<repository>
  <id>fd.io-release</id>
  <name>fd.io-release</name>
  <url>https://nexus.fd.io/content/repositories/fd.io.release/</url>
  <releases>
    <enabled>false</enabled>
  </releases>
  <snapshots>
    <enabled>true</enabled>
  </snapshots>
</repository>

More information on setting up maven repositories in settings.xml.

Then you can get jvpp by putting in the dependencies section of your pom.xml file:

<dependency>
  <groupId>io.fd.vpp</groupId>
  <artifactId>jvpp-core</artifactId>
  <version>18.04</version>
</dependency>

More information on maven dependency managment

Old Nexus Apt/Yum repo instructions

If you wish to access the old Nexus Apt/Yum repo instructions there are available here.