3.2.7 or higher, compile with libunbound for DANE support; GnuTLS also requires GNU nettle ≥ 2.7 (update: GnuTLS 3.2.7 appears NOT to work against GNU nettle > 2.7, due to some API updatings done by nettle. Thus it should be compiled against nettle 2.7 and, in case you get some error on the reference to `rpl_strerror' being undefined, follow the instructions onthis post (and the link inside it)).

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+

3.0 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):