X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=README;h=9066189d031e99e288586fcac518b499458e86c1;hb=87566df009e48391b08d3f1cdf3dedf7debcac7b;hp=3f4dff7ad0a12a5c788968c37f84672595113f84;hpb=657ca4de06f6c8d4e48b766f03264ac39f55c817;p=oweals%2Fgnunet.git diff --git a/README b/README index 3f4dff7ad..9066189d0 100644 --- a/README +++ b/README @@ -31,8 +31,9 @@ These are the direct dependencies for running GNUnet: - libextractor >= 0.6.1 - libmicrohttpd >= 0.9.18 - libgcrypt >= 1.2 -- libcurl >= 7.21.0 +- libcurl >= 7.21.3 - libunistring >= 0.9.2 +- gnutls >= 2.12.0 - libltdl >= 2.2 (part of GNU libtool) - sqlite >= 3.0 (default database) - mysql >= 5.1 (alternative to sqLite) @@ -67,42 +68,54 @@ If you install from source, you need to install GNU libextractor first (download from http://www.gnu.org/software/libextractor/). We also recommend installing GNU libmicrohttpd (download from http://www.gnu.org/software/libmicrohttpd/). Then you can start the -actual GNUnet compilation process with: +actual GNUnet compilation and installation process with: -$ ./configure --prefix=$HOME --with-extractor=$HOME +$ export GNUNET_PREFIX=/usr/local # or other directory of your choice +$ addgroup gnunetdns +$ adduser gnunet gnunet +$ ./configure --prefix=$GNUNET_PREFIX --with-extractor=$LE_PREFIX $ make # make install -# sudo -u gnunet mkdir ~/.gnunet/ -# sudo -u gnunet touch ~/.gnunet/gnunet.conf +# sudo -u gnunet mkdir ~gnunet/.gnunet/ +# sudo -u gnunet touch ~gnunet/.gnunet/gnunet.conf # sudo -u gnunet gnunet-arm -s -This will compile and install GNUnet to $HOME/bin/, $HOME/lib/ and -$HOME/share/ and start the system with the default configuration. It -is recommended that you add a user "gnunet" to run "gnunet-arm". You -can then still run the end-user applications as another user. If you -create a user "gnunet", it is recommended that you edit the -configuration file slightly so that data can be stored in -"/var/lib/gnunet"; you may also want to use "/etc/gnunet.conf" for the -location of the configuration file in this case. +This will create the users and groups needed for running GNUnet +securely and then compile and install GNUnet to $GNUNET_PREFIX/bin/, +$GNUNET_PREFIX/lib/ and $GNUNET_PREFIX/share/ and start the system +with the default configuration. It is strongly recommended that you +add a user "gnunet" to run "gnunet-arm". You can then still run the +end-user applications as another user. + +If you create a system user "gnunet", it is recommended that you edit +the configuration file slightly so that data can be stored in the +system user home directory at "/var/lib/gnunet"; you may also want to +use "/etc/gnunet.conf" for the location of the configuration file in +this case. You can avoid running 'make install' as root if you run configure with the "--with-sudo=yes" option and have extensive sudo rights -(can run chmod +s and chown via sudo). If you run 'make install' +(can run "chmod +s" and "chown" via 'sudo'). If you run 'make install' as a normal user without sudo rights (or the configure option), certain binaries that require additional priviledges will not be -installed properly (and NAT traversal, WLAN and VPN will not work). - -Note that additional, per-user configuration files -(~/.gnunet/gnunet.conf) need to be created by each user (for example, -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 -running of ". bootstrap" that looks like "macro `AM_PATH_GTK' not +installed properly (and autonomous NAT traversal, WLAN, DNS/GNS and +the VPN will then not work). + +If you run 'configure' and 'make install' as root or use the SUDO +option, GNUnet's build system will install "libnss_gns*" libraries to +"/lib/" regardless (!) of the $GNUNET_PREFIX you might have specified, +as those libraries must be in "/lib/". If you are packaging GNUnet +for binary distribution, this may cause your packaging script to miss +those plugins, so you might need to do some additional manual work to +include those libraries in your binary package(s). Similarly, if you +want to use the GNUnet naming system and did NOT run GNUnet's 'make +install' process with SUDO rights, the libraries will be installed to +"$GNUNET_PREFIX/lib" and you will have to move them to "/lib/" +manually. + +Finally, if you are compiling the code from subversion, you have to +run ". bootstrap" before ./configure. If you receive an error during +the running of ". bootstrap" that looks like "macro `AM_PATH_GTK' not found in library", you may need to run aclocal by hand with the -I option, pointing to your aclocal m4 macros, i.e. @@ -112,13 +125,21 @@ $ aclocal -I /usr/local/share/aclocal Configuration ============= +Note that additional, per-user configuration files +(~/.gnunet/gnunet.conf) need to be created by each user (for example, +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. + GNUnet uses two types of configuration files, one that specifies the -system-wide defaults (typically located in /usr/share/gnunet/defaults -.conf) and a second one that overrides default values with -user-specific preferences. The user-specific configuration file -should be located in "~/.gnunet/gnunet.conf" or its location can be -specified by giving the "-c" option to the respective GNUnet -application. +system-wide defaults (typically located in +$GNUNET_PREFIX/share/gnunet/config.d/) and a second one that overrides +default values with user-specific preferences. The user-specific +configuration file should be located in "~/.gnunet/gnunet.conf" or its +location can be specified by giving the "-c" option to the respective +GNUnet application. The defaults that are shipped with the installation are usually ok, you may want to adjust the limitations (space consumption, bandwidth, @@ -168,9 +189,11 @@ together with a description. To publish files on GNUnet, use the The GTK user interface is shipped separately. After downloading and -installing gnunet-gtk, you can invoke the GUI with: +installing gnunet-gtk, you can invoke the setup tool and the +file-sharing GUI with: -$ gnunet-gtk +$ gnunet-setup +$ gnunet-fs-gtk For further documentation, see our webpage. @@ -211,18 +234,18 @@ Running http on port 80 and https on port 443 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 +port 80 to say 1080 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 +# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 1080 or for HTTPS # iptables -t nat -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 4433 -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. +Then set in the HTTP section of gnunet.conf the "ADVERTISED_PORT" to +"80" and "PORT" to 1080 and similarly in the HTTPS section the +"ADVERTISED_PORT" to "443" and "PORT" to 4433. 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