aboutsummaryrefslogtreecommitdiff
path: root/tutorial-ubuntu1804.html.j2
diff options
context:
space:
mode:
Diffstat (limited to 'tutorial-ubuntu1804.html.j2')
-rw-r--r--tutorial-ubuntu1804.html.j2110
1 files changed, 58 insertions, 52 deletions
diff --git a/tutorial-ubuntu1804.html.j2 b/tutorial-ubuntu1804.html.j2
index f0e1941f..9645f169 100644
--- a/tutorial-ubuntu1804.html.j2
+++ b/tutorial-ubuntu1804.html.j2
@@ -1,38 +1,36 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<div class="container"> 3<article class="container">
4 4<!--<article> -->
5<header>
5 <h2>{{ _("Tutorial: GNUnet on Ubuntu 18.04") }}</h2> 6 <h2>{{ _("Tutorial: GNUnet on Ubuntu 18.04") }}</h2>
6 7</header>
8<section>
7 <h3>{{ _("Introduction") }}</h3> 9 <h3>{{ _("Introduction") }}</h3>
8
9 <p> 10 <p>
10 Welcome to the hopefully painless GNUnet tutorial for Ubuntu 18.04! It provides 11 Welcome to the hopefully painless GNUnet tutorial for Ubuntu 18.04!
11 very concrete instructions on how to compile, install and configure a current 12 It provides very concrete instructions on how to compile, install
12 version of GNUnet. The goal is to support newcomers, either end users or 13 and configure a current version of GNUnet. The goal is to support
13 developers, who want to get in touch with GNUnet for the first time. After 14 newcomers, either end users or developers, who want to get in touch
14 installing GNUnet we will make sure that out new GNUnet installation is working 15 with GNUnet for the first time. After installing GNUnet we will make
15 correctly. 16 sure that out new GNUnet installation is working correctly.
16 </p> 17 </p>
17
18 <p> 18 <p>
19 <b>Attention: If you came across the official gnunet package for Ubuntu 18.04, 19 <b>Attention: If you came across the official gnunet package for
20 ignore it! It is ancient and not compatible with current GNUnet 20 Ubuntu 18.04, ignore it! It is ancient and not compatible with
21 installations.</b> 21 current GNUnet installations.</b>
22 </p> 22 </p>
23
24 <p> 23 <p>
25 Now let's start! 24 Now let's start!
26 </p> 25 </p>
27 26</section>
27<section>
28 <h3>{{ _("Requirements") }}</h3> 28 <h3>{{ _("Requirements") }}</h3>
29
30 <p> 29 <p>
31 First let's install the following Ubuntu 18.04 packages to use GNUnet 30 First let's install the following Ubuntu 18.04 packages to use
32 painlessly. Optional dependencies are listed in Appendix A. They are required 31 GNUnet painlessly. Optional dependencies are listed in Appendix
33 for some experimental GNUnet features. 32 A. They are required for some experimental GNUnet features.
34 </p> 33 </p>
35
36 <code> 34 <code>
37 $ sudo apt install git libtool autoconf autopoint \<br> 35 $ sudo apt install git libtool autoconf autopoint \<br>
38 build-essential libgcrypt-dev libidn11-dev zlib1g-dev \<br> 36 build-essential libgcrypt-dev libidn11-dev zlib1g-dev \<br>
@@ -40,9 +38,9 @@
40 libjansson-dev libcurl4-gnutls-dev libsqlite3-dev openssl \<br> 38 libjansson-dev libcurl4-gnutls-dev libsqlite3-dev openssl \<br>
41 libnss3-tools libmicrohttpd-dev 39 libnss3-tools libmicrohttpd-dev
42 </code> 40 </code>
43 41</section>
42<section>
44 <h3>{{ _("Make an installation directory") }}</h3> 43 <h3>{{ _("Make an installation directory") }}</h3>
45
46 <p> 44 <p>
47 Next we create a directory in our home directory where we store 45 Next we create a directory in our home directory where we store
48 the source code later. We should keep this directory after 46 the source code later. We should keep this directory after
@@ -50,24 +48,22 @@
50 uninstalling GNUnet again (see chapter *Uninstall GNUnet and its 48 uninstalling GNUnet again (see chapter *Uninstall GNUnet and its
51 dependencies*). 49 dependencies*).
52 </p> 50 </p>
53
54 <code> 51 <code>
55 $ mkdir ~/gnunet_installation 52 $ mkdir ~/gnunet_installation
56 </code> 53 </code>
57 54</section>
55<section>
58 <h3>{{ _("Get the source code") }}</h3> 56 <h3>{{ _("Get the source code") }}</h3>
59
60 <p> 57 <p>
61 We download the GNUnet source code using git. 58 We download the GNUnet source code using git.
62 </p> 59 </p>
63
64 <code> 60 <code>
65 $ cd ~/gnunet_installation<br> 61 $ cd ~/gnunet_installation<br>
66 $ git clone --depth 1 https://gnunet.org/git/gnunet.git<br> 62 $ git clone --depth 1 https://gnunet.org/git/gnunet.git<br>
67 </code> 63 </code>
68 64</section>
65<section>
69 <h3>{{ _("Compile and Install") }}</h3> 66 <h3>{{ _("Compile and Install") }}</h3>
70
71 <p> 67 <p>
72 Installing GNUnet is not hard. We have two options: 68 Installing GNUnet is not hard. We have two options:
73 installing a *production version* and installing a *development version*. If 69 installing a *production version* and installing a *development version*. If
@@ -76,9 +72,9 @@
76 debug symbols that can be displayed with a debugger). Otherwise choose the 72 debug symbols that can be displayed with a debugger). Otherwise choose the
77 production version. 73 production version.
78 </p> 74 </p>
79 75</section>
76<section>
80 <h4>{{ _("Option 1: GNUnet for production / usage") }}</h4> 77 <h4>{{ _("Option 1: GNUnet for production / usage") }}</h4>
81
82 <code> 78 <code>
83 $ cd ~/gnunet_installation/gnunet<br> 79 $ cd ~/gnunet_installation/gnunet<br>
84 $ ./bootstrap<br> 80 $ ./bootstrap<br>
@@ -89,7 +85,8 @@
89 $ make -j$(nproc || echo -n 1)<br> 85 $ make -j$(nproc || echo -n 1)<br>
90 $ sudo make install 86 $ sudo make install
91 </code> 87 </code>
92 88</section>
89<section>
93 <h4>{{ _("Option 2: GNUnet for development") }}</h4> 90 <h4>{{ _("Option 2: GNUnet for development") }}</h4>
94 91
95 <code> 92 <code>
@@ -102,7 +99,8 @@
102 $ sudo make install 99 $ sudo make install
103 </code> 100 </code>
104 101
105 <!--<h4>{{ _("Install GNUnet plugin for name resolution") }}</h4> 102 <!--
103<h4>{{ _("Install GNUnet plugin for name resolution") }}</h4>
106 So now it gets a bit nasty. It's not so bad. All we have to do is copy a file and edit another one. The file we need to copy is GNUnet's plugin for the Name Service Switch (NSS) in unix systems. Different unixes expect it in different locations and GNUnet's build system does not try to guess. On Ubuntu 18.04 we have to do 104 So now it gets a bit nasty. It's not so bad. All we have to do is copy a file and edit another one. The file we need to copy is GNUnet's plugin for the Name Service Switch (NSS) in unix systems. Different unixes expect it in different locations and GNUnet's build system does not try to guess. On Ubuntu 18.04 we have to do
107 105
108 <code> 106 <code>
@@ -137,8 +135,10 @@
137 hosts: files mdns4_minimal [NOTFOUND=return] gns [NOTFOUND=return] dns 135 hosts: files mdns4_minimal [NOTFOUND=return] gns [NOTFOUND=return] dns
138 </code> 136 </code>
139 137
140 <p>That's it. It wasn't that nasty, was it?</p> --> 138 <p>That's it. It wasn't that nasty, was it?</p>
141 139-->
140</section>
141<section>
142 <h3>{{ _("Configuration") }}</h3> 142 <h3>{{ _("Configuration") }}</h3>
143 143
144 <p> 144 <p>
@@ -200,7 +200,8 @@
200 <code> 200 <code>
201 $ gnunet-arm -e 201 $ gnunet-arm -e
202 </code> 202 </code>
203 203</section>
204<section>
204 <h3>{{ _("Make sure it works") }}</h3> 205 <h3>{{ _("Make sure it works") }}</h3>
205 206
206 <p> 207 <p>
@@ -214,7 +215,8 @@
214 <li>Name resolution using GNS with a browser (do it on the command line first)</li> 215 <li>Name resolution using GNS with a browser (do it on the command line first)</li>
215 <li>Serving a website using VPN (do name resolution with a browser first)</li> 216 <li>Serving a website using VPN (do name resolution with a browser first)</li>
216 </ul> 217 </ul>
217 218</section>
219<section>
218 <h4>{{ _("filesharing") }}</h4> 220 <h4>{{ _("filesharing") }}</h4>
219 221
220 <p> 222 <p>
@@ -247,7 +249,8 @@
247 It gives us the command line call to download the file (and store it as 249 It gives us the command line call to download the file (and store it as
248 ostrom.pdf)! 250 ostrom.pdf)!
249 </p> 251 </p>
250 252</section>
253<section>
251 <h4>{{ _("CADET (and Chat)") }}</h4> 254 <h4>{{ _("CADET (and Chat)") }}</h4>
252 255
253 <p> 256 <p>
@@ -274,8 +277,8 @@
274 <code> 277 <code>
275 $ gnunet-cadet P4T5GHS1PCZ06R82D3KW8Z8J1113BQZWAWGYHTZ8G1ZXMWXQGAVG my-secret-port 278 $ gnunet-cadet P4T5GHS1PCZ06R82D3KW8Z8J1113BQZWAWGYHTZ8G1ZXMWXQGAVG my-secret-port
276 </code> 279 </code>
277 280</section>
278 281<section>
279 <h4>{{ _("Name resolution using GNS on the command line") }}</h4> 282 <h4>{{ _("Name resolution using GNS on the command line") }}</h4>
280 283
281 <p>GNS is the GNU name service, a fully decentralized alternatice to DNS. We'll publish an IP address in a GNS record try to resolve it on the command line. First we need an identity which is the 284 <p>GNS is the GNU name service, a fully decentralized alternatice to DNS. We'll publish an IP address in a GNS record try to resolve it on the command line. First we need an identity which is the
@@ -341,8 +344,8 @@
341 public record. Bobs friend would simply use "ccc.alice.bob.myself" 344 public record. Bobs friend would simply use "ccc.alice.bob.myself"
342 to resolve our "ccc" record. 345 to resolve our "ccc" record.
343 </p> 346 </p>
344 347</section>
345 348<section>
346 <h4>{{ _("Name resolution using GNS with a browser") }}</h4> 349 <h4>{{ _("Name resolution using GNS with a browser") }}</h4>
347 350
348 <p> 351 <p>
@@ -415,14 +418,15 @@
415 our friend Bob prepared his system, too, he can resolve our record 418 our friend Bob prepared his system, too, he can resolve our record
416 by typing "ccc.alice.myself". 419 by typing "ccc.alice.myself".
417 </p> 420 </p>
418 421</section>
419 422<section>
420 <h4>{{ _("VPN") }}</h4> 423 <h4>{{ _("VPN") }}</h4>
421 424
422 <p> 425 <p>
423 TBD 426 TBD
424 </p> 427 </p>
425 428</section>
429<section>
426 <h3>{{ _("Uninstall GNUnet and its dependencies") }}</h3> 430 <h3>{{ _("Uninstall GNUnet and its dependencies") }}</h3>
427 431
428 <code> 432 <code>
@@ -438,16 +442,18 @@
438 $ sudo mv /etc/nsswitch.conf.original /etc/nsswitch.conf<br> 442 $ sudo mv /etc/nsswitch.conf.original /etc/nsswitch.conf<br>
439 $ sudo rm /lib/$(uname -m)-linux-gnu/libnss_gns.so.2 443 $ sudo rm /lib/$(uname -m)-linux-gnu/libnss_gns.so.2
440 </code> 444 </code>
441 445</section>
442 446<section>
443 <h3>{{ _("Appendix A: Optional GNUnet features") }}</h3> 447 <h3>{{ _("Appendix A: Optional GNUnet features") }}</h3>
444 448
445 <p> 449 <p>
446 TBD 450 TBD
447 </p> 451 </p>
448 452</section>
453<section>
449 <h3>{{ _("Troubleshooting") }}</h3> 454 <h3>{{ _("Troubleshooting") }}</h3>
450 455</section>
456<section>
451 <h4>{{ _("You can't reach other people's nodes") }}</h4> 457 <h4>{{ _("You can't reach other people's nodes") }}</h4>
452 458
453 <p> 459 <p>
@@ -488,6 +494,6 @@
488 <code> 494 <code>
489 $ cp /etc/nsswitch.conf.original /etc/nsswitch.conf 495 $ cp /etc/nsswitch.conf.original /etc/nsswitch.conf
490 </code>--> 496 </code>-->
491 497</section>
492</div> 498</article>
493{% endblock body_content %} 499{% endblock body_content %}