diff options
Diffstat (limited to 'doc/handbook/chapters/installation.texi')
-rw-r--r-- | doc/handbook/chapters/installation.texi | 135 |
1 files changed, 93 insertions, 42 deletions
diff --git a/doc/handbook/chapters/installation.texi b/doc/handbook/chapters/installation.texi index a907a1046..ad848b4a0 100644 --- a/doc/handbook/chapters/installation.texi +++ b/doc/handbook/chapters/installation.texi | |||
@@ -12,9 +12,9 @@ package manager. | |||
12 | * Create @code{gnunet} user and group:: | 12 | * Create @code{gnunet} user and group:: |
13 | * Preparing and Compiling the Source Code:: | 13 | * Preparing and Compiling the Source Code:: |
14 | * Installation:: | 14 | * Installation:: |
15 | * MOVED FROM USER Checking the Installation:: | 15 | * Checking the Installation:: |
16 | * MOVED FROM USER The graphical configuration interface:: | 16 | * The graphical configuration interface:: |
17 | * MOVED FROM USER Config Leftovers:: | 17 | * Config Leftovers:: |
18 | @end menu | 18 | @end menu |
19 | 19 | ||
20 | @c ----------------------------------------------------------------------- | 20 | @c ----------------------------------------------------------------------- |
@@ -27,36 +27,54 @@ link to the project websites. | |||
27 | 27 | ||
28 | The mandatory libraries and applications are | 28 | The mandatory libraries and applications are |
29 | @itemize @bullet | 29 | @itemize @bullet |
30 | @item libtool | ||
31 | @item autoconf 2.59 or above | 30 | @item autoconf 2.59 or above |
32 | @item automake 1.11.1 or above | 31 | @item automake 1.11.1 or above |
33 | @item pkg-config | 32 | @item gettext |
33 | @item glibc (read below, other libcs should work) | ||
34 | @item gnutls 3.2.12 or above, recommended to be linked against libunbound | ||
35 | @item iptables (on Linux systems) | ||
36 | @item libtool 2.2 or above | ||
37 | @item libltdl (part of libtool) | ||
34 | @item libgcrypt 1.6 or above | 38 | @item libgcrypt 1.6 or above |
35 | @item libextractor | 39 | @item libextractor |
36 | @item libidn | 40 | @item libidn2 or libidn |
37 | @item libmicrohttpd 0.9.52 or above | 41 | @item libmicrohttpd 0.9.52 or above |
38 | @item libnss | ||
39 | @item libunistring | 42 | @item libunistring |
40 | @item gettext | ||
41 | @item glibc | ||
42 | @item libgmp | 43 | @item libgmp |
43 | @item gnutls | 44 | @item libgnurl or libcurl (libcurl has to be linked to GnuTLS) 7.35.0 or above |
44 | @item libcurl (has to be linked to GnuTLS) or libgnurl | 45 | @item Texinfo 5.2 or above (for building the documentation) |
46 | @item Texlive 2012 or above (for building the documentation, and for gnunet-bcd) | ||
47 | @item makeinfo 4.8 or above | ||
45 | @item zlib | 48 | @item zlib |
46 | @end itemize | 49 | @end itemize |
47 | 50 | ||
51 | Glibc is required for certain NSS features: | ||
52 | |||
53 | @example | ||
54 | One mechanism of integrating GNS with legacy applications via NSS is | ||
55 | not available if this is disabled. But applications that don't use the | ||
56 | glibc for NS resolution won't work anyway with this, so little is lost | ||
57 | on BSD systems. | ||
58 | GNS via direct use or via the HTTP or DNS proxies is unaffected. | ||
59 | @end example | ||
60 | |||
61 | Other libcs should work, the resulting builds just don't include the | ||
62 | glibc NSS specific code. One example is the build against NetBSD's libc | ||
63 | as detailed in @uref{https://bugs.gnunet.org/view.php?id=5605}. | ||
64 | |||
48 | In addition GNUnet needs one of of these three databases | 65 | In addition GNUnet needs one of of these three databases |
49 | @itemize @bullet | 66 | @itemize @bullet |
50 | @item sqlite + libsqlite (the default, requires no further configuration) | 67 | @item sqlite + libsqlite 3.8 or above (the default, requires no further configuration) |
51 | @item postgres + libpq | 68 | @item postgres + libpq |
52 | @item mysql + libmysqlclient | 69 | @item mysql + libmysqlclient |
53 | @end itemize | 70 | @end itemize |
54 | 71 | ||
55 | These are the dependencies only required for certain features | 72 | These are the dependencies only required for certain features |
56 | @itemize @bullet | 73 | @itemize @bullet |
57 | @item Texinfo (for building the documentation) | 74 | @item guile 1.6.4 for gnunet-download-manager |
58 | @item Texlive (for building the documentation) | ||
59 | @item miniupnpc (for traversing NAT boxes more reliably) | 75 | @item miniupnpc (for traversing NAT boxes more reliably) |
76 | @item libnss | ||
77 | @item libglpk 4.45 or above for experimental code | ||
60 | @item libopus (for running the GNUnet conversation telephony application) | 78 | @item libopus (for running the GNUnet conversation telephony application) |
61 | @item libpulse (for running the GNUnet conversation telephony application) | 79 | @item libpulse (for running the GNUnet conversation telephony application) |
62 | @item libogg (for running the GNUnet conversation telephony application) | 80 | @item libogg (for running the GNUnet conversation telephony application) |
@@ -65,6 +83,24 @@ These are the dependencies only required for certain features | |||
65 | (for attribute-based encryption and the identity provider subsystem) | 83 | (for attribute-based encryption and the identity provider subsystem) |
66 | @item libgabe | 84 | @item libgabe |
67 | (for attribute-based encryption and the identity provider subsystem) | 85 | (for attribute-based encryption and the identity provider subsystem) |
86 | @item texi2mdoc (for automatic mdoc generation) | ||
87 | @item perl5 for some utilities | ||
88 | @end itemize | ||
89 | |||
90 | These are the test suite requirements: | ||
91 | @itemize @bullet | ||
92 | @item python3.7 | ||
93 | @item gnunet (installation first) | ||
94 | @item which(1) | ||
95 | @item a shell (possibly Bash, maybe just POSIX sh) | ||
96 | @end itemize | ||
97 | |||
98 | These are runtime requirements: | ||
99 | @itemize @bullet | ||
100 | @item nss (the certutil binary, for gnunet-gns-proxy-setup-ca) | ||
101 | @item openssl (openssl binary, for gnunet-gns-proxy-setup-ca) | ||
102 | @item python2.7 for gnunet-qr (at the moment only python2.7 supported) | ||
103 | @item python-zbar 0.10 or above for gnunet-qr | ||
68 | @end itemize | 104 | @end itemize |
69 | 105 | ||
70 | @c ----------------------------------------------------------------------- | 106 | @c ----------------------------------------------------------------------- |
@@ -82,7 +118,7 @@ The archive can be found at | |||
82 | @uref{https://ftpmirror.gnu.org/gnu/gnunet/}. Extract it using a graphical | 118 | @uref{https://ftpmirror.gnu.org/gnu/gnunet/}. Extract it using a graphical |
83 | archive tool or @code{tar}: | 119 | archive tool or @code{tar}: |
84 | @example | 120 | @example |
85 | tar xzvf gnunet-0.11.0pre66.tar.gz | 121 | tar xzvf gnunet-@value{VERSION}.tar.gz |
86 | @end example | 122 | @end example |
87 | 123 | ||
88 | In the next chapter we will assume that the source code is available | 124 | In the next chapter we will assume that the source code is available |
@@ -116,17 +152,24 @@ running @code{configure} the following options can be specified to | |||
116 | customize the compilation and installation process: | 152 | customize the compilation and installation process: |
117 | 153 | ||
118 | @itemize @bullet | 154 | @itemize @bullet |
119 | @item @code{--disable-documentation} - don't build the configuration documents | 155 | @item @code{--disable-documentation} - don't build the documentation |
120 | @item @code{--enable-looging=[LOGLEVEL]} - choose a loglevel (@code{debug}, @code{info}, @code{warning} or @code{error}) | 156 | @item @code{--enable-looging=[LOGLEVEL]} - choose a loglevel (@code{debug}, @code{info}, @code{warning} or @code{error}) |
121 | @item @code{--prefix=[PATH]} - the directory where the GNUnet libraries and binaries will be installed | 157 | @item @code{--prefix=[PATH]} - the directory where the GNUnet libraries and binaries will be installed |
122 | @item @code{--with-extractor=[PATH]} - the path to libextractor | 158 | @item @code{--with-extractor=[PATH]} - the path to libextractor |
123 | @item @code{--with-libidn=[PATH]} - the path to libidn | 159 | @item @code{--with-libidn=[PATH]} - the path to libidn |
160 | @item @code{--with-libidn2=[PATH]} - the path to libidn2 (takes priority over libidn if both are found) | ||
124 | @item @code{--with-microhttpd=[PATH]} - the path to libmicrohttpd | 161 | @item @code{--with-microhttpd=[PATH]} - the path to libmicrohttpd |
125 | @item @code{--with-sqlite=[PATH]} - the path to libsqlite | 162 | @item @code{--with-sqlite=[PATH]} - the path to libsqlite |
126 | @item @code{--with-zlib=[PATH]} - the path to zlib | 163 | @item @code{--with-zlib=[PATH]} - the path to zlib |
127 | @item @code{--with-sudo=[PATH]} - path to the sudo binary (no need to run @code{make install} as root if specified) | 164 | @item @code{--with-sudo=[PATH]} - path to the sudo binary (no need to run @code{make install} as root if specified) |
128 | @end itemize | 165 | @end itemize |
129 | 166 | ||
167 | Note that the list above is not always up to date and you | ||
168 | should check the output of @code{./configure --help}, read | ||
169 | the @file{configure.ac} or send an email asking for assistance | ||
170 | if you are in doubt of any configure options or require fixes | ||
171 | for your operating system. | ||
172 | |||
130 | The following example configures the installation prefix | 173 | The following example configures the installation prefix |
131 | @code{/usr/lib} and disables building the documentation | 174 | @code{/usr/lib} and disables building the documentation |
132 | @example | 175 | @example |
@@ -216,9 +259,9 @@ PLUGINS = tcp | |||
216 | 259 | ||
217 | 260 | ||
218 | 261 | ||
219 | @node MOVED FROM USER Checking the Installation | 262 | @node Checking the Installation |
220 | @section MOVED FROM USER Checking the Installation | 263 | @section Checking the Installation |
221 | @c %**end of header | 264 | |
222 | 265 | ||
223 | This section describes a quick, casual way to check if your GNUnet | 266 | This section describes a quick, casual way to check if your GNUnet |
224 | installation works. However, if it does not, we do not cover | 267 | installation works. However, if it does not, we do not cover |
@@ -240,7 +283,7 @@ as part of this handbook!. | |||
240 | @cindex GTK user interface | 283 | @cindex GTK user interface |
241 | @node gnunet-gtk | 284 | @node gnunet-gtk |
242 | @subsection gnunet-gtk | 285 | @subsection gnunet-gtk |
243 | @c %**end of header | 286 | |
244 | 287 | ||
245 | The @command{gnunet-gtk} package contains several graphical | 288 | The @command{gnunet-gtk} package contains several graphical |
246 | user interfaces for the respective GNUnet applications. | 289 | user interfaces for the respective GNUnet applications. |
@@ -251,17 +294,24 @@ Currently these interfaces cover: | |||
251 | @item Peer Information | 294 | @item Peer Information |
252 | @item GNU Name System | 295 | @item GNU Name System |
253 | @item File Sharing | 296 | @item File Sharing |
254 | @item Identity Management | ||
255 | @item Conversation | 297 | @item Conversation |
298 | @item Setup | ||
256 | @end itemize | 299 | @end itemize |
257 | 300 | ||
301 | Previously, many of these interfaces were combined into one application | ||
302 | called @command{gnunet-gtk}, with different tabs for each interface. This | ||
303 | combined application has been removed in version 0.11.0, but each of the | ||
304 | interfaces is still available as a standalone application | ||
305 | (@command{gnunet-statistics-gtk} for statistics, @command{gnunet-fs-gtk} | ||
306 | for filesharing, etc). | ||
307 | |||
258 | @node Statistics | 308 | @node Statistics |
259 | @subsection Statistics | 309 | @subsection Statistics |
260 | @c %**end of header | 310 | |
261 | 311 | ||
262 | We assume that you have started gnunet via @code{gnunet-arm} or via your | 312 | We assume that you have started gnunet via @code{gnunet-arm} or via your |
263 | system-provided method for starting services. | 313 | system-provided method for starting services. |
264 | First, you should launch GNUnet gtk. | 314 | First, you should launch GNUnet's graphical statistics interface. |
265 | You can do this from the command-line by typing | 315 | You can do this from the command-line by typing |
266 | 316 | ||
267 | @example | 317 | @example |
@@ -274,7 +324,7 @@ least if your peer has been running for more than a few seconds). The | |||
274 | lines indicate how many other peers your peer is connected to (via | 324 | lines indicate how many other peers your peer is connected to (via |
275 | different mechanisms) and how large the entire overlay network is | 325 | different mechanisms) and how large the entire overlay network is |
276 | currently estimated to be. The X-axis represents time (in seconds | 326 | currently estimated to be. The X-axis represents time (in seconds |
277 | since the start of @command{gnunet-gtk}). | 327 | since the start of @command{gnunet-statistics-gtk}). |
278 | 328 | ||
279 | You can click on "Traffic" to see information about the amount of | 329 | You can click on "Traffic" to see information about the amount of |
280 | bandwidth your peer has consumed, and on "Storage" to check the amount | 330 | bandwidth your peer has consumed, and on "Storage" to check the amount |
@@ -290,10 +340,10 @@ whatever it is you are looking at the Gtk+ interface describes a | |||
290 | 340 | ||
291 | @node Peer Information | 341 | @node Peer Information |
292 | @subsection Peer Information | 342 | @subsection Peer Information |
293 | @c %**end of header | ||
294 | 343 | ||
295 | First, you should launch the graphical user interface. You can do | 344 | |
296 | this from the command-line by typing | 345 | First, you should launch the peer information graphical user interface. |
346 | You can do this from the command-line by typing | ||
297 | 347 | ||
298 | @example | 348 | @example |
299 | $ gnunet-peerinfo-gtk | 349 | $ gnunet-peerinfo-gtk |
@@ -310,8 +360,8 @@ configuration. | |||
310 | 360 | ||
311 | @c NOTE: Inserted from Installation Handbook in original ``order'': | 361 | @c NOTE: Inserted from Installation Handbook in original ``order'': |
312 | @c FIXME: Move this to User Handbook. | 362 | @c FIXME: Move this to User Handbook. |
313 | @node MOVED FROM USER The graphical configuration interface | 363 | @node The graphical configuration interface |
314 | @section MOVED FROM USER The graphical configuration interface | 364 | @section The graphical configuration interface |
315 | 365 | ||
316 | If you also would like to use @command{gnunet-gtk} and | 366 | If you also would like to use @command{gnunet-gtk} and |
317 | @command{gnunet-setup} (highly recommended for beginners), do: | 367 | @command{gnunet-setup} (highly recommended for beginners), do: |
@@ -347,7 +397,7 @@ If you also would like to use @command{gnunet-gtk} and | |||
347 | * Configuring the GNUnet VPN:: | 397 | * Configuring the GNUnet VPN:: |
348 | * Bandwidth Configuration:: | 398 | * Bandwidth Configuration:: |
349 | * Configuring NAT:: | 399 | * Configuring NAT:: |
350 | * Peer configuration for distributions:: | 400 | * Peer configuration for distributors (e.g. Operating Systems):: |
351 | @end menu | 401 | @end menu |
352 | 402 | ||
353 | @node Configuring your peer | 403 | @node Configuring your peer |
@@ -358,7 +408,7 @@ This chapter will describe the various configuration options in GNUnet. | |||
358 | The easiest way to configure your peer is to use the | 408 | The easiest way to configure your peer is to use the |
359 | @command{gnunet-setup} tool. | 409 | @command{gnunet-setup} tool. |
360 | @command{gnunet-setup} is part of the @command{gnunet-gtk} | 410 | @command{gnunet-setup} is part of the @command{gnunet-gtk} |
361 | application. You might have to install it separately. | 411 | package. You might have to install it separately. |
362 | 412 | ||
363 | Many of the specific sections from this chapter actually are linked from | 413 | Many of the specific sections from this chapter actually are linked from |
364 | within @command{gnunet-setup} to help you while using the setup tool. | 414 | within @command{gnunet-setup} to help you while using the setup tool. |
@@ -837,7 +887,7 @@ a @code{gn090} table here, it probably works. | |||
837 | 887 | ||
838 | @node Configuring the datacache | 888 | @node Configuring the datacache |
839 | @subsection Configuring the datacache | 889 | @subsection Configuring the datacache |
840 | @c %**end of header | 890 | |
841 | 891 | ||
842 | The datacache is what GNUnet uses for storing temporary data. This data is | 892 | The datacache is what GNUnet uses for storing temporary data. This data is |
843 | expected to be wiped completely each time GNUnet is restarted (or the | 893 | expected to be wiped completely each time GNUnet is restarted (or the |
@@ -889,7 +939,8 @@ strength of the adversary). | |||
889 | @node Configuring logging | 939 | @node Configuring logging |
890 | @subsection Configuring logging | 940 | @subsection Configuring logging |
891 | 941 | ||
892 | Logging in GNUnet 0.9.0 is controlled via the "-L" and "-l" options. | 942 | Since version 0.9.0, logging in GNUnet is controlled via the |
943 | @code{-L} and @code{-l} options. | ||
893 | Using @code{-L}, a log level can be specified. With log level | 944 | Using @code{-L}, a log level can be specified. With log level |
894 | @code{ERROR} only serious errors are logged. | 945 | @code{ERROR} only serious errors are logged. |
895 | The default log level is @code{WARNING} which causes anything of | 946 | The default log level is @code{WARNING} which causes anything of |
@@ -1765,7 +1816,7 @@ The other options as shown on the gnunet-setup tool are: | |||
1765 | @node IPv4 address for interface | 1816 | @node IPv4 address for interface |
1766 | @subsubsection IPv4 address for interface | 1817 | @subsubsection IPv4 address for interface |
1767 | 1818 | ||
1768 | This is the IPv4 address the VPN interface will get. You should pick an | 1819 | This is the IPv4 address the VPN interface will get. You should pick a |
1769 | 'private' IPv4 network that is not yet in use for you system. For example, | 1820 | 'private' IPv4 network that is not yet in use for you system. For example, |
1770 | if you use @code{10.0.0.1/255.255.0.0} already, you might use | 1821 | if you use @code{10.0.0.1/255.255.0.0} already, you might use |
1771 | @code{10.1.0.1/255.255.0.0}. | 1822 | @code{10.1.0.1/255.255.0.0}. |
@@ -1920,29 +1971,29 @@ connect to NATed peers using autonomous NAT traversal, you need to check | |||
1920 | the "Enable connecting to NATed peers using ICMP method" box. | 1971 | the "Enable connecting to NATed peers using ICMP method" box. |
1921 | 1972 | ||
1922 | 1973 | ||
1923 | @node Peer configuration for distributions | 1974 | @node Peer configuration for distributors (e.g. Operating Systems) |
1924 | @subsection Peer configuration for distributions | 1975 | @subsection Peer configuration for distributors (e.g. Operating Systems) |
1925 | 1976 | ||
1926 | The "GNUNET_DATA_HOME" in "[path]" in @file{/etc/gnunet.conf} should be | 1977 | The "GNUNET_DATA_HOME" in "[path]" in @file{/etc/gnunet.conf} should be |
1927 | manually set to "/var/lib/gnunet/data/" as the default | 1978 | manually set to "/var/lib/gnunet/data/" as the default |
1928 | "~/.local/share/gnunet/" is probably not that appropriate in this case. | 1979 | "~/.local/share/gnunet/" is probably not that appropriate in this case. |
1929 | Similarly, distributions may consider pointing "GNUNET_RUNTIME_DIR" to | 1980 | Similarly, distributors may consider pointing "GNUNET_RUNTIME_DIR" to |
1930 | "/var/run/gnunet/" and "GNUNET_HOME" to "/var/lib/gnunet/". Also, should a | 1981 | "/var/run/gnunet/" and "GNUNET_HOME" to "/var/lib/gnunet/". Also, should a |
1931 | distribution decide to override system defaults, all of these changes | 1982 | distributor decide to override system defaults, all of these changes |
1932 | should be done in a custom @file{/etc/gnunet.conf} and not in the files | 1983 | should be done in a custom @file{/etc/gnunet.conf} and not in the files |
1933 | in the @file{config.d/} directory. | 1984 | in the @file{config.d/} directory. |
1934 | 1985 | ||
1935 | Given the proposed access permissions, the "gnunet-setup" tool must be | 1986 | Given the proposed access permissions, the "gnunet-setup" tool must be |
1936 | run as use "gnunet" (and with option "-c /etc/gnunet.conf" so that it | 1987 | run as use "gnunet" (and with option "-c /etc/gnunet.conf" so that it |
1937 | modifies the system configuration). As always, gnunet-setup should be run | 1988 | modifies the system configuration). As always, gnunet-setup should be run |
1938 | after the GNUnet peer was stopped using "gnunet-arm -e". Distributions | 1989 | after the GNUnet peer was stopped using "gnunet-arm -e". Distributors |
1939 | might want to include a wrapper for gnunet-setup that allows the | 1990 | might want to include a wrapper for gnunet-setup that allows the |
1940 | desktop-user to "sudo" (i.e. using gtksudo) to the "gnunet" user account | 1991 | desktop-user to "sudo" (i.e. using gtksudo) to the "gnunet" user account |
1941 | and then runs "gnunet-arm -e", "gnunet-setup" and "gnunet-arm -s" in | 1992 | and then runs "gnunet-arm -e", "gnunet-setup" and "gnunet-arm -s" in |
1942 | sequence. | 1993 | sequence. |
1943 | 1994 | ||
1944 | @node MOVED FROM USER Config Leftovers | 1995 | @node Config Leftovers |
1945 | @section MOVED FROM USER Config Leftovers | 1996 | @section Config Leftovers |
1946 | 1997 | ||
1947 | This section describes how to start a GNUnet peer. It assumes that you | 1998 | This section describes how to start a GNUnet peer. It assumes that you |
1948 | have already compiled and installed GNUnet and its' dependencies. | 1999 | have already compiled and installed GNUnet and its' dependencies. |
@@ -2201,7 +2252,7 @@ However, as TCP is generally less efficient and it is rarely the case | |||
2201 | that a single GNUnet peer is supposed to serve an entire local network, | 2252 | that a single GNUnet peer is supposed to serve an entire local network, |
2202 | the default configuration should disable TCP access to all GNUnet | 2253 | the default configuration should disable TCP access to all GNUnet |
2203 | services on systems with support for UNIX domain sockets. | 2254 | services on systems with support for UNIX domain sockets. |
2204 | As of GNUnet 0.9.2, configuration files with TCP access disabled should be | 2255 | Since GNUnet 0.9.2, configuration files with TCP access disabled should be |
2205 | generated by default. Users can re-enable TCP access to particular | 2256 | generated by default. Users can re-enable TCP access to particular |
2206 | services simply by specifying a non-zero port number in the section of | 2257 | services simply by specifying a non-zero port number in the section of |
2207 | the respective service. | 2258 | the respective service. |