Dependencies:
=============
-For the impatient, here is the list of immediate dependencies for
-running GNUnet:
+Please note that for many of its dependencies GNUnet requires very
+recent versions of the libraries which are often NOT to be found in
+stable distributions in 2011. While using older packages may in some
+cases on some operating systems may seem to work in some limited
+fashion, we are in many cases aware of serious problems with older
+packages. Hence please make sure to use the versions listed below.
+
+These are the direct dependencies for running GNUnet:
- libextractor >= 0.6.1
-- libmicrohttpd >= 0.4.6
+- libmicrohttpd >= 0.9.2
- libgcrypt >= 1.2
-- libgmp >= 4.0
-- libcurl >= 7.15.4
+- libcurl >= 7.21.0
- libltdl >= 2.2 (part of GNU libtool)
-- sqlite >= 3.0 (alternative to MySQL)
-- mysql >= ??? (not yet supported)
-- postgres >= ??? (not yet supported)
+- sqlite >= 3.0 (default database)
+- mysql >= 5.1 (alternative to sqLite)
+- postgres >= 8.3 (alternative to sqLite)
Recommended autotools for compiling the SVN version are:
- autoconf >= 2.59
- automake >= 1.11.1
- libtool >= 2.2
-See also README.debian for a list of Debian packages.
-
How to install?
===============
system. For a more detailed description, read the installation
instructions on the webpage at https://gnunet.org/installation.
+Note that some functions of GNUnet require "root" access. GNUnet will
+install (tiny) SUID binaries for those functions is you run "make
+install" as root. If you do not, GNUnet will still work, but some
+functionality will not be available (including certain forms of NAT
+traversal).
+
GNUnet requires the GNU MP library (http://www.gnu.org/software/gmp/)
and libgcrypt (http://www.gnupg.org/). You can specify the path to
libgcrypt by passing "--with-gcrypt=PATH" to configure. You will also
-need either sqlite (http://www.sqlite.org/) or MySQL
-(http://www.mysql.org/).
+need either sqlite (http://www.sqlite.org/), MySQL
+(http://www.mysql.org/) or PostGres (http://www.postgres.org/).
If you install from source, you need to install GNU libextractor first
(download from http://www.gnu.org/software/libextractor/). We also
Note that additional, per-user configuration files
(~/.gnunet/gnunet.conf) need to be created by each user (for example,
-by running gnunet-setup). For more general information about the GNU
-build process read the INSTALL file.
+by running gnunet-setup). Note that gnunet-setup is a separate
+download and requires recent versions of GTK+ and Glade; you can also
+edit the configuration file by hand, but this is not recommended. For
+more general information about the GNU build process read the INSTALL
+file.
If you are compiling the code from subversion, you have to run
". bootstrap" before ./configure. If you receive an error during the
specified in the gnunet.conf configuration file).
Now start the local node using "gnunet-arm -s". GNUnet should run 24/7 if
-you want to maximize your anonymity.
+you want to maximize your anonymity.
-The GTK user interface is shipped separately. After downloading and
-installing gnunet-gtk, you can invoke the GUI with:
-
-$ gnunet-gtk
-
-// FIXME: gnunet-qt is not yet supported in 0.9.x
-For Qt/KDE users, there is also a QT user interface (also shipped
-separately). If you install gnunet-qt, you can invoke the GUI with:
-
-$ gnunet-qt
-
-If you want to use the shell (part of this distribution), use
+You should then be able to access GNUnet using the shell:
$ gnunet-search KEYWORD
together with a description. To publish files on GNUnet, use the
"gnunet-publish" command.
-// FIXME: auto-share is not yet supported in 0.9.x
-In order to share files, the easiest way is to create a directory
-with the files (and directories) that you want to share and run
-$ nohup gnunet-auto-share NAME-OF-THE-DIRECTORY &
+The GTK user interface is shipped separately. After downloading and
+installing gnunet-gtk, you can invoke the GUI with:
+
+$ gnunet-gtk
For further documentation, see our webpage.
https://gnunet.org/bugs/.
-Running http on port 80
-=======================
+Running http on port 80 and https on port 443
+=============================================
-In order to hide GNUnet's HTTP traffic perfectly, you might consider
-running GNUnet's HTTP transport on port 80. However, we do not
-recommend running GNUnet as root. Instead, forward port 80 to say
-8080 with this command (as root, in your startup scripts):
+In order to hide GNUnet's HTTP/HTTPS traffic perfectly, you might
+consider running GNUnet's HTTP/HTTPS transport on port 80/443.
+However, we do not recommend running GNUnet as root. Instead, forward
+port 80 to say 8080 with this command (as root, in your startup
+scripts):
# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
-Then set in the HTTP section of gnunet.conf the "ADVERTISED-PORT"
-to "80" and "PORT" to 8080. You can do the same trick for the
-TCP and UDP transports if you want to map them to a priviledged
-port (from the point of view of the network).
+or for HTTPS
+# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 4433
-Running the SMTP transport
-==========================
+Then set in the HTTP section of gnunet.conf the "ADVERTISED-PORT" to
+"80" and "PORT" to 8080 and similarly in the HTTPS section the
+"ADVERTISED-PORT" to "443" and "PORT" to 4433.
-// NOTE: SMTP is not currently available in this version of GNUnet
-Running GNUnet over SMTP (e-mail) is a bit more involved. Note that
-you do not need to run all transports (only running the NAT transport
-is the only thing that will not work). If you really want to do
-P2P over SMTP, read the instructions at http://gnunet.org/smtp.php3
+You can do the same trick for the TCP and UDP transports if you want
+to map them to a priviledged port (from the point of view of the
+network). However, we are not aware of this providing any advantages
+at this point.
Stay tuned