NFD nightly packages

NOTICE Instructions in this article are outdated. Please see latest information in NFD nightly usage.

NDN Forwarding Daemon (NFD) is the reference implementation of Named Data Networking (NDN) forwarding plane. The software is continuously developed, but binary releases happen rather infrequently. Recently, I made a workflow to build NFD and related software automatically.

Download page:


Which platform should I choose?

  • The platform identifier has two parts: Linux distribution and CPU architecture. Both parts must match your machine.
  • Linux distribution:
    • bionic is Ubuntu 18.04.
    • buster is Debian 10. This includes Raspberry Pi OS.
  • CPU architecture:

Which packages should I install?

  • libndn-cxx_*.deb: ndn-cxx library.
  • libndn-cxx-dev_*.deb: development headers for ndn-cxx.
    • This is needed if you want to compile software that uses ndn-cxx.
    • Depends on: libndn-cxx
  • ndnsec_*.deb: ndnsec command for managing ndn-cxx KeyChain.
    • Depends on: libndn-cxx
  • nfd_*.deb: NDN Forwarding Daemon (NFD) and nfdc management utility.
    • Depends on: libndn-cxx, ndnsec
  • ndnpeek_*.deb: ndnpeek and ndnpoke commands for sending a single packet.
    • Depends on: nfd
  • ndnping_*.deb: ndnping and ndnpingserver commands for testing reachability.
    • Depends on: nfd
  • ndnchunks_*.deb: ndncatchunks and ndnputchunks commands for file transfers.
    • Depends on: nfd
  • ndn-dissect_*.deb: ndn-dissect command for analyzing packet structure.
    • Depends on: libndn-cxx
  • Other packages are generally not needed.

How to download and install?

  1. Choose a platform, and find the latest build that offers this platform.
  2. Download the zip files for ndn-cxx, NFD, and ndn-tools.
  3. Put all the deb files in the same directory.
  4. Execute sudo dpkg -i followed by the packages you want to install. It is normal for this command to report dependency errors.
  5. Execute sudo apt-get install -f to install missing dependencies from APT sources.

(2021-01-18 update) Can I install with apt-get?

Why am I seeing "page not found" after clicking a download link?

  • You must be logged into GitHub before you can download.


Why should I use deb packages instead of building from source code?

What are the differences between ppa:named-data/ppa and NFD-nightly?

  • Update frequency:
    • PPA: after each NFD release, which occurs a few times per year.
    • NFD-nightly: weekly.
  • Supported platforms:
    • PPA: recent Ubuntu version.
    • NFD-nightly: Debian and Ubuntu.
  • Format:
    • PPA: signed deb packages, automatic upgrade with apt-get command.
    • NFD-nightly: unsigned deb packages, manual install with dpkg command.
  • Quality:
    • PPA: production.
    • NFD-nightly: experimental.

How are these packages built?

  • They are built on GitHub Actions using Docker containers.
  • Non-amd64 architectures are compiled in Balena images.

Why do I have to be logged into GitHub to download?

  • The zip files are stored as "artifacts" on GitHub.
  • Anonymous downloads of artifacts are disallowed on GitHub.

The package isn't working?

  • If you are seeing "Illegal Instruction" error, open an issue to report.
    • Be sure to include: "build number" of the download, filename of the deb package, and information about your platform.
  • Other errors are not caused by NFD-nightly. Report on nfd-dev mailing list instead.

How to request a new platform?

  • I can add newer Debian or Ubuntu releases.
    • NFD needs to be compatible with the default compiler and Boost versions installed from APT.
  • I cannot create packages for Linux distributions that do not use APT.
    • I'm a geocacher and I cannot stand the word dnf DNF.
  • I can add more CPU architecture, if Balena has an image for that.
  • Open an issue to discuss.

How to request a new package?