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! 🚀

Gregory

Gregory

I'm Gregory from Switzerland, and this is a running log of thoughts, findings, and lessons learned over more than 20 years in IT. With a deep passion for networks and security, I focus on architecture, governance, and emerging technologies. My journey has taken me through complex challenges and continuous learning across various sectors. While this space mainly serves as my personal knowledge base, I hope that sharing these notes might also offer insights or inspiration to others navigating the ever-evolving digital landscape.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

64 − 58 =