You are here

Dependencies

This document lists the various known dependencies for GNUnet 0.10.x. Suggestions for missing dependencies or wrong version numbers are welcome.

External dependencies

These packages must be installed before a typical GNUnet installation can be performed:

GNU libmicrohttpd
0.9.30 or higher
GNU libextractor
1.0 or higher
GNU libtool
2.2 or higher
GNU libunistring
0.9.1.1 or higher
GNU libidn
1.0.0 or higher
GNU libgcrypt
1.6.0 or higher
GnuTLS
3.2.7 or higher, compile with libunbound for DANE support; GnuTLS also requires GNU nettle ≥ 2.7
libgnurl
7.34.0 or higher (available from https://gnunet.org/gnurl), should be compiled after GnuTLS
libglpk
4.45 or higher
OpenSSL (binary)
1.0 or higher
TeX Live
2012 or higher, optional (for gnunet-bcd)
libpulse
2.0 or higher, optional (for gnunet-conversation)
libopus
1.0.1 or higher, optional (for gnunet-conversation)
libogg
1.3.0 or higher, optional (for gnunet-conversation)
certool (binary)
optional for convenient installation of the GNS proxy (available as part of Debian's libnss3-tools)
python-zbar
0.10 or higher, optional (for gnunet-qr)
libsqlite
3.8.0 or higher (note that the code will compile and often work with lower version numbers, but you may get subtle bugs with respect to quota management in certain rare cases); alternatively, MySQL or Postgres can also be installed, but those databases will require more complex configurations (not recommended for first-time users)
zlib
any version we tested worked
Gtk+
2.24 or higher, optional (for gnunet-gtk)
libgladeui
must match Gtk+ version, optional (for gnunet-gtk)
libqrencode
3.0 or higher, optional (for gnunet-namestore-gtk)

Internal dependencies

This section tries to give an overview of what processes a typical GNUnet peer running a particular application would consist of. All of the processes listed here should be automatically started by gnunet-arm -s. The list is given as a rough first guide to users for failure diagnostics. Ideally, end-users should never have to worry about these internal dependencies.

In terms of internal dependencies, a minimum file-sharing system consists of the following GNUnet processes (in order of dependency):

  • gnunet-service-arm
  • gnunet-service-resolver (required by all)
  • gnunet-service-statistics (required by all)
  • gnunet-service-peerinfo
  • gnunet-service-transport (requires peerinfo)
  • gnunet-service-core (requires transport)
  • gnunet-daemon-hostlist (requires core)
  • gnunet-daemon-topology (requires hostlist, peerinfo)
  • gnunet-service-datastore
  • gnunet-service-dht (requires core)
  • gnunet-service-identity
  • gnunet-service-fs (requires identity, mesh, dht, datastore, core)

A minimum VPN system consists of the following GNUnet processes (in order of dependency):

  • gnunet-service-arm
  • gnunet-service-resolver (required by all)
  • gnunet-service-statistics (required by all)
  • gnunet-service-peerinfo
  • gnunet-service-transport (requires peerinfo)
  • gnunet-service-core (requires transport)
  • gnunet-daemon-hostlist (requires core)
  • gnunet-service-dht (requires core)
  • gnunet-service-mesh (requires dht, core)
  • gnunet-service-dns (requires dht)
  • gnunet-service-regex (requires dht)
  • gnunet-service-vpn (requires regex, dns, mesh, dht)

A minimum GNS system consists of the following GNUnet processes (in order of dependency):

  • gnunet-service-arm
  • gnunet-service-resolver (required by all)
  • gnunet-service-statistics (required by all)
  • gnunet-service-peerinfo
  • gnunet-service-transport (requires peerinfo)
  • gnunet-service-core (requires transport)
  • gnunet-daemon-hostlist (requires core)
  • gnunet-service-dht (requires core)
  • gnunet-service-mesh (requires dht, core)
  • gnunet-service-dns (requires dht)
  • gnunet-service-regex (requires dht)
  • gnunet-service-vpn (requires regex, dns, mesh, dht)
  • gnunet-service-identity
  • gnunet-service-namestore (requires identity)
  • gnunet-service-gns (requires vpn, dns, dht, namestore, identity)