aboutsummaryrefslogtreecommitdiff
path: root/doc/documentation/chapters/installation.texi
diff options
context:
space:
mode:
authorng0 <ng0@infotropique.org>2017-10-23 05:41:51 +0000
committerng0 <ng0@infotropique.org>2017-10-23 05:41:51 +0000
commitf2dd3eaecc255de67380fc08f76d154218f32005 (patch)
treeb66d3c05beb4075c213c28901b76ca197451a5ac /doc/documentation/chapters/installation.texi
parentc02983a96730439a6d9ff05dd9eb054750771ea4 (diff)
downloadgnunet-f2dd3eaecc255de67380fc08f76d154218f32005.tar.gz
gnunet-f2dd3eaecc255de67380fc08f76d154218f32005.zip
installation.texi
Diffstat (limited to 'doc/documentation/chapters/installation.texi')
-rw-r--r--doc/documentation/chapters/installation.texi256
1 files changed, 148 insertions, 108 deletions
diff --git a/doc/documentation/chapters/installation.texi b/doc/documentation/chapters/installation.texi
index c12a188fc..7fa03152e 100644
--- a/doc/documentation/chapters/installation.texi
+++ b/doc/documentation/chapters/installation.texi
@@ -220,11 +220,14 @@ Please note that in the code instructions for the installation,
220@node Generic installation instructions 220@node Generic installation instructions
221@section Generic installation instructions 221@section Generic installation instructions
222 222
223First, in addition to the GNUnet sources you must download the latest version 223First, in addition to the GNUnet sources you might require downloading the
224of various dependencies. Most distributions do not include sufficiently recent 224latest version of various dependencies, depending on how recent the
225versions of these dependencies. Thus, a typically installation on a "modern" 225software versions in your distribution of GNU/Linux are.
226GNU/Linux distribution requires you to install the following 226Most distributions do not include sufficiently recent versions of these
227dependencies (ideally in this order): 227dependencies.
228Thus, a typically installation on a "modern" GNU/Linux distribution
229requires you to install the following dependencies (ideally in this
230order):
228 231
229@itemize @bullet 232@itemize @bullet
230@item libgpgerror and libgcrypt 233@item libgpgerror and libgcrypt
@@ -238,19 +241,26 @@ Make sure to first install the various mandatory and optional
238dependencies including development headers from your distribution. 241dependencies including development headers from your distribution.
239 242
240Other dependencies that you should strongly consider to install is a 243Other dependencies that you should strongly consider to install is a
241database (MySQL, sqlite or Postgres). The following instructions will assume 244database (MySQL, sqlite or Postgres).
242that you installed at least sqlite. For most distributions you should be able 245The following instructions will assume that you installed at least sqlite.
243to find pre-build packages for the database. Again, make sure to install the 246For most distributions you should be able to find pre-build packages for
244client libraries and the respective development headers (if they are 247the database. Again, make sure to install the client libraries and the
245packaged separately) as well. 248respective development headers (if they are packaged separately) as well.
246 249
247You can find specific, detailed instructions for installing of the dependencies 250You can find specific, detailed instructions for installing of the
248(and possibly the rest of the GNUnet installation) in the platform-specific 251dependencies (and possibly the rest of the GNUnet installation) in the
249descriptions, which are linked from the bottom of this page. Please consult 252platform-specific descriptions, which can be found in the Index.
250them now. If your distribution is not listed, please study the instructions for 253Please consult them now.
251Debian stable carefully as you try to install the dependencies for your own 254If your distribution is not listed, please study the instructions for
252distribution. Contributing additional instructions for further platforms is 255Debian stable carefully as you try to install the dependencies for your
253always appreciated. 256own distribution.
257Contributing additional instructions for further platforms is always
258appreciated.
259Please take in mind that operating system development tends to move at
260a rather fast speed. Due to this you should be aware that some of
261the instructionss could be outdated by the time you are reading this.
262If you find a mistake, please tell us about it (or even better: send
263a patch to the documentation to fix it!).
254 264
255Before proceeding further, please double-check the dependency list. 265Before proceeding further, please double-check the dependency list.
256Note that in addition to satisfying the dependencies, you might have to 266Note that in addition to satisfying the dependencies, you might have to
@@ -259,10 +269,11 @@ installed.
259There maybe files for other distributions, or you might be able to find 269There maybe files for other distributions, or you might be able to find
260equivalent packages for your distribution. 270equivalent packages for your distribution.
261 271
262While it is possible to build and install GNUnet without having root access, 272While it is possible to build and install GNUnet without having root
263we will assume that you have full control over your system in these 273access, we will assume that you have full control over your system in
264instructions. First, you should create a system user @emph{gnunet} and 274these instructions.
265an additional group @emph{gnunetdns}. On Debian and Ubuntu GNU/Linux, type: 275First, you should create a system user @emph{gnunet} and an additional
276group @emph{gnunetdns}. On Debian and Ubuntu GNU/Linux, type:
266 277
267@example 278@example
268# adduser --system --home /var/lib/gnunet --group \ 279# adduser --system --home /var/lib/gnunet --group \
@@ -270,6 +281,7 @@ an additional group @emph{gnunetdns}. On Debian and Ubuntu GNU/Linux, type:
270# addgroup --system gnunetdns 281# addgroup --system gnunetdns
271@end example 282@end example
272 283
284@noindent
273On other Unixes, this should have the same effect: 285On other Unixes, this should have the same effect:
274 286
275@example 287@example
@@ -288,7 +300,8 @@ $ sudo make install
288@end example 300@end example
289 301
290If you want to be able to enable DEBUG-level log messages, add 302If you want to be able to enable DEBUG-level log messages, add
291@code{--enable-logging=verbose} to the end of the @code{./configure} command. 303@code{--enable-logging=verbose} to the end of the
304@code{./configure} command.
292DEBUG-level log messages are in English-only and should only be useful for 305DEBUG-level log messages are in English-only and should only be useful for
293developers (or for filing really detailed bug reports). 306developers (or for filing really detailed bug reports).
294 307
@@ -306,6 +319,7 @@ $ cd ..
306$ sudo ldconfig # just to be safe 319$ sudo ldconfig # just to be safe
307@end example 320@end example
308 321
322@noindent
309Next, edit the file @file{/etc/gnunet.conf} to contain the following: 323Next, edit the file @file{/etc/gnunet.conf} to contain the following:
310 324
311@example 325@example
@@ -314,9 +328,15 @@ SYSTEM_ONLY = YES
314USER_ONLY = NO 328USER_ONLY = NO
315@end example 329@end example
316 330
331@noindent
317You may need to update your ld.so cache to include files installed in 332You may need to update your ld.so cache to include files installed in
318@file{/usr/local/lib}: @code{ # ldconfig }. 333@file{/usr/local/lib}:
319 334
335@example
336# ldconfig
337@end example
338
339@noindent
320Then, switch from user root to user gnunet to start the peer: 340Then, switch from user root to user gnunet to start the peer:
321 341
322@example 342@example
@@ -325,17 +345,24 @@ $ gnunet-arm -c /etc/gnunet.conf -s
325@end example 345@end example
326 346
327You may also want to add the last line in the gnunet users @file{crontab} 347You may also want to add the last line in the gnunet users @file{crontab}
328prefixed with @code{@@reboot} so that it is executed whenever the system is 348prefixed with @code{@@reboot} so that it is executed whenever the system
329booted: 349is booted:
330 350
331@example 351@example
332@@reboot /usr/local/bin/gnunet-arm -c /etc/gnunet.conf -s@ 352@@reboot /usr/local/bin/gnunet-arm -c /etc/gnunet.conf -s@
333@end example 353@end example
334 354
335This will only start the system-wide GNUnet services. Type exit to get back 355@noindent
336your root shell. Now, you need to configure the per-user part. For each 356This will only start the system-wide GNUnet services.
337$USER on the system, run: @code{ # adduser $USER gnunet }. 357Type exit to get back your root shell.
358Now, you need to configure the per-user part. For each
359$USER on the system, run:
338 360
361@example
362# adduser $USER gnunet
363@end example
364
365@noindent
339to allow them to access the system-wide GNUnet services. Then, each 366to allow them to access the system-wide GNUnet services. Then, each
340user should create a configuration file @file{~/.config/gnunet.conf} 367user should create a configuration file @file{~/.config/gnunet.conf}
341with the lines: 368with the lines:
@@ -347,39 +374,45 @@ USER_ONLY = YES
347DEFAULTSERVICES = gns 374DEFAULTSERVICES = gns
348@end example 375@end example
349 376
377@noindent
350and start the per-user services using 378and start the per-user services using
351 379
352@code{@ 380@example
353 $ gnunet-arm -c ~/.config/gnunet.conf -s@ 381$ gnunet-arm -c ~/.config/gnunet.conf -s
354}@ 382@end example
355 383
356Again, adding a @code{crontab} entry to autostart the peer is advised:@ 384@noindent
357@code{@ 385Again, adding a @code{crontab} entry to autostart the peer is advised:
358@@reboot /usr/local/bin/gnunet-arm -c $HOME/.config/gnunet.conf -s@
359}@
360 386
361Note that some GNUnet services (such as SOCKS5 proxies) may need a system-wide 387@example
362TCP port for each user. For those services, systems with more than one user may 388@@reboot /usr/local/bin/gnunet-arm -c $HOME/.config/gnunet.conf -s
363require each user to specify a different port number in their personal 389@end example
364configuration file. 390
391@noindent
392Note that some GNUnet services (such as SOCKS5 proxies) may need a
393system-wide TCP port for each user.
394For those services, systems with more than one user may require each user
395to specify a different port number in their personal configuration file.
365 396
366Finally, the user should perform the basic initial setup for the GNU Name 397Finally, the user should perform the basic initial setup for the GNU Name
367System. This is done by running two commands:@ 398System. This is done by running two commands:
368 399
369@example 400@example
370$ gnunet-gns-import.sh@ 401$ gnunet-gns-import.sh
371$ gnunet-gns-proxy-setup-ca@ 402$ gnunet-gns-proxy-setup-ca
372@end example 403@end example
373 404
405@noindent
374The first generates the default zones, wheras the second setups the GNS 406The first generates the default zones, wheras the second setups the GNS
375Certificate Authority with the user's browser. Now, to actiave GNS in the 407Certificate Authority with the user's browser. Now, to actiave GNS in the
376normal DNS resolution process, you need to edit your @file{/etc/nsswitch.conf} 408normal DNS resolution process, you need to edit your
377where you should find a line like this: 409@file{/etc/nsswitch.conf} where you should find a line like this:
410
378@example 411@example
379hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 412hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
380@end example 413@end example
381 414
382 415@noindent
383The exact details may differ a bit, which is fine. Add the text 416The exact details may differ a bit, which is fine. Add the text
384@emph{"gns [NOTFOUND=return]"} after @emph{"files"}: 417@emph{"gns [NOTFOUND=return]"} after @emph{"files"}:
385 418
@@ -388,8 +421,8 @@ hosts: files gns [NOTFOUND=return] mdns4_minimal [NOTFOUND=return] dns mdns4
388@end example 421@end example
389 422
390 423
391You might want to make sure that @file{/lib/libnss_gns.so.2} exists on your 424You might want to make sure that @file{/lib/libnss_gns.so.2} exists on
392system, it should have been created during the installation. 425your system, it should have been created during the installation.
393 426
394 427
395 428
@@ -579,8 +612,8 @@ $ sudo apt-get install libpq-dev postgresql
579@node Configuring the installation path 612@node Configuring the installation path
580@subsubsection Configuring the installation path 613@subsubsection Configuring the installation path
581 614
582You can specify the location of the GNUnet installation by setting the prefix 615You can specify the location of the GNUnet installation by setting the
583when calling the configure script with @code{--prefix=DIRECTORY} 616prefix when calling the configure script with @code{--prefix=DIRECTORY}
584 617
585@example 618@example
586$ export PATH=$PATH:DIRECTORY/bin 619$ export PATH=$PATH:DIRECTORY/bin
@@ -681,25 +714,26 @@ $ make; sudo make install
681@subsection Introduction to building on MS Windows 714@subsection Introduction to building on MS Windows
682 715
683 716
684This document is a guide to building GNUnet and its dependencies on Windows 717This document is a guide to building GNUnet and its dependencies on
685platforms. GNUnet development is mostly done under Linux and especially SVN 718Windows platforms. GNUnet development is mostly done under Linux and
686checkouts may not build out of the box. We regret any inconvenience, and 719especially SVN checkouts may not build out of the box.
687if you have problems, please report them. 720We regret any inconvenience, and if you have problems, please report them.
688 721
689@node Requirements 722@node Requirements
690@subsection Requirements 723@subsection Requirements
691 724
692The Howto is based upon a @strong{Windows Server 2008 32bit@strong{ 725The Howto is based upon a @strong{Windows Server 2008 32bit}
693Installation, @strong{sbuild} and thus a @uref{http://www.mingw.org/wiki/MSYS, 726@strong{Installation}, @strong{sbuild} and thus a
694MSYS+MinGW} (W32-GCC-Compiler-Suite + Unix-like Userland) installation. sbuild 727@uref{http://www.mingw.org/wiki/MSYS, MSYS+MinGW}
695is a convenient set of scripts which creates a working msys/mingw installation 728(W32-GCC-Compiler-Suite + Unix-like Userland) installation. sbuild
696and installs most dependencies required for GNUnet. }} 729is a convenient set of scripts which creates a working msys/mingw
730installation and installs most dependencies required for GNUnet.
697 731
698As of the point of the creation of this Howto, GNUnet @strong{requires} a 732As of the point of the creation of this Howto, GNUnet @strong{requires} a
699Windows @strong{Server} 2003 or newer for full feature support. Windows Vista 733Windows @strong{Server} 2003 or newer for full feature support.
700and later will also work, but 734Windows Vista and later will also work, but
701@strong{non-server version can not run a VPN-Exit-Node} as the NAT features 735@strong{non-server version can not run a VPN-Exit-Node} as the NAT
702have been removed as of Windows Vista. 736features have been removed as of Windows Vista.
703 737
704@node Dependencies & Initial Setup 738@node Dependencies & Initial Setup
705@subsection Dependencies & Initial Setup 739@subsection Dependencies & Initial Setup
@@ -708,45 +742,49 @@ have been removed as of Windows Vista.
708@itemize @bullet 742@itemize @bullet
709 743
710@item 744@item
711Install a fresh version of @strong{Python 2.x}, even if you are using a x64-OS, 745Install a fresh version of @strong{Python 2.x}, even if you are using a
712install a 32-bit version for use with sbuild. Python 3.0 currently is 746x64-OS, install a 32-bit version for use with sbuild.
713incompatible. 747Python 3.0 currently is incompatible.
714 748
715@item 749@item
716Install your favorite @uref{http://code.google.com/p/tortoisegit/, GIT} & 750Install your favorite @uref{http://code.google.com/p/tortoisegit/, GIT} &
717@uref{http://tortoisesvn.net/, SVN}-clients. 751@uref{http://tortoisesvn.net/, SVN}-clients.
718 752
719@item 753@item
720You will also need some archive-manager like @uref{http://www.7-zip.org/, 7zip}. 754You will also need some archive-manager like
755@uref{http://www.7-zip.org/, 7zip}.
721 756
722@item 757@item
723Pull a copy of sbuild to a directory of your choice, which will be used in the 758Pull a copy of sbuild to a directory of your choice, which will be used
724remainder of this guide. For now, we will use @file{c:\gnunet\sbuild\} 759in the remainder of this guide. For now, we will use
760@file{c:\gnunet\sbuild\}
725 761
726@item 762@item
727in @file{sbuild\src\mingw\mingw32-buildall.sh}, comment out the packages 763in @file{sbuild\src\mingw\mingw32-buildall.sh}, comment out the packages
728@strong{gnunet-svn} and @strong{gnunet-gtk-svn}, as we don't want sbuild to 764@strong{gnunet-svn} and @strong{gnunet-gtk-svn}, as we don't want sbuild
729compile/install those for us. 765to compile/install those for us.
730 766
731@item 767@item
732Follow LRN's sbuild installation instructions.- 768Follow LRN's sbuild installation instructions.-
733@end itemize 769@end itemize
734 770
735Please note that sbuild may (or will most likely) fail during installation, 771Please note that sbuild may (or will most likely) fail during
736thus you really HAVE to @strong{check the logfiles} created during the 772installation, thus you really HAVE to @strong{check the logfiles} created
737installation process. Certain packages may fail to build initially due to 773during the installation process.
738missing dependencies, thus you may have to 774Certain packages may fail to build initially due to missing dependencies,
775thus you may have to
739@strong{substitute those with binary-versions initially}. Later on once 776@strong{substitute those with binary-versions initially}. Later on once
740dependencies are satisfied you can re-build the newer package versions. 777dependencies are satisfied you can re-build the newer package versions.
741 778
742@strong{It is normal that you may have to repeat this step multiple times and 779@strong{It is normal that you may have to repeat this step multiple times
743there is no uniform way to fix all compile-time issues, as the build-process 780and there is no uniform way to fix all compile-time issues, as the
744of many of the dependencies installed are rather unstable on win32 and certain 781build-process of many of the dependencies installed are rather unstable
745releases may not even compile at all.} 782on win32 and certain releases may not even compile at all.}
746 783
747Most dependencies for GNUnet have been set up by sbuild, thus we now should add 784Most dependencies for GNUnet have been set up by sbuild, thus we now
748the @file{bin/} directories in your new msys and mingw installations to PATH. 785should add the @file{bin/} directories in your new msys and mingw
749You will want to create a backup of your finished msys-environment by now. 786installations to PATH. You will want to create a backup of your finished
787msys-environment by now.
750 788
751@node GNUnet Installation 789@node GNUnet Installation
752@subsection GNUnet Installation 790@subsection GNUnet Installation
@@ -755,8 +793,8 @@ First, we need to launch our msys-shell, you can do this via
755 793
756@file{C:\gnunet\sbuild\msys\msys.bat} 794@file{C:\gnunet\sbuild\msys\msys.bat}
757 795
758You might wish to take a look at this file and adjust some login-parameters to 796You might wish to take a look at this file and adjust some
759your msys environment. 797login-parameters to your msys environment.
760 798
761Also, sbuild added two pointpoints to your msys-environment, though those 799Also, sbuild added two pointpoints to your msys-environment, though those
762might remain invisible: 800might remain invisible:
@@ -764,16 +802,17 @@ might remain invisible:
764@itemize @bullet 802@itemize @bullet
765 803
766@item 804@item
767/mingw, which will mount your mingw-directory from sbuild/mingw and the other one is 805/mingw, which will mount your mingw-directory from sbuild/mingw and the
806other one is
768 807
769@item 808@item
770/src which contains all the installation sources sbuild just compiled. 809/src which contains all the installation sources sbuild just compiled.
771@end itemize 810@end itemize
772 811
773Check out the current gnunet-sources (svn-head) from the gnunet-repository, 812Check out the current gnunet-sources (git HEAD) from the
774we will do this in your home directory: 813gnunet-repository, we will do this in your home directory:
775 814
776@code{svn checkout https://gnunet.org/svn/gnunet/ ~/gnunet} 815@code{git clone https://gnunet.org/git/gnunet/ ~/gnunet}
777 816
778Now, we will first need to bootstrap the checked out installation and then 817Now, we will first need to bootstrap the checked out installation and then
779configure it accordingly. 818configure it accordingly.
@@ -790,19 +829,20 @@ STRIP=true CPPFLAGS="-DUSE_IPV6=1 -DW32_VEH" CFLAGS="$CFLAGS -g -O2" \
790--enable-silent-rules --enable-experimental 2>&1 | tee -a ./configure.log 829--enable-silent-rules --enable-experimental 2>&1 | tee -a ./configure.log
791@end example 830@end example
792 831
793The parameters above will configure for a reasonable gnunet installation to the 832The parameters above will configure for a reasonable gnunet installation
794your msys-root directory. Depending on which features your would like to build 833to the your msys-root directory.
795or you may need to specify additional dependencies. Sbuild installed most libs 834Depending on which features your would like to build or you may need to
796into the /mingw subdirectory, so remember to prefix library locations with 835specify additional dependencies. Sbuild installed most libs into
836the /mingw subdirectory, so remember to prefix library locations with
797this path. 837this path.
798 838
799Like on a unixoid system, you might want to use your home directory as prefix 839Like on a unixoid system, you might want to use your home directory as
800for your own gnunet installation for development, without tainting the 840prefix for your own gnunet installation for development, without tainting
801buildenvironment. Just change the "prefix" parameter to point towards 841the buildenvironment. Just change the "prefix" parameter to point towards
802~/ in this case. 842~/ in this case.
803 843
804Now it's time to compile gnunet as usual. Though this will take some time, so 844Now it's time to compile gnunet as usual. Though this will take some time,
805you may fetch yourself a coffee or some Mate now... 845so you may fetch yourself a coffee or some Mate now...
806 846
807@example 847@example
808make ; make install 848make ; make install
@@ -812,22 +852,22 @@ make ; make install
812@subsection Adjusting Windows for running and testing GNUnet 852@subsection Adjusting Windows for running and testing GNUnet
813 853
814Assuming the build succeeded and you 854Assuming the build succeeded and you
815@strong{added the bin directory of your gnunet to PATH}, you can now use your 855@strong{added the bin directory of your gnunet to PATH}, you can now use
816gnunet-installation as usual. Remember that UAC or the windows firewall may 856your gnunet-installation as usual.
817popup initially, blocking further execution of gnunet until you acknowledge 857Remember that UAC or the windows firewall may popup initially, blocking
818them (duh!). 858further execution of gnunet until you acknowledge them.
819 859
820You will also have to take the usual steps to get p2p software running properly 860You will also have to take the usual steps to get p2p software running
821(port forwarding, ...), and gnunet will require administrative permissions as 861properly (port forwarding, ...), and gnunet will require administrative
822it may even install a device-driver (in case you are using gnunet-vpn and/or 862permissions as it may even install a device-driver (in case you are using
823gnunet-exit). 863gnunet-vpn and/or gnunet-exit).
824 864
825@node Building the GNUnet Installer 865@node Building the GNUnet Installer
826@subsection Building the GNUnet Installer 866@subsection Building the GNUnet Installer
827 867
828The GNUnet installer is made with @uref{http://nsis.sourceforge.net/, NSIS} 868The GNUnet installer is made with
829The installer script is located in @file{contrib\win} in the 869@uref{http://nsis.sourceforge.net/, NSIS} The installer script is located
830GNUnet source tree. 870in @file{contrib\win} in the GNUnet source tree.
831 871
832@node Using GNUnet with Netbeans on Windows 872@node Using GNUnet with Netbeans on Windows
833@subsection Using GNUnet with Netbeans on Windows 873@subsection Using GNUnet with Netbeans on Windows