diff options
Diffstat (limited to 'tutorial-ubuntu1804.html.j2')
-rw-r--r-- | tutorial-ubuntu1804.html.j2 | 110 |
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 %} |