Build VPP Debian packages on Debian
Vector Packet Processing (VPP), developed by FD.io, is a high-performance userspace network stack designed for fast packet processing. Whether you’re a network engineer, developer, or enthusiast, and you’re looking to build VPP from source into .deb
packages, this guide will walk you through each step. In this article, we’ll explore how to build VPP Debian packages from source. Personally, I like to keep notes of the process, especially since at Wansec, we use this frequently in our infrastructure.
Tags: VPP, fd.io, Debian, Network Programming, Open Source, Packaging
Prerequisites
Start with a clean Debian-based system (typically I am using Debian 12). Then install the necessary dependencies:
sudo apt update
sudo apt install -y nano vim libnl-3-200 libnl-route-3-200 libnuma1 libpcap0.8 sudo git make
Prepare Your Workspace
Organize your source code in a dedicated directory:
mkdir -p ~/src
cd ~/src
Clone the VPP Repository
Clone the official VPP repository from FD.io’s Gerrit server:
git clone https://gerrit.fd.io/r/vpp
cd vpp
Now, check out the desired release tag. In this example, we’re using version 25.02:
git checkout v25.02
💡 Tip: You can find the latest tags by running git tag
.
Install Build Dependencies
FD.io provides helpful make
targets to install all required dependencies. Run:
make install-deps
make install-ext-deps
These will install system packages and third-party components needed for the build process.
Build VPP
Once dependencies are in place, start the build:
make build-release
This will compile the VPP binaries in release mode.
Generate .deb
Packages
Finally, create the Debian packages:
make pkg-deb
After a successful build, you’ll find the generated .deb
files under build-root/*.deb
. These packages can now be installed using dpkg -i
or shared with others in your team or network lab.
You’re Done!
And that’s how you build VPP Debian packages. At this point, you’ve successfully compiled the VPP network stack from source. As a result, you now have full control over the build process, allowing you to tailor VPP to your specific needs. If, along the way, you got stuck or want to automate this workflow, feel free to drop a comment below. Alternatively, you can explore VPP’s official documentation for more in-depth guidance.
Happy hacking, and may your packets always flow freely! 🚀