summaryrefslogtreecommitdiff
path: root/po/doc/guix-cookbook.de.po
diff options
context:
space:
mode:
authorFlorian Pelz <pelzflorian@pelzflorian.de>2024-09-01 18:34:38 +0200
committerFlorian Pelz <pelzflorian@pelzflorian.de>2024-09-02 00:46:31 +0200
commitdcc84e668d70558d7d48e340fe77a6cd5003e360 (patch)
treea05d024b53d74071903bbc47c412cb7732839683 /po/doc/guix-cookbook.de.po
parent29a0d1c4e6d4c00ddea1674b531312f201675cbb (diff)
nls: Update translations.
Change-Id: Icdee15b452c38ca885a8f202f68621916de01c03
Diffstat (limited to 'po/doc/guix-cookbook.de.po')
-rw-r--r--po/doc/guix-cookbook.de.po2484
1 files changed, 1245 insertions, 1239 deletions
diff --git a/po/doc/guix-cookbook.de.po b/po/doc/guix-cookbook.de.po
index 7356d0b89d4..c10cfe2922a 100644
--- a/po/doc/guix-cookbook.de.po
+++ b/po/doc/guix-cookbook.de.po
@@ -7,8 +7,8 @@ msgid ""
7msgstr "" 7msgstr ""
8"Project-Id-Version: guix 1.0.1.4876-09145-dirty\n" 8"Project-Id-Version: guix 1.0.1.4876-09145-dirty\n"
9"Report-Msgid-Bugs-To: bug-guix@gnu.org\n" 9"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
10"POT-Creation-Date: \n" 10"POT-Creation-Date: 2024-08-23 03:18+0000\n"
11"PO-Revision-Date: 2024-06-02 16:00+0000\n" 11"PO-Revision-Date: 2024-08-30 16:38+0000\n"
12"Last-Translator: Florian Pelz <pelzflorian@pelzflorian.de>\n" 12"Last-Translator: Florian Pelz <pelzflorian@pelzflorian.de>\n"
13"Language-Team: German <https://translate.fedoraproject.org/projects/guix/documentation-cookbook/de/>\n" 13"Language-Team: German <https://translate.fedoraproject.org/projects/guix/documentation-cookbook/de/>\n"
14"Language: de\n" 14"Language: de\n"
@@ -16,10 +16,10 @@ msgstr ""
16"Content-Type: text/plain; charset=UTF-8\n" 16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n" 17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=2; plural=n != 1;\n" 18"Plural-Forms: nplurals=2; plural=n != 1;\n"
19"X-Generator: Weblate 5.5.5\n" 19"X-Generator: Weblate 5.7\n"
20 20
21#. type: Plain text 21#. type: Plain text
22#: doc/guix-cookbook.texi:7 22#: guix-git/doc/guix-cookbook.texi:7
23msgid "@documentencoding UTF-8" 23msgid "@documentencoding UTF-8"
24msgstr "" 24msgstr ""
25"@documentencoding UTF-8\n" 25"@documentencoding UTF-8\n"
@@ -27,820 +27,821 @@ msgstr ""
27"@frenchspacing on" 27"@frenchspacing on"
28 28
29#. type: top 29#. type: top
30#: doc/guix-cookbook.texi:7 doc/guix-cookbook.texi:43 doc/guix-cookbook.texi:57 30#: guix-git/doc/guix-cookbook.texi:7 guix-git/doc/guix-cookbook.texi:43
31#: guix-git/doc/guix-cookbook.texi:57
31#, no-wrap 32#, no-wrap
32msgid "GNU Guix Cookbook" 33msgid "GNU Guix Cookbook"
33msgstr "GNU-Guix-Kochbuch" 34msgstr "GNU-Guix-Kochbuch"
34 35
35#. type: copying 36#. type: copying
36#: doc/guix-cookbook.texi:28 37#: guix-git/doc/guix-cookbook.texi:28
37msgid "Copyright @copyright{} 2019, 2022 Ricardo Wurmus@* Copyright @copyright{} 2019 Efraim Flashner@* Copyright @copyright{} 2019 Pierre Neidhardt@* Copyright @copyright{} 2020 Oleg Pykhalov@* Copyright @copyright{} 2020 Matthew Brooks@* Copyright @copyright{} 2020 Marcin Karpezo@* Copyright @copyright{} 2020 Brice Waegeneire@* Copyright @copyright{} 2020 André Batista@* Copyright @copyright{} 2020 Christine Lemmer-Webber@* Copyright @copyright{} 2021 Joshua Branson@* Copyright @copyright{} 2022, 2023 Maxim Cournoyer@* Copyright @copyright{} 2023-2024 Ludovic Courtès@* Copyright @copyright{} 2023 Thomas Ieong@* Copyright @copyright{} 2024 Florian Pelz@*" 38msgid "Copyright @copyright{} 2019, 2022 Ricardo Wurmus@* Copyright @copyright{} 2019 Efraim Flashner@* Copyright @copyright{} 2019 Pierre Neidhardt@* Copyright @copyright{} 2020 Oleg Pykhalov@* Copyright @copyright{} 2020 Matthew Brooks@* Copyright @copyright{} 2020 Marcin Karpezo@* Copyright @copyright{} 2020 Brice Waegeneire@* Copyright @copyright{} 2020 André Batista@* Copyright @copyright{} 2020 Christine Lemmer-Webber@* Copyright @copyright{} 2021 Joshua Branson@* Copyright @copyright{} 2022, 2023 Maxim Cournoyer@* Copyright @copyright{} 2023-2024 Ludovic Courtès@* Copyright @copyright{} 2023 Thomas Ieong@* Copyright @copyright{} 2024 Florian Pelz@*"
38msgstr "Copyright @copyright{} 2019, 2022 Ricardo Wurmus@* Copyright @copyright{} 2019 Efraim Flashner@* Copyright @copyright{} 2019 Pierre Neidhardt@* Copyright @copyright{} 2020 Oleg Pykhalov@* Copyright @copyright{} 2020 Matthew Brooks@* Copyright @copyright{} 2020 Marcin Karpezo@* Copyright @copyright{} 2020 Brice Waegeneire@* Copyright @copyright{} 2020 André Batista@* Copyright @copyright{} 2020 Christine Lemmer-Webber@* Copyright @copyright{} 2021 Joshua Branson@* Copyright @copyright{} 2022, 2023 Maxim Cournoyer@* Copyright @copyright{} 2023-2024 Ludovic Courtès@* Copyright @copyright{} 2023 Thomas Ieong@* Copyright @copyright{} 2024 Florian Pelz@*" 39msgstr "Copyright @copyright{} 2019, 2022 Ricardo Wurmus@* Copyright @copyright{} 2019 Efraim Flashner@* Copyright @copyright{} 2019 Pierre Neidhardt@* Copyright @copyright{} 2020 Oleg Pykhalov@* Copyright @copyright{} 2020 Matthew Brooks@* Copyright @copyright{} 2020 Marcin Karpezo@* Copyright @copyright{} 2020 Brice Waegeneire@* Copyright @copyright{} 2020 André Batista@* Copyright @copyright{} 2020 Christine Lemmer-Webber@* Copyright @copyright{} 2021 Joshua Branson@* Copyright @copyright{} 2022, 2023 Maxim Cournoyer@* Copyright @copyright{} 2023-2024 Ludovic Courtès@* Copyright @copyright{} 2023 Thomas Ieong@* Copyright @copyright{} 2024 Florian Pelz@*"
39 40
40#. type: copying 41#. type: copying
41#: doc/guix-cookbook.texi:35 42#: guix-git/doc/guix-cookbook.texi:35
42msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''." 43msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''."
43msgstr "Es ist Ihnen gestattet, dieses Dokument zu vervielfältigen, weiterzugeben und/oder zu verändern, unter den Bedingungen der GNU Free Documentation License, entweder gemäß Version 1.3 der Lizenz oder (nach Ihrer Option) einer späteren Version, die von der Free Software Foundation veröffentlicht wurde, ohne unveränderliche Abschnitte, ohne vorderen Umschlagtext und ohne hinteren Umschlagtext. Eine Kopie der Lizenz finden Sie im Abschnitt mit dem Titel „GNU-Lizenz für freie Dokumentation“." 44msgstr "Es ist Ihnen gestattet, dieses Dokument zu vervielfältigen, weiterzugeben und/oder zu verändern, unter den Bedingungen der GNU Free Documentation License, entweder gemäß Version 1.3 der Lizenz oder (nach Ihrer Option) einer späteren Version, die von der Free Software Foundation veröffentlicht wurde, ohne unveränderliche Abschnitte, ohne vorderen Umschlagtext und ohne hinteren Umschlagtext. Eine Kopie der Lizenz finden Sie im Abschnitt mit dem Titel „GNU-Lizenz für freie Dokumentation“."
44 45
45#. type: dircategory 46#. type: dircategory
46#: doc/guix-cookbook.texi:37 47#: guix-git/doc/guix-cookbook.texi:37
47#, no-wrap 48#, no-wrap
48msgid "System administration" 49msgid "System administration"
49msgstr "Systemadministration" 50msgstr "Systemadministration"
50 51
51#. type: menuentry 52#. type: menuentry
52#: doc/guix-cookbook.texi:40 53#: guix-git/doc/guix-cookbook.texi:40
53msgid "Guix cookbook: (guix-cookbook)" 54msgid "Guix cookbook: (guix-cookbook)"
54msgstr "Guix-Kochbuch: (guix-cookbook.de)" 55msgstr "Guix-Kochbuch: (guix-cookbook.de)"
55 56
56#. type: menuentry 57#. type: menuentry
57#: doc/guix-cookbook.texi:40 58#: guix-git/doc/guix-cookbook.texi:40
58msgid "Tutorials and examples for GNU Guix." 59msgid "Tutorials and examples for GNU Guix."
59msgstr "Anleitungen und Beispiele für GNU Guix." 60msgstr "Anleitungen und Beispiele für GNU Guix."
60 61
61#. type: subtitle 62#. type: subtitle
62#: doc/guix-cookbook.texi:44 63#: guix-git/doc/guix-cookbook.texi:44
63#, no-wrap 64#, no-wrap
64msgid "Tutorials and examples for using the GNU Guix Functional Package Manager" 65msgid "Tutorials and examples for using the GNU Guix Functional Package Manager"
65msgstr "Anleitungen und Beispiele, wie man den funktionalen Paketmanager GNU Guix benutzt" 66msgstr "Anleitungen und Beispiele, wie man den funktionalen Paketmanager GNU Guix benutzt"
66 67
67#. type: author 68#. type: author
68#: doc/guix-cookbook.texi:45 69#: guix-git/doc/guix-cookbook.texi:45
69#, no-wrap 70#, no-wrap
70msgid "The GNU Guix Developers" 71msgid "The GNU Guix Developers"
71msgstr "Die Entwickler von GNU Guix" 72msgstr "Die Entwickler von GNU Guix"
72 73
73#. type: node 74#. type: node
74#: doc/guix-cookbook.texi:56 75#: guix-git/doc/guix-cookbook.texi:56
75#, no-wrap 76#, no-wrap
76msgid "Top" 77msgid "Top"
77msgstr "Top" 78msgstr "Top"
78 79
79#. type: Plain text 80#. type: Plain text
80#: doc/guix-cookbook.texi:63 81#: guix-git/doc/guix-cookbook.texi:63
81msgid "This document presents tutorials and detailed examples for GNU@tie{}Guix, a functional package management tool written for the GNU system. Please @pxref{Top,,, guix, GNU Guix reference manual} for details about the system, its API, and related concepts." 82msgid "This document presents tutorials and detailed examples for GNU@tie{}Guix, a functional package management tool written for the GNU system. Please @pxref{Top,,, guix, GNU Guix reference manual} for details about the system, its API, and related concepts."
82msgstr "Dieses Dokument stellt Anleitungen und detaillierte Beispiele vor, wie man GNU@tie{}Guix benutzt, ein Werkzeug zur funktionalen Paketverwaltung, das für das GNU-System geschrieben wurde. Bitte lesen Sie Details zum System, seinen Programmierschnittstellen und ähnlichen Konzepten im @ref{Top,,, guix.de, Referenzhandbuch zu GNU Guix} nach." 83msgstr "Dieses Dokument stellt Anleitungen und detaillierte Beispiele vor, wie man GNU@tie{}Guix benutzt, ein Werkzeug zur funktionalen Paketverwaltung, das für das GNU-System geschrieben wurde. Bitte lesen Sie Details zum System, seinen Programmierschnittstellen und ähnlichen Konzepten im @ref{Top,,, guix.de, Referenzhandbuch zu GNU Guix} nach."
83 84
84#. You can replace the following paragraph with information on 85#. You can replace the following paragraph with information on
85#. type: Plain text 86#. type: Plain text
86#: doc/guix-cookbook.texi:78 87#: guix-git/doc/guix-cookbook.texi:78
87msgid "This manual is also available in French (@pxref{Top,,, guix-cookbook.fr, Livre de recettes de GNU Guix}), German (@pxref{Top,,, guix-cookbook.de, GNU-Guix-Kochbuch}), Korean (@pxref{Top,,, guix-cookbook.ko, GNU Guix 쿡북}), Brazilian Portuguese (@pxref{Top,,, guix-cookbook.pt_BR, Livro de Receitas do GNU Guix}), Slovak (@pxref{Top,,, guix-cookbook.sk, Receptár GNU Guix}), and Swedish (@pxref{Top,,, guix-cookbook.sv, Kokbok för GNU Guix}). If you would like to translate this document in your native language, consider joining @uref{https://translate.fedoraproject.org/projects/guix/documentation-cookbook, Weblate} (@pxref{Translating Guix,,, guix, GNU Guix reference manual})." 88msgid "This manual is also available in French (@pxref{Top,,, guix-cookbook.fr, Livre de recettes de GNU Guix}), German (@pxref{Top,,, guix-cookbook.de, GNU-Guix-Kochbuch}), Korean (@pxref{Top,,, guix-cookbook.ko, GNU Guix 쿡북}), Brazilian Portuguese (@pxref{Top,,, guix-cookbook.pt_BR, Livro de Receitas do GNU Guix}), Slovak (@pxref{Top,,, guix-cookbook.sk, Receptár GNU Guix}), and Swedish (@pxref{Top,,, guix-cookbook.sv, Kokbok för GNU Guix}). If you would like to translate this document in your native language, consider joining @uref{https://translate.fedoraproject.org/projects/guix/documentation-cookbook, Weblate} (@pxref{Translating Guix,,, guix, GNU Guix reference manual})."
88msgstr "Dieses Handbuch ist auch auf Englisch (siehe @ref{Top,,, guix-cookbook, GNU Guix Cookbook}), auf Französisch (siehe @ref{Top,,, guix-cookbook.fr, Livre de recettes de GNU Guix}), auf Koreanisch (siehe @ref{Top,,, guix-cookbook.ko, GNU Guix 쿡북}), auf Brasilianischem Portugiesisch (siehe @ref{Top,,, guix-cookbook.pt_BR, Livro de Receitas do GNU Guix}), auf Slowakisch (siehe @ref{Top,,, guix-cookbook.sk, Receptár GNU Guix}) und auf Schwedisch (@pxref{Top,,, guix-cookbook.sv, Kokbok för GNU Guix}) verfügbar. Wenn Sie dieses Dokument in Ihre eigene Sprache übersetzen möchten, dann sind Sie bei @uref{https://translate.fedoraproject.org/projects/guix/documentation-cookbook, Weblate} herzlich willkommen." 89msgstr "Dieses Handbuch ist auch auf Englisch (siehe @ref{Top,,, guix-cookbook, GNU Guix Cookbook}), auf Französisch (siehe @ref{Top,,, guix-cookbook.fr, Livre de recettes de GNU Guix}), auf Koreanisch (siehe @ref{Top,,, guix-cookbook.ko, GNU Guix 쿡북}), auf Brasilianischem Portugiesisch (siehe @ref{Top,,, guix-cookbook.pt_BR, Livro de Receitas do GNU Guix}), auf Slowakisch (siehe @ref{Top,,, guix-cookbook.sk, Receptár GNU Guix}) und auf Schwedisch (@pxref{Top,,, guix-cookbook.sv, Kokbok för GNU Guix}) verfügbar. Wenn Sie dieses Dokument in Ihre eigene Sprache übersetzen möchten, dann sind Sie bei @uref{https://translate.fedoraproject.org/projects/guix/documentation-cookbook, Weblate} herzlich willkommen."
89 90
90#. type: chapter 91#. type: chapter
91#: doc/guix-cookbook.texi:89 doc/guix-cookbook.texi:98 92#: guix-git/doc/guix-cookbook.texi:89 guix-git/doc/guix-cookbook.texi:98
92#: doc/guix-cookbook.texi:206 doc/guix-cookbook.texi:207 93#: guix-git/doc/guix-cookbook.texi:206 guix-git/doc/guix-cookbook.texi:207
93#, no-wrap 94#, no-wrap
94msgid "Scheme tutorials" 95msgid "Scheme tutorials"
95msgstr "Anleitungen zu Scheme" 96msgstr "Anleitungen zu Scheme"
96 97
97#. type: menuentry 98#. type: menuentry
98#: doc/guix-cookbook.texi:89 99#: guix-git/doc/guix-cookbook.texi:89
99msgid "Meet your new favorite language!" 100msgid "Meet your new favorite language!"
100msgstr "Lernen Sie Ihre neue Lieblingssprache kennen!" 101msgstr "Lernen Sie Ihre neue Lieblingssprache kennen!"
101 102
102#. type: chapter 103#. type: chapter
103#: doc/guix-cookbook.texi:89 doc/guix-cookbook.texi:102 104#: guix-git/doc/guix-cookbook.texi:89 guix-git/doc/guix-cookbook.texi:102
104#: doc/guix-cookbook.texi:499 doc/guix-cookbook.texi:500 105#: guix-git/doc/guix-cookbook.texi:499 guix-git/doc/guix-cookbook.texi:500
105#, no-wrap 106#, no-wrap
106msgid "Packaging" 107msgid "Packaging"
107msgstr "Pakete schreiben" 108msgstr "Pakete schreiben"
108 109
109#. type: menuentry 110#. type: menuentry
110#: doc/guix-cookbook.texi:89 111#: guix-git/doc/guix-cookbook.texi:89
111msgid "Packaging tutorials" 112msgid "Packaging tutorials"
112msgstr "Wie man eigene Pakete verfasst." 113msgstr "Wie man eigene Pakete verfasst."
113 114
114#. type: chapter 115#. type: chapter
115#: doc/guix-cookbook.texi:89 doc/guix-cookbook.texi:129 116#: guix-git/doc/guix-cookbook.texi:89 guix-git/doc/guix-cookbook.texi:129
116#: doc/guix-cookbook.texi:1582 doc/guix-cookbook.texi:1583 117#: guix-git/doc/guix-cookbook.texi:1582 guix-git/doc/guix-cookbook.texi:1583
117#, no-wrap 118#, no-wrap
118msgid "System Configuration" 119msgid "System Configuration"
119msgstr "Systemkonfiguration" 120msgstr "Systemkonfiguration"
120 121
121#. type: menuentry 122#. type: menuentry
122#: doc/guix-cookbook.texi:89 123#: guix-git/doc/guix-cookbook.texi:89
123msgid "Customizing the GNU System" 124msgid "Customizing the GNU System"
124msgstr "Das GNU-System anpassen." 125msgstr "Das GNU-System anpassen."
125 126
126#. type: chapter 127#. type: chapter
127#: doc/guix-cookbook.texi:89 doc/guix-cookbook.texi:154 128#: guix-git/doc/guix-cookbook.texi:89 guix-git/doc/guix-cookbook.texi:154
128#: doc/guix-cookbook.texi:3322 doc/guix-cookbook.texi:3323 129#: guix-git/doc/guix-cookbook.texi:3322 guix-git/doc/guix-cookbook.texi:3323
129#, no-wrap 130#, no-wrap
130msgid "Containers" 131msgid "Containers"
131msgstr "Container" 132msgstr "Container"
132 133
133#. type: menuentry 134#. type: menuentry
134#: doc/guix-cookbook.texi:89 135#: guix-git/doc/guix-cookbook.texi:89
135msgid "Isolated environments and nested systems" 136msgid "Isolated environments and nested systems"
136msgstr "Isolierte Umgebungen und verschachtelte Systeme." 137msgstr "Isolierte Umgebungen und verschachtelte Systeme."
137 138
138#. type: chapter 139#. type: chapter
139#: doc/guix-cookbook.texi:89 doc/guix-cookbook.texi:164 140#: guix-git/doc/guix-cookbook.texi:89 guix-git/doc/guix-cookbook.texi:164
140#: doc/guix-cookbook.texi:3725 doc/guix-cookbook.texi:3726 141#: guix-git/doc/guix-cookbook.texi:3725 guix-git/doc/guix-cookbook.texi:3726
141#, no-wrap 142#, no-wrap
142msgid "Virtual Machines" 143msgid "Virtual Machines"
143msgstr "Virtuelle Maschinen" 144msgstr "Virtuelle Maschinen"
144 145
145#. type: menuentry 146#. type: menuentry
146#: doc/guix-cookbook.texi:89 147#: guix-git/doc/guix-cookbook.texi:89
147msgid "Virtual machines usage and configuration" 148msgid "Virtual machines usage and configuration"
148msgstr "Bedienung und Konfiguration von VM." 149msgstr "Bedienung und Konfiguration von VM."
149 150
150#. type: chapter 151#. type: chapter
151#: doc/guix-cookbook.texi:89 doc/guix-cookbook.texi:169 152#: guix-git/doc/guix-cookbook.texi:89 guix-git/doc/guix-cookbook.texi:169
152#: doc/guix-cookbook.texi:3956 doc/guix-cookbook.texi:3957 153#: guix-git/doc/guix-cookbook.texi:3958 guix-git/doc/guix-cookbook.texi:3959
153#, no-wrap 154#, no-wrap
154msgid "Advanced package management" 155msgid "Advanced package management"
155msgstr "Fortgeschrittene Paketverwaltung" 156msgstr "Fortgeschrittene Paketverwaltung"
156 157
157# angelehnt an Alle Macht dem Volke in Übersetzung von Die Mutter 158# angelehnt an Alle Macht dem Volke in Übersetzung von Die Mutter
158#. type: menuentry 159#. type: menuentry
159#: doc/guix-cookbook.texi:89 160#: guix-git/doc/guix-cookbook.texi:89
160msgid "Power to the users!" 161msgid "Power to the users!"
161msgstr "Alle Macht den Nutzern!" 162msgstr "Alle Macht den Nutzern!"
162 163
163#. type: chapter 164#. type: chapter
164#: doc/guix-cookbook.texi:89 doc/guix-cookbook.texi:181 165#: guix-git/doc/guix-cookbook.texi:89 guix-git/doc/guix-cookbook.texi:181
165#: doc/guix-cookbook.texi:4364 doc/guix-cookbook.texi:4365 166#: guix-git/doc/guix-cookbook.texi:4366 guix-git/doc/guix-cookbook.texi:4367
166#, no-wrap 167#, no-wrap
167msgid "Software Development" 168msgid "Software Development"
168msgstr "Software-Entwicklung" 169msgstr "Software-Entwicklung"
169 170
170#. type: menuentry 171#. type: menuentry
171#: doc/guix-cookbook.texi:89 172#: guix-git/doc/guix-cookbook.texi:89
172msgid "Environments, continuous integration, etc." 173msgid "Environments, continuous integration, etc."
173msgstr "Umgebungen, kontinuierliche Integration usw." 174msgstr "Umgebungen, kontinuierliche Integration usw."
174 175
175#. type: chapter 176#. type: chapter
176#: doc/guix-cookbook.texi:89 doc/guix-cookbook.texi:191 177#: guix-git/doc/guix-cookbook.texi:89 guix-git/doc/guix-cookbook.texi:191
177#: doc/guix-cookbook.texi:5013 doc/guix-cookbook.texi:5014 178#: guix-git/doc/guix-cookbook.texi:5015 guix-git/doc/guix-cookbook.texi:5016
178#, no-wrap 179#, no-wrap
179msgid "Environment management" 180msgid "Environment management"
180msgstr "Umgebungen verwalten" 181msgstr "Umgebungen verwalten"
181 182
182#. type: menuentry 183#. type: menuentry
183#: doc/guix-cookbook.texi:89 184#: guix-git/doc/guix-cookbook.texi:89
184msgid "Control environment" 185msgid "Control environment"
185msgstr "Umgebungen festlegen." 186msgstr "Umgebungen festlegen."
186 187
187#. type: chapter 188#. type: chapter
188#: doc/guix-cookbook.texi:89 doc/guix-cookbook.texi:195 189#: guix-git/doc/guix-cookbook.texi:89 guix-git/doc/guix-cookbook.texi:195
189#: doc/guix-cookbook.texi:5139 doc/guix-cookbook.texi:5140 190#: guix-git/doc/guix-cookbook.texi:5141 guix-git/doc/guix-cookbook.texi:5142
190#, no-wrap 191#, no-wrap
191msgid "Installing Guix on a Cluster" 192msgid "Installing Guix on a Cluster"
192msgstr "Auf einem Rechencluster installieren" 193msgstr "Auf einem Rechencluster installieren"
193 194
194#. type: menuentry 195#. type: menuentry
195#: doc/guix-cookbook.texi:89 196#: guix-git/doc/guix-cookbook.texi:89
196msgid "High-performance computing." 197msgid "High-performance computing."
197msgstr "Hochleistungsrechnen mit Guix." 198msgstr "Hochleistungsrechnen mit Guix."
198 199
199#. type: chapter 200#. type: chapter
200#: doc/guix-cookbook.texi:93 doc/guix-cookbook.texi:5527 201#: guix-git/doc/guix-cookbook.texi:93 guix-git/doc/guix-cookbook.texi:5529
201#: doc/guix-cookbook.texi:5528 202#: guix-git/doc/guix-cookbook.texi:5530
202#, no-wrap 203#, no-wrap
203msgid "Acknowledgments" 204msgid "Acknowledgments"
204msgstr "Danksagungen" 205msgstr "Danksagungen"
205 206
206#. type: menuentry 207#. type: menuentry
207#: doc/guix-cookbook.texi:93 208#: guix-git/doc/guix-cookbook.texi:93
208msgid "Thanks!" 209msgid "Thanks!"
209msgstr "Danke!" 210msgstr "Danke!"
210 211
211#. type: appendix 212#. type: appendix
212#: doc/guix-cookbook.texi:93 doc/guix-cookbook.texi:5554 213#: guix-git/doc/guix-cookbook.texi:93 guix-git/doc/guix-cookbook.texi:5556
213#: doc/guix-cookbook.texi:5555 214#: guix-git/doc/guix-cookbook.texi:5557
214#, no-wrap 215#, no-wrap
215msgid "GNU Free Documentation License" 216msgid "GNU Free Documentation License"
216msgstr "GNU-Lizenz für freie Dokumentation" 217msgstr "GNU-Lizenz für freie Dokumentation"
217 218
218#. type: menuentry 219#. type: menuentry
219#: doc/guix-cookbook.texi:93 220#: guix-git/doc/guix-cookbook.texi:93
220msgid "The license of this document." 221msgid "The license of this document."
221msgstr "Die Lizenz dieses Dokuments." 222msgstr "Die Lizenz dieses Dokuments."
222 223
223#. type: unnumbered 224#. type: unnumbered
224#: doc/guix-cookbook.texi:93 doc/guix-cookbook.texi:5560 225#: guix-git/doc/guix-cookbook.texi:93 guix-git/doc/guix-cookbook.texi:5562
225#: doc/guix-cookbook.texi:5561 226#: guix-git/doc/guix-cookbook.texi:5563
226#, no-wrap 227#, no-wrap
227msgid "Concept Index" 228msgid "Concept Index"
228msgstr "Konzeptverzeichnis" 229msgstr "Konzeptverzeichnis"
229 230
230#. type: menuentry 231#. type: menuentry
231#: doc/guix-cookbook.texi:93 232#: guix-git/doc/guix-cookbook.texi:93
232msgid "Concepts." 233msgid "Concepts."
233msgstr "Konzepte." 234msgstr "Konzepte."
234 235
235#. type: menuentry 236#. type: menuentry
236#: doc/guix-cookbook.texi:96 237#: guix-git/doc/guix-cookbook.texi:96
237msgid "--- The Detailed Node Listing ---" 238msgid "--- The Detailed Node Listing ---"
238msgstr "--- Detaillierte Liste der Knoten ---" 239msgstr "--- Detaillierte Liste der Knoten ---"
239 240
240#. type: section 241#. type: section
241#: doc/guix-cookbook.texi:100 doc/guix-cookbook.texi:222 242#: guix-git/doc/guix-cookbook.texi:100 guix-git/doc/guix-cookbook.texi:222
242#: doc/guix-cookbook.texi:224 doc/guix-cookbook.texi:225 243#: guix-git/doc/guix-cookbook.texi:224 guix-git/doc/guix-cookbook.texi:225
243#, no-wrap 244#, no-wrap
244msgid "A Scheme Crash Course" 245msgid "A Scheme Crash Course"
245msgstr "Ein Schnellkurs in Scheme" 246msgstr "Ein Schnellkurs in Scheme"
246 247
247#. type: section 248#. type: section
248#: doc/guix-cookbook.texi:104 doc/guix-cookbook.texi:106 249#: guix-git/doc/guix-cookbook.texi:104 guix-git/doc/guix-cookbook.texi:106
249#: doc/guix-cookbook.texi:511 doc/guix-cookbook.texi:513 250#: guix-git/doc/guix-cookbook.texi:511 guix-git/doc/guix-cookbook.texi:513
250#: doc/guix-cookbook.texi:514 251#: guix-git/doc/guix-cookbook.texi:514
251#, no-wrap 252#, no-wrap
252msgid "Packaging Tutorial" 253msgid "Packaging Tutorial"
253msgstr "Anleitung zum Paketeschreiben" 254msgstr "Anleitung zum Paketeschreiben"
254 255
255#. type: menuentry 256#. type: menuentry
256#: doc/guix-cookbook.texi:104 doc/guix-cookbook.texi:511 257#: guix-git/doc/guix-cookbook.texi:104 guix-git/doc/guix-cookbook.texi:511
257msgid "A tutorial on how to add packages to Guix." 258msgid "A tutorial on how to add packages to Guix."
258msgstr "Eine Anleitung, wie Sie Pakete zu Guix hinzufügen." 259msgstr "Eine Anleitung, wie Sie Pakete zu Guix hinzufügen."
259 260
260#. type: subsection 261#. type: subsection
261#: doc/guix-cookbook.texi:115 doc/guix-cookbook.texi:561 262#: guix-git/doc/guix-cookbook.texi:115 guix-git/doc/guix-cookbook.texi:561
262#: doc/guix-cookbook.texi:563 doc/guix-cookbook.texi:564 263#: guix-git/doc/guix-cookbook.texi:563 guix-git/doc/guix-cookbook.texi:564
263#, no-wrap 264#, no-wrap
264msgid "A ``Hello World'' package" 265msgid "A ``Hello World'' package"
265msgstr "Ein Hallo-Welt-Paket" 266msgstr "Ein Hallo-Welt-Paket"
266 267
267#. type: subsection 268#. type: subsection
268#: doc/guix-cookbook.texi:115 doc/guix-cookbook.texi:117 269#: guix-git/doc/guix-cookbook.texi:115 guix-git/doc/guix-cookbook.texi:117
269#: doc/guix-cookbook.texi:561 doc/guix-cookbook.texi:754 270#: guix-git/doc/guix-cookbook.texi:561 guix-git/doc/guix-cookbook.texi:754
270#: doc/guix-cookbook.texi:755 271#: guix-git/doc/guix-cookbook.texi:755
271#, no-wrap 272#, no-wrap
272msgid "Setup" 273msgid "Setup"
273msgstr "Herangehensweisen" 274msgstr "Herangehensweisen"
274 275
275#. type: subsection 276#. type: subsection
276#: doc/guix-cookbook.texi:115 doc/guix-cookbook.texi:561 277#: guix-git/doc/guix-cookbook.texi:115 guix-git/doc/guix-cookbook.texi:561
277#: doc/guix-cookbook.texi:994 doc/guix-cookbook.texi:995 278#: guix-git/doc/guix-cookbook.texi:994 guix-git/doc/guix-cookbook.texi:995
278#, no-wrap 279#, no-wrap
279msgid "Extended example" 280msgid "Extended example"
280msgstr "Erweitertes Beispiel" 281msgstr "Erweitertes Beispiel"
281 282
282#. type: subsection 283#. type: subsection
283#: doc/guix-cookbook.texi:115 doc/guix-cookbook.texi:561 284#: guix-git/doc/guix-cookbook.texi:115 guix-git/doc/guix-cookbook.texi:561
284#: doc/guix-cookbook.texi:1398 doc/guix-cookbook.texi:1399 285#: guix-git/doc/guix-cookbook.texi:1398 guix-git/doc/guix-cookbook.texi:1399
285#, no-wrap 286#, no-wrap
286msgid "Other build systems" 287msgid "Other build systems"
287msgstr "Andere Erstellungssysteme" 288msgstr "Andere Erstellungssysteme"
288 289
289#. type: subsection 290#. type: subsection
290#: doc/guix-cookbook.texi:115 doc/guix-cookbook.texi:123 291#: guix-git/doc/guix-cookbook.texi:115 guix-git/doc/guix-cookbook.texi:123
291#: doc/guix-cookbook.texi:561 doc/guix-cookbook.texi:1416 292#: guix-git/doc/guix-cookbook.texi:561 guix-git/doc/guix-cookbook.texi:1416
292#: doc/guix-cookbook.texi:1417 293#: guix-git/doc/guix-cookbook.texi:1417
293#, no-wrap 294#, no-wrap
294msgid "Programmable and automated package definition" 295msgid "Programmable and automated package definition"
295msgstr "Programmierbare und automatisierte Paketdefinition" 296msgstr "Programmierbare und automatisierte Paketdefinition"
296 297
297#. type: subsection 298#. type: subsection
298#: doc/guix-cookbook.texi:115 doc/guix-cookbook.texi:561 299#: guix-git/doc/guix-cookbook.texi:115 guix-git/doc/guix-cookbook.texi:561
299#: doc/guix-cookbook.texi:1533 doc/guix-cookbook.texi:1534 300#: guix-git/doc/guix-cookbook.texi:1533 guix-git/doc/guix-cookbook.texi:1534
300#, no-wrap 301#, no-wrap
301msgid "Getting help" 302msgid "Getting help"
302msgstr "Hilfe bekommen" 303msgstr "Hilfe bekommen"
303 304
304#. type: subsection 305#. type: subsection
305#: doc/guix-cookbook.texi:115 doc/guix-cookbook.texi:561 306#: guix-git/doc/guix-cookbook.texi:115 guix-git/doc/guix-cookbook.texi:561
306#: doc/guix-cookbook.texi:1546 doc/guix-cookbook.texi:1547 307#: guix-git/doc/guix-cookbook.texi:1546 guix-git/doc/guix-cookbook.texi:1547
307#, no-wrap 308#, no-wrap
308msgid "Conclusion" 309msgid "Conclusion"
309msgstr "Schlusswort" 310msgstr "Schlusswort"
310 311
311#. type: subsection 312#. type: subsection
312#: doc/guix-cookbook.texi:115 doc/guix-cookbook.texi:561 313#: guix-git/doc/guix-cookbook.texi:115 guix-git/doc/guix-cookbook.texi:561
313#: doc/guix-cookbook.texi:1567 doc/guix-cookbook.texi:1568 314#: guix-git/doc/guix-cookbook.texi:1567 guix-git/doc/guix-cookbook.texi:1568
314#, no-wrap 315#, no-wrap
315msgid "References" 316msgid "References"
316msgstr "Literaturverzeichnis" 317msgstr "Literaturverzeichnis"
317 318
318#. type: subsubsection 319#. type: subsubsection
319#: doc/guix-cookbook.texi:121 doc/guix-cookbook.texi:772 320#: guix-git/doc/guix-cookbook.texi:121 guix-git/doc/guix-cookbook.texi:772
320#: doc/guix-cookbook.texi:774 doc/guix-cookbook.texi:775 321#: guix-git/doc/guix-cookbook.texi:774 guix-git/doc/guix-cookbook.texi:775
321#, no-wrap 322#, no-wrap
322msgid "Local file" 323msgid "Local file"
323msgstr "Lokale Datei" 324msgstr "Lokale Datei"
324 325
325#. type: subsubsection 326#. type: subsubsection
326#: doc/guix-cookbook.texi:121 doc/guix-cookbook.texi:772 327#: guix-git/doc/guix-cookbook.texi:121 guix-git/doc/guix-cookbook.texi:772
327#: doc/guix-cookbook.texi:794 doc/guix-cookbook.texi:795 328#: guix-git/doc/guix-cookbook.texi:794 guix-git/doc/guix-cookbook.texi:795
328#, no-wrap 329#, no-wrap
329msgid "Channels" 330msgid "Channels"
330msgstr "Kanäle" 331msgstr "Kanäle"
331 332
332#. type: subsubsection 333#. type: subsubsection
333#: doc/guix-cookbook.texi:121 doc/guix-cookbook.texi:772 334#: guix-git/doc/guix-cookbook.texi:121 guix-git/doc/guix-cookbook.texi:772
334#: doc/guix-cookbook.texi:908 doc/guix-cookbook.texi:909 335#: guix-git/doc/guix-cookbook.texi:908 guix-git/doc/guix-cookbook.texi:909
335#, no-wrap 336#, no-wrap
336msgid "Direct checkout hacking" 337msgid "Direct checkout hacking"
337msgstr "Direkt am Checkout hacken" 338msgstr "Direkt am Checkout hacken"
338 339
339#. type: subsubsection 340#. type: subsubsection
340#: doc/guix-cookbook.texi:127 doc/guix-cookbook.texi:1428 341#: guix-git/doc/guix-cookbook.texi:127 guix-git/doc/guix-cookbook.texi:1428
341#: doc/guix-cookbook.texi:1430 doc/guix-cookbook.texi:1431 342#: guix-git/doc/guix-cookbook.texi:1430 guix-git/doc/guix-cookbook.texi:1431
342#, no-wrap 343#, no-wrap
343msgid "Recursive importers" 344msgid "Recursive importers"
344msgstr "Rekursive Importer" 345msgstr "Rekursive Importer"
345 346
346#. type: subsubsection 347#. type: subsubsection
347#: doc/guix-cookbook.texi:127 doc/guix-cookbook.texi:1428 348#: guix-git/doc/guix-cookbook.texi:127 guix-git/doc/guix-cookbook.texi:1428
348#: doc/guix-cookbook.texi:1489 doc/guix-cookbook.texi:1490 349#: guix-git/doc/guix-cookbook.texi:1489 guix-git/doc/guix-cookbook.texi:1490
349#, no-wrap 350#, no-wrap
350msgid "Automatic update" 351msgid "Automatic update"
351msgstr "Automatisch aktualisieren" 352msgstr "Automatisch aktualisieren"
352 353
353#. type: subsubsection 354#. type: subsubsection
354#: doc/guix-cookbook.texi:127 doc/guix-cookbook.texi:1428 355#: guix-git/doc/guix-cookbook.texi:127 guix-git/doc/guix-cookbook.texi:1428
355#: doc/guix-cookbook.texi:1507 doc/guix-cookbook.texi:1508 356#: guix-git/doc/guix-cookbook.texi:1507 guix-git/doc/guix-cookbook.texi:1508
356#, no-wrap 357#, no-wrap
357msgid "Inheritance" 358msgid "Inheritance"
358msgstr "Vererbung" 359msgstr "Vererbung"
359 360
360#. type: section 361#. type: section
361#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 362#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
362#: doc/guix-cookbook.texi:1608 doc/guix-cookbook.texi:1609 363#: guix-git/doc/guix-cookbook.texi:1608 guix-git/doc/guix-cookbook.texi:1609
363#, no-wrap 364#, no-wrap
364msgid "Auto-Login to a Specific TTY" 365msgid "Auto-Login to a Specific TTY"
365msgstr "Automatisch an virtueller Konsole anmelden" 366msgstr "Automatisch an virtueller Konsole anmelden"
366 367
367#. type: menuentry 368#. type: menuentry
368#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 369#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
369msgid "Automatically Login a User to a Specific TTY" 370msgid "Automatically Login a User to a Specific TTY"
370msgstr "Benutzer an einem bestimmten TTY automatisch anmelden." 371msgstr "Benutzer an einem bestimmten TTY automatisch anmelden."
371 372
372#. type: section 373#. type: section
373#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 374#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
374#: doc/guix-cookbook.texi:1653 doc/guix-cookbook.texi:1654 375#: guix-git/doc/guix-cookbook.texi:1653 guix-git/doc/guix-cookbook.texi:1654
375#, no-wrap 376#, no-wrap
376msgid "Customizing the Kernel" 377msgid "Customizing the Kernel"
377msgstr "Den Kernel anpassen" 378msgstr "Den Kernel anpassen"
378 379
379#. type: menuentry 380#. type: menuentry
380#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 381#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
381msgid "Creating and using a custom Linux kernel on Guix System." 382msgid "Creating and using a custom Linux kernel on Guix System."
382msgstr "Einen eigenen Linux-Kernel auf Guix System erzeugen und benutzen." 383msgstr "Einen eigenen Linux-Kernel auf Guix System erzeugen und benutzen."
383 384
384#. type: section 385#. type: section
385#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 386#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
386#: doc/guix-cookbook.texi:1893 doc/guix-cookbook.texi:1894 387#: guix-git/doc/guix-cookbook.texi:1893 guix-git/doc/guix-cookbook.texi:1894
387#, no-wrap 388#, no-wrap
388msgid "Guix System Image API" 389msgid "Guix System Image API"
389msgstr "Die Image-Schnittstelle von Guix System" 390msgstr "Die Image-Schnittstelle von Guix System"
390 391
391#. type: menuentry 392#. type: menuentry
392#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 393#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
393msgid "Customizing images to target specific platforms." 394msgid "Customizing images to target specific platforms."
394msgstr "Abbilder für bestimmte Plattformen anpassen." 395msgstr "Abbilder für bestimmte Plattformen anpassen."
395 396
396#. type: section 397#. type: section
397#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 398#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
398#: doc/guix-cookbook.texi:2110 doc/guix-cookbook.texi:2111 399#: guix-git/doc/guix-cookbook.texi:2110 guix-git/doc/guix-cookbook.texi:2111
399#, no-wrap 400#, no-wrap
400msgid "Using security keys" 401msgid "Using security keys"
401msgstr "Sicherheitsschlüssel verwenden" 402msgstr "Sicherheitsschlüssel verwenden"
402 403
403#. type: menuentry 404#. type: menuentry
404#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 405#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
405msgid "How to use security keys with Guix System." 406msgid "How to use security keys with Guix System."
406msgstr "Ihre Sicherheitsschlüssel mit Guix System gebrauchen." 407msgstr "Ihre Sicherheitsschlüssel mit Guix System gebrauchen."
407 408
408#. type: section 409#. type: section
409#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 410#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
410#: doc/guix-cookbook.texi:2232 doc/guix-cookbook.texi:2233 411#: guix-git/doc/guix-cookbook.texi:2232 guix-git/doc/guix-cookbook.texi:2233
411#, no-wrap 412#, no-wrap
412msgid "Dynamic DNS mcron job" 413msgid "Dynamic DNS mcron job"
413msgstr "Dynamisches DNS als mcron-Auftrag" 414msgstr "Dynamisches DNS als mcron-Auftrag"
414 415
415#. type: menuentry 416#. type: menuentry
416#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 417#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
417msgid "Job to update the IP address behind a DuckDNS host name." 418msgid "Job to update the IP address behind a DuckDNS host name."
418msgstr "Mit diesem Auftrag bleibt Ihre IP-Adresse bei DuckDNS aktuell." 419msgstr "Mit diesem Auftrag bleibt Ihre IP-Adresse bei DuckDNS aktuell."
419 420
420#. type: section 421#. type: section
421#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 422#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
422#: doc/guix-cookbook.texi:2285 doc/guix-cookbook.texi:2286 423#: guix-git/doc/guix-cookbook.texi:2285 guix-git/doc/guix-cookbook.texi:2286
423#, no-wrap 424#, no-wrap
424msgid "Connecting to Wireguard VPN" 425msgid "Connecting to Wireguard VPN"
425msgstr "Verbinden mit Wireguard VPN" 426msgstr "Verbinden mit Wireguard VPN"
426 427
427#. type: menuentry 428#. type: menuentry
428#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 429#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
429msgid "Connecting to a Wireguard VPN." 430msgid "Connecting to a Wireguard VPN."
430msgstr "Wie man sich mit einem Wireguard-VPN verbindet." 431msgstr "Wie man sich mit einem Wireguard-VPN verbindet."
431 432
432#. type: section 433#. type: section
433#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:145 434#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:145
434#: doc/guix-cookbook.texi:1606 doc/guix-cookbook.texi:2362 435#: guix-git/doc/guix-cookbook.texi:1606 guix-git/doc/guix-cookbook.texi:2362
435#: doc/guix-cookbook.texi:2363 436#: guix-git/doc/guix-cookbook.texi:2363
436#, no-wrap 437#, no-wrap
437msgid "Customizing a Window Manager" 438msgid "Customizing a Window Manager"
438msgstr "Fensterverwalter (Window Manager) anpassen" 439msgstr "Fensterverwalter (Window Manager) anpassen"
439 440
440#. type: menuentry 441#. type: menuentry
441#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 442#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
442msgid "Handle customization of a Window manager on Guix System." 443msgid "Handle customization of a Window manager on Guix System."
443msgstr "Wie man einen Fensterverwalter auf Guix System anpassen kann." 444msgstr "Wie man einen Fensterverwalter auf Guix System anpassen kann."
444 445
445#. type: section 446#. type: section
446#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 447#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
447#: doc/guix-cookbook.texi:2467 doc/guix-cookbook.texi:2468 448#: guix-git/doc/guix-cookbook.texi:2467 guix-git/doc/guix-cookbook.texi:2468
448#, no-wrap 449#, no-wrap
449msgid "Running Guix on a Linode Server" 450msgid "Running Guix on a Linode Server"
450msgstr "Guix auf einem Linode-Server nutzen" 451msgstr "Guix auf einem Linode-Server nutzen"
451 452
452#. type: menuentry 453#. type: menuentry
453#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 454#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
454msgid "Running Guix on a Linode Server." 455msgid "Running Guix on a Linode Server."
455msgstr "Guix auf einem Linode-Server nutzen." 456msgstr "Guix auf einem Linode-Server nutzen."
456 457
457#. type: section 458#. type: section
458#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 459#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
459#: doc/guix-cookbook.texi:2708 doc/guix-cookbook.texi:2709 460#: guix-git/doc/guix-cookbook.texi:2708 guix-git/doc/guix-cookbook.texi:2709
460#, no-wrap 461#, no-wrap
461msgid "Running Guix on a Kimsufi Server" 462msgid "Running Guix on a Kimsufi Server"
462msgstr "Guix auf einem Kimsufi-Server nutzen" 463msgstr "Guix auf einem Kimsufi-Server nutzen"
463 464
464#. type: menuentry 465#. type: menuentry
465#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 466#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
466msgid "Running Guix on a Kimsufi Server." 467msgid "Running Guix on a Kimsufi Server."
467msgstr "Guix auf einem Kimsufi-Server nutzen." 468msgstr "Guix auf einem Kimsufi-Server nutzen."
468 469
469#. type: section 470#. type: section
470#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 471#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
471#: doc/guix-cookbook.texi:2955 doc/guix-cookbook.texi:2956 472#: guix-git/doc/guix-cookbook.texi:2955 guix-git/doc/guix-cookbook.texi:2956
472#, no-wrap 473#, no-wrap
473msgid "Setting up a bind mount" 474msgid "Setting up a bind mount"
474msgstr "Bind-Mounts anlegen" 475msgstr "Bind-Mounts anlegen"
475 476
476#. type: menuentry 477#. type: menuentry
477#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 478#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
478msgid "Setting up a bind mount in the file-systems definition." 479msgid "Setting up a bind mount in the file-systems definition."
479msgstr "Bind-Mounts als Dateisystemdefinition einrichten." 480msgstr "Bind-Mounts als Dateisystemdefinition einrichten."
480 481
481#. type: section 482#. type: section
482#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 483#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
483#: doc/guix-cookbook.texi:3009 doc/guix-cookbook.texi:3010 484#: guix-git/doc/guix-cookbook.texi:3009 guix-git/doc/guix-cookbook.texi:3010
484#, no-wrap 485#, no-wrap
485msgid "Getting substitutes from Tor" 486msgid "Getting substitutes from Tor"
486msgstr "Substitute über Tor beziehen" 487msgstr "Substitute über Tor beziehen"
487 488
488#. type: menuentry 489#. type: menuentry
489#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 490#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
490msgid "Configuring Guix daemon to get substitutes through Tor." 491msgid "Configuring Guix daemon to get substitutes through Tor."
491msgstr "Den Guix-Daemon konfigurieren, damit er Substitute über Tor lädt." 492msgstr "Den Guix-Daemon konfigurieren, damit er Substitute über Tor lädt."
492 493
493#. type: section 494#. type: section
494#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 495#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
495#: doc/guix-cookbook.texi:3073 doc/guix-cookbook.texi:3074 496#: guix-git/doc/guix-cookbook.texi:3073 guix-git/doc/guix-cookbook.texi:3074
496#, no-wrap 497#, no-wrap
497msgid "Setting up NGINX with Lua" 498msgid "Setting up NGINX with Lua"
498msgstr "NGINX mit Lua konfigurieren" 499msgstr "NGINX mit Lua konfigurieren"
499 500
500#. type: menuentry 501#. type: menuentry
501#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 502#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
502msgid "Configuring NGINX web-server to load Lua modules." 503msgid "Configuring NGINX web-server to load Lua modules."
503msgstr "Den NGINX-Web-Server so einrichten, dass Lua-Module geladen werden." 504msgstr "Den NGINX-Web-Server so einrichten, dass Lua-Module geladen werden."
504 505
505#. type: section 506#. type: section
506#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 507#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
507#: doc/guix-cookbook.texi:3130 doc/guix-cookbook.texi:3131 508#: guix-git/doc/guix-cookbook.texi:3130 guix-git/doc/guix-cookbook.texi:3131
508#, no-wrap 509#, no-wrap
509msgid "Music Server with Bluetooth Audio" 510msgid "Music Server with Bluetooth Audio"
510msgstr "Musik-Server mit Bluetooth-Audio" 511msgstr "Musik-Server mit Bluetooth-Audio"
511 512
512#. type: menuentry 513#. type: menuentry
513#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:1606 514#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606
514msgid "Headless music player with Bluetooth output." 515msgid "Headless music player with Bluetooth output."
515msgstr "Musikzentrale ohne Bildschirm mit Bluetooth-Ausgabe." 516msgstr "Musikzentrale ohne Bildschirm mit Bluetooth-Ausgabe."
516 517
517#. type: subsection 518#. type: subsection
518#: doc/guix-cookbook.texi:148 doc/guix-cookbook.texi:2369 519#: guix-git/doc/guix-cookbook.texi:148 guix-git/doc/guix-cookbook.texi:2369
519#: doc/guix-cookbook.texi:2371 doc/guix-cookbook.texi:2372 520#: guix-git/doc/guix-cookbook.texi:2371 guix-git/doc/guix-cookbook.texi:2372
520#, no-wrap 521#, no-wrap
521msgid "StumpWM" 522msgid "StumpWM"
522msgstr "StumpWM" 523msgstr "StumpWM"
523 524
524#. type: subsection 525#. type: subsection
525#: doc/guix-cookbook.texi:148 doc/guix-cookbook.texi:150 526#: guix-git/doc/guix-cookbook.texi:148 guix-git/doc/guix-cookbook.texi:150
526#: doc/guix-cookbook.texi:2369 doc/guix-cookbook.texi:2419 527#: guix-git/doc/guix-cookbook.texi:2369 guix-git/doc/guix-cookbook.texi:2419
527#: doc/guix-cookbook.texi:2420 528#: guix-git/doc/guix-cookbook.texi:2420
528#, no-wrap 529#, no-wrap
529msgid "Session lock" 530msgid "Session lock"
530msgstr "Sitzungen sperren" 531msgstr "Sitzungen sperren"
531 532
532#. type: subsubsection 533#. type: subsubsection
533#: doc/guix-cookbook.texi:152 doc/guix-cookbook.texi:2430 534#: guix-git/doc/guix-cookbook.texi:152 guix-git/doc/guix-cookbook.texi:2430
534#: doc/guix-cookbook.texi:2432 doc/guix-cookbook.texi:2433 535#: guix-git/doc/guix-cookbook.texi:2432 guix-git/doc/guix-cookbook.texi:2433
535#, no-wrap 536#, no-wrap
536msgid "Xorg" 537msgid "Xorg"
537msgstr "Xorg" 538msgstr "Xorg"
538 539
539#. type: section 540#. type: section
540#: doc/guix-cookbook.texi:157 doc/guix-cookbook.texi:3349 541#: guix-git/doc/guix-cookbook.texi:157 guix-git/doc/guix-cookbook.texi:3349
541#: doc/guix-cookbook.texi:3351 doc/guix-cookbook.texi:3352 542#: guix-git/doc/guix-cookbook.texi:3351 guix-git/doc/guix-cookbook.texi:3352
542#, no-wrap 543#, no-wrap
543msgid "Guix Containers" 544msgid "Guix Containers"
544msgstr "Guix-Container" 545msgstr "Guix-Container"
545 546
546#. type: menuentry 547#. type: menuentry
547#: doc/guix-cookbook.texi:157 doc/guix-cookbook.texi:3349 548#: guix-git/doc/guix-cookbook.texi:157 guix-git/doc/guix-cookbook.texi:3349
548msgid "Perfectly isolated environments" 549msgid "Perfectly isolated environments"
549msgstr "Völlig isolierte Umgebungen." 550msgstr "Völlig isolierte Umgebungen."
550 551
551#. type: section 552#. type: section
552#: doc/guix-cookbook.texi:157 doc/guix-cookbook.texi:159 553#: guix-git/doc/guix-cookbook.texi:157 guix-git/doc/guix-cookbook.texi:159
553#: doc/guix-cookbook.texi:3349 doc/guix-cookbook.texi:3500 554#: guix-git/doc/guix-cookbook.texi:3349 guix-git/doc/guix-cookbook.texi:3500
554#: doc/guix-cookbook.texi:3501 555#: guix-git/doc/guix-cookbook.texi:3501
555#, no-wrap 556#, no-wrap
556msgid "Guix System Containers" 557msgid "Guix System Containers"
557msgstr "Container mit Guix System" 558msgstr "Container mit Guix System"
558 559
559#. type: menuentry 560#. type: menuentry
560#: doc/guix-cookbook.texi:157 doc/guix-cookbook.texi:3349 561#: guix-git/doc/guix-cookbook.texi:157 guix-git/doc/guix-cookbook.texi:3349
561msgid "A system inside your system" 562msgid "A system inside your system"
562msgstr "Ein System in Ihrem System." 563msgstr "Ein System in Ihrem System."
563 564
564#. type: subsection 565#. type: subsection
565#: doc/guix-cookbook.texi:162 doc/guix-cookbook.texi:3535 566#: guix-git/doc/guix-cookbook.texi:162 guix-git/doc/guix-cookbook.texi:3535
566#: doc/guix-cookbook.texi:3537 doc/guix-cookbook.texi:3538 567#: guix-git/doc/guix-cookbook.texi:3537 guix-git/doc/guix-cookbook.texi:3538
567#, no-wrap 568#, no-wrap
568msgid "A Database Container" 569msgid "A Database Container"
569msgstr "Ein Datenbank-Container" 570msgstr "Ein Datenbank-Container"
570 571
571#. type: subsection 572#. type: subsection
572#: doc/guix-cookbook.texi:162 doc/guix-cookbook.texi:3535 573#: guix-git/doc/guix-cookbook.texi:162 guix-git/doc/guix-cookbook.texi:3535
573#: doc/guix-cookbook.texi:3649 doc/guix-cookbook.texi:3650 574#: guix-git/doc/guix-cookbook.texi:3649 guix-git/doc/guix-cookbook.texi:3650
574#, no-wrap 575#, no-wrap
575msgid "Container Networking" 576msgid "Container Networking"
576msgstr "Netzwerkverbindungen im Container" 577msgstr "Netzwerkverbindungen im Container"
577 578
578#. type: section 579#. type: section
579#: doc/guix-cookbook.texi:167 doc/guix-cookbook.texi:3738 580#: guix-git/doc/guix-cookbook.texi:167 guix-git/doc/guix-cookbook.texi:3738
580#: doc/guix-cookbook.texi:3740 doc/guix-cookbook.texi:3741 581#: guix-git/doc/guix-cookbook.texi:3740 guix-git/doc/guix-cookbook.texi:3741
581#, no-wrap 582#, no-wrap
582msgid "Network bridge for QEMU" 583msgid "Network bridge for QEMU"
583msgstr "Netzwerkbrücke für QEMU" 584msgstr "Netzwerkbrücke für QEMU"
584 585
585#. type: section 586#. type: section
586#: doc/guix-cookbook.texi:167 doc/guix-cookbook.texi:3738 587#: guix-git/doc/guix-cookbook.texi:167 guix-git/doc/guix-cookbook.texi:3738
587#: doc/guix-cookbook.texi:3861 doc/guix-cookbook.texi:3862 588#: guix-git/doc/guix-cookbook.texi:3863 guix-git/doc/guix-cookbook.texi:3864
588#, no-wrap 589#, no-wrap
589msgid "Routed network for libvirt" 590msgid "Routed network for libvirt"
590msgstr "Netzwerk-Routing anschalten in libvirt" 591msgstr "Netzwerk-Routing anschalten in libvirt"
591 592
592#. type: section 593#. type: section
593#: doc/guix-cookbook.texi:171 doc/guix-cookbook.texi:173 594#: guix-git/doc/guix-cookbook.texi:171 guix-git/doc/guix-cookbook.texi:173
594#: doc/guix-cookbook.texi:3970 doc/guix-cookbook.texi:3972 595#: guix-git/doc/guix-cookbook.texi:3972 guix-git/doc/guix-cookbook.texi:3974
595#: doc/guix-cookbook.texi:3973 596#: guix-git/doc/guix-cookbook.texi:3975
596#, no-wrap 597#, no-wrap
597msgid "Guix Profiles in Practice" 598msgid "Guix Profiles in Practice"
598msgstr "Guix-Profile in der Praxis" 599msgstr "Guix-Profile in der Praxis"
599 600
600#. type: menuentry 601#. type: menuentry
601#: doc/guix-cookbook.texi:171 doc/guix-cookbook.texi:3970 602#: guix-git/doc/guix-cookbook.texi:171 guix-git/doc/guix-cookbook.texi:3972
602msgid "Strategies for multiple profiles and manifests." 603msgid "Strategies for multiple profiles and manifests."
603msgstr "Strategien für mehrere Profile und Manifeste." 604msgstr "Strategien für mehrere Profile und Manifeste."
604 605
605#. type: subsection 606#. type: subsection
606#: doc/guix-cookbook.texi:179 doc/guix-cookbook.texi:4064 607#: guix-git/doc/guix-cookbook.texi:179 guix-git/doc/guix-cookbook.texi:4066
607#: doc/guix-cookbook.texi:4066 doc/guix-cookbook.texi:4067 608#: guix-git/doc/guix-cookbook.texi:4068 guix-git/doc/guix-cookbook.texi:4069
608#, no-wrap 609#, no-wrap
609msgid "Basic setup with manifests" 610msgid "Basic setup with manifests"
610msgstr "Grundlegende Einrichtung über Manifeste" 611msgstr "Grundlegende Einrichtung über Manifeste"
611 612
612#. type: subsection 613#. type: subsection
613#: doc/guix-cookbook.texi:179 doc/guix-cookbook.texi:4064 614#: guix-git/doc/guix-cookbook.texi:179 guix-git/doc/guix-cookbook.texi:4066
614#: doc/guix-cookbook.texi:4202 doc/guix-cookbook.texi:4203 615#: guix-git/doc/guix-cookbook.texi:4204 guix-git/doc/guix-cookbook.texi:4205
615#, no-wrap 616#, no-wrap
616msgid "Required packages" 617msgid "Required packages"
617msgstr "Die nötigen Pakete" 618msgstr "Die nötigen Pakete"
618 619
619#. type: subsection 620#. type: subsection
620#: doc/guix-cookbook.texi:179 doc/guix-cookbook.texi:4064 621#: guix-git/doc/guix-cookbook.texi:179 guix-git/doc/guix-cookbook.texi:4066
621#: doc/guix-cookbook.texi:4230 doc/guix-cookbook.texi:4231 622#: guix-git/doc/guix-cookbook.texi:4232 guix-git/doc/guix-cookbook.texi:4233
622#, no-wrap 623#, no-wrap
623msgid "Default profile" 624msgid "Default profile"
624msgstr "Vorgabeprofil" 625msgstr "Vorgabeprofil"
625 626
626#. type: subsection 627#. type: subsection
627#: doc/guix-cookbook.texi:179 doc/guix-cookbook.texi:4064 628#: guix-git/doc/guix-cookbook.texi:179 guix-git/doc/guix-cookbook.texi:4066
628#: doc/guix-cookbook.texi:4249 doc/guix-cookbook.texi:4250 629#: guix-git/doc/guix-cookbook.texi:4251 guix-git/doc/guix-cookbook.texi:4252
629#, no-wrap 630#, no-wrap
630msgid "The benefits of manifests" 631msgid "The benefits of manifests"
631msgstr "Der Vorteil von Manifesten" 632msgstr "Der Vorteil von Manifesten"
632 633
633#. type: subsection 634#. type: subsection
634#: doc/guix-cookbook.texi:179 doc/guix-cookbook.texi:4064 635#: guix-git/doc/guix-cookbook.texi:179 guix-git/doc/guix-cookbook.texi:4066
635#: doc/guix-cookbook.texi:4324 doc/guix-cookbook.texi:4325 636#: guix-git/doc/guix-cookbook.texi:4326 guix-git/doc/guix-cookbook.texi:4327
636#, no-wrap 637#, no-wrap
637msgid "Reproducible profiles" 638msgid "Reproducible profiles"
638msgstr "Reproduzierbare Profile" 639msgstr "Reproduzierbare Profile"
639 640
640#. type: section 641#. type: section
641#: doc/guix-cookbook.texi:189 doc/guix-cookbook.texi:4397 642#: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399
642#: doc/guix-cookbook.texi:4399 doc/guix-cookbook.texi:4400 643#: guix-git/doc/guix-cookbook.texi:4401 guix-git/doc/guix-cookbook.texi:4402
643#, no-wrap 644#, no-wrap
644msgid "Getting Started" 645msgid "Getting Started"
645msgstr "Einstieg" 646msgstr "Einstieg"
646 647
647#. type: menuentry 648#. type: menuentry
648#: doc/guix-cookbook.texi:189 doc/guix-cookbook.texi:4397 649#: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399
649msgid "Step 0: using `guix shell'." 650msgid "Step 0: using `guix shell'."
650msgstr "Schritt 0: „guix shell“ benutzen." 651msgstr "Schritt 0: „guix shell“ benutzen."
651 652
652#. type: node 653#. type: node
653#: doc/guix-cookbook.texi:189 doc/guix-cookbook.texi:4397 654#: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399
654#: doc/guix-cookbook.texi:4519 655#: guix-git/doc/guix-cookbook.texi:4521
655#, no-wrap 656#, no-wrap
656msgid "Building with Guix" 657msgid "Building with Guix"
657msgstr "Erstellen mit Guix" 658msgstr "Erstellen mit Guix"
658 659
659#. type: menuentry 660#. type: menuentry
660#: doc/guix-cookbook.texi:189 doc/guix-cookbook.texi:4397 661#: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399
661msgid "Step 1: building your code." 662msgid "Step 1: building your code."
662msgstr "Schritt 1: Ihren Code kompilieren." 663msgstr "Schritt 1: Ihren Code kompilieren."
663 664
664#. type: node 665#. type: node
665#: doc/guix-cookbook.texi:189 doc/guix-cookbook.texi:4397 666#: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399
666#: doc/guix-cookbook.texi:4609 667#: guix-git/doc/guix-cookbook.texi:4611
667#, no-wrap 668#, no-wrap
668msgid "The Repository as a Channel" 669msgid "The Repository as a Channel"
669msgstr "Das Repository als Kanal" 670msgstr "Das Repository als Kanal"
670 671
671#. type: menuentry 672#. type: menuentry
672#: doc/guix-cookbook.texi:189 doc/guix-cookbook.texi:4397 673#: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399
673msgid "Step 2: turning the repo in a channel." 674msgid "Step 2: turning the repo in a channel."
674msgstr "Schritt 2: Ein Repo in einen Kanal verwandeln." 675msgstr "Schritt 2: Ein Repo in einen Kanal verwandeln."
675 676
676#. type: node 677#. type: node
677#: doc/guix-cookbook.texi:189 doc/guix-cookbook.texi:4397 678#: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399
678#: doc/guix-cookbook.texi:4745 679#: guix-git/doc/guix-cookbook.texi:4747
679#, no-wrap 680#, no-wrap
680msgid "Package Variants" 681msgid "Package Variants"
681msgstr "Paketvarianten" 682msgstr "Paketvarianten"
682 683
683#. type: menuentry 684#. type: menuentry
684#: doc/guix-cookbook.texi:189 doc/guix-cookbook.texi:4397 685#: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399
685msgid "Bonus: Defining variants." 686msgid "Bonus: Defining variants."
686msgstr "Bonus: Varianten definieren." 687msgstr "Bonus: Varianten definieren."
687 688
688#. type: node 689#. type: node
689#: doc/guix-cookbook.texi:189 doc/guix-cookbook.texi:4397 690#: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399
690#: doc/guix-cookbook.texi:4797 691#: guix-git/doc/guix-cookbook.texi:4799
691#, no-wrap 692#, no-wrap
692msgid "Setting Up Continuous Integration" 693msgid "Setting Up Continuous Integration"
693msgstr "Kontinuierliche Integration einrichten" 694msgstr "Kontinuierliche Integration einrichten"
694 695
695#. type: menuentry 696#. type: menuentry
696#: doc/guix-cookbook.texi:189 doc/guix-cookbook.texi:4397 697#: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399
697msgid "Step 3: continuous integration." 698msgid "Step 3: continuous integration."
698msgstr "Schritt 3: Kontinuierliche Integration." 699msgstr "Schritt 3: Kontinuierliche Integration."
699 700
700#. type: node 701#. type: node
701#: doc/guix-cookbook.texi:189 doc/guix-cookbook.texi:4397 702#: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399
702#: doc/guix-cookbook.texi:4872 703#: guix-git/doc/guix-cookbook.texi:4874
703#, no-wrap 704#, no-wrap
704msgid "Build Manifest" 705msgid "Build Manifest"
705msgstr "Erstellungs-Manifest" 706msgstr "Erstellungs-Manifest"
706 707
707#. type: menuentry 708#. type: menuentry
708#: doc/guix-cookbook.texi:189 doc/guix-cookbook.texi:4397 709#: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399
709msgid "Bonus: Manifest." 710msgid "Bonus: Manifest."
710msgstr "Bonus: Manifest." 711msgstr "Bonus: Manifest."
711 712
712#. type: section 713#. type: section
713#: doc/guix-cookbook.texi:189 doc/guix-cookbook.texi:4397 714#: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399
714#: doc/guix-cookbook.texi:4965 doc/guix-cookbook.texi:4966 715#: guix-git/doc/guix-cookbook.texi:4967 guix-git/doc/guix-cookbook.texi:4968
715#, no-wrap 716#, no-wrap
716msgid "Wrapping Up" 717msgid "Wrapping Up"
717msgstr "Zusammenfassung" 718msgstr "Zusammenfassung"
718 719
719#. type: menuentry 720#. type: menuentry
720#: doc/guix-cookbook.texi:189 doc/guix-cookbook.texi:4397 721#: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399
721msgid "Recap." 722msgid "Recap."
722msgstr "Resümee." 723msgstr "Resümee."
723 724
724#. type: section 725#. type: section
725#: doc/guix-cookbook.texi:193 doc/guix-cookbook.texi:5021 726#: guix-git/doc/guix-cookbook.texi:193 guix-git/doc/guix-cookbook.texi:5023
726#: doc/guix-cookbook.texi:5023 doc/guix-cookbook.texi:5024 727#: guix-git/doc/guix-cookbook.texi:5025 guix-git/doc/guix-cookbook.texi:5026
727#, no-wrap 728#, no-wrap
728msgid "Guix environment via direnv" 729msgid "Guix environment via direnv"
729msgstr "Guix-Umgebung mit direnv" 730msgstr "Guix-Umgebung mit direnv"
730 731
731#. type: menuentry 732#. type: menuentry
732#: doc/guix-cookbook.texi:193 doc/guix-cookbook.texi:5021 733#: guix-git/doc/guix-cookbook.texi:193 guix-git/doc/guix-cookbook.texi:5023
733msgid "Setup Guix environment with direnv" 734msgid "Setup Guix environment with direnv"
734msgstr "Mit direnv Guix-Umgebungen einrichten." 735msgstr "Mit direnv Guix-Umgebungen einrichten."
735 736
736#. type: section 737#. type: section
737#: doc/guix-cookbook.texi:201 doc/guix-cookbook.texi:5168 738#: guix-git/doc/guix-cookbook.texi:201 guix-git/doc/guix-cookbook.texi:5170
738#: doc/guix-cookbook.texi:5170 doc/guix-cookbook.texi:5171 739#: guix-git/doc/guix-cookbook.texi:5172 guix-git/doc/guix-cookbook.texi:5173
739#, no-wrap 740#, no-wrap
740msgid "Setting Up a Head Node" 741msgid "Setting Up a Head Node"
741msgstr "Den Zentralrechner konfigurieren" 742msgstr "Den Zentralrechner konfigurieren"
742 743
743#. type: menuentry 744#. type: menuentry
744#: doc/guix-cookbook.texi:201 doc/guix-cookbook.texi:5168 745#: guix-git/doc/guix-cookbook.texi:201 guix-git/doc/guix-cookbook.texi:5170
745msgid "The node that runs the daemon." 746msgid "The node that runs the daemon."
746msgstr "Auf diesem Rechner läuft der Daemon." 747msgstr "Auf diesem Rechner läuft der Daemon."
747 748
748#. type: section 749#. type: section
749#: doc/guix-cookbook.texi:201 doc/guix-cookbook.texi:5168 750#: guix-git/doc/guix-cookbook.texi:201 guix-git/doc/guix-cookbook.texi:5170
750#: doc/guix-cookbook.texi:5278 doc/guix-cookbook.texi:5279 751#: guix-git/doc/guix-cookbook.texi:5280 guix-git/doc/guix-cookbook.texi:5281
751#, no-wrap 752#, no-wrap
752msgid "Setting Up Compute Nodes" 753msgid "Setting Up Compute Nodes"
753msgstr "Die Arbeitsrechner konfigurieren" 754msgstr "Die Arbeitsrechner konfigurieren"
754 755
755#. type: menuentry 756#. type: menuentry
756#: doc/guix-cookbook.texi:201 doc/guix-cookbook.texi:5168 757#: guix-git/doc/guix-cookbook.texi:201 guix-git/doc/guix-cookbook.texi:5170
757msgid "Client nodes." 758msgid "Client nodes."
758msgstr "Die Client-Knoten." 759msgstr "Die Client-Knoten."
759 760
760#. type: node 761#. type: node
761#: doc/guix-cookbook.texi:201 doc/guix-cookbook.texi:5168 762#: guix-git/doc/guix-cookbook.texi:201 guix-git/doc/guix-cookbook.texi:5170
762#: doc/guix-cookbook.texi:5367 763#: guix-git/doc/guix-cookbook.texi:5369
763#, no-wrap 764#, no-wrap
764msgid "Cluster Network Access" 765msgid "Cluster Network Access"
765msgstr "Netzwerkzugriff im Cluster" 766msgstr "Netzwerkzugriff im Cluster"
766 767
767#. type: menuentry 768#. type: menuentry
768#: doc/guix-cookbook.texi:201 doc/guix-cookbook.texi:5168 769#: guix-git/doc/guix-cookbook.texi:201 guix-git/doc/guix-cookbook.texi:5170
769msgid "Dealing with network access restrictions." 770msgid "Dealing with network access restrictions."
770msgstr "Der Umgang mit eingeschränktem Netzwerkzugriff." 771msgstr "Der Umgang mit eingeschränktem Netzwerkzugriff."
771 772
772#. type: node 773#. type: node
773#: doc/guix-cookbook.texi:201 doc/guix-cookbook.texi:5168 774#: guix-git/doc/guix-cookbook.texi:201 guix-git/doc/guix-cookbook.texi:5170
774#: doc/guix-cookbook.texi:5453 775#: guix-git/doc/guix-cookbook.texi:5455
775#, no-wrap 776#, no-wrap
776msgid "Cluster Disk Usage" 777msgid "Cluster Disk Usage"
777msgstr "Speicherplatz im Cluster" 778msgstr "Speicherplatz im Cluster"
778 779
779#. type: menuentry 780#. type: menuentry
780#: doc/guix-cookbook.texi:201 doc/guix-cookbook.texi:5168 781#: guix-git/doc/guix-cookbook.texi:201 guix-git/doc/guix-cookbook.texi:5170
781msgid "Disk usage considerations." 782msgid "Disk usage considerations."
782msgstr "Mit dem Plattenplatz haushalten." 783msgstr "Mit dem Plattenplatz haushalten."
783 784
784#. type: node 785#. type: node
785#: doc/guix-cookbook.texi:201 doc/guix-cookbook.texi:5168 786#: guix-git/doc/guix-cookbook.texi:201 guix-git/doc/guix-cookbook.texi:5170
786#: doc/guix-cookbook.texi:5498 787#: guix-git/doc/guix-cookbook.texi:5500
787#, no-wrap 788#, no-wrap
788msgid "Cluster Security Considerations" 789msgid "Cluster Security Considerations"
789msgstr "Sicherheit im Cluster" 790msgstr "Sicherheit im Cluster"
790 791
791#. type: menuentry 792#. type: menuentry
792#: doc/guix-cookbook.texi:201 doc/guix-cookbook.texi:5168 793#: guix-git/doc/guix-cookbook.texi:201 guix-git/doc/guix-cookbook.texi:5170
793msgid "Keeping the cluster secure." 794msgid "Keeping the cluster secure."
794msgstr "Sicherheit gewährleisten." 795msgstr "Sicherheit gewährleisten."
795 796
796#. type: Plain text 797#. type: Plain text
797#: doc/guix-cookbook.texi:213 798#: guix-git/doc/guix-cookbook.texi:213
798msgid "GNU@tie{}Guix is written in the general purpose programming language Scheme, and many of its features can be accessed and manipulated programmatically. You can use Scheme to generate package definitions, to modify them, to build them, to deploy whole operating systems, etc." 799msgid "GNU@tie{}Guix is written in the general purpose programming language Scheme, and many of its features can be accessed and manipulated programmatically. You can use Scheme to generate package definitions, to modify them, to build them, to deploy whole operating systems, etc."
799msgstr "GNU@tie{}Guix ist in Scheme geschrieben, einer für alle Anwendungszwecke geeigneten Programmiersprache, und viele Funktionalitäten von Guix können programmatisch angesteuert und verändert werden. Sie können Scheme benutzen, um Paketdefinitionen zu erzeugen, abzuändern, ganze Betriebssysteme einzuspielen etc." 800msgstr "GNU@tie{}Guix ist in Scheme geschrieben, einer für alle Anwendungszwecke geeigneten Programmiersprache, und viele Funktionalitäten von Guix können programmatisch angesteuert und verändert werden. Sie können Scheme benutzen, um Paketdefinitionen zu erzeugen, abzuändern, ganze Betriebssysteme einzuspielen etc."
800 801
801#. type: Plain text 802#. type: Plain text
802#: doc/guix-cookbook.texi:217 803#: guix-git/doc/guix-cookbook.texi:217
803msgid "Knowing the basics of how to program in Scheme will unlock many of the advanced features Guix provides --- and you don't even need to be an experienced programmer to use them!" 804msgid "Knowing the basics of how to program in Scheme will unlock many of the advanced features Guix provides --- and you don't even need to be an experienced programmer to use them!"
804msgstr "Wenn man die Grundzüge kennt, wie man in Scheme programmiert, bekommt man Zugang zu vielen der fortgeschrittenen Funktionen von Guix@tie{}– und Sie müssen dazu nicht einmal ein erfahrener Programmierer sein!" 805msgstr "Wenn man die Grundzüge kennt, wie man in Scheme programmiert, bekommt man Zugang zu vielen der fortgeschrittenen Funktionen von Guix@tie{}– und Sie müssen dazu nicht einmal ein erfahrener Programmierer sein!"
805 806
806#. type: Plain text 807#. type: Plain text
807#: doc/guix-cookbook.texi:219 808#: guix-git/doc/guix-cookbook.texi:219
808msgid "Let's get started!" 809msgid "Let's get started!"
809msgstr "Legen wir los!" 810msgstr "Legen wir los!"
810 811
811#. type: cindex 812#. type: cindex
812#: doc/guix-cookbook.texi:227 813#: guix-git/doc/guix-cookbook.texi:227
813#, no-wrap 814#, no-wrap
814msgid "Scheme, crash course" 815msgid "Scheme, crash course"
815msgstr "Scheme, Schnellkurs" 816msgstr "Scheme, Schnellkurs"
816 817
817#. type: Plain text 818#. type: Plain text
818#: doc/guix-cookbook.texi:233 819#: guix-git/doc/guix-cookbook.texi:233
819msgid "Guix uses the Guile implementation of Scheme. To start playing with the language, install it with @code{guix install guile} and start a @dfn{REPL}---short for @uref{https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop, @dfn{read-eval-print loop}}---by running @code{guile} from the command line." 820msgid "Guix uses the Guile implementation of Scheme. To start playing with the language, install it with @code{guix install guile} and start a @dfn{REPL}---short for @uref{https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop, @dfn{read-eval-print loop}}---by running @code{guile} from the command line."
820msgstr "Die von Guix benutzte Scheme-Implementierung nennt sich Guile. Um mit der Sprache herumspielen zu können, installieren Sie Guile mit @code{guix install guile} und starten eine interaktive Programmierumgebung (englisch @uref{https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop, Read-Eval-Print-Loop}, kurz REPL), indem Sie @code{guile} auf der Befehlszeile ausführen." 821msgstr "Die von Guix benutzte Scheme-Implementierung nennt sich Guile. Um mit der Sprache herumspielen zu können, installieren Sie Guile mit @code{guix install guile} und starten eine interaktive Programmierumgebung (englisch @uref{https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop, Read-Eval-Print-Loop}, kurz REPL), indem Sie @code{guile} auf der Befehlszeile ausführen."
821 822
822#. type: Plain text 823#. type: Plain text
823#: doc/guix-cookbook.texi:236 824#: guix-git/doc/guix-cookbook.texi:236
824msgid "Alternatively you can also run @code{guix shell guile -- guile} if you'd rather not have Guile installed in your user profile." 825msgid "Alternatively you can also run @code{guix shell guile -- guile} if you'd rather not have Guile installed in your user profile."
825msgstr "Alternativ können Sie auch den Befehl @code{guix shell -- guile} ausführen, wenn Sie Guile lieber @emph{nicht} in Ihr Nutzerprofil installieren wollen." 826msgstr "Alternativ können Sie auch den Befehl @code{guix shell -- guile} ausführen, wenn Sie Guile lieber @emph{nicht} in Ihr Nutzerprofil installieren wollen."
826 827
827#. type: Plain text 828#. type: Plain text
828#: doc/guix-cookbook.texi:242 829#: guix-git/doc/guix-cookbook.texi:242
829msgid "In the following examples, lines show what you would type at the REPL; lines starting with ``@result{}'' show evaluation results, while lines starting with ``@print{}'' show things that get printed. @xref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}, for more details on the REPL." 830msgid "In the following examples, lines show what you would type at the REPL; lines starting with ``@result{}'' show evaluation results, while lines starting with ``@print{}'' show things that get printed. @xref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}, for more details on the REPL."
830msgstr "In den folgenden Beispielen stehen die Zeilen dafür, was Sie auf der REPL eintippen; wenn eine Zeile mit „@result{}“ beginnt, zeigt sie das Ergebnis einer Auswertung, während Zeilen, die mit „@print{}“ beginnen, für eine angezeigte Ausgabe stehen. Siehe @ref{Using Guile Interactively,,, guile, das Referenzhandbuch zu GNU Guile} für mehr Details zur REPL." 831msgstr "In den folgenden Beispielen stehen die Zeilen dafür, was Sie auf der REPL eintippen; wenn eine Zeile mit „@result{}“ beginnt, zeigt sie das Ergebnis einer Auswertung, während Zeilen, die mit „@print{}“ beginnen, für eine angezeigte Ausgabe stehen. Siehe @ref{Using Guile Interactively,,, guile, das Referenzhandbuch zu GNU Guile} für mehr Details zur REPL."
831 832
832#. type: itemize 833#. type: itemize
833#: doc/guix-cookbook.texi:250 834#: guix-git/doc/guix-cookbook.texi:250
834msgid "Scheme syntax boils down to a tree of expressions (or @emph{s-expression} in Lisp lingo). An expression can be a literal such as numbers and strings, or a compound which is a parenthesized list of compounds and literals. @code{#true} and @code{#false} (abbreviated @code{#t} and @code{#f}) stand for the Booleans ``true'' and ``false'', respectively." 835msgid "Scheme syntax boils down to a tree of expressions (or @emph{s-expression} in Lisp lingo). An expression can be a literal such as numbers and strings, or a compound which is a parenthesized list of compounds and literals. @code{#true} and @code{#false} (abbreviated @code{#t} and @code{#f}) stand for the Booleans ``true'' and ``false'', respectively."
835msgstr "Die Scheme-Syntax ist an sich ein Baum von Ausdrücken (Lisp-Programmierer nennen sie @emph{symbolische Ausdrücke}, kurz @emph{S-Ausdrücke} bzw.@: englisch @emph{s-expression}). Ein solcher Ausdruck kann ein Literal sein, wie z.B.@: Zahlen oder Zeichenketten, oder er kann ein zusammengesetzter Ausdruck sein, d.h.@: eine geklammerte Liste von zusammengesetzten und literalen Ausdrücken. Dabei stehen @code{#true} und @code{#false} (abgekürzt auch @code{#t} und @code{#f}) jeweils für die Booleschen Werte „wahr“ und „falsch“." 836msgstr "Die Scheme-Syntax ist an sich ein Baum von Ausdrücken (Lisp-Programmierer nennen sie @emph{symbolische Ausdrücke}, kurz @emph{S-Ausdrücke} bzw.@: englisch @emph{s-expression}). Ein solcher Ausdruck kann ein Literal sein, wie z.B.@: Zahlen oder Zeichenketten, oder er kann ein zusammengesetzter Ausdruck sein, d.h.@: eine geklammerte Liste von zusammengesetzten und literalen Ausdrücken. Dabei stehen @code{#true} und @code{#false} (abgekürzt auch @code{#t} und @code{#f}) jeweils für die Booleschen Werte „wahr“ und „falsch“."
836 837
837#. type: itemize 838#. type: itemize
838#: doc/guix-cookbook.texi:252 839#: guix-git/doc/guix-cookbook.texi:252
839msgid "Examples of valid expressions:" 840msgid "Examples of valid expressions:"
840msgstr "Beispiele für gültige Ausdrücke" 841msgstr "Beispiele für gültige Ausdrücke"
841 842
842#. type: lisp 843#. type: lisp
843#: doc/guix-cookbook.texi:256 844#: guix-git/doc/guix-cookbook.texi:256
844#, no-wrap 845#, no-wrap
845msgid "" 846msgid ""
846"\"Hello World!\"\n" 847"\"Hello World!\"\n"
@@ -852,7 +853,7 @@ msgstr ""
852"\n" 853"\n"
853 854
854#. type: lisp 855#. type: lisp
855#: doc/guix-cookbook.texi:259 856#: guix-git/doc/guix-cookbook.texi:259
856#, no-wrap 857#, no-wrap
857msgid "" 858msgid ""
858"17\n" 859"17\n"
@@ -864,7 +865,7 @@ msgstr ""
864"\n" 865"\n"
865 866
866#. type: lisp 867#. type: lisp
867#: doc/guix-cookbook.texi:263 868#: guix-git/doc/guix-cookbook.texi:263
868#, no-wrap 869#, no-wrap
869msgid "" 870msgid ""
870"(display (string-append \"Hello \" \"Guix\" \"\\n\"))\n" 871"(display (string-append \"Hello \" \"Guix\" \"\\n\"))\n"
@@ -876,17 +877,17 @@ msgstr ""
876"@result{} #<unspecified>\n" 877"@result{} #<unspecified>\n"
877 878
878#. type: itemize 879#. type: itemize
879#: doc/guix-cookbook.texi:270 880#: guix-git/doc/guix-cookbook.texi:270
880msgid "This last example is a function call nested in another function call. When a parenthesized expression is evaluated, the first term is the function and the rest are the arguments passed to the function. Every function returns the last evaluated expression as its return value." 881msgid "This last example is a function call nested in another function call. When a parenthesized expression is evaluated, the first term is the function and the rest are the arguments passed to the function. Every function returns the last evaluated expression as its return value."
881msgstr "Das letzte Beispiel eben ist der Aufruf einer Funktion innerhalb eines anderen Funktionsaufrufs. Wenn ein geklammerter Ausdruck ausgewertet wird, ist der erste Term die Funktion und der Rest sind die Argumente, die an die Funktion übergeben werden. Jede Funktion liefert ihren zuletzt ausgewerteten Ausdruck als ihren Rückgabewert." 882msgstr "Das letzte Beispiel eben ist der Aufruf einer Funktion innerhalb eines anderen Funktionsaufrufs. Wenn ein geklammerter Ausdruck ausgewertet wird, ist der erste Term die Funktion und der Rest sind die Argumente, die an die Funktion übergeben werden. Jede Funktion liefert ihren zuletzt ausgewerteten Ausdruck als ihren Rückgabewert."
882 883
883#. type: itemize 884#. type: itemize
884#: doc/guix-cookbook.texi:274 885#: guix-git/doc/guix-cookbook.texi:274
885msgid "Anonymous functions---@dfn{procedures} in Scheme parlance---are declared with the @code{lambda} term:" 886msgid "Anonymous functions---@dfn{procedures} in Scheme parlance---are declared with the @code{lambda} term:"
886msgstr "Anonyme Funktionen@tie{}– bzw.@: Prozeduren, wie man in Scheme sagt@tie{}– werden mit dem @code{lambda}-Term deklariert:" 887msgstr "Anonyme Funktionen@tie{}– bzw.@: Prozeduren, wie man in Scheme sagt@tie{}– werden mit dem @code{lambda}-Term deklariert:"
887 888
888#. type: lisp 889#. type: lisp
889#: doc/guix-cookbook.texi:278 890#: guix-git/doc/guix-cookbook.texi:278
890#, no-wrap 891#, no-wrap
891msgid "" 892msgid ""
892"(lambda (x) (* x x))\n" 893"(lambda (x) (* x x))\n"
@@ -896,12 +897,12 @@ msgstr ""
896"@result{} #<procedure 120e348 at <unknown port>:24:0 (x)>\n" 897"@result{} #<procedure 120e348 at <unknown port>:24:0 (x)>\n"
897 898
898#. type: itemize 899#. type: itemize
899#: doc/guix-cookbook.texi:283 900#: guix-git/doc/guix-cookbook.texi:283
900msgid "The above procedure returns the square of its argument. Since everything is an expression, the @code{lambda} expression returns an anonymous procedure, which can in turn be applied to an argument:" 901msgid "The above procedure returns the square of its argument. Since everything is an expression, the @code{lambda} expression returns an anonymous procedure, which can in turn be applied to an argument:"
901msgstr "Die obige Prozedur liefert das Quadrat ihres Arguments. Weil alles ein Ausdruck ist, liefert der Ausdruck @code{lambda} eine anonyme Prozedur, die wiederum auf ein Argument angewandt werden kann:" 902msgstr "Die obige Prozedur liefert das Quadrat ihres Arguments. Weil alles ein Ausdruck ist, liefert der Ausdruck @code{lambda} eine anonyme Prozedur, die wiederum auf ein Argument angewandt werden kann:"
902 903
903#. type: lisp 904#. type: lisp
904#: doc/guix-cookbook.texi:287 905#: guix-git/doc/guix-cookbook.texi:287
905#, no-wrap 906#, no-wrap
906msgid "" 907msgid ""
907"((lambda (x) (* x x)) 3)\n" 908"((lambda (x) (* x x)) 3)\n"
@@ -911,17 +912,17 @@ msgstr ""
911"@result{} 9\n" 912"@result{} 9\n"
912 913
913#. type: itemize 914#. type: itemize
914#: doc/guix-cookbook.texi:291 915#: guix-git/doc/guix-cookbook.texi:291
915msgid "Procedures are regular values just like numbers, strings, Booleans, and so on." 916msgid "Procedures are regular values just like numbers, strings, Booleans, and so on."
916msgstr "Prozeduren sind normale Werte wie Zahlen, Zeichenketten, Boolesche Ausdrücke und dererlei auch." 917msgstr "Prozeduren sind normale Werte wie Zahlen, Zeichenketten, Boolesche Ausdrücke und dererlei auch."
917 918
918#. type: itemize 919#. type: itemize
919#: doc/guix-cookbook.texi:294 920#: guix-git/doc/guix-cookbook.texi:294
920msgid "Anything can be assigned a global name with @code{define}:" 921msgid "Anything can be assigned a global name with @code{define}:"
921msgstr "Allem kann mit @code{define} ein globaler Name zugewiesen werden:" 922msgstr "Allem kann mit @code{define} ein globaler Name zugewiesen werden:"
922 923
923#. type: lisp 924#. type: lisp
924#: doc/guix-cookbook.texi:300 925#: guix-git/doc/guix-cookbook.texi:300
925#, no-wrap 926#, no-wrap
926msgid "" 927msgid ""
927"(define a 3)\n" 928"(define a 3)\n"
@@ -935,23 +936,23 @@ msgstr ""
935"@result{} 9\n" 936"@result{} 9\n"
936 937
937#. type: itemize 938#. type: itemize
938#: doc/guix-cookbook.texi:304 939#: guix-git/doc/guix-cookbook.texi:304
939msgid "Procedures can be defined more concisely with the following syntax:" 940msgid "Procedures can be defined more concisely with the following syntax:"
940msgstr "Prozeduren können auch kürzer mit der folgenden Syntax definiert werden:" 941msgstr "Prozeduren können auch kürzer mit der folgenden Syntax definiert werden:"
941 942
942#. type: lisp 943#. type: lisp
943#: doc/guix-cookbook.texi:307 944#: guix-git/doc/guix-cookbook.texi:307
944#, no-wrap 945#, no-wrap
945msgid "(define (square x) (* x x))\n" 946msgid "(define (square x) (* x x))\n"
946msgstr "(define (quadrat x) (* x x))\n" 947msgstr "(define (quadrat x) (* x x))\n"
947 948
948#. type: itemize 949#. type: itemize
949#: doc/guix-cookbook.texi:311 950#: guix-git/doc/guix-cookbook.texi:311
950msgid "A list structure can be created with the @code{list} procedure:" 951msgid "A list structure can be created with the @code{list} procedure:"
951msgstr "Eine Listenstruktur kann mit der @code{list}-Prozedur erzeugt werden:" 952msgstr "Eine Listenstruktur kann mit der @code{list}-Prozedur erzeugt werden:"
952 953
953#. type: lisp 954#. type: lisp
954#: doc/guix-cookbook.texi:315 955#: guix-git/doc/guix-cookbook.texi:315
955#, no-wrap 956#, no-wrap
956msgid "" 957msgid ""
957"(list 2 a 5 7)\n" 958"(list 2 a 5 7)\n"
@@ -961,12 +962,12 @@ msgstr ""
961"@result{} (2 3 5 7)\n" 962"@result{} (2 3 5 7)\n"
962 963
963#. type: itemize 964#. type: itemize
964#: doc/guix-cookbook.texi:322 965#: guix-git/doc/guix-cookbook.texi:322
965msgid "Standard procedures are provided by the @code{(srfi srfi-1)} module to create and process lists (@pxref{SRFI-1, list processing,, guile, GNU Guile Reference Manual}). Here are some of the most useful ones in action:" 966msgid "Standard procedures are provided by the @code{(srfi srfi-1)} module to create and process lists (@pxref{SRFI-1, list processing,, guile, GNU Guile Reference Manual}). Here are some of the most useful ones in action:"
966msgstr "Für die Erzeugung und Verarbeitung von Listen stehen im Modul @code{(srfi srfi-1)} Standardprozeduren zur Verfügung (siehe @ref{SRFI-1, Listenverarbeitung,, guile, Referenzhandbuch zu GNU Guile}). Hier ein kurzer Überblick:" 967msgstr "Für die Erzeugung und Verarbeitung von Listen stehen im Modul @code{(srfi srfi-1)} Standardprozeduren zur Verfügung (siehe @ref{SRFI-1, Listenverarbeitung,, guile, Referenzhandbuch zu GNU Guile}). Hier ein kurzer Überblick:"
967 968
968#. type: lisp 969#. type: lisp
969#: doc/guix-cookbook.texi:325 970#: guix-git/doc/guix-cookbook.texi:325
970#, no-wrap 971#, no-wrap
971msgid "" 972msgid ""
972"(use-modules (srfi srfi-1)) ;import list processing procedures\n" 973"(use-modules (srfi srfi-1)) ;import list processing procedures\n"
@@ -976,7 +977,7 @@ msgstr ""
976"\n" 977"\n"
977 978
978#. type: lisp 979#. type: lisp
979#: doc/guix-cookbook.texi:328 980#: guix-git/doc/guix-cookbook.texi:328
980#, no-wrap 981#, no-wrap
981msgid "" 982msgid ""
982"(append (list 1 2) (list 3 4))\n" 983"(append (list 1 2) (list 3 4))\n"
@@ -988,7 +989,7 @@ msgstr ""
988"\n" 989"\n"
989 990
990#. type: lisp 991#. type: lisp
991#: doc/guix-cookbook.texi:331 992#: guix-git/doc/guix-cookbook.texi:331
992#, no-wrap 993#, no-wrap
993msgid "" 994msgid ""
994"(map (lambda (x) (* x x)) (list 1 2 3 4))\n" 995"(map (lambda (x) (* x x)) (list 1 2 3 4))\n"
@@ -1000,7 +1001,7 @@ msgstr ""
1000"\n" 1001"\n"
1001 1002
1002#. type: lisp 1003#. type: lisp
1003#: doc/guix-cookbook.texi:336 1004#: guix-git/doc/guix-cookbook.texi:336
1004#, no-wrap 1005#, no-wrap
1005msgid "" 1006msgid ""
1006"(delete 3 (list 1 2 3 4)) @result{} (1 2 4)\n" 1007"(delete 3 (list 1 2 3 4)) @result{} (1 2 4)\n"
@@ -1014,23 +1015,23 @@ msgstr ""
1014"(find number? (list \"a\" 42 \"b\")) @result{} 42\n" 1015"(find number? (list \"a\" 42 \"b\")) @result{} 42\n"
1015 1016
1016#. type: itemize 1017#. type: itemize
1017#: doc/guix-cookbook.texi:340 1018#: guix-git/doc/guix-cookbook.texi:340
1018msgid "Notice how the first argument to @code{map}, @code{filter}, @code{remove}, and @code{find} is a procedure!" 1019msgid "Notice how the first argument to @code{map}, @code{filter}, @code{remove}, and @code{find} is a procedure!"
1019msgstr "Beachten Sie, dass das erste Argument an @code{map}, @code{filter}, @code{remove} und @code{find} eine Prozedur ist!" 1020msgstr "Beachten Sie, dass das erste Argument an @code{map}, @code{filter}, @code{remove} und @code{find} eine Prozedur ist!"
1020 1021
1021#. type: cindex 1022#. type: cindex
1022#: doc/guix-cookbook.texi:342 1023#: guix-git/doc/guix-cookbook.texi:342
1023#, no-wrap 1024#, no-wrap
1024msgid "S-expression" 1025msgid "S-expression"
1025msgstr "symbolischer Ausdruck (S-expression)" 1026msgstr "symbolischer Ausdruck (S-expression)"
1026 1027
1027#. type: itemize 1028#. type: itemize
1028#: doc/guix-cookbook.texi:347 1029#: guix-git/doc/guix-cookbook.texi:347
1029msgid "The @dfn{quote} disables evaluation of a parenthesized expression, also called an S-expression or ``s-exp'': the first term is not called over the other terms (@pxref{Expression Syntax, quote,, guile, GNU Guile Reference Manual}). Thus it effectively returns a list of terms." 1030msgid "The @dfn{quote} disables evaluation of a parenthesized expression, also called an S-expression or ``s-exp'': the first term is not called over the other terms (@pxref{Expression Syntax, quote,, guile, GNU Guile Reference Manual}). Thus it effectively returns a list of terms."
1030msgstr "Mit dem @dfn{quote}-Zeichen wird das Auswerten eines geklammerten Ausdrucks abgeschaltet (man spricht dann von einem symbolischen Ausdruck, engl.@: „S-Expression“ bzw. „S-exp“): Der erste Term wird @emph{nicht} auf den anderen Termen aufgerufen (siehe @ref{Expression Syntax, quote,, guile, Referenzhandbuch zu GNU Guile}). Folglich liefert es quasi eine Liste von Termen." 1031msgstr "Mit dem @dfn{quote}-Zeichen wird das Auswerten eines geklammerten Ausdrucks abgeschaltet (man spricht dann von einem symbolischen Ausdruck, engl.@: „S-Expression“ bzw. „S-exp“): Der erste Term wird @emph{nicht} auf den anderen Termen aufgerufen (siehe @ref{Expression Syntax, quote,, guile, Referenzhandbuch zu GNU Guile}). Folglich liefert es quasi eine Liste von Termen."
1031 1032
1032#. type: lisp 1033#. type: lisp
1033#: doc/guix-cookbook.texi:351 1034#: guix-git/doc/guix-cookbook.texi:351
1034#, no-wrap 1035#, no-wrap
1035msgid "" 1036msgid ""
1036"'(display (string-append \"Hello \" \"Guix\" \"\\n\"))\n" 1037"'(display (string-append \"Hello \" \"Guix\" \"\\n\"))\n"
@@ -1042,7 +1043,7 @@ msgstr ""
1042"\n" 1043"\n"
1043 1044
1044#. type: lisp 1045#. type: lisp
1045#: doc/guix-cookbook.texi:354 1046#: guix-git/doc/guix-cookbook.texi:354
1046#, no-wrap 1047#, no-wrap
1047msgid "" 1048msgid ""
1048"'(2 a 5 7)\n" 1049"'(2 a 5 7)\n"
@@ -1052,12 +1053,12 @@ msgstr ""
1052"@result{} (2 a 5 7)\n" 1053"@result{} (2 a 5 7)\n"
1053 1054
1054#. type: itemize 1055#. type: itemize
1055#: doc/guix-cookbook.texi:361 1056#: guix-git/doc/guix-cookbook.texi:361
1056msgid "The @code{quasiquote} (@code{`}, a backquote) disables evaluation of a parenthesized expression until @code{unquote} (@code{,}, a comma) re-enables it. Thus it provides us with fine-grained control over what is evaluated and what is not." 1057msgid "The @code{quasiquote} (@code{`}, a backquote) disables evaluation of a parenthesized expression until @code{unquote} (@code{,}, a comma) re-enables it. Thus it provides us with fine-grained control over what is evaluated and what is not."
1057msgstr "Mit einem @code{quasiquote}-Zeichen (@code{`}) wird die Auswertung eines geklammerten Ausdrucks so lange abgeschaltet, bis ein @code{unquote} (ein Komma) sie wieder aktiviert. Wir können damit genau steuern, was ausgewertet wird und was nicht." 1058msgstr "Mit einem @code{quasiquote}-Zeichen (@code{`}) wird die Auswertung eines geklammerten Ausdrucks so lange abgeschaltet, bis ein @code{unquote} (ein Komma) sie wieder aktiviert. Wir können damit genau steuern, was ausgewertet wird und was nicht."
1058 1059
1059#. type: lisp 1060#. type: lisp
1060#: doc/guix-cookbook.texi:365 1061#: guix-git/doc/guix-cookbook.texi:365
1061#, no-wrap 1062#, no-wrap
1062msgid "" 1063msgid ""
1063"`(2 a 5 7 (2 ,a 5 ,(+ a 4)))\n" 1064"`(2 a 5 7 (2 ,a 5 ,(+ a 4)))\n"
@@ -1067,58 +1068,58 @@ msgstr ""
1067"@result{} (2 a 5 7 (2 3 5 7))\n" 1068"@result{} (2 a 5 7 (2 3 5 7))\n"
1068 1069
1069#. type: itemize 1070#. type: itemize
1070#: doc/guix-cookbook.texi:369 1071#: guix-git/doc/guix-cookbook.texi:369
1071msgid "Note that the above result is a list of mixed elements: numbers, symbols (here @code{a}) and the last element is a list itself." 1072msgid "Note that the above result is a list of mixed elements: numbers, symbols (here @code{a}) and the last element is a list itself."
1072msgstr "Beachten Sie, dass obiges Ergebnis eine Liste verschiedenartiger Elemente ist: Zahlen, Symbole (in diesem Fall @code{a}) und als letztes Element selbst wieder eine Liste." 1073msgstr "Beachten Sie, dass obiges Ergebnis eine Liste verschiedenartiger Elemente ist: Zahlen, Symbole (in diesem Fall @code{a}) und als letztes Element selbst wieder eine Liste."
1073 1074
1074#. type: cindex 1075#. type: cindex
1075#: doc/guix-cookbook.texi:371 1076#: guix-git/doc/guix-cookbook.texi:371
1076#, no-wrap 1077#, no-wrap
1077msgid "G-expressions, syntax" 1078msgid "G-expressions, syntax"
1078msgstr "G-Ausdrücke, Syntax" 1079msgstr "G-Ausdrücke, Syntax"
1079 1080
1080#. type: cindex 1081#. type: cindex
1081#: doc/guix-cookbook.texi:372 1082#: guix-git/doc/guix-cookbook.texi:372
1082#, no-wrap 1083#, no-wrap
1083msgid "gexps, syntax" 1084msgid "gexps, syntax"
1084msgstr "Gexps, Syntax" 1085msgstr "Gexps, Syntax"
1085 1086
1086#. type: findex 1087#. type: findex
1087#: doc/guix-cookbook.texi:373 1088#: guix-git/doc/guix-cookbook.texi:373
1088#, no-wrap 1089#, no-wrap
1089msgid "#~" 1090msgid "#~"
1090msgstr "#~" 1091msgstr "#~"
1091 1092
1092#. type: findex 1093#. type: findex
1093#: doc/guix-cookbook.texi:374 1094#: guix-git/doc/guix-cookbook.texi:374
1094#, no-wrap 1095#, no-wrap
1095msgid "#$" 1096msgid "#$"
1096msgstr "#$" 1097msgstr "#$"
1097 1098
1098#. type: findex 1099#. type: findex
1099#: doc/guix-cookbook.texi:375 1100#: guix-git/doc/guix-cookbook.texi:375
1100#, no-wrap 1101#, no-wrap
1101msgid "gexp" 1102msgid "gexp"
1102msgstr "gexp" 1103msgstr "gexp"
1103 1104
1104#. type: findex 1105#. type: findex
1105#: doc/guix-cookbook.texi:376 1106#: guix-git/doc/guix-cookbook.texi:376
1106#, no-wrap 1107#, no-wrap
1107msgid "ungexp" 1108msgid "ungexp"
1108msgstr "ungexp" 1109msgstr "ungexp"
1109 1110
1110#. type: itemize 1111#. type: itemize
1111#: doc/guix-cookbook.texi:382 1112#: guix-git/doc/guix-cookbook.texi:382
1112msgid "Guix defines a variant of S-expressions on steroids called @dfn{G-expressions} or ``gexps'', which come with a variant of @code{quasiquote} and @code{unquote}: @code{#~} (or @code{gexp}) and @code{#$} (or @code{ungexp}). They let you @emph{stage code for later execution}." 1113msgid "Guix defines a variant of S-expressions on steroids called @dfn{G-expressions} or ``gexps'', which come with a variant of @code{quasiquote} and @code{unquote}: @code{#~} (or @code{gexp}) and @code{#$} (or @code{ungexp}). They let you @emph{stage code for later execution}."
1113msgstr "In Guix gibt es außerdem eine aufgeputschte Form von S-Ausdrücken: die @dfn{G-Ausdrücke} oder „Gexps“, die ihre eigene Art von @code{quasiquote} und @code{unquote} haben: @code{#~} (oder @code{gexp}) und @code{#$} (oder @code{ungexp}). Mit Ihnen kennzeichnen Sie, welcher Code @emph{erst später ausgeführt} werden soll („Code-Staging“)." 1114msgstr "In Guix gibt es außerdem eine aufgeputschte Form von S-Ausdrücken: die @dfn{G-Ausdrücke} oder „Gexps“, die ihre eigene Art von @code{quasiquote} und @code{unquote} haben: @code{#~} (oder @code{gexp}) und @code{#$} (oder @code{ungexp}). Mit Ihnen kennzeichnen Sie, welcher Code @emph{erst später ausgeführt} werden soll („Code-Staging“)."
1114 1115
1115#. type: itemize 1116#. type: itemize
1116#: doc/guix-cookbook.texi:386 1117#: guix-git/doc/guix-cookbook.texi:386
1117msgid "For example, you'll encounter gexps in some package definitions where they provide code to be executed during the package build process. They look like this:" 1118msgid "For example, you'll encounter gexps in some package definitions where they provide code to be executed during the package build process. They look like this:"
1118msgstr "G-Ausdrücke begegnen Ihnen etwa in manchen Paketdefinitionen, wo sie eingesetzt werden, damit Code erst bei der Erstellung des Pakets abläuft. Das sieht so aus:" 1119msgstr "G-Ausdrücke begegnen Ihnen etwa in manchen Paketdefinitionen, wo sie eingesetzt werden, damit Code erst bei der Erstellung des Pakets abläuft. Das sieht so aus:"
1119 1120
1120#. type: lisp 1121#. type: lisp
1121#: doc/guix-cookbook.texi:390 1122#: guix-git/doc/guix-cookbook.texi:390
1122#, no-wrap 1123#, no-wrap
1123msgid "" 1124msgid ""
1124"(use-modules (guix gexp) ;so we can write gexps\n" 1125"(use-modules (guix gexp) ;so we can write gexps\n"
@@ -1130,7 +1131,7 @@ msgstr ""
1130"\n" 1131"\n"
1131 1132
1132#. type: lisp 1133#. type: lisp
1133#: doc/guix-cookbook.texi:396 1134#: guix-git/doc/guix-cookbook.texi:396
1134#, no-wrap 1135#, no-wrap
1135msgid "" 1136msgid ""
1136";; Below is a G-expression representing staged code.\n" 1137";; Below is a G-expression representing staged code.\n"
@@ -1148,7 +1149,7 @@ msgstr ""
1148"\n" 1149"\n"
1149 1150
1150#. type: lisp 1151#. type: lisp
1151#: doc/guix-cookbook.texi:399 1152#: guix-git/doc/guix-cookbook.texi:399
1152#, no-wrap 1153#, no-wrap
1153msgid "" 1154msgid ""
1154" ;; Create this package's output directory.\n" 1155" ;; Create this package's output directory.\n"
@@ -1158,17 +1159,17 @@ msgstr ""
1158" (mkdir #$output))\n" 1159" (mkdir #$output))\n"
1159 1160
1160#. type: itemize 1161#. type: itemize
1161#: doc/guix-cookbook.texi:403 1162#: guix-git/doc/guix-cookbook.texi:403
1162msgid "@xref{G-Expressions,,, guix, GNU Guix Reference Manual}, for more on gexps." 1163msgid "@xref{G-Expressions,,, guix, GNU Guix Reference Manual}, for more on gexps."
1163msgstr "Siehe @ref{G-Ausdrücke,,, guix.de, Referenzhandbuch zu GNU Guix} für Details zu G-Ausdrücken." 1164msgstr "Siehe @ref{G-Ausdrücke,,, guix.de, Referenzhandbuch zu GNU Guix} für Details zu G-Ausdrücken."
1164 1165
1165#. type: itemize 1166#. type: itemize
1166#: doc/guix-cookbook.texi:407 1167#: guix-git/doc/guix-cookbook.texi:407
1167msgid "Multiple variables can be named locally with @code{let} (@pxref{Local Bindings,,, guile, GNU Guile Reference Manual}):" 1168msgid "Multiple variables can be named locally with @code{let} (@pxref{Local Bindings,,, guile, GNU Guile Reference Manual}):"
1168msgstr "Mehrere Variable können in einer lokalen Umgebung mit Bezeichnern versehen werden, indem Sie @code{let} benutzen (siehe @ref{Local Bindings,,, guile, Referenzhandbuch zu GNU Guile}):" 1169msgstr "Mehrere Variable können in einer lokalen Umgebung mit Bezeichnern versehen werden, indem Sie @code{let} benutzen (siehe @ref{Local Bindings,,, guile, Referenzhandbuch zu GNU Guile}):"
1169 1170
1170#. type: lisp 1171#. type: lisp
1171#: doc/guix-cookbook.texi:414 1172#: guix-git/doc/guix-cookbook.texi:414
1172#, no-wrap 1173#, no-wrap
1173msgid "" 1174msgid ""
1174"(define x 10)\n" 1175"(define x 10)\n"
@@ -1186,7 +1187,7 @@ msgstr ""
1186"\n" 1187"\n"
1187 1188
1188#. type: lisp 1189#. type: lisp
1189#: doc/guix-cookbook.texi:417 1190#: guix-git/doc/guix-cookbook.texi:417
1190#, no-wrap 1191#, no-wrap
1191msgid "" 1192msgid ""
1192"x\n" 1193"x\n"
@@ -1198,7 +1199,7 @@ msgstr ""
1198"\n" 1199"\n"
1199 1200
1200#. type: lisp 1201#. type: lisp
1201#: doc/guix-cookbook.texi:420 1202#: guix-git/doc/guix-cookbook.texi:420
1202#, no-wrap 1203#, no-wrap
1203msgid "" 1204msgid ""
1204"y\n" 1205"y\n"
@@ -1208,12 +1209,12 @@ msgstr ""
1208"@error{} In procedure module-lookup: Unbound variable: y\n" 1209"@error{} In procedure module-lookup: Unbound variable: y\n"
1209 1210
1210#. type: itemize 1211#. type: itemize
1211#: doc/guix-cookbook.texi:424 1212#: guix-git/doc/guix-cookbook.texi:424
1212msgid "Use @code{let*} to allow later variable declarations to refer to earlier definitions." 1213msgid "Use @code{let*} to allow later variable declarations to refer to earlier definitions."
1213msgstr "Benutzen Sie @code{let*}, damit spätere Variablendeklarationen auf frühere verweisen können." 1214msgstr "Benutzen Sie @code{let*}, damit spätere Variablendeklarationen auf frühere verweisen können."
1214 1215
1215#. type: lisp 1216#. type: lisp
1216#: doc/guix-cookbook.texi:430 1217#: guix-git/doc/guix-cookbook.texi:430
1217#, no-wrap 1218#, no-wrap
1218msgid "" 1219msgid ""
1219"(let* ((x 2)\n" 1220"(let* ((x 2)\n"
@@ -1227,22 +1228,22 @@ msgstr ""
1227"@result{} (2 6)\n" 1228"@result{} (2 6)\n"
1228 1229
1229#. type: itemize 1230#. type: itemize
1230#: doc/guix-cookbook.texi:437 1231#: guix-git/doc/guix-cookbook.texi:437
1231msgid "@dfn{Keywords} are typically used to identify the named parameters of a procedure. They are prefixed by @code{#:} (hash, colon) followed by alphanumeric characters: @code{#:like-this}. @xref{Keywords,,, guile, GNU Guile Reference Manual}." 1232msgid "@dfn{Keywords} are typically used to identify the named parameters of a procedure. They are prefixed by @code{#:} (hash, colon) followed by alphanumeric characters: @code{#:like-this}. @xref{Keywords,,, guile, GNU Guile Reference Manual}."
1232msgstr "Mit @dfn{Schlüsselwörtern} bestimmen wir normalerweise diejenigen Parameter einer Prozedur, die einen Namen haben sollen. Ihnen wird @code{#:} (Doppelkreuz und Doppelpunkt) vorangestellt, gefolgt von alphanumerischen Zeichen: @code{#:etwa-so}. Siehe @ref{Keywords,,, guile, Referenzhandbuch zu GNU Guile}." 1233msgstr "Mit @dfn{Schlüsselwörtern} bestimmen wir normalerweise diejenigen Parameter einer Prozedur, die einen Namen haben sollen. Ihnen wird @code{#:} (Doppelkreuz und Doppelpunkt) vorangestellt, gefolgt von alphanumerischen Zeichen: @code{#:etwa-so}. Siehe @ref{Keywords,,, guile, Referenzhandbuch zu GNU Guile}."
1233 1234
1234#. type: itemize 1235#. type: itemize
1235#: doc/guix-cookbook.texi:442 1236#: guix-git/doc/guix-cookbook.texi:442
1236msgid "The percentage @code{%} is typically used for read-only global variables in the build stage. Note that it is merely a convention, like @code{_} in C. Scheme treats @code{%} exactly the same as any other letter." 1237msgid "The percentage @code{%} is typically used for read-only global variables in the build stage. Note that it is merely a convention, like @code{_} in C. Scheme treats @code{%} exactly the same as any other letter."
1237msgstr "Das Prozentzeichen @code{%} wird in der Regel für globale Variable auf Erstellungsebene benutzt, auf die nur lesend zugegriffen werden soll. Beachten Sie, dass es sich dabei nur um eine Konvention handelt, ähnlich wie @code{_} in C@. Scheme behandelt @code{%} genau wie jedes andere Zeichen." 1238msgstr "Das Prozentzeichen @code{%} wird in der Regel für globale Variable auf Erstellungsebene benutzt, auf die nur lesend zugegriffen werden soll. Beachten Sie, dass es sich dabei nur um eine Konvention handelt, ähnlich wie @code{_} in C@. Scheme behandelt @code{%} genau wie jedes andere Zeichen."
1238 1239
1239#. type: itemize 1240#. type: itemize
1240#: doc/guix-cookbook.texi:446 1241#: guix-git/doc/guix-cookbook.texi:446
1241msgid "Modules are created with @code{define-module} (@pxref{Creating Guile Modules,,, guile, GNU Guile Reference Manual}). For instance" 1242msgid "Modules are created with @code{define-module} (@pxref{Creating Guile Modules,,, guile, GNU Guile Reference Manual}). For instance"
1242msgstr "Module werden mit Hilfe von @code{define-module} erzeugt (siehe @ref{Creating Guile Modules,,, guile, Referenzhandbuch zu GNU Guile}). Zum Beispiel definiert man mit" 1243msgstr "Module werden mit Hilfe von @code{define-module} erzeugt (siehe @ref{Creating Guile Modules,,, guile, Referenzhandbuch zu GNU Guile}). Zum Beispiel definiert man mit"
1243 1244
1244#. type: lisp 1245#. type: lisp
1245#: doc/guix-cookbook.texi:452 1246#: guix-git/doc/guix-cookbook.texi:452
1246#, no-wrap 1247#, no-wrap
1247msgid "" 1248msgid ""
1248"(define-module (guix build-system ruby)\n" 1249"(define-module (guix build-system ruby)\n"
@@ -1256,48 +1257,48 @@ msgstr ""
1256" ruby-build-system))\n" 1257" ruby-build-system))\n"
1257 1258
1258#. type: itemize 1259#. type: itemize
1259#: doc/guix-cookbook.texi:458 1260#: guix-git/doc/guix-cookbook.texi:458
1260msgid "defines the module @code{guix build-system ruby} which must be located in @file{guix/build-system/ruby.scm} somewhere in the Guile load path. It depends on the @code{(guix store)} module and it exports two variables, @code{ruby-build} and @code{ruby-build-system}." 1261msgid "defines the module @code{guix build-system ruby} which must be located in @file{guix/build-system/ruby.scm} somewhere in the Guile load path. It depends on the @code{(guix store)} module and it exports two variables, @code{ruby-build} and @code{ruby-build-system}."
1261msgstr "das Modul @code{guix build-system ruby}, das sich unter dem Pfad @file{guix/build-system/ruby.scm} innerhalb irgendeines Verzeichnisses im Guile-Ladepfad befinden muss. Es hat eine Abhängigkeit auf das Modul @code{(guix store)} und exportiert zwei seiner Variablen, @code{ruby-build} und @code{ruby-build-system}." 1262msgstr "das Modul @code{guix build-system ruby}, das sich unter dem Pfad @file{guix/build-system/ruby.scm} innerhalb irgendeines Verzeichnisses im Guile-Ladepfad befinden muss. Es hat eine Abhängigkeit auf das Modul @code{(guix store)} und exportiert zwei seiner Variablen, @code{ruby-build} und @code{ruby-build-system}."
1262 1263
1263#. type: itemize 1264#. type: itemize
1264#: doc/guix-cookbook.texi:461 1265#: guix-git/doc/guix-cookbook.texi:461
1265msgid "@xref{Package Modules,,, guix, GNU Guix Reference Manual}, for info on modules that define packages." 1266msgid "@xref{Package Modules,,, guix, GNU Guix Reference Manual}, for info on modules that define packages."
1266msgstr "Siehe @ref{Paketmodule,,, guix.de, Referenzhandbuch zu GNU Guix} für Informationen zu Modulen, in denen Pakete definiert werden." 1267msgstr "Siehe @ref{Paketmodule,,, guix.de, Referenzhandbuch zu GNU Guix} für Informationen zu Modulen, in denen Pakete definiert werden."
1267 1268
1268#. type: quotation 1269#. type: quotation
1269#: doc/guix-cookbook.texi:463 1270#: guix-git/doc/guix-cookbook.texi:463
1270#, no-wrap 1271#, no-wrap
1271msgid "Going further" 1272msgid "Going further"
1272msgstr "Vertiefung" 1273msgstr "Vertiefung"
1273 1274
1274#. type: quotation 1275#. type: quotation
1275#: doc/guix-cookbook.texi:467 1276#: guix-git/doc/guix-cookbook.texi:467
1276msgid "Scheme is a language that has been widely used to teach programming and you'll find plenty of material using it as a vehicle. Here's a selection of documents to learn more about Scheme:" 1277msgid "Scheme is a language that has been widely used to teach programming and you'll find plenty of material using it as a vehicle. Here's a selection of documents to learn more about Scheme:"
1277msgstr "Die Sprache Scheme wurde oft eingesetzt, um Programmieren beizubringen, daher gibt es ein breites Angebot an Lehrmaterialien, die sie als Transportmittel einsetzen. Hier sehen Sie eine Auswahl solcher Dokumente, mit denen Sie mehr über Scheme erfahren können:" 1278msgstr "Die Sprache Scheme wurde oft eingesetzt, um Programmieren beizubringen, daher gibt es ein breites Angebot an Lehrmaterialien, die sie als Transportmittel einsetzen. Hier sehen Sie eine Auswahl solcher Dokumente, mit denen Sie mehr über Scheme erfahren können:"
1278 1279
1279#. type: itemize 1280#. type: itemize
1280#: doc/guix-cookbook.texi:472 1281#: guix-git/doc/guix-cookbook.texi:472
1281msgid "@uref{https://spritely.institute/static/papers/scheme-primer.html, @i{A Scheme Primer}}, by Christine Lemmer-Webber and the Spritely Institute." 1282msgid "@uref{https://spritely.institute/static/papers/scheme-primer.html, @i{A Scheme Primer}}, by Christine Lemmer-Webber and the Spritely Institute."
1282msgstr "@uref{https://spritely.institute/news/ein-scheme-primer.html, @i{Ein Scheme-Primer}}, von Christine Lemmer-Webber und dem Spritely Institute, auf Deutsch übersetzt von Florian Pelz." 1283msgstr "@uref{https://spritely.institute/news/ein-scheme-primer.html, @i{Ein Scheme-Primer}}, von Christine Lemmer-Webber und dem Spritely Institute, auf Deutsch übersetzt von Florian Pelz."
1283 1284
1284#. type: itemize 1285#. type: itemize
1285#: doc/guix-cookbook.texi:476 1286#: guix-git/doc/guix-cookbook.texi:476
1286msgid "@uref{http://www.troubleshooters.com/codecorn/scheme_guile/hello.htm, @i{Scheme at a Glance}}, by Steve Litt." 1287msgid "@uref{http://www.troubleshooters.com/codecorn/scheme_guile/hello.htm, @i{Scheme at a Glance}}, by Steve Litt."
1287msgstr "@uref{http://www.troubleshooters.com/codecorn/scheme_guile/hello.htm, @i{Scheme at a Glance}} von Steve Litt." 1288msgstr "@uref{http://www.troubleshooters.com/codecorn/scheme_guile/hello.htm, @i{Scheme at a Glance}} von Steve Litt."
1288 1289
1289#. type: itemize 1290#. type: itemize
1290#: doc/guix-cookbook.texi:483 1291#: guix-git/doc/guix-cookbook.texi:483
1291msgid "@uref{https://sarabander.github.io/sicp/, @i{Structure and Interpretation of Computer Programs}}, by Harold Abelson and Gerald Jay Sussman, with Julie Sussman. Colloquially known as ``SICP'', this book is a reference." 1292msgid "@uref{https://sarabander.github.io/sicp/, @i{Structure and Interpretation of Computer Programs}}, by Harold Abelson and Gerald Jay Sussman, with Julie Sussman. Colloquially known as ``SICP'', this book is a reference."
1292msgstr "Eines der Referenzbücher zu Scheme ist das einflussreiche „Structure and Interpretation of Computer Programs“, von Harold Abelson und Gerald Jay Sussman, mit Julie Sussman. Eine deutsche Übersetzung „Struktur und Interpretation von Computerprogrammen“ hat Susanne Daniels-Herold verfasst. Vom englischen Original finden Sie eine @uref{https://sarabander.github.io/sicp/, kostenlose Ausgabe online}. Viele kennen es unter dem Akronym SICP." 1293msgstr "Eines der Referenzbücher zu Scheme ist das einflussreiche „Structure and Interpretation of Computer Programs“, von Harold Abelson und Gerald Jay Sussman, mit Julie Sussman. Eine deutsche Übersetzung „Struktur und Interpretation von Computerprogrammen“ hat Susanne Daniels-Herold verfasst. Vom englischen Original finden Sie eine @uref{https://sarabander.github.io/sicp/, kostenlose Ausgabe online}. Viele kennen es unter dem Akronym SICP."
1293 1294
1294#. type: itemize 1295#. type: itemize
1295#: doc/guix-cookbook.texi:485 1296#: guix-git/doc/guix-cookbook.texi:485
1296msgid "You can also install it and read it from your computer:" 1297msgid "You can also install it and read it from your computer:"
1297msgstr "Das Buch können Sie auch installieren und von Ihrem Rechner aus lesen:" 1298msgstr "Das Buch können Sie auch installieren und von Ihrem Rechner aus lesen:"
1298 1299
1299#. type: example 1300#. type: example
1300#: doc/guix-cookbook.texi:489 1301#: guix-git/doc/guix-cookbook.texi:489
1301#, no-wrap 1302#, no-wrap
1302msgid "" 1303msgid ""
1303"guix install sicp info-reader\n" 1304"guix install sicp info-reader\n"
@@ -1307,63 +1308,63 @@ msgstr ""
1307"info sicp\n" 1308"info sicp\n"
1308 1309
1309#. type: quotation 1310#. type: quotation
1310#: doc/guix-cookbook.texi:495 1311#: guix-git/doc/guix-cookbook.texi:495
1311msgid "You'll find more books, tutorials and other resources at @url{https://schemers.org/}." 1312msgid "You'll find more books, tutorials and other resources at @url{https://schemers.org/}."
1312msgstr "Sie finden noch mehr Bücher, Anleitungen und andere Ressourcen auf @url{https://schemers.org/}." 1313msgstr "Sie finden noch mehr Bücher, Anleitungen und andere Ressourcen auf @url{https://schemers.org/}."
1313 1314
1314#. type: cindex 1315#. type: cindex
1315#: doc/guix-cookbook.texi:502 1316#: guix-git/doc/guix-cookbook.texi:502
1316#, no-wrap 1317#, no-wrap
1317msgid "packaging" 1318msgid "packaging"
1318msgstr "Pakete schreiben" 1319msgstr "Pakete schreiben"
1319 1320
1320#. type: Plain text 1321#. type: Plain text
1321#: doc/guix-cookbook.texi:508 1322#: guix-git/doc/guix-cookbook.texi:508
1322msgid "This chapter is dedicated to teaching you how to add packages to the collection of packages that come with GNU Guix. This involves writing package definitions in Guile Scheme, organizing them in package modules, and building them." 1323msgid "This chapter is dedicated to teaching you how to add packages to the collection of packages that come with GNU Guix. This involves writing package definitions in Guile Scheme, organizing them in package modules, and building them."
1323msgstr "In diesem Kapitel bringen wir Ihnen bei, wie Sie Pakete zur mit GNU Guix ausgelieferten Paketsammlung beitragen. Dazu gehört, Paketdefinitionen in Guile Scheme zu schreiben, sie in Paketmodulen zu organisieren und sie zu erstellen." 1324msgstr "In diesem Kapitel bringen wir Ihnen bei, wie Sie Pakete zur mit GNU Guix ausgelieferten Paketsammlung beitragen. Dazu gehört, Paketdefinitionen in Guile Scheme zu schreiben, sie in Paketmodulen zu organisieren und sie zu erstellen."
1324 1325
1325#. type: Plain text 1326#. type: Plain text
1326#: doc/guix-cookbook.texi:522 1327#: guix-git/doc/guix-cookbook.texi:522
1327msgid "GNU Guix stands out as the @emph{hackable} package manager, mostly because it uses @uref{https://www.gnu.org/software/guile/, GNU Guile}, a powerful high-level programming language, one of the @uref{https://en.wikipedia.org/wiki/Scheme_%28programming_language%29, Scheme} dialects from the @uref{https://en.wikipedia.org/wiki/Lisp_%28programming_language%29, Lisp family}." 1328msgid "GNU Guix stands out as the @emph{hackable} package manager, mostly because it uses @uref{https://www.gnu.org/software/guile/, GNU Guile}, a powerful high-level programming language, one of the @uref{https://en.wikipedia.org/wiki/Scheme_%28programming_language%29, Scheme} dialects from the @uref{https://en.wikipedia.org/wiki/Lisp_%28programming_language%29, Lisp family}."
1328msgstr "GNU Guix zeichnet sich in erster Linie deswegen als das @emph{hackbare} Paketverwaltungswerkzeug aus, weil es mit @uref{https://www.gnu.org/software/guile/, GNU Guile} arbeitet, einer mächtigen, hochsprachlichen Programmiersprache, die einen der Dialekte von @uref{https://de.wikipedia.org/wiki/Scheme, Scheme} darstellt. Scheme wiederum gehört zur @uref{https://de.wikipedia.org/wiki/Lisp, Lisp-Familie von Programmiersprachen}." 1329msgstr "GNU Guix zeichnet sich in erster Linie deswegen als das @emph{hackbare} Paketverwaltungswerkzeug aus, weil es mit @uref{https://www.gnu.org/software/guile/, GNU Guile} arbeitet, einer mächtigen, hochsprachlichen Programmiersprache, die einen der Dialekte von @uref{https://de.wikipedia.org/wiki/Scheme, Scheme} darstellt. Scheme wiederum gehört zur @uref{https://de.wikipedia.org/wiki/Lisp, Lisp-Familie von Programmiersprachen}."
1329 1330
1330#. type: Plain text 1331#. type: Plain text
1331#: doc/guix-cookbook.texi:526 1332#: guix-git/doc/guix-cookbook.texi:526
1332msgid "Package definitions are also written in Scheme, which empowers Guix in some very unique ways, unlike most other package managers that use shell scripts or simple languages." 1333msgid "Package definitions are also written in Scheme, which empowers Guix in some very unique ways, unlike most other package managers that use shell scripts or simple languages."
1333msgstr "Paketdefinitionen werden ebenso in Scheme geschrieben, wodurch Guix auf sehr einzigartige Weise mächtiger wird als die meisten anderen Paketverwaltungssysteme, die Shell-Skripte oder einfache Sprachen benutzen." 1334msgstr "Paketdefinitionen werden ebenso in Scheme geschrieben, wodurch Guix auf sehr einzigartige Weise mächtiger wird als die meisten anderen Paketverwaltungssysteme, die Shell-Skripte oder einfache Sprachen benutzen."
1334 1335
1335#. type: itemize 1336#. type: itemize
1336#: doc/guix-cookbook.texi:531 1337#: guix-git/doc/guix-cookbook.texi:531
1337msgid "Use functions, structures, macros and all of Scheme expressiveness for your package definitions." 1338msgid "Use functions, structures, macros and all of Scheme expressiveness for your package definitions."
1338msgstr "Sie können sich Funktionen, Strukturen, Makros und all die Ausdrucksstärke von Scheme für Ihre Paketdefinitionen zu Nutze machen." 1339msgstr "Sie können sich Funktionen, Strukturen, Makros und all die Ausdrucksstärke von Scheme für Ihre Paketdefinitionen zu Nutze machen."
1339 1340
1340#. type: itemize 1341#. type: itemize
1341#: doc/guix-cookbook.texi:535 1342#: guix-git/doc/guix-cookbook.texi:535
1342msgid "Inheritance makes it easy to customize a package by inheriting from it and modifying only what is needed." 1343msgid "Inheritance makes it easy to customize a package by inheriting from it and modifying only what is needed."
1343msgstr "Durch Vererbung können Sie ohne viel Aufwand ein Paket anpassen, indem Sie von ihm erben lassen und nur das Nötige abändern." 1344msgstr "Durch Vererbung können Sie ohne viel Aufwand ein Paket anpassen, indem Sie von ihm erben lassen und nur das Nötige abändern."
1344 1345
1345#. type: itemize 1346#. type: itemize
1346#: doc/guix-cookbook.texi:545 1347#: guix-git/doc/guix-cookbook.texi:545
1347msgid "Batch processing: the whole package collection can be parsed, filtered and processed. Building a headless server with all graphical interfaces stripped out? It's possible. Want to rebuild everything from source using specific compiler optimization flags? Pass the @code{#:make-flags \"...\"} argument to the list of packages. It wouldn't be a stretch to think @uref{https://wiki.gentoo.org/wiki/USE_flag, Gentoo USE flags} here, but this goes even further: the changes don't have to be thought out beforehand by the packager, they can be @emph{programmed} by the user!" 1348msgid "Batch processing: the whole package collection can be parsed, filtered and processed. Building a headless server with all graphical interfaces stripped out? It's possible. Want to rebuild everything from source using specific compiler optimization flags? Pass the @code{#:make-flags \"...\"} argument to the list of packages. It wouldn't be a stretch to think @uref{https://wiki.gentoo.org/wiki/USE_flag, Gentoo USE flags} here, but this goes even further: the changes don't have to be thought out beforehand by the packager, they can be @emph{programmed} by the user!"
1348msgstr "Stapelverarbeitung („batch mode“) wird möglich; die ganze Paketsammlung kann analysiert, gefiltert und verarbeitet werden. Versuchen Sie, ein Serversystem ohne Bildschirm („headless“) auch tatsächlich von allen Grafikschnittstellen zu befreien? Das ist möglich. Möchten Sie alles von Neuem aus seinem Quellcode erstellen, aber mit eingeschalteten besonderen Compileroptimierungen? Übergeben Sie einfach das passende @code{#:make-flags \"...\"}-Argument an die Paketliste. Es wäre nicht übertrieben, hier an die @uref{https://wiki.gentoo.org/wiki/USE_flag, USE-Optionen von Gentoo} zu denken, aber das hier übertrifft sie: Der Paketautor muss vorher gar nicht darüber nachgedacht haben, der Nutzer kann sie selbst @emph{programmieren}!" 1349msgstr "Stapelverarbeitung („batch mode“) wird möglich; die ganze Paketsammlung kann analysiert, gefiltert und verarbeitet werden. Versuchen Sie, ein Serversystem ohne Bildschirm („headless“) auch tatsächlich von allen Grafikschnittstellen zu befreien? Das ist möglich. Möchten Sie alles von Neuem aus seinem Quellcode erstellen, aber mit eingeschalteten besonderen Compileroptimierungen? Übergeben Sie einfach das passende @code{#:make-flags \"...\"}-Argument an die Paketliste. Es wäre nicht übertrieben, hier an die @uref{https://wiki.gentoo.org/wiki/USE_flag, USE-Optionen von Gentoo} zu denken, aber das hier übertrifft sie: Der Paketautor muss vorher gar nicht darüber nachgedacht haben, der Nutzer kann sie selbst @emph{programmieren}!"
1349 1350
1350#. type: Plain text 1351#. type: Plain text
1351#: doc/guix-cookbook.texi:551 1352#: guix-git/doc/guix-cookbook.texi:551
1352msgid "The following tutorial covers all the basics around package creation with Guix. It does not assume much knowledge of the Guix system nor of the Lisp language. The reader is only expected to be familiar with the command line and to have some basic programming knowledge." 1353msgid "The following tutorial covers all the basics around package creation with Guix. It does not assume much knowledge of the Guix system nor of the Lisp language. The reader is only expected to be familiar with the command line and to have some basic programming knowledge."
1353msgstr "Die folgende Anleitung erklärt alles Grundlegende über das Schreiben von Paketen mit Guix. Dabei setzen wir kein großes Wissen über das Guix-System oder die Lisp-Sprache voraus. Vom Leser wird nur erwartet, dass er mit der Befehlszeile vertraut ist und über grundlegende Programmierkenntnisse verfügt." 1354msgstr "Die folgende Anleitung erklärt alles Grundlegende über das Schreiben von Paketen mit Guix. Dabei setzen wir kein großes Wissen über das Guix-System oder die Lisp-Sprache voraus. Vom Leser wird nur erwartet, dass er mit der Befehlszeile vertraut ist und über grundlegende Programmierkenntnisse verfügt."
1354 1355
1355#. type: Plain text 1356#. type: Plain text
1356#: doc/guix-cookbook.texi:569 1357#: guix-git/doc/guix-cookbook.texi:569
1357msgid "The ``Defining Packages'' section of the manual introduces the basics of Guix packaging (@pxref{Defining Packages,,, guix, GNU Guix Reference Manual}). In the following section, we will partly go over those basics again." 1358msgid "The ``Defining Packages'' section of the manual introduces the basics of Guix packaging (@pxref{Defining Packages,,, guix, GNU Guix Reference Manual}). In the following section, we will partly go over those basics again."
1358msgstr "Der Abschnitt „Pakete definieren“ im Handbuch führt in die Grundlagen des Paketschreibens für Guix ein (siehe @ref{Pakete definieren,,, guix.de, Referenzhandbuch zu GNU Guix}). Im folgenden Abschnitt werden wir diese Grundlagen teilweise rekapitulieren." 1359msgstr "Der Abschnitt „Pakete definieren“ im Handbuch führt in die Grundlagen des Paketschreibens für Guix ein (siehe @ref{Pakete definieren,,, guix.de, Referenzhandbuch zu GNU Guix}). Im folgenden Abschnitt werden wir diese Grundlagen teilweise rekapitulieren."
1359 1360
1360#. type: Plain text 1361#. type: Plain text
1361#: doc/guix-cookbook.texi:575 1362#: guix-git/doc/guix-cookbook.texi:575
1362msgid "GNU@tie{}Hello is a dummy project that serves as an idiomatic example for packaging. It uses the GNU build system (@code{./configure && make && make install}). Guix already provides a package definition which is a perfect example to start with. You can look up its declaration with @code{guix edit hello} from the command line. Let's see how it looks:" 1363msgid "GNU@tie{}Hello is a dummy project that serves as an idiomatic example for packaging. It uses the GNU build system (@code{./configure && make && make install}). Guix already provides a package definition which is a perfect example to start with. You can look up its declaration with @code{guix edit hello} from the command line. Let's see how it looks:"
1363msgstr "GNU@tie{}Hello ist ein Projekt, das uns als Stellvertreter für „richtige“ Projekte und allgemeines Beispiel für das Schreiben von Paketen dient. Es verwendet das GNU-Erstellungssystem (@code{./configure && make && make install}). Guix stellt uns schon eine Paketdefinition zur Verfügung, die uns einen perfekten Ausgangspunkt bietet. Sie können sich ihre Deklaration anschauen, indem Sie @code{guix edit hello} von der Befehlszeile ausführen. Schauen wir sie uns an:" 1364msgstr "GNU@tie{}Hello ist ein Projekt, das uns als Stellvertreter für „richtige“ Projekte und allgemeines Beispiel für das Schreiben von Paketen dient. Es verwendet das GNU-Erstellungssystem (@code{./configure && make && make install}). Guix stellt uns schon eine Paketdefinition zur Verfügung, die uns einen perfekten Ausgangspunkt bietet. Sie können sich ihre Deklaration anschauen, indem Sie @code{guix edit hello} von der Befehlszeile ausführen. Schauen wir sie uns an:"
1364 1365
1365#. type: lisp 1366#. type: lisp
1366#: doc/guix-cookbook.texi:596 1367#: guix-git/doc/guix-cookbook.texi:596
1367#, no-wrap 1368#, no-wrap
1368msgid "" 1369msgid ""
1369"(define-public hello\n" 1370"(define-public hello\n"
@@ -1407,137 +1408,137 @@ msgstr ""
1407" (license gpl3+)))\n" 1408" (license gpl3+)))\n"
1408 1409
1409#. type: Plain text 1410#. type: Plain text
1410#: doc/guix-cookbook.texi:600 1411#: guix-git/doc/guix-cookbook.texi:600
1411msgid "As you can see, most of it is rather straightforward. But let's review the fields together:" 1412msgid "As you can see, most of it is rather straightforward. But let's review the fields together:"
1412msgstr "Wie Sie sehen können, ist das meiste klar strukturiert. Aber sehen wir uns die Felder zusammen an:" 1413msgstr "Wie Sie sehen können, ist das meiste klar strukturiert. Aber sehen wir uns die Felder zusammen an:"
1413 1414
1414#. type: item 1415#. type: item
1415#: doc/guix-cookbook.texi:602 1416#: guix-git/doc/guix-cookbook.texi:602
1416#, no-wrap 1417#, no-wrap
1417msgid "name" 1418msgid "name"
1418msgstr "name" 1419msgstr "name"
1419 1420
1420#. type: table 1421#. type: table
1421#: doc/guix-cookbook.texi:605 1422#: guix-git/doc/guix-cookbook.texi:605
1422msgid "The project name. Using Scheme conventions, we prefer to keep it lower case, without underscore and using dash-separated words." 1423msgid "The project name. Using Scheme conventions, we prefer to keep it lower case, without underscore and using dash-separated words."
1423msgstr "Der Name des Projekts. Wir halten uns an die Konventionen von Scheme und bevorzugen deshalb Kleinschreibung ohne Unterstriche, sondern mit Bindestrichen zwischen den Wörtern." 1424msgstr "Der Name des Projekts. Wir halten uns an die Konventionen von Scheme und bevorzugen deshalb Kleinschreibung ohne Unterstriche, sondern mit Bindestrichen zwischen den Wörtern."
1424 1425
1425#. type: item 1426#. type: item
1426#: doc/guix-cookbook.texi:606 1427#: guix-git/doc/guix-cookbook.texi:606
1427#, no-wrap 1428#, no-wrap
1428msgid "source" 1429msgid "source"
1429msgstr "source" 1430msgstr "source"
1430 1431
1431#. type: table 1432#. type: table
1432#: doc/guix-cookbook.texi:609 1433#: guix-git/doc/guix-cookbook.texi:609
1433msgid "This field contains a description of the source code origin. The @code{origin} record contains these fields:" 1434msgid "This field contains a description of the source code origin. The @code{origin} record contains these fields:"
1434msgstr "Dieses Feld enthält eine Beschreibung, was der Ursprung des Quellcodes ist. Das @code{origin}-Verbundsobjekt enthält diese Felder:" 1435msgstr "Dieses Feld enthält eine Beschreibung, was der Ursprung des Quellcodes ist. Das @code{origin}-Verbundsobjekt enthält diese Felder:"
1435 1436
1436#. type: item 1437#. type: item
1437#: doc/guix-cookbook.texi:611 1438#: guix-git/doc/guix-cookbook.texi:611
1438#, no-wrap 1439#, no-wrap
1439msgid "The method, here @code{url-fetch} to download via HTTP/FTP, but other methods" 1440msgid "The method, here @code{url-fetch} to download via HTTP/FTP, but other methods"
1440msgstr "Die Methode. Wir verwenden hier @code{url-fetch}, um über HTTP/FTP herunterzuladen," 1441msgstr "Die Methode. Wir verwenden hier @code{url-fetch}, um über HTTP/FTP herunterzuladen,"
1441 1442
1442#. type: enumerate 1443#. type: enumerate
1443#: doc/guix-cookbook.texi:613 1444#: guix-git/doc/guix-cookbook.texi:613
1444msgid "exist, such as @code{git-fetch} for Git repositories." 1445msgid "exist, such as @code{git-fetch} for Git repositories."
1445msgstr "aber es gibt auch andere Methoden wie @code{git-fetch} für Git-Repositorys." 1446msgstr "aber es gibt auch andere Methoden wie @code{git-fetch} für Git-Repositorys."
1446 1447
1447#. type: item 1448#. type: item
1448#: doc/guix-cookbook.texi:613 1449#: guix-git/doc/guix-cookbook.texi:613
1449#, no-wrap 1450#, no-wrap
1450msgid "The URI, which is typically some @code{https://} location for @code{url-fetch}. Here" 1451msgid "The URI, which is typically some @code{https://} location for @code{url-fetch}. Here"
1451msgstr "Die URI, welche bei @code{url-fetch} normalerweise eine Ortsangabe mit @code{https://} ist." 1452msgstr "Die URI, welche bei @code{url-fetch} normalerweise eine Ortsangabe mit @code{https://} ist."
1452 1453
1453#. type: enumerate 1454#. type: enumerate
1454#: doc/guix-cookbook.texi:616 1455#: guix-git/doc/guix-cookbook.texi:616
1455msgid "the special `mirror://gnu` refers to a set of well known locations, all of which can be used by Guix to fetch the source, should some of them fail." 1456msgid "the special `mirror://gnu` refers to a set of well known locations, all of which can be used by Guix to fetch the source, should some of them fail."
1456msgstr "In diesem Fall verweist die besondere URI ‚mirror://gnu‘ auf eine von mehreren wohlbekannten Ortsangaben, von denen Guix jede durchprobieren kann, um den Quellcode herunterzuladen, wenn es bei manchen davon nicht klappt." 1457msgstr "In diesem Fall verweist die besondere URI ‚mirror://gnu‘ auf eine von mehreren wohlbekannten Ortsangaben, von denen Guix jede durchprobieren kann, um den Quellcode herunterzuladen, wenn es bei manchen davon nicht klappt."
1457 1458
1458#. type: item 1459#. type: item
1459#: doc/guix-cookbook.texi:616 1460#: guix-git/doc/guix-cookbook.texi:616
1460#, no-wrap 1461#, no-wrap
1461msgid "The @code{sha256} checksum of the requested file. This is essential to ensure" 1462msgid "The @code{sha256} checksum of the requested file. This is essential to ensure"
1462msgstr "Die @code{sha256}-Prüfsumme der angefragten Datei." 1463msgstr "Die @code{sha256}-Prüfsumme der angefragten Datei."
1463 1464
1464#. type: enumerate 1465#. type: enumerate
1465#: doc/guix-cookbook.texi:619 1466#: guix-git/doc/guix-cookbook.texi:619
1466msgid "the source is not corrupted. Note that Guix works with base32 strings, hence the call to the @code{base32} function." 1467msgid "the source is not corrupted. Note that Guix works with base32 strings, hence the call to the @code{base32} function."
1467msgstr "Sie ist notwendig, damit sichergestellt werden kann, dass der Quellcode nicht beschädigt ist. Beachten Sie, dass Guix mit Zeichenketten in Base32-Kodierung arbeitet, weshalb wir die @code{base32}-Funktion aufrufen." 1468msgstr "Sie ist notwendig, damit sichergestellt werden kann, dass der Quellcode nicht beschädigt ist. Beachten Sie, dass Guix mit Zeichenketten in Base32-Kodierung arbeitet, weshalb wir die @code{base32}-Funktion aufrufen."
1468 1469
1469#. type: item 1470#. type: item
1470#: doc/guix-cookbook.texi:621 1471#: guix-git/doc/guix-cookbook.texi:621
1471#, no-wrap 1472#, no-wrap
1472msgid "build-system" 1473msgid "build-system"
1473msgstr "build-system" 1474msgstr "build-system"
1474 1475
1475#. type: table 1476#. type: table
1476#: doc/guix-cookbook.texi:630 1477#: guix-git/doc/guix-cookbook.texi:630
1477msgid "This is where the power of abstraction provided by the Scheme language really shines: in this case, the @code{gnu-build-system} abstracts away the famous @code{./configure && make && make install} shell invocations. Other build systems include the @code{trivial-build-system} which does not do anything and requires from the packager to program all the build steps, the @code{python-build-system}, the @code{emacs-build-system}, and many more (@pxref{Build Systems,,, guix, GNU Guix Reference Manual})." 1478msgid "This is where the power of abstraction provided by the Scheme language really shines: in this case, the @code{gnu-build-system} abstracts away the famous @code{./configure && make && make install} shell invocations. Other build systems include the @code{trivial-build-system} which does not do anything and requires from the packager to program all the build steps, the @code{python-build-system}, the @code{emacs-build-system}, and many more (@pxref{Build Systems,,, guix, GNU Guix Reference Manual})."
1478msgstr "Hier glänzt Schemes Fähigkeit zur Abstraktion: In diesem Fall abstrahiert @code{gnu-build-system} die berühmten Schritte @code{./configure && make && make install}, die sonst in der Shell aufgerufen würden. Zu den anderen Erstellungssystemen gehören das @code{trivial-build-system}, das nichts tut und dem Paketautoren das Schreiben sämtlicher Erstellungsschritte abverlangt, das @code{python-build-system}, das @code{emacs-build-system}, und viele mehr (siehe @ref{Erstellungssysteme,,, guix.de, Referenzhandbuch zu GNU Guix})." 1479msgstr "Hier glänzt Schemes Fähigkeit zur Abstraktion: In diesem Fall abstrahiert @code{gnu-build-system} die berühmten Schritte @code{./configure && make && make install}, die sonst in der Shell aufgerufen würden. Zu den anderen Erstellungssystemen gehören das @code{trivial-build-system}, das nichts tut und dem Paketautoren das Schreiben sämtlicher Erstellungsschritte abverlangt, das @code{python-build-system}, das @code{emacs-build-system}, und viele mehr (siehe @ref{Erstellungssysteme,,, guix.de, Referenzhandbuch zu GNU Guix})."
1479 1480
1480#. type: item 1481#. type: item
1481#: doc/guix-cookbook.texi:631 1482#: guix-git/doc/guix-cookbook.texi:631
1482#, no-wrap 1483#, no-wrap
1483msgid "synopsis" 1484msgid "synopsis"
1484msgstr "synopsis" 1485msgstr "synopsis"
1485 1486
1486#. type: table 1487#. type: table
1487#: doc/guix-cookbook.texi:634 1488#: guix-git/doc/guix-cookbook.texi:634
1488msgid "It should be a concise summary of what the package does. For many packages a tagline from the project's home page can be used as the synopsis." 1489msgid "It should be a concise summary of what the package does. For many packages a tagline from the project's home page can be used as the synopsis."
1489msgstr "Die Zusammenfassung. Sie sollte eine knappe Beschreibung sein, was das Paket tut. Für viele Pakete findet sich auf der Homepage ein Einzeiler, der als Zusammenfassung benutzt werden kann." 1490msgstr "Die Zusammenfassung. Sie sollte eine knappe Beschreibung sein, was das Paket tut. Für viele Pakete findet sich auf der Homepage ein Einzeiler, der als Zusammenfassung benutzt werden kann."
1490 1491
1491#. type: item 1492#. type: item
1492#: doc/guix-cookbook.texi:635 1493#: guix-git/doc/guix-cookbook.texi:635
1493#, no-wrap 1494#, no-wrap
1494msgid "description" 1495msgid "description"
1495msgstr "description" 1496msgstr "description"
1496 1497
1497#. type: table 1498#. type: table
1498#: doc/guix-cookbook.texi:638 1499#: guix-git/doc/guix-cookbook.texi:638
1499msgid "Same as for the synopsis, it's fine to re-use the project description from the homepage. Note that Guix uses Texinfo syntax." 1500msgid "Same as for the synopsis, it's fine to re-use the project description from the homepage. Note that Guix uses Texinfo syntax."
1500msgstr "Genau wie bei der Zusammenfassung ist es in Ordnung, die Beschreibung des Projekts für das Paket wiederzuverwenden. Beachten Sie, dass Guix dafür Texinfo-Syntax verlangt." 1501msgstr "Genau wie bei der Zusammenfassung ist es in Ordnung, die Beschreibung des Projekts für das Paket wiederzuverwenden. Beachten Sie, dass Guix dafür Texinfo-Syntax verlangt."
1501 1502
1502#. type: item 1503#. type: item
1503#: doc/guix-cookbook.texi:639 1504#: guix-git/doc/guix-cookbook.texi:639
1504#, no-wrap 1505#, no-wrap
1505msgid "home-page" 1506msgid "home-page"
1506msgstr "home-page" 1507msgstr "home-page"
1507 1508
1508#. type: table 1509#. type: table
1509#: doc/guix-cookbook.texi:641 1510#: guix-git/doc/guix-cookbook.texi:641
1510msgid "Use HTTPS if available." 1511msgid "Use HTTPS if available."
1511msgstr "Hier soll möglichst HTTPS benutzt werden." 1512msgstr "Hier soll möglichst HTTPS benutzt werden."
1512 1513
1513#. type: item 1514#. type: item
1514#: doc/guix-cookbook.texi:642 1515#: guix-git/doc/guix-cookbook.texi:642
1515#, no-wrap 1516#, no-wrap
1516msgid "license" 1517msgid "license"
1517msgstr "license" 1518msgstr "license"
1518 1519
1519#. type: table 1520#. type: table
1520#: doc/guix-cookbook.texi:645 1521#: guix-git/doc/guix-cookbook.texi:645
1521msgid "See @code{guix/licenses.scm} in the project source for a full list of available licenses." 1522msgid "See @code{guix/licenses.scm} in the project source for a full list of available licenses."
1522msgstr "Siehe die vollständige Liste verfügbarer Lizenzen in @code{guix/licenses.scm} im Guix-Quellcode." 1523msgstr "Siehe die vollständige Liste verfügbarer Lizenzen in @code{guix/licenses.scm} im Guix-Quellcode."
1523 1524
1524#. type: Plain text 1525#. type: Plain text
1525#: doc/guix-cookbook.texi:649 1526#: guix-git/doc/guix-cookbook.texi:649
1526msgid "Time to build our first package! Nothing fancy here for now: we will stick to a dummy @code{my-hello}, a copy of the above declaration." 1527msgid "Time to build our first package! Nothing fancy here for now: we will stick to a dummy @code{my-hello}, a copy of the above declaration."
1527msgstr "Es wird Zeit, unser erstes Paket zu schreiben! Aber noch nichts tolles, wir bleiben bei einem Paket @code{my-hello} stelltvertretend für „richtige“ Software; es ist eine Kopie obiger Deklaration." 1528msgstr "Es wird Zeit, unser erstes Paket zu schreiben! Aber noch nichts tolles, wir bleiben bei einem Paket @code{my-hello} stelltvertretend für „richtige“ Software; es ist eine Kopie obiger Deklaration."
1528 1529
1529#. type: Plain text 1530#. type: Plain text
1530#: doc/guix-cookbook.texi:653 1531#: guix-git/doc/guix-cookbook.texi:653
1531msgid "As with the ritualistic ``Hello World'' taught with most programming languages, this will possibly be the most ``manual'' approach. We will work out an ideal setup later; for now we will go the simplest route." 1532msgid "As with the ritualistic ``Hello World'' taught with most programming languages, this will possibly be the most ``manual'' approach. We will work out an ideal setup later; for now we will go the simplest route."
1532msgstr "Genau wie beim Ritual, Neulinge in Programmiersprachen „Hallo Welt“ schreiben zu lassen, fangen wir mit der vielleicht „arbeitsintensivsten“ Herangehensweise ans Paketeschreiben an. Wir kümmern uns später darum, wie man am besten an Paketen arbeitet; erst einmal nehmen wir den einfachsten Weg." 1533msgstr "Genau wie beim Ritual, Neulinge in Programmiersprachen „Hallo Welt“ schreiben zu lassen, fangen wir mit der vielleicht „arbeitsintensivsten“ Herangehensweise ans Paketeschreiben an. Wir kümmern uns später darum, wie man am besten an Paketen arbeitet; erst einmal nehmen wir den einfachsten Weg."
1533 1534
1534#. type: Plain text 1535#. type: Plain text
1535#: doc/guix-cookbook.texi:655 1536#: guix-git/doc/guix-cookbook.texi:655
1536msgid "Save the following to a file @file{my-hello.scm}." 1537msgid "Save the following to a file @file{my-hello.scm}."
1537msgstr "Speichern Sie den folgenden Code in eine Datei @file{my-hello.scm}." 1538msgstr "Speichern Sie den folgenden Code in eine Datei @file{my-hello.scm}."
1538 1539
1539#. type: lisp 1540#. type: lisp
1540#: doc/guix-cookbook.texi:661 1541#: guix-git/doc/guix-cookbook.texi:661
1541#, no-wrap 1542#, no-wrap
1542msgid "" 1543msgid ""
1543"(use-modules (guix packages)\n" 1544"(use-modules (guix packages)\n"
@@ -1553,7 +1554,7 @@ msgstr ""
1553"\n" 1554"\n"
1554 1555
1555#. type: lisp 1556#. type: lisp
1556#: doc/guix-cookbook.texi:680 1557#: guix-git/doc/guix-cookbook.texi:680
1557#, no-wrap 1558#, no-wrap
1558msgid "" 1559msgid ""
1559"(package\n" 1560"(package\n"
@@ -1595,23 +1596,23 @@ msgstr ""
1595" (license gpl3+))\n" 1596" (license gpl3+))\n"
1596 1597
1597#. type: Plain text 1598#. type: Plain text
1598#: doc/guix-cookbook.texi:683 1599#: guix-git/doc/guix-cookbook.texi:683
1599msgid "We will explain the extra code in a moment." 1600msgid "We will explain the extra code in a moment."
1600msgstr "Wir erklären den zusätzlichen Code in Kürze." 1601msgstr "Wir erklären den zusätzlichen Code in Kürze."
1601 1602
1602#. type: Plain text 1603#. type: Plain text
1603#: doc/guix-cookbook.texi:690 1604#: guix-git/doc/guix-cookbook.texi:690
1604msgid "Feel free to play with the different values of the various fields. If you change the source, you'll need to update the checksum. Indeed, Guix refuses to build anything if the given checksum does not match the computed checksum of the source code. To obtain the correct checksum of the package declaration, we need to download the source, compute the sha256 checksum and convert it to base32." 1605msgid "Feel free to play with the different values of the various fields. If you change the source, you'll need to update the checksum. Indeed, Guix refuses to build anything if the given checksum does not match the computed checksum of the source code. To obtain the correct checksum of the package declaration, we need to download the source, compute the sha256 checksum and convert it to base32."
1605msgstr "Spielen Sie ruhig mit unterschiedlichen Werten für die verschiedenen Felder herum. Wenn Sie den Quellort (die „source“) ändern, müssen Sie die Prüfsumme aktualisieren. Tatsächlich weigert sich Guix, etwas zu erstellen, wenn die angegebene Prüfsumme nicht zu der berechneten Prüfsumme des Quellcodes passt. Um die richtige Prüfsumme für die Paketdeklaration zu finden, müssen wir den Quellcode herunterladen, die SHA256-Summe davon berechnen und sie in Base32 umwandeln." 1606msgstr "Spielen Sie ruhig mit unterschiedlichen Werten für die verschiedenen Felder herum. Wenn Sie den Quellort (die „source“) ändern, müssen Sie die Prüfsumme aktualisieren. Tatsächlich weigert sich Guix, etwas zu erstellen, wenn die angegebene Prüfsumme nicht zu der berechneten Prüfsumme des Quellcodes passt. Um die richtige Prüfsumme für die Paketdeklaration zu finden, müssen wir den Quellcode herunterladen, die SHA256-Summe davon berechnen und sie in Base32 umwandeln."
1606 1607
1607#. type: Plain text 1608#. type: Plain text
1608#: doc/guix-cookbook.texi:693 1609#: guix-git/doc/guix-cookbook.texi:693
1609msgid "Thankfully, Guix can automate this task for us; all we need is to provide the URI:" 1610msgid "Thankfully, Guix can automate this task for us; all we need is to provide the URI:"
1610msgstr "Glücklicherweise kann Guix diese Aufgabe automatisieren; wir müssen lediglich die URI übergeben." 1611msgstr "Glücklicherweise kann Guix diese Aufgabe automatisieren; wir müssen lediglich die URI übergeben."
1611 1612
1612#. This is example shell output. 1613#. This is example shell output.
1613#. type: example 1614#. type: example
1614#: doc/guix-cookbook.texi:697 1615#: guix-git/doc/guix-cookbook.texi:697
1615#, no-wrap 1616#, no-wrap
1616msgid "" 1617msgid ""
1617"$ guix download mirror://gnu/hello/hello-2.10.tar.gz\n" 1618"$ guix download mirror://gnu/hello/hello-2.10.tar.gz\n"
@@ -1621,7 +1622,7 @@ msgstr ""
1621"\n" 1622"\n"
1622 1623
1623#. type: example 1624#. type: example
1624#: doc/guix-cookbook.texi:704 1625#: guix-git/doc/guix-cookbook.texi:704
1625#, no-wrap 1626#, no-wrap
1626msgid "" 1627msgid ""
1627"Starting download of /tmp/guix-file.JLYgL7\n" 1628"Starting download of /tmp/guix-file.JLYgL7\n"
@@ -1639,18 +1640,18 @@ msgstr ""
1639"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\n" 1640"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\n"
1640 1641
1641#. type: Plain text 1642#. type: Plain text
1642#: doc/guix-cookbook.texi:709 1643#: guix-git/doc/guix-cookbook.texi:709
1643msgid "In this specific case the output tells us which mirror was chosen. If the result of the above command is not the same as in the above snippet, update your @code{my-hello} declaration accordingly." 1644msgid "In this specific case the output tells us which mirror was chosen. If the result of the above command is not the same as in the above snippet, update your @code{my-hello} declaration accordingly."
1644msgstr "In diesem speziellen Fall sagt uns die Ausgabe, welcher Spiegelserver ausgewählt wurde. Wenn das Ergebnis des obigen Befehls nicht dasselbe ist wie im Codeschnipsel, dann aktualisieren Sie Ihre @code{my-hello}-Deklaration entsprechend." 1645msgstr "In diesem speziellen Fall sagt uns die Ausgabe, welcher Spiegelserver ausgewählt wurde. Wenn das Ergebnis des obigen Befehls nicht dasselbe ist wie im Codeschnipsel, dann aktualisieren Sie Ihre @code{my-hello}-Deklaration entsprechend."
1645 1646
1646#. type: Plain text 1647#. type: Plain text
1647#: doc/guix-cookbook.texi:713 1648#: guix-git/doc/guix-cookbook.texi:713
1648msgid "Note that GNU package tarballs come with an OpenPGP signature, so you should definitely check the signature of this tarball with `gpg` to authenticate it before going further:" 1649msgid "Note that GNU package tarballs come with an OpenPGP signature, so you should definitely check the signature of this tarball with `gpg` to authenticate it before going further:"
1649msgstr "Beachten Sie, dass Tarball-Archive von GNU-Paketen mit einer OpenPGP-Signatur ausgeliefert werden, deshalb sollten Sie mit Sicherheit die Signatur dieses Tarballs mit „gpg“ überprüfen, um ihn zu authentifizieren, bevor Sie weitermachen." 1650msgstr "Beachten Sie, dass Tarball-Archive von GNU-Paketen mit einer OpenPGP-Signatur ausgeliefert werden, deshalb sollten Sie mit Sicherheit die Signatur dieses Tarballs mit „gpg“ überprüfen, um ihn zu authentifizieren, bevor Sie weitermachen."
1650 1651
1651#. This is example shell output. 1652#. This is example shell output.
1652#. type: example 1653#. type: example
1653#: doc/guix-cookbook.texi:717 1654#: guix-git/doc/guix-cookbook.texi:717
1654#, no-wrap 1655#, no-wrap
1655msgid "" 1656msgid ""
1656"$ guix download mirror://gnu/hello/hello-2.10.tar.gz.sig\n" 1657"$ guix download mirror://gnu/hello/hello-2.10.tar.gz.sig\n"
@@ -1660,7 +1661,7 @@ msgstr ""
1660"\n" 1661"\n"
1661 1662
1662#. type: example 1663#. type: example
1663#: doc/guix-cookbook.texi:732 1664#: guix-git/doc/guix-cookbook.texi:732
1664#, no-wrap 1665#, no-wrap
1665msgid "" 1666msgid ""
1666"Starting download of /tmp/guix-file.03tFfb\n" 1667"Starting download of /tmp/guix-file.03tFfb\n"
@@ -1693,25 +1694,25 @@ msgstr ""
1693"Haupt-Fingerabdruck = 8ED3 96E3 7E38 D471 A005 30D3 A955 3245 FDE9 B739\n" 1694"Haupt-Fingerabdruck = 8ED3 96E3 7E38 D471 A005 30D3 A955 3245 FDE9 B739\n"
1694 1695
1695#. type: Plain text 1696#. type: Plain text
1696#: doc/guix-cookbook.texi:735 1697#: guix-git/doc/guix-cookbook.texi:735
1697msgid "You can then happily run" 1698msgid "You can then happily run"
1698msgstr "Sie können dann unbesorgt das hier ausführen:" 1699msgstr "Sie können dann unbesorgt das hier ausführen:"
1699 1700
1700#. Do not translate this command 1701#. Do not translate this command
1701#. type: example 1702#. type: example
1702#: doc/guix-cookbook.texi:739 1703#: guix-git/doc/guix-cookbook.texi:739
1703#, no-wrap 1704#, no-wrap
1704msgid "$ guix package --install-from-file=my-hello.scm\n" 1705msgid "$ guix package --install-from-file=my-hello.scm\n"
1705msgstr "$ guix package --install-from-file=my-hello.scm\n" 1706msgstr "$ guix package --install-from-file=my-hello.scm\n"
1706 1707
1707#. type: Plain text 1708#. type: Plain text
1708#: doc/guix-cookbook.texi:742 1709#: guix-git/doc/guix-cookbook.texi:742
1709msgid "You should now have @code{my-hello} in your profile!" 1710msgid "You should now have @code{my-hello} in your profile!"
1710msgstr "Nun sollte @code{my-hello} in Ihrem Profil enthalten sein!" 1711msgstr "Nun sollte @code{my-hello} in Ihrem Profil enthalten sein!"
1711 1712
1712#. Do not translate this command 1713#. Do not translate this command
1713#. type: example 1714#. type: example
1714#: doc/guix-cookbook.texi:748 1715#: guix-git/doc/guix-cookbook.texi:748
1715#, no-wrap 1716#, no-wrap
1716msgid "" 1717msgid ""
1717"$ guix package --list-installed=my-hello\n" 1718"$ guix package --list-installed=my-hello\n"
@@ -1723,37 +1724,37 @@ msgstr ""
1723"/gnu/store/f1db2mfm8syb8qvc357c53slbvf1g9m9-my-hello-2.10\n" 1724"/gnu/store/f1db2mfm8syb8qvc357c53slbvf1g9m9-my-hello-2.10\n"
1724 1725
1725#. type: Plain text 1726#. type: Plain text
1726#: doc/guix-cookbook.texi:753 1727#: guix-git/doc/guix-cookbook.texi:753
1727msgid "We've gone as far as we could without any knowledge of Scheme. Before moving on to more complex packages, now is the right time to brush up on your Scheme knowledge. @pxref{A Scheme Crash Course} to get up to speed." 1728msgid "We've gone as far as we could without any knowledge of Scheme. Before moving on to more complex packages, now is the right time to brush up on your Scheme knowledge. @pxref{A Scheme Crash Course} to get up to speed."
1728msgstr "Wir sind so weit gekommen, wie es ohne Scheme-Kenntnisse möglich ist. Bevor wir mit komplexeren Paketen weitermachen, ist jetzt der Zeitpunkt gekommen, Ihr Wissen über Scheme zu entstauben. Siehe @ref{Ein Schnellkurs in Scheme} für eine Auffrischung." 1729msgstr "Wir sind so weit gekommen, wie es ohne Scheme-Kenntnisse möglich ist. Bevor wir mit komplexeren Paketen weitermachen, ist jetzt der Zeitpunkt gekommen, Ihr Wissen über Scheme zu entstauben. Siehe @ref{Ein Schnellkurs in Scheme} für eine Auffrischung."
1729 1730
1730#. type: Plain text 1731#. type: Plain text
1731#: doc/guix-cookbook.texi:760 1732#: guix-git/doc/guix-cookbook.texi:760
1732msgid "In the rest of this chapter we will rely on some basic Scheme programming knowledge. Now let's detail the different possible setups for working on Guix packages." 1733msgid "In the rest of this chapter we will rely on some basic Scheme programming knowledge. Now let's detail the different possible setups for working on Guix packages."
1733msgstr "Im Rest dieses Kapitels setzen wir ein paar grundlegende Scheme-Programmierkenntnisse voraus. Wir wollen uns nun verschiedene mögliche Herangehensweisen anschauen, wie man an Guix-Paketen arbeiten kann." 1734msgstr "Im Rest dieses Kapitels setzen wir ein paar grundlegende Scheme-Programmierkenntnisse voraus. Wir wollen uns nun verschiedene mögliche Herangehensweisen anschauen, wie man an Guix-Paketen arbeiten kann."
1734 1735
1735#. type: Plain text 1736#. type: Plain text
1736#: doc/guix-cookbook.texi:762 1737#: guix-git/doc/guix-cookbook.texi:762
1737msgid "There are several ways to set up a Guix packaging environment." 1738msgid "There are several ways to set up a Guix packaging environment."
1738msgstr "Es gibt mehrere Arten, eine Umgebung zum Paketeschreiben aufzusetzen." 1739msgstr "Es gibt mehrere Arten, eine Umgebung zum Paketeschreiben aufzusetzen."
1739 1740
1740#. type: Plain text 1741#. type: Plain text
1741#: doc/guix-cookbook.texi:765 1742#: guix-git/doc/guix-cookbook.texi:765
1742msgid "We recommend you work directly on the Guix source checkout since it makes it easier for everyone to contribute to the project." 1743msgid "We recommend you work directly on the Guix source checkout since it makes it easier for everyone to contribute to the project."
1743msgstr "Unsere Empfehlung ist, dass Sie direkt am Checkout des Guix-Quellcodes arbeiten, weil es dann für alle einfacher ist, zu Guix beizutragen." 1744msgstr "Unsere Empfehlung ist, dass Sie direkt am Checkout des Guix-Quellcodes arbeiten, weil es dann für alle einfacher ist, zu Guix beizutragen."
1744 1745
1745#. type: Plain text 1746#. type: Plain text
1746#: doc/guix-cookbook.texi:767 1747#: guix-git/doc/guix-cookbook.texi:767
1747msgid "But first, let's look at other possibilities." 1748msgid "But first, let's look at other possibilities."
1748msgstr "Werfen wir aber zunächst einen Blick auf andere Möglichkeiten." 1749msgstr "Werfen wir aber zunächst einen Blick auf andere Möglichkeiten."
1749 1750
1750#. type: Plain text 1751#. type: Plain text
1751#: doc/guix-cookbook.texi:780 1752#: guix-git/doc/guix-cookbook.texi:780
1752msgid "This is what we previously did with @samp{my-hello}. With the Scheme basics we've covered, we are now able to explain the leading chunks. As stated in @code{guix package --help}:" 1753msgid "This is what we previously did with @samp{my-hello}. With the Scheme basics we've covered, we are now able to explain the leading chunks. As stated in @code{guix package --help}:"
1753msgstr "Diese Methode haben wir zuletzt für @samp{my-hello} benutzt. Jetzt nachdem wir uns mit den Scheme-Grundlagen befasst haben, können wir uns den Code am Anfang erklären. @code{guix package --help} sagt uns:" 1754msgstr "Diese Methode haben wir zuletzt für @samp{my-hello} benutzt. Jetzt nachdem wir uns mit den Scheme-Grundlagen befasst haben, können wir uns den Code am Anfang erklären. @code{guix package --help} sagt uns:"
1754 1755
1755#. type: example 1756#. type: example
1756#: doc/guix-cookbook.texi:785 1757#: guix-git/doc/guix-cookbook.texi:785
1757#, no-wrap 1758#, no-wrap
1758msgid "" 1759msgid ""
1759" -f, --install-from-file=FILE\n" 1760" -f, --install-from-file=FILE\n"
@@ -1765,44 +1766,44 @@ msgstr ""
1765" ausgewertet wird\n" 1766" ausgewertet wird\n"
1766 1767
1767#. type: Plain text 1768#. type: Plain text
1768#: doc/guix-cookbook.texi:789 1769#: guix-git/doc/guix-cookbook.texi:789
1769msgid "Thus the last expression @emph{must} return a package, which is the case in our earlier example." 1770msgid "Thus the last expression @emph{must} return a package, which is the case in our earlier example."
1770msgstr "Daher @emph{muss} der letzte Ausdruck ein Paket liefern, was im vorherigen Beispiel der Fall ist." 1771msgstr "Daher @emph{muss} der letzte Ausdruck ein Paket liefern, was im vorherigen Beispiel der Fall ist."
1771 1772
1772#. type: Plain text 1773#. type: Plain text
1773#: doc/guix-cookbook.texi:793 1774#: guix-git/doc/guix-cookbook.texi:793
1774msgid "The @code{use-modules} expression tells which of the modules we need in the file. Modules are a collection of values and procedures. They are commonly called ``libraries'' or ``packages'' in other programming languages." 1775msgid "The @code{use-modules} expression tells which of the modules we need in the file. Modules are a collection of values and procedures. They are commonly called ``libraries'' or ``packages'' in other programming languages."
1775msgstr "Der Ausdruck @code{use-modules} sagt aus, welche Module in der Datei gebraucht werden. Module sind eine Sammlung aus Werten und Prozeduren. In anderen Programmiersprachen werden sie oft „Bibliotheken“ oder „Pakete“ genannt." 1776msgstr "Der Ausdruck @code{use-modules} sagt aus, welche Module in der Datei gebraucht werden. Module sind eine Sammlung aus Werten und Prozeduren. In anderen Programmiersprachen werden sie oft „Bibliotheken“ oder „Pakete“ genannt."
1776 1777
1777#. type: cindex 1778#. type: cindex
1778#: doc/guix-cookbook.texi:797 1779#: guix-git/doc/guix-cookbook.texi:797
1779#, no-wrap 1780#, no-wrap
1780msgid "channel" 1781msgid "channel"
1781msgstr "Kanal" 1782msgstr "Kanal"
1782 1783
1783#. type: Plain text 1784#. type: Plain text
1784#: doc/guix-cookbook.texi:803 1785#: guix-git/doc/guix-cookbook.texi:803
1785msgid "Guix and its package collection can be extended through @dfn{channels}. A channel is a Git repository, public or not, containing @file{.scm} files that provide packages (@pxref{Defining Packages,,, guix, GNU Guix Reference Manual}) or services (@pxref{Defining Services,,, guix, GNU Guix Reference Manual})." 1786msgid "Guix and its package collection can be extended through @dfn{channels}. A channel is a Git repository, public or not, containing @file{.scm} files that provide packages (@pxref{Defining Packages,,, guix, GNU Guix Reference Manual}) or services (@pxref{Defining Services,,, guix, GNU Guix Reference Manual})."
1786msgstr "Guix und seine Paketsammlung können durch @dfn{Kanäle} (englisch: Channels) erweitert werden. Ein Kanal ist ein Git-Repository, öffentlich oder nicht, das @file{.scm}-Dateien enthält, die Pakete (siehe @ref{Pakete definieren,,, guix.de, Referenzhandbuch zu GNU Guix}) oder Dienste (siehe @ref{Dienste definieren,,, guix.de, Referenzhandbuch zu GNU Guix}) bereitstellen." 1787msgstr "Guix und seine Paketsammlung können durch @dfn{Kanäle} (englisch: Channels) erweitert werden. Ein Kanal ist ein Git-Repository, öffentlich oder nicht, das @file{.scm}-Dateien enthält, die Pakete (siehe @ref{Pakete definieren,,, guix.de, Referenzhandbuch zu GNU Guix}) oder Dienste (siehe @ref{Dienste definieren,,, guix.de, Referenzhandbuch zu GNU Guix}) bereitstellen."
1787 1788
1788#. type: Plain text 1789#. type: Plain text
1789#: doc/guix-cookbook.texi:806 1790#: guix-git/doc/guix-cookbook.texi:806
1790msgid "How would you go about creating a channel? First, create a directory that will contain your @file{.scm} files, say @file{~/my-channel}:" 1791msgid "How would you go about creating a channel? First, create a directory that will contain your @file{.scm} files, say @file{~/my-channel}:"
1791msgstr "Wie würden Sie einen Kanal erstellen? Erstellen Sie zunächst ein Verzeichnis, das Ihre @file{.scm}-Dateien enthalten wird, beispielsweise @file{~/my-channel}:" 1792msgstr "Wie würden Sie einen Kanal erstellen? Erstellen Sie zunächst ein Verzeichnis, das Ihre @file{.scm}-Dateien enthalten wird, beispielsweise @file{~/my-channel}:"
1792 1793
1793#. type: example 1794#. type: example
1794#: doc/guix-cookbook.texi:809 1795#: guix-git/doc/guix-cookbook.texi:809
1795#, no-wrap 1796#, no-wrap
1796msgid "mkdir ~/my-channel\n" 1797msgid "mkdir ~/my-channel\n"
1797msgstr "mkdir ~/my-channel\n" 1798msgstr "mkdir ~/my-channel\n"
1798 1799
1799#. type: Plain text 1800#. type: Plain text
1800#: doc/guix-cookbook.texi:813 1801#: guix-git/doc/guix-cookbook.texi:813
1801msgid "Suppose you want to add the @samp{my-hello} package we saw previously; it first needs some adjustments:" 1802msgid "Suppose you want to add the @samp{my-hello} package we saw previously; it first needs some adjustments:"
1802msgstr "Angenommen, Sie möchten das Paket @samp{my-hello}, das wir zuvor gesehen haben, hinzufügen; es bedarf zunächst einiger Anpassungen:" 1803msgstr "Angenommen, Sie möchten das Paket @samp{my-hello}, das wir zuvor gesehen haben, hinzufügen; es bedarf zunächst einiger Anpassungen:"
1803 1804
1804#. type: lisp 1805#. type: lisp
1805#: doc/guix-cookbook.texi:820 1806#: guix-git/doc/guix-cookbook.texi:820
1806#, no-wrap 1807#, no-wrap
1807msgid "" 1808msgid ""
1808"(define-module (my-hello)\n" 1809"(define-module (my-hello)\n"
@@ -1820,7 +1821,7 @@ msgstr ""
1820"\n" 1821"\n"
1821 1822
1822#. type: lisp 1823#. type: lisp
1823#: doc/guix-cookbook.texi:840 1824#: guix-git/doc/guix-cookbook.texi:840
1824#, no-wrap 1825#, no-wrap
1825msgid "" 1826msgid ""
1826"(define-public my-hello\n" 1827"(define-public my-hello\n"
@@ -1864,17 +1865,17 @@ msgstr ""
1864" (license gpl3+)))\n" 1865" (license gpl3+)))\n"
1865 1866
1866#. type: Plain text 1867#. type: Plain text
1867#: doc/guix-cookbook.texi:846 1868#: guix-git/doc/guix-cookbook.texi:846
1868msgid "Note that we have assigned the package value to an exported variable name with @code{define-public}. This is effectively assigning the package to the @code{my-hello} variable so that it can be referenced, among other as dependency of other packages." 1869msgid "Note that we have assigned the package value to an exported variable name with @code{define-public}. This is effectively assigning the package to the @code{my-hello} variable so that it can be referenced, among other as dependency of other packages."
1869msgstr "Beachten Sie, dass wir den Paketwert einer exportierten Variablen mit @code{define-public} zugewiesen haben. Das bedeutet, das Paket wird einer Variablen @code{my-hello} zugewiesen, damit darauf verwiesen werden kann. Unter anderem kann es dadurch als Abhängigkeit anderer Pakete verwendet werden." 1870msgstr "Beachten Sie, dass wir den Paketwert einer exportierten Variablen mit @code{define-public} zugewiesen haben. Das bedeutet, das Paket wird einer Variablen @code{my-hello} zugewiesen, damit darauf verwiesen werden kann. Unter anderem kann es dadurch als Abhängigkeit anderer Pakete verwendet werden."
1870 1871
1871#. type: Plain text 1872#. type: Plain text
1872#: doc/guix-cookbook.texi:851 1873#: guix-git/doc/guix-cookbook.texi:851
1873msgid "If you use @code{guix package --install-from-file=my-hello.scm} on the above file, it will fail because the last expression, @code{define-public}, does not return a package. If you want to use @code{define-public} in this use-case nonetheless, make sure the file ends with an evaluation of @code{my-hello}:" 1874msgid "If you use @code{guix package --install-from-file=my-hello.scm} on the above file, it will fail because the last expression, @code{define-public}, does not return a package. If you want to use @code{define-public} in this use-case nonetheless, make sure the file ends with an evaluation of @code{my-hello}:"
1874msgstr "Wenn Sie @code{guix package --install-from-file=my-hello.scm} auf der obigen Datei aufrufen, geht es schief, weil der letzte Ausdruck, @code{define-public}, kein Paket zurückliefert. Wenn Sie trotzdem @code{define-public} für jene Herangehensweise verwenden möchten, stellen Sie sicher, dass am Ende der Datei eine Auswertung von @code{my-hello} steht:" 1875msgstr "Wenn Sie @code{guix package --install-from-file=my-hello.scm} auf der obigen Datei aufrufen, geht es schief, weil der letzte Ausdruck, @code{define-public}, kein Paket zurückliefert. Wenn Sie trotzdem @code{define-public} für jene Herangehensweise verwenden möchten, stellen Sie sicher, dass am Ende der Datei eine Auswertung von @code{my-hello} steht:"
1875 1876
1876#. type: lisp 1877#. type: lisp
1877#: doc/guix-cookbook.texi:857 1878#: guix-git/doc/guix-cookbook.texi:857
1878#, no-wrap 1879#, no-wrap
1879msgid "" 1880msgid ""
1880";; ...\n" 1881";; ...\n"
@@ -1890,23 +1891,23 @@ msgstr ""
1890"\n" 1891"\n"
1891 1892
1892#. type: lisp 1893#. type: lisp
1893#: doc/guix-cookbook.texi:859 1894#: guix-git/doc/guix-cookbook.texi:859
1894#, no-wrap 1895#, no-wrap
1895msgid "my-hello\n" 1896msgid "my-hello\n"
1896msgstr "my-hello\n" 1897msgstr "my-hello\n"
1897 1898
1898#. type: Plain text 1899#. type: Plain text
1899#: doc/guix-cookbook.texi:862 1900#: guix-git/doc/guix-cookbook.texi:862
1900msgid "This last example is not very typical." 1901msgid "This last example is not very typical."
1901msgstr "Meistens tut man das aber nicht." 1902msgstr "Meistens tut man das aber nicht."
1902 1903
1903#. type: Plain text 1904#. type: Plain text
1904#: doc/guix-cookbook.texi:866 1905#: guix-git/doc/guix-cookbook.texi:866
1905msgid "Now how do you make that package visible to @command{guix} commands so you can test your packages? You need to add the directory to the search path using the @option{-L} command-line option, as in these examples:" 1906msgid "Now how do you make that package visible to @command{guix} commands so you can test your packages? You need to add the directory to the search path using the @option{-L} command-line option, as in these examples:"
1906msgstr "Wie machen Sie nun dieses Paket für @command{guix}-Befehle sichtbar, damit Sie Ihre Pakete testen können? Sie müssen das Verzeichnis mit der Befehlszeilenoption @option{-L} zum Suchpfad hinzufügen, wie in diesen Beispielen:" 1907msgstr "Wie machen Sie nun dieses Paket für @command{guix}-Befehle sichtbar, damit Sie Ihre Pakete testen können? Sie müssen das Verzeichnis mit der Befehlszeilenoption @option{-L} zum Suchpfad hinzufügen, wie in diesen Beispielen:"
1907 1908
1908#. type: example 1909#. type: example
1909#: doc/guix-cookbook.texi:870 1910#: guix-git/doc/guix-cookbook.texi:870
1910#, no-wrap 1911#, no-wrap
1911msgid "" 1912msgid ""
1912"guix show -L ~/my-channel my-hello\n" 1913"guix show -L ~/my-channel my-hello\n"
@@ -1916,12 +1917,12 @@ msgstr ""
1916"guix build -L ~/my-channel my-hello\n" 1917"guix build -L ~/my-channel my-hello\n"
1917 1918
1918#. type: Plain text 1919#. type: Plain text
1919#: doc/guix-cookbook.texi:876 1920#: guix-git/doc/guix-cookbook.texi:876
1920msgid "The final step is to turn @file{~/my-channel} into an actual channel, making your package collection seamlessly available @i{via} any @command{guix} command. To do that, you first need to make it a Git repository:" 1921msgid "The final step is to turn @file{~/my-channel} into an actual channel, making your package collection seamlessly available @i{via} any @command{guix} command. To do that, you first need to make it a Git repository:"
1921msgstr "Der letzte Schritt besteht darin, @file{~/my-channel} in einen echten Kanal zu verwandeln, so dass Ihre Paketsammlung nahtlos mit jedem @command{guix}-Befehl zur Verfügung steht. Dazu müssen Sie es zunächst zu einem Git-Repository machen:" 1922msgstr "Der letzte Schritt besteht darin, @file{~/my-channel} in einen echten Kanal zu verwandeln, so dass Ihre Paketsammlung nahtlos mit jedem @command{guix}-Befehl zur Verfügung steht. Dazu müssen Sie es zunächst zu einem Git-Repository machen:"
1922 1923
1923#. type: example 1924#. type: example
1924#: doc/guix-cookbook.texi:882 1925#: guix-git/doc/guix-cookbook.texi:882
1925#, no-wrap 1926#, no-wrap
1926msgid "" 1927msgid ""
1927"cd ~/my-channel\n" 1928"cd ~/my-channel\n"
@@ -1935,12 +1936,12 @@ msgstr ""
1935"git commit -m \"Erster Commit meines Kanals.\"\n" 1936"git commit -m \"Erster Commit meines Kanals.\"\n"
1936 1937
1937#. type: Plain text 1938#. type: Plain text
1938#: doc/guix-cookbook.texi:890 1939#: guix-git/doc/guix-cookbook.texi:890
1939msgid "And that's it, you have a channel! From there on, you can add this channel to your channel configuration in @file{~/.config/guix/channels.scm} (@pxref{Specifying Additional Channels,,, guix, GNU Guix Reference Manual}); assuming you keep your channel local for now, the @file{channels.scm} would look something like this:" 1940msgid "And that's it, you have a channel! From there on, you can add this channel to your channel configuration in @file{~/.config/guix/channels.scm} (@pxref{Specifying Additional Channels,,, guix, GNU Guix Reference Manual}); assuming you keep your channel local for now, the @file{channels.scm} would look something like this:"
1940msgstr "Und das war’s, Sie haben einen Kanal! Von nun an können Sie diesen Kanal zu Ihrer Kanalkonfiguration in @file{~/.config/guix/channels.scm} hinzufügen (siehe @ref{Weitere Kanäle angeben,,, guix.de, Referenzhandbuch zu GNU Guix}). Unter der Annahme, dass Sie Ihren Kanal vorerst lokal halten, würde die @file{channels.scm} etwa so aussehen:" 1941msgstr "Und das war’s, Sie haben einen Kanal! Von nun an können Sie diesen Kanal zu Ihrer Kanalkonfiguration in @file{~/.config/guix/channels.scm} hinzufügen (siehe @ref{Weitere Kanäle angeben,,, guix.de, Referenzhandbuch zu GNU Guix}). Unter der Annahme, dass Sie Ihren Kanal vorerst lokal halten, würde die @file{channels.scm} etwa so aussehen:"
1941 1942
1942#. type: lisp 1943#. type: lisp
1943#: doc/guix-cookbook.texi:897 1944#: guix-git/doc/guix-cookbook.texi:897
1944#, no-wrap 1945#, no-wrap
1945msgid "" 1946msgid ""
1946"(append (list (channel\n" 1947"(append (list (channel\n"
@@ -1956,68 +1957,68 @@ msgstr ""
1956" %default-channels)\n" 1957" %default-channels)\n"
1957 1958
1958#. type: Plain text 1959#. type: Plain text
1959#: doc/guix-cookbook.texi:904 1960#: guix-git/doc/guix-cookbook.texi:904
1960msgid "Next time you run @command{guix pull}, your channel will be picked up and the packages it defines will be readily available to all the @command{guix} commands, even if you do not pass @option{-L}. The @command{guix describe} command will show that Guix is, indeed, using both the @code{my-channel} and the @code{guix} channels." 1961msgid "Next time you run @command{guix pull}, your channel will be picked up and the packages it defines will be readily available to all the @command{guix} commands, even if you do not pass @option{-L}. The @command{guix describe} command will show that Guix is, indeed, using both the @code{my-channel} and the @code{guix} channels."
1961msgstr "Wenn Sie das nächste Mal @command{guix pull} ausführen, wird Ihr Kanal aufgenommen und die darin definierten Pakete stehen allen @command{guix}-Befehlen zur Verfügung, auch wenn Sie @option{-L} nicht übergeben. Der Befehl @command{guix describe} wird zeigen, dass Guix tatsächlich sowohl den Kanal @code{my-channel} als auch den @code{guix}-Kanal benutzt." 1962msgstr "Wenn Sie das nächste Mal @command{guix pull} ausführen, wird Ihr Kanal aufgenommen und die darin definierten Pakete stehen allen @command{guix}-Befehlen zur Verfügung, auch wenn Sie @option{-L} nicht übergeben. Der Befehl @command{guix describe} wird zeigen, dass Guix tatsächlich sowohl den Kanal @code{my-channel} als auch den @code{guix}-Kanal benutzt."
1962 1963
1963#. type: Plain text 1964#. type: Plain text
1964#: doc/guix-cookbook.texi:907 1965#: guix-git/doc/guix-cookbook.texi:907
1965msgid "@xref{Creating a Channel,,, guix, GNU Guix Reference Manual}, for details." 1966msgid "@xref{Creating a Channel,,, guix, GNU Guix Reference Manual}, for details."
1966msgstr "Siehe @ref{Einen Kanal erstellen,,, guix.de, Referenzhandbuch zu GNU Guix} für Details." 1967msgstr "Siehe @ref{Einen Kanal erstellen,,, guix.de, Referenzhandbuch zu GNU Guix} für Details."
1967 1968
1968#. type: Plain text 1969#. type: Plain text
1969#: doc/guix-cookbook.texi:914 1970#: guix-git/doc/guix-cookbook.texi:914
1970msgid "Working directly on the Guix project is recommended: it reduces the friction when the time comes to submit your changes upstream to let the community benefit from your hard work!" 1971msgid "Working directly on the Guix project is recommended: it reduces the friction when the time comes to submit your changes upstream to let the community benefit from your hard work!"
1971msgstr "Es wird empfohlen, direkt am Code des Guix-Projekts zu arbeiten, weil Ihre Änderungen dann später mit weniger Schwierigkeiten bei uns eingereicht werden können, damit Ihre harte Arbeit der Gemeinschaft nützt!" 1972msgstr "Es wird empfohlen, direkt am Code des Guix-Projekts zu arbeiten, weil Ihre Änderungen dann später mit weniger Schwierigkeiten bei uns eingereicht werden können, damit Ihre harte Arbeit der Gemeinschaft nützt!"
1972 1973
1973#. type: Plain text 1974#. type: Plain text
1974#: doc/guix-cookbook.texi:920 1975#: guix-git/doc/guix-cookbook.texi:920
1975msgid "Unlike most software distributions, the Guix repository holds in one place both the tooling (including the package manager) and the package definitions. This choice was made so that it would give developers the flexibility to modify the API without breakage by updating all packages at the same time. This reduces development inertia." 1976msgid "Unlike most software distributions, the Guix repository holds in one place both the tooling (including the package manager) and the package definitions. This choice was made so that it would give developers the flexibility to modify the API without breakage by updating all packages at the same time. This reduces development inertia."
1976msgstr "Anders als die meisten Software-Distributionen werden bei Guix sowohl Werkzeuge (einschließlich des Paketverwaltungsprogramms) als auch die Paketdefinitionen in einem Repository gespeichert. Der Grund für diese Entscheidung war, dass Entwickler die Freiheit haben sollten, die Programmierschnittstelle (API) zu ändern, ohne Inkompatibilitäten einzuführen, indem alle Pakete gleichzeitig mit der API aktualisiert werden. Dadurch wird die Entwicklung weniger träge." 1977msgstr "Anders als die meisten Software-Distributionen werden bei Guix sowohl Werkzeuge (einschließlich des Paketverwaltungsprogramms) als auch die Paketdefinitionen in einem Repository gespeichert. Der Grund für diese Entscheidung war, dass Entwickler die Freiheit haben sollten, die Programmierschnittstelle (API) zu ändern, ohne Inkompatibilitäten einzuführen, indem alle Pakete gleichzeitig mit der API aktualisiert werden. Dadurch wird die Entwicklung weniger träge."
1977 1978
1978#. type: Plain text 1979#. type: Plain text
1979#: doc/guix-cookbook.texi:922 1980#: guix-git/doc/guix-cookbook.texi:922
1980msgid "Check out the official @uref{https://git-scm.com/, Git} repository:" 1981msgid "Check out the official @uref{https://git-scm.com/, Git} repository:"
1981msgstr "Legen Sie ein Checkout des offiziellen @uref{https://git-scm.com/, Git-Repositorys} an:" 1982msgstr "Legen Sie ein Checkout des offiziellen @uref{https://git-scm.com/, Git-Repositorys} an:"
1982 1983
1983#. type: example 1984#. type: example
1984#: doc/guix-cookbook.texi:925 1985#: guix-git/doc/guix-cookbook.texi:925
1985#, no-wrap 1986#, no-wrap
1986msgid "$ git clone https://git.savannah.gnu.org/git/guix.git\n" 1987msgid "$ git clone https://git.savannah.gnu.org/git/guix.git\n"
1987msgstr "$ git clone https://git.savannah.gnu.org/git/guix.git\n" 1988msgstr "$ git clone https://git.savannah.gnu.org/git/guix.git\n"
1988 1989
1989#. type: Plain text 1990#. type: Plain text
1990#: doc/guix-cookbook.texi:929 1991#: guix-git/doc/guix-cookbook.texi:929
1991msgid "In the rest of this article, we use @samp{$GUIX_CHECKOUT} to refer to the location of the checkout." 1992msgid "In the rest of this article, we use @samp{$GUIX_CHECKOUT} to refer to the location of the checkout."
1992msgstr "Im Rest dieses Artikels schreiben wir @samp{$GUIX_CHECKOUT}, wenn wir den Ort meinen, an dem das Checkout gespeichert ist." 1993msgstr "Im Rest dieses Artikels schreiben wir @samp{$GUIX_CHECKOUT}, wenn wir den Ort meinen, an dem das Checkout gespeichert ist."
1993 1994
1994#. type: Plain text 1995#. type: Plain text
1995#: doc/guix-cookbook.texi:933 1996#: guix-git/doc/guix-cookbook.texi:933
1996msgid "Follow the instructions in the manual (@pxref{Contributing,,, guix, GNU Guix Reference Manual}) to set up the repository environment." 1997msgid "Follow the instructions in the manual (@pxref{Contributing,,, guix, GNU Guix Reference Manual}) to set up the repository environment."
1997msgstr "Folgen Sie den Anweisungen im Handbuch (siehe (@ref{Mitwirken,,, guix.de, Referenzhandbuch zu GNU Guix}), um die nötige Umgebung für die Nutzung des Repositorys herzustellen." 1998msgstr "Folgen Sie den Anweisungen im Handbuch (siehe (@ref{Mitwirken,,, guix.de, Referenzhandbuch zu GNU Guix}), um die nötige Umgebung für die Nutzung des Repositorys herzustellen."
1998 1999
1999#. type: Plain text 2000#. type: Plain text
2000#: doc/guix-cookbook.texi:936 2001#: guix-git/doc/guix-cookbook.texi:936
2001msgid "Once ready, you should be able to use the package definitions from the repository environment." 2002msgid "Once ready, you should be able to use the package definitions from the repository environment."
2002msgstr "Sobald sie hergestellt wurde, sollten Sie die Paketdefinitionen aus der Repository-Umgebung benutzen können." 2003msgstr "Sobald sie hergestellt wurde, sollten Sie die Paketdefinitionen aus der Repository-Umgebung benutzen können."
2003 2004
2004#. type: Plain text 2005#. type: Plain text
2005#: doc/guix-cookbook.texi:938 2006#: guix-git/doc/guix-cookbook.texi:938
2006msgid "Feel free to edit package definitions found in @samp{$GUIX_CHECKOUT/gnu/packages}." 2007msgid "Feel free to edit package definitions found in @samp{$GUIX_CHECKOUT/gnu/packages}."
2007msgstr "Versuchen Sie sich ruhig daran, die Paketdefinitionen zu editieren, die Sie in @samp{$GUIX_CHECKOUT/gnu/packages} finden." 2008msgstr "Versuchen Sie sich ruhig daran, die Paketdefinitionen zu editieren, die Sie in @samp{$GUIX_CHECKOUT/gnu/packages} finden."
2008 2009
2009#. type: Plain text 2010#. type: Plain text
2010#: doc/guix-cookbook.texi:942 2011#: guix-git/doc/guix-cookbook.texi:942
2011msgid "The @samp{$GUIX_CHECKOUT/pre-inst-env} script lets you use @samp{guix} over the package collection of the repository (@pxref{Running Guix Before It Is Installed,,, guix, GNU Guix Reference Manual})." 2012msgid "The @samp{$GUIX_CHECKOUT/pre-inst-env} script lets you use @samp{guix} over the package collection of the repository (@pxref{Running Guix Before It Is Installed,,, guix, GNU Guix Reference Manual})."
2012msgstr "Das Skript @samp{$GUIX_CHECKOUT/pre-inst-env} ermöglicht es Ihnen, @samp{guix} auf der Paketsammlung des Repositorys aufzurufen (siehe @ref{Guix vor der Installation ausführen,,, guix.de, Referenzhandbuch zu GNU Guix})." 2013msgstr "Das Skript @samp{$GUIX_CHECKOUT/pre-inst-env} ermöglicht es Ihnen, @samp{guix} auf der Paketsammlung des Repositorys aufzurufen (siehe @ref{Guix vor der Installation ausführen,,, guix.de, Referenzhandbuch zu GNU Guix})."
2013 2014
2014#. type: itemize 2015#. type: itemize
2015#: doc/guix-cookbook.texi:946 2016#: guix-git/doc/guix-cookbook.texi:946
2016msgid "Search packages, such as Ruby:" 2017msgid "Search packages, such as Ruby:"
2017msgstr "So suchen Sie Pakete, z.B.@: Ruby:" 2018msgstr "So suchen Sie Pakete, z.B.@: Ruby:"
2018 2019
2019#. type: example 2020#. type: example
2020#: doc/guix-cookbook.texi:953 2021#: guix-git/doc/guix-cookbook.texi:953
2021#, no-wrap 2022#, no-wrap
2022msgid "" 2023msgid ""
2023" $ cd $GUIX_CHECKOUT\n" 2024" $ cd $GUIX_CHECKOUT\n"
@@ -2033,12 +2034,12 @@ msgstr ""
2033" ruby 2.2.2 out gnu/packages/ruby.scm:39:2\n" 2034" ruby 2.2.2 out gnu/packages/ruby.scm:39:2\n"
2034 2035
2035#. type: itemize 2036#. type: itemize
2036#: doc/guix-cookbook.texi:957 2037#: guix-git/doc/guix-cookbook.texi:957
2037msgid "Build a package, here Ruby version 2.1:" 2038msgid "Build a package, here Ruby version 2.1:"
2038msgstr "Erstellen Sie ein Paket, z.B.@: Ruby in Version 2.1:" 2039msgstr "Erstellen Sie ein Paket, z.B.@: Ruby in Version 2.1:"
2039 2040
2040#. type: example 2041#. type: example
2041#: doc/guix-cookbook.texi:961 2042#: guix-git/doc/guix-cookbook.texi:961
2042#, no-wrap 2043#, no-wrap
2043msgid "" 2044msgid ""
2044" $ ./pre-inst-env guix build --keep-failed ruby@@2.1\n" 2045" $ ./pre-inst-env guix build --keep-failed ruby@@2.1\n"
@@ -2048,59 +2049,59 @@ msgstr ""
2048" /gnu/store/c13v73jxmj2nir2xjqaz5259zywsa9zi-ruby-2.1.6\n" 2049" /gnu/store/c13v73jxmj2nir2xjqaz5259zywsa9zi-ruby-2.1.6\n"
2049 2050
2050#. type: itemize 2051#. type: itemize
2051#: doc/guix-cookbook.texi:965 2052#: guix-git/doc/guix-cookbook.texi:965
2052msgid "Install it to your user profile:" 2053msgid "Install it to your user profile:"
2053msgstr "Installieren Sie es in Ihr Profil:" 2054msgstr "Installieren Sie es in Ihr Profil:"
2054 2055
2055#. type: example 2056#. type: example
2056#: doc/guix-cookbook.texi:968 2057#: guix-git/doc/guix-cookbook.texi:968
2057#, no-wrap 2058#, no-wrap
2058msgid " $ ./pre-inst-env guix package --install ruby@@2.1\n" 2059msgid " $ ./pre-inst-env guix package --install ruby@@2.1\n"
2059msgstr " $ ./pre-inst-env guix package --install ruby@@2.1\n" 2060msgstr " $ ./pre-inst-env guix package --install ruby@@2.1\n"
2060 2061
2061#. type: itemize 2062#. type: itemize
2062#: doc/guix-cookbook.texi:972 2063#: guix-git/doc/guix-cookbook.texi:972
2063msgid "Check for common mistakes:" 2064msgid "Check for common mistakes:"
2064msgstr "Prüfen Sie auf häufige Fehler:" 2065msgstr "Prüfen Sie auf häufige Fehler:"
2065 2066
2066#. type: example 2067#. type: example
2067#: doc/guix-cookbook.texi:975 2068#: guix-git/doc/guix-cookbook.texi:975
2068#, no-wrap 2069#, no-wrap
2069msgid " $ ./pre-inst-env guix lint ruby@@2.1\n" 2070msgid " $ ./pre-inst-env guix lint ruby@@2.1\n"
2070msgstr " $ ./pre-inst-env guix lint ruby@@2.1\n" 2071msgstr " $ ./pre-inst-env guix lint ruby@@2.1\n"
2071 2072
2072#. type: Plain text 2073#. type: Plain text
2073#: doc/guix-cookbook.texi:980 2074#: guix-git/doc/guix-cookbook.texi:980
2074msgid "Guix strives at maintaining a high packaging standard; when contributing to the Guix project, remember to" 2075msgid "Guix strives at maintaining a high packaging standard; when contributing to the Guix project, remember to"
2075msgstr "Guix ist bestrebt, einen hohen Standard an seine Pakete anzusetzen. Wenn Sie Beiträge zum Guix-Projekt leisten," 2076msgstr "Guix ist bestrebt, einen hohen Standard an seine Pakete anzusetzen. Wenn Sie Beiträge zum Guix-Projekt leisten,"
2076 2077
2077#. type: itemize 2078#. type: itemize
2078#: doc/guix-cookbook.texi:984 2079#: guix-git/doc/guix-cookbook.texi:984
2079msgid "follow the coding style (@pxref{Coding Style,,, guix, GNU Guix Reference Manual})," 2080msgid "follow the coding style (@pxref{Coding Style,,, guix, GNU Guix Reference Manual}),"
2080msgstr "schreiben Sie Ihren Code im Stil von Guix (siehe @ref{Programmierstil,,, guix.de, Referenzhandbuch zu GNU Guix})" 2081msgstr "schreiben Sie Ihren Code im Stil von Guix (siehe @ref{Programmierstil,,, guix.de, Referenzhandbuch zu GNU Guix})"
2081 2082
2082#. type: itemize 2083#. type: itemize
2083#: doc/guix-cookbook.texi:986 2084#: guix-git/doc/guix-cookbook.texi:986
2084msgid "and review the check list from the manual (@pxref{Submitting Patches,,, guix, GNU Guix Reference Manual})." 2085msgid "and review the check list from the manual (@pxref{Submitting Patches,,, guix, GNU Guix Reference Manual})."
2085msgstr "und schauen Sie sich die Kontrollliste aus dem Handbuch (siehe @ref{Einreichen von Patches,,, guix.de, Referenzhandbuch zu GNU Guix}) noch einmal an." 2086msgstr "und schauen Sie sich die Kontrollliste aus dem Handbuch (siehe @ref{Einreichen von Patches,,, guix.de, Referenzhandbuch zu GNU Guix}) noch einmal an."
2086 2087
2087#. type: Plain text 2088#. type: Plain text
2088#: doc/guix-cookbook.texi:990 2089#: guix-git/doc/guix-cookbook.texi:990
2089msgid "Once you are happy with the result, you are welcome to send your contribution to make it part of Guix. This process is also detailed in the manual. (@pxref{Contributing,,, guix, GNU Guix Reference Manual})" 2090msgid "Once you are happy with the result, you are welcome to send your contribution to make it part of Guix. This process is also detailed in the manual. (@pxref{Contributing,,, guix, GNU Guix Reference Manual})"
2090msgstr "Sobald Sie mit dem Ergebnis zufrieden sind, freuen wir uns, wenn Sie Ihren Beitrag an uns schicken, damit wir ihn in Guix aufnehmen. Dieser Prozess wird auch im Handbuch beschrieben (siehe @ref{Mitwirken,,, guix.de, Referenzhandbuch zu GNU Guix})<." 2091msgstr "Sobald Sie mit dem Ergebnis zufrieden sind, freuen wir uns, wenn Sie Ihren Beitrag an uns schicken, damit wir ihn in Guix aufnehmen. Dieser Prozess wird auch im Handbuch beschrieben (siehe @ref{Mitwirken,,, guix.de, Referenzhandbuch zu GNU Guix})<."
2091 2092
2092#. type: Plain text 2093#. type: Plain text
2093#: doc/guix-cookbook.texi:993 2094#: guix-git/doc/guix-cookbook.texi:993
2094msgid "It's a community effort so the more join in, the better Guix becomes!" 2095msgid "It's a community effort so the more join in, the better Guix becomes!"
2095msgstr "Es handelt sich um eine gemeinschaftliche Arbeit, je mehr also mitmachen, desto besser wird Guix!" 2096msgstr "Es handelt sich um eine gemeinschaftliche Arbeit, je mehr also mitmachen, desto besser wird Guix!"
2096 2097
2097#. type: Plain text 2098#. type: Plain text
2098#: doc/guix-cookbook.texi:1000 2099#: guix-git/doc/guix-cookbook.texi:1000
2099msgid "The above ``Hello World'' example is as simple as it goes. Packages can be more complex than that and Guix can handle more advanced scenarios. Let's look at another, more sophisticated package (slightly modified from the source):" 2100msgid "The above ``Hello World'' example is as simple as it goes. Packages can be more complex than that and Guix can handle more advanced scenarios. Let's look at another, more sophisticated package (slightly modified from the source):"
2100msgstr "Einfacher als obiges Hallo-Welt-Beispiel wird es nicht. Pakete können auch komplexer als das sein und Guix eignet sich für fortgeschrittenere Szenarien. Schauen wir uns ein anderes, umfangreicheres Paket an (leicht modifiziert gegenüber Guix’ Quellcode):" 2101msgstr "Einfacher als obiges Hallo-Welt-Beispiel wird es nicht. Pakete können auch komplexer als das sein und Guix eignet sich für fortgeschrittenere Szenarien. Schauen wir uns ein anderes, umfangreicheres Paket an (leicht modifiziert gegenüber Guix’ Quellcode):"
2101 2102
2102#. type: lisp 2103#. type: lisp
2103#: doc/guix-cookbook.texi:1014 2104#: guix-git/doc/guix-cookbook.texi:1014
2104#, no-wrap 2105#, no-wrap
2105msgid "" 2106msgid ""
2106"(define-module (gnu packages version-control)\n" 2107"(define-module (gnu packages version-control)\n"
@@ -2132,7 +2133,7 @@ msgstr ""
2132"\n" 2133"\n"
2133 2134
2134#. type: lisp 2135#. type: lisp
2135#: doc/guix-cookbook.texi:1070 2136#: guix-git/doc/guix-cookbook.texi:1070
2136#, no-wrap 2137#, no-wrap
2137msgid "" 2138msgid ""
2138"(define-public my-libgit2\n" 2139"(define-public my-libgit2\n"
@@ -2249,43 +2250,43 @@ msgstr ""
2249" (license license:gpl2))))\n" 2250" (license license:gpl2))))\n"
2250 2251
2251#. type: Plain text 2252#. type: Plain text
2252#: doc/guix-cookbook.texi:1075 2253#: guix-git/doc/guix-cookbook.texi:1075
2253msgid "(In those cases were you only want to tweak a few fields from a package definition, you should rely on inheritance instead of copy-pasting everything. See below.)" 2254msgid "(In those cases were you only want to tweak a few fields from a package definition, you should rely on inheritance instead of copy-pasting everything. See below.)"
2254msgstr "(In solchen Fällen, wo Sie nur ein paar wenige Felder einer Paketdefinition abändern wollen, wäre es wirklich besser, wenn Sie Vererbung einsetzen würden, statt alles abzuschreiben. Siehe unten.)" 2255msgstr "(In solchen Fällen, wo Sie nur ein paar wenige Felder einer Paketdefinition abändern wollen, wäre es wirklich besser, wenn Sie Vererbung einsetzen würden, statt alles abzuschreiben. Siehe unten.)"
2255 2256
2256#. type: Plain text 2257#. type: Plain text
2257#: doc/guix-cookbook.texi:1077 2258#: guix-git/doc/guix-cookbook.texi:1077
2258msgid "Let's discuss those fields in depth." 2259msgid "Let's discuss those fields in depth."
2259msgstr "Reden wir über diese Felder im Detail." 2260msgstr "Reden wir über diese Felder im Detail."
2260 2261
2261#. type: subsubsection 2262#. type: subsubsection
2262#: doc/guix-cookbook.texi:1078 2263#: guix-git/doc/guix-cookbook.texi:1078
2263#, no-wrap 2264#, no-wrap
2264msgid "@code{git-fetch} method" 2265msgid "@code{git-fetch} method"
2265msgstr "@code{git-fetch}-Methode" 2266msgstr "@code{git-fetch}-Methode"
2266 2267
2267#. type: Plain text 2268#. type: Plain text
2268#: doc/guix-cookbook.texi:1085 2269#: guix-git/doc/guix-cookbook.texi:1085
2269msgid "Unlike the @code{url-fetch} method, @code{git-fetch} expects a @code{git-reference} which takes a Git repository and a commit. The commit can be any Git reference such as tags, so if the @code{version} is tagged, then it can be used directly. Sometimes the tag is prefixed with a @code{v}, in which case you'd use @code{(commit (string-append \"v\" version))}." 2270msgid "Unlike the @code{url-fetch} method, @code{git-fetch} expects a @code{git-reference} which takes a Git repository and a commit. The commit can be any Git reference such as tags, so if the @code{version} is tagged, then it can be used directly. Sometimes the tag is prefixed with a @code{v}, in which case you'd use @code{(commit (string-append \"v\" version))}."
2270msgstr "Anders als die @code{url-fetch}-Methode erwartet @code{git-fetch} eine @code{git-reference}, welche ein Git-Repository und einen Commit entgegennimmt. Der Commit kann eine beliebige Art von Git-Referenz sein, z.B.@: ein Tag. Wenn die @code{version} also mit einem Tag versehen ist, kann sie einfach benutzt werden. Manchmal ist dem Tag ein Präfix @code{v} vorangestellt. In diesem Fall würden Sie @code{(commit (string-append \"v\" version))} schreiben." 2271msgstr "Anders als die @code{url-fetch}-Methode erwartet @code{git-fetch} eine @code{git-reference}, welche ein Git-Repository und einen Commit entgegennimmt. Der Commit kann eine beliebige Art von Git-Referenz sein, z.B.@: ein Tag. Wenn die @code{version} also mit einem Tag versehen ist, kann sie einfach benutzt werden. Manchmal ist dem Tag ein Präfix @code{v} vorangestellt. In diesem Fall würden Sie @code{(commit (string-append \"v\" version))} schreiben."
2271 2272
2272#. type: Plain text 2273#. type: Plain text
2273#: doc/guix-cookbook.texi:1089 2274#: guix-git/doc/guix-cookbook.texi:1089
2274msgid "To ensure that the source code from the Git repository is stored in a directory with a descriptive name, we use @code{(file-name (git-file-name name version))}." 2275msgid "To ensure that the source code from the Git repository is stored in a directory with a descriptive name, we use @code{(file-name (git-file-name name version))}."
2275msgstr "Um sicherzustellen, dass der Quellcode aus dem Git-Repository in einem Verzeichnis mit nachvollziehbarem Namen landet, schreiben wir @code{(file-name (git-file-name name version))}." 2276msgstr "Um sicherzustellen, dass der Quellcode aus dem Git-Repository in einem Verzeichnis mit nachvollziehbarem Namen landet, schreiben wir @code{(file-name (git-file-name name version))}."
2276 2277
2277#. type: Plain text 2278#. type: Plain text
2278#: doc/guix-cookbook.texi:1094 2279#: guix-git/doc/guix-cookbook.texi:1094
2279msgid "The @code{git-version} procedure can be used to derive the version when packaging programs for a specific commit, following the Guix contributor guidelines (@pxref{Version Numbers,,, guix, GNU Guix Reference Manual})." 2280msgid "The @code{git-version} procedure can be used to derive the version when packaging programs for a specific commit, following the Guix contributor guidelines (@pxref{Version Numbers,,, guix, GNU Guix Reference Manual})."
2280msgstr "Mit der Prozedur @code{git-version} kann die Version beim Paketieren eines bestimmten Commits eines Programms entsprechend den Richtlinien für Beiträge zu Guix (@pxref{Versionsnummern,,, guix.de, Referenzhandbuch zu GNU Guix}) abgeleitet werden." 2281msgstr "Mit der Prozedur @code{git-version} kann die Version beim Paketieren eines bestimmten Commits eines Programms entsprechend den Richtlinien für Beiträge zu Guix (@pxref{Versionsnummern,,, guix.de, Referenzhandbuch zu GNU Guix}) abgeleitet werden."
2281 2282
2282#. type: Plain text 2283#. type: Plain text
2283#: doc/guix-cookbook.texi:1098 2284#: guix-git/doc/guix-cookbook.texi:1098
2284msgid "How does one obtain the @code{sha256} hash that's in there, you ask? By invoking @command{guix hash} on a checkout of the desired commit, along these lines:" 2285msgid "How does one obtain the @code{sha256} hash that's in there, you ask? By invoking @command{guix hash} on a checkout of the desired commit, along these lines:"
2285msgstr "Sie fragen, woher man den darin angegebenen @code{sha256}-Hash bekommt? Indem Sie @command{guix hash} auf einem Checkout des gewünschten Commits aufrufen, ungefähr so:" 2286msgstr "Sie fragen, woher man den darin angegebenen @code{sha256}-Hash bekommt? Indem Sie @command{guix hash} auf einem Checkout des gewünschten Commits aufrufen, ungefähr so:"
2286 2287
2287#. type: example 2288#. type: example
2288#: doc/guix-cookbook.texi:1104 2289#: guix-git/doc/guix-cookbook.texi:1104
2289#, no-wrap 2290#, no-wrap
2290msgid "" 2291msgid ""
2291"git clone https://github.com/libgit2/libgit2/\n" 2292"git clone https://github.com/libgit2/libgit2/\n"
@@ -2299,110 +2300,110 @@ msgstr ""
2299"guix hash -rx .\n" 2300"guix hash -rx .\n"
2300 2301
2301#. type: Plain text 2302#. type: Plain text
2302#: doc/guix-cookbook.texi:1109 2303#: guix-git/doc/guix-cookbook.texi:1109
2303msgid "@command{guix hash -rx} computes a SHA256 hash over the whole directory, excluding the @file{.git} sub-directory (@pxref{Invoking guix hash,,, guix, GNU Guix Reference Manual})." 2304msgid "@command{guix hash -rx} computes a SHA256 hash over the whole directory, excluding the @file{.git} sub-directory (@pxref{Invoking guix hash,,, guix, GNU Guix Reference Manual})."
2304msgstr "@command{guix hash -rx} berechnet einen SHA256-Hash des gesamten Verzeichnisses, abgesehen vom @file{.git}-Unterverzeichnis (siehe @ref{Aufruf von guix hash,,, guix.de, Referenzhandbuch zu GNU Guix})." 2305msgstr "@command{guix hash -rx} berechnet einen SHA256-Hash des gesamten Verzeichnisses, abgesehen vom @file{.git}-Unterverzeichnis (siehe @ref{Aufruf von guix hash,,, guix.de, Referenzhandbuch zu GNU Guix})."
2305 2306
2306#. type: Plain text 2307#. type: Plain text
2307#: doc/guix-cookbook.texi:1112 2308#: guix-git/doc/guix-cookbook.texi:1112
2308msgid "In the future, @command{guix download} will hopefully be able to do these steps for you, just like it does for regular downloads." 2309msgid "In the future, @command{guix download} will hopefully be able to do these steps for you, just like it does for regular downloads."
2309msgstr "In Zukunft wird @command{guix download} diese Schritte hoffentlich für Sie erledigen können, genau wie es das für normales Herunterladen macht." 2310msgstr "In Zukunft wird @command{guix download} diese Schritte hoffentlich für Sie erledigen können, genau wie es das für normales Herunterladen macht."
2310 2311
2311#. type: subsubsection 2312#. type: subsubsection
2312#: doc/guix-cookbook.texi:1113 2313#: guix-git/doc/guix-cookbook.texi:1113
2313#, no-wrap 2314#, no-wrap
2314msgid "Snippets" 2315msgid "Snippets"
2315msgstr "Schnipsel" 2316msgstr "Schnipsel"
2316 2317
2317#. type: Plain text 2318#. type: Plain text
2318#: doc/guix-cookbook.texi:1119 2319#: guix-git/doc/guix-cookbook.texi:1119
2319msgid "Snippets are quoted (i.e. non-evaluated) Scheme code that are a means of patching the source. They are a Guix-y alternative to the traditional @file{.patch} files. Because of the quote, the code in only evaluated when passed to the Guix daemon for building. There can be as many snippets as needed." 2320msgid "Snippets are quoted (i.e. non-evaluated) Scheme code that are a means of patching the source. They are a Guix-y alternative to the traditional @file{.patch} files. Because of the quote, the code in only evaluated when passed to the Guix daemon for building. There can be as many snippets as needed."
2320msgstr "„Snippets“, deutsch Schnipsel, sind mit z.B.@: @code{quote}-Zeichen maskierte, also nicht ausgewertete, Stücke Scheme-Code, mit denen der Quellcode gepatcht wird. Sie sind eine guixige Alternative zu traditionellen @file{.patch}-Dateien. Wegen der Maskierung werden sie erst dann ausgewertet, wenn sie an den Guix-Daemon zum Erstellen übergeben werden. Es kann so viele Schnipsel geben wie nötig." 2321msgstr "„Snippets“, deutsch Schnipsel, sind mit z.B.@: @code{quote}-Zeichen maskierte, also nicht ausgewertete, Stücke Scheme-Code, mit denen der Quellcode gepatcht wird. Sie sind eine guixige Alternative zu traditionellen @file{.patch}-Dateien. Wegen der Maskierung werden sie erst dann ausgewertet, wenn sie an den Guix-Daemon zum Erstellen übergeben werden. Es kann so viele Schnipsel geben wie nötig."
2321 2322
2322#. type: Plain text 2323#. type: Plain text
2323#: doc/guix-cookbook.texi:1122 2324#: guix-git/doc/guix-cookbook.texi:1122
2324msgid "Snippets might need additional Guile modules which can be imported from the @code{modules} field." 2325msgid "Snippets might need additional Guile modules which can be imported from the @code{modules} field."
2325msgstr "In Schnipseln könnten zusätzliche Guile-Module benötigt werden. Diese können importiert werden, indem man sie im Feld @code{modules} angibt." 2326msgstr "In Schnipseln könnten zusätzliche Guile-Module benötigt werden. Diese können importiert werden, indem man sie im Feld @code{modules} angibt."
2326 2327
2327#. type: subsubsection 2328#. type: subsubsection
2328#: doc/guix-cookbook.texi:1123 2329#: guix-git/doc/guix-cookbook.texi:1123
2329#, no-wrap 2330#, no-wrap
2330msgid "Inputs" 2331msgid "Inputs"
2331msgstr "Eingaben" 2332msgstr "Eingaben"
2332 2333
2333#. type: Plain text 2334#. type: Plain text
2334#: doc/guix-cookbook.texi:1126 2335#: guix-git/doc/guix-cookbook.texi:1126
2335msgid "There are 3 different input types. In short:" 2336msgid "There are 3 different input types. In short:"
2336msgstr "Es gibt 3 verschiedene Arten von Eingaben. Kurz gefasst:" 2337msgstr "Es gibt 3 verschiedene Arten von Eingaben. Kurz gefasst:"
2337 2338
2338#. type: item 2339#. type: item
2339#: doc/guix-cookbook.texi:1128 2340#: guix-git/doc/guix-cookbook.texi:1128
2340#, no-wrap 2341#, no-wrap
2341msgid "native-inputs" 2342msgid "native-inputs"
2342msgstr "native-inputs" 2343msgstr "native-inputs"
2343 2344
2344#. type: table 2345#. type: table
2345#: doc/guix-cookbook.texi:1131 2346#: guix-git/doc/guix-cookbook.texi:1131
2346msgid "Required for building but not runtime -- installing a package through a substitute won't install these inputs." 2347msgid "Required for building but not runtime -- installing a package through a substitute won't install these inputs."
2347msgstr "Sie werden zum Erstellen gebraucht, aber @emph{nicht} zur Laufzeit@tie{}– wenn Sie ein Paket als Substitut installieren, werden diese Eingaben nirgendwo installiert." 2348msgstr "Sie werden zum Erstellen gebraucht, aber @emph{nicht} zur Laufzeit@tie{}– wenn Sie ein Paket als Substitut installieren, werden diese Eingaben nirgendwo installiert."
2348 2349
2349#. type: item 2350#. type: item
2350#: doc/guix-cookbook.texi:1131 2351#: guix-git/doc/guix-cookbook.texi:1131
2351#, no-wrap 2352#, no-wrap
2352msgid "inputs" 2353msgid "inputs"
2353msgstr "inputs" 2354msgstr "inputs"
2354 2355
2355#. type: table 2356#. type: table
2356#: doc/guix-cookbook.texi:1134 2357#: guix-git/doc/guix-cookbook.texi:1134
2357msgid "Installed in the store but not in the profile, as well as being present at build time." 2358msgid "Installed in the store but not in the profile, as well as being present at build time."
2358msgstr "Sie werden in den Store installiert, aber nicht in das Profil, und sie stehen beim Erstellen zur Verfügung." 2359msgstr "Sie werden in den Store installiert, aber nicht in das Profil, und sie stehen beim Erstellen zur Verfügung."
2359 2360
2360#. type: item 2361#. type: item
2361#: doc/guix-cookbook.texi:1134 2362#: guix-git/doc/guix-cookbook.texi:1134
2362#, no-wrap 2363#, no-wrap
2363msgid "propagated-inputs" 2364msgid "propagated-inputs"
2364msgstr "propagated-inputs" 2365msgstr "propagated-inputs"
2365 2366
2366#. type: table 2367#. type: table
2367#: doc/guix-cookbook.texi:1137 2368#: guix-git/doc/guix-cookbook.texi:1137
2368msgid "Installed in the store and in the profile, as well as being present at build time." 2369msgid "Installed in the store and in the profile, as well as being present at build time."
2369msgstr "Sie werden sowohl in den Store als auch ins Profil installiert und sind auch beim Erstellen verfügbar." 2370msgstr "Sie werden sowohl in den Store als auch ins Profil installiert und sind auch beim Erstellen verfügbar."
2370 2371
2371#. type: Plain text 2372#. type: Plain text
2372#: doc/guix-cookbook.texi:1140 2373#: guix-git/doc/guix-cookbook.texi:1140
2373msgid "@xref{package Reference,,, guix, GNU Guix Reference Manual} for more details." 2374msgid "@xref{package Reference,,, guix, GNU Guix Reference Manual} for more details."
2374msgstr "Siehe @ref{„package“-Referenz,,, guix.de, Referenzhandbuch zu GNU Guix} für mehr Details." 2375msgstr "Siehe @ref{„package“-Referenz,,, guix.de, Referenzhandbuch zu GNU Guix} für mehr Details."
2375 2376
2376#. type: Plain text 2377#. type: Plain text
2377#: doc/guix-cookbook.texi:1144 2378#: guix-git/doc/guix-cookbook.texi:1144
2378msgid "The distinction between the various inputs is important: if a dependency can be handled as an @emph{input} instead of a @emph{propagated input}, it should be done so, or else it ``pollutes'' the user profile for no good reason." 2379msgid "The distinction between the various inputs is important: if a dependency can be handled as an @emph{input} instead of a @emph{propagated input}, it should be done so, or else it ``pollutes'' the user profile for no good reason."
2379msgstr "Der Unterschied zwischen den verschiedenen Eingaben ist wichtig: Wenn eine Abhängigkeit als @code{input} statt als @code{propagated-input} ausreicht, dann sollte sie auch so eingeordnet werden, sonst „verschmutzt“ sie das Profil des Benutzers ohne guten Grund." 2380msgstr "Der Unterschied zwischen den verschiedenen Eingaben ist wichtig: Wenn eine Abhängigkeit als @code{input} statt als @code{propagated-input} ausreicht, dann sollte sie auch so eingeordnet werden, sonst „verschmutzt“ sie das Profil des Benutzers ohne guten Grund."
2380 2381
2381#. type: Plain text 2382#. type: Plain text
2382#: doc/guix-cookbook.texi:1151 2383#: guix-git/doc/guix-cookbook.texi:1151
2383msgid "For instance, a user installing a graphical program that depends on a command line tool might only be interested in the graphical part, so there is no need to force the command line tool into the user profile. The dependency is a concern to the package, not to the user. @emph{Inputs} make it possible to handle dependencies without bugging the user by adding undesired executable files (or libraries) to their profile." 2384msgid "For instance, a user installing a graphical program that depends on a command line tool might only be interested in the graphical part, so there is no need to force the command line tool into the user profile. The dependency is a concern to the package, not to the user. @emph{Inputs} make it possible to handle dependencies without bugging the user by adding undesired executable files (or libraries) to their profile."
2384msgstr "Wenn eine Nutzerin beispielsweise ein grafisches Programm installiert, das von einem Befehlszeilenwerkzeug abhängt, sie sich aber nur für den grafischen Teil interessiert, dann sollten wir sie nicht zur Installation des Befehlszeilenwerkzeugs in ihr Benutzerprofil zwingen. Um die Abhängigkeit sollte sich das Paket kümmern, nicht seine Benutzerin. Mit @emph{Inputs} können wir Abhängigkeiten verwenden, wo sie gebraucht werden, ohne Nutzer zu belästigen, indem wir ausführbare Dateien (oder Bibliotheken) in deren Profil installieren." 2385msgstr "Wenn eine Nutzerin beispielsweise ein grafisches Programm installiert, das von einem Befehlszeilenwerkzeug abhängt, sie sich aber nur für den grafischen Teil interessiert, dann sollten wir sie nicht zur Installation des Befehlszeilenwerkzeugs in ihr Benutzerprofil zwingen. Um die Abhängigkeit sollte sich das Paket kümmern, nicht seine Benutzerin. Mit @emph{Inputs} können wir Abhängigkeiten verwenden, wo sie gebraucht werden, ohne Nutzer zu belästigen, indem wir ausführbare Dateien (oder Bibliotheken) in deren Profil installieren."
2385 2386
2386#. type: Plain text 2387#. type: Plain text
2387#: doc/guix-cookbook.texi:1157 2388#: guix-git/doc/guix-cookbook.texi:1157
2388msgid "Same goes for @emph{native-inputs}: once the program is installed, build-time dependencies can be safely garbage-collected. It also matters when a substitute is available, in which case only the @emph{inputs} and @emph{propagated inputs} will be fetched: the @emph{native inputs} are not required to install a package from a substitute." 2389msgid "Same goes for @emph{native-inputs}: once the program is installed, build-time dependencies can be safely garbage-collected. It also matters when a substitute is available, in which case only the @emph{inputs} and @emph{propagated inputs} will be fetched: the @emph{native inputs} are not required to install a package from a substitute."
2389msgstr "Das Gleiche gilt für @emph{native-inputs}: Wenn das Programm einmal installiert ist, können Abhängigkeiten zur Erstellungszeit gefahrlos dem Müllsammler anvertraut werden. Sie sind auch besser, wenn ein Substitut verfügbar ist, so dass nur die @code{inputs} und @code{propagated-inputs} heruntergeladen werden; @code{native-inputs} braucht niemand, der das Paket aus einem Substitut heraus installiert." 2390msgstr "Das Gleiche gilt für @emph{native-inputs}: Wenn das Programm einmal installiert ist, können Abhängigkeiten zur Erstellungszeit gefahrlos dem Müllsammler anvertraut werden. Sie sind auch besser, wenn ein Substitut verfügbar ist, so dass nur die @code{inputs} und @code{propagated-inputs} heruntergeladen werden; @code{native-inputs} braucht niemand, der das Paket aus einem Substitut heraus installiert."
2390 2391
2391#. type: quotation 2392#. type: quotation
2392#: doc/guix-cookbook.texi:1158 doc/guix-cookbook.texi:2321 2393#: guix-git/doc/guix-cookbook.texi:1158 guix-git/doc/guix-cookbook.texi:2321
2393#: doc/guix-cookbook.texi:3984 doc/guix-cookbook.texi:5157 2394#: guix-git/doc/guix-cookbook.texi:3986 guix-git/doc/guix-cookbook.texi:5159
2394#: doc/guix-cookbook.texi:5223 2395#: guix-git/doc/guix-cookbook.texi:5225
2395#, no-wrap 2396#, no-wrap
2396msgid "Note" 2397msgid "Note"
2397msgstr "Anmerkung" 2398msgstr "Anmerkung"
2398 2399
2399#. type: quotation 2400#. type: quotation
2400#: doc/guix-cookbook.texi:1161 2401#: guix-git/doc/guix-cookbook.texi:1161
2401msgid "You may see here and there snippets where package inputs are written quite differently, like so:" 2402msgid "You may see here and there snippets where package inputs are written quite differently, like so:"
2402msgstr "Vielleicht bemerken Sie hier und da Schnipsel, deren Paketeingaben recht anders geschrieben wurden, etwa so:" 2403msgstr "Vielleicht bemerken Sie hier und da Schnipsel, deren Paketeingaben recht anders geschrieben wurden, etwa so:"
2403 2404
2404#. type: lisp 2405#. type: lisp
2405#: doc/guix-cookbook.texi:1168 2406#: guix-git/doc/guix-cookbook.texi:1168
2406#, no-wrap 2407#, no-wrap
2407msgid "" 2408msgid ""
2408";; The \"old style\" for inputs.\n" 2409";; The \"old style\" for inputs.\n"
@@ -2418,69 +2419,69 @@ msgstr ""
2418" (\"python\" ,python-wrapper)))\n" 2419" (\"python\" ,python-wrapper)))\n"
2419 2420
2420#. type: quotation 2421#. type: quotation
2421#: doc/guix-cookbook.texi:1174 2422#: guix-git/doc/guix-cookbook.texi:1174
2422msgid "This is the ``old style'', where each input in the list is explicitly given a label (a string). It is still supported but we recommend using the style above instead. @xref{package Reference,,, guix, GNU Guix Reference Manual}, for more info." 2423msgid "This is the ``old style'', where each input in the list is explicitly given a label (a string). It is still supported but we recommend using the style above instead. @xref{package Reference,,, guix, GNU Guix Reference Manual}, for more info."
2423msgstr "Früher hatte man Eingaben in diesem „alten Stil“ geschrieben, wo jede Eingabe ausdrücklich mit einer Bezeichnung (als Zeichenkette) assoziiert wurde. Er wird immer noch unterstützt, aber wir empfehlen, dass Sie stattdessen im weiter oben gezeigten Stil schreiben. Siehe @ref{„package“-Referenz,,, guix.de, Referenzhandbuch zu GNU Guix} für mehr Informationen." 2424msgstr "Früher hatte man Eingaben in diesem „alten Stil“ geschrieben, wo jede Eingabe ausdrücklich mit einer Bezeichnung (als Zeichenkette) assoziiert wurde. Er wird immer noch unterstützt, aber wir empfehlen, dass Sie stattdessen im weiter oben gezeigten Stil schreiben. Siehe @ref{„package“-Referenz,,, guix.de, Referenzhandbuch zu GNU Guix} für mehr Informationen."
2424 2425
2425#. type: subsubsection 2426#. type: subsubsection
2426#: doc/guix-cookbook.texi:1176 2427#: guix-git/doc/guix-cookbook.texi:1176
2427#, no-wrap 2428#, no-wrap
2428msgid "Outputs" 2429msgid "Outputs"
2429msgstr "Ausgaben" 2430msgstr "Ausgaben"
2430 2431
2431#. type: Plain text 2432#. type: Plain text
2432#: doc/guix-cookbook.texi:1180 2433#: guix-git/doc/guix-cookbook.texi:1180
2433msgid "Just like how a package can have multiple inputs, it can also produce multiple outputs." 2434msgid "Just like how a package can have multiple inputs, it can also produce multiple outputs."
2434msgstr "Genau wie ein Paket mehrere Eingaben haben kann, kann es auch mehrere Ausgaben haben." 2435msgstr "Genau wie ein Paket mehrere Eingaben haben kann, kann es auch mehrere Ausgaben haben."
2435 2436
2436#. type: Plain text 2437#. type: Plain text
2437#: doc/guix-cookbook.texi:1182 2438#: guix-git/doc/guix-cookbook.texi:1182
2438msgid "Each output corresponds to a separate directory in the store." 2439msgid "Each output corresponds to a separate directory in the store."
2439msgstr "Jede Ausgabe entspricht einem anderen Verzeichnis im Store." 2440msgstr "Jede Ausgabe entspricht einem anderen Verzeichnis im Store."
2440 2441
2441#. type: Plain text 2442#. type: Plain text
2442#: doc/guix-cookbook.texi:1185 2443#: guix-git/doc/guix-cookbook.texi:1185
2443msgid "The user can choose which output to install; this is useful to save space or to avoid polluting the user profile with unwanted executables or libraries." 2444msgid "The user can choose which output to install; this is useful to save space or to avoid polluting the user profile with unwanted executables or libraries."
2444msgstr "Die Benutzerin kann sich entscheiden, welche Ausgabe sie installieren will; so spart sie Platz auf dem Datenträger und verschmutzt ihr Benutzerprofil nicht mit unerwünschten ausführbaren Dateien oder Bibliotheken." 2445msgstr "Die Benutzerin kann sich entscheiden, welche Ausgabe sie installieren will; so spart sie Platz auf dem Datenträger und verschmutzt ihr Benutzerprofil nicht mit unerwünschten ausführbaren Dateien oder Bibliotheken."
2445 2446
2446#. type: Plain text 2447#. type: Plain text
2447#: doc/guix-cookbook.texi:1188 2448#: guix-git/doc/guix-cookbook.texi:1188
2448msgid "Output separation is optional. When the @code{outputs} field is left out, the default and only output (the complete package) is referred to as @code{\"out\"}." 2449msgid "Output separation is optional. When the @code{outputs} field is left out, the default and only output (the complete package) is referred to as @code{\"out\"}."
2449msgstr "Nach Ausgaben zu trennen ist optional. Wenn Sie kein @code{outputs}-Feld schreiben, heißt die standardmäßige und einzige Ausgabe (also das ganze Paket) schlicht @code{\"out\"}." 2450msgstr "Nach Ausgaben zu trennen ist optional. Wenn Sie kein @code{outputs}-Feld schreiben, heißt die standardmäßige und einzige Ausgabe (also das ganze Paket) schlicht @code{\"out\"}."
2450 2451
2451#. type: Plain text 2452#. type: Plain text
2452#: doc/guix-cookbook.texi:1190 2453#: guix-git/doc/guix-cookbook.texi:1190
2453msgid "Typical separate output names include @code{debug} and @code{doc}." 2454msgid "Typical separate output names include @code{debug} and @code{doc}."
2454msgstr "Typische Namen für getrennte Ausgaben sind @code{debug} und @code{doc}." 2455msgstr "Typische Namen für getrennte Ausgaben sind @code{debug} und @code{doc}."
2455 2456
2456#. type: Plain text 2457#. type: Plain text
2457#: doc/guix-cookbook.texi:1194 2458#: guix-git/doc/guix-cookbook.texi:1194
2458msgid "It's advised to separate outputs only when you've shown it's worth it: if the output size is significant (compare with @code{guix size}) or in case the package is modular." 2459msgid "It's advised to separate outputs only when you've shown it's worth it: if the output size is significant (compare with @code{guix size}) or in case the package is modular."
2459msgstr "Es wird empfohlen, getrennte Ausgaben nur dann anzubieten, wenn Sie gezeigt haben, dass es sich lohnt, d.h.@: wenn die Ausgabengröße signifikant ist (vergleichen Sie sie mittels @code{guix size}) oder das Paket modular aufgebaut ist." 2460msgstr "Es wird empfohlen, getrennte Ausgaben nur dann anzubieten, wenn Sie gezeigt haben, dass es sich lohnt, d.h.@: wenn die Ausgabengröße signifikant ist (vergleichen Sie sie mittels @code{guix size}) oder das Paket modular aufgebaut ist."
2460 2461
2461#. type: subsubsection 2462#. type: subsubsection
2462#: doc/guix-cookbook.texi:1195 2463#: guix-git/doc/guix-cookbook.texi:1195
2463#, no-wrap 2464#, no-wrap
2464msgid "Build system arguments" 2465msgid "Build system arguments"
2465msgstr "Argumente ans Erstellungssystem" 2466msgstr "Argumente ans Erstellungssystem"
2466 2467
2467#. type: Plain text 2468#. type: Plain text
2468#: doc/guix-cookbook.texi:1198 2469#: guix-git/doc/guix-cookbook.texi:1198
2469msgid "The @code{arguments} is a keyword-value list used to configure the build process." 2470msgid "The @code{arguments} is a keyword-value list used to configure the build process."
2470msgstr "@code{arguments} ist eine Liste aus Schlüsselwort-Wert-Paaren (eine „keyword-value list“), mit denen der Erstellungsprozess konfiguriert wird." 2471msgstr "@code{arguments} ist eine Liste aus Schlüsselwort-Wert-Paaren (eine „keyword-value list“), mit denen der Erstellungsprozess konfiguriert wird."
2471 2472
2472#. type: Plain text 2473#. type: Plain text
2473#: doc/guix-cookbook.texi:1203 2474#: guix-git/doc/guix-cookbook.texi:1203
2474msgid "The simplest argument @code{#:tests?} can be used to disable the test suite when building the package. This is mostly useful when the package does not feature any test suite. It's strongly recommended to keep the test suite on if there is one." 2475msgid "The simplest argument @code{#:tests?} can be used to disable the test suite when building the package. This is mostly useful when the package does not feature any test suite. It's strongly recommended to keep the test suite on if there is one."
2475msgstr "Das einfachste Argument @code{#:tests?} kann man benutzen, um den Testkatalog bei der Erstellung des Pakets nicht zu prüfen. Das braucht man meistens dann, wenn das Paket überhaupt keinen Testkatalog hat. Wir empfehlen sehr, den Testkatalog zu benutzen, wenn es einen gibt." 2476msgstr "Das einfachste Argument @code{#:tests?} kann man benutzen, um den Testkatalog bei der Erstellung des Pakets nicht zu prüfen. Das braucht man meistens dann, wenn das Paket überhaupt keinen Testkatalog hat. Wir empfehlen sehr, den Testkatalog zu benutzen, wenn es einen gibt."
2476 2477
2477#. type: Plain text 2478#. type: Plain text
2478#: doc/guix-cookbook.texi:1207 2479#: guix-git/doc/guix-cookbook.texi:1207
2479msgid "Another common argument is @code{:make-flags}, which specifies a list of flags to append when running make, as you would from the command line. For instance, the following flags" 2480msgid "Another common argument is @code{:make-flags}, which specifies a list of flags to append when running make, as you would from the command line. For instance, the following flags"
2480msgstr "Ein anderes häufiges Argument ist @code{:make-flags}, was eine Liste an den @code{make}-Aufruf anzuhängender Befehlszeilenargumente festlegt, so wie Sie sie auf der Befehlszeile angeben würden. Zum Beispiel werden die folgenden @code{:make-flags}" 2481msgstr "Ein anderes häufiges Argument ist @code{:make-flags}, was eine Liste an den @code{make}-Aufruf anzuhängender Befehlszeilenargumente festlegt, so wie Sie sie auf der Befehlszeile angeben würden. Zum Beispiel werden die folgenden @code{:make-flags}"
2481 2482
2482#. type: lisp 2483#. type: lisp
2483#: doc/guix-cookbook.texi:1211 2484#: guix-git/doc/guix-cookbook.texi:1211
2484#, no-wrap 2485#, no-wrap
2485msgid "" 2486msgid ""
2486"#:make-flags (list (string-append \"prefix=\" (assoc-ref %outputs \"out\"))\n" 2487"#:make-flags (list (string-append \"prefix=\" (assoc-ref %outputs \"out\"))\n"
@@ -2490,44 +2491,44 @@ msgstr ""
2490" \"CC=gcc\")\n" 2491" \"CC=gcc\")\n"
2491 2492
2492#. type: Plain text 2493#. type: Plain text
2493#: doc/guix-cookbook.texi:1214 2494#: guix-git/doc/guix-cookbook.texi:1214
2494msgid "translate into" 2495msgid "translate into"
2495msgstr "übersetzt zu" 2496msgstr "übersetzt zu"
2496 2497
2497#. type: example 2498#. type: example
2498#: doc/guix-cookbook.texi:1217 2499#: guix-git/doc/guix-cookbook.texi:1217
2499#, no-wrap 2500#, no-wrap
2500msgid "$ make CC=gcc prefix=/gnu/store/...-<out>\n" 2501msgid "$ make CC=gcc prefix=/gnu/store/...-<out>\n"
2501msgstr "$ make CC=gcc prefix=/gnu/store/...-<out>\n" 2502msgstr "$ make CC=gcc prefix=/gnu/store/...-<out>\n"
2502 2503
2503#. type: Plain text 2504#. type: Plain text
2504#: doc/guix-cookbook.texi:1223 2505#: guix-git/doc/guix-cookbook.texi:1223
2505msgid "This sets the C compiler to @code{gcc} and the @code{prefix} variable (the installation directory in Make parlance) to @code{(assoc-ref %outputs \"out\")}, which is a build-stage global variable pointing to the destination directory in the store (something like @file{/gnu/store/...-my-libgit2-20180408})." 2506msgid "This sets the C compiler to @code{gcc} and the @code{prefix} variable (the installation directory in Make parlance) to @code{(assoc-ref %outputs \"out\")}, which is a build-stage global variable pointing to the destination directory in the store (something like @file{/gnu/store/...-my-libgit2-20180408})."
2506msgstr "Dadurch wird als C-Compiler @code{gcc} verwendet und als @code{prefix}-Variable (das Installationsverzeichnis in der Sprechweise von Make) wird @code{(assoc-ref %outputs \"out\")} verwendet, also eine globale Variable der Erstellungsschicht, die auf das Zielverzeichnis im Store verweist (so etwas wie @file{/gnu/store/…-my-libgit2-20180408})." 2507msgstr "Dadurch wird als C-Compiler @code{gcc} verwendet und als @code{prefix}-Variable (das Installationsverzeichnis in der Sprechweise von Make) wird @code{(assoc-ref %outputs \"out\")} verwendet, also eine globale Variable der Erstellungsschicht, die auf das Zielverzeichnis im Store verweist (so etwas wie @file{/gnu/store/…-my-libgit2-20180408})."
2507 2508
2508#. type: Plain text 2509#. type: Plain text
2509#: doc/guix-cookbook.texi:1225 2510#: guix-git/doc/guix-cookbook.texi:1225
2510msgid "Similarly, it's possible to set the configure flags:" 2511msgid "Similarly, it's possible to set the configure flags:"
2511msgstr "Auf gleiche Art kann man auch die Befehlszeilenoptionen für configure festlegen:" 2512msgstr "Auf gleiche Art kann man auch die Befehlszeilenoptionen für configure festlegen:"
2512 2513
2513#. type: lisp 2514#. type: lisp
2514#: doc/guix-cookbook.texi:1228 2515#: guix-git/doc/guix-cookbook.texi:1228
2515#, no-wrap 2516#, no-wrap
2516msgid "#:configure-flags '(\"-DUSE_SHA1DC=ON\")\n" 2517msgid "#:configure-flags '(\"-DUSE_SHA1DC=ON\")\n"
2517msgstr "#:configure-flags '(\"-DUSE_SHA1DC=ON\")\n" 2518msgstr "#:configure-flags '(\"-DUSE_SHA1DC=ON\")\n"
2518 2519
2519#. type: Plain text 2520#. type: Plain text
2520#: doc/guix-cookbook.texi:1232 2521#: guix-git/doc/guix-cookbook.texi:1232
2521msgid "The @code{%build-inputs} variable is also generated in scope. It's an association table that maps the input names to their store directories." 2522msgid "The @code{%build-inputs} variable is also generated in scope. It's an association table that maps the input names to their store directories."
2522msgstr "Die Variable @code{%build-inputs} wird auch in diesem Sichtbarkeitsbereich erzeugt. Es handelt sich um eine assoziative Liste, die von den Namen der Eingaben auf ihre Verzeichnisse im Store abbildet." 2523msgstr "Die Variable @code{%build-inputs} wird auch in diesem Sichtbarkeitsbereich erzeugt. Es handelt sich um eine assoziative Liste, die von den Namen der Eingaben auf ihre Verzeichnisse im Store abbildet."
2523 2524
2524#. type: Plain text 2525#. type: Plain text
2525#: doc/guix-cookbook.texi:1237 2526#: guix-git/doc/guix-cookbook.texi:1237
2526msgid "The @code{phases} keyword lists the sequential steps of the build system. Typically phases include @code{unpack}, @code{configure}, @code{build}, @code{install} and @code{check}. To know more about those phases, you need to work out the appropriate build system definition in @samp{$GUIX_CHECKOUT/guix/build/gnu-build-system.scm}:" 2527msgid "The @code{phases} keyword lists the sequential steps of the build system. Typically phases include @code{unpack}, @code{configure}, @code{build}, @code{install} and @code{check}. To know more about those phases, you need to work out the appropriate build system definition in @samp{$GUIX_CHECKOUT/guix/build/gnu-build-system.scm}:"
2527msgstr "Das @code{phases}-Schlüsselwort listet der Reihe nach die vom Erstellungssystem durchgeführten Schritte auf. Zu den üblichen Phasen gehören @code{unpack}, @code{configure}, @code{build}, @code{install} und @code{check}. Um mehr über diese Phasen zu lernen, müssen Sie sich die Definition des zugehörigen Erstellungssystems in @samp{$GUIX_CHECKOUT/guix/build/gnu-build-system.scm} anschauen:" 2528msgstr "Das @code{phases}-Schlüsselwort listet der Reihe nach die vom Erstellungssystem durchgeführten Schritte auf. Zu den üblichen Phasen gehören @code{unpack}, @code{configure}, @code{build}, @code{install} und @code{check}. Um mehr über diese Phasen zu lernen, müssen Sie sich die Definition des zugehörigen Erstellungssystems in @samp{$GUIX_CHECKOUT/guix/build/gnu-build-system.scm} anschauen:"
2528 2529
2529#. type: lisp 2530#. type: lisp
2530#: doc/guix-cookbook.texi:1256 2531#: guix-git/doc/guix-cookbook.texi:1256
2531#, no-wrap 2532#, no-wrap
2532msgid "" 2533msgid ""
2533"(define %standard-phases\n" 2534"(define %standard-phases\n"
@@ -2567,12 +2568,12 @@ msgstr ""
2567" compress-documentation)))\n" 2568" compress-documentation)))\n"
2568 2569
2569#. type: Plain text 2570#. type: Plain text
2570#: doc/guix-cookbook.texi:1259 2571#: guix-git/doc/guix-cookbook.texi:1259
2571msgid "Or from the REPL:" 2572msgid "Or from the REPL:"
2572msgstr "Alternativ auf einer REPL:" 2573msgstr "Alternativ auf einer REPL:"
2573 2574
2574#. type: lisp 2575#. type: lisp
2575#: doc/guix-cookbook.texi:1265 2576#: guix-git/doc/guix-cookbook.texi:1265
2576#, no-wrap 2577#, no-wrap
2577msgid "" 2578msgid ""
2578"(add-to-load-path \"/path/to/guix/checkout\")\n" 2579"(add-to-load-path \"/path/to/guix/checkout\")\n"
@@ -2586,17 +2587,17 @@ msgstr ""
2586"@result{} (set-SOURCE-DATE-EPOCH set-paths install-locale unpack bootstrap patch-usr-bin-file patch-source-shebangs configure patch-generated-file-shebangs build check install patch-shebangs strip validate-runpath validate-documentation-location delete-info-dir-file patch-dot-desktop-files install-license-files reset-gzip-timestamps compress-documentation)\n" 2587"@result{} (set-SOURCE-DATE-EPOCH set-paths install-locale unpack bootstrap patch-usr-bin-file patch-source-shebangs configure patch-generated-file-shebangs build check install patch-shebangs strip validate-runpath validate-documentation-location delete-info-dir-file patch-dot-desktop-files install-license-files reset-gzip-timestamps compress-documentation)\n"
2587 2588
2588#. type: Plain text 2589#. type: Plain text
2589#: doc/guix-cookbook.texi:1269 2590#: guix-git/doc/guix-cookbook.texi:1269
2590msgid "If you want to know more about what happens during those phases, consult the associated procedures." 2591msgid "If you want to know more about what happens during those phases, consult the associated procedures."
2591msgstr "Wenn Sie mehr darüber wissen wollen, was in diesen Phasen passiert, schauen Sie in den jeweiligen Prozeduren." 2592msgstr "Wenn Sie mehr darüber wissen wollen, was in diesen Phasen passiert, schauen Sie in den jeweiligen Prozeduren."
2592 2593
2593#. type: Plain text 2594#. type: Plain text
2594#: doc/guix-cookbook.texi:1272 2595#: guix-git/doc/guix-cookbook.texi:1272
2595msgid "For instance, as of this writing the definition of @code{unpack} for the GNU build system is:" 2596msgid "For instance, as of this writing the definition of @code{unpack} for the GNU build system is:"
2596msgstr "Beispielsweise sieht momentan, als dies hier geschrieben wurde, die Definition von @code{unpack} für das GNU-Erstellungssystem so aus:" 2597msgstr "Beispielsweise sieht momentan, als dies hier geschrieben wurde, die Definition von @code{unpack} für das GNU-Erstellungssystem so aus:"
2597 2598
2598#. type: lisp 2599#. type: lisp
2599#: doc/guix-cookbook.texi:1282 2600#: guix-git/doc/guix-cookbook.texi:1282
2600#, no-wrap 2601#, no-wrap
2601msgid "" 2602msgid ""
2602"(define* (unpack #:key source #:allow-other-keys)\n" 2603"(define* (unpack #:key source #:allow-other-keys)\n"
@@ -2620,7 +2621,7 @@ msgstr ""
2620"\n" 2621"\n"
2621 2622
2622#. type: lisp 2623#. type: lisp
2623#: doc/guix-cookbook.texi:1293 2624#: guix-git/doc/guix-cookbook.texi:1293
2624#, no-wrap 2625#, no-wrap
2625msgid "" 2626msgid ""
2626" ;; Preserve timestamps (set to the Epoch) on the copied tree so that\n" 2627" ;; Preserve timestamps (set to the Epoch) on the copied tree so that\n"
@@ -2646,42 +2647,42 @@ msgstr ""
2646" #true)\n" 2647" #true)\n"
2647 2648
2648#. type: Plain text 2649#. type: Plain text
2649#: doc/guix-cookbook.texi:1301 2650#: guix-git/doc/guix-cookbook.texi:1301
2650msgid "Note the @code{chdir} call: it changes the working directory to where the source was unpacked. Thus every phase following the @code{unpack} will use the source as a working directory, which is why we can directly work on the source files. That is to say, unless a later phase changes the working directory to something else." 2651msgid "Note the @code{chdir} call: it changes the working directory to where the source was unpacked. Thus every phase following the @code{unpack} will use the source as a working directory, which is why we can directly work on the source files. That is to say, unless a later phase changes the working directory to something else."
2651msgstr "Beachten Sie den Aufruf von @code{chdir}: Damit wird das Arbeitsverzeichnis zu demjenigen gewechselt, wohin die Quelldateien entpackt wurden. In jeder Phase nach @code{unpack} dient also das Verzeichnis mit den Quelldateien als Arbeitsverzeichnis. Deswegen können wir direkt mit den Quelldateien arbeiten, zumindest solange keine spätere Phase das Arbeitsverzeichnis woandershin wechselt." 2652msgstr "Beachten Sie den Aufruf von @code{chdir}: Damit wird das Arbeitsverzeichnis zu demjenigen gewechselt, wohin die Quelldateien entpackt wurden. In jeder Phase nach @code{unpack} dient also das Verzeichnis mit den Quelldateien als Arbeitsverzeichnis. Deswegen können wir direkt mit den Quelldateien arbeiten, zumindest solange keine spätere Phase das Arbeitsverzeichnis woandershin wechselt."
2652 2653
2653#. type: Plain text 2654#. type: Plain text
2654#: doc/guix-cookbook.texi:1305 2655#: guix-git/doc/guix-cookbook.texi:1305
2655msgid "We modify the list of @code{%standard-phases} of the build system with the @code{modify-phases} macro as per the list of specified modifications, which may have the following forms:" 2656msgid "We modify the list of @code{%standard-phases} of the build system with the @code{modify-phases} macro as per the list of specified modifications, which may have the following forms:"
2656msgstr "Die Liste der @code{%standard-phases} des Erstellungssystems ändern wir mit Hilfe des @code{modify-phases}-Makros über eine Liste von Änderungen. Sie kann folgende Formen haben:" 2657msgstr "Die Liste der @code{%standard-phases} des Erstellungssystems ändern wir mit Hilfe des @code{modify-phases}-Makros über eine Liste von Änderungen. Sie kann folgende Formen haben:"
2657 2658
2658#. type: itemize 2659#. type: itemize
2659#: doc/guix-cookbook.texi:1309 2660#: guix-git/doc/guix-cookbook.texi:1309
2660msgid "@code{(add-before @var{phase} @var{new-phase} @var{procedure})}: Run @var{procedure} named @var{new-phase} before @var{phase}." 2661msgid "@code{(add-before @var{phase} @var{new-phase} @var{procedure})}: Run @var{procedure} named @var{new-phase} before @var{phase}."
2661msgstr "@code{(add-before @var{Phase} @var{neue-Phase} @var{Prozedur})}: @var{Prozedur} unter dem Namen @var{neue-Phase} vor @var{Phase} ausführen." 2662msgstr "@code{(add-before @var{Phase} @var{neue-Phase} @var{Prozedur})}: @var{Prozedur} unter dem Namen @var{neue-Phase} vor @var{Phase} ausführen."
2662 2663
2663#. type: itemize 2664#. type: itemize
2664#: doc/guix-cookbook.texi:1311 2665#: guix-git/doc/guix-cookbook.texi:1311
2665msgid "@code{(add-after @var{phase} @var{new-phase} @var{procedure})}: Same, but afterwards." 2666msgid "@code{(add-after @var{phase} @var{new-phase} @var{procedure})}: Same, but afterwards."
2666msgstr "@code{(add-after @var{Phase} @var{neue-Phase} @var{Prozedur})}: Genauso, aber danach." 2667msgstr "@code{(add-after @var{Phase} @var{neue-Phase} @var{Prozedur})}: Genauso, aber danach."
2667 2668
2668#. type: itemize 2669#. type: itemize
2669#: doc/guix-cookbook.texi:1313 2670#: guix-git/doc/guix-cookbook.texi:1313
2670msgid "@code{(replace @var{phase} @var{procedure})}." 2671msgid "@code{(replace @var{phase} @var{procedure})}."
2671msgstr "@code{(replace @var{Phase} @var{Prozedur})}." 2672msgstr "@code{(replace @var{Phase} @var{Prozedur})}."
2672 2673
2673#. type: itemize 2674#. type: itemize
2674#: doc/guix-cookbook.texi:1315 2675#: guix-git/doc/guix-cookbook.texi:1315
2675msgid "@code{(delete @var{phase})}." 2676msgid "@code{(delete @var{phase})}."
2676msgstr "@code{(delete @var{Phase})}." 2677msgstr "@code{(delete @var{Phase})}."
2677 2678
2678#. type: Plain text 2679#. type: Plain text
2679#: doc/guix-cookbook.texi:1322 2680#: guix-git/doc/guix-cookbook.texi:1322
2680msgid "The @var{procedure} supports the keyword arguments @code{inputs} and @code{outputs}. Each input (whether @emph{native}, @emph{propagated} or not) and output directory is referenced by their name in those variables. Thus @code{(assoc-ref outputs \"out\")} is the store directory of the main output of the package. A phase procedure may look like this:" 2681msgid "The @var{procedure} supports the keyword arguments @code{inputs} and @code{outputs}. Each input (whether @emph{native}, @emph{propagated} or not) and output directory is referenced by their name in those variables. Thus @code{(assoc-ref outputs \"out\")} is the store directory of the main output of the package. A phase procedure may look like this:"
2681msgstr "Die @var{Prozedur} unterstützt die Schlüsselwortargumente @code{inputs} und @code{outputs}. Jede Eingabe (ob sie @emph{native}, @emph{propagated} oder nichts davon ist) und jedes Ausgabeverzeichnis ist in diesen Variablen mit dem jeweiligen Namen assoziiert. @code{(assoc-ref outputs \"out\")} ist also das Store-Verzeichnis der Hauptausgabe des Pakets. Eine Phasenprozedur kann so aussehen:" 2682msgstr "Die @var{Prozedur} unterstützt die Schlüsselwortargumente @code{inputs} und @code{outputs}. Jede Eingabe (ob sie @emph{native}, @emph{propagated} oder nichts davon ist) und jedes Ausgabeverzeichnis ist in diesen Variablen mit dem jeweiligen Namen assoziiert. @code{(assoc-ref outputs \"out\")} ist also das Store-Verzeichnis der Hauptausgabe des Pakets. Eine Phasenprozedur kann so aussehen:"
2682 2683
2683#. type: lisp 2684#. type: lisp
2684#: doc/guix-cookbook.texi:1330 2685#: guix-git/doc/guix-cookbook.texi:1330
2685#, no-wrap 2686#, no-wrap
2686msgid "" 2687msgid ""
2687"(lambda* (#:key inputs outputs #:allow-other-keys)\n" 2688"(lambda* (#:key inputs outputs #:allow-other-keys)\n"
@@ -2699,194 +2700,194 @@ msgstr ""
2699" #true))\n" 2700" #true))\n"
2700 2701
2701#. type: Plain text 2702#. type: Plain text
2702#: doc/guix-cookbook.texi:1336 2703#: guix-git/doc/guix-cookbook.texi:1336
2703msgid "The procedure must return @code{#true} on success. It's brittle to rely on the return value of the last expression used to tweak the phase because there is no guarantee it would be a @code{#true}. Hence the trailing @code{#true} to ensure the right value is returned on success." 2704msgid "The procedure must return @code{#true} on success. It's brittle to rely on the return value of the last expression used to tweak the phase because there is no guarantee it would be a @code{#true}. Hence the trailing @code{#true} to ensure the right value is returned on success."
2704msgstr "Die Prozedur muss bei Erfolg @code{#true} zurückliefern. Auf den Rückgabewert des letzten Ausdrucks, mit dem die Phase angepasst wurde, kann man sich nicht verlassen, weil es keine Garantie gibt, dass der Rückgabewert @code{#true} sein wird. Deswegen schreiben wir dahinter @code{#true}, damit bei erfolgreicher Ausführung der richtige Wert geliefert wird." 2705msgstr "Die Prozedur muss bei Erfolg @code{#true} zurückliefern. Auf den Rückgabewert des letzten Ausdrucks, mit dem die Phase angepasst wurde, kann man sich nicht verlassen, weil es keine Garantie gibt, dass der Rückgabewert @code{#true} sein wird. Deswegen schreiben wir dahinter @code{#true}, damit bei erfolgreicher Ausführung der richtige Wert geliefert wird."
2705 2706
2706#. type: subsubsection 2707#. type: subsubsection
2707#: doc/guix-cookbook.texi:1337 2708#: guix-git/doc/guix-cookbook.texi:1337
2708#, no-wrap 2709#, no-wrap
2709msgid "Code staging" 2710msgid "Code staging"
2710msgstr "Code-Staging" 2711msgstr "Code-Staging"
2711 2712
2712#. type: Plain text 2713#. type: Plain text
2713#: doc/guix-cookbook.texi:1343 2714#: guix-git/doc/guix-cookbook.texi:1343
2714msgid "The astute reader may have noticed the quasi-quote and comma syntax in the argument field. Indeed, the build code in the package declaration should not be evaluated on the client side, but only when passed to the Guix daemon. This mechanism of passing code around two running processes is called @uref{https://arxiv.org/abs/1709.00833, code staging}." 2715msgid "The astute reader may have noticed the quasi-quote and comma syntax in the argument field. Indeed, the build code in the package declaration should not be evaluated on the client side, but only when passed to the Guix daemon. This mechanism of passing code around two running processes is called @uref{https://arxiv.org/abs/1709.00833, code staging}."
2715msgstr "Aufmerksame Leser könnten die Syntax mit @code{quasiquote} und Komma im Argumentefeld bemerkt haben. Tatsächlich sollte der Erstellungscode in der Paketdeklaration @emph{nicht} auf Client-Seite ausgeführt werden, sondern erst, wenn er an den Guix-Daemon übergeben worden ist. Der Mechanismus, über den Code zwischen zwei laufenden Prozessen weitergegeben wird, nennen wir @uref{https://arxiv.org/abs/1709.00833, Code-Staging}." 2716msgstr "Aufmerksame Leser könnten die Syntax mit @code{quasiquote} und Komma im Argumentefeld bemerkt haben. Tatsächlich sollte der Erstellungscode in der Paketdeklaration @emph{nicht} auf Client-Seite ausgeführt werden, sondern erst, wenn er an den Guix-Daemon übergeben worden ist. Der Mechanismus, über den Code zwischen zwei laufenden Prozessen weitergegeben wird, nennen wir @uref{https://arxiv.org/abs/1709.00833, Code-Staging}."
2716 2717
2717#. type: subsubsection 2718#. type: subsubsection
2718#: doc/guix-cookbook.texi:1344 2719#: guix-git/doc/guix-cookbook.texi:1344
2719#, no-wrap 2720#, no-wrap
2720msgid "Utility functions" 2721msgid "Utility functions"
2721msgstr "Hilfsfunktionen" 2722msgstr "Hilfsfunktionen"
2722 2723
2723#. type: Plain text 2724#. type: Plain text
2724#: doc/guix-cookbook.texi:1349 2725#: guix-git/doc/guix-cookbook.texi:1349
2725msgid "When customizing @code{phases}, we often need to write code that mimics the equivalent system invocations (@code{make}, @code{mkdir}, @code{cp}, etc.)@: commonly used during regular ``Unix-style'' installations." 2726msgid "When customizing @code{phases}, we often need to write code that mimics the equivalent system invocations (@code{make}, @code{mkdir}, @code{cp}, etc.)@: commonly used during regular ``Unix-style'' installations."
2726msgstr "Beim Anpassen der @code{phases} müssen wir oft Code schreiben, der analog zu den äquivalenten Systemaufrufen funktioniert (@code{make}, @code{mkdir}, @code{cp}, etc.), welche in regulären „Unix-artigen“ Installationen oft benutzt werden." 2727msgstr "Beim Anpassen der @code{phases} müssen wir oft Code schreiben, der analog zu den äquivalenten Systemaufrufen funktioniert (@code{make}, @code{mkdir}, @code{cp}, etc.), welche in regulären „Unix-artigen“ Installationen oft benutzt werden."
2727 2728
2728#. type: Plain text 2729#. type: Plain text
2729#: doc/guix-cookbook.texi:1352 2730#: guix-git/doc/guix-cookbook.texi:1352
2730msgid "Some like @code{chmod} are native to Guile. @xref{,,, guile, Guile reference manual} for a complete list." 2731msgid "Some like @code{chmod} are native to Guile. @xref{,,, guile, Guile reference manual} for a complete list."
2731msgstr "Manche, wie @code{chmod}, sind Teil von Guile. Siehe das @ref{,,, guile, Referenzhandbuch zu Guile} für eine vollständige Liste." 2732msgstr "Manche, wie @code{chmod}, sind Teil von Guile. Siehe das @ref{,,, guile, Referenzhandbuch zu Guile} für eine vollständige Liste."
2732 2733
2733#. type: Plain text 2734#. type: Plain text
2734#: doc/guix-cookbook.texi:1355 2735#: guix-git/doc/guix-cookbook.texi:1355
2735msgid "Guix provides additional helper functions which prove especially handy in the context of package management." 2736msgid "Guix provides additional helper functions which prove especially handy in the context of package management."
2736msgstr "Guix stellt zusätzliche Hilfsfunktionen zur Verfügung, die bei der Paketverwaltung besonders praktisch sind." 2737msgstr "Guix stellt zusätzliche Hilfsfunktionen zur Verfügung, die bei der Paketverwaltung besonders praktisch sind."
2737 2738
2738#. type: Plain text 2739#. type: Plain text
2739#: doc/guix-cookbook.texi:1359 2740#: guix-git/doc/guix-cookbook.texi:1359
2740msgid "Some of those functions can be found in @samp{$GUIX_CHECKOUT/guix/guix/build/utils.scm}. Most of them mirror the behaviour of the traditional Unix system commands:" 2741msgid "Some of those functions can be found in @samp{$GUIX_CHECKOUT/guix/guix/build/utils.scm}. Most of them mirror the behaviour of the traditional Unix system commands:"
2741msgstr "Manche dieser Funktionalitäten finden Sie in @samp{$GUIX_CHECKOUT/guix/guix/build/utils.scm}. Die meisten spiegeln das Verhalten traditioneller Unix-Systembefehle wider:" 2742msgstr "Manche dieser Funktionalitäten finden Sie in @samp{$GUIX_CHECKOUT/guix/guix/build/utils.scm}. Die meisten spiegeln das Verhalten traditioneller Unix-Systembefehle wider:"
2742 2743
2743#. type: item 2744#. type: item
2744#: doc/guix-cookbook.texi:1361 2745#: guix-git/doc/guix-cookbook.texi:1361
2745#, no-wrap 2746#, no-wrap
2746msgid "which" 2747msgid "which"
2747msgstr "which" 2748msgstr "which"
2748 2749
2749#. type: table 2750#. type: table
2750#: doc/guix-cookbook.texi:1363 2751#: guix-git/doc/guix-cookbook.texi:1363
2751msgid "Like the @samp{which} system command." 2752msgid "Like the @samp{which} system command."
2752msgstr "Das Gleiche wie der @samp{which}-Systembefehl." 2753msgstr "Das Gleiche wie der @samp{which}-Systembefehl."
2753 2754
2754#. type: item 2755#. type: item
2755#: doc/guix-cookbook.texi:1363 2756#: guix-git/doc/guix-cookbook.texi:1363
2756#, no-wrap 2757#, no-wrap
2757msgid "find-files" 2758msgid "find-files"
2758msgstr "find-files" 2759msgstr "find-files"
2759 2760
2760#. type: table 2761#. type: table
2761#: doc/guix-cookbook.texi:1365 2762#: guix-git/doc/guix-cookbook.texi:1365
2762msgid "Akin to the @samp{find} system command." 2763msgid "Akin to the @samp{find} system command."
2763msgstr "Wie der @samp{find} Systembefehl." 2764msgstr "Wie der @samp{find} Systembefehl."
2764 2765
2765#. type: item 2766#. type: item
2766#: doc/guix-cookbook.texi:1365 2767#: guix-git/doc/guix-cookbook.texi:1365
2767#, no-wrap 2768#, no-wrap
2768msgid "mkdir-p" 2769msgid "mkdir-p"
2769msgstr "mkdir-p" 2770msgstr "mkdir-p"
2770 2771
2771#. type: table 2772#. type: table
2772#: doc/guix-cookbook.texi:1367 2773#: guix-git/doc/guix-cookbook.texi:1367
2773msgid "Like @samp{mkdir -p}, which creates all parents as needed." 2774msgid "Like @samp{mkdir -p}, which creates all parents as needed."
2774msgstr "Wie @samp{mkdir -p}, das Elternverzeichnisse erzeugt, wenn nötig." 2775msgstr "Wie @samp{mkdir -p}, das Elternverzeichnisse erzeugt, wenn nötig."
2775 2776
2776#. type: item 2777#. type: item
2777#: doc/guix-cookbook.texi:1367 2778#: guix-git/doc/guix-cookbook.texi:1367
2778#, no-wrap 2779#, no-wrap
2779msgid "install-file" 2780msgid "install-file"
2780msgstr "install-file" 2781msgstr "install-file"
2781 2782
2782#. type: table 2783#. type: table
2783#: doc/guix-cookbook.texi:1371 2784#: guix-git/doc/guix-cookbook.texi:1371
2784msgid "Similar to @samp{install} when installing a file to a (possibly non-existing) directory. Guile has @code{copy-file} which works like @samp{cp}." 2785msgid "Similar to @samp{install} when installing a file to a (possibly non-existing) directory. Guile has @code{copy-file} which works like @samp{cp}."
2785msgstr "Ähnlich wie @samp{install} beim Installieren einer Datei in ein (nicht unbedingt existierendes) Verzeichnis. Guile kennt @code{copy-file}, das wie @samp{cp} funktioniert." 2786msgstr "Ähnlich wie @samp{install} beim Installieren einer Datei in ein (nicht unbedingt existierendes) Verzeichnis. Guile kennt @code{copy-file}, das wie @samp{cp} funktioniert."
2786 2787
2787#. type: item 2788#. type: item
2788#: doc/guix-cookbook.texi:1371 2789#: guix-git/doc/guix-cookbook.texi:1371
2789#, no-wrap 2790#, no-wrap
2790msgid "copy-recursively" 2791msgid "copy-recursively"
2791msgstr "copy-recursively" 2792msgstr "copy-recursively"
2792 2793
2793#. type: table 2794#. type: table
2794#: doc/guix-cookbook.texi:1373 2795#: guix-git/doc/guix-cookbook.texi:1373
2795msgid "Like @samp{cp -r}." 2796msgid "Like @samp{cp -r}."
2796msgstr "Wie @samp{cp -r}." 2797msgstr "Wie @samp{cp -r}."
2797 2798
2798#. type: item 2799#. type: item
2799#: doc/guix-cookbook.texi:1373 2800#: guix-git/doc/guix-cookbook.texi:1373
2800#, no-wrap 2801#, no-wrap
2801msgid "delete-file-recursively" 2802msgid "delete-file-recursively"
2802msgstr "delete-file-recursively" 2803msgstr "delete-file-recursively"
2803 2804
2804#. type: table 2805#. type: table
2805#: doc/guix-cookbook.texi:1375 2806#: guix-git/doc/guix-cookbook.texi:1375
2806msgid "Like @samp{rm -rf}." 2807msgid "Like @samp{rm -rf}."
2807msgstr "Wie @samp{rm -rf}." 2808msgstr "Wie @samp{rm -rf}."
2808 2809
2809#. type: item 2810#. type: item
2810#: doc/guix-cookbook.texi:1375 2811#: guix-git/doc/guix-cookbook.texi:1375
2811#, no-wrap 2812#, no-wrap
2812msgid "invoke" 2813msgid "invoke"
2813msgstr "invoke" 2814msgstr "invoke"
2814 2815
2815#. type: table 2816#. type: table
2816#: doc/guix-cookbook.texi:1377 2817#: guix-git/doc/guix-cookbook.texi:1377
2817msgid "Run an executable. This should be used instead of @code{system*}." 2818msgid "Run an executable. This should be used instead of @code{system*}."
2818msgstr "Eine ausführbare Datei ausführen. Man sollte es benutzen und nicht @code{system*}." 2819msgstr "Eine ausführbare Datei ausführen. Man sollte es benutzen und nicht @code{system*}."
2819 2820
2820#. type: item 2821#. type: item
2821#: doc/guix-cookbook.texi:1377 2822#: guix-git/doc/guix-cookbook.texi:1377
2822#, no-wrap 2823#, no-wrap
2823msgid "with-directory-excursion" 2824msgid "with-directory-excursion"
2824msgstr "with-directory-excursion" 2825msgstr "with-directory-excursion"
2825 2826
2826#. type: table 2827#. type: table
2827#: doc/guix-cookbook.texi:1380 2828#: guix-git/doc/guix-cookbook.texi:1380
2828msgid "Run the body in a different working directory, then restore the previous working directory." 2829msgid "Run the body in a different working directory, then restore the previous working directory."
2829msgstr "Den Rumpf in einem anderen Arbeitsverzeichnis ausführen und danach wieder in das vorherige Arbeitsverzeichnis wechseln." 2830msgstr "Den Rumpf in einem anderen Arbeitsverzeichnis ausführen und danach wieder in das vorherige Arbeitsverzeichnis wechseln."
2830 2831
2831#. type: item 2832#. type: item
2832#: doc/guix-cookbook.texi:1380 2833#: guix-git/doc/guix-cookbook.texi:1380
2833#, no-wrap 2834#, no-wrap
2834msgid "substitute*" 2835msgid "substitute*"
2835msgstr "substitute*" 2836msgstr "substitute*"
2836 2837
2837#. type: table 2838#. type: table
2838#: doc/guix-cookbook.texi:1382 2839#: guix-git/doc/guix-cookbook.texi:1382
2839msgid "A ``@command{sed}-like'' function." 2840msgid "A ``@command{sed}-like'' function."
2840msgstr "Eine „@command{sed}-artige“ Funktion." 2841msgstr "Eine „@command{sed}-artige“ Funktion."
2841 2842
2842#. type: Plain text 2843#. type: Plain text
2843#: doc/guix-cookbook.texi:1386 2844#: guix-git/doc/guix-cookbook.texi:1386
2844msgid "@xref{Build Utilities,,, guix, GNU Guix Reference Manual}, for more information on these utilities." 2845msgid "@xref{Build Utilities,,, guix, GNU Guix Reference Manual}, for more information on these utilities."
2845msgstr "Siehe @ref{Werkzeuge zur Erstellung,,, guix.de, Referenzhandbuch zu GNU Guix} für mehr Informationen zu diesen Werkzeugen." 2846msgstr "Siehe @ref{Werkzeuge zur Erstellung,,, guix.de, Referenzhandbuch zu GNU Guix} für mehr Informationen zu diesen Werkzeugen."
2846 2847
2847#. type: subsubsection 2848#. type: subsubsection
2848#: doc/guix-cookbook.texi:1387 2849#: guix-git/doc/guix-cookbook.texi:1387
2849#, no-wrap 2850#, no-wrap
2850msgid "Module prefix" 2851msgid "Module prefix"
2851msgstr "Modulpräfix" 2852msgstr "Modulpräfix"
2852 2853
2853#. type: Plain text 2854#. type: Plain text
2854#: doc/guix-cookbook.texi:1397 2855#: guix-git/doc/guix-cookbook.texi:1397
2855msgid "The license in our last example needs a prefix: this is because of how the @code{license} module was imported in the package, as @code{#:use-module ((guix licenses) #:prefix license:)}. The Guile module import mechanism (@pxref{Using Guile Modules,,, guile, Guile reference manual}) gives the user full control over namespacing: this is needed to avoid clashes between, say, the @samp{zlib} variable from @samp{licenses.scm} (a @emph{license} value) and the @samp{zlib} variable from @samp{compression.scm} (a @emph{package} value)." 2856msgid "The license in our last example needs a prefix: this is because of how the @code{license} module was imported in the package, as @code{#:use-module ((guix licenses) #:prefix license:)}. The Guile module import mechanism (@pxref{Using Guile Modules,,, guile, Guile reference manual}) gives the user full control over namespacing: this is needed to avoid clashes between, say, the @samp{zlib} variable from @samp{licenses.scm} (a @emph{license} value) and the @samp{zlib} variable from @samp{compression.scm} (a @emph{package} value)."
2856msgstr "Die Lizenz in unserem letzten Beispiel braucht ein Präfix. Der Grund liegt darin, wie das @code{license}-Modul importiert worden ist, nämlich @code{#:use-module ((guix licenses) #:prefix license:)}. Der Importmechanismus von Guile-Modulen (siehe @ref{Using Guile Modules,,, guile, Referenzhandbuch zu Guile}) gibt Benutzern die volle Kontrolle über Namensräume. Man braucht sie, um Konflikte zu lösen, z.B.@ zwischen der @samp{zlib}-Variablen aus @samp{licenses.scm} (dieser Wert repräsentiert eine @emph{Softwarelizenz}) und der @samp{zlib}-Variablen aus @samp{compression.scm} (ein Wert, der für ein @emph{Paket} steht)." 2857msgstr "Die Lizenz in unserem letzten Beispiel braucht ein Präfix. Der Grund liegt darin, wie das @code{license}-Modul importiert worden ist, nämlich @code{#:use-module ((guix licenses) #:prefix license:)}. Der Importmechanismus von Guile-Modulen (siehe @ref{Using Guile Modules,,, guile, Referenzhandbuch zu Guile}) gibt Benutzern die volle Kontrolle über Namensräume. Man braucht sie, um Konflikte zu lösen, z.B.@ zwischen der @samp{zlib}-Variablen aus @samp{licenses.scm} (dieser Wert repräsentiert eine @emph{Softwarelizenz}) und der @samp{zlib}-Variablen aus @samp{compression.scm} (ein Wert, der für ein @emph{Paket} steht)."
2857 2858
2858#. type: Plain text 2859#. type: Plain text
2859#: doc/guix-cookbook.texi:1406 2860#: guix-git/doc/guix-cookbook.texi:1406
2860msgid "What we've seen so far covers the majority of packages using a build system other than the @code{trivial-build-system}. The latter does not automate anything and leaves you to build everything manually. This can be more demanding and we won't cover it here for now, but thankfully it is rarely necessary to fall back on this system." 2861msgid "What we've seen so far covers the majority of packages using a build system other than the @code{trivial-build-system}. The latter does not automate anything and leaves you to build everything manually. This can be more demanding and we won't cover it here for now, but thankfully it is rarely necessary to fall back on this system."
2861msgstr "Was wir bisher gesehen haben reicht für die meisten Pakete aus, die als Erstellungssystem etwas anderes als @code{trivial-build-system} verwenden. Letzteres automatisiert gar nichts und überlässt es Ihnen, alles zur Erstellung manuell festzulegen. Das kann einen noch mehr beanspruchen und wir beschreiben es hier zurzeit nicht, aber glücklicherweise braucht man dieses System auch nur in seltenen Fällen." 2862msgstr "Was wir bisher gesehen haben reicht für die meisten Pakete aus, die als Erstellungssystem etwas anderes als @code{trivial-build-system} verwenden. Letzteres automatisiert gar nichts und überlässt es Ihnen, alles zur Erstellung manuell festzulegen. Das kann einen noch mehr beanspruchen und wir beschreiben es hier zurzeit nicht, aber glücklicherweise braucht man dieses System auch nur in seltenen Fällen."
2862 2863
2863#. type: Plain text 2864#. type: Plain text
2864#: doc/guix-cookbook.texi:1410 2865#: guix-git/doc/guix-cookbook.texi:1410
2865msgid "For the other build systems, such as ASDF, Emacs, Perl, Ruby and many more, the process is very similar to the GNU build system except for a few specialized arguments." 2866msgid "For the other build systems, such as ASDF, Emacs, Perl, Ruby and many more, the process is very similar to the GNU build system except for a few specialized arguments."
2866msgstr "Bei anderen Erstellungssystemen wie ASDF, Emacs, Perl, Ruby und vielen anderen ist der Prozess sehr ähnlich zum GNU-Erstellungssystem abgesehen von ein paar speziellen Argumenten." 2867msgstr "Bei anderen Erstellungssystemen wie ASDF, Emacs, Perl, Ruby und vielen anderen ist der Prozess sehr ähnlich zum GNU-Erstellungssystem abgesehen von ein paar speziellen Argumenten."
2867 2868
2868#. type: Plain text 2869#. type: Plain text
2869#: doc/guix-cookbook.texi:1415 2870#: guix-git/doc/guix-cookbook.texi:1415
2870msgid "@xref{Build Systems,,, guix, GNU Guix Reference Manual}, for more information on build systems, or check the source code in the @samp{$GUIX_CHECKOUT/guix/build} and @samp{$GUIX_CHECKOUT/guix/build-system} directories." 2871msgid "@xref{Build Systems,,, guix, GNU Guix Reference Manual}, for more information on build systems, or check the source code in the @samp{$GUIX_CHECKOUT/guix/build} and @samp{$GUIX_CHECKOUT/guix/build-system} directories."
2871msgstr "Siehe @ref{Erstellungssysteme,,, guix.de, Referenzhandbuch zu GNU Guix}, für mehr Informationen über Erstellungssysteme, oder den Quellcode in den Verzeichnissen @samp{$GUIX_CHECKOUT/guix/build} und @samp{$GUIX_CHECKOUT/guix/build-system}." 2872msgstr "Siehe @ref{Erstellungssysteme,,, guix.de, Referenzhandbuch zu GNU Guix}, für mehr Informationen über Erstellungssysteme, oder den Quellcode in den Verzeichnissen @samp{$GUIX_CHECKOUT/guix/build} und @samp{$GUIX_CHECKOUT/guix/build-system}."
2872 2873
2873#. type: Plain text 2874#. type: Plain text
2874#: doc/guix-cookbook.texi:1421 2875#: guix-git/doc/guix-cookbook.texi:1421
2875msgid "We can't repeat it enough: having a full-fledged programming language at hand empowers us in ways that reach far beyond traditional package management." 2876msgid "We can't repeat it enough: having a full-fledged programming language at hand empowers us in ways that reach far beyond traditional package management."
2876msgstr "Wir können es nicht oft genug wiederholen: Eine Allzweck-Programmiersprache zur Hand zu haben macht Dinge möglich, die traditionelle Paketverwaltung weit übersteigen." 2877msgstr "Wir können es nicht oft genug wiederholen: Eine Allzweck-Programmiersprache zur Hand zu haben macht Dinge möglich, die traditionelle Paketverwaltung weit übersteigen."
2877 2878
2878#. type: Plain text 2879#. type: Plain text
2879#: doc/guix-cookbook.texi:1423 2880#: guix-git/doc/guix-cookbook.texi:1423
2880msgid "Let's illustrate this with some awesome features of Guix!" 2881msgid "Let's illustrate this with some awesome features of Guix!"
2881msgstr "Wir können uns das anhand Guix’ großartiger Funktionalitäten klarmachen!" 2882msgstr "Wir können uns das anhand Guix’ großartiger Funktionalitäten klarmachen!"
2882 2883
2883#. type: Plain text 2884#. type: Plain text
2884#: doc/guix-cookbook.texi:1438 2885#: guix-git/doc/guix-cookbook.texi:1438
2885msgid "You might find some build systems good enough that there is little to do at all to write a package, to the point that it becomes repetitive and tedious after a while. A @emph{raison d'être} of computers is to replace human beings at those boring tasks. So let's tell Guix to do this for us and create the package definition of an R package from CRAN (the output is trimmed for conciseness):" 2886msgid "You might find some build systems good enough that there is little to do at all to write a package, to the point that it becomes repetitive and tedious after a while. A @emph{raison d'être} of computers is to replace human beings at those boring tasks. So let's tell Guix to do this for us and create the package definition of an R package from CRAN (the output is trimmed for conciseness):"
2886msgstr "Sie könnten feststellen, dass manche Erstellungssysteme gut genug sind und nichts weiter zu tun bleibt, um ein Paket zu verfassen. Das Paketeschreiben kann so monoton werden und man wird dessen bald überdrüssig. Eine Daseinsberechtigung von Rechnern ist, Menschen bei solch langweiligen Aufgaben zu ersetzen. Lasst uns also Guix die Sache erledigen: Wir lassen uns die Paketdefinition eines R-Pakets mit den Informationen aus CRAN holen (was zu anderen ausgegeben wird, haben wir im Folgenden weggelassen):" 2887msgstr "Sie könnten feststellen, dass manche Erstellungssysteme gut genug sind und nichts weiter zu tun bleibt, um ein Paket zu verfassen. Das Paketeschreiben kann so monoton werden und man wird dessen bald überdrüssig. Eine Daseinsberechtigung von Rechnern ist, Menschen bei solch langweiligen Aufgaben zu ersetzen. Lasst uns also Guix die Sache erledigen: Wir lassen uns die Paketdefinition eines R-Pakets mit den Informationen aus CRAN holen (was zu anderen ausgegeben wird, haben wir im Folgenden weggelassen):"
2887 2888
2888#. type: example 2889#. type: example
2889#: doc/guix-cookbook.texi:1441 2890#: guix-git/doc/guix-cookbook.texi:1441
2890#, no-wrap 2891#, no-wrap
2891msgid "" 2892msgid ""
2892"$ guix import cran --recursive walrus\n" 2893"$ guix import cran --recursive walrus\n"
@@ -2896,7 +2897,7 @@ msgstr ""
2896"\n" 2897"\n"
2897 2898
2898#. type: example 2899#. type: example
2899#: doc/guix-cookbook.texi:1445 2900#: guix-git/doc/guix-cookbook.texi:1445
2900#, no-wrap 2901#, no-wrap
2901msgid "" 2902msgid ""
2902"(define-public r-mc2d\n" 2903"(define-public r-mc2d\n"
@@ -2910,7 +2911,7 @@ msgstr ""
2910"\n" 2911"\n"
2911 2912
2912#. type: example 2913#. type: example
2913#: doc/guix-cookbook.texi:1449 2914#: guix-git/doc/guix-cookbook.texi:1449
2914#, no-wrap 2915#, no-wrap
2915msgid "" 2916msgid ""
2916"(define-public r-jmvcore\n" 2917"(define-public r-jmvcore\n"
@@ -2924,7 +2925,7 @@ msgstr ""
2924"\n" 2925"\n"
2925 2926
2926#. type: example 2927#. type: example
2927#: doc/guix-cookbook.texi:1453 2928#: guix-git/doc/guix-cookbook.texi:1453
2928#, no-wrap 2929#, no-wrap
2929msgid "" 2930msgid ""
2930"(define-public r-wrs2\n" 2931"(define-public r-wrs2\n"
@@ -2938,7 +2939,7 @@ msgstr ""
2938"\n" 2939"\n"
2939 2940
2940#. type: example 2941#. type: example
2941#: doc/guix-cookbook.texi:1479 2942#: guix-git/doc/guix-cookbook.texi:1479
2942#, no-wrap 2943#, no-wrap
2943msgid "" 2944msgid ""
2944"(define-public r-walrus\n" 2945"(define-public r-walrus\n"
@@ -2994,44 +2995,44 @@ msgstr ""
2994" (license gpl3)))\n" 2995" (license gpl3)))\n"
2995 2996
2996#. type: Plain text 2997#. type: Plain text
2997#: doc/guix-cookbook.texi:1483 2998#: guix-git/doc/guix-cookbook.texi:1483
2998msgid "The recursive importer won't import packages for which Guix already has package definitions, except for the very first." 2999msgid "The recursive importer won't import packages for which Guix already has package definitions, except for the very first."
2999msgstr "Der rekursive Importer wird keine Pakete importieren, für die es in Guix bereits eine Paketdefinition gibt, außer dem Paket, mit dem er anfängt." 3000msgstr "Der rekursive Importer wird keine Pakete importieren, für die es in Guix bereits eine Paketdefinition gibt, außer dem Paket, mit dem er anfängt."
3000 3001
3001#. type: Plain text 3002#. type: Plain text
3002#: doc/guix-cookbook.texi:1488 3003#: guix-git/doc/guix-cookbook.texi:1488
3003msgid "Not all applications can be packaged this way, only those relying on a select number of supported systems. Read about the full list of importers in the guix import section of the manual (@pxref{Invoking guix import,,, guix, GNU Guix Reference Manual})." 3004msgid "Not all applications can be packaged this way, only those relying on a select number of supported systems. Read about the full list of importers in the guix import section of the manual (@pxref{Invoking guix import,,, guix, GNU Guix Reference Manual})."
3004msgstr "Nicht für alle Anwendungen können auf diesem Weg Pakete erzeugt werden, nur für jene, die auf ausgewählten Systemen aufbauen. Im Handbuch können Sie Informationen über die vollständige Liste aller Importer bekommen (siehe @ref{Aufruf von guix import,,, guix.de, Referenzhandbuch zu GNU Guix})." 3005msgstr "Nicht für alle Anwendungen können auf diesem Weg Pakete erzeugt werden, nur für jene, die auf ausgewählten Systemen aufbauen. Im Handbuch können Sie Informationen über die vollständige Liste aller Importer bekommen (siehe @ref{Aufruf von guix import,,, guix.de, Referenzhandbuch zu GNU Guix})."
3005 3006
3006#. type: Plain text 3007#. type: Plain text
3007#: doc/guix-cookbook.texi:1494 3008#: guix-git/doc/guix-cookbook.texi:1494
3008msgid "Guix can be smart enough to check for updates on systems it knows. It can report outdated package definitions with" 3009msgid "Guix can be smart enough to check for updates on systems it knows. It can report outdated package definitions with"
3009msgstr "Guix ist klug genug, um verfügbare Aktualisierungen auf bekannten Systemen zu erkennen. Es kann über veraltete Paketdefinitionen Bericht erstatten, wenn man dies eingibt:" 3010msgstr "Guix ist klug genug, um verfügbare Aktualisierungen auf bekannten Systemen zu erkennen. Es kann über veraltete Paketdefinitionen Bericht erstatten, wenn man dies eingibt:"
3010 3011
3011#. type: example 3012#. type: example
3012#: doc/guix-cookbook.texi:1497 3013#: guix-git/doc/guix-cookbook.texi:1497
3013#, no-wrap 3014#, no-wrap
3014msgid "$ guix refresh hello\n" 3015msgid "$ guix refresh hello\n"
3015msgstr "$ guix refresh hello\n" 3016msgstr "$ guix refresh hello\n"
3016 3017
3017#. type: Plain text 3018#. type: Plain text
3018#: doc/guix-cookbook.texi:1502 3019#: guix-git/doc/guix-cookbook.texi:1502
3019msgid "In most cases, updating a package to a newer version requires little more than changing the version number and the checksum. Guix can do that automatically as well:" 3020msgid "In most cases, updating a package to a newer version requires little more than changing the version number and the checksum. Guix can do that automatically as well:"
3020msgstr "In den meisten Fällen muss man zur Aktualisierung auf eine neuere Version wenig mehr tun, als die Versionsnummer und die Prüfsumme ändern. Auch das kann mit Guix automatisiert werden:" 3021msgstr "In den meisten Fällen muss man zur Aktualisierung auf eine neuere Version wenig mehr tun, als die Versionsnummer und die Prüfsumme ändern. Auch das kann mit Guix automatisiert werden:"
3021 3022
3022#. type: example 3023#. type: example
3023#: doc/guix-cookbook.texi:1505 3024#: guix-git/doc/guix-cookbook.texi:1505
3024#, no-wrap 3025#, no-wrap
3025msgid "$ guix refresh hello --update\n" 3026msgid "$ guix refresh hello --update\n"
3026msgstr "$ guix refresh hello --update\n" 3027msgstr "$ guix refresh hello --update\n"
3027 3028
3028#. type: Plain text 3029#. type: Plain text
3029#: doc/guix-cookbook.texi:1512 3030#: guix-git/doc/guix-cookbook.texi:1512
3030msgid "If you've started browsing the existing package definitions, you might have noticed that a significant number of them have a @code{inherit} field:" 3031msgid "If you've started browsing the existing package definitions, you might have noticed that a significant number of them have a @code{inherit} field:"
3031msgstr "Wenn Sie anfangen, bestehende Paketdefinitionen anzuschauen, könnte es Ihnen auffallen, dass viele von ihnen über ein @code{inherit}-Feld verfügen." 3032msgstr "Wenn Sie anfangen, bestehende Paketdefinitionen anzuschauen, könnte es Ihnen auffallen, dass viele von ihnen über ein @code{inherit}-Feld verfügen."
3032 3033
3033#. type: lisp 3034#. type: lisp
3034#: doc/guix-cookbook.texi:1527 3035#: guix-git/doc/guix-cookbook.texi:1527
3035#, no-wrap 3036#, no-wrap
3036msgid "" 3037msgid ""
3037"(define-public adwaita-icon-theme\n" 3038"(define-public adwaita-icon-theme\n"
@@ -3063,82 +3064,82 @@ msgstr ""
3063" (native-inputs (list `(,gtk+ \\\"bin\\\")))))\n" 3064" (native-inputs (list `(,gtk+ \\\"bin\\\")))))\n"
3064 3065
3065#. type: Plain text 3066#. type: Plain text
3066#: doc/guix-cookbook.texi:1532 3067#: guix-git/doc/guix-cookbook.texi:1532
3067msgid "All unspecified fields are inherited from the parent package. This is very convenient to create alternative packages, for instance with different source, version or compilation options." 3068msgid "All unspecified fields are inherited from the parent package. This is very convenient to create alternative packages, for instance with different source, version or compilation options."
3068msgstr "Alle @emph{nicht} aufgeführten Felder werden vom Elternpaket geerbt. Das ist ziemlich praktisch, um alternative Pakete zu erzeugen, zum Beispiel solche mit geänderten Quellorten, Versionen oder Kompilierungsoptionen." 3069msgstr "Alle @emph{nicht} aufgeführten Felder werden vom Elternpaket geerbt. Das ist ziemlich praktisch, um alternative Pakete zu erzeugen, zum Beispiel solche mit geänderten Quellorten, Versionen oder Kompilierungsoptionen."
3069 3070
3070#. type: Plain text 3071#. type: Plain text
3071#: doc/guix-cookbook.texi:1540 3072#: guix-git/doc/guix-cookbook.texi:1540
3072msgid "Sadly, some applications can be tough to package. Sometimes they need a patch to work with the non-standard file system hierarchy enforced by the store. Sometimes the tests won't run properly. (They can be skipped but this is not recommended.) Other times the resulting package won't be reproducible." 3073msgid "Sadly, some applications can be tough to package. Sometimes they need a patch to work with the non-standard file system hierarchy enforced by the store. Sometimes the tests won't run properly. (They can be skipped but this is not recommended.) Other times the resulting package won't be reproducible."
3073msgstr "Leider ist es für manche Anwendungen schwierig, Pakete zu schreiben. Manchmal brauchen sie einen Patch, um mit vom Standard abweichenden Dateisystemhierarchien klarzukommen, wie sie der Store erforderlich macht. Manchmal funktionieren die Tests nicht richtig. (Man kann sie überspringen, aber man sollte nicht.) Ein andermal ist das sich ergebende Paket nicht reproduzierbar." 3074msgstr "Leider ist es für manche Anwendungen schwierig, Pakete zu schreiben. Manchmal brauchen sie einen Patch, um mit vom Standard abweichenden Dateisystemhierarchien klarzukommen, wie sie der Store erforderlich macht. Manchmal funktionieren die Tests nicht richtig. (Man kann sie überspringen, aber man sollte nicht.) Ein andermal ist das sich ergebende Paket nicht reproduzierbar."
3074 3075
3075#. type: Plain text 3076#. type: Plain text
3076#: doc/guix-cookbook.texi:1543 3077#: guix-git/doc/guix-cookbook.texi:1543
3077msgid "Should you be stuck, unable to figure out how to fix any sort of packaging issue, don't hesitate to ask the community for help." 3078msgid "Should you be stuck, unable to figure out how to fix any sort of packaging issue, don't hesitate to ask the community for help."
3078msgstr "Wenn Sie nicht weiterkommen, weil Sie nicht wissen, wie Sie ein Problem beim Paketschreiben lösen können, dann zögern Sie nicht, die Gemeinde um Hilfe zu bitten." 3079msgstr "Wenn Sie nicht weiterkommen, weil Sie nicht wissen, wie Sie ein Problem beim Paketschreiben lösen können, dann zögern Sie nicht, die Gemeinde um Hilfe zu bitten."
3079 3080
3080#. type: Plain text 3081#. type: Plain text
3081#: doc/guix-cookbook.texi:1545 3082#: guix-git/doc/guix-cookbook.texi:1545
3082msgid "See the @uref{https://www.gnu.org/software/guix/contact/, Guix homepage} for information on the mailing lists, IRC, etc." 3083msgid "See the @uref{https://www.gnu.org/software/guix/contact/, Guix homepage} for information on the mailing lists, IRC, etc."
3083msgstr "Siehe die @uref{https://www.gnu.org/software/guix/contact/, Homepage von Guix} für Informationen, welche Mailing-Listen, IRC-Kanäle etc.@: bereitstehen." 3084msgstr "Siehe die @uref{https://www.gnu.org/software/guix/contact/, Homepage von Guix} für Informationen, welche Mailing-Listen, IRC-Kanäle etc.@: bereitstehen."
3084 3085
3085#. type: Plain text 3086#. type: Plain text
3086#: doc/guix-cookbook.texi:1553 3087#: guix-git/doc/guix-cookbook.texi:1553
3087msgid "This tutorial was a showcase of the sophisticated package management that Guix boasts. At this point we have mostly restricted this introduction to the @code{gnu-build-system} which is a core abstraction layer on which more advanced abstractions are based." 3088msgid "This tutorial was a showcase of the sophisticated package management that Guix boasts. At this point we have mostly restricted this introduction to the @code{gnu-build-system} which is a core abstraction layer on which more advanced abstractions are based."
3088msgstr "Diese Anleitung hat einen Überblick über die fortgeschrittene Paketverwaltung gegeben, die Guix vorweist. Zu diesem Zeitpunkt haben wir diese Einführung größtenteils auf das @code{gnu-build-system} eingeschränkt, was eine zentrale Abstraktionsschicht darstellt, auf der weitere Abstraktionen aufbauen." 3089msgstr "Diese Anleitung hat einen Überblick über die fortgeschrittene Paketverwaltung gegeben, die Guix vorweist. Zu diesem Zeitpunkt haben wir diese Einführung größtenteils auf das @code{gnu-build-system} eingeschränkt, was eine zentrale Abstraktionsschicht darstellt, auf der weitere Abstraktionen aufbauen."
3089 3090
3090#. type: Plain text 3091#. type: Plain text
3091#: doc/guix-cookbook.texi:1558 3092#: guix-git/doc/guix-cookbook.texi:1558
3092msgid "Where do we go from here? Next we ought to dissect the innards of the build system by removing all abstractions, using the @code{trivial-build-system}: this should give us a thorough understanding of the process before investigating some more advanced packaging techniques and edge cases." 3093msgid "Where do we go from here? Next we ought to dissect the innards of the build system by removing all abstractions, using the @code{trivial-build-system}: this should give us a thorough understanding of the process before investigating some more advanced packaging techniques and edge cases."
3093msgstr "Wie geht es nun weiter? Als Nächstes müssten wir das Erstellungssystem in seine Bestandteile zerlegen, um einen Einblick ganz ohne Abstraktionen zu bekommen. Das bedeutet, wir müssten das @code{trivial-build-system} analysieren. Dadurch sollte ein gründliches Verständnis des Prozesses vermittelt werden, bevor wir höher entwickelte Paketierungstechniken und Randfälle untersuchen." 3094msgstr "Wie geht es nun weiter? Als Nächstes müssten wir das Erstellungssystem in seine Bestandteile zerlegen, um einen Einblick ganz ohne Abstraktionen zu bekommen. Das bedeutet, wir müssten das @code{trivial-build-system} analysieren. Dadurch sollte ein gründliches Verständnis des Prozesses vermittelt werden, bevor wir höher entwickelte Paketierungstechniken und Randfälle untersuchen."
3094 3095
3095#. type: Plain text 3096#. type: Plain text
3096#: doc/guix-cookbook.texi:1561 3097#: guix-git/doc/guix-cookbook.texi:1561
3097msgid "Other features worth exploring are the interactive editing and debugging capabilities of Guix provided by the Guile REPL@." 3098msgid "Other features worth exploring are the interactive editing and debugging capabilities of Guix provided by the Guile REPL@."
3098msgstr "Andere Funktionalitäten, die es wert sind, erkundet zu werden, sind Guix’ Funktionalitäten zum interaktiven Editieren und zur Fehlersuche, die die REPL von Guile darbietet." 3099msgstr "Andere Funktionalitäten, die es wert sind, erkundet zu werden, sind Guix’ Funktionalitäten zum interaktiven Editieren und zur Fehlersuche, die die REPL von Guile darbietet."
3099 3100
3100#. type: Plain text 3101#. type: Plain text
3101#: doc/guix-cookbook.texi:1566 3102#: guix-git/doc/guix-cookbook.texi:1566
3102msgid "Those fancy features are completely optional and can wait; now is a good time to take a well-deserved break. With what we've introduced here you should be well armed to package lots of programs. You can get started right away and hopefully we will see your contributions soon!" 3103msgid "Those fancy features are completely optional and can wait; now is a good time to take a well-deserved break. With what we've introduced here you should be well armed to package lots of programs. You can get started right away and hopefully we will see your contributions soon!"
3103msgstr "Diese eindrucksvollen Funktionalitäten sind völlig optional und können warten; jetzt ist die Zeit für eine wohlverdiente Pause. Mit dem Wissen, in das wir hier eingeführt haben, sollten Sie für das Paketieren vieler Programme gut gerüstet sein. Sie können gleich anfangen und hoffentlich bekommen wir bald Ihre Beiträge zu sehen!" 3104msgstr "Diese eindrucksvollen Funktionalitäten sind völlig optional und können warten; jetzt ist die Zeit für eine wohlverdiente Pause. Mit dem Wissen, in das wir hier eingeführt haben, sollten Sie für das Paketieren vieler Programme gut gerüstet sein. Sie können gleich anfangen und hoffentlich bekommen wir bald Ihre Beiträge zu sehen!"
3104 3105
3105#. type: itemize 3106#. type: itemize
3106#: doc/guix-cookbook.texi:1573 3107#: guix-git/doc/guix-cookbook.texi:1573
3107msgid "The @uref{https://www.gnu.org/software/guix/manual/en/html_node/Defining-Packages.html, package reference in the manual}" 3108msgid "The @uref{https://www.gnu.org/software/guix/manual/en/html_node/Defining-Packages.html, package reference in the manual}"
3108msgstr "Die @uref{https://guix.gnu.org/manual/de/html_node/Pakete-definieren.html, Paketreferenz im Handbuch}" 3109msgstr "Die @uref{https://guix.gnu.org/manual/de/html_node/Pakete-definieren.html, Paketreferenz im Handbuch}"
3109 3110
3110#. type: itemize 3111#. type: itemize
3111#: doc/guix-cookbook.texi:1576 3112#: guix-git/doc/guix-cookbook.texi:1576
3112msgid "@uref{https://gitlab.com/pjotrp/guix-notes/blob/master/HACKING.org, Pjotr’s hacking guide to GNU Guix}" 3113msgid "@uref{https://gitlab.com/pjotrp/guix-notes/blob/master/HACKING.org, Pjotr’s hacking guide to GNU Guix}"
3113msgstr "@uref{https://gitlab.com/pjotrp/guix-notes/blob/master/HACKING.org, Pjotr’s Hacking-Leitfaden für GNU Guix}" 3114msgstr "@uref{https://gitlab.com/pjotrp/guix-notes/blob/master/HACKING.org, Pjotr’s Hacking-Leitfaden für GNU Guix}"
3114 3115
3115#. type: itemize 3116#. type: itemize
3116#: doc/guix-cookbook.texi:1579 3117#: guix-git/doc/guix-cookbook.texi:1579
3117msgid "@uref{https://www.gnu.org/software/guix/guix-ghm-andreas-20130823.pdf, ``GNU Guix: Package without a scheme!''}, by Andreas Enge" 3118msgid "@uref{https://www.gnu.org/software/guix/guix-ghm-andreas-20130823.pdf, ``GNU Guix: Package without a scheme!''}, by Andreas Enge"
3118msgstr "@uref{https://www.gnu.org/software/guix/guix-ghm-andreas-20130823.pdf, „GNU Guix: Package without a scheme!“} von Andreas Enge" 3119msgstr "@uref{https://www.gnu.org/software/guix/guix-ghm-andreas-20130823.pdf, „GNU Guix: Package without a scheme!“} von Andreas Enge"
3119 3120
3120#. type: Plain text 3121#. type: Plain text
3121#: doc/guix-cookbook.texi:1588 3122#: guix-git/doc/guix-cookbook.texi:1588
3122msgid "Guix offers a flexible language for declaratively configuring your Guix System. This flexibility can at times be overwhelming. The purpose of this chapter is to demonstrate some advanced configuration concepts." 3123msgid "Guix offers a flexible language for declaratively configuring your Guix System. This flexibility can at times be overwhelming. The purpose of this chapter is to demonstrate some advanced configuration concepts."
3123msgstr "Guix stellt eine flexible Sprache bereit, um Ihr „Guix System“ auf deklarative Weise zu konfigurieren. Diese Flexibilität kann einen manchmal überwältigen. Dieses Kapitel hat den Zweck, einige fortgeschrittene Konfigurationskonzepte vorzuzeigen." 3124msgstr "Guix stellt eine flexible Sprache bereit, um Ihr „Guix System“ auf deklarative Weise zu konfigurieren. Diese Flexibilität kann einen manchmal überwältigen. Dieses Kapitel hat den Zweck, einige fortgeschrittene Konfigurationskonzepte vorzuzeigen."
3124 3125
3125#. type: Plain text 3126#. type: Plain text
3126#: doc/guix-cookbook.texi:1591 3127#: guix-git/doc/guix-cookbook.texi:1591
3127msgid "@pxref{System Configuration,,, guix, GNU Guix Reference Manual} for a complete reference." 3128msgid "@pxref{System Configuration,,, guix, GNU Guix Reference Manual} for a complete reference."
3128msgstr "Siehe @ref{Systemkonfiguration,,, guix.de, Referenzhandbuch zu GNU Guix} für eine vollständige Referenz." 3129msgstr "Siehe @ref{Systemkonfiguration,,, guix.de, Referenzhandbuch zu GNU Guix} für eine vollständige Referenz."
3129 3130
3130#. type: Plain text 3131#. type: Plain text
3131#: doc/guix-cookbook.texi:1618 3132#: guix-git/doc/guix-cookbook.texi:1618
3132msgid "While the Guix manual explains auto-login one user to @emph{all} TTYs ( @pxref{auto-login to TTY,,, guix, GNU Guix Reference Manual}), some might prefer a situation, in which one user is logged into one TTY with the other TTYs either configured to login different users or no one at all. Note that one can auto-login one user to any TTY, but it is usually advisable to avoid @code{tty1}, which, by default, is used to log warnings and errors." 3133msgid "While the Guix manual explains auto-login one user to @emph{all} TTYs ( @pxref{auto-login to TTY,,, guix, GNU Guix Reference Manual}), some might prefer a situation, in which one user is logged into one TTY with the other TTYs either configured to login different users or no one at all. Note that one can auto-login one user to any TTY, but it is usually advisable to avoid @code{tty1}, which, by default, is used to log warnings and errors."
3133msgstr "Im Guix-Handbuch wird erklärt, wie man ein Benutzerkonto automatisch auf @emph{allen} TTYs anmelden lassen kann (@pxref{auto-login to TTY,,, guix.de, Referenzhandbuch zu GNU Guix}), aber vielleicht wäre es Ihnen lieber, ein Benutzerkonto an genau einem TTY anzumelden und die anderen TTYs so zu konfigurieren, dass entweder andere Benutzer oder gar niemand angemeldet wird. Beachten Sie, dass man auf jedem TTY automatisch jemanden anmelden kann, aber meistens will man @code{tty1} in Ruhe lassen, weil dorthin nach Voreinstellung Warnungs- und Fehlerprotokolle ausgegeben werden." 3134msgstr "Im Guix-Handbuch wird erklärt, wie man ein Benutzerkonto automatisch auf @emph{allen} TTYs anmelden lassen kann (@pxref{auto-login to TTY,,, guix.de, Referenzhandbuch zu GNU Guix}), aber vielleicht wäre es Ihnen lieber, ein Benutzerkonto an genau einem TTY anzumelden und die anderen TTYs so zu konfigurieren, dass entweder andere Benutzer oder gar niemand angemeldet wird. Beachten Sie, dass man auf jedem TTY automatisch jemanden anmelden kann, aber meistens will man @code{tty1} in Ruhe lassen, weil dorthin nach Voreinstellung Warnungs- und Fehlerprotokolle ausgegeben werden."
3134 3135
3135#. type: Plain text 3136#. type: Plain text
3136#: doc/guix-cookbook.texi:1620 3137#: guix-git/doc/guix-cookbook.texi:1620
3137msgid "Here is how one might set up auto login for one user to one tty:" 3138msgid "Here is how one might set up auto login for one user to one tty:"
3138msgstr "Um eine Benutzerin auf einem einzelnen TTY automatisch anzumelden, schreibt man:" 3139msgstr "Um eine Benutzerin auf einem einzelnen TTY automatisch anzumelden, schreibt man:"
3139 3140
3140#. type: lisp 3141#. type: lisp
3141#: doc/guix-cookbook.texi:1628 3142#: guix-git/doc/guix-cookbook.texi:1628
3142#, no-wrap 3143#, no-wrap
3143msgid "" 3144msgid ""
3144"(define (auto-login-to-tty config tty user)\n" 3145"(define (auto-login-to-tty config tty user)\n"
@@ -3158,7 +3159,7 @@ msgstr ""
3158"\n" 3159"\n"
3159 3160
3160#. type: lisp 3161#. type: lisp
3161#: doc/guix-cookbook.texi:1635 3162#: guix-git/doc/guix-cookbook.texi:1635
3162#, no-wrap 3163#, no-wrap
3163msgid "" 3164msgid ""
3164"(define %my-services\n" 3165"(define %my-services\n"
@@ -3178,7 +3179,7 @@ msgstr ""
3178"\n" 3179"\n"
3179 3180
3180#. type: lisp 3181#. type: lisp
3181#: doc/guix-cookbook.texi:1639 3182#: guix-git/doc/guix-cookbook.texi:1639
3182#, no-wrap 3183#, no-wrap
3183msgid "" 3184msgid ""
3184"(operating-system\n" 3185"(operating-system\n"
@@ -3190,37 +3191,37 @@ msgstr ""
3190" (services %my-services))\n" 3191" (services %my-services))\n"
3191 3192
3192#. type: Plain text 3193#. type: Plain text
3193#: doc/guix-cookbook.texi:1644 3194#: guix-git/doc/guix-cookbook.texi:1644
3194msgid "One could also @code{compose} (@pxref{Higher-Order Functions,,, guile, The Guile Reference Manual}) @code{auto-login-to-tty} to login multiple users to multiple ttys." 3195msgid "One could also @code{compose} (@pxref{Higher-Order Functions,,, guile, The Guile Reference Manual}) @code{auto-login-to-tty} to login multiple users to multiple ttys."
3195msgstr "Mit Hilfe von @code{compose} (siehe @ref{Higher-Order Functions,,, guile, das Referenzhandbuch zu GNU Guile}) kann man etwas wie @code{auto-login-to-tty} mehrfach angeben, um mehrere Nutzerkonten auf verschiedenen TTYs anzumelden." 3196msgstr "Mit Hilfe von @code{compose} (siehe @ref{Higher-Order Functions,,, guile, das Referenzhandbuch zu GNU Guile}) kann man etwas wie @code{auto-login-to-tty} mehrfach angeben, um mehrere Nutzerkonten auf verschiedenen TTYs anzumelden."
3196 3197
3197#. type: Plain text 3198#. type: Plain text
3198#: doc/guix-cookbook.texi:1651 3199#: guix-git/doc/guix-cookbook.texi:1651
3199msgid "Finally, here is a note of caution. Setting up auto login to a TTY, means that anyone can turn on your computer and run commands as your regular user. However, if you have an encrypted root partition, and thus already need to enter a passphrase when the system boots, auto-login might be a convenient option." 3200msgid "Finally, here is a note of caution. Setting up auto login to a TTY, means that anyone can turn on your computer and run commands as your regular user. However, if you have an encrypted root partition, and thus already need to enter a passphrase when the system boots, auto-login might be a convenient option."
3200msgstr "Zum Schluss aber noch eine Warnung. Wenn Sie jemanden auf einem TTY automatisch anmelden lassen, kann jeder einfach Ihren Rechner anschalten und dann Befehle in deren Namen ausführen. Haben Sie Ihr Wurzeldateisystem auf einer verschlüsselten Partition, müsste man dafür erst einmal das Passwort eingeben, wenn das System startet. Dann wäre automatisches Anmelden vielleicht bequem." 3201msgstr "Zum Schluss aber noch eine Warnung. Wenn Sie jemanden auf einem TTY automatisch anmelden lassen, kann jeder einfach Ihren Rechner anschalten und dann Befehle in deren Namen ausführen. Haben Sie Ihr Wurzeldateisystem auf einer verschlüsselten Partition, müsste man dafür erst einmal das Passwort eingeben, wenn das System startet. Dann wäre automatisches Anmelden vielleicht bequem."
3201 3202
3202#. type: Plain text 3203#. type: Plain text
3203#: doc/guix-cookbook.texi:1663 3204#: guix-git/doc/guix-cookbook.texi:1663
3204msgid "Guix is, at its core, a source based distribution with substitutes (@pxref{Substitutes,,, guix, GNU Guix Reference Manual}), and as such building packages from their source code is an expected part of regular package installations and upgrades. Given this starting point, it makes sense that efforts are made to reduce the amount of time spent compiling packages, and recent changes and upgrades to the building and distribution of substitutes continues to be a topic of discussion within Guix." 3205msgid "Guix is, at its core, a source based distribution with substitutes (@pxref{Substitutes,,, guix, GNU Guix Reference Manual}), and as such building packages from their source code is an expected part of regular package installations and upgrades. Given this starting point, it makes sense that efforts are made to reduce the amount of time spent compiling packages, and recent changes and upgrades to the building and distribution of substitutes continues to be a topic of discussion within Guix."
3205msgstr "Im Kern ist Guix eine quellcodebasierte Distribution mit Substituten (siehe @ref{Substitute,,, guix.de, Referenzhandbuch zu GNU Guix}), daher ist das Erstellen von Paketen aus ihrem Quellcode heraus genauso vorgesehen wie die normale Installation und Aktualisierung von Paketen. Von diesem Standpunkt ist es sinnvoll, zu versuchen, den Zeitaufwand für das Kompilieren von Paketen zu senken, und kürzliche Neuerungen sowie Verbesserungen beim Erstellen und Verteilen von Substituten bleiben ein Diskussionsthema innerhalb von Guix." 3206msgstr "Im Kern ist Guix eine quellcodebasierte Distribution mit Substituten (siehe @ref{Substitute,,, guix.de, Referenzhandbuch zu GNU Guix}), daher ist das Erstellen von Paketen aus ihrem Quellcode heraus genauso vorgesehen wie die normale Installation und Aktualisierung von Paketen. Von diesem Standpunkt ist es sinnvoll, zu versuchen, den Zeitaufwand für das Kompilieren von Paketen zu senken, und kürzliche Neuerungen sowie Verbesserungen beim Erstellen und Verteilen von Substituten bleiben ein Diskussionsthema innerhalb von Guix."
3206 3207
3207#. type: Plain text 3208#. type: Plain text
3208#: doc/guix-cookbook.texi:1669 3209#: guix-git/doc/guix-cookbook.texi:1669
3209msgid "The kernel, while not requiring an overabundance of RAM to build, does take a rather long time on an average machine. The official kernel configuration, as is the case with many GNU/Linux distributions, errs on the side of inclusiveness, and this is really what causes the build to take such a long time when the kernel is built from source." 3210msgid "The kernel, while not requiring an overabundance of RAM to build, does take a rather long time on an average machine. The official kernel configuration, as is the case with many GNU/Linux distributions, errs on the side of inclusiveness, and this is really what causes the build to take such a long time when the kernel is built from source."
3210msgstr "Der Kernel braucht zwar keine übermäßigen Mengen an Arbeitsspeicher beim Erstellen, jedoch jede Menge Zeit auf einer durchschnittlichen Maschine. Die offizielle Konfiguration des Kernels umfasst, wie bei anderen GNU/Linux-Distributionen auch, besser zu viel als zu wenig. Das ist der eigentliche Grund, warum seine Erstellung so lange dauert, wenn man den Kernel aus dem Quellcode heraus erstellt." 3211msgstr "Der Kernel braucht zwar keine übermäßigen Mengen an Arbeitsspeicher beim Erstellen, jedoch jede Menge Zeit auf einer durchschnittlichen Maschine. Die offizielle Konfiguration des Kernels umfasst, wie bei anderen GNU/Linux-Distributionen auch, besser zu viel als zu wenig. Das ist der eigentliche Grund, warum seine Erstellung so lange dauert, wenn man den Kernel aus dem Quellcode heraus erstellt."
3211 3212
3212#. type: Plain text 3213#. type: Plain text
3213#: doc/guix-cookbook.texi:1674 3214#: guix-git/doc/guix-cookbook.texi:1674
3214msgid "The Linux kernel, however, can also just be described as a regular old package, and as such can be customized just like any other package. The procedure is a little bit different, although this is primarily due to the nature of how the package definition is written." 3215msgid "The Linux kernel, however, can also just be described as a regular old package, and as such can be customized just like any other package. The procedure is a little bit different, although this is primarily due to the nature of how the package definition is written."
3215msgstr "Man kann den Linux-Kernel jedoch auch als ganz normales Paket beschreiben, das genau wie jedes andere Paket angepasst werden kann. Der Vorgang ist ein klein wenig anders, aber das liegt hauptsächlich an der Art, wie die Paketdefinition geschrieben ist." 3216msgstr "Man kann den Linux-Kernel jedoch auch als ganz normales Paket beschreiben, das genau wie jedes andere Paket angepasst werden kann. Der Vorgang ist ein klein wenig anders, aber das liegt hauptsächlich an der Art, wie die Paketdefinition geschrieben ist."
3216 3217
3217#. type: Plain text 3218#. type: Plain text
3218#: doc/guix-cookbook.texi:1677 3219#: guix-git/doc/guix-cookbook.texi:1677
3219msgid "The @code{linux-libre} kernel package definition is actually a procedure which creates a package." 3220msgid "The @code{linux-libre} kernel package definition is actually a procedure which creates a package."
3220msgstr "Die @code{linux-libre}-Kernelpaketdefinition ist tatsächlich eine Prozedur, die ein Paket liefert." 3221msgstr "Die @code{linux-libre}-Kernelpaketdefinition ist tatsächlich eine Prozedur, die ein Paket liefert."
3221 3222
3222#. type: lisp 3223#. type: lisp
3223#: doc/guix-cookbook.texi:1688 3224#: guix-git/doc/guix-cookbook.texi:1688
3224#, no-wrap 3225#, no-wrap
3225msgid "" 3226msgid ""
3226"(define* (make-linux-libre* version gnu-revision source supported-systems\n" 3227"(define* (make-linux-libre* version gnu-revision source supported-systems\n"
@@ -3244,12 +3245,12 @@ msgstr ""
3244" …)\n" 3245" …)\n"
3245 3246
3246#. type: Plain text 3247#. type: Plain text
3247#: doc/guix-cookbook.texi:1692 3248#: guix-git/doc/guix-cookbook.texi:1692
3248msgid "The current @code{linux-libre} package is for the 5.15.x series, and is declared like this:" 3249msgid "The current @code{linux-libre} package is for the 5.15.x series, and is declared like this:"
3249msgstr "Das momentane @code{linux-libre}-Paket zielt ab auf die 5.15.x-Serie und ist wie folgt deklariert:" 3250msgstr "Das momentane @code{linux-libre}-Paket zielt ab auf die 5.15.x-Serie und ist wie folgt deklariert:"
3250 3251
3251#. type: lisp 3252#. type: lisp
3252#: doc/guix-cookbook.texi:1701 3253#: guix-git/doc/guix-cookbook.texi:1701
3253#, no-wrap 3254#, no-wrap
3254msgid "" 3255msgid ""
3255"(define-public linux-libre-5.15\n" 3256"(define-public linux-libre-5.15\n"
@@ -3269,17 +3270,17 @@ msgstr ""
3269" #:configuration-file kernel-config))\n" 3270" #:configuration-file kernel-config))\n"
3270 3271
3271#. type: Plain text 3272#. type: Plain text
3272#: doc/guix-cookbook.texi:1708 3273#: guix-git/doc/guix-cookbook.texi:1708
3273msgid "Any keys which are not assigned values inherit their default value from the @code{make-linux-libre} definition. When comparing the two snippets above, notice the code comment that refers to @code{#:configuration-file}. Because of this, it is not actually easy to include a custom kernel configuration from the definition, but don't worry, there are other ways to work with what we do have." 3274msgid "Any keys which are not assigned values inherit their default value from the @code{make-linux-libre} definition. When comparing the two snippets above, notice the code comment that refers to @code{#:configuration-file}. Because of this, it is not actually easy to include a custom kernel configuration from the definition, but don't worry, there are other ways to work with what we do have."
3274msgstr "Alle Schlüssel, denen kein Wert zugewiesen wird, erben ihren Vorgabewert von der Definition von @code{make-linux-libre}. Wenn Sie die beiden Schnipsel oben vergleichen, ist anzumerken, dass sich der Code-Kommentar in ersterem auf @code{#:configuration-file} bezieht. Deswegen ist es nicht so leicht, aus der Definition heraus eine eigene Kernel-Konfiguration anhand der Definition zu schreiben, aber keine Sorge, es gibt andere Möglichkeiten, um mit dem zu arbeiten, was uns gegeben wurde." 3275msgstr "Alle Schlüssel, denen kein Wert zugewiesen wird, erben ihren Vorgabewert von der Definition von @code{make-linux-libre}. Wenn Sie die beiden Schnipsel oben vergleichen, ist anzumerken, dass sich der Code-Kommentar in ersterem auf @code{#:configuration-file} bezieht. Deswegen ist es nicht so leicht, aus der Definition heraus eine eigene Kernel-Konfiguration anhand der Definition zu schreiben, aber keine Sorge, es gibt andere Möglichkeiten, um mit dem zu arbeiten, was uns gegeben wurde."
3275 3276
3276#. type: Plain text 3277#. type: Plain text
3277#: doc/guix-cookbook.texi:1714 3278#: guix-git/doc/guix-cookbook.texi:1714
3278msgid "There are two ways to create a kernel with a custom kernel configuration. The first is to provide a standard @file{.config} file during the build process by including an actual @file{.config} file as a native input to our custom kernel. The following is a snippet from the custom @code{'configure} phase of the @code{make-linux-libre} package definition:" 3279msgid "There are two ways to create a kernel with a custom kernel configuration. The first is to provide a standard @file{.config} file during the build process by including an actual @file{.config} file as a native input to our custom kernel. The following is a snippet from the custom @code{'configure} phase of the @code{make-linux-libre} package definition:"
3279msgstr "Es gibt zwei Möglichkeiten, einen Kernel mit eigener Kernel-Konfiguration zu erzeugen. Die erste ist, eine normale @file{.config}-Datei als native Eingabe zu unserem angepassten Kernel hinzuzufügen. Im Folgenden sehen Sie ein Schnipsel aus der angepassten @code{'configure}-Phase der @code{make-linux-libre}-Paketdefinition:" 3280msgstr "Es gibt zwei Möglichkeiten, einen Kernel mit eigener Kernel-Konfiguration zu erzeugen. Die erste ist, eine normale @file{.config}-Datei als native Eingabe zu unserem angepassten Kernel hinzuzufügen. Im Folgenden sehen Sie ein Schnipsel aus der angepassten @code{'configure}-Phase der @code{make-linux-libre}-Paketdefinition:"
3280 3281
3281#. type: lisp 3282#. type: lisp
3282#: doc/guix-cookbook.texi:1718 3283#: guix-git/doc/guix-cookbook.texi:1718
3283#, no-wrap 3284#, no-wrap
3284msgid "" 3285msgid ""
3285"(let ((build (assoc-ref %standard-phases 'build))\n" 3286"(let ((build (assoc-ref %standard-phases 'build))\n"
@@ -3291,7 +3292,7 @@ msgstr ""
3291"\n" 3292"\n"
3292 3293
3293#. type: lisp 3294#. type: lisp
3294#: doc/guix-cookbook.texi:1726 3295#: guix-git/doc/guix-cookbook.texi:1726
3295#, no-wrap 3296#, no-wrap
3296msgid "" 3297msgid ""
3297" ;; Use a custom kernel configuration file or a default\n" 3298" ;; Use a custom kernel configuration file or a default\n"
@@ -3311,12 +3312,12 @@ msgstr ""
3311" (invoke \"make\" ,defconfig)))\n" 3312" (invoke \"make\" ,defconfig)))\n"
3312 3313
3313#. type: Plain text 3314#. type: Plain text
3314#: doc/guix-cookbook.texi:1731 3315#: guix-git/doc/guix-cookbook.texi:1731
3315msgid "Below is a sample kernel package. The @code{linux-libre} package is nothing special and can be inherited from and have its fields overridden like any other package:" 3316msgid "Below is a sample kernel package. The @code{linux-libre} package is nothing special and can be inherited from and have its fields overridden like any other package:"
3316msgstr "Nun folgt ein Beispiel-Kernel-Paket. Das @code{linux-libre}-Paket ist nicht anders als andere Pakete und man kann von ihm erben und seine Felder ersetzen wie bei jedem anderen Paket." 3317msgstr "Nun folgt ein Beispiel-Kernel-Paket. Das @code{linux-libre}-Paket ist nicht anders als andere Pakete und man kann von ihm erben und seine Felder ersetzen wie bei jedem anderen Paket."
3317 3318
3318#. type: lisp 3319#. type: lisp
3319#: doc/guix-cookbook.texi:1740 3320#: guix-git/doc/guix-cookbook.texi:1740
3320#, no-wrap 3321#, no-wrap
3321msgid "" 3322msgid ""
3322"(define-public linux-libre/E2140\n" 3323"(define-public linux-libre/E2140\n"
@@ -3336,17 +3337,17 @@ msgstr ""
3336" (package-native-inputs linux-libre))))))\n" 3337" (package-native-inputs linux-libre))))))\n"
3337 3338
3338#. type: Plain text 3339#. type: Plain text
3339#: doc/guix-cookbook.texi:1747 3340#: guix-git/doc/guix-cookbook.texi:1747
3340msgid "In the same directory as the file defining @code{linux-libre-E2140} is a file named @file{E2140.config}, which is an actual kernel configuration file. The @code{defconfig} keyword of @code{make-linux-libre} is left blank here, so the only kernel configuration in the package is the one which was included in the @code{native-inputs} field." 3341msgid "In the same directory as the file defining @code{linux-libre-E2140} is a file named @file{E2140.config}, which is an actual kernel configuration file. The @code{defconfig} keyword of @code{make-linux-libre} is left blank here, so the only kernel configuration in the package is the one which was included in the @code{native-inputs} field."
3341msgstr "Im selben Verzeichnis wie die Datei, die @code{linux-libre-E2140} definiert, befindet sich noch eine Datei namens @file{E2140.config}, bei der es sich um eine richtige Kernel-Konfigurationsdatei handelt. Das Schlüsselwort @code{defconfig} von @code{make-linux-libre} wird hier leer gelassen, so dass die einzige Kernel-Konfiguration im Paket die im @code{native-inputs}-Feld ist." 3342msgstr "Im selben Verzeichnis wie die Datei, die @code{linux-libre-E2140} definiert, befindet sich noch eine Datei namens @file{E2140.config}, bei der es sich um eine richtige Kernel-Konfigurationsdatei handelt. Das Schlüsselwort @code{defconfig} von @code{make-linux-libre} wird hier leer gelassen, so dass die einzige Kernel-Konfiguration im Paket die im @code{native-inputs}-Feld ist."
3342 3343
3343#. type: Plain text 3344#. type: Plain text
3344#: doc/guix-cookbook.texi:1752 3345#: guix-git/doc/guix-cookbook.texi:1752
3345msgid "The second way to create a custom kernel is to pass a new value to the @code{extra-options} keyword of the @code{make-linux-libre} procedure. The @code{extra-options} keyword works with another function defined right below it:" 3346msgid "The second way to create a custom kernel is to pass a new value to the @code{extra-options} keyword of the @code{make-linux-libre} procedure. The @code{extra-options} keyword works with another function defined right below it:"
3346msgstr "Die zweite Möglichkeit, einen eigenen Kernel zu erzeugen, ist, einen neuen Wert an das @code{extra-options}-Schlüsselwort der @code{make-linux-libre}-Prozedur zu übergeben. Das @code{extra-options}-Schlüsselwort wird zusammen mit einer anderen, direkt darunter definierten Funktion benutzt:" 3347msgstr "Die zweite Möglichkeit, einen eigenen Kernel zu erzeugen, ist, einen neuen Wert an das @code{extra-options}-Schlüsselwort der @code{make-linux-libre}-Prozedur zu übergeben. Das @code{extra-options}-Schlüsselwort wird zusammen mit einer anderen, direkt darunter definierten Funktion benutzt:"
3347 3348
3348#. type: lisp 3349#. type: lisp
3349#: doc/guix-cookbook.texi:1768 3350#: guix-git/doc/guix-cookbook.texi:1768
3350#, no-wrap 3351#, no-wrap
3351msgid "" 3352msgid ""
3352"(define (default-extra-linux-options version)\n" 3353"(define (default-extra-linux-options version)\n"
@@ -3382,7 +3383,7 @@ msgstr ""
3382"\n" 3383"\n"
3383 3384
3384#. type: lisp 3385#. type: lisp
3385#: doc/guix-cookbook.texi:1779 3386#: guix-git/doc/guix-cookbook.texi:1779
3386#, no-wrap 3387#, no-wrap
3387msgid "" 3388msgid ""
3388"(define (config->string options)\n" 3389"(define (config->string options)\n"
@@ -3408,12 +3409,12 @@ msgstr ""
3408" \"\\n\"))\n" 3409" \"\\n\"))\n"
3409 3410
3410#. type: Plain text 3411#. type: Plain text
3411#: doc/guix-cookbook.texi:1782 3412#: guix-git/doc/guix-cookbook.texi:1782
3412msgid "And in the custom configure script from the `make-linux-libre` package:" 3413msgid "And in the custom configure script from the `make-linux-libre` package:"
3413msgstr "Und im eigenen configure-Skript des „make-linux-libre“-Pakets:" 3414msgstr "Und im eigenen configure-Skript des „make-linux-libre“-Pakets:"
3414 3415
3415#. type: lisp 3416#. type: lisp
3416#: doc/guix-cookbook.texi:1790 3417#: guix-git/doc/guix-cookbook.texi:1790
3417#, no-wrap 3418#, no-wrap
3418msgid "" 3419msgid ""
3419";; Appending works even when the option wasn't in the\n" 3420";; Appending works even when the option wasn't in the\n"
@@ -3433,18 +3434,18 @@ msgstr ""
3433"\n" 3434"\n"
3434 3435
3435#. type: lisp 3436#. type: lisp
3436#: doc/guix-cookbook.texi:1792 3437#: guix-git/doc/guix-cookbook.texi:1792
3437#, no-wrap 3438#, no-wrap
3438msgid "(invoke \"make\" \"oldconfig\")\n" 3439msgid "(invoke \"make\" \"oldconfig\")\n"
3439msgstr "(invoke \"make\" \"oldconfig\")\n" 3440msgstr "(invoke \"make\" \"oldconfig\")\n"
3440 3441
3441#. type: Plain text 3442#. type: Plain text
3442#: doc/guix-cookbook.texi:1797 3443#: guix-git/doc/guix-cookbook.texi:1797
3443msgid "So by not providing a configuration-file the @file{.config} starts blank, and then we write into it the collection of flags that we want. Here's another custom kernel:" 3444msgid "So by not providing a configuration-file the @file{.config} starts blank, and then we write into it the collection of flags that we want. Here's another custom kernel:"
3444msgstr "Indem wir also kein „configuration-file“ mitgeben, ist @file{.config} anfangs leer und danach schreiben wir dort die Sammlung der gewünschten Optionen („Flags“) hinein. Hier ist noch ein eigener Kernel:" 3445msgstr "Indem wir also kein „configuration-file“ mitgeben, ist @file{.config} anfangs leer und danach schreiben wir dort die Sammlung der gewünschten Optionen („Flags“) hinein. Hier ist noch ein eigener Kernel:"
3445 3446
3446#. type: lisp 3447#. type: lisp
3447#: doc/guix-cookbook.texi:1805 3448#: guix-git/doc/guix-cookbook.texi:1805
3448#, no-wrap 3449#, no-wrap
3449msgid "" 3450msgid ""
3450"(define %macbook41-full-config\n" 3451"(define %macbook41-full-config\n"
@@ -3464,7 +3465,7 @@ msgstr ""
3464"\n" 3465"\n"
3465 3466
3466#. type: lisp 3467#. type: lisp
3467#: doc/guix-cookbook.texi:1816 3468#: guix-git/doc/guix-cookbook.texi:1816
3468#, no-wrap 3469#, no-wrap
3469msgid "" 3470msgid ""
3470"(define-public linux-libre-macbook41\n" 3471"(define-public linux-libre-macbook41\n"
@@ -3490,55 +3491,55 @@ msgstr ""
3490" #:extra-options %macbook41-config-options))\n" 3491" #:extra-options %macbook41-config-options))\n"
3491 3492
3492#. type: Plain text 3493#. type: Plain text
3493#: doc/guix-cookbook.texi:1824 3494#: guix-git/doc/guix-cookbook.texi:1824
3494msgid "In the above example @code{%file-systems} is a collection of flags enabling different file system support, @code{%efi-support} enables EFI support and @code{%emulation} enables a x86_64-linux machine to act in 32-bit mode also. The @code{default-extra-linux-options} procedure is the one defined above, which had to be used to avoid loosing the default configuration options of the @code{extra-options} keyword." 3495msgid "In the above example @code{%file-systems} is a collection of flags enabling different file system support, @code{%efi-support} enables EFI support and @code{%emulation} enables a x86_64-linux machine to act in 32-bit mode also. The @code{default-extra-linux-options} procedure is the one defined above, which had to be used to avoid loosing the default configuration options of the @code{extra-options} keyword."
3495msgstr "Im obigen Beispiel ist @code{%file-systems} eine Sammlung solcher „Flags“, mit denen Unterstützung für verschiedene Dateisysteme aktiviert wird, @code{%efi-support} aktiviert Unterstützung für EFI und @code{%emulation} ermöglicht es einer x86_64-linux-Maschine, auch im 32-Bit-Modus zu arbeiten. Die Prozedur @code{default-extra-linux-options} ist die oben definierte, die hinzugefügt werden musste, um die vorgegebenen Konfigurationsoptionen für das @code{extra-options}-Schlüsselwort zu behalten." 3496msgstr "Im obigen Beispiel ist @code{%file-systems} eine Sammlung solcher „Flags“, mit denen Unterstützung für verschiedene Dateisysteme aktiviert wird, @code{%efi-support} aktiviert Unterstützung für EFI und @code{%emulation} ermöglicht es einer x86_64-linux-Maschine, auch im 32-Bit-Modus zu arbeiten. Die Prozedur @code{default-extra-linux-options} ist die oben definierte, die hinzugefügt werden musste, um die vorgegebenen Konfigurationsoptionen für das @code{extra-options}-Schlüsselwort zu behalten."
3496 3497
3497#. type: Plain text 3498#. type: Plain text
3498#: doc/guix-cookbook.texi:1833 3499#: guix-git/doc/guix-cookbook.texi:1833
3499msgid "This all sounds like it should be doable, but how does one even know which modules are required for a particular system? Two places that can be helpful in trying to answer this question is the @uref{https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Kernel, Gentoo Handbook} and the @uref{https://www.kernel.org/doc/html/latest/admin-guide/README.html?highlight=localmodconfig, documentation from the kernel itself}. From the kernel documentation, it seems that @code{make localmodconfig} is the command we want." 3500msgid "This all sounds like it should be doable, but how does one even know which modules are required for a particular system? Two places that can be helpful in trying to answer this question is the @uref{https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Kernel, Gentoo Handbook} and the @uref{https://www.kernel.org/doc/html/latest/admin-guide/README.html?highlight=localmodconfig, documentation from the kernel itself}. From the kernel documentation, it seems that @code{make localmodconfig} is the command we want."
3500msgstr "All das klingt machbar, aber woher weiß man überhaupt, welche Module für ein bestimmtes System nötig sind? Es gibt zwei hilfreiche Anlaufstellen, zum einen das @uref{https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Kernel, Gentoo-Handbuch}, zum anderen die @uref{https://www.kernel.org/doc/html/latest/admin-guide/README.html?highlight=localmodconfig, Dokumentation des Kernels selbst}. Aus der Kernel-Dokumentation erfahren wir, dass @code{make localmodconfig} der Befehl sein könnte, den wir wollen." 3501msgstr "All das klingt machbar, aber woher weiß man überhaupt, welche Module für ein bestimmtes System nötig sind? Es gibt zwei hilfreiche Anlaufstellen, zum einen das @uref{https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Kernel, Gentoo-Handbuch}, zum anderen die @uref{https://www.kernel.org/doc/html/latest/admin-guide/README.html?highlight=localmodconfig, Dokumentation des Kernels selbst}. Aus der Kernel-Dokumentation erfahren wir, dass @code{make localmodconfig} der Befehl sein könnte, den wir wollen."
3501 3502
3502#. type: Plain text 3503#. type: Plain text
3503#: doc/guix-cookbook.texi:1836 3504#: guix-git/doc/guix-cookbook.texi:1836
3504msgid "In order to actually run @code{make localmodconfig} we first need to get and unpack the kernel source code:" 3505msgid "In order to actually run @code{make localmodconfig} we first need to get and unpack the kernel source code:"
3505msgstr "Um @code{make localmodconfig} auch tatsächlich ausführen zu können, müssen wir zunächst den Quellcode des Kernels holen und entpacken:" 3506msgstr "Um @code{make localmodconfig} auch tatsächlich ausführen zu können, müssen wir zunächst den Quellcode des Kernels holen und entpacken:"
3506 3507
3507#. type: example 3508#. type: example
3508#: doc/guix-cookbook.texi:1839 3509#: guix-git/doc/guix-cookbook.texi:1839
3509#, no-wrap 3510#, no-wrap
3510msgid "tar xf $(guix build linux-libre --source)\n" 3511msgid "tar xf $(guix build linux-libre --source)\n"
3511msgstr "tar xf $(guix build linux-libre --source)\n" 3512msgstr "tar xf $(guix build linux-libre --source)\n"
3512 3513
3513#. type: Plain text 3514#. type: Plain text
3514#: doc/guix-cookbook.texi:1846 3515#: guix-git/doc/guix-cookbook.texi:1846
3515msgid "Once inside the directory containing the source code run @code{touch .config} to create an initial, empty @file{.config} to start with. @code{make localmodconfig} works by seeing what you already have in @file{.config} and letting you know what you're missing. If the file is blank then you're missing everything. The next step is to run:" 3516msgid "Once inside the directory containing the source code run @code{touch .config} to create an initial, empty @file{.config} to start with. @code{make localmodconfig} works by seeing what you already have in @file{.config} and letting you know what you're missing. If the file is blank then you're missing everything. The next step is to run:"
3516msgstr "Sobald wir im Verzeichnis mit dem Quellcode sind, führen Sie @code{touch .config} aus, um mit einer ersten, leeren @file{.config} anzufangen. @code{make localmodconfig} funktioniert so, dass angeschaut wird, was bereits in Ihrer @file{.config} steht, und Ihnen mitgeteilt wird, was Ihnen noch fehlt. Wenn die Datei leer bleibt, fehlt eben alles. Der nächste Schritt ist, das hier auszuführen:" 3517msgstr "Sobald wir im Verzeichnis mit dem Quellcode sind, führen Sie @code{touch .config} aus, um mit einer ersten, leeren @file{.config} anzufangen. @code{make localmodconfig} funktioniert so, dass angeschaut wird, was bereits in Ihrer @file{.config} steht, und Ihnen mitgeteilt wird, was Ihnen noch fehlt. Wenn die Datei leer bleibt, fehlt eben alles. Der nächste Schritt ist, das hier auszuführen:"
3517 3518
3518#. type: example 3519#. type: example
3519#: doc/guix-cookbook.texi:1849 3520#: guix-git/doc/guix-cookbook.texi:1849
3520#, no-wrap 3521#, no-wrap
3521msgid "guix shell -D linux-libre -- make localmodconfig\n" 3522msgid "guix shell -D linux-libre -- make localmodconfig\n"
3522msgstr "guix shell -D linux-libre -- make localmodconfig\n" 3523msgstr "guix shell -D linux-libre -- make localmodconfig\n"
3523 3524
3524#. type: Plain text 3525#. type: Plain text
3525#: doc/guix-cookbook.texi:1854 3526#: guix-git/doc/guix-cookbook.texi:1854
3526msgid "and note the output. Do note that the @file{.config} file is still empty. The output generally contains two types of warnings. The first start with \"WARNING\" and can actually be ignored in our case. The second read:" 3527msgid "and note the output. Do note that the @file{.config} file is still empty. The output generally contains two types of warnings. The first start with \"WARNING\" and can actually be ignored in our case. The second read:"
3527msgstr "und uns die Ausgabe davon anzuschauen. Beachten Sie, dass die @file{.config}-Datei noch immer leer ist. Die Ausgabe enthält im Allgemeinen zwei Arten von Warnungen. Am Anfang der ersten steht „WARNING“ und in unserem Fall können wir sie tatsächlich ignorieren. Bei der zweiten heißt es:" 3528msgstr "und uns die Ausgabe davon anzuschauen. Beachten Sie, dass die @file{.config}-Datei noch immer leer ist. Die Ausgabe enthält im Allgemeinen zwei Arten von Warnungen. Am Anfang der ersten steht „WARNING“ und in unserem Fall können wir sie tatsächlich ignorieren. Bei der zweiten heißt es:"
3528 3529
3529#. type: example 3530#. type: example
3530#: doc/guix-cookbook.texi:1857 3531#: guix-git/doc/guix-cookbook.texi:1857
3531#, no-wrap 3532#, no-wrap
3532msgid "module pcspkr did not have configs CONFIG_INPUT_PCSPKR\n" 3533msgid "module pcspkr did not have configs CONFIG_INPUT_PCSPKR\n"
3533msgstr "module pcspkr did not have configs CONFIG_INPUT_PCSPKR\n" 3534msgstr "module pcspkr did not have configs CONFIG_INPUT_PCSPKR\n"
3534 3535
3535#. type: Plain text 3536#. type: Plain text
3536#: doc/guix-cookbook.texi:1862 3537#: guix-git/doc/guix-cookbook.texi:1862
3537msgid "For each of these lines, copy the @code{CONFIG_XXXX_XXXX} portion into the @file{.config} in the directory, and append @code{=m}, so in the end it looks like this:" 3538msgid "For each of these lines, copy the @code{CONFIG_XXXX_XXXX} portion into the @file{.config} in the directory, and append @code{=m}, so in the end it looks like this:"
3538msgstr "Für jede solche Zeile kopieren Sie den @code{CONFIG_XXXX_XXXX}-Teil in die @file{.config} im selben Verzeichnis und hängen @code{=m} an, damit es am Ende so aussieht:" 3539msgstr "Für jede solche Zeile kopieren Sie den @code{CONFIG_XXXX_XXXX}-Teil in die @file{.config} im selben Verzeichnis und hängen @code{=m} an, damit es am Ende so aussieht:"
3539 3540
3540#. type: example 3541#. type: example
3541#: doc/guix-cookbook.texi:1866 3542#: guix-git/doc/guix-cookbook.texi:1866
3542#, no-wrap 3543#, no-wrap
3543msgid "" 3544msgid ""
3544"CONFIG_INPUT_PCSPKR=m\n" 3545"CONFIG_INPUT_PCSPKR=m\n"
@@ -3548,42 +3549,42 @@ msgstr ""
3548"CONFIG_VIRTIO=m\n" 3549"CONFIG_VIRTIO=m\n"
3549 3550
3550#. type: Plain text 3551#. type: Plain text
3551#: doc/guix-cookbook.texi:1875 3552#: guix-git/doc/guix-cookbook.texi:1875
3552msgid "After copying all the configuration options, run @code{make localmodconfig} again to make sure that you don't have any output starting with ``module''. After all of these machine specific modules there are a couple more left that are also needed. @code{CONFIG_MODULES} is necessary so that you can build and load modules separately and not have everything built into the kernel. @code{CONFIG_BLK_DEV_SD} is required for reading from hard drives. It is possible that there are other modules which you will need." 3553msgid "After copying all the configuration options, run @code{make localmodconfig} again to make sure that you don't have any output starting with ``module''. After all of these machine specific modules there are a couple more left that are also needed. @code{CONFIG_MODULES} is necessary so that you can build and load modules separately and not have everything built into the kernel. @code{CONFIG_BLK_DEV_SD} is required for reading from hard drives. It is possible that there are other modules which you will need."
3553msgstr "Nachdem Sie alle Konfigurationsoptionen kopiert haben, führen Sie noch einmal @code{make localmodconfig} aus, um sicherzugehen, dass es keine Ausgaben mehr gibt, deren erstes Wort „module“ ist. Zusätzlich zu diesen maschinenspezifischen Modulen gibt es noch ein paar mehr, die Sie auch brauchen. @code{CONFIG_MODULES} brauchen Sie, damit Sie Module getrennt erstellen und laden können und nicht alles im Kernel eingebaut sein muss. Sie brauchen auch @code{CONFIG_BLK_DEV_SD}, um von Festplatten lesen zu können. Möglicherweise gibt es auch sonst noch Module, die Sie brauchen werden." 3554msgstr "Nachdem Sie alle Konfigurationsoptionen kopiert haben, führen Sie noch einmal @code{make localmodconfig} aus, um sicherzugehen, dass es keine Ausgaben mehr gibt, deren erstes Wort „module“ ist. Zusätzlich zu diesen maschinenspezifischen Modulen gibt es noch ein paar mehr, die Sie auch brauchen. @code{CONFIG_MODULES} brauchen Sie, damit Sie Module getrennt erstellen und laden können und nicht alles im Kernel eingebaut sein muss. Sie brauchen auch @code{CONFIG_BLK_DEV_SD}, um von Festplatten lesen zu können. Möglicherweise gibt es auch sonst noch Module, die Sie brauchen werden."
3554 3555
3555#. type: Plain text 3556#. type: Plain text
3556#: doc/guix-cookbook.texi:1879 3557#: guix-git/doc/guix-cookbook.texi:1879
3557msgid "This post does not aim to be a guide to configuring your own kernel however, so if you do decide to build a custom kernel you'll have to seek out other guides to create a kernel which is just right for your needs." 3558msgid "This post does not aim to be a guide to configuring your own kernel however, so if you do decide to build a custom kernel you'll have to seek out other guides to create a kernel which is just right for your needs."
3558msgstr "Die Absicht hinter dem hier Niedergeschriebenen ist @emph{nicht}, eine Anleitung zum Konfigurieren eines eigenen Kernels zu sein. Wenn Sie also vorhaben, den Kernel an Ihre ganz eigenen Bedürfnisse anzupassen, werden Sie in anderen Anleitungen fündig." 3559msgstr "Die Absicht hinter dem hier Niedergeschriebenen ist @emph{nicht}, eine Anleitung zum Konfigurieren eines eigenen Kernels zu sein. Wenn Sie also vorhaben, den Kernel an Ihre ganz eigenen Bedürfnisse anzupassen, werden Sie in anderen Anleitungen fündig."
3559 3560
3560#. type: Plain text 3561#. type: Plain text
3561#: doc/guix-cookbook.texi:1887 3562#: guix-git/doc/guix-cookbook.texi:1887
3562msgid "The second way to setup the kernel configuration makes more use of Guix's features and allows you to share configuration segments between different kernels. For example, all machines using EFI to boot have a number of EFI configuration flags that they need. It is likely that all the kernels will share a list of file systems to support. By using variables it is easier to see at a glance what features are enabled and to make sure you don't have features in one kernel but missing in another." 3563msgid "The second way to setup the kernel configuration makes more use of Guix's features and allows you to share configuration segments between different kernels. For example, all machines using EFI to boot have a number of EFI configuration flags that they need. It is likely that all the kernels will share a list of file systems to support. By using variables it is easier to see at a glance what features are enabled and to make sure you don't have features in one kernel but missing in another."
3563msgstr "Die zweite Möglichkeit, die Kernel-Konfiguration einzurichten, benutzt mehr von Guix’ Funktionalitäten und sie ermöglicht es Ihnen, Gemeinsamkeiten von Konfigurationen zwischen verschiedenen Kernels zu teilen. Zum Beispiel wird eine Reihe von EFI-Konfigurationsoptionen von allen Maschinen, die EFI benutzen, benötigt. Wahrscheinlich haben all diese Kernels eine Schnittmenge zu unterstützender Dateisysteme. Indem Sie Variable benutzen, können Sie leicht auf einen Schlag sehen, welche Funktionalitäten aktiviert sind, und gleichzeitig sicherstellen, dass Ihnen nicht Funktionalitäten des einen Kernels im anderen fehlen." 3564msgstr "Die zweite Möglichkeit, die Kernel-Konfiguration einzurichten, benutzt mehr von Guix’ Funktionalitäten und sie ermöglicht es Ihnen, Gemeinsamkeiten von Konfigurationen zwischen verschiedenen Kernels zu teilen. Zum Beispiel wird eine Reihe von EFI-Konfigurationsoptionen von allen Maschinen, die EFI benutzen, benötigt. Wahrscheinlich haben all diese Kernels eine Schnittmenge zu unterstützender Dateisysteme. Indem Sie Variable benutzen, können Sie leicht auf einen Schlag sehen, welche Funktionalitäten aktiviert sind, und gleichzeitig sicherstellen, dass Ihnen nicht Funktionalitäten des einen Kernels im anderen fehlen."
3564 3565
3565#. type: Plain text 3566#. type: Plain text
3566#: doc/guix-cookbook.texi:1892 3567#: guix-git/doc/guix-cookbook.texi:1892
3567msgid "Left undiscussed however, is Guix's initrd and its customization. It is likely that you'll need to modify the initrd on a machine using a custom kernel, since certain modules which are expected to be built may not be available for inclusion into the initrd." 3568msgid "Left undiscussed however, is Guix's initrd and its customization. It is likely that you'll need to modify the initrd on a machine using a custom kernel, since certain modules which are expected to be built may not be available for inclusion into the initrd."
3568msgstr "Was wir hierbei nicht erläutert haben, ist, wie Guix’ initrd und dessen Anpassung funktioniert. Wahrscheinlich werden Sie auf einer Maschine mit eigenem Kernel die initrd verändern müssen, weil sonst versucht wird, bestimmte Module in die initrd einzubinden, die Sie gar nicht erstellen haben lassen." 3569msgstr "Was wir hierbei nicht erläutert haben, ist, wie Guix’ initrd und dessen Anpassung funktioniert. Wahrscheinlich werden Sie auf einer Maschine mit eigenem Kernel die initrd verändern müssen, weil sonst versucht wird, bestimmte Module in die initrd einzubinden, die Sie gar nicht erstellen haben lassen."
3569 3570
3570#. type: Plain text 3571#. type: Plain text
3571#: doc/guix-cookbook.texi:1899 3572#: guix-git/doc/guix-cookbook.texi:1899
3572msgid "Historically, Guix System is centered around an @code{operating-system} structure. This structure contains various fields ranging from the bootloader and kernel declaration to the services to install." 3573msgid "Historically, Guix System is centered around an @code{operating-system} structure. This structure contains various fields ranging from the bootloader and kernel declaration to the services to install."
3573msgstr "In der Vergangenheit drehte sich in Guix System alles um eine @code{operating-system}-Struktur. So eine Struktur enthält vielerlei Felder vom Bootloader und der Deklaration des Kernels bis hin zu den Diensten, die installiert werden sollen." 3574msgstr "In der Vergangenheit drehte sich in Guix System alles um eine @code{operating-system}-Struktur. So eine Struktur enthält vielerlei Felder vom Bootloader und der Deklaration des Kernels bis hin zu den Diensten, die installiert werden sollen."
3574 3575
3575#. type: Plain text 3576#. type: Plain text
3576#: doc/guix-cookbook.texi:1905 3577#: guix-git/doc/guix-cookbook.texi:1905
3577msgid "Depending on the target machine, that can go from a standard @code{x86_64} machine to a small ARM single board computer such as the Pine64, the image constraints can vary a lot. The hardware manufacturers will impose different image formats with various partition sizes and offsets." 3578msgid "Depending on the target machine, that can go from a standard @code{x86_64} machine to a small ARM single board computer such as the Pine64, the image constraints can vary a lot. The hardware manufacturers will impose different image formats with various partition sizes and offsets."
3578msgstr "Aber je nach Zielmaschine@tie{}– diese kann alles von einer normalen @code{x86_64}-Maschine sein bis zu einem kleinen ARM-Einplatinenrechner wie dem Pine64@tie{}–, können die für ein Abbild geltenden Einschränkungen sehr unterschiedlich sein. Die Hardwarehersteller ordnen verschiedene Abbildformate an mit unterschiedlich versetzten unterschiedlich großen Partitionen." 3579msgstr "Aber je nach Zielmaschine@tie{}– diese kann alles von einer normalen @code{x86_64}-Maschine sein bis zu einem kleinen ARM-Einplatinenrechner wie dem Pine64@tie{}–, können die für ein Abbild geltenden Einschränkungen sehr unterschiedlich sein. Die Hardwarehersteller ordnen verschiedene Abbildformate an mit unterschiedlich versetzten unterschiedlich großen Partitionen."
3579 3580
3580#. type: Plain text 3581#. type: Plain text
3581#: doc/guix-cookbook.texi:1910 3582#: guix-git/doc/guix-cookbook.texi:1910
3582msgid "To create images suitable for all those machines, a new abstraction is necessary: that's the goal of the @code{image} record. This record contains all the required information to be transformed into a standalone image, that can be directly booted on any target machine." 3583msgid "To create images suitable for all those machines, a new abstraction is necessary: that's the goal of the @code{image} record. This record contains all the required information to be transformed into a standalone image, that can be directly booted on any target machine."
3583msgstr "Um für jede dieser Arten von Maschinen geeignete Abbilder zu erzeugen, brauchen wir eine neue Abstraktion. Dieses Ziel verfolgen wir mit dem @code{image}-Verbund. Ein Verbundsobjekt enthält alle nötigen Informationen, um daraus ein eigenständiges Abbild auf die Zielmaschine zu bringen. Es ist direkt startfähig von jeder solchen Zielmaschine." 3584msgstr "Um für jede dieser Arten von Maschinen geeignete Abbilder zu erzeugen, brauchen wir eine neue Abstraktion. Dieses Ziel verfolgen wir mit dem @code{image}-Verbund. Ein Verbundsobjekt enthält alle nötigen Informationen, um daraus ein eigenständiges Abbild auf die Zielmaschine zu bringen. Es ist direkt startfähig von jeder solchen Zielmaschine."
3584 3585
3585#. type: lisp 3586#. type: lisp
3586#: doc/guix-cookbook.texi:1932 3587#: guix-git/doc/guix-cookbook.texi:1932
3587#, no-wrap 3588#, no-wrap
3588msgid "" 3589msgid ""
3589"(define-record-type* <image>\n" 3590"(define-record-type* <image>\n"
@@ -3629,46 +3630,46 @@ msgstr ""
3629" (default #t)))\n" 3630" (default #t)))\n"
3630 3631
3631#. type: Plain text 3632#. type: Plain text
3632#: doc/guix-cookbook.texi:1938 3633#: guix-git/doc/guix-cookbook.texi:1938
3633msgid "This record contains the operating-system to instantiate. The @code{format} field defines the image type and can be @code{efi-raw}, @code{qcow2} or @code{iso9660} for instance. In the future, it could be extended to @code{docker} or other image types." 3634msgid "This record contains the operating-system to instantiate. The @code{format} field defines the image type and can be @code{efi-raw}, @code{qcow2} or @code{iso9660} for instance. In the future, it could be extended to @code{docker} or other image types."
3634msgstr "In einem Verbundsobjekt davon steht auch das zu instanziierende Betriebssystem (in @code{operating-system}). Im Feld @code{format} steht, was der Abbildtyp („image type“) ist, zum Beispiel @code{efi-raw}, @code{qcow2} oder @code{iso9660}. In Zukunft könnten die Möglichkeiten auf @code{docker} oder andere Abbildtypen erweitert werden." 3635msgstr "In einem Verbundsobjekt davon steht auch das zu instanziierende Betriebssystem (in @code{operating-system}). Im Feld @code{format} steht, was der Abbildtyp („image type“) ist, zum Beispiel @code{efi-raw}, @code{qcow2} oder @code{iso9660}. In Zukunft könnten die Möglichkeiten auf @code{docker} oder andere Abbildtypen erweitert werden."
3635 3636
3636#. type: Plain text 3637#. type: Plain text
3637#: doc/guix-cookbook.texi:1941 3638#: guix-git/doc/guix-cookbook.texi:1941
3638msgid "A new directory in the Guix sources is dedicated to images definition. For now there are four files:" 3639msgid "A new directory in the Guix sources is dedicated to images definition. For now there are four files:"
3639msgstr "Ein neues Verzeichnis im Guix-Quellbaum wurde Abbilddefinitionen gewidmet. Zurzeit gibt es vier Dateien darin:" 3640msgstr "Ein neues Verzeichnis im Guix-Quellbaum wurde Abbilddefinitionen gewidmet. Zurzeit gibt es vier Dateien darin:"
3640 3641
3641#. type: file{#1} 3642#. type: file{#1}
3642#: doc/guix-cookbook.texi:1943 3643#: guix-git/doc/guix-cookbook.texi:1943
3643#, no-wrap 3644#, no-wrap
3644msgid "gnu/system/images/hurd.scm" 3645msgid "gnu/system/images/hurd.scm"
3645msgstr "gnu/system/images/hurd.scm" 3646msgstr "gnu/system/images/hurd.scm"
3646 3647
3647#. type: file{#1} 3648#. type: file{#1}
3648#: doc/guix-cookbook.texi:1944 3649#: guix-git/doc/guix-cookbook.texi:1944
3649#, no-wrap 3650#, no-wrap
3650msgid "gnu/system/images/pine64.scm" 3651msgid "gnu/system/images/pine64.scm"
3651msgstr "gnu/system/images/pine64.scm" 3652msgstr "gnu/system/images/pine64.scm"
3652 3653
3653#. type: file{#1} 3654#. type: file{#1}
3654#: doc/guix-cookbook.texi:1945 3655#: guix-git/doc/guix-cookbook.texi:1945
3655#, no-wrap 3656#, no-wrap
3656msgid "gnu/system/images/novena.scm" 3657msgid "gnu/system/images/novena.scm"
3657msgstr "gnu/system/images/novena.scm" 3658msgstr "gnu/system/images/novena.scm"
3658 3659
3659#. type: file{#1} 3660#. type: file{#1}
3660#: doc/guix-cookbook.texi:1946 3661#: guix-git/doc/guix-cookbook.texi:1946
3661#, no-wrap 3662#, no-wrap
3662msgid "gnu/system/images/pinebook-pro.scm" 3663msgid "gnu/system/images/pinebook-pro.scm"
3663msgstr "gnu/system/images/pinebook-pro.scm" 3664msgstr "gnu/system/images/pinebook-pro.scm"
3664 3665
3665#. type: Plain text 3666#. type: Plain text
3666#: doc/guix-cookbook.texi:1952 3667#: guix-git/doc/guix-cookbook.texi:1952
3667msgid "Let's have a look to @file{pine64.scm}. It contains the @code{pine64-barebones-os} variable which is a minimal definition of an operating-system dedicated to the @b{Pine A64 LTS} board." 3668msgid "Let's have a look to @file{pine64.scm}. It contains the @code{pine64-barebones-os} variable which is a minimal definition of an operating-system dedicated to the @b{Pine A64 LTS} board."
3668msgstr "Schauen wir uns @file{pine64.scm} an. Es enthält die Variable @code{pine64-barebones-os}, bei der es sich um eine minimale Definition eines Betriebssystems handelt, die auf Platinen der Art @b{Pine A64 LTS} ausgerichtet ist." 3669msgstr "Schauen wir uns @file{pine64.scm} an. Es enthält die Variable @code{pine64-barebones-os}, bei der es sich um eine minimale Definition eines Betriebssystems handelt, die auf Platinen der Art @b{Pine A64 LTS} ausgerichtet ist."
3669 3670
3670#. type: lisp 3671#. type: lisp
3671#: doc/guix-cookbook.texi:1976 3672#: guix-git/doc/guix-cookbook.texi:1976
3672#, no-wrap 3673#, no-wrap
3673msgid "" 3674msgid ""
3674"(define pine64-barebones-os\n" 3675"(define pine64-barebones-os\n"
@@ -3718,17 +3719,17 @@ msgstr ""
3718" %base-services))))\n" 3719" %base-services))))\n"
3719 3720
3720#. type: Plain text 3721#. type: Plain text
3721#: doc/guix-cookbook.texi:1980 3722#: guix-git/doc/guix-cookbook.texi:1980
3722msgid "The @code{kernel} and @code{bootloader} fields are pointing to packages dedicated to this board." 3723msgid "The @code{kernel} and @code{bootloader} fields are pointing to packages dedicated to this board."
3723msgstr "Die Felder @code{kernel} und @code{bootloader} verweisen auf platinenspezifische Pakete." 3724msgstr "Die Felder @code{kernel} und @code{bootloader} verweisen auf platinenspezifische Pakete."
3724 3725
3725#. type: Plain text 3726#. type: Plain text
3726#: doc/guix-cookbook.texi:1982 3727#: guix-git/doc/guix-cookbook.texi:1982
3727msgid "Right below, the @code{pine64-image-type} variable is also defined." 3728msgid "Right below, the @code{pine64-image-type} variable is also defined."
3728msgstr "Direkt darunter wird auch die Variable @code{pine64-image-type} definiert." 3729msgstr "Direkt darunter wird auch die Variable @code{pine64-image-type} definiert."
3729 3730
3730#. type: lisp 3731#. type: lisp
3731#: doc/guix-cookbook.texi:1988 3732#: guix-git/doc/guix-cookbook.texi:1988
3732#, no-wrap 3733#, no-wrap
3733msgid "" 3734msgid ""
3734"(define pine64-image-type\n" 3735"(define pine64-image-type\n"
@@ -3742,12 +3743,12 @@ msgstr ""
3742" (constructor (cut image-with-os arm64-disk-image <>))))\n" 3743" (constructor (cut image-with-os arm64-disk-image <>))))\n"
3743 3744
3744#. type: Plain text 3745#. type: Plain text
3745#: doc/guix-cookbook.texi:1992 3746#: guix-git/doc/guix-cookbook.texi:1992
3746msgid "It's using a record we haven't talked about yet, the @code{image-type} record, defined this way:" 3747msgid "It's using a record we haven't talked about yet, the @code{image-type} record, defined this way:"
3747msgstr "Sie benutzt einen Verbundstyp, über den wir noch nicht gesprochen haben, den @code{image-type}-Verbund. Er ist wie folgt definiert:" 3748msgstr "Sie benutzt einen Verbundstyp, über den wir noch nicht gesprochen haben, den @code{image-type}-Verbund. Er ist wie folgt definiert:"
3748 3749
3749#. type: lisp 3750#. type: lisp
3750#: doc/guix-cookbook.texi:1999 3751#: guix-git/doc/guix-cookbook.texi:1999
3751#, no-wrap 3752#, no-wrap
3752msgid "" 3753msgid ""
3753"(define-record-type* <image-type>\n" 3754"(define-record-type* <image-type>\n"
@@ -3763,39 +3764,39 @@ msgstr ""
3763" (constructor image-type-constructor)) ;<operating-system> -> <image>\n" 3764" (constructor image-type-constructor)) ;<operating-system> -> <image>\n"
3764 3765
3765#. type: Plain text 3766#. type: Plain text
3766#: doc/guix-cookbook.texi:2005 3767#: guix-git/doc/guix-cookbook.texi:2005
3767msgid "The main purpose of this record is to associate a name to a procedure transforming an @code{operating-system} to an image. To understand why it is necessary, let's have a look to the command producing an image from an @code{operating-system} configuration file:" 3768msgid "The main purpose of this record is to associate a name to a procedure transforming an @code{operating-system} to an image. To understand why it is necessary, let's have a look to the command producing an image from an @code{operating-system} configuration file:"
3768msgstr "Der Hauptzweck dieses Verbunds ist, einer Prozedur, die ein @code{operating-system} in ein @code{image}-Abbild umwandelt, einen Namen zu geben. Um den Bedarf dafür nachzuvollziehen, schauen wir uns den Befehl an, mit dem ein Abbild aus einer @code{operating-system}-Konfigurationsdatei erzeugt wird:" 3769msgstr "Der Hauptzweck dieses Verbunds ist, einer Prozedur, die ein @code{operating-system} in ein @code{image}-Abbild umwandelt, einen Namen zu geben. Um den Bedarf dafür nachzuvollziehen, schauen wir uns den Befehl an, mit dem ein Abbild aus einer @code{operating-system}-Konfigurationsdatei erzeugt wird:"
3769 3770
3770#. type: example 3771#. type: example
3771#: doc/guix-cookbook.texi:2008 3772#: guix-git/doc/guix-cookbook.texi:2008
3772#, no-wrap 3773#, no-wrap
3773msgid "guix system image my-os.scm\n" 3774msgid "guix system image my-os.scm\n"
3774msgstr "guix system image my-os.scm\n" 3775msgstr "guix system image my-os.scm\n"
3775 3776
3776#. type: Plain text 3777#. type: Plain text
3777#: doc/guix-cookbook.texi:2014 3778#: guix-git/doc/guix-cookbook.texi:2014
3778msgid "This command expects an @code{operating-system} configuration but how should we indicate that we want an image targeting a Pine64 board? We need to provide an extra information, the @code{image-type}, by passing the @code{--image-type} or @code{-t} flag, this way:" 3779msgid "This command expects an @code{operating-system} configuration but how should we indicate that we want an image targeting a Pine64 board? We need to provide an extra information, the @code{image-type}, by passing the @code{--image-type} or @code{-t} flag, this way:"
3779msgstr "Dieser Befehl erwartet eine @code{operating-system}-Konfiguration, doch wie geben wir an, dass wir ein Abbild für einen Pine64-Rechner möchten? Wir müssen zusätzliche Informationen mitgeben, nämlich den Abbildtyp, @code{image-type}, indem wir die Befehlszeilenoption @code{--image-type} oder @code{-t} übergeben, und zwar so:" 3780msgstr "Dieser Befehl erwartet eine @code{operating-system}-Konfiguration, doch wie geben wir an, dass wir ein Abbild für einen Pine64-Rechner möchten? Wir müssen zusätzliche Informationen mitgeben, nämlich den Abbildtyp, @code{image-type}, indem wir die Befehlszeilenoption @code{--image-type} oder @code{-t} übergeben, und zwar so:"
3780 3781
3781#. type: example 3782#. type: example
3782#: doc/guix-cookbook.texi:2017 3783#: guix-git/doc/guix-cookbook.texi:2017
3783#, no-wrap 3784#, no-wrap
3784msgid "guix system image --image-type=pine64-raw my-os.scm\n" 3785msgid "guix system image --image-type=pine64-raw my-os.scm\n"
3785msgstr "guix system image --image-type=pine64-raw my-os.scm\n" 3786msgstr "guix system image --image-type=pine64-raw my-os.scm\n"
3786 3787
3787#. type: Plain text 3788#. type: Plain text
3788#: doc/guix-cookbook.texi:2023 3789#: guix-git/doc/guix-cookbook.texi:2023
3789msgid "This @code{image-type} parameter points to the @code{pine64-image-type} defined above. Hence, the @code{operating-system} declared in @code{my-os.scm} will be applied the @code{(cut image-with-os arm64-disk-image <>)} procedure to turn it into an image." 3790msgid "This @code{image-type} parameter points to the @code{pine64-image-type} defined above. Hence, the @code{operating-system} declared in @code{my-os.scm} will be applied the @code{(cut image-with-os arm64-disk-image <>)} procedure to turn it into an image."
3790msgstr "Der Parameter @code{image-type} verweist auf den oben definierten @code{pine64-image-type}. Dadurch wird die Prozedur @code{(cut image-with-os arm64-disk-image <>)} auf das in @code{my-os.scm} deklarierte @code{operating-system} angewandt und macht es zu einem @code{image}-Abbild." 3791msgstr "Der Parameter @code{image-type} verweist auf den oben definierten @code{pine64-image-type}. Dadurch wird die Prozedur @code{(cut image-with-os arm64-disk-image <>)} auf das in @code{my-os.scm} deklarierte @code{operating-system} angewandt und macht es zu einem @code{image}-Abbild."
3791 3792
3792#. type: Plain text 3793#. type: Plain text
3793#: doc/guix-cookbook.texi:2025 3794#: guix-git/doc/guix-cookbook.texi:2025
3794msgid "The resulting image looks like:" 3795msgid "The resulting image looks like:"
3795msgstr "Es ergibt sich ein Abbild wie dieses:" 3796msgstr "Es ergibt sich ein Abbild wie dieses:"
3796 3797
3797#. type: lisp 3798#. type: lisp
3798#: doc/guix-cookbook.texi:2035 3799#: guix-git/doc/guix-cookbook.texi:2035
3799#, no-wrap 3800#, no-wrap
3800msgid "" 3801msgid ""
3801"(image\n" 3802"(image\n"
@@ -3817,22 +3818,22 @@ msgstr ""
3817" (offset root-offset)))))\n" 3818" (offset root-offset)))))\n"
3818 3819
3819#. type: Plain text 3820#. type: Plain text
3820#: doc/guix-cookbook.texi:2039 3821#: guix-git/doc/guix-cookbook.texi:2039
3821msgid "which is the aggregation of the @code{operating-system} defined in @code{my-os.scm} to the @code{arm64-disk-image} record." 3822msgid "which is the aggregation of the @code{operating-system} defined in @code{my-os.scm} to the @code{arm64-disk-image} record."
3822msgstr "Das ist das Aggregat aus dem in @code{my-os.scm} definierten @code{operating-system} und dem @code{arm64-disk-image}-Verbundsobjekt." 3823msgstr "Das ist das Aggregat aus dem in @code{my-os.scm} definierten @code{operating-system} und dem @code{arm64-disk-image}-Verbundsobjekt."
3823 3824
3824#. type: Plain text 3825#. type: Plain text
3825#: doc/guix-cookbook.texi:2041 3826#: guix-git/doc/guix-cookbook.texi:2041
3826msgid "But enough Scheme madness. What does this image API bring to the Guix user?" 3827msgid "But enough Scheme madness. What does this image API bring to the Guix user?"
3827msgstr "Aber genug vom Scheme-Wahnsinn. Was nützt die Image-Schnittstelle dem Nutzer von Guix?" 3828msgstr "Aber genug vom Scheme-Wahnsinn. Was nützt die Image-Schnittstelle dem Nutzer von Guix?"
3828 3829
3829#. type: Plain text 3830#. type: Plain text
3830#: doc/guix-cookbook.texi:2043 3831#: guix-git/doc/guix-cookbook.texi:2043
3831msgid "One can run:" 3832msgid "One can run:"
3832msgstr "Sie können das ausführen:" 3833msgstr "Sie können das ausführen:"
3833 3834
3834#. type: example 3835#. type: example
3835#: doc/guix-cookbook.texi:2047 3836#: guix-git/doc/guix-cookbook.texi:2047
3836#, no-wrap 3837#, no-wrap
3837msgid "" 3838msgid ""
3838"mathieu@@cervin:~$ guix system --list-image-types\n" 3839"mathieu@@cervin:~$ guix system --list-image-types\n"
@@ -3844,7 +3845,7 @@ msgstr ""
3844"\n" 3845"\n"
3845 3846
3846#. type: example 3847#. type: example
3847#: doc/guix-cookbook.texi:2065 3848#: guix-git/doc/guix-cookbook.texi:2065
3848#, no-wrap 3849#, no-wrap
3849msgid "" 3850msgid ""
3850" - unmatched-raw\n" 3851" - unmatched-raw\n"
@@ -3884,12 +3885,12 @@ msgstr ""
3884" - efi32-raw\n" 3885" - efi32-raw\n"
3885 3886
3886#. type: Plain text 3887#. type: Plain text
3887#: doc/guix-cookbook.texi:2070 3888#: guix-git/doc/guix-cookbook.texi:2070
3888msgid "and by writing an @code{operating-system} file based on @code{pine64-barebones-os}, you can customize your image to your preferences in a file (@file{my-pine-os.scm}) like this:" 3889msgid "and by writing an @code{operating-system} file based on @code{pine64-barebones-os}, you can customize your image to your preferences in a file (@file{my-pine-os.scm}) like this:"
3889msgstr "und indem Sie eine Betriebssystemkonfigurationsdatei mit einem auf @code{pine64-barebones-os} aufbauenden @code{operating-system} schreiben, können Sie Ihr Abbild nach Ihren Wünschen anpassen in einer Datei, sagen wir @file{my-pine-os.scm}:" 3890msgstr "und indem Sie eine Betriebssystemkonfigurationsdatei mit einem auf @code{pine64-barebones-os} aufbauenden @code{operating-system} schreiben, können Sie Ihr Abbild nach Ihren Wünschen anpassen in einer Datei, sagen wir @file{my-pine-os.scm}:"
3890 3891
3891#. type: lisp 3892#. type: lisp
3892#: doc/guix-cookbook.texi:2074 3893#: guix-git/doc/guix-cookbook.texi:2074
3893#, no-wrap 3894#, no-wrap
3894msgid "" 3895msgid ""
3895"(use-modules (gnu services linux)\n" 3896"(use-modules (gnu services linux)\n"
@@ -3901,7 +3902,7 @@ msgstr ""
3901"\n" 3902"\n"
3902 3903
3903#. type: lisp 3904#. type: lisp
3904#: doc/guix-cookbook.texi:2085 3905#: guix-git/doc/guix-cookbook.texi:2085
3905#, no-wrap 3906#, no-wrap
3906msgid "" 3907msgid ""
3907"(let ((base-os pine64-barebones-os))\n" 3908"(let ((base-os pine64-barebones-os))\n"
@@ -3927,89 +3928,89 @@ msgstr ""
3927" (operating-system-user-services base-os)))))\n" 3928" (operating-system-user-services base-os)))))\n"
3928 3929
3929#. type: Plain text 3930#. type: Plain text
3930#: doc/guix-cookbook.texi:2088 3931#: guix-git/doc/guix-cookbook.texi:2088
3931msgid "run:" 3932msgid "run:"
3932msgstr "Führen Sie aus:" 3933msgstr "Führen Sie aus:"
3933 3934
3934#. type: example 3935#. type: example
3935#: doc/guix-cookbook.texi:2091 3936#: guix-git/doc/guix-cookbook.texi:2091
3936#, no-wrap 3937#, no-wrap
3937msgid "guix system image --image-type=pine64-raw my-pine-os.scm\n" 3938msgid "guix system image --image-type=pine64-raw my-pine-os.scm\n"
3938msgstr "guix system image --image-type=pine64-raw my-pine-os.scm\n" 3939msgstr "guix system image --image-type=pine64-raw my-pine-os.scm\n"
3939 3940
3940#. type: Plain text 3941#. type: Plain text
3941#: doc/guix-cookbook.texi:2094 3942#: guix-git/doc/guix-cookbook.texi:2094
3942msgid "or," 3943msgid "or,"
3943msgstr "oder" 3944msgstr "oder"
3944 3945
3945#. type: example 3946#. type: example
3946#: doc/guix-cookbook.texi:2097 3947#: guix-git/doc/guix-cookbook.texi:2097
3947#, no-wrap 3948#, no-wrap
3948msgid "guix system image --image-type=hurd-raw my-hurd-os.scm\n" 3949msgid "guix system image --image-type=hurd-raw my-hurd-os.scm\n"
3949msgstr "guix system image --image-type=hurd-raw my-hurd-os.scm\n" 3950msgstr "guix system image --image-type=hurd-raw my-hurd-os.scm\n"
3950 3951
3951#. type: Plain text 3952#. type: Plain text
3952#: doc/guix-cookbook.texi:2101 3953#: guix-git/doc/guix-cookbook.texi:2101
3953msgid "to get an image that can be written directly to a hard drive and booted from." 3954msgid "to get an image that can be written directly to a hard drive and booted from."
3954msgstr "und Sie bekommen ein Abbild, das Sie direkt auf eine Festplatte kopieren und starten können." 3955msgstr "und Sie bekommen ein Abbild, das Sie direkt auf eine Festplatte kopieren und starten können."
3955 3956
3956#. type: Plain text 3957#. type: Plain text
3957#: doc/guix-cookbook.texi:2103 3958#: guix-git/doc/guix-cookbook.texi:2103
3958msgid "Without changing anything to @code{my-hurd-os.scm}, calling:" 3959msgid "Without changing anything to @code{my-hurd-os.scm}, calling:"
3959msgstr "Ohne irgendetwas an @code{my-hurd-os.scm} zu ändern, bewirkt ein Aufruf" 3960msgstr "Ohne irgendetwas an @code{my-hurd-os.scm} zu ändern, bewirkt ein Aufruf"
3960 3961
3961#. type: example 3962#. type: example
3962#: doc/guix-cookbook.texi:2106 3963#: guix-git/doc/guix-cookbook.texi:2106
3963#, no-wrap 3964#, no-wrap
3964msgid "guix system image --image-type=hurd-qcow2 my-hurd-os.scm\n" 3965msgid "guix system image --image-type=hurd-qcow2 my-hurd-os.scm\n"
3965msgstr "guix system image --image-type=hurd-qcow2 my-hurd-os.scm\n" 3966msgstr "guix system image --image-type=hurd-qcow2 my-hurd-os.scm\n"
3966 3967
3967#. type: Plain text 3968#. type: Plain text
3968#: doc/guix-cookbook.texi:2109 3969#: guix-git/doc/guix-cookbook.texi:2109
3969msgid "will instead produce a Hurd QEMU image." 3970msgid "will instead produce a Hurd QEMU image."
3970msgstr "dass stattdessen ein Hurd-Abbild für QEMU erzeugt wird." 3971msgstr "dass stattdessen ein Hurd-Abbild für QEMU erzeugt wird."
3971 3972
3972#. type: cindex 3973#. type: cindex
3973#: doc/guix-cookbook.texi:2112 3974#: guix-git/doc/guix-cookbook.texi:2112
3974#, no-wrap 3975#, no-wrap
3975msgid "2FA, two-factor authentication" 3976msgid "2FA, two-factor authentication"
3976msgstr "2FA, Zwei-Faktor-Authentisierung" 3977msgstr "2FA, Zwei-Faktor-Authentisierung"
3977 3978
3978#. type: cindex 3979#. type: cindex
3979#: doc/guix-cookbook.texi:2113 3980#: guix-git/doc/guix-cookbook.texi:2113
3980#, no-wrap 3981#, no-wrap
3981msgid "U2F, Universal 2nd Factor" 3982msgid "U2F, Universal 2nd Factor"
3982msgstr "U2F, Universal 2nd Factor" 3983msgstr "U2F, Universal 2nd Factor"
3983 3984
3984#. type: cindex 3985#. type: cindex
3985#: doc/guix-cookbook.texi:2114 3986#: guix-git/doc/guix-cookbook.texi:2114
3986#, no-wrap 3987#, no-wrap
3987msgid "security key, configuration" 3988msgid "security key, configuration"
3988msgstr "Sicherheitsschlüssel, einrichten" 3989msgstr "Sicherheitsschlüssel, einrichten"
3989 3990
3990#. type: Plain text 3991#. type: Plain text
3991#: doc/guix-cookbook.texi:2121 3992#: guix-git/doc/guix-cookbook.texi:2121
3992msgid "The use of security keys can improve your security by providing a second authentication source that cannot be easily stolen or copied, at least for a remote adversary (something that you have), to the main secret (a passphrase -- something that you know), reducing the risk of impersonation." 3993msgid "The use of security keys can improve your security by providing a second authentication source that cannot be easily stolen or copied, at least for a remote adversary (something that you have), to the main secret (a passphrase -- something that you know), reducing the risk of impersonation."
3993msgstr "Indem Sie Sicherheitsschlüssel einsetzen, können Sie sich besser absichern. Diese stellen eine zweite Bestätigung Ihrer Identität dar, die nicht leicht gestohlen oder kopiert werden kann, zumindest wenn der Angreifer nur Fernzugriff ergattert hat. Sicherheitsschlüssel sind etwas, was Sie haben, dagegen ist ein Geheimnis (eine Passphrase) etwas, was Sie wissen. So sinkt das Risiko, dass sich jemand Fremdes als Sie ausgibt." 3994msgstr "Indem Sie Sicherheitsschlüssel einsetzen, können Sie sich besser absichern. Diese stellen eine zweite Bestätigung Ihrer Identität dar, die nicht leicht gestohlen oder kopiert werden kann, zumindest wenn der Angreifer nur Fernzugriff ergattert hat. Sicherheitsschlüssel sind etwas, was Sie haben, dagegen ist ein Geheimnis (eine Passphrase) etwas, was Sie wissen. So sinkt das Risiko, dass sich jemand Fremdes als Sie ausgibt."
3994 3995
3995#. type: Plain text 3996#. type: Plain text
3996#: doc/guix-cookbook.texi:2126 3997#: guix-git/doc/guix-cookbook.texi:2126
3997msgid "The example configuration detailed below showcases what minimal configuration needs to be made on your Guix System to allow the use of a Yubico security key. It is hoped the configuration can be useful for other security keys as well, with minor adjustments." 3998msgid "The example configuration detailed below showcases what minimal configuration needs to be made on your Guix System to allow the use of a Yubico security key. It is hoped the configuration can be useful for other security keys as well, with minor adjustments."
3998msgstr "Mit der nachfolgenden Beispielkonfiguration wird vorgeführt, wie Sie mit kleinstem Konfigurationsaufwand auf Ihrem Guix System einen Yubico-Sicherheitsschlüssel einsetzen können. Wir hoffen, die Konfiguration klappt auch bei anderen Sicherheitsschlüsseln, mit geringen Anpassungen." 3999msgstr "Mit der nachfolgenden Beispielkonfiguration wird vorgeführt, wie Sie mit kleinstem Konfigurationsaufwand auf Ihrem Guix System einen Yubico-Sicherheitsschlüssel einsetzen können. Wir hoffen, die Konfiguration klappt auch bei anderen Sicherheitsschlüsseln, mit geringen Anpassungen."
3999 4000
4000#. type: subsection 4001#. type: subsection
4001#: doc/guix-cookbook.texi:2127 4002#: guix-git/doc/guix-cookbook.texi:2127
4002#, no-wrap 4003#, no-wrap
4003msgid "Configuration for use as a two-factor authenticator (2FA)" 4004msgid "Configuration for use as a two-factor authenticator (2FA)"
4004msgstr "Einrichten einer Zwei-Faktor-Authentisierung (2FA)" 4005msgstr "Einrichten einer Zwei-Faktor-Authentisierung (2FA)"
4005 4006
4006#. type: Plain text 4007#. type: Plain text
4007#: doc/guix-cookbook.texi:2135 4008#: guix-git/doc/guix-cookbook.texi:2135
4008msgid "To be usable, the udev rules of the system should be extended with key-specific rules. The following shows how to extend your udev rules with the @file{lib/udev/rules.d/70-u2f.rules} udev rule file provided by the @code{libfido2} package from the @code{(gnu packages security-token)} module and add your user to the @samp{\"plugdev\"} group it uses:" 4009msgid "To be usable, the udev rules of the system should be extended with key-specific rules. The following shows how to extend your udev rules with the @file{lib/udev/rules.d/70-u2f.rules} udev rule file provided by the @code{libfido2} package from the @code{(gnu packages security-token)} module and add your user to the @samp{\"plugdev\"} group it uses:"
4009msgstr "Dazu müssen Sie die udev-Regeln des Systems um auf Ihren Sicherheitsschlüssel abgestimmte Regeln erweitern. Im Folgenden wird gezeigt, wie Sie Ihre udev-Regeln um die Regeldatei @file{lib/udev/rules.d/70-u2f.rules} aus dem @code{libfido2}-Paket im Modul @code{(gnu packages security-token)} erweitern und Ihren Benutzer zur zugehörigen Gruppe @samp{\"plugdev\"} hinzufügen:" 4010msgstr "Dazu müssen Sie die udev-Regeln des Systems um auf Ihren Sicherheitsschlüssel abgestimmte Regeln erweitern. Im Folgenden wird gezeigt, wie Sie Ihre udev-Regeln um die Regeldatei @file{lib/udev/rules.d/70-u2f.rules} aus dem @code{libfido2}-Paket im Modul @code{(gnu packages security-token)} erweitern und Ihren Benutzer zur zugehörigen Gruppe @samp{\"plugdev\"} hinzufügen:"
4010 4011
4011#. type: lisp 4012#. type: lisp
4012#: doc/guix-cookbook.texi:2154 4013#: guix-git/doc/guix-cookbook.texi:2154
4013#, no-wrap 4014#, no-wrap
4014msgid "" 4015msgid ""
4015"(use-package-modules ... security-token ...)\n" 4016"(use-package-modules ... security-token ...)\n"
@@ -4049,73 +4050,73 @@ msgstr ""
4049" (udev-rules-service 'fido2 libfido2 #:groups '(\"plugdev\")))))\n" 4050" (udev-rules-service 'fido2 libfido2 #:groups '(\"plugdev\")))))\n"
4050 4051
4051#. type: Plain text 4052#. type: Plain text
4052#: doc/guix-cookbook.texi:2159 4053#: guix-git/doc/guix-cookbook.texi:2159
4053msgid "After re-configuring your system and re-logging in your graphical session so that the new group is in effect for your user, you can verify that your key is usable by launching:" 4054msgid "After re-configuring your system and re-logging in your graphical session so that the new group is in effect for your user, you can verify that your key is usable by launching:"
4054msgstr "Rekonfigurieren Sie Ihr System. Danach melden Sie sich neu an zu einer grafischen Sitzung, damit sich die neue Gruppe Ihres Benutzers auswirken kann. Sie können jetzt prüfen, ob Ihr Sicherheitsschlüssel einsatzbereit ist, indem Sie dies starten:" 4055msgstr "Rekonfigurieren Sie Ihr System. Danach melden Sie sich neu an zu einer grafischen Sitzung, damit sich die neue Gruppe Ihres Benutzers auswirken kann. Sie können jetzt prüfen, ob Ihr Sicherheitsschlüssel einsatzbereit ist, indem Sie dies starten:"
4055 4056
4056#. type: example 4057#. type: example
4057#: doc/guix-cookbook.texi:2162 4058#: guix-git/doc/guix-cookbook.texi:2162
4058#, no-wrap 4059#, no-wrap
4059msgid "guix shell ungoogled-chromium -- chromium chrome://settings/securityKeys\n" 4060msgid "guix shell ungoogled-chromium -- chromium chrome://settings/securityKeys\n"
4060msgstr "guix shell ungoogled-chromium -- chromium chrome://settings/securityKeys\n" 4061msgstr "guix shell ungoogled-chromium -- chromium chrome://settings/securityKeys\n"
4061 4062
4062#. type: Plain text 4063#. type: Plain text
4063#: doc/guix-cookbook.texi:2168 4064#: guix-git/doc/guix-cookbook.texi:2168
4064msgid "and validating that the security key can be reset via the ``Reset your security key'' menu. If it works, congratulations, your security key is ready to be used with applications supporting two-factor authentication (2FA)." 4065msgid "and validating that the security key can be reset via the ``Reset your security key'' menu. If it works, congratulations, your security key is ready to be used with applications supporting two-factor authentication (2FA)."
4065msgstr "und nachsehen, ob Sie den Sicherheitsschlüssel mit dem Menüeintrag „Sicherheitsschlüssel zurücksetzen“ neu machen können. Wenn es klappt, gratulieren wir zu Ihrem nutzungsbereiten Sicherheitsschlüssel, mit dem Sie nun ihn unterstützende Anwendungen für Zwei-Faktor-Authentisierung (2FA) einrichten können." 4066msgstr "und nachsehen, ob Sie den Sicherheitsschlüssel mit dem Menüeintrag „Sicherheitsschlüssel zurücksetzen“ neu machen können. Wenn es klappt, gratulieren wir zu Ihrem nutzungsbereiten Sicherheitsschlüssel, mit dem Sie nun ihn unterstützende Anwendungen für Zwei-Faktor-Authentisierung (2FA) einrichten können."
4066 4067
4067#. type: subsection 4068#. type: subsection
4068#: doc/guix-cookbook.texi:2169 4069#: guix-git/doc/guix-cookbook.texi:2169
4069#, no-wrap 4070#, no-wrap
4070msgid "Disabling OTP code generation for a Yubikey" 4071msgid "Disabling OTP code generation for a Yubikey"
4071msgstr "Abschalten der OTP-Code-Erzeugung beim Yubikey" 4072msgstr "Abschalten der OTP-Code-Erzeugung beim Yubikey"
4072 4073
4073#. type: cindex 4074#. type: cindex
4074#: doc/guix-cookbook.texi:2170 4075#: guix-git/doc/guix-cookbook.texi:2170
4075#, no-wrap 4076#, no-wrap
4076msgid "disabling yubikey OTP" 4077msgid "disabling yubikey OTP"
4077msgstr "Yubikey-OTP deaktivieren" 4078msgstr "Yubikey-OTP deaktivieren"
4078 4079
4079#. type: Plain text 4080#. type: Plain text
4080#: doc/guix-cookbook.texi:2176 4081#: guix-git/doc/guix-cookbook.texi:2176
4081msgid "If you use a Yubikey security key and are irritated by the spurious OTP codes it generates when inadvertently touching the key (e.g. causing you to become a spammer in the @samp{#guix} channel when discussing from your favorite IRC client!), you can disable it via the following @command{ykman} command:" 4082msgid "If you use a Yubikey security key and are irritated by the spurious OTP codes it generates when inadvertently touching the key (e.g. causing you to become a spammer in the @samp{#guix} channel when discussing from your favorite IRC client!), you can disable it via the following @command{ykman} command:"
4082msgstr "Wenn Sie einen Yubikey-Sicherheitsschlüssel verwenden und es Sie stört, dass er unsinnige OTP-Codes erzeugt, wenn Sie ihn unabsichtlich anrühren (und Sie damit am Ende den @samp{#guix}-Kanal zumüllen, während Sie mit Ihrem Lieblings-IRC-Client an der Diskussion teilnehmen!), dann deaktivieren Sie es einfach mit dem folgenden @command{ykman}-Befehl:" 4083msgstr "Wenn Sie einen Yubikey-Sicherheitsschlüssel verwenden und es Sie stört, dass er unsinnige OTP-Codes erzeugt, wenn Sie ihn unabsichtlich anrühren (und Sie damit am Ende den @samp{#guix}-Kanal zumüllen, während Sie mit Ihrem Lieblings-IRC-Client an der Diskussion teilnehmen!), dann deaktivieren Sie es einfach mit dem folgenden @command{ykman}-Befehl:"
4083 4084
4084#. type: example 4085#. type: example
4085#: doc/guix-cookbook.texi:2179 4086#: guix-git/doc/guix-cookbook.texi:2179
4086#, no-wrap 4087#, no-wrap
4087msgid "guix shell python-yubikey-manager -- ykman config usb --force --disable OTP\n" 4088msgid "guix shell python-yubikey-manager -- ykman config usb --force --disable OTP\n"
4088msgstr "guix shell python-yubikey-manager -- ykman config usb --force --disable OTP\n" 4089msgstr "guix shell python-yubikey-manager -- ykman config usb --force --disable OTP\n"
4089 4090
4090#. type: Plain text 4091#. type: Plain text
4091#: doc/guix-cookbook.texi:2186 4092#: guix-git/doc/guix-cookbook.texi:2186
4092msgid "Alternatively, you could use the @command{ykman-gui} command provided by the @code{yubikey-manager-qt} package and either wholly disable the @samp{OTP} application for the USB interface or, from the @samp{Applications -> OTP} view, delete the slot 1 configuration, which comes pre-configured with the Yubico OTP application." 4093msgid "Alternatively, you could use the @command{ykman-gui} command provided by the @code{yubikey-manager-qt} package and either wholly disable the @samp{OTP} application for the USB interface or, from the @samp{Applications -> OTP} view, delete the slot 1 configuration, which comes pre-configured with the Yubico OTP application."
4093msgstr "Alternativ können Sie auch die Oberfläche mit dem @command{ykman-gui}-Befehl aus dem Paket @code{yubikey-manager-qt} starten und entweder gleich die ganze OTP-Anwendung für die USB-Schnittstelle abschalten oder, unter @samp{Applications -> OTP}, die Konfiguration für Slot 1 löschen, die bei der Yubico-OTP-Anwendung voreingestellt ist." 4094msgstr "Alternativ können Sie auch die Oberfläche mit dem @command{ykman-gui}-Befehl aus dem Paket @code{yubikey-manager-qt} starten und entweder gleich die ganze OTP-Anwendung für die USB-Schnittstelle abschalten oder, unter @samp{Applications -> OTP}, die Konfiguration für Slot 1 löschen, die bei der Yubico-OTP-Anwendung voreingestellt ist."
4094 4095
4095#. type: subsection 4096#. type: subsection
4096#: doc/guix-cookbook.texi:2187 4097#: guix-git/doc/guix-cookbook.texi:2187
4097#, no-wrap 4098#, no-wrap
4098msgid "Requiring a Yubikey to open a KeePassXC database" 4099msgid "Requiring a Yubikey to open a KeePassXC database"
4099msgstr "Yubikey verlangen, um eine KeePassXC-Datenbank zu entsperren" 4100msgstr "Yubikey verlangen, um eine KeePassXC-Datenbank zu entsperren"
4100 4101
4101#. type: cindex 4102#. type: cindex
4102#: doc/guix-cookbook.texi:2188 4103#: guix-git/doc/guix-cookbook.texi:2188
4103#, no-wrap 4104#, no-wrap
4104msgid "yubikey, keepassxc integration" 4105msgid "yubikey, keepassxc integration"
4105msgstr "Yubikey, KeePassXC-Integration" 4106msgstr "Yubikey, KeePassXC-Integration"
4106 4107
4107#. type: Plain text 4108#. type: Plain text
4108#: doc/guix-cookbook.texi:2192 4109#: guix-git/doc/guix-cookbook.texi:2192
4109msgid "The KeePassXC password manager application has support for Yubikeys, but it requires installing a udev rules for your Guix System and some configuration of the Yubico OTP application on the key." 4110msgid "The KeePassXC password manager application has support for Yubikeys, but it requires installing a udev rules for your Guix System and some configuration of the Yubico OTP application on the key."
4110msgstr "Die Anwendung KeePassXC zur Verwaltung von Passwörtern kann mit Yubikeys zusammenarbeiten, aber erst, wenn die udev-Regeln dafür auf Ihrem Guix System vorliegen und nachdem Sie passende Einstellungen in der Yubico-OTP-Anwendung zum Schlüssel vorgenommen haben." 4111msgstr "Die Anwendung KeePassXC zur Verwaltung von Passwörtern kann mit Yubikeys zusammenarbeiten, aber erst, wenn die udev-Regeln dafür auf Ihrem Guix System vorliegen und nachdem Sie passende Einstellungen in der Yubico-OTP-Anwendung zum Schlüssel vorgenommen haben."
4111 4112
4112#. type: Plain text 4113#. type: Plain text
4113#: doc/guix-cookbook.texi:2195 4114#: guix-git/doc/guix-cookbook.texi:2195
4114msgid "The necessary udev rules file comes from the @code{yubikey-personalization} package, and can be installed like:" 4115msgid "The necessary udev rules file comes from the @code{yubikey-personalization} package, and can be installed like:"
4115msgstr "Die erforderliche udev-Regeldatei liegt im Paket @code{yubikey-personalization} und kann hiermit installiert werden:" 4116msgstr "Die erforderliche udev-Regeldatei liegt im Paket @code{yubikey-personalization} und kann hiermit installiert werden:"
4116 4117
4117#. type: lisp 4118#. type: lisp
4118#: doc/guix-cookbook.texi:2205 4119#: guix-git/doc/guix-cookbook.texi:2205
4119#, no-wrap 4120#, no-wrap
4120msgid "" 4121msgid ""
4121"(use-package-modules ... security-token ...)\n" 4122"(use-package-modules ... security-token ...)\n"
@@ -4137,44 +4138,44 @@ msgstr ""
4137" (udev-rules-service 'yubikey yubikey-personalization))))\n" 4138" (udev-rules-service 'yubikey yubikey-personalization))))\n"
4138 4139
4139#. type: Plain text 4140#. type: Plain text
4140#: doc/guix-cookbook.texi:2212 4141#: guix-git/doc/guix-cookbook.texi:2212
4141msgid "After reconfiguring your system (and reconnecting your Yubikey), you'll then want to configure the OTP challenge/response application of your Yubikey on its slot 2, which is what KeePassXC uses. It's easy to do so via the Yubikey Manager graphical configuration tool, which can be invoked with:" 4142msgid "After reconfiguring your system (and reconnecting your Yubikey), you'll then want to configure the OTP challenge/response application of your Yubikey on its slot 2, which is what KeePassXC uses. It's easy to do so via the Yubikey Manager graphical configuration tool, which can be invoked with:"
4142msgstr "Sobald Sie Ihr System rekonfiguriert haben (und Ihren Yubikey neu verbunden haben), sollten Sie anschließend die OTP-Challenge-Response-Anwendung für Ihren Yubikey auf dessen Slot 2 einrichten, die von KeePassXC benutzt wird. Das ist problemlos möglich mit dem grafischen Konfigurationsprogramm Yubikey Manager, das Sie so aufrufen können:" 4143msgstr "Sobald Sie Ihr System rekonfiguriert haben (und Ihren Yubikey neu verbunden haben), sollten Sie anschließend die OTP-Challenge-Response-Anwendung für Ihren Yubikey auf dessen Slot 2 einrichten, die von KeePassXC benutzt wird. Das ist problemlos möglich mit dem grafischen Konfigurationsprogramm Yubikey Manager, das Sie so aufrufen können:"
4143 4144
4144#. type: example 4145#. type: example
4145#: doc/guix-cookbook.texi:2215 4146#: guix-git/doc/guix-cookbook.texi:2215
4146#, no-wrap 4147#, no-wrap
4147msgid "guix shell yubikey-manager-qt -- ykman-gui\n" 4148msgid "guix shell yubikey-manager-qt -- ykman-gui\n"
4148msgstr "guix shell yubikey-manager-qt -- ykman-gui\n" 4149msgstr "guix shell yubikey-manager-qt -- ykman-gui\n"
4149 4150
4150#. type: Plain text 4151#. type: Plain text
4151#: doc/guix-cookbook.texi:2224 4152#: guix-git/doc/guix-cookbook.texi:2224
4152msgid "First, ensure @samp{OTP} is enabled under the @samp{Interfaces} tab, then navigate to @samp{Applications -> OTP}, and click the @samp{Configure} button under the @samp{Long Touch (Slot 2)} section. Select @samp{Challenge-response}, input or generate a secret key, and click the @samp{Finish} button. If you have a second Yubikey you'd like to use as a backup, you should configure it the same way, using the @emph{same} secret key." 4153msgid "First, ensure @samp{OTP} is enabled under the @samp{Interfaces} tab, then navigate to @samp{Applications -> OTP}, and click the @samp{Configure} button under the @samp{Long Touch (Slot 2)} section. Select @samp{Challenge-response}, input or generate a secret key, and click the @samp{Finish} button. If you have a second Yubikey you'd like to use as a backup, you should configure it the same way, using the @emph{same} secret key."
4153msgstr "Stellen Sie zunächst sicher, dass @samp{OTP} im Karteireiter @samp{Interfaces} aktiviert ist. Begeben Sie sich dann zu @samp{Applications -> OTP} und klicken Sie auf den Knopf @samp{Configure} im Abschnitt @samp{Long Touch (Slot 2)}. Wählen Sie @samp{Challenge-response} und geben Sie einen geheimen Schlüssel entweder ein oder lassen Sie ihn erzeugen. Anschließend klicken Sie auf den Knopf @samp{Finish}. Wenn Sie noch einen zweiten Yubikey haben, den Sie als Ersatz einsetzen können möchten, konfigurieren Sie ihn auf die gleiche Weise mit @emph{demselben} geheimen Schlüssel." 4154msgstr "Stellen Sie zunächst sicher, dass @samp{OTP} im Karteireiter @samp{Interfaces} aktiviert ist. Begeben Sie sich dann zu @samp{Applications -> OTP} und klicken Sie auf den Knopf @samp{Configure} im Abschnitt @samp{Long Touch (Slot 2)}. Wählen Sie @samp{Challenge-response} und geben Sie einen geheimen Schlüssel entweder ein oder lassen Sie ihn erzeugen. Anschließend klicken Sie auf den Knopf @samp{Finish}. Wenn Sie noch einen zweiten Yubikey haben, den Sie als Ersatz einsetzen können möchten, konfigurieren Sie ihn auf die gleiche Weise mit @emph{demselben} geheimen Schlüssel."
4154 4155
4155#. type: Plain text 4156#. type: Plain text
4156#: doc/guix-cookbook.texi:2231 4157#: guix-git/doc/guix-cookbook.texi:2231
4157msgid "Your Yubikey should now be detected by KeePassXC. It can be added to a database by navigating to KeePassXC's @samp{Database -> Database Security...} menu, then clicking the @samp{Add additional protection...} button, then @samp{Add Challenge-Response}, selecting the security key from the drop-down menu and clicking the @samp{OK} button to complete the setup." 4158msgid "Your Yubikey should now be detected by KeePassXC. It can be added to a database by navigating to KeePassXC's @samp{Database -> Database Security...} menu, then clicking the @samp{Add additional protection...} button, then @samp{Add Challenge-Response}, selecting the security key from the drop-down menu and clicking the @samp{OK} button to complete the setup."
4158msgstr "Jetzt sollte Ihr Yubikey von KeePassXC erkannt werden. Er kann für eine Datenbank hinzugefügt werden, indem Sie in KeePassXC im Menü @samp{Datenbank -> Datenbank-Sicherheit...} öffnen und dort auf den Knopf @samp{Zusätzlichen Schutz hinzufügen@tie{}...} klicken, dann auf @samp{Challenge-Response hinzufügen} klicken und den Sicherheitsschlüssel aus der Auswahlliste wählen und den @samp{OK}-Knopf anklicken, um die Einrichtung abzuschließen." 4159msgstr "Jetzt sollte Ihr Yubikey von KeePassXC erkannt werden. Er kann für eine Datenbank hinzugefügt werden, indem Sie in KeePassXC im Menü @samp{Datenbank -> Datenbank-Sicherheit...} öffnen und dort auf den Knopf @samp{Zusätzlichen Schutz hinzufügen@tie{}...} klicken, dann auf @samp{Challenge-Response hinzufügen} klicken und den Sicherheitsschlüssel aus der Auswahlliste wählen und den @samp{OK}-Knopf anklicken, um die Einrichtung abzuschließen."
4159 4160
4160#. type: cindex 4161#. type: cindex
4161#: doc/guix-cookbook.texi:2235 4162#: guix-git/doc/guix-cookbook.texi:2235
4162#, no-wrap 4163#, no-wrap
4163msgid "dynamic DNS, DDNS" 4164msgid "dynamic DNS, DDNS"
4164msgstr "dynamisches DNS, DDNS" 4165msgstr "dynamisches DNS, DDNS"
4165 4166
4166#. type: Plain text 4167#. type: Plain text
4167#: doc/guix-cookbook.texi:2245 4168#: guix-git/doc/guix-cookbook.texi:2245
4168msgid "If your @acronym{ISP, Internet Service Provider} only provides dynamic IP addresses, it can be useful to setup a dynamic @acronym{DNS, Domain Name System} (also known as @acronym{DDNS, Dynamic DNS}) service to associate a static host name to a public but dynamic (often changing) IP address. There are multiple existing services that can be used for this; in the following mcron job, @url{https://duckdns.org, DuckDNS} is used. It should also work with other dynamic DNS services that offer a similar interface to update the IP address, such as @url{https://freedns.afraid.org/}, with minor adjustments." 4169msgid "If your @acronym{ISP, Internet Service Provider} only provides dynamic IP addresses, it can be useful to setup a dynamic @acronym{DNS, Domain Name System} (also known as @acronym{DDNS, Dynamic DNS}) service to associate a static host name to a public but dynamic (often changing) IP address. There are multiple existing services that can be used for this; in the following mcron job, @url{https://duckdns.org, DuckDNS} is used. It should also work with other dynamic DNS services that offer a similar interface to update the IP address, such as @url{https://freedns.afraid.org/}, with minor adjustments."
4169msgstr "Wenn Sie von Ihrem Internetdienstanbieter nur dynamische IP-Adressen bekommen, aber einen statischen Rechnernamen möchten, können Sie einen Dienst für dynamisches @acronym{DNS, Domain Name System} einrichten (auch bekannt unter der Bezeichnung @acronym{DDNS, Dynamic DNS}). Dieser ordnet einem festen, „statischen“ Rechnernamen eine öffentliche, aber dynamische (oft wechselnde) IP-Adresse zu. Es gibt davon mehrere Anbieter; im folgenden mcron-Auftrag verwenden wir @url{https://duckdns.org, DuckDNS}. Er sollte auch mit anderen Anbietern von dynamischem DNS funktionieren, die eine ähnliche Schnittstelle zum Wechsel der IP-Adresse haben, etwa @url{https://freedns.afraid.org/}, wenn Sie Kleinigkeiten anpassen." 4170msgstr "Wenn Sie von Ihrem Internetdienstanbieter nur dynamische IP-Adressen bekommen, aber einen statischen Rechnernamen möchten, können Sie einen Dienst für dynamisches @acronym{DNS, Domain Name System} einrichten (auch bekannt unter der Bezeichnung @acronym{DDNS, Dynamic DNS}). Dieser ordnet einem festen, „statischen“ Rechnernamen eine öffentliche, aber dynamische (oft wechselnde) IP-Adresse zu. Es gibt davon mehrere Anbieter; im folgenden mcron-Auftrag verwenden wir @url{https://duckdns.org, DuckDNS}. Er sollte auch mit anderen Anbietern von dynamischem DNS funktionieren, die eine ähnliche Schnittstelle zum Wechsel der IP-Adresse haben, etwa @url{https://freedns.afraid.org/}, wenn Sie Kleinigkeiten anpassen."
4170 4171
4171#. type: Plain text 4172#. type: Plain text
4172#: doc/guix-cookbook.texi:2250 4173#: guix-git/doc/guix-cookbook.texi:2250
4173msgid "The mcron job is provided below, where @var{DOMAIN} should be substituted for your own domain prefix, and the DuckDNS provided token associated to @var{DOMAIN} added to the @file{/etc/duckdns/@var{DOMAIN}.token} file." 4174msgid "The mcron job is provided below, where @var{DOMAIN} should be substituted for your own domain prefix, and the DuckDNS provided token associated to @var{DOMAIN} added to the @file{/etc/duckdns/@var{DOMAIN}.token} file."
4174msgstr "So sieht der mcron-Auftrag dafür aus. Statt @var{DOMAIN} schreiben Sie Ihre eigene Domain und den von DuckDNS der @var{DOMAIN} zugeordneten Token in die Datei @file{/etc/duckdns/@var{DOMAIN}.token}." 4175msgstr "So sieht der mcron-Auftrag dafür aus. Statt @var{DOMAIN} schreiben Sie Ihre eigene Domain und den von DuckDNS der @var{DOMAIN} zugeordneten Token in die Datei @file{/etc/duckdns/@var{DOMAIN}.token}."
4175 4176
4176#. type: lisp 4177#. type: lisp
4177#: doc/guix-cookbook.texi:2270 4178#: guix-git/doc/guix-cookbook.texi:2270
4178#, no-wrap 4179#, no-wrap
4179msgid "" 4180msgid ""
4180"(define duckdns-job\n" 4181"(define duckdns-job\n"
@@ -4216,12 +4217,12 @@ msgstr ""
4216" #:user \"nobody\"))\n" 4217" #:user \"nobody\"))\n"
4217 4218
4218#. type: Plain text 4219#. type: Plain text
4219#: doc/guix-cookbook.texi:2274 4220#: guix-git/doc/guix-cookbook.texi:2274
4220msgid "The job then needs to be added to the list of mcron jobs for your system, using something like:" 4221msgid "The job then needs to be added to the list of mcron jobs for your system, using something like:"
4221msgstr "Der Auftrag muss in die Liste der mcron-Aufträge für Ihr System eingetragen werden, etwa so:" 4222msgstr "Der Auftrag muss in die Liste der mcron-Aufträge für Ihr System eingetragen werden, etwa so:"
4222 4223
4223#. type: lisp 4224#. type: lisp
4224#: doc/guix-cookbook.texi:2283 4225#: guix-git/doc/guix-cookbook.texi:2283
4225#, no-wrap 4226#, no-wrap
4226msgid "" 4227msgid ""
4227"(operating-system\n" 4228"(operating-system\n"
@@ -4241,17 +4242,17 @@ msgstr ""
4241" %base-services)))\n" 4242" %base-services)))\n"
4242 4243
4243#. type: Plain text 4244#. type: Plain text
4244#: doc/guix-cookbook.texi:2291 4245#: guix-git/doc/guix-cookbook.texi:2291
4245msgid "To connect to a Wireguard VPN server you need the kernel module to be loaded in memory and a package providing networking tools that support it (e.g. @code{wireguard-tools} or @code{network-manager})." 4246msgid "To connect to a Wireguard VPN server you need the kernel module to be loaded in memory and a package providing networking tools that support it (e.g. @code{wireguard-tools} or @code{network-manager})."
4246msgstr "Damit Sie sich mit einem Wireguard-VPN-Server verbinden können, müssen Sie dafür sorgen, dass die dafür nötigen Kernel-Module in den Speicher eingeladen werden und ein Paket bereitsteht, dass die unterstützenden Netzwerkwerkzeuge dazu enthält (z.B.@: @code{wireguard-tools} oder @code{network-manager})." 4247msgstr "Damit Sie sich mit einem Wireguard-VPN-Server verbinden können, müssen Sie dafür sorgen, dass die dafür nötigen Kernel-Module in den Speicher eingeladen werden und ein Paket bereitsteht, dass die unterstützenden Netzwerkwerkzeuge dazu enthält (z.B.@: @code{wireguard-tools} oder @code{network-manager})."
4247 4248
4248#. type: Plain text 4249#. type: Plain text
4249#: doc/guix-cookbook.texi:2295 4250#: guix-git/doc/guix-cookbook.texi:2295
4250msgid "Here is a configuration example for Linux-Libre < 5.6, where the module is out of tree and need to be loaded manually---following revisions of the kernel have it built-in and so don't need such configuration:" 4251msgid "Here is a configuration example for Linux-Libre < 5.6, where the module is out of tree and need to be loaded manually---following revisions of the kernel have it built-in and so don't need such configuration:"
4251msgstr "Hier ist ein Beispiel für eine Konfiguration für Linux-Libre < 5.6, wo sich das Modul noch nicht im Kernel-Quellbaum befindet („out of tree“) und daher von Hand geladen werden muss@tie{}– in nachfolgenden Kernelversionen ist das Modul bereits eingebaut und @emph{keine} derartige Konfiguration ist nötig." 4252msgstr "Hier ist ein Beispiel für eine Konfiguration für Linux-Libre < 5.6, wo sich das Modul noch nicht im Kernel-Quellbaum befindet („out of tree“) und daher von Hand geladen werden muss@tie{}– in nachfolgenden Kernelversionen ist das Modul bereits eingebaut und @emph{keine} derartige Konfiguration ist nötig."
4252 4253
4253#. type: lisp 4254#. type: lisp
4254#: doc/guix-cookbook.texi:2300 4255#: guix-git/doc/guix-cookbook.texi:2300
4255#, no-wrap 4256#, no-wrap
4256msgid "" 4257msgid ""
4257"(use-modules (gnu))\n" 4258"(use-modules (gnu))\n"
@@ -4265,7 +4266,7 @@ msgstr ""
4265"\n" 4266"\n"
4266 4267
4267#. type: lisp 4268#. type: lisp
4268#: doc/guix-cookbook.texi:2309 4269#: guix-git/doc/guix-cookbook.texi:2309
4269#, no-wrap 4270#, no-wrap
4270msgid "" 4271msgid ""
4271"(operating-system\n" 4272"(operating-system\n"
@@ -4287,44 +4288,44 @@ msgstr ""
4287" (kernel-loadable-modules (list wireguard-linux-compat)))\n" 4288" (kernel-loadable-modules (list wireguard-linux-compat)))\n"
4288 4289
4289#. type: Plain text 4290#. type: Plain text
4290#: doc/guix-cookbook.texi:2313 4291#: guix-git/doc/guix-cookbook.texi:2313
4291msgid "After reconfiguring and restarting your system you can either use Wireguard tools or NetworkManager to connect to a VPN server." 4292msgid "After reconfiguring and restarting your system you can either use Wireguard tools or NetworkManager to connect to a VPN server."
4292msgstr "Nachdem Sie Ihr System rekonfiguriert haben, können Sie dann entweder die Wireguard-Werkzeuge („Wireguard Tools“) oder NetworkManager benutzen, um sich mit einem VPN-Server zu verbinden." 4293msgstr "Nachdem Sie Ihr System rekonfiguriert haben, können Sie dann entweder die Wireguard-Werkzeuge („Wireguard Tools“) oder NetworkManager benutzen, um sich mit einem VPN-Server zu verbinden."
4293 4294
4294#. type: subsection 4295#. type: subsection
4295#: doc/guix-cookbook.texi:2314 4296#: guix-git/doc/guix-cookbook.texi:2314
4296#, no-wrap 4297#, no-wrap
4297msgid "Using Wireguard tools" 4298msgid "Using Wireguard tools"
4298msgstr "Die Wireguard Tools benutzen" 4299msgstr "Die Wireguard Tools benutzen"
4299 4300
4300#. type: Plain text 4301#. type: Plain text
4301#: doc/guix-cookbook.texi:2320 4302#: guix-git/doc/guix-cookbook.texi:2320
4302msgid "To test your Wireguard setup it is convenient to use @command{wg-quick}. Just give it a configuration file @command{wg-quick up ./wg0.conf}; or put that file in @file{/etc/wireguard} and run @command{wg-quick up wg0} instead." 4303msgid "To test your Wireguard setup it is convenient to use @command{wg-quick}. Just give it a configuration file @command{wg-quick up ./wg0.conf}; or put that file in @file{/etc/wireguard} and run @command{wg-quick up wg0} instead."
4303msgstr "Um Ihre Wireguard-Konfiguration zu testen, bietet es sich an, @command{wg-quick} zu benutzen. Übergeben Sie einfach eine Konfigurationsdatei @command{wg-quick up ./wg0.conf}. Sie können auch die Konfigurationsdatei in @file{/etc/wireguard} platzieren und dann stattdessen @command{wg-quick up wg0} ausführen." 4304msgstr "Um Ihre Wireguard-Konfiguration zu testen, bietet es sich an, @command{wg-quick} zu benutzen. Übergeben Sie einfach eine Konfigurationsdatei @command{wg-quick up ./wg0.conf}. Sie können auch die Konfigurationsdatei in @file{/etc/wireguard} platzieren und dann stattdessen @command{wg-quick up wg0} ausführen."
4304 4305
4305#. type: quotation 4306#. type: quotation
4306#: doc/guix-cookbook.texi:2324 4307#: guix-git/doc/guix-cookbook.texi:2324
4307msgid "Be warned that the author described this command as a: “[…] very quick and dirty bash script […]”." 4308msgid "Be warned that the author described this command as a: “[…] very quick and dirty bash script […]”."
4308msgstr "Seien Sie gewarnt, dass sein Autor diesen Befehl als ein schnell und unsauber geschriebenes Bash-Skript bezeichnet hat." 4309msgstr "Seien Sie gewarnt, dass sein Autor diesen Befehl als ein schnell und unsauber geschriebenes Bash-Skript bezeichnet hat."
4309 4310
4310#. type: subsection 4311#. type: subsection
4311#: doc/guix-cookbook.texi:2326 4312#: guix-git/doc/guix-cookbook.texi:2326
4312#, no-wrap 4313#, no-wrap
4313msgid "Using NetworkManager" 4314msgid "Using NetworkManager"
4314msgstr "NetworkManager benutzen" 4315msgstr "NetworkManager benutzen"
4315 4316
4316#. type: Plain text 4317#. type: Plain text
4317#: doc/guix-cookbook.texi:2334 4318#: guix-git/doc/guix-cookbook.texi:2334
4318msgid "Thanks to NetworkManager support for Wireguard we can connect to our VPN using @command{nmcli} command. Up to this point this guide assumes that you're using Network Manager service provided by @code{%desktop-services}. Ortherwise you need to adjust your services list to load @code{network-manager-service-type} and reconfigure your Guix system." 4319msgid "Thanks to NetworkManager support for Wireguard we can connect to our VPN using @command{nmcli} command. Up to this point this guide assumes that you're using Network Manager service provided by @code{%desktop-services}. Ortherwise you need to adjust your services list to load @code{network-manager-service-type} and reconfigure your Guix system."
4319msgstr "Dank der Unterstützung für Wireguard durch den NetworkManager können wir über den Befehl @command{nmcli} eine Verbindung mit unserem VPN herstellen. Bislang treffen wir in dieser Anleitung die Annahme, dass Sie den Network-Manager-Dienst aus den @code{%desktop-services} benutzen. Wenn Sie eine abweichende Konfiguration verwenden, müssen Sie unter Umständen Ihre @code{services}-Liste abändern, damit ein @code{network-manager-service-type} geladen wird, und Ihr Guix-System rekonfigurieren." 4320msgstr "Dank der Unterstützung für Wireguard durch den NetworkManager können wir über den Befehl @command{nmcli} eine Verbindung mit unserem VPN herstellen. Bislang treffen wir in dieser Anleitung die Annahme, dass Sie den Network-Manager-Dienst aus den @code{%desktop-services} benutzen. Wenn Sie eine abweichende Konfiguration verwenden, müssen Sie unter Umständen Ihre @code{services}-Liste abändern, damit ein @code{network-manager-service-type} geladen wird, und Ihr Guix-System rekonfigurieren."
4320 4321
4321#. type: Plain text 4322#. type: Plain text
4322#: doc/guix-cookbook.texi:2336 4323#: guix-git/doc/guix-cookbook.texi:2336
4323msgid "To import your VPN configuration execute nmcli import command:" 4324msgid "To import your VPN configuration execute nmcli import command:"
4324msgstr "Benutzen Sie den nmcli-Import-Befehl, um Ihre VPN-Konfiguration zu importieren." 4325msgstr "Benutzen Sie den nmcli-Import-Befehl, um Ihre VPN-Konfiguration zu importieren."
4325 4326
4326#. type: example 4327#. type: example
4327#: doc/guix-cookbook.texi:2340 4328#: guix-git/doc/guix-cookbook.texi:2340
4328#, no-wrap 4329#, no-wrap
4329msgid "" 4330msgid ""
4330"# nmcli connection import type wireguard file wg0.conf\n" 4331"# nmcli connection import type wireguard file wg0.conf\n"
@@ -4334,12 +4335,12 @@ msgstr ""
4334"Verbindung »wg0« (edbee261-aa5a-42db-b032-6c7757c60fde) erfolgreich hinzugefügt.\n" 4335"Verbindung »wg0« (edbee261-aa5a-42db-b032-6c7757c60fde) erfolgreich hinzugefügt.\n"
4335 4336
4336#. type: Plain text 4337#. type: Plain text
4337#: doc/guix-cookbook.texi:2345 4338#: guix-git/doc/guix-cookbook.texi:2345
4338msgid "This will create a configuration file in @file{/etc/NetworkManager/wg0.nmconnection}. Next connect to the Wireguard server:" 4339msgid "This will create a configuration file in @file{/etc/NetworkManager/wg0.nmconnection}. Next connect to the Wireguard server:"
4339msgstr "Dadurch wird eine Konfigurationsdatei in @file{/etc/NetworkManager/wg0.nmconnection} angelegt. Anschließend können Sie sich mit dem Wireguard-Server verbinden:" 4340msgstr "Dadurch wird eine Konfigurationsdatei in @file{/etc/NetworkManager/wg0.nmconnection} angelegt. Anschließend können Sie sich mit dem Wireguard-Server verbinden:"
4340 4341
4341#. type: example 4342#. type: example
4342#: doc/guix-cookbook.texi:2349 4343#: guix-git/doc/guix-cookbook.texi:2349
4343#, no-wrap 4344#, no-wrap
4344msgid "" 4345msgid ""
4345"$ nmcli connection up wg0\n" 4346"$ nmcli connection up wg0\n"
@@ -4349,45 +4350,45 @@ msgstr ""
4349"Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/6)\n" 4350"Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/6)\n"
4350 4351
4351#. type: Plain text 4352#. type: Plain text
4352#: doc/guix-cookbook.texi:2353 4353#: guix-git/doc/guix-cookbook.texi:2353
4353msgid "By default NetworkManager will connect automatically on system boot. To change that behaviour you need to edit your config:" 4354msgid "By default NetworkManager will connect automatically on system boot. To change that behaviour you need to edit your config:"
4354msgstr "Nach Voreinstellung wird sich NetworkManager automatisch beim Systemstart verbinden. Um dieses Verhalten zu ändern, müssen Sie Ihre Konfiguration bearbeiten:" 4355msgstr "Nach Voreinstellung wird sich NetworkManager automatisch beim Systemstart verbinden. Um dieses Verhalten zu ändern, müssen Sie Ihre Konfiguration bearbeiten:"
4355 4356
4356#. type: example 4357#. type: example
4357#: doc/guix-cookbook.texi:2356 4358#: guix-git/doc/guix-cookbook.texi:2356
4358#, no-wrap 4359#, no-wrap
4359msgid "# nmcli connection modify wg0 connection.autoconnect no\n" 4360msgid "# nmcli connection modify wg0 connection.autoconnect no\n"
4360msgstr "# nmcli connection modify wg0 connection.autoconnect no\n" 4361msgstr "# nmcli connection modify wg0 connection.autoconnect no\n"
4361 4362
4362#. type: Plain text 4363#. type: Plain text
4363#: doc/guix-cookbook.texi:2361 4364#: guix-git/doc/guix-cookbook.texi:2361
4364msgid "For more specific information about NetworkManager and wireguard @uref{https://blogs.gnome.org/thaller/2019/03/15/wireguard-in-networkmanager/,see this post by thaller}." 4365msgid "For more specific information about NetworkManager and wireguard @uref{https://blogs.gnome.org/thaller/2019/03/15/wireguard-in-networkmanager/,see this post by thaller}."
4365msgstr "Für Informationen speziell zu NetworkManager und Wireguard @uref{https://blogs.gnome.org/thaller/2019/03/15/wireguard-in-networkmanager/,siehe diesen Blogeintrag von thaller}." 4366msgstr "Für Informationen speziell zu NetworkManager und Wireguard @uref{https://blogs.gnome.org/thaller/2019/03/15/wireguard-in-networkmanager/,siehe diesen Blogeintrag von thaller}."
4366 4367
4367#. type: cindex 4368#. type: cindex
4368#: doc/guix-cookbook.texi:2364 4369#: guix-git/doc/guix-cookbook.texi:2364
4369#, no-wrap 4370#, no-wrap
4370msgid "wm" 4371msgid "wm"
4371msgstr "Fensterverwaltung (Window Manager, WM)" 4372msgstr "Fensterverwaltung (Window Manager, WM)"
4372 4373
4373#. type: cindex 4374#. type: cindex
4374#: doc/guix-cookbook.texi:2373 4375#: guix-git/doc/guix-cookbook.texi:2373
4375#, no-wrap 4376#, no-wrap
4376msgid "stumpwm" 4377msgid "stumpwm"
4377msgstr "stumpwm" 4378msgstr "stumpwm"
4378 4379
4379#. type: Plain text 4380#. type: Plain text
4380#: doc/guix-cookbook.texi:2378 4381#: guix-git/doc/guix-cookbook.texi:2378
4381msgid "You could install StumpWM with a Guix system by adding @code{stumpwm} and optionally @code{`(,stumpwm \"lib\")} packages to a system configuration file, e.g.@: @file{/etc/config.scm}." 4382msgid "You could install StumpWM with a Guix system by adding @code{stumpwm} and optionally @code{`(,stumpwm \"lib\")} packages to a system configuration file, e.g.@: @file{/etc/config.scm}."
4382msgstr "Sie können StumpWM mit einem Guix-System installieren, indem Sie die Pakete @code{stumpwm} und optional auch @code{`(,stumpwm \"lib\")} in eine Systemkonfigurationsdatei, z.B.@: @file{/etc/config.scm}, eintragen." 4383msgstr "Sie können StumpWM mit einem Guix-System installieren, indem Sie die Pakete @code{stumpwm} und optional auch @code{`(,stumpwm \"lib\")} in eine Systemkonfigurationsdatei, z.B.@: @file{/etc/config.scm}, eintragen."
4383 4384
4384#. type: Plain text 4385#. type: Plain text
4385#: doc/guix-cookbook.texi:2380 4386#: guix-git/doc/guix-cookbook.texi:2380
4386msgid "An example configuration can look like this:" 4387msgid "An example configuration can look like this:"
4387msgstr "Eine Beispielkonfiguration kann so aussehen:" 4388msgstr "Eine Beispielkonfiguration kann so aussehen:"
4388 4389
4389#. type: lisp 4390#. type: lisp
4390#: doc/guix-cookbook.texi:2384 4391#: guix-git/doc/guix-cookbook.texi:2384
4391#, no-wrap 4392#, no-wrap
4392msgid "" 4393msgid ""
4393"(use-modules (gnu))\n" 4394"(use-modules (gnu))\n"
@@ -4399,7 +4400,7 @@ msgstr ""
4399"\n" 4400"\n"
4400 4401
4401#. type: lisp 4402#. type: lisp
4402#: doc/guix-cookbook.texi:2389 4403#: guix-git/doc/guix-cookbook.texi:2389
4403#, no-wrap 4404#, no-wrap
4404msgid "" 4405msgid ""
4405"(operating-system\n" 4406"(operating-system\n"
@@ -4413,18 +4414,18 @@ msgstr ""
4413" %base-packages)))\n" 4414" %base-packages)))\n"
4414 4415
4415#. type: cindex 4416#. type: cindex
4416#: doc/guix-cookbook.texi:2391 4417#: guix-git/doc/guix-cookbook.texi:2391
4417#, no-wrap 4418#, no-wrap
4418msgid "stumpwm fonts" 4419msgid "stumpwm fonts"
4419msgstr "StumpWM-Schriftarten" 4420msgstr "StumpWM-Schriftarten"
4420 4421
4421#. type: Plain text 4422#. type: Plain text
4422#: doc/guix-cookbook.texi:2395 4423#: guix-git/doc/guix-cookbook.texi:2395
4423msgid "By default StumpWM uses X11 fonts, which could be small or pixelated on your system. You could fix this by installing StumpWM contrib Lisp module @code{sbcl-ttf-fonts}, adding it to Guix system packages:" 4424msgid "By default StumpWM uses X11 fonts, which could be small or pixelated on your system. You could fix this by installing StumpWM contrib Lisp module @code{sbcl-ttf-fonts}, adding it to Guix system packages:"
4424msgstr "Nach Voreinstellung benutzt StumpWM die Schriftarten von X11, die auf Ihrem System klein oder verpixelt erscheinen mögen. Sie können das Problem beheben, indem Sie das Lisp-Modul @code{sbcl-ttf-fonts} aus den Beiträgen zu StumpWM („StumpWM Contrib“) als Systempaket installieren:" 4425msgstr "Nach Voreinstellung benutzt StumpWM die Schriftarten von X11, die auf Ihrem System klein oder verpixelt erscheinen mögen. Sie können das Problem beheben, indem Sie das Lisp-Modul @code{sbcl-ttf-fonts} aus den Beiträgen zu StumpWM („StumpWM Contrib“) als Systempaket installieren:"
4425 4426
4426#. type: lisp 4427#. type: lisp
4427#: doc/guix-cookbook.texi:2399 4428#: guix-git/doc/guix-cookbook.texi:2399
4428#, no-wrap 4429#, no-wrap
4429msgid "" 4430msgid ""
4430"(use-modules (gnu))\n" 4431"(use-modules (gnu))\n"
@@ -4436,7 +4437,7 @@ msgstr ""
4436"\n" 4437"\n"
4437 4438
4438#. type: lisp 4439#. type: lisp
4439#: doc/guix-cookbook.texi:2404 4440#: guix-git/doc/guix-cookbook.texi:2404
4440#, no-wrap 4441#, no-wrap
4441msgid "" 4442msgid ""
4442"(operating-system\n" 4443"(operating-system\n"
@@ -4450,12 +4451,12 @@ msgstr ""
4450" sbcl-ttf-fonts font-dejavu %base-packages)))\n" 4451" sbcl-ttf-fonts font-dejavu %base-packages)))\n"
4451 4452
4452#. type: Plain text 4453#. type: Plain text
4453#: doc/guix-cookbook.texi:2408 4454#: guix-git/doc/guix-cookbook.texi:2408
4454msgid "Then you need to add the following code to a StumpWM configuration file @file{~/.stumpwm.d/init.lisp}:" 4455msgid "Then you need to add the following code to a StumpWM configuration file @file{~/.stumpwm.d/init.lisp}:"
4455msgstr "Den folgenden Code fügen Sie in die Konfigurationsdatei von StumpWM @file{~/.stumpwm.d/init.lisp} ein:" 4456msgstr "Den folgenden Code fügen Sie in die Konfigurationsdatei von StumpWM @file{~/.stumpwm.d/init.lisp} ein:"
4456 4457
4457#. type: lisp 4458#. type: lisp
4458#: doc/guix-cookbook.texi:2417 4459#: guix-git/doc/guix-cookbook.texi:2417
4459#, no-wrap 4460#, no-wrap
4460msgid "" 4461msgid ""
4461"(require :ttf-fonts)\n" 4462"(require :ttf-fonts)\n"
@@ -4475,28 +4476,28 @@ msgstr ""
4475" :subfamily \"Book\" :size 11))\n" 4476" :subfamily \"Book\" :size 11))\n"
4476 4477
4477#. type: cindex 4478#. type: cindex
4478#: doc/guix-cookbook.texi:2421 4479#: guix-git/doc/guix-cookbook.texi:2421
4479#, no-wrap 4480#, no-wrap
4480msgid "sessionlock" 4481msgid "sessionlock"
4481msgstr "Sitzungssperre" 4482msgstr "Sitzungssperre"
4482 4483
4483#. type: Plain text 4484#. type: Plain text
4484#: doc/guix-cookbook.texi:2427 4485#: guix-git/doc/guix-cookbook.texi:2427
4485msgid "Depending on your environment, locking the screen of your session might come built in or it might be something you have to set up yourself. If you use a desktop environment like GNOME or KDE, it's usually built in. If you use a plain window manager like StumpWM or EXWM, you might have to set it up yourself." 4486msgid "Depending on your environment, locking the screen of your session might come built in or it might be something you have to set up yourself. If you use a desktop environment like GNOME or KDE, it's usually built in. If you use a plain window manager like StumpWM or EXWM, you might have to set it up yourself."
4486msgstr "Abhängig von Ihrer Arbeitsumgebung ist das Sperren Ihres Bildschirms vielleicht bereits eingebaut. Wenn nicht, müssen Sie es selbst einrichten. Wenn Sie eine Arbeitsumgebung wie GNOME oder KDE benutzen, ist Sperren normalerweise bereits möglich. Wenn Sie einen einfachen Fensterverwalter („Window Manager“) wie StumpWM oder EXWM benutzen, müssen Sie es vielleicht selbst einrichten." 4487msgstr "Abhängig von Ihrer Arbeitsumgebung ist das Sperren Ihres Bildschirms vielleicht bereits eingebaut. Wenn nicht, müssen Sie es selbst einrichten. Wenn Sie eine Arbeitsumgebung wie GNOME oder KDE benutzen, ist Sperren normalerweise bereits möglich. Wenn Sie einen einfachen Fensterverwalter („Window Manager“) wie StumpWM oder EXWM benutzen, müssen Sie es vielleicht selbst einrichten."
4487 4488
4488#. type: Plain text 4489#. type: Plain text
4489#: doc/guix-cookbook.texi:2439 4490#: guix-git/doc/guix-cookbook.texi:2439
4490msgid "If you use Xorg, you can use the utility @uref{https://www.mankier.com/1/xss-lock, xss-lock} to lock the screen of your session. xss-lock is triggered by DPMS which since Xorg 1.8 is auto-detected and enabled if ACPI is also enabled at kernel runtime." 4491msgid "If you use Xorg, you can use the utility @uref{https://www.mankier.com/1/xss-lock, xss-lock} to lock the screen of your session. xss-lock is triggered by DPMS which since Xorg 1.8 is auto-detected and enabled if ACPI is also enabled at kernel runtime."
4491msgstr "Sofern Sie Xorg benutzen, können Sie mit dem Programm @uref{https://www.mankier.com/1/xss-lock, xss-lock} den Bildschirm für Ihre Sitzung sperren. xss-lock wird durch DPMS ausgelöst, was seit Xorg 1.8 automatisch aktiv ist, wenn zur Laufzeit des Kernels ACPI verfügbar ist." 4492msgstr "Sofern Sie Xorg benutzen, können Sie mit dem Programm @uref{https://www.mankier.com/1/xss-lock, xss-lock} den Bildschirm für Ihre Sitzung sperren. xss-lock wird durch DPMS ausgelöst, was seit Xorg 1.8 automatisch aktiv ist, wenn zur Laufzeit des Kernels ACPI verfügbar ist."
4492 4493
4493#. type: Plain text 4494#. type: Plain text
4494#: doc/guix-cookbook.texi:2442 4495#: guix-git/doc/guix-cookbook.texi:2442
4495msgid "To use xss-lock, you can simple execute it and put it into the background before you start your window manager from e.g. your @file{~/.xsession}:" 4496msgid "To use xss-lock, you can simple execute it and put it into the background before you start your window manager from e.g. your @file{~/.xsession}:"
4496msgstr "Um xss-lock zu benutzen, können Sie es einfach ausführen und in den Hintergrund versetzen, bevor Sie Ihren Fensterverwalter z.B.@: aus Ihrer @file{~/.xsession} heraus starten:" 4497msgstr "Um xss-lock zu benutzen, können Sie es einfach ausführen und in den Hintergrund versetzen, bevor Sie Ihren Fensterverwalter z.B.@: aus Ihrer @file{~/.xsession} heraus starten:"
4497 4498
4498#. type: example 4499#. type: example
4499#: doc/guix-cookbook.texi:2446 4500#: guix-git/doc/guix-cookbook.texi:2446
4500#, no-wrap 4501#, no-wrap
4501msgid "" 4502msgid ""
4502"xss-lock -- slock &\n" 4503"xss-lock -- slock &\n"
@@ -4506,17 +4507,17 @@ msgstr ""
4506"exec stumpwm\n" 4507"exec stumpwm\n"
4507 4508
4508#. type: Plain text 4509#. type: Plain text
4509#: doc/guix-cookbook.texi:2450 4510#: guix-git/doc/guix-cookbook.texi:2450
4510msgid "In this example, xss-lock uses @code{slock} to do the actual locking of the screen when it determines it's appropriate, like when you suspend your device." 4511msgid "In this example, xss-lock uses @code{slock} to do the actual locking of the screen when it determines it's appropriate, like when you suspend your device."
4511msgstr "In diesem Beispiel benutzt xss-lock das Programm @code{slock}, um die eigentliche Sperrung des Bildschirms durchzuführen, wenn es den Zeitpunkt dafür gekommen sieht, weil Sie z.B.@: Ihr Gerät in den Energiesparmodus versetzen." 4512msgstr "In diesem Beispiel benutzt xss-lock das Programm @code{slock}, um die eigentliche Sperrung des Bildschirms durchzuführen, wenn es den Zeitpunkt dafür gekommen sieht, weil Sie z.B.@: Ihr Gerät in den Energiesparmodus versetzen."
4512 4513
4513#. type: Plain text 4514#. type: Plain text
4514#: doc/guix-cookbook.texi:2454 4515#: guix-git/doc/guix-cookbook.texi:2454
4515msgid "For slock to be allowed to be a screen locker for the graphical session, it needs to be made setuid-root so it can authenticate users, and it needs a PAM service. This can be achieved by adding the following service to your @file{config.scm}:" 4516msgid "For slock to be allowed to be a screen locker for the graphical session, it needs to be made setuid-root so it can authenticate users, and it needs a PAM service. This can be achieved by adding the following service to your @file{config.scm}:"
4516msgstr "Damit slock aber überhaupt die Berechtigung dafür erteilt bekommt, Bildschirme grafischer Sitzungen zu sperren, muss es als setuid-root eingestellt sein, wodurch es Benutzer authentifizieren kann, außerdem braucht es Einstellungen im PAM-Dienst. Um das bereitzustellen, tragen Sie den folgenden Dienst in Ihre @file{config.scm} ein:" 4517msgstr "Damit slock aber überhaupt die Berechtigung dafür erteilt bekommt, Bildschirme grafischer Sitzungen zu sperren, muss es als setuid-root eingestellt sein, wodurch es Benutzer authentifizieren kann, außerdem braucht es Einstellungen im PAM-Dienst. Um das bereitzustellen, tragen Sie den folgenden Dienst in Ihre @file{config.scm} ein:"
4517 4518
4518#. type: lisp 4519#. type: lisp
4519#: doc/guix-cookbook.texi:2460 4520#: guix-git/doc/guix-cookbook.texi:2460
4520#, no-wrap 4521#, no-wrap
4521msgid "" 4522msgid ""
4522"(service screen-locker-services-type\n" 4523"(service screen-locker-services-type\n"
@@ -4530,115 +4531,115 @@ msgstr ""
4530" (program (file-append slock \"/bin/slock\"))))\n" 4531" (program (file-append slock \"/bin/slock\"))))\n"
4531 4532
4532#. type: Plain text 4533#. type: Plain text
4533#: doc/guix-cookbook.texi:2466 4534#: guix-git/doc/guix-cookbook.texi:2466
4534msgid "If you manually lock your screen, e.g. by directly calling slock when you want to lock your screen but not suspend it, it's a good idea to notify xss-lock about this so no confusion occurs. This can be done by executing @code{xset s activate} immediately before you execute slock." 4535msgid "If you manually lock your screen, e.g. by directly calling slock when you want to lock your screen but not suspend it, it's a good idea to notify xss-lock about this so no confusion occurs. This can be done by executing @code{xset s activate} immediately before you execute slock."
4535msgstr "Wenn Sie Ihren Bildschirm manuell sperren, z.B.@: indem Sie slock direkt aufrufen, wenn Sie Ihren Bildschirm sperren wollen, ohne in den Energiesparmodus zu wechseln, dann ist es eine gute Idee, das auch xss-lock mitzuteilen, indem Sie @code{xset s activate} direkt vor slock ausführen." 4536msgstr "Wenn Sie Ihren Bildschirm manuell sperren, z.B.@: indem Sie slock direkt aufrufen, wenn Sie Ihren Bildschirm sperren wollen, ohne in den Energiesparmodus zu wechseln, dann ist es eine gute Idee, das auch xss-lock mitzuteilen, indem Sie @code{xset s activate} direkt vor slock ausführen."
4536 4537
4537#. type: cindex 4538#. type: cindex
4538#: doc/guix-cookbook.texi:2469 4539#: guix-git/doc/guix-cookbook.texi:2469
4539#, no-wrap 4540#, no-wrap
4540msgid "linode, Linode" 4541msgid "linode, Linode"
4541msgstr "linode, Linode" 4542msgstr "linode, Linode"
4542 4543
4543#. type: Plain text 4544#. type: Plain text
4544#: doc/guix-cookbook.texi:2474 4545#: guix-git/doc/guix-cookbook.texi:2474
4545msgid "To run Guix on a server hosted by @uref{https://www.linode.com, Linode}, start with a recommended Debian server. We recommend using the default distro as a way to bootstrap Guix. Create your SSH keys." 4546msgid "To run Guix on a server hosted by @uref{https://www.linode.com, Linode}, start with a recommended Debian server. We recommend using the default distro as a way to bootstrap Guix. Create your SSH keys."
4546msgstr "Um Guix auf einem durch @uref{https://www.linode.com, Linode} bereitgestellten, „gehosteten“ Server zu benutzen, richten Sie zunächst einen dort empfohlenen Debian-Server ein. Unsere Empfehlung ist, zum Wechsel auf Guix mit der voreingestellten Distribution anzufangen. Erzeugen Sie Ihre SSH-Schlüssel." 4547msgstr "Um Guix auf einem durch @uref{https://www.linode.com, Linode} bereitgestellten, „gehosteten“ Server zu benutzen, richten Sie zunächst einen dort empfohlenen Debian-Server ein. Unsere Empfehlung ist, zum Wechsel auf Guix mit der voreingestellten Distribution anzufangen. Erzeugen Sie Ihre SSH-Schlüssel."
4547 4548
4548#. type: example 4549#. type: example
4549#: doc/guix-cookbook.texi:2477 4550#: guix-git/doc/guix-cookbook.texi:2477
4550#, no-wrap 4551#, no-wrap
4551msgid "ssh-keygen\n" 4552msgid "ssh-keygen\n"
4552msgstr "ssh-keygen\n" 4553msgstr "ssh-keygen\n"
4553 4554
4554#. type: Plain text 4555#. type: Plain text
4555#: doc/guix-cookbook.texi:2483 4556#: guix-git/doc/guix-cookbook.texi:2483
4556msgid "Be sure to add your SSH key for easy login to the remote server. This is trivially done via Linode's graphical interface for adding SSH keys. Go to your profile and click add SSH Key. Copy into it the output of:" 4557msgid "Be sure to add your SSH key for easy login to the remote server. This is trivially done via Linode's graphical interface for adding SSH keys. Go to your profile and click add SSH Key. Copy into it the output of:"
4557msgstr "Stellen Sie sicher, dass Ihr SSH-Schlüssel zur leichten Anmeldung auf dem entfernten Server eingerichtet ist. Das können Sie leicht mit Linodes grafischer Oberfläche zum Hinzufügen von SSH-Schlüsseln bewerkstelligen. Gehen Sie dazu in Ihr Profil und klicken Sie auf die Funktion zum Hinzufügen eines SSH-Schlüssels. Kopieren Sie dort hinein die Ausgabe von:" 4558msgstr "Stellen Sie sicher, dass Ihr SSH-Schlüssel zur leichten Anmeldung auf dem entfernten Server eingerichtet ist. Das können Sie leicht mit Linodes grafischer Oberfläche zum Hinzufügen von SSH-Schlüsseln bewerkstelligen. Gehen Sie dazu in Ihr Profil und klicken Sie auf die Funktion zum Hinzufügen eines SSH-Schlüssels. Kopieren Sie dort hinein die Ausgabe von:"
4558 4559
4559#. type: example 4560#. type: example
4560#: doc/guix-cookbook.texi:2486 4561#: guix-git/doc/guix-cookbook.texi:2486
4561#, no-wrap 4562#, no-wrap
4562msgid "cat ~/.ssh/<username>_rsa.pub\n" 4563msgid "cat ~/.ssh/<username>_rsa.pub\n"
4563msgstr "cat ~/.ssh/<benutzername>_rsa.pub\n" 4564msgstr "cat ~/.ssh/<benutzername>_rsa.pub\n"
4564 4565
4565#. type: Plain text 4566#. type: Plain text
4566#: doc/guix-cookbook.texi:2489 4567#: guix-git/doc/guix-cookbook.texi:2489
4567msgid "Power the Linode down." 4568msgid "Power the Linode down."
4568msgstr "Fahren Sie den Linode-Knoten herunter." 4569msgstr "Fahren Sie den Linode-Knoten herunter."
4569 4570
4570#. type: Plain text 4571#. type: Plain text
4571#: doc/guix-cookbook.texi:2493 4572#: guix-git/doc/guix-cookbook.texi:2493
4572msgid "In the Linode's Storage tab, resize the Debian disk to be smaller. 30 GB free space is recommended. Then click \"Add a disk\", and fill out the form with the following:" 4573msgid "In the Linode's Storage tab, resize the Debian disk to be smaller. 30 GB free space is recommended. Then click \"Add a disk\", and fill out the form with the following:"
4573msgstr "Im Karteireiter für „Storage“ bei Linode verkleinern Sie das Laufwerk für Debian. Empfohlen werden 30@tie{}GB freier Speicher. Klicken Sie anschließend auf „Add a disk“ und tragen Sie Folgendes in das Formular ein:" 4574msgstr "Im Karteireiter für „Storage“ bei Linode verkleinern Sie das Laufwerk für Debian. Empfohlen werden 30@tie{}GB freier Speicher. Klicken Sie anschließend auf „Add a disk“ und tragen Sie Folgendes in das Formular ein:"
4574 4575
4575#. type: itemize 4576#. type: itemize
4576#: doc/guix-cookbook.texi:2497 4577#: guix-git/doc/guix-cookbook.texi:2497
4577msgid "Label: \"Guix\"" 4578msgid "Label: \"Guix\""
4578msgstr "Label: \"Guix\"" 4579msgstr "Label: \"Guix\""
4579 4580
4580#. type: itemize 4581#. type: itemize
4581#: doc/guix-cookbook.texi:2500 4582#: guix-git/doc/guix-cookbook.texi:2500
4582msgid "Filesystem: ext4" 4583msgid "Filesystem: ext4"
4583msgstr "Filesystem: ext4" 4584msgstr "Filesystem: ext4"
4584 4585
4585#. type: itemize 4586#. type: itemize
4586#: doc/guix-cookbook.texi:2503 4587#: guix-git/doc/guix-cookbook.texi:2503
4587msgid "Set it to the remaining size" 4588msgid "Set it to the remaining size"
4588msgstr "Wählen Sie als Größe den übrigen Speicherplatz." 4589msgstr "Wählen Sie als Größe den übrigen Speicherplatz."
4589 4590
4590#. type: Plain text 4591#. type: Plain text
4591#: doc/guix-cookbook.texi:2508 4592#: guix-git/doc/guix-cookbook.texi:2508
4592msgid "In the Configurations tab, press \"Edit\" on the default Debian profile. Under \"Block Device Assignment\" click \"Add a Device\". It should be @file{/dev/sdc} and you can select the \"Guix\" disk. Save Changes." 4593msgid "In the Configurations tab, press \"Edit\" on the default Debian profile. Under \"Block Device Assignment\" click \"Add a Device\". It should be @file{/dev/sdc} and you can select the \"Guix\" disk. Save Changes."
4593msgstr "Drücken Sie im Karteireiter „Configurations“ auf „Edit“. Unter „Block Device Assignment“ klicken Sie auf „Add a Device“. Dort müsste @file{/dev/sdc} stehen; wählen Sie das Laufwerk „Guix“. Speichern Sie die Änderungen." 4594msgstr "Drücken Sie im Karteireiter „Configurations“ auf „Edit“. Unter „Block Device Assignment“ klicken Sie auf „Add a Device“. Dort müsste @file{/dev/sdc} stehen; wählen Sie das Laufwerk „Guix“. Speichern Sie die Änderungen."
4594 4595
4595#. type: Plain text 4596#. type: Plain text
4596#: doc/guix-cookbook.texi:2510 4597#: guix-git/doc/guix-cookbook.texi:2510
4597msgid "Now \"Add a Configuration\", with the following:" 4598msgid "Now \"Add a Configuration\", with the following:"
4598msgstr "Fügen Sie eine Konfiguration hinzu („Add a Configuration“) mit folgenden Eigenschaften:" 4599msgstr "Fügen Sie eine Konfiguration hinzu („Add a Configuration“) mit folgenden Eigenschaften:"
4599 4600
4600#. type: itemize 4601#. type: itemize
4601#: doc/guix-cookbook.texi:2513 4602#: guix-git/doc/guix-cookbook.texi:2513
4602msgid "Label: Guix" 4603msgid "Label: Guix"
4603msgstr "Label: Guix" 4604msgstr "Label: Guix"
4604 4605
4605#. type: itemize 4606#. type: itemize
4606#: doc/guix-cookbook.texi:2516 4607#: guix-git/doc/guix-cookbook.texi:2516
4607msgid "Kernel:GRUB 2 (it's at the bottom! This step is @b{IMPORTANT!})" 4608msgid "Kernel:GRUB 2 (it's at the bottom! This step is @b{IMPORTANT!})"
4608msgstr "Kernel: GRUB 2 (Das steht ganz unten! Dieser Schritt ist @b{WICHTIG!})" 4609msgstr "Kernel: GRUB 2 (Das steht ganz unten! Dieser Schritt ist @b{WICHTIG!})"
4609 4610
4610#. type: itemize 4611#. type: itemize
4611#: doc/guix-cookbook.texi:2519 4612#: guix-git/doc/guix-cookbook.texi:2519
4612msgid "Block device assignment:" 4613msgid "Block device assignment:"
4613msgstr "Block device assignment:" 4614msgstr "Block device assignment:"
4614 4615
4615#. type: itemize 4616#. type: itemize
4616#: doc/guix-cookbook.texi:2522 4617#: guix-git/doc/guix-cookbook.texi:2522
4617msgid "@file{/dev/sda}: Guix" 4618msgid "@file{/dev/sda}: Guix"
4618msgstr "@file{/dev/sda}: Guix" 4619msgstr "@file{/dev/sda}: Guix"
4619 4620
4620#. type: itemize 4621#. type: itemize
4621#: doc/guix-cookbook.texi:2525 4622#: guix-git/doc/guix-cookbook.texi:2525
4622msgid "@file{/dev/sdb}: swap" 4623msgid "@file{/dev/sdb}: swap"
4623msgstr "@file{/dev/sdb}: swap" 4624msgstr "@file{/dev/sdb}: swap"
4624 4625
4625#. type: itemize 4626#. type: itemize
4626#: doc/guix-cookbook.texi:2528 4627#: guix-git/doc/guix-cookbook.texi:2528
4627msgid "Root device: @file{/dev/sda}" 4628msgid "Root device: @file{/dev/sda}"
4628msgstr "Root device: @file{/dev/sda}" 4629msgstr "Root device: @file{/dev/sda}"
4629 4630
4630#. type: itemize 4631#. type: itemize
4631#: doc/guix-cookbook.texi:2531 4632#: guix-git/doc/guix-cookbook.texi:2531
4632msgid "Turn off all the filesystem/boot helpers" 4633msgid "Turn off all the filesystem/boot helpers"
4633msgstr "Schalten Sie alle Dateisystem-/Boot-Helfer ab." 4634msgstr "Schalten Sie alle Dateisystem-/Boot-Helfer ab."
4634 4635
4635#. type: Plain text 4636#. type: Plain text
4636#: doc/guix-cookbook.texi:2538 4637#: guix-git/doc/guix-cookbook.texi:2538
4637msgid "Now power it back up, booting with the Debian configuration. Once it's running, ssh to your server via @code{ssh root@@@var{<your-server-IP-here>}}. (You can find your server IP address in your Linode Summary section.) Now you can run the \"install guix from @pxref{Binary Installation,,, guix, GNU Guix}\" steps:" 4638msgid "Now power it back up, booting with the Debian configuration. Once it's running, ssh to your server via @code{ssh root@@@var{<your-server-IP-here>}}. (You can find your server IP address in your Linode Summary section.) Now you can run the \"install guix from @pxref{Binary Installation,,, guix, GNU Guix}\" steps:"
4638msgstr "Starten Sie den Knoten jetzt wieder mit der Debian-Konfiguration. Sobald er wieder läuft, verbinden Sie sich mittels SSH zu Ihrem Server über @code{ssh root@@@var{<IP-Adresse-Ihres-Servers>}}. (Die IP-Adresse Ihres Servers finden Sie in Linodes Übersichtsseite bei „Summary“.) Nun können Sie mit den Schritten aus dem @ref{Aus Binärdatei installieren,,, guix.de, Referenzhandbuch zu GNU Guix} weitermachen:" 4639msgstr "Starten Sie den Knoten jetzt wieder mit der Debian-Konfiguration. Sobald er wieder läuft, verbinden Sie sich mittels SSH zu Ihrem Server über @code{ssh root@@@var{<IP-Adresse-Ihres-Servers>}}. (Die IP-Adresse Ihres Servers finden Sie in Linodes Übersichtsseite bei „Summary“.) Nun können Sie mit den Schritten aus dem @ref{Aus Binärdatei installieren,,, guix.de, Referenzhandbuch zu GNU Guix} weitermachen:"
4639 4640
4640#. type: example 4641#. type: example
4641#: doc/guix-cookbook.texi:2546 4642#: guix-git/doc/guix-cookbook.texi:2546
4642#, no-wrap 4643#, no-wrap
4643msgid "" 4644msgid ""
4644"sudo apt-get install gpg\n" 4645"sudo apt-get install gpg\n"
@@ -4656,12 +4657,12 @@ msgstr ""
4656"guix pull\n" 4657"guix pull\n"
4657 4658
4658#. type: Plain text 4659#. type: Plain text
4659#: doc/guix-cookbook.texi:2550 4660#: guix-git/doc/guix-cookbook.texi:2550
4660msgid "Now it's time to write out a config for the server. The key information is below. Save the resulting file as @file{guix-config.scm}." 4661msgid "Now it's time to write out a config for the server. The key information is below. Save the resulting file as @file{guix-config.scm}."
4661msgstr "Nun wird es Zeit, eine Konfiguration für den Server anzulegen. Die wichtigsten Informationen finden Sie hierunter. Speichern Sie die Konfiguration als @file{guix-config.scm}." 4662msgstr "Nun wird es Zeit, eine Konfiguration für den Server anzulegen. Die wichtigsten Informationen finden Sie hierunter. Speichern Sie die Konfiguration als @file{guix-config.scm}."
4662 4663
4663#. type: lisp 4664#. type: lisp
4664#: doc/guix-cookbook.texi:2560 4665#: guix-git/doc/guix-cookbook.texi:2560
4665#, no-wrap 4666#, no-wrap
4666msgid "" 4667msgid ""
4667"(use-modules (gnu)\n" 4668"(use-modules (gnu)\n"
@@ -4685,7 +4686,7 @@ msgstr ""
4685"\n" 4686"\n"
4686 4687
4687#. type: lisp 4688#. type: lisp
4688#: doc/guix-cookbook.texi:2577 4689#: guix-git/doc/guix-cookbook.texi:2577
4689#, no-wrap 4690#, no-wrap
4690msgid "" 4691msgid ""
4691"(operating-system\n" 4692"(operating-system\n"
@@ -4726,7 +4727,7 @@ msgstr ""
4726"\n" 4727"\n"
4727 4728
4728#. type: lisp 4729#. type: lisp
4729#: doc/guix-cookbook.texi:2580 4730#: guix-git/doc/guix-cookbook.texi:2580
4730#, no-wrap 4731#, no-wrap
4731msgid "" 4732msgid ""
4732" (swap-devices (list \"/dev/sdb\"))\n" 4733" (swap-devices (list \"/dev/sdb\"))\n"
@@ -4736,7 +4737,7 @@ msgstr ""
4736"\n" 4737"\n"
4737 4738
4738#. type: lisp 4739#. type: lisp
4739#: doc/guix-cookbook.texi:2584 4740#: guix-git/doc/guix-cookbook.texi:2584
4740#, no-wrap 4741#, no-wrap
4741msgid "" 4742msgid ""
4742" (initrd-modules (cons \"virtio_scsi\" ; Needed to find the disk\n" 4743" (initrd-modules (cons \"virtio_scsi\" ; Needed to find the disk\n"
@@ -4748,7 +4749,7 @@ msgstr ""
4748"\n" 4749"\n"
4749 4750
4750#. type: lisp 4751#. type: lisp
4751#: doc/guix-cookbook.texi:2593 4752#: guix-git/doc/guix-cookbook.texi:2593
4752#, no-wrap 4753#, no-wrap
4753msgid "" 4754msgid ""
4754" (users (cons (user-account\n" 4755" (users (cons (user-account\n"
@@ -4772,7 +4773,7 @@ msgstr ""
4772"\n" 4773"\n"
4773 4774
4774#. type: lisp 4775#. type: lisp
4775#: doc/guix-cookbook.texi:2596 4776#: guix-git/doc/guix-cookbook.texi:2596
4776#, no-wrap 4777#, no-wrap
4777msgid "" 4778msgid ""
4778" (packages (cons* openssh-sans-x\n" 4779" (packages (cons* openssh-sans-x\n"
@@ -4784,7 +4785,7 @@ msgstr ""
4784"\n" 4785"\n"
4785 4786
4786#. type: lisp 4787#. type: lisp
4787#: doc/guix-cookbook.texi:2607 4788#: guix-git/doc/guix-cookbook.texi:2607
4788#, no-wrap 4789#, no-wrap
4789msgid "" 4790msgid ""
4790" (services (cons*\n" 4791" (services (cons*\n"
@@ -4810,12 +4811,12 @@ msgstr ""
4810" %base-services)))\n" 4811" %base-services)))\n"
4811 4812
4812#. type: Plain text 4813#. type: Plain text
4813#: doc/guix-cookbook.texi:2610 4814#: guix-git/doc/guix-cookbook.texi:2610
4814msgid "Replace the following fields in the above configuration:" 4815msgid "Replace the following fields in the above configuration:"
4815msgstr "Ersetzen Sie in der obigen Konfiguration aber folgende Felder:" 4816msgstr "Ersetzen Sie in der obigen Konfiguration aber folgende Felder:"
4816 4817
4817#. type: lisp 4818#. type: lisp
4818#: doc/guix-cookbook.texi:2618 4819#: guix-git/doc/guix-cookbook.texi:2618
4819#, no-wrap 4820#, no-wrap
4820msgid "" 4821msgid ""
4821"(host-name \"my-server\") ; replace with your server name\n" 4822"(host-name \"my-server\") ; replace with your server name\n"
@@ -4835,17 +4836,17 @@ msgstr ""
4835"(\"root\" ,(local-file \"janedoe_rsa.pub\")) ; Ersetzen durch Ihren SSH-Schlüssel\n" 4836"(\"root\" ,(local-file \"janedoe_rsa.pub\")) ; Ersetzen durch Ihren SSH-Schlüssel\n"
4836 4837
4837#. type: Plain text 4838#. type: Plain text
4838#: doc/guix-cookbook.texi:2625 4839#: guix-git/doc/guix-cookbook.texi:2625
4839msgid "The last line in the above example lets you log into the server as root and set the initial root password (see the note at the end of this recipe about root login). After you have done this, you may delete that line from your configuration and reconfigure to prevent root login." 4840msgid "The last line in the above example lets you log into the server as root and set the initial root password (see the note at the end of this recipe about root login). After you have done this, you may delete that line from your configuration and reconfigure to prevent root login."
4840msgstr "Durch die letzte Zeile im obigen Beispiel können Sie sich als Administratornutzer root auf dem Server anmelden und das anfängliche Passwort für root festlegen (lesen Sie den Hinweis zur Anmeldung als root am Ende dieses Rezepts). Nachdem das erledigt ist, können Sie die Zeile aus Ihrer Konfiguration löschen und Ihr System rekonfigurieren, damit eine Anmeldung als root nicht mehr möglich ist." 4841msgstr "Durch die letzte Zeile im obigen Beispiel können Sie sich als Administratornutzer root auf dem Server anmelden und das anfängliche Passwort für root festlegen (lesen Sie den Hinweis zur Anmeldung als root am Ende dieses Rezepts). Nachdem das erledigt ist, können Sie die Zeile aus Ihrer Konfiguration löschen und Ihr System rekonfigurieren, damit eine Anmeldung als root nicht mehr möglich ist."
4841 4842
4842#. type: Plain text 4843#. type: Plain text
4843#: doc/guix-cookbook.texi:2630 4844#: guix-git/doc/guix-cookbook.texi:2630
4844msgid "Copy your ssh public key (eg: @file{~/.ssh/id_rsa.pub}) as @file{@var{<your-username-here>}_rsa.pub} and put @file{guix-config.scm} in the same directory. In a new terminal run these commands." 4845msgid "Copy your ssh public key (eg: @file{~/.ssh/id_rsa.pub}) as @file{@var{<your-username-here>}_rsa.pub} and put @file{guix-config.scm} in the same directory. In a new terminal run these commands."
4845msgstr "Kopieren Sie Ihren öffentlichen SSH-Schlüssel (z.B.@: @file{~/.ssh/id_rsa.pub}) in die Datei @file{@var{<Ihr-Benutzername>}_rsa.pub} und Ihre @file{guix-config.scm} ins selbe Verzeichnis. Führen Sie dann diese Befehle in einem neuen Terminal aus:" 4846msgstr "Kopieren Sie Ihren öffentlichen SSH-Schlüssel (z.B.@: @file{~/.ssh/id_rsa.pub}) in die Datei @file{@var{<Ihr-Benutzername>}_rsa.pub} und Ihre @file{guix-config.scm} ins selbe Verzeichnis. Führen Sie dann diese Befehle in einem neuen Terminal aus:"
4846 4847
4847#. type: example 4848#. type: example
4848#: doc/guix-cookbook.texi:2635 4849#: guix-git/doc/guix-cookbook.texi:2635
4849#, no-wrap 4850#, no-wrap
4850msgid "" 4851msgid ""
4851"sftp root@@<remote server ip address>\n" 4852"sftp root@@<remote server ip address>\n"
@@ -4857,12 +4858,12 @@ msgstr ""
4857"put /pfad/mit/dateien/guix-config.scm .\n" 4858"put /pfad/mit/dateien/guix-config.scm .\n"
4858 4859
4859#. type: Plain text 4860#. type: Plain text
4860#: doc/guix-cookbook.texi:2638 4861#: guix-git/doc/guix-cookbook.texi:2638
4861msgid "In your first terminal, mount the guix drive:" 4862msgid "In your first terminal, mount the guix drive:"
4862msgstr "Binden Sie mit Ihrem ersten Terminal das Guix-Laufwerk ein:" 4863msgstr "Binden Sie mit Ihrem ersten Terminal das Guix-Laufwerk ein:"
4863 4864
4864#. type: example 4865#. type: example
4865#: doc/guix-cookbook.texi:2642 4866#: guix-git/doc/guix-cookbook.texi:2642
4866#, no-wrap 4867#, no-wrap
4867msgid "" 4868msgid ""
4868"mkdir /mnt/guix\n" 4869"mkdir /mnt/guix\n"
@@ -4872,12 +4873,12 @@ msgstr ""
4872"mount /dev/sdc /mnt/guix\n" 4873"mount /dev/sdc /mnt/guix\n"
4873 4874
4874#. type: Plain text 4875#. type: Plain text
4875#: doc/guix-cookbook.texi:2647 4876#: guix-git/doc/guix-cookbook.texi:2647
4876msgid "Due to the way we set up the bootloader section of the guix-config.scm, only the grub configuration file will be installed. So, we need to copy over some of the other GRUB stuff already installed on the Debian system:" 4877msgid "Due to the way we set up the bootloader section of the guix-config.scm, only the grub configuration file will be installed. So, we need to copy over some of the other GRUB stuff already installed on the Debian system:"
4877msgstr "Aufgrund der Art und Weise, wie wir den Bootloader-Abschnitt von @file{guix-config.scm} oben festgelegt haben, installieren wir GRUB nicht vollständig. Stattdessen installieren wir nur unsere GRUB-Konfigurationsdatei. Daher müssen wir ein bisschen von den anderen GRUB-Einstellungen vom Debian-System kopieren:" 4878msgstr "Aufgrund der Art und Weise, wie wir den Bootloader-Abschnitt von @file{guix-config.scm} oben festgelegt haben, installieren wir GRUB nicht vollständig. Stattdessen installieren wir nur unsere GRUB-Konfigurationsdatei. Daher müssen wir ein bisschen von den anderen GRUB-Einstellungen vom Debian-System kopieren:"
4878 4879
4879#. type: example 4880#. type: example
4880#: doc/guix-cookbook.texi:2651 4881#: guix-git/doc/guix-cookbook.texi:2651
4881#, no-wrap 4882#, no-wrap
4882msgid "" 4883msgid ""
4883"mkdir -p /mnt/guix/boot/grub\n" 4884"mkdir -p /mnt/guix/boot/grub\n"
@@ -4887,28 +4888,28 @@ msgstr ""
4887"cp -r /boot/grub/* /mnt/guix/boot/grub/\n" 4888"cp -r /boot/grub/* /mnt/guix/boot/grub/\n"
4888 4889
4889#. type: Plain text 4890#. type: Plain text
4890#: doc/guix-cookbook.texi:2654 4891#: guix-git/doc/guix-cookbook.texi:2654
4891msgid "Now initialize the Guix installation:" 4892msgid "Now initialize the Guix installation:"
4892msgstr "Initialisieren Sie nun die Guix-Installation:" 4893msgstr "Initialisieren Sie nun die Guix-Installation:"
4893 4894
4894#. type: example 4895#. type: example
4895#: doc/guix-cookbook.texi:2657 4896#: guix-git/doc/guix-cookbook.texi:2657
4896#, no-wrap 4897#, no-wrap
4897msgid "guix system init guix-config.scm /mnt/guix\n" 4898msgid "guix system init guix-config.scm /mnt/guix\n"
4898msgstr "guix system init guix-config.scm /mnt/guix\n" 4899msgstr "guix system init guix-config.scm /mnt/guix\n"
4899 4900
4900#. type: Plain text 4901#. type: Plain text
4901#: doc/guix-cookbook.texi:2661 4902#: guix-git/doc/guix-cookbook.texi:2661
4902msgid "Ok, power it down! Now from the Linode console, select boot and select \"Guix\"." 4903msgid "Ok, power it down! Now from the Linode console, select boot and select \"Guix\"."
4903msgstr "OK, fahren Sie Ihn jetzt herunter! Von der Linode-Konsole wählen Sie Booten aus und wählen „Guix“." 4904msgstr "OK, fahren Sie Ihn jetzt herunter! Von der Linode-Konsole wählen Sie Booten aus und wählen „Guix“."
4904 4905
4905#. type: Plain text 4906#. type: Plain text
4906#: doc/guix-cookbook.texi:2664 4907#: guix-git/doc/guix-cookbook.texi:2664
4907msgid "Once it boots, you should be able to log in via SSH! (The server config will have changed though.) You may encounter an error like:" 4908msgid "Once it boots, you should be able to log in via SSH! (The server config will have changed though.) You may encounter an error like:"
4908msgstr "Sobald es gestartet ist, sollten Sie sich über SSH anmelden können! (Allerdings wird sich die Serverkonfiguration geändert haben.) Ihnen könnte eine Fehlermeldung wie diese hier gezeigt werden:" 4909msgstr "Sobald es gestartet ist, sollten Sie sich über SSH anmelden können! (Allerdings wird sich die Serverkonfiguration geändert haben.) Ihnen könnte eine Fehlermeldung wie diese hier gezeigt werden:"
4909 4910
4910#. type: example 4911#. type: example
4911#: doc/guix-cookbook.texi:2680 4912#: guix-git/doc/guix-cookbook.texi:2680
4912#, no-wrap 4913#, no-wrap
4913msgid "" 4914msgid ""
4914"$ ssh root@@<server ip address>\n" 4915"$ ssh root@@<server ip address>\n"
@@ -4942,17 +4943,17 @@ msgstr ""
4942"Host key verification failed.\n" 4943"Host key verification failed.\n"
4943 4944
4944#. type: Plain text 4945#. type: Plain text
4945#: doc/guix-cookbook.texi:2684 4946#: guix-git/doc/guix-cookbook.texi:2684
4946msgid "Either delete @file{~/.ssh/known_hosts} file, or delete the offending line starting with your server IP address." 4947msgid "Either delete @file{~/.ssh/known_hosts} file, or delete the offending line starting with your server IP address."
4947msgstr "Löschen Sie entweder die ganze Datei @file{~/.ssh/known_hosts} oder nur die ungültig gewordene Zeile, die mit der IP-Adresse Ihres Servers beginnt." 4948msgstr "Löschen Sie entweder die ganze Datei @file{~/.ssh/known_hosts} oder nur die ungültig gewordene Zeile, die mit der IP-Adresse Ihres Servers beginnt."
4948 4949
4949#. type: Plain text 4950#. type: Plain text
4950#: doc/guix-cookbook.texi:2686 4951#: guix-git/doc/guix-cookbook.texi:2686
4951msgid "Be sure to set your password and root's password." 4952msgid "Be sure to set your password and root's password."
4952msgstr "Denken Sie daran, Ihr Passwort und das Passwort des Administratornutzers root festzulegen." 4953msgstr "Denken Sie daran, Ihr Passwort und das Passwort des Administratornutzers root festzulegen."
4953 4954
4954#. type: example 4955#. type: example
4955#: doc/guix-cookbook.texi:2691 4956#: guix-git/doc/guix-cookbook.texi:2691
4956#, no-wrap 4957#, no-wrap
4957msgid "" 4958msgid ""
4958"ssh root@@<remote ip address>\n" 4959"ssh root@@<remote ip address>\n"
@@ -4964,43 +4965,43 @@ msgstr ""
4964"passwd <benutzername> ; für das Passwort des normalen Benutzers\n" 4965"passwd <benutzername> ; für das Passwort des normalen Benutzers\n"
4965 4966
4966#. type: Plain text 4967#. type: Plain text
4967#: doc/guix-cookbook.texi:2698 4968#: guix-git/doc/guix-cookbook.texi:2698
4968msgid "You may not be able to run the above commands at this point. If you have issues remotely logging into your linode box via SSH, then you may still need to set your root and user password initially by clicking on the ``Launch Console'' option in your linode. Choose the ``Glish'' instead of ``Weblish''. Now you should be able to ssh into the machine." 4969msgid "You may not be able to run the above commands at this point. If you have issues remotely logging into your linode box via SSH, then you may still need to set your root and user password initially by clicking on the ``Launch Console'' option in your linode. Choose the ``Glish'' instead of ``Weblish''. Now you should be able to ssh into the machine."
4969msgstr "Es kann sein, dass die obigen Befehle noch nicht funktionieren. Wenn Sie Probleme haben, sich aus der Ferne über SSH bei Ihrer Linode-Kiste anzumelden, dann müssen Sie vielleicht Ihr anfängliches Passwort für root und das normale Benutzerkonto festlegen, indem Sie auf die „Launch Console“-Option in Ihrer Linode klicken. Wählen Sie „Glish“ statt „Weblish“. Jetzt sollten Sie über SSH in Ihre Maschine ’reinkommen." 4970msgstr "Es kann sein, dass die obigen Befehle noch nicht funktionieren. Wenn Sie Probleme haben, sich aus der Ferne über SSH bei Ihrer Linode-Kiste anzumelden, dann müssen Sie vielleicht Ihr anfängliches Passwort für root und das normale Benutzerkonto festlegen, indem Sie auf die „Launch Console“-Option in Ihrer Linode klicken. Wählen Sie „Glish“ statt „Weblish“. Jetzt sollten Sie über SSH in Ihre Maschine ’reinkommen."
4970 4971
4971#. type: Plain text 4972#. type: Plain text
4972#: doc/guix-cookbook.texi:2702 4973#: guix-git/doc/guix-cookbook.texi:2702
4973msgid "Hooray! At this point you can shut down the server, delete the Debian disk, and resize the Guix to the rest of the size. Congratulations!" 4974msgid "Hooray! At this point you can shut down the server, delete the Debian disk, and resize the Guix to the rest of the size. Congratulations!"
4974msgstr "Hurra! Nun können Sie den Server herunterfahren, die Debian-Platte löschen und Guix auf den gesamten verfügbaren Speicher erweitern. Herzlichen Glückwunsch!" 4975msgstr "Hurra! Nun können Sie den Server herunterfahren, die Debian-Platte löschen und Guix auf den gesamten verfügbaren Speicher erweitern. Herzlichen Glückwunsch!"
4975 4976
4976#. type: Plain text 4977#. type: Plain text
4977#: doc/guix-cookbook.texi:2707 4978#: guix-git/doc/guix-cookbook.texi:2707
4978msgid "By the way, if you save it as a disk image right at this point, you'll have an easy time spinning up new Guix images! You may need to down-size the Guix image to 6144MB, to save it as an image. Then you can resize it again to the max size." 4979msgid "By the way, if you save it as a disk image right at this point, you'll have an easy time spinning up new Guix images! You may need to down-size the Guix image to 6144MB, to save it as an image. Then you can resize it again to the max size."
4979msgstr "Übrigens, wenn Sie das Ergebnis jetzt als „Disk Image“ speichern, können Sie neue Guix-Abbilder von da an leicht einrichten! Vielleicht müssen Sie die Größe des Guix-Abbilds auf 6144MB verkleinern, um es als Abbild speichern zu können. Danach können Sie es wieder auf die Maximalgröße vergrößern." 4980msgstr "Übrigens, wenn Sie das Ergebnis jetzt als „Disk Image“ speichern, können Sie neue Guix-Abbilder von da an leicht einrichten! Vielleicht müssen Sie die Größe des Guix-Abbilds auf 6144MB verkleinern, um es als Abbild speichern zu können. Danach können Sie es wieder auf die Maximalgröße vergrößern."
4980 4981
4981#. type: cindex 4982#. type: cindex
4982#: doc/guix-cookbook.texi:2710 4983#: guix-git/doc/guix-cookbook.texi:2710
4983#, no-wrap 4984#, no-wrap
4984msgid "kimsufi, Kimsufi, OVH" 4985msgid "kimsufi, Kimsufi, OVH"
4985msgstr "kimsufi, Kimsufi, OVH" 4986msgstr "kimsufi, Kimsufi, OVH"
4986 4987
4987#. type: Plain text 4988#. type: Plain text
4988#: doc/guix-cookbook.texi:2714 4989#: guix-git/doc/guix-cookbook.texi:2714
4989msgid "To run Guix on a server hosted by @uref{https://www.kimsufi.com/, Kimsufi}, click on the netboot tab then select rescue64-pro and restart." 4990msgid "To run Guix on a server hosted by @uref{https://www.kimsufi.com/, Kimsufi}, click on the netboot tab then select rescue64-pro and restart."
4990msgstr "Um Guix auf einem von @uref{https://www.kimsufi.com/, Kimsufi} gemieteten Server einzusetzen, klicken Sie auf den Karteireiter zu Netboot und wählen Sie dann rescue64-pro aus und starten Sie neu." 4991msgstr "Um Guix auf einem von @uref{https://www.kimsufi.com/, Kimsufi} gemieteten Server einzusetzen, klicken Sie auf den Karteireiter zu Netboot und wählen Sie dann rescue64-pro aus und starten Sie neu."
4991 4992
4992#. type: Plain text 4993#. type: Plain text
4993#: doc/guix-cookbook.texi:2716 4994#: guix-git/doc/guix-cookbook.texi:2716
4994msgid "OVH will email you the credentials required to ssh into a Debian system." 4995msgid "OVH will email you the credentials required to ssh into a Debian system."
4995msgstr "OVH wird Ihnen eine E-Mail mit den Anmeldedaten schicken, damit Sie sich über SSH auf ein Debian-System verbinden können." 4996msgstr "OVH wird Ihnen eine E-Mail mit den Anmeldedaten schicken, damit Sie sich über SSH auf ein Debian-System verbinden können."
4996 4997
4997#. type: Plain text 4998#. type: Plain text
4998#: doc/guix-cookbook.texi:2719 4999#: guix-git/doc/guix-cookbook.texi:2719
4999msgid "Now you can run the \"install guix from @pxref{Binary Installation,,, guix, GNU Guix}\" steps:" 5000msgid "Now you can run the \"install guix from @pxref{Binary Installation,,, guix, GNU Guix}\" steps:"
5000msgstr "Folgen Sie nun den Anweisungen zur Installation von Guix aus einer Binärdatei (siehe @ref{Aus Binärdatei installieren,,, guix.de, Referenzhandbuch zu GNU Guix}):" 5001msgstr "Folgen Sie nun den Anweisungen zur Installation von Guix aus einer Binärdatei (siehe @ref{Aus Binärdatei installieren,,, guix.de, Referenzhandbuch zu GNU Guix}):"
5001 5002
5002#. type: example 5003#. type: example
5003#: doc/guix-cookbook.texi:2725 5004#: guix-git/doc/guix-cookbook.texi:2725
5004#, no-wrap 5005#, no-wrap
5005msgid "" 5006msgid ""
5006"wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh\n" 5007"wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh\n"
@@ -5014,12 +5015,12 @@ msgstr ""
5014"guix pull\n" 5015"guix pull\n"
5015 5016
5016#. type: Plain text 5017#. type: Plain text
5017#: doc/guix-cookbook.texi:2728 5018#: guix-git/doc/guix-cookbook.texi:2728
5018msgid "Partition the drives and format them, first stop the raid array:" 5019msgid "Partition the drives and format them, first stop the raid array:"
5019msgstr "Partitionieren Sie nun die Laufwerke und formatieren Sie sie, aber erst nachdem Sie das RAID-Array angehalten haben:" 5020msgstr "Partitionieren Sie nun die Laufwerke und formatieren Sie sie, aber erst nachdem Sie das RAID-Array angehalten haben:"
5020 5021
5021#. type: example 5022#. type: example
5022#: doc/guix-cookbook.texi:2732 5023#: guix-git/doc/guix-cookbook.texi:2732
5023#, no-wrap 5024#, no-wrap
5024msgid "" 5025msgid ""
5025"mdadm --stop /dev/md127\n" 5026"mdadm --stop /dev/md127\n"
@@ -5029,12 +5030,12 @@ msgstr ""
5029"mdadm --zero-superblock /dev/sda2 /dev/sdb2\n" 5030"mdadm --zero-superblock /dev/sda2 /dev/sdb2\n"
5030 5031
5031#. type: Plain text 5032#. type: Plain text
5032#: doc/guix-cookbook.texi:2736 5033#: guix-git/doc/guix-cookbook.texi:2736
5033msgid "Then wipe the disks and set up the partitions, we will create a RAID 1 array." 5034msgid "Then wipe the disks and set up the partitions, we will create a RAID 1 array."
5034msgstr "Löschen Sie die Laufwerksinhalte und richten Sie die Partitionen ein; wir erzeugen ein RAID-1-Array." 5035msgstr "Löschen Sie die Laufwerksinhalte und richten Sie die Partitionen ein; wir erzeugen ein RAID-1-Array."
5035 5036
5036#. type: example 5037#. type: example
5037#: doc/guix-cookbook.texi:2740 5038#: guix-git/doc/guix-cookbook.texi:2740
5038#, no-wrap 5039#, no-wrap
5039msgid "" 5040msgid ""
5040"wipefs -a /dev/sda\n" 5041"wipefs -a /dev/sda\n"
@@ -5046,7 +5047,7 @@ msgstr ""
5046"\n" 5047"\n"
5047 5048
5048#. type: example 5049#. type: example
5049#: doc/guix-cookbook.texi:2749 5050#: guix-git/doc/guix-cookbook.texi:2749
5050#, no-wrap 5051#, no-wrap
5051msgid "" 5052msgid ""
5052"parted /dev/sda --align=opt -s -m -- mklabel gpt\n" 5053"parted /dev/sda --align=opt -s -m -- mklabel gpt\n"
@@ -5070,7 +5071,7 @@ msgstr ""
5070"\n" 5071"\n"
5071 5072
5072#. type: example 5073#. type: example
5073#: doc/guix-cookbook.texi:2758 5074#: guix-git/doc/guix-cookbook.texi:2758
5074#, no-wrap 5075#, no-wrap
5075msgid "" 5076msgid ""
5076"parted /dev/sdb --align=opt -s -m -- mklabel gpt\n" 5077"parted /dev/sdb --align=opt -s -m -- mklabel gpt\n"
@@ -5092,12 +5093,12 @@ msgstr ""
5092"parted /dev/sdb --align=opt -s -m -- mkpart primary linux-swap 512MiB 100%\n" 5093"parted /dev/sdb --align=opt -s -m -- mkpart primary linux-swap 512MiB 100%\n"
5093 5094
5094#. type: Plain text 5095#. type: Plain text
5095#: doc/guix-cookbook.texi:2761 5096#: guix-git/doc/guix-cookbook.texi:2761
5096msgid "Create the array:" 5097msgid "Create the array:"
5097msgstr "Legen Sie das Array an:" 5098msgstr "Legen Sie das Array an:"
5098 5099
5099#. type: example 5100#. type: example
5100#: doc/guix-cookbook.texi:2765 5101#: guix-git/doc/guix-cookbook.texi:2765
5101#, no-wrap 5102#, no-wrap
5102msgid "" 5103msgid ""
5103"mdadm --create /dev/md127 --level=1 --raid-disks=2 \\\n" 5104"mdadm --create /dev/md127 --level=1 --raid-disks=2 \\\n"
@@ -5107,12 +5108,12 @@ msgstr ""
5107" --metadata=0.90 /dev/sda2 /dev/sdb2\n" 5108" --metadata=0.90 /dev/sda2 /dev/sdb2\n"
5108 5109
5109#. type: Plain text 5110#. type: Plain text
5110#: doc/guix-cookbook.texi:2769 5111#: guix-git/doc/guix-cookbook.texi:2769
5111msgid "Now create file systems on the relevant partitions, first the boot partitions:" 5112msgid "Now create file systems on the relevant partitions, first the boot partitions:"
5112msgstr "Legen Sie nun Dateisysteme auf diesen Partitionen an, angefangen mit der Boot-Partition:" 5113msgstr "Legen Sie nun Dateisysteme auf diesen Partitionen an, angefangen mit der Boot-Partition:"
5113 5114
5114#. type: example 5115#. type: example
5115#: doc/guix-cookbook.texi:2773 5116#: guix-git/doc/guix-cookbook.texi:2773
5116#, no-wrap 5117#, no-wrap
5117msgid "" 5118msgid ""
5118"mkfs.ext4 /dev/sda1\n" 5119"mkfs.ext4 /dev/sda1\n"
@@ -5122,23 +5123,23 @@ msgstr ""
5122"mkfs.ext4 /dev/sdb1\n" 5123"mkfs.ext4 /dev/sdb1\n"
5123 5124
5124#. type: Plain text 5125#. type: Plain text
5125#: doc/guix-cookbook.texi:2776 5126#: guix-git/doc/guix-cookbook.texi:2776
5126msgid "Then the root partition:" 5127msgid "Then the root partition:"
5127msgstr "Dann die Wurzelpartition:" 5128msgstr "Dann die Wurzelpartition:"
5128 5129
5129#. type: example 5130#. type: example
5130#: doc/guix-cookbook.texi:2779 5131#: guix-git/doc/guix-cookbook.texi:2779
5131#, no-wrap 5132#, no-wrap
5132msgid "mkfs.ext4 /dev/md127\n" 5133msgid "mkfs.ext4 /dev/md127\n"
5133msgstr "mkfs.ext4 /dev/md127\n" 5134msgstr "mkfs.ext4 /dev/md127\n"
5134 5135
5135#. type: Plain text 5136#. type: Plain text
5136#: doc/guix-cookbook.texi:2782 5137#: guix-git/doc/guix-cookbook.texi:2782
5137msgid "Initialize the swap partitions:" 5138msgid "Initialize the swap partitions:"
5138msgstr "Initialisieren Sie die Swap-Partitionen:" 5139msgstr "Initialisieren Sie die Swap-Partitionen:"
5139 5140
5140#. type: example 5141#. type: example
5141#: doc/guix-cookbook.texi:2788 5142#: guix-git/doc/guix-cookbook.texi:2788
5142#, no-wrap 5143#, no-wrap
5143msgid "" 5144msgid ""
5144"mkswap /dev/sda3\n" 5145"mkswap /dev/sda3\n"
@@ -5152,12 +5153,12 @@ msgstr ""
5152"swapon /dev/sdb3\n" 5153"swapon /dev/sdb3\n"
5153 5154
5154#. type: Plain text 5155#. type: Plain text
5155#: doc/guix-cookbook.texi:2791 5156#: guix-git/doc/guix-cookbook.texi:2791
5156msgid "Mount the guix drive:" 5157msgid "Mount the guix drive:"
5157msgstr "Binden Sie das Guix-Laufwerk ein:" 5158msgstr "Binden Sie das Guix-Laufwerk ein:"
5158 5159
5159#. type: example 5160#. type: example
5160#: doc/guix-cookbook.texi:2795 5161#: guix-git/doc/guix-cookbook.texi:2795
5161#, no-wrap 5162#, no-wrap
5162msgid "" 5163msgid ""
5163"mkdir /mnt/guix\n" 5164"mkdir /mnt/guix\n"
@@ -5167,12 +5168,12 @@ msgstr ""
5167"mount /dev/md127 /mnt/guix\n" 5168"mount /dev/md127 /mnt/guix\n"
5168 5169
5169#. type: Plain text 5170#. type: Plain text
5170#: doc/guix-cookbook.texi:2799 5171#: guix-git/doc/guix-cookbook.texi:2799
5171msgid "Now is time to write an operating system declaration @file{os.scm} file; here is a sample:" 5172msgid "Now is time to write an operating system declaration @file{os.scm} file; here is a sample:"
5172msgstr "Der nächste Schritt ist, in eine Datei @file{os.scm} eine Betriebssystemdeklaration zu schreiben, zum Beispiel:" 5173msgstr "Der nächste Schritt ist, in eine Datei @file{os.scm} eine Betriebssystemdeklaration zu schreiben, zum Beispiel:"
5173 5174
5174#. type: lisp 5175#. type: lisp
5175#: doc/guix-cookbook.texi:2804 5176#: guix-git/doc/guix-cookbook.texi:2804
5176#, no-wrap 5177#, no-wrap
5177msgid "" 5178msgid ""
5178"(use-modules (gnu) (guix))\n" 5179"(use-modules (gnu) (guix))\n"
@@ -5186,7 +5187,7 @@ msgstr ""
5186"\n" 5187"\n"
5187 5188
5188#. type: lisp 5189#. type: lisp
5189#: doc/guix-cookbook.texi:2807 5190#: guix-git/doc/guix-cookbook.texi:2807
5190#, no-wrap 5191#, no-wrap
5191msgid "" 5192msgid ""
5192"(operating-system\n" 5193"(operating-system\n"
@@ -5198,7 +5199,7 @@ msgstr ""
5198"\n" 5199"\n"
5199 5200
5200#. type: lisp 5201#. type: lisp
5201#: doc/guix-cookbook.texi:2812 5202#: guix-git/doc/guix-cookbook.texi:2812
5202#, no-wrap 5203#, no-wrap
5203msgid "" 5204msgid ""
5204" (bootloader (bootloader-configuration\n" 5205" (bootloader (bootloader-configuration\n"
@@ -5214,7 +5215,7 @@ msgstr ""
5214"\n" 5215"\n"
5215 5216
5216#. type: lisp 5217#. type: lisp
5217#: doc/guix-cookbook.texi:2815 5218#: guix-git/doc/guix-cookbook.texi:2815
5218#, no-wrap 5219#, no-wrap
5219msgid "" 5220msgid ""
5220" ;; Add a kernel module for RAID-1 (aka. \"mirror\").\n" 5221" ;; Add a kernel module for RAID-1 (aka. \"mirror\").\n"
@@ -5226,7 +5227,7 @@ msgstr ""
5226"\n" 5227"\n"
5227 5228
5228#. type: lisp 5229#. type: lisp
5229#: doc/guix-cookbook.texi:2821 5230#: guix-git/doc/guix-cookbook.texi:2821
5230#, no-wrap 5231#, no-wrap
5231msgid "" 5232msgid ""
5232" (mapped-devices\n" 5233" (mapped-devices\n"
@@ -5244,7 +5245,7 @@ msgstr ""
5244"\n" 5245"\n"
5245 5246
5246#. type: lisp 5247#. type: lisp
5247#: doc/guix-cookbook.texi:2827 5248#: guix-git/doc/guix-cookbook.texi:2827
5248#, no-wrap 5249#, no-wrap
5249msgid "" 5250msgid ""
5250" (swap-devices\n" 5251" (swap-devices\n"
@@ -5262,7 +5263,7 @@ msgstr ""
5262"\n" 5263"\n"
5263 5264
5264#. type: lisp 5265#. type: lisp
5265#: doc/guix-cookbook.texi:2832 5266#: guix-git/doc/guix-cookbook.texi:2832
5266#, no-wrap 5267#, no-wrap
5267msgid "" 5268msgid ""
5268" (issue\n" 5269" (issue\n"
@@ -5278,7 +5279,7 @@ msgstr ""
5278"\n" 5279"\n"
5279 5280
5280#. type: lisp 5281#. type: lisp
5281#: doc/guix-cookbook.texi:2839 5282#: guix-git/doc/guix-cookbook.texi:2839
5282#, no-wrap 5283#, no-wrap
5283msgid "" 5284msgid ""
5284" (file-systems (cons* (file-system\n" 5285" (file-systems (cons* (file-system\n"
@@ -5298,7 +5299,7 @@ msgstr ""
5298"\n" 5299"\n"
5299 5300
5300#. type: lisp 5301#. type: lisp
5301#: doc/guix-cookbook.texi:2847 5302#: guix-git/doc/guix-cookbook.texi:2847
5302#, no-wrap 5303#, no-wrap
5303msgid "" 5304msgid ""
5304" (users (cons (user-account\n" 5305" (users (cons (user-account\n"
@@ -5320,7 +5321,7 @@ msgstr ""
5320"\n" 5321"\n"
5321 5322
5322#. type: lisp 5323#. type: lisp
5323#: doc/guix-cookbook.texi:2853 5324#: guix-git/doc/guix-cookbook.texi:2853
5324#, no-wrap 5325#, no-wrap
5325msgid "" 5326msgid ""
5326" (sudoers-file\n" 5327" (sudoers-file\n"
@@ -5338,7 +5339,7 @@ msgstr ""
5338"\n" 5339"\n"
5339 5340
5340#. type: lisp 5341#. type: lisp
5341#: doc/guix-cookbook.texi:2867 5342#: guix-git/doc/guix-cookbook.texi:2867
5342#, no-wrap 5343#, no-wrap
5343msgid "" 5344msgid ""
5344" ;; Globally-installed packages.\n" 5345" ;; Globally-installed packages.\n"
@@ -5372,7 +5373,7 @@ msgstr ""
5372"\n" 5373"\n"
5373 5374
5374#. type: lisp 5375#. type: lisp
5375#: doc/guix-cookbook.texi:2869 5376#: guix-git/doc/guix-cookbook.texi:2869
5376#, no-wrap 5377#, no-wrap
5377msgid "" 5378msgid ""
5378" (service unattended-upgrade-service-type)\n" 5379" (service unattended-upgrade-service-type)\n"
@@ -5382,7 +5383,7 @@ msgstr ""
5382"\n" 5383"\n"
5383 5384
5384#. type: lisp 5385#. type: lisp
5385#: doc/guix-cookbook.texi:2884 5386#: guix-git/doc/guix-cookbook.texi:2884
5386#, no-wrap 5387#, no-wrap
5387msgid "" 5388msgid ""
5388" (service openssh-service-type\n" 5389" (service openssh-service-type\n"
@@ -5416,48 +5417,48 @@ msgstr ""
5416"\t\t\t %default-sysctl-settings))))))))\n" 5417"\t\t\t %default-sysctl-settings))))))))\n"
5417 5418
5418#. type: Plain text 5419#. type: Plain text
5419#: doc/guix-cookbook.texi:2889 5420#: guix-git/doc/guix-cookbook.texi:2889
5420msgid "Don't forget to substitute the @var{server-ip-address}, @var{server-gateway}, @var{ssh-key-name} and @var{ssh-public-key-content} variables with your own values." 5421msgid "Don't forget to substitute the @var{server-ip-address}, @var{server-gateway}, @var{ssh-key-name} and @var{ssh-public-key-content} variables with your own values."
5421msgstr "Vergessen Sie nicht, anstelle der Variablen @var{Server-IP-Adresse}, @var{Server-Netzwerkzugang}, @var{SSH-Name-des-Schlüssels} und @var{SSH-Inhalt-öffentl-Schlüssel} die für Sie zutreffenden Werte zu schreiben." 5422msgstr "Vergessen Sie nicht, anstelle der Variablen @var{Server-IP-Adresse}, @var{Server-Netzwerkzugang}, @var{SSH-Name-des-Schlüssels} und @var{SSH-Inhalt-öffentl-Schlüssel} die für Sie zutreffenden Werte zu schreiben."
5422 5423
5423#. type: Plain text 5424#. type: Plain text
5424#: doc/guix-cookbook.texi:2893 5425#: guix-git/doc/guix-cookbook.texi:2893
5425msgid "The gateway is the last usable IP in your block so if you have a server with an IP of @samp{37.187.79.10} then its gateway will be @samp{37.187.79.254}." 5426msgid "The gateway is the last usable IP in your block so if you have a server with an IP of @samp{37.187.79.10} then its gateway will be @samp{37.187.79.254}."
5426msgstr "Der Netzwerkzugang (Gateway) ist die letzte nutzbare IP in Ihrem Block. Wenn Sie z.B.@: einen Server mit IP @samp{37.187.79.10} haben, dann ist sein Gateway @samp{37.187.79.254}." 5427msgstr "Der Netzwerkzugang (Gateway) ist die letzte nutzbare IP in Ihrem Block. Wenn Sie z.B.@: einen Server mit IP @samp{37.187.79.10} haben, dann ist sein Gateway @samp{37.187.79.254}."
5427 5428
5428#. type: Plain text 5429#. type: Plain text
5429#: doc/guix-cookbook.texi:2896 5430#: guix-git/doc/guix-cookbook.texi:2896
5430msgid "Transfer your operating system declaration @file{os.scm} file on the server via the @command{scp} or @command{sftp} commands." 5431msgid "Transfer your operating system declaration @file{os.scm} file on the server via the @command{scp} or @command{sftp} commands."
5431msgstr "Übertragen Sie Ihre Datei mit Betriebssystemdeklaration @file{os.scm} auf den Server mittels des Befehls @command{scp} oder @command{sftp}." 5432msgstr "Übertragen Sie Ihre Datei mit Betriebssystemdeklaration @file{os.scm} auf den Server mittels des Befehls @command{scp} oder @command{sftp}."
5432 5433
5433#. type: Plain text 5434#. type: Plain text
5434#: doc/guix-cookbook.texi:2899 5435#: guix-git/doc/guix-cookbook.texi:2899
5435msgid "Now all that is left is to install Guix with a @code{guix system init} and restart." 5436msgid "Now all that is left is to install Guix with a @code{guix system init} and restart."
5436msgstr "Bleibt nur noch, Guix mit @code{guix system init} zu installieren und neu zu starten." 5437msgstr "Bleibt nur noch, Guix mit @code{guix system init} zu installieren und neu zu starten."
5437 5438
5438#. type: Plain text 5439#. type: Plain text
5439#: doc/guix-cookbook.texi:2904 5440#: guix-git/doc/guix-cookbook.texi:2904
5440msgid "However we first need to set up a chroot, because the root partition of the rescue system is mounted on an aufs partition and if you try to install Guix it will fail at the GRUB install step complaining about the canonical path of \"aufs\"." 5441msgid "However we first need to set up a chroot, because the root partition of the rescue system is mounted on an aufs partition and if you try to install Guix it will fail at the GRUB install step complaining about the canonical path of \"aufs\"."
5441msgstr "Aber das klappt nur, wenn wir vorher ein Chroot aufsetzen, weil die Wurzelpartition des laufenden Rettungssystems („rescue“) auf einer aufs-Partition eingebunden ist und, wenn Sie es versuchen, die Installation von Guix beim GRUB-Schritt fehlschlägt mit der Meldung, der kanonische Pfad von „aufs“ sei nicht ermittelbar." 5442msgstr "Aber das klappt nur, wenn wir vorher ein Chroot aufsetzen, weil die Wurzelpartition des laufenden Rettungssystems („rescue“) auf einer aufs-Partition eingebunden ist und, wenn Sie es versuchen, die Installation von Guix beim GRUB-Schritt fehlschlägt mit der Meldung, der kanonische Pfad von „aufs“ sei nicht ermittelbar."
5442 5443
5443#. type: Plain text 5444#. type: Plain text
5444#: doc/guix-cookbook.texi:2906 5445#: guix-git/doc/guix-cookbook.texi:2906
5445msgid "Install packages that will be used in the chroot:" 5446msgid "Install packages that will be used in the chroot:"
5446msgstr "Installieren Sie die Pakete, die im Chroot benutzt werden:" 5447msgstr "Installieren Sie die Pakete, die im Chroot benutzt werden:"
5447 5448
5448#. type: example 5449#. type: example
5449#: doc/guix-cookbook.texi:2909 5450#: guix-git/doc/guix-cookbook.texi:2909
5450#, no-wrap 5451#, no-wrap
5451msgid "guix install bash-static parted util-linux-with-udev coreutils guix\n" 5452msgid "guix install bash-static parted util-linux-with-udev coreutils guix\n"
5452msgstr "guix install bash-static parted util-linux-with-udev coreutils guix\n" 5453msgstr "guix install bash-static parted util-linux-with-udev coreutils guix\n"
5453 5454
5454#. type: Plain text 5455#. type: Plain text
5455#: doc/guix-cookbook.texi:2912 5456#: guix-git/doc/guix-cookbook.texi:2912
5456msgid "Then run the following to create directories needed for the chroot:" 5457msgid "Then run the following to create directories needed for the chroot:"
5457msgstr "Dann legt folgender Befehl die Verzeichnisse für das Chroot an:" 5458msgstr "Dann legt folgender Befehl die Verzeichnisse für das Chroot an:"
5458 5459
5459#. type: example 5460#. type: example
5460#: doc/guix-cookbook.texi:2917 5461#: guix-git/doc/guix-cookbook.texi:2917
5461#, no-wrap 5462#, no-wrap
5462msgid "" 5463msgid ""
5463"cd /mnt && \\\n" 5464"cd /mnt && \\\n"
@@ -5469,23 +5470,23 @@ msgstr ""
5469" var/guix proc sys dev\n" 5470" var/guix proc sys dev\n"
5470 5471
5471#. type: Plain text 5472#. type: Plain text
5472#: doc/guix-cookbook.texi:2920 5473#: guix-git/doc/guix-cookbook.texi:2920
5473msgid "Copy the host resolv.conf in the chroot:" 5474msgid "Copy the host resolv.conf in the chroot:"
5474msgstr "Kopieren Sie die resolv.conf des Wirtssystems in die Chroot:" 5475msgstr "Kopieren Sie die resolv.conf des Wirtssystems in die Chroot:"
5475 5476
5476#. type: example 5477#. type: example
5477#: doc/guix-cookbook.texi:2923 5478#: guix-git/doc/guix-cookbook.texi:2923
5478#, no-wrap 5479#, no-wrap
5479msgid "cp /etc/resolv.conf etc/\n" 5480msgid "cp /etc/resolv.conf etc/\n"
5480msgstr "cp /etc/resolv.conf etc/\n" 5481msgstr "cp /etc/resolv.conf etc/\n"
5481 5482
5482#. type: Plain text 5483#. type: Plain text
5483#: doc/guix-cookbook.texi:2926 5484#: guix-git/doc/guix-cookbook.texi:2926
5484msgid "Mount block devices, the store and its database and the current guix config:" 5485msgid "Mount block devices, the store and its database and the current guix config:"
5485msgstr "Binden Sie die blockorientierten Speichermedien, den Store, seine Datenbank sowie die aktuelle Guix-Konfiguration ein:" 5486msgstr "Binden Sie die blockorientierten Speichermedien, den Store, seine Datenbank sowie die aktuelle Guix-Konfiguration ein:"
5486 5487
5487#. type: example 5488#. type: example
5488#: doc/guix-cookbook.texi:2936 5489#: guix-git/doc/guix-cookbook.texi:2936
5489#, no-wrap 5490#, no-wrap
5490msgid "" 5491msgid ""
5491"mount --rbind /proc /mnt/proc\n" 5492"mount --rbind /proc /mnt/proc\n"
@@ -5507,12 +5508,12 @@ msgstr ""
5507"mount --rbind /root/.guix-profile root/.guix-profile/\n" 5508"mount --rbind /root/.guix-profile root/.guix-profile/\n"
5508 5509
5509#. type: Plain text 5510#. type: Plain text
5510#: doc/guix-cookbook.texi:2939 5511#: guix-git/doc/guix-cookbook.texi:2939
5511msgid "Chroot in /mnt and install the system:" 5512msgid "Chroot in /mnt and install the system:"
5512msgstr "Betreten Sie ein Chroot in /mnt und installieren Sie das System:" 5513msgstr "Betreten Sie ein Chroot in /mnt und installieren Sie das System:"
5513 5514
5514#. type: example 5515#. type: example
5515#: doc/guix-cookbook.texi:2942 5516#: guix-git/doc/guix-cookbook.texi:2942
5516#, no-wrap 5517#, no-wrap
5517msgid "" 5518msgid ""
5518"chroot /mnt/ /bin/bash\n" 5519"chroot /mnt/ /bin/bash\n"
@@ -5522,38 +5523,38 @@ msgstr ""
5522"\n" 5523"\n"
5523 5524
5524#. type: example 5525#. type: example
5525#: doc/guix-cookbook.texi:2944 5526#: guix-git/doc/guix-cookbook.texi:2944
5526#, no-wrap 5527#, no-wrap
5527msgid "guix system init /root/os.scm /guix\n" 5528msgid "guix system init /root/os.scm /guix\n"
5528msgstr "guix system init /root/os.scm /guix\n" 5529msgstr "guix system init /root/os.scm /guix\n"
5529 5530
5530#. type: Plain text 5531#. type: Plain text
5531#: doc/guix-cookbook.texi:2948 5532#: guix-git/doc/guix-cookbook.texi:2948
5532msgid "Finally, from the web user interface (UI), change @samp{netboot} to @samp{boot to disk} and restart (also from the web UI)." 5533msgid "Finally, from the web user interface (UI), change @samp{netboot} to @samp{boot to disk} and restart (also from the web UI)."
5533msgstr "Schlussendlich können Sie in der Web-Oberfläche von @samp{netboot} auf @samp{boot to disk} wechseln und neu starten (auch das tun Sie über die Web-Oberfläche)." 5534msgstr "Schlussendlich können Sie in der Web-Oberfläche von @samp{netboot} auf @samp{boot to disk} wechseln und neu starten (auch das tun Sie über die Web-Oberfläche)."
5534 5535
5535#. type: Plain text 5536#. type: Plain text
5536#: doc/guix-cookbook.texi:2951 5537#: guix-git/doc/guix-cookbook.texi:2951
5537msgid "Wait a few minutes and try to ssh with @code{ssh guix@@@var{server-ip-address>} -i @var{path-to-your-ssh-key}}" 5538msgid "Wait a few minutes and try to ssh with @code{ssh guix@@@var{server-ip-address>} -i @var{path-to-your-ssh-key}}"
5538msgstr "Nach ein paar Minuten Wartezeit können Sie versuchen, Ihren Server mit SSH zu betreten: @code{ssh guix@@@var{Server-IP-Adresse} -i @var{Pfad-zu-Ihrem-SSH-Schlüssel}}" 5539msgstr "Nach ein paar Minuten Wartezeit können Sie versuchen, Ihren Server mit SSH zu betreten: @code{ssh guix@@@var{Server-IP-Adresse} -i @var{Pfad-zu-Ihrem-SSH-Schlüssel}}"
5539 5540
5540#. type: Plain text 5541#. type: Plain text
5541#: doc/guix-cookbook.texi:2954 5542#: guix-git/doc/guix-cookbook.texi:2954
5542msgid "You should have a Guix system up and running on Kimsufi; congratulations!" 5543msgid "You should have a Guix system up and running on Kimsufi; congratulations!"
5543msgstr "Sie sollten nun ein nutzbares Guix-System auf Kimsufi am Laufen haben; wir gratulieren!" 5544msgstr "Sie sollten nun ein nutzbares Guix-System auf Kimsufi am Laufen haben; wir gratulieren!"
5544 5545
5545#. type: Plain text 5546#. type: Plain text
5546#: doc/guix-cookbook.texi:2963 5547#: guix-git/doc/guix-cookbook.texi:2963
5547msgid "To bind mount a file system, one must first set up some definitions before the @code{operating-system} section of the system definition. In this example we will bind mount a folder from a spinning disk drive to @file{/tmp}, to save wear and tear on the primary SSD, without dedicating an entire partition to be mounted as @file{/tmp}." 5548msgid "To bind mount a file system, one must first set up some definitions before the @code{operating-system} section of the system definition. In this example we will bind mount a folder from a spinning disk drive to @file{/tmp}, to save wear and tear on the primary SSD, without dedicating an entire partition to be mounted as @file{/tmp}."
5548msgstr "Um ein Dateisystem per „bind mount“ einzubinden, braucht man zunächst ein paar Definitionen. Fügen Sie diese noch vor dem @code{operating-system}-Abschnitt Ihrer Systemdefinition ein. In diesem Beispiel binden wir ein Verzeichnis auf einem Magnetfestplattenlaufwerk an @file{/tmp}, um die primäre SSD weniger abzunutzen, ohne dass wir extra eine ganze Partition für @file{/tmp} erzeugen müssen." 5549msgstr "Um ein Dateisystem per „bind mount“ einzubinden, braucht man zunächst ein paar Definitionen. Fügen Sie diese noch vor dem @code{operating-system}-Abschnitt Ihrer Systemdefinition ein. In diesem Beispiel binden wir ein Verzeichnis auf einem Magnetfestplattenlaufwerk an @file{/tmp}, um die primäre SSD weniger abzunutzen, ohne dass wir extra eine ganze Partition für @file{/tmp} erzeugen müssen."
5549 5550
5550#. type: Plain text 5551#. type: Plain text
5551#: doc/guix-cookbook.texi:2966 5552#: guix-git/doc/guix-cookbook.texi:2966
5552msgid "First, the source drive that hosts the folder we wish to bind mount should be defined, so that the bind mount can depend on it." 5553msgid "First, the source drive that hosts the folder we wish to bind mount should be defined, so that the bind mount can depend on it."
5553msgstr "Als Erstes sollten wir das Quelllaufwerk definieren, wo wir das Verzeichnis für den Bind-Mount unterbringen. Dann kann der Bind-Mount es als Abhängigkeit benutzen." 5554msgstr "Als Erstes sollten wir das Quelllaufwerk definieren, wo wir das Verzeichnis für den Bind-Mount unterbringen. Dann kann der Bind-Mount es als Abhängigkeit benutzen."
5554 5555
5555#. type: lisp 5556#. type: lisp
5556#: doc/guix-cookbook.texi:2973 5557#: guix-git/doc/guix-cookbook.texi:2973
5557#, no-wrap 5558#, no-wrap
5558msgid "" 5559msgid ""
5559"(define source-drive ;; \"source-drive\" can be named anything you want.\n" 5560"(define source-drive ;; \"source-drive\" can be named anything you want.\n"
@@ -5569,12 +5570,12 @@ msgstr ""
5569" (type \"ext4\"))) ;; Legen Sie den dazu passenden Typ fest.\n" 5570" (type \"ext4\"))) ;; Legen Sie den dazu passenden Typ fest.\n"
5570 5571
5571#. type: Plain text 5572#. type: Plain text
5572#: doc/guix-cookbook.texi:2977 5573#: guix-git/doc/guix-cookbook.texi:2977
5573msgid "The source folder must also be defined, so that guix will know it's not a regular block device, but a folder." 5574msgid "The source folder must also be defined, so that guix will know it's not a regular block device, but a folder."
5574msgstr "Auch das Quellverzeichnis muss so definiert werden, dass Guix es nicht für ein reguläres blockorientiertes Gerät hält, sondern es als Verzeichnis erkennt." 5575msgstr "Auch das Quellverzeichnis muss so definiert werden, dass Guix es nicht für ein reguläres blockorientiertes Gerät hält, sondern es als Verzeichnis erkennt."
5575 5576
5576#. type: lisp 5577#. type: lisp
5577#: doc/guix-cookbook.texi:2980 5578#: guix-git/doc/guix-cookbook.texi:2980
5578#, no-wrap 5579#, no-wrap
5579msgid "" 5580msgid ""
5580";; \"source-directory\" can be named any valid variable name.\n" 5581";; \"source-directory\" can be named any valid variable name.\n"
@@ -5584,12 +5585,12 @@ msgstr ""
5584"(define (%quellverzeichnis) \"/hier-der-pfad-zur-magnetfestplatte/tmp\")\n" 5585"(define (%quellverzeichnis) \"/hier-der-pfad-zur-magnetfestplatte/tmp\")\n"
5585 5586
5586#. type: Plain text 5587#. type: Plain text
5587#: doc/guix-cookbook.texi:2984 5588#: guix-git/doc/guix-cookbook.texi:2984
5588msgid "Finally, inside the @code{file-systems} definition, we must add the mount itself." 5589msgid "Finally, inside the @code{file-systems} definition, we must add the mount itself."
5589msgstr "In der Definition des @code{file-systems}-Felds müssen wir die Einbindung einfügen." 5590msgstr "In der Definition des @code{file-systems}-Felds müssen wir die Einbindung einfügen."
5590 5591
5591#. type: lisp 5592#. type: lisp
5592#: doc/guix-cookbook.texi:2987 5593#: guix-git/doc/guix-cookbook.texi:2987
5593#, no-wrap 5594#, no-wrap
5594msgid "" 5595msgid ""
5595"(file-systems (cons*\n" 5596"(file-systems (cons*\n"
@@ -5599,7 +5600,7 @@ msgstr ""
5599"\n" 5600"\n"
5600 5601
5601#. type: lisp 5602#. type: lisp
5602#: doc/guix-cookbook.texi:2989 5603#: guix-git/doc/guix-cookbook.texi:2989
5603#, no-wrap 5604#, no-wrap
5604msgid "" 5605msgid ""
5605" ...<other drives omitted for clarity>...\n" 5606" ...<other drives omitted for clarity>...\n"
@@ -5609,7 +5610,7 @@ msgstr ""
5609"\n" 5610"\n"
5610 5611
5611#. type: lisp 5612#. type: lisp
5612#: doc/guix-cookbook.texi:2992 5613#: guix-git/doc/guix-cookbook.texi:2992
5613#, no-wrap 5614#, no-wrap
5614msgid "" 5615msgid ""
5615" ;; Must match the name you gave the source drive in the earlier definition.\n" 5616" ;; Must match the name you gave the source drive in the earlier definition.\n"
@@ -5622,7 +5623,7 @@ msgstr ""
5622"\n" 5623"\n"
5623 5624
5624#. type: lisp 5625#. type: lisp
5625#: doc/guix-cookbook.texi:3003 5626#: guix-git/doc/guix-cookbook.texi:3003
5626#, no-wrap 5627#, no-wrap
5627msgid "" 5628msgid ""
5628" (file-system\n" 5629" (file-system\n"
@@ -5653,7 +5654,7 @@ msgstr ""
5653"\n" 5654"\n"
5654 5655
5655#. type: lisp 5656#. type: lisp
5656#: doc/guix-cookbook.texi:3005 5657#: guix-git/doc/guix-cookbook.texi:3005
5657#, no-wrap 5658#, no-wrap
5658msgid "" 5659msgid ""
5659" ...<other drives omitted for clarity>...\n" 5660" ...<other drives omitted for clarity>...\n"
@@ -5663,39 +5664,39 @@ msgstr ""
5663"\n" 5664"\n"
5664 5665
5665#. type: lisp 5666#. type: lisp
5666#: doc/guix-cookbook.texi:3007 5667#: guix-git/doc/guix-cookbook.texi:3007
5667#, no-wrap 5668#, no-wrap
5668msgid " ))\n" 5669msgid " ))\n"
5669msgstr " ))\n" 5670msgstr " ))\n"
5670 5671
5671#. type: Plain text 5672#. type: Plain text
5672#: doc/guix-cookbook.texi:3014 5673#: guix-git/doc/guix-cookbook.texi:3014
5673msgid "Guix daemon can use a HTTP proxy to get substitutes, here we are configuring it to get them via Tor." 5674msgid "Guix daemon can use a HTTP proxy to get substitutes, here we are configuring it to get them via Tor."
5674msgstr "Der Guix-Daemon kann einen HTTP-Proxy benutzen, wenn er Substitute herunterlädt. Wir wollen ihn hier so konfigurieren, dass Substitute über Tor bezogen werden." 5675msgstr "Der Guix-Daemon kann einen HTTP-Proxy benutzen, wenn er Substitute herunterlädt. Wir wollen ihn hier so konfigurieren, dass Substitute über Tor bezogen werden."
5675 5676
5676#. type: quotation 5677#. type: quotation
5677#: doc/guix-cookbook.texi:3015 5678#: guix-git/doc/guix-cookbook.texi:3015
5678#, no-wrap 5679#, no-wrap
5679msgid "Warning" 5680msgid "Warning"
5680msgstr "Warnung" 5681msgstr "Warnung"
5681 5682
5682#. type: quotation 5683#. type: quotation
5683#: doc/guix-cookbook.texi:3021 5684#: guix-git/doc/guix-cookbook.texi:3021
5684msgid "@emph{Not all} Guix daemon's traffic will go through Tor! Only HTTP/HTTPS will get proxied; FTP, Git protocol, SSH, etc connections will still go through the clearnet. Again, this configuration isn't foolproof some of your traffic won't get routed by Tor at all. Use it at your own risk." 5685msgid "@emph{Not all} Guix daemon's traffic will go through Tor! Only HTTP/HTTPS will get proxied; FTP, Git protocol, SSH, etc connections will still go through the clearnet. Again, this configuration isn't foolproof some of your traffic won't get routed by Tor at all. Use it at your own risk."
5685msgstr "@emph{Nicht aller} Datenverkehr des Guix-Daemons wird dadurch über Tor laufen! Nur HTTP und HTTPS durchläuft den Proxy, @emph{nicht} so ist es bei FTP, dem Git-Protokokl, SSH etc.@:, diese laufen weiterhin durch’s „Clearnet“. Die Konfiguration ist also @emph{nicht} narrensicher; ein Teil Ihres Datenverkehrs wird gar nicht über Tor geleitet. Verwenden Sie sie nur auf Ihr eigenes Risiko!" 5686msgstr "@emph{Nicht aller} Datenverkehr des Guix-Daemons wird dadurch über Tor laufen! Nur HTTP und HTTPS durchläuft den Proxy, @emph{nicht} so ist es bei FTP, dem Git-Protokokl, SSH etc.@:, diese laufen weiterhin durch’s „Clearnet“. Die Konfiguration ist also @emph{nicht} narrensicher; ein Teil Ihres Datenverkehrs wird gar nicht über Tor geleitet. Verwenden Sie sie nur auf Ihr eigenes Risiko!"
5686 5687
5687#. type: quotation 5688#. type: quotation
5688#: doc/guix-cookbook.texi:3027 5689#: guix-git/doc/guix-cookbook.texi:3027
5689msgid "Also note that the procedure described here applies only to package substitution. When you update your guix distribution with @command{guix pull}, you still need to use @command{torsocks} if you want to route the connection to guix's git repository servers through Tor." 5690msgid "Also note that the procedure described here applies only to package substitution. When you update your guix distribution with @command{guix pull}, you still need to use @command{torsocks} if you want to route the connection to guix's git repository servers through Tor."
5690msgstr "Beachten Sie außerdem, dass sich die hier beschriebene Prozedur nur auf Paketsubstitute bezieht. Wenn Sie Ihre Guix-Distribution mit @command{guix pull} aktualisieren, müssen Sie noch immer @command{torsocks} benutzen, wenn Sie die Verbindung zu Guix’ Git-Repository über Tor leiten wollen." 5691msgstr "Beachten Sie außerdem, dass sich die hier beschriebene Prozedur nur auf Paketsubstitute bezieht. Wenn Sie Ihre Guix-Distribution mit @command{guix pull} aktualisieren, müssen Sie noch immer @command{torsocks} benutzen, wenn Sie die Verbindung zu Guix’ Git-Repository über Tor leiten wollen."
5691 5692
5692#. type: Plain text 5693#. type: Plain text
5693#: doc/guix-cookbook.texi:3032 5694#: guix-git/doc/guix-cookbook.texi:3032
5694msgid "Guix's substitute server is available as a Onion service, if you want to use it to get your substitutes through Tor configure your system as follow:" 5695msgid "Guix's substitute server is available as a Onion service, if you want to use it to get your substitutes through Tor configure your system as follow:"
5695msgstr "Der Substitutserver von Guix ist als Onion-Dienst verfügbar, wenn Sie ihn benutzen möchten, um Ihre Substitute über Tor zu laden, dann konfigurieren Sie Ihr System wie folgt:" 5696msgstr "Der Substitutserver von Guix ist als Onion-Dienst verfügbar, wenn Sie ihn benutzen möchten, um Ihre Substitute über Tor zu laden, dann konfigurieren Sie Ihr System wie folgt:"
5696 5697
5697#. type: lisp 5698#. type: lisp
5698#: doc/guix-cookbook.texi:3036 5699#: guix-git/doc/guix-cookbook.texi:3036
5699#, no-wrap 5700#, no-wrap
5700msgid "" 5701msgid ""
5701"(use-modules (gnu))\n" 5702"(use-modules (gnu))\n"
@@ -5707,7 +5708,7 @@ msgstr ""
5707"\n" 5708"\n"
5708 5709
5709#. type: lisp 5710#. type: lisp
5710#: doc/guix-cookbook.texi:3053 5711#: guix-git/doc/guix-cookbook.texi:3053
5711#, no-wrap 5712#, no-wrap
5712msgid "" 5713msgid ""
5713"(operating-system\n" 5714"(operating-system\n"
@@ -5745,17 +5746,17 @@ msgstr ""
5745" (http-proxy \"http://localhost:9250\")))))))\n" 5746" (http-proxy \"http://localhost:9250\")))))))\n"
5746 5747
5747#. type: Plain text 5748#. type: Plain text
5748#: doc/guix-cookbook.texi:3062 5749#: guix-git/doc/guix-cookbook.texi:3062
5749msgid "This will keep a tor process running that provides a HTTP CONNECT tunnel which will be used by @command{guix-daemon}. The daemon can use other protocols than HTTP(S) to get remote resources, request using those protocols won't go through Tor since we are only setting a HTTP tunnel here. Note that @code{substitutes-urls} is using HTTPS and not HTTP or it won't work, that's a limitation of Tor's tunnel; you may want to use @command{privoxy} instead to avoid such limitations." 5750msgid "This will keep a tor process running that provides a HTTP CONNECT tunnel which will be used by @command{guix-daemon}. The daemon can use other protocols than HTTP(S) to get remote resources, request using those protocols won't go through Tor since we are only setting a HTTP tunnel here. Note that @code{substitutes-urls} is using HTTPS and not HTTP or it won't work, that's a limitation of Tor's tunnel; you may want to use @command{privoxy} instead to avoid such limitations."
5750msgstr "Dadurch wird ständig ein Tor-Prozess laufen, der einen HTTP-CONNECT-Tunnel für die Nutzung durch den @command{guix-daemon} bereitstellt. Der Daemon kann andere Protokolle als HTTP(S) benutzen, um entfernte Ressourcen abzurufen, und Anfragen über solche Protokolle werden Tor @emph{nicht} durchlaufen, weil wir hier nur einen HTTP-Tunnel festlegen. Beachten Sie, dass wir für @code{substitutes-urls} HTTPS statt HTTP benutzen, sonst würde es nicht funktionieren. Dabei handelt es sich um eine Einschränkung von Tors Tunnel; vielleicht möchten Sie stattdessen @command{privoxy} benutzen, um dieser Einschränkung nicht zu unterliegen." 5751msgstr "Dadurch wird ständig ein Tor-Prozess laufen, der einen HTTP-CONNECT-Tunnel für die Nutzung durch den @command{guix-daemon} bereitstellt. Der Daemon kann andere Protokolle als HTTP(S) benutzen, um entfernte Ressourcen abzurufen, und Anfragen über solche Protokolle werden Tor @emph{nicht} durchlaufen, weil wir hier nur einen HTTP-Tunnel festlegen. Beachten Sie, dass wir für @code{substitutes-urls} HTTPS statt HTTP benutzen, sonst würde es nicht funktionieren. Dabei handelt es sich um eine Einschränkung von Tors Tunnel; vielleicht möchten Sie stattdessen @command{privoxy} benutzen, um dieser Einschränkung nicht zu unterliegen."
5751 5752
5752#. type: Plain text 5753#. type: Plain text
5753#: doc/guix-cookbook.texi:3066 5754#: guix-git/doc/guix-cookbook.texi:3066
5754msgid "If you don't want to always get substitutes through Tor but using it just some of the times, then skip the @code{guix-configuration}. When you want to get a substitute from the Tor tunnel run:" 5755msgid "If you don't want to always get substitutes through Tor but using it just some of the times, then skip the @code{guix-configuration}. When you want to get a substitute from the Tor tunnel run:"
5755msgstr "Wenn Sie Substitute nicht immer, sondern nur manchmal über Tor beziehen wollen, dann überspringen Sie das mit der @code{guix-configuration}. Führen Sie einfach das hier aus, wenn Sie ein Substitut über den Tor-Tunnel laden möchten:" 5756msgstr "Wenn Sie Substitute nicht immer, sondern nur manchmal über Tor beziehen wollen, dann überspringen Sie das mit der @code{guix-configuration}. Führen Sie einfach das hier aus, wenn Sie ein Substitut über den Tor-Tunnel laden möchten:"
5756 5757
5757#. type: example 5758#. type: example
5758#: doc/guix-cookbook.texi:3071 5759#: guix-git/doc/guix-cookbook.texi:3071
5759#, no-wrap 5760#, no-wrap
5760msgid "" 5761msgid ""
5761"sudo herd set-http-proxy guix-daemon http://localhost:9250\n" 5762"sudo herd set-http-proxy guix-daemon http://localhost:9250\n"
@@ -5767,28 +5768,28 @@ msgstr ""
5767" --substitute-urls=@value{SUBSTITUTE-TOR-URL} @dots{}\n" 5768" --substitute-urls=@value{SUBSTITUTE-TOR-URL} @dots{}\n"
5768 5769
5769#. type: cindex 5770#. type: cindex
5770#: doc/guix-cookbook.texi:3075 5771#: guix-git/doc/guix-cookbook.texi:3075
5771#, no-wrap 5772#, no-wrap
5772msgid "nginx, lua, openresty, resty" 5773msgid "nginx, lua, openresty, resty"
5773msgstr "nginx, lua, openresty, resty" 5774msgstr "nginx, lua, openresty, resty"
5774 5775
5775#. type: Plain text 5776#. type: Plain text
5776#: doc/guix-cookbook.texi:3078 5777#: guix-git/doc/guix-cookbook.texi:3078
5777msgid "NGINX could be extended with Lua scripts." 5778msgid "NGINX could be extended with Lua scripts."
5778msgstr "NGINX lässt sich mit Lua-Skripts erweitern." 5779msgstr "NGINX lässt sich mit Lua-Skripts erweitern."
5779 5780
5780#. type: Plain text 5781#. type: Plain text
5781#: doc/guix-cookbook.texi:3081 5782#: guix-git/doc/guix-cookbook.texi:3081
5782msgid "Guix provides NGINX service with ability to load Lua module and specific Lua packages, and reply to requests by evaluating Lua scripts." 5783msgid "Guix provides NGINX service with ability to load Lua module and specific Lua packages, and reply to requests by evaluating Lua scripts."
5783msgstr "Guix stellt einen NGINX-Dienst bereit, mit dem das Lua-Modul und bestimmte Lua-Pakete geladen werden können, so dass Anfragen beantwortet werden, indem Lua-Skripte ausgewertet werden." 5784msgstr "Guix stellt einen NGINX-Dienst bereit, mit dem das Lua-Modul und bestimmte Lua-Pakete geladen werden können, so dass Anfragen beantwortet werden, indem Lua-Skripte ausgewertet werden."
5784 5785
5785#. type: Plain text 5786#. type: Plain text
5786#: doc/guix-cookbook.texi:3085 5787#: guix-git/doc/guix-cookbook.texi:3085
5787msgid "The following example demonstrates system definition with configuration to evaluate @file{index.lua} Lua script on HTTP request to @uref{http://localhost/hello} endpoint:" 5788msgid "The following example demonstrates system definition with configuration to evaluate @file{index.lua} Lua script on HTTP request to @uref{http://localhost/hello} endpoint:"
5788msgstr "Folgendes Beispiel zeigt eine Systemdefinition mit Einstellungen, um das Lua-Skript @file{index.lua} bei HTTP-Anfragen an den Endpunkt @uref{http://localhost/hello} auszuwerten:" 5789msgstr "Folgendes Beispiel zeigt eine Systemdefinition mit Einstellungen, um das Lua-Skript @file{index.lua} bei HTTP-Anfragen an den Endpunkt @uref{http://localhost/hello} auszuwerten:"
5789 5790
5790#. type: example 5791#. type: example
5791#: doc/guix-cookbook.texi:3088 5792#: guix-git/doc/guix-cookbook.texi:3088
5792#, no-wrap 5793#, no-wrap
5793msgid "" 5794msgid ""
5794"local shell = require \"resty.shell\"\n" 5795"local shell = require \"resty.shell\"\n"
@@ -5798,7 +5799,7 @@ msgstr ""
5798"\n" 5799"\n"
5799 5800
5800#. type: example 5801#. type: example
5801#: doc/guix-cookbook.texi:3092 5802#: guix-git/doc/guix-cookbook.texi:3092
5802#, no-wrap 5803#, no-wrap
5803msgid "" 5804msgid ""
5804"local stdin = \"\"\n" 5805"local stdin = \"\"\n"
@@ -5812,7 +5813,7 @@ msgstr ""
5812"\n" 5813"\n"
5813 5814
5814#. type: example 5815#. type: example
5815#: doc/guix-cookbook.texi:3095 5816#: guix-git/doc/guix-cookbook.texi:3095
5816#, no-wrap 5817#, no-wrap
5817msgid "" 5818msgid ""
5818"local ok, stdout, stderr, reason, status =\n" 5819"local ok, stdout, stderr, reason, status =\n"
@@ -5824,13 +5825,13 @@ msgstr ""
5824"\n" 5825"\n"
5825 5826
5826#. type: example 5827#. type: example
5827#: doc/guix-cookbook.texi:3097 5828#: guix-git/doc/guix-cookbook.texi:3097
5828#, no-wrap 5829#, no-wrap
5829msgid "ngx.say(stdout)\n" 5830msgid "ngx.say(stdout)\n"
5830msgstr "ngx.say(stdout)\n" 5831msgstr "ngx.say(stdout)\n"
5831 5832
5832#. type: lisp 5833#. type: lisp
5833#: doc/guix-cookbook.texi:3128 5834#: guix-git/doc/guix-cookbook.texi:3128
5834#, no-wrap 5835#, no-wrap
5835msgid "" 5836msgid ""
5836"(use-modules (gnu))\n" 5837"(use-modules (gnu))\n"
@@ -5892,45 +5893,45 @@ msgstr ""
5892" #$(local-file \"index.lua\"))))))))))))))\n" 5893" #$(local-file \"index.lua\"))))))))))))))\n"
5893 5894
5894#. type: cindex 5895#. type: cindex
5895#: doc/guix-cookbook.texi:3132 5896#: guix-git/doc/guix-cookbook.texi:3132
5896#, no-wrap 5897#, no-wrap
5897msgid "mpd" 5898msgid "mpd"
5898msgstr "mpd" 5899msgstr "mpd"
5899 5900
5900#. type: cindex 5901#. type: cindex
5901#: doc/guix-cookbook.texi:3133 5902#: guix-git/doc/guix-cookbook.texi:3133
5902#, no-wrap 5903#, no-wrap
5903msgid "music server, headless" 5904msgid "music server, headless"
5904msgstr "Musik-Server, ohne Oberfläche" 5905msgstr "Musik-Server, ohne Oberfläche"
5905 5906
5906#. type: cindex 5907#. type: cindex
5907#: doc/guix-cookbook.texi:3134 5908#: guix-git/doc/guix-cookbook.texi:3134
5908#, no-wrap 5909#, no-wrap
5909msgid "bluetooth, ALSA configuration" 5910msgid "bluetooth, ALSA configuration"
5910msgstr "Bluetooth, ALSA-Konfiguration" 5911msgstr "Bluetooth, ALSA-Konfiguration"
5911 5912
5912#. type: Plain text 5913#. type: Plain text
5913#: doc/guix-cookbook.texi:3141 5914#: guix-git/doc/guix-cookbook.texi:3141
5914msgid "MPD, the Music Player Daemon, is a flexible server-side application for playing music. Client programs on different machines on the network --- a mobile phone, a laptop, a desktop workstation --- can connect to it to control the playback of audio files from your local music collection. MPD decodes the audio files and plays them back on one or many outputs." 5915msgid "MPD, the Music Player Daemon, is a flexible server-side application for playing music. Client programs on different machines on the network --- a mobile phone, a laptop, a desktop workstation --- can connect to it to control the playback of audio files from your local music collection. MPD decodes the audio files and plays them back on one or many outputs."
5915msgstr "Bei MPD, dem Music Player Daemon, handelt es sich um eine vielseitige Server-Anwendung, mit der Sie Musik spielen lassen. Client-Programme an verschiedenen Maschinen im Netzwerk@tie{}– einem Mobiltelefon, Laptop oder einer Desktop-Workstation@tie{}– können sich damit verbinden und die Wiedergabe der Tondateien steuern, die Ihre eigene Musiksammung enthalten. MPD dekodiert die Tondateien und spielt sie auf einer oder mehreren Ausgaben ab." 5916msgstr "Bei MPD, dem Music Player Daemon, handelt es sich um eine vielseitige Server-Anwendung, mit der Sie Musik spielen lassen. Client-Programme an verschiedenen Maschinen im Netzwerk@tie{}– einem Mobiltelefon, Laptop oder einer Desktop-Workstation@tie{}– können sich damit verbinden und die Wiedergabe der Tondateien steuern, die Ihre eigene Musiksammung enthalten. MPD dekodiert die Tondateien und spielt sie auf einer oder mehreren Ausgaben ab."
5916 5917
5917#. type: Plain text 5918#. type: Plain text
5918#: doc/guix-cookbook.texi:3148 5919#: guix-git/doc/guix-cookbook.texi:3148
5919msgid "By default MPD will play to the default audio device. In the example below we make things a little more interesting by setting up a headless music server. There will be no graphical user interface, no Pulseaudio daemon, and no local audio output. Instead we will configure MPD with two outputs: a bluetooth speaker and a web server to serve audio streams to any streaming media player." 5920msgid "By default MPD will play to the default audio device. In the example below we make things a little more interesting by setting up a headless music server. There will be no graphical user interface, no Pulseaudio daemon, and no local audio output. Instead we will configure MPD with two outputs: a bluetooth speaker and a web server to serve audio streams to any streaming media player."
5920msgstr "MPD ist so voreingestellt, dass auf dem Standardtonausgabegerät abgespielt wird. Im folgenden Beispiel legen wir eine interessantere Architektur fest: einen Musik-Server, der ohne Bildschirm betrieben werden kann. Eine grafische Oberfläche fehlt, ein Pulseaudio-Daemon ist auch nicht da und es gibt keine lokale Tonausgabe. Stattdessen richten wir MPD für zwei Ausgaben ein: zum einen ein Bluetooth-Lautsprecher, zum anderen ein Web-Server, der Audio an Mediaplayer streamen kann." 5921msgstr "MPD ist so voreingestellt, dass auf dem Standardtonausgabegerät abgespielt wird. Im folgenden Beispiel legen wir eine interessantere Architektur fest: einen Musik-Server, der ohne Bildschirm betrieben werden kann. Eine grafische Oberfläche fehlt, ein Pulseaudio-Daemon ist auch nicht da und es gibt keine lokale Tonausgabe. Stattdessen richten wir MPD für zwei Ausgaben ein: zum einen ein Bluetooth-Lautsprecher, zum anderen ein Web-Server, der Audio an Mediaplayer streamen kann."
5921 5922
5922#. type: Plain text 5923#. type: Plain text
5923#: doc/guix-cookbook.texi:3154 5924#: guix-git/doc/guix-cookbook.texi:3154
5924msgid "Bluetooth is often rather frustrating to set up. You will have to pair your Bluetooth device and make sure that the device is automatically connected as soon as it powers on. The Bluetooth system service returned by the @code{bluetooth-service} procedure provides the infrastructure needed to set this up." 5925msgid "Bluetooth is often rather frustrating to set up. You will have to pair your Bluetooth device and make sure that the device is automatically connected as soon as it powers on. The Bluetooth system service returned by the @code{bluetooth-service} procedure provides the infrastructure needed to set this up."
5925msgstr "Bluetooth einzurichten, ist oft eher frustrierend. Sie müssen Ihr Bluetooth-Gerät koppeln und dabei beachten, dass zum Gerät automatisch eine Verbindung aufgebaut sein soll, sobald es an ist. Das können Sie mit dem Bluetooth-Systemdienst umsetzen, der von der Prozedur @code{bluetooth-service} geliefert wird." 5926msgstr "Bluetooth einzurichten, ist oft eher frustrierend. Sie müssen Ihr Bluetooth-Gerät koppeln und dabei beachten, dass zum Gerät automatisch eine Verbindung aufgebaut sein soll, sobald es an ist. Das können Sie mit dem Bluetooth-Systemdienst umsetzen, der von der Prozedur @code{bluetooth-service} geliefert wird."
5926 5927
5927#. type: Plain text 5928#. type: Plain text
5928#: doc/guix-cookbook.texi:3157 5929#: guix-git/doc/guix-cookbook.texi:3157
5929msgid "Reconfigure your system with at least the following services and packages:" 5930msgid "Reconfigure your system with at least the following services and packages:"
5930msgstr "Rekonfigurieren Sie Ihr System mit mindestens den folgenden Diensten und Paketen:" 5931msgstr "Rekonfigurieren Sie Ihr System mit mindestens den folgenden Diensten und Paketen:"
5931 5932
5932#. type: lisp 5933#. type: lisp
5933#: doc/guix-cookbook.texi:3167 5934#: guix-git/doc/guix-cookbook.texi:3167
5934#, no-wrap 5935#, no-wrap
5935msgid "" 5936msgid ""
5936"(operating-system\n" 5937"(operating-system\n"
@@ -5952,12 +5953,12 @@ msgstr ""
5952" (bluetooth-service #:auto-enable? #t)))\n" 5953" (bluetooth-service #:auto-enable? #t)))\n"
5953 5954
5954#. type: Plain text 5955#. type: Plain text
5955#: doc/guix-cookbook.texi:3174 5956#: guix-git/doc/guix-cookbook.texi:3174
5956msgid "Start the @code{bluetooth} service and then use @command{bluetoothctl} to scan for Bluetooth devices. Try to identify your Bluetooth speaker and pick out its device ID from the resulting list of devices that is indubitably dominated by a baffling smorgasbord of your neighbors' home automation gizmos. This only needs to be done once:" 5957msgid "Start the @code{bluetooth} service and then use @command{bluetoothctl} to scan for Bluetooth devices. Try to identify your Bluetooth speaker and pick out its device ID from the resulting list of devices that is indubitably dominated by a baffling smorgasbord of your neighbors' home automation gizmos. This only needs to be done once:"
5957msgstr "Starten Sie den @code{bluetooth}-Dienst und benutzen Sie dann @command{bluetoothctl}, um einen Scan nach Bluetooth-Geräten durchzuführen. Versuchen Sie, Ihren Bluetooth-Lautsprecher unter dem schwedischen Büfett aus anderen Smart-Home-Gerätschaften Ihrer Nachbarn auszumachen, und merken Sie sich dessen Device-ID in der angezeigten Liste. Das einmal zu machen, genügt:" 5958msgstr "Starten Sie den @code{bluetooth}-Dienst und benutzen Sie dann @command{bluetoothctl}, um einen Scan nach Bluetooth-Geräten durchzuführen. Versuchen Sie, Ihren Bluetooth-Lautsprecher unter dem schwedischen Büfett aus anderen Smart-Home-Gerätschaften Ihrer Nachbarn auszumachen, und merken Sie sich dessen Device-ID in der angezeigten Liste. Das einmal zu machen, genügt:"
5958 5959
5959#. type: example 5960#. type: example
5960#: doc/guix-cookbook.texi:3178 5961#: guix-git/doc/guix-cookbook.texi:3178
5961#, no-wrap 5962#, no-wrap
5962msgid "" 5963msgid ""
5963"$ bluetoothctl \n" 5964"$ bluetoothctl \n"
@@ -5969,7 +5970,7 @@ msgstr ""
5969"\n" 5970"\n"
5970 5971
5971#. type: example 5972#. type: example
5972#: doc/guix-cookbook.texi:3181 5973#: guix-git/doc/guix-cookbook.texi:3181
5973#, no-wrap 5974#, no-wrap
5974msgid "" 5975msgid ""
5975"[bluetooth]# power on\n" 5976"[bluetooth]# power on\n"
@@ -5981,7 +5982,7 @@ msgstr ""
5981"\n" 5982"\n"
5982 5983
5983#. type: example 5984#. type: example
5984#: doc/guix-cookbook.texi:3184 5985#: guix-git/doc/guix-cookbook.texi:3184
5985#, no-wrap 5986#, no-wrap
5986msgid "" 5987msgid ""
5987"[bluetooth]# agent on\n" 5988"[bluetooth]# agent on\n"
@@ -5993,7 +5994,7 @@ msgstr ""
5993"\n" 5994"\n"
5994 5995
5995#. type: example 5996#. type: example
5996#: doc/guix-cookbook.texi:3187 5997#: guix-git/doc/guix-cookbook.texi:3187
5997#, no-wrap 5998#, no-wrap
5998msgid "" 5999msgid ""
5999"[bluetooth]# default-agent\n" 6000"[bluetooth]# default-agent\n"
@@ -6005,7 +6006,7 @@ msgstr ""
6005"\n" 6006"\n"
6006 6007
6007#. type: example 6008#. type: example
6008#: doc/guix-cookbook.texi:3194 6009#: guix-git/doc/guix-cookbook.texi:3194
6009#, no-wrap 6010#, no-wrap
6010msgid "" 6011msgid ""
6011"[bluetooth]# scan on\n" 6012"[bluetooth]# scan on\n"
@@ -6025,7 +6026,7 @@ msgstr ""
6025"\n" 6026"\n"
6026 6027
6027#. type: example 6028#. type: example
6028#: doc/guix-cookbook.texi:3198 6029#: guix-git/doc/guix-cookbook.texi:3198
6029#, no-wrap 6030#, no-wrap
6030msgid "" 6031msgid ""
6031"[bluetooth]# pair AA:BB:CC:A4:AA:CD\n" 6032"[bluetooth]# pair AA:BB:CC:A4:AA:CD\n"
@@ -6039,7 +6040,7 @@ msgstr ""
6039"\n" 6040"\n"
6040 6041
6041#. type: example 6042#. type: example
6042#: doc/guix-cookbook.texi:3204 6043#: guix-git/doc/guix-cookbook.texi:3204
6043#, no-wrap 6044#, no-wrap
6044msgid "" 6045msgid ""
6045"[My Bluetooth Speaker]# [CHG] Device AA:BB:CC:A4:AA:CD UUIDs: 0000110b-0000-1000-8000-00xxxxxxxxxx\n" 6046"[My Bluetooth Speaker]# [CHG] Device AA:BB:CC:A4:AA:CD UUIDs: 0000110b-0000-1000-8000-00xxxxxxxxxx\n"
@@ -6057,7 +6058,7 @@ msgstr ""
6057"\n" 6058"\n"
6058 6059
6059#. type: example 6060#. type: example
6060#: doc/guix-cookbook.texi:3206 6061#: guix-git/doc/guix-cookbook.texi:3206
6061#, no-wrap 6062#, no-wrap
6062msgid "" 6063msgid ""
6063"[CHG] Device AA:BB:CC:A4:AA:CD Connected: no\n" 6064"[CHG] Device AA:BB:CC:A4:AA:CD Connected: no\n"
@@ -6067,7 +6068,7 @@ msgstr ""
6067"\n" 6068"\n"
6068 6069
6069#. type: example 6070#. type: example
6070#: doc/guix-cookbook.texi:3211 6071#: guix-git/doc/guix-cookbook.texi:3211
6071#, no-wrap 6072#, no-wrap
6072msgid "" 6073msgid ""
6073"[bluetooth]# \n" 6074"[bluetooth]# \n"
@@ -6083,7 +6084,7 @@ msgstr ""
6083"\n" 6084"\n"
6084 6085
6085#. type: example 6086#. type: example
6086#: doc/guix-cookbook.texi:3218 6087#: guix-git/doc/guix-cookbook.texi:3218
6087#, no-wrap 6088#, no-wrap
6088msgid "" 6089msgid ""
6089"[bluetooth]# \n" 6090"[bluetooth]# \n"
@@ -6103,7 +6104,7 @@ msgstr ""
6103"\n" 6104"\n"
6104 6105
6105#. type: example 6106#. type: example
6106#: doc/guix-cookbook.texi:3223 6107#: guix-git/doc/guix-cookbook.texi:3223
6107#, no-wrap 6108#, no-wrap
6108msgid "" 6109msgid ""
6109"[My Bluetooth Speaker]# scan off\n" 6110"[My Bluetooth Speaker]# scan off\n"
@@ -6117,27 +6118,27 @@ msgstr ""
6117"[CHG] Controller 00:11:22:33:95:7F Discovering: no\n" 6118"[CHG] Controller 00:11:22:33:95:7F Discovering: no\n"
6118 6119
6119#. type: Plain text 6120#. type: Plain text
6120#: doc/guix-cookbook.texi:3227 6121#: guix-git/doc/guix-cookbook.texi:3227
6121msgid "Congratulations, you can now automatically connect to your Bluetooth speaker!" 6122msgid "Congratulations, you can now automatically connect to your Bluetooth speaker!"
6122msgstr "Wir gratulieren: Sie bekommen jetzt eine automatische Verbindung zu Ihrem Bluetooth-Speaker!" 6123msgstr "Wir gratulieren: Sie bekommen jetzt eine automatische Verbindung zu Ihrem Bluetooth-Speaker!"
6123 6124
6124#. type: Plain text 6125#. type: Plain text
6125#: doc/guix-cookbook.texi:3237 6126#: guix-git/doc/guix-cookbook.texi:3237
6126msgid "It is now time to configure ALSA to use the @emph{bluealsa} Bluetooth module, so that you can define an ALSA pcm device corresponding to your Bluetooth speaker. For a headless server using @emph{bluealsa} with a fixed Bluetooth device is likely simpler than configuring Pulseaudio and its stream switching behavior. We configure ALSA by crafting a custom @code{alsa-configuration} for the @code{alsa-service-type}. The configuration will declare a @code{pcm} type @code{bluealsa} from the @code{bluealsa} module provided by the @code{bluez-alsa} package, and then define a @code{pcm} device of that type for your Bluetooth speaker." 6127msgid "It is now time to configure ALSA to use the @emph{bluealsa} Bluetooth module, so that you can define an ALSA pcm device corresponding to your Bluetooth speaker. For a headless server using @emph{bluealsa} with a fixed Bluetooth device is likely simpler than configuring Pulseaudio and its stream switching behavior. We configure ALSA by crafting a custom @code{alsa-configuration} for the @code{alsa-service-type}. The configuration will declare a @code{pcm} type @code{bluealsa} from the @code{bluealsa} module provided by the @code{bluez-alsa} package, and then define a @code{pcm} device of that type for your Bluetooth speaker."
6127msgstr "Es wird Zeit, ALSA einzurichten. Dabei müssen Sie es anweisen, das Bluetooth-Modul @emph{bluealsa} zu verwenden, so dass Sie ein ALSA-pcm-Gerät definieren können, das Ihrem Bluetooth-Lautsprecher entspricht. Wenn Ihr Server keine Bedienelemente haben soll, ist es einfacher, wenn Sie @emph{bluealsa} mit einem festen Bluetooth-Gerät verbinden lassen, statt mit Pulseaudio ein Umschalten der Streams einzurichten. ALSA einzurichten, geht so: Wir schreiben eine passende @code{alsa-configuration} für den @code{alsa-service-type}. In der Konfiguration deklarieren Sie den @code{pcm}-Typ @code{bluealsa} aus dem Modul @code{bluealsa} des Pakets @code{bluez-alsa}. Für diesen Typ definieren Sie dann ein @code{pcm}-Gerät für Ihren Bluetooth-Lautsprecher." 6128msgstr "Es wird Zeit, ALSA einzurichten. Dabei müssen Sie es anweisen, das Bluetooth-Modul @emph{bluealsa} zu verwenden, so dass Sie ein ALSA-pcm-Gerät definieren können, das Ihrem Bluetooth-Lautsprecher entspricht. Wenn Ihr Server keine Bedienelemente haben soll, ist es einfacher, wenn Sie @emph{bluealsa} mit einem festen Bluetooth-Gerät verbinden lassen, statt mit Pulseaudio ein Umschalten der Streams einzurichten. ALSA einzurichten, geht so: Wir schreiben eine passende @code{alsa-configuration} für den @code{alsa-service-type}. In der Konfiguration deklarieren Sie den @code{pcm}-Typ @code{bluealsa} aus dem Modul @code{bluealsa} des Pakets @code{bluez-alsa}. Für diesen Typ definieren Sie dann ein @code{pcm}-Gerät für Ihren Bluetooth-Lautsprecher."
6128 6129
6129#. type: Plain text 6130#. type: Plain text
6130#: doc/guix-cookbook.texi:3244 6131#: guix-git/doc/guix-cookbook.texi:3244
6131msgid "All that is left then is to make MPD send audio data to this ALSA device. We also add a secondary MPD output that makes the currently played audio files available as a stream through a web server on port 8080. When enabled a device on the network could listen to the audio stream by connecting any capable media player to the HTTP server on port 8080, independent of the status of the Bluetooth speaker." 6132msgid "All that is left then is to make MPD send audio data to this ALSA device. We also add a secondary MPD output that makes the currently played audio files available as a stream through a web server on port 8080. When enabled a device on the network could listen to the audio stream by connecting any capable media player to the HTTP server on port 8080, independent of the status of the Bluetooth speaker."
6132msgstr "Was bleibt, ist, MPD die Audiodaten an dieses ALSA-Gerät schicken zu lassen. Zusätzlich fügen wir eine zweite MPD-Ausgabe hinzu, womit die aktuell abgespielten Tondateien auch als Stream über einen Web-Server auf Port 8080 dargeboten werden. Es ermöglicht, dass man mit anderen Geräten im Netzwerk einen tauglichen Mediaplayer die Daten vom HTTP-Server, auf Port 8080, abspielen lässt, egal ob der Bluetooth-Lautsprecher läuft." 6133msgstr "Was bleibt, ist, MPD die Audiodaten an dieses ALSA-Gerät schicken zu lassen. Zusätzlich fügen wir eine zweite MPD-Ausgabe hinzu, womit die aktuell abgespielten Tondateien auch als Stream über einen Web-Server auf Port 8080 dargeboten werden. Es ermöglicht, dass man mit anderen Geräten im Netzwerk einen tauglichen Mediaplayer die Daten vom HTTP-Server, auf Port 8080, abspielen lässt, egal ob der Bluetooth-Lautsprecher läuft."
6133 6134
6134#. type: Plain text 6135#. type: Plain text
6135#: doc/guix-cookbook.texi:3247 6136#: guix-git/doc/guix-cookbook.texi:3247
6136msgid "What follows is the outline of an @code{operating-system} declaration that should accomplish the above-mentioned tasks:" 6137msgid "What follows is the outline of an @code{operating-system} declaration that should accomplish the above-mentioned tasks:"
6137msgstr "Es folgt ein Umriss, wie eine Betriebssystemdeklaration aussehen kann, die die oben genannten Aufgaben erfüllen dürfte:" 6138msgstr "Es folgt ein Umriss, wie eine Betriebssystemdeklaration aussehen kann, die die oben genannten Aufgaben erfüllen dürfte:"
6138 6139
6139#. type: lisp 6140#. type: lisp
6140#: doc/guix-cookbook.texi:3296 6141#: guix-git/doc/guix-cookbook.texi:3296
6141#, no-wrap 6142#, no-wrap
6142msgid "" 6143msgid ""
6143"(use-modules (gnu))\n" 6144"(use-modules (gnu))\n"
@@ -6239,7 +6240,7 @@ msgstr ""
6239"\n" 6240"\n"
6240 6241
6241#. type: lisp 6242#. type: lisp
6242#: doc/guix-cookbook.texi:3302 6243#: guix-git/doc/guix-cookbook.texi:3302
6243#, no-wrap 6244#, no-wrap
6244msgid "" 6245msgid ""
6245"# Declare control device type \\\"bluealsa\\\" from the same module\n" 6246"# Declare control device type \\\"bluealsa\\\" from the same module\n"
@@ -6257,7 +6258,7 @@ msgstr ""
6257"\n" 6258"\n"
6258 6259
6259#. type: lisp 6260#. type: lisp
6260#: doc/guix-cookbook.texi:3309 6261#: guix-git/doc/guix-cookbook.texi:3309
6261#, no-wrap 6262#, no-wrap
6262msgid "" 6263msgid ""
6263"# Define the actual Bluetooth audio device.\n" 6264"# Define the actual Bluetooth audio device.\n"
@@ -6277,7 +6278,7 @@ msgstr ""
6277"\n" 6278"\n"
6278 6279
6279#. type: lisp 6280#. type: lisp
6280#: doc/guix-cookbook.texi:3315 6281#: guix-git/doc/guix-cookbook.texi:3315
6281#, no-wrap 6282#, no-wrap
6282msgid "" 6283msgid ""
6283"# Define an associated controller.\n" 6284"# Define an associated controller.\n"
@@ -6293,48 +6294,48 @@ msgstr ""
6293"\"))))))\n" 6294"\"))))))\n"
6294 6295
6295#. type: Plain text 6296#. type: Plain text
6296#: doc/guix-cookbook.texi:3319 6297#: guix-git/doc/guix-cookbook.texi:3319
6297msgid "Enjoy the music with the MPD client of your choice or a media player capable of streaming via HTTP!" 6298msgid "Enjoy the music with the MPD client of your choice or a media player capable of streaming via HTTP!"
6298msgstr "Genießen Sie nun, wie die Musik aus dem MPD-Client Ihrer Wahl erschallt, oder einem Mediaplayer, der über HTTP streamen kann!" 6299msgstr "Genießen Sie nun, wie die Musik aus dem MPD-Client Ihrer Wahl erschallt, oder einem Mediaplayer, der über HTTP streamen kann!"
6299 6300
6300#. type: Plain text 6301#. type: Plain text
6301#: doc/guix-cookbook.texi:3332 6302#: guix-git/doc/guix-cookbook.texi:3332
6302msgid "The kernel Linux provides a number of shared facilities that are available to processes in the system. These facilities include a shared view on the file system, other processes, network devices, user and group identities, and a few others. Since Linux 3.19 a user can choose to @emph{unshare} some of these shared facilities for selected processes, providing them (and their child processes) with a different view on the system." 6303msgid "The kernel Linux provides a number of shared facilities that are available to processes in the system. These facilities include a shared view on the file system, other processes, network devices, user and group identities, and a few others. Since Linux 3.19 a user can choose to @emph{unshare} some of these shared facilities for selected processes, providing them (and their child processes) with a different view on the system."
6303msgstr "Durch den Linux-Kernel werden den Systemprozessen zahlreiche gemeinsame Ressourcen zur Verfügung gestellt, etwa eine gemeinsame Sicht auf das Dateisystem, auf andere Prozesse, Netzwerkgeräte, Benutzer- und Gruppenidentitäten und noch mehr. Seit Linux 3.19 ist es möglich, dass Benutzer einige dieser Ressourcen trennen und ausgewählten Prozessen (und deren Kindprozessen) eine andere Sicht auf das System geben." 6304msgstr "Durch den Linux-Kernel werden den Systemprozessen zahlreiche gemeinsame Ressourcen zur Verfügung gestellt, etwa eine gemeinsame Sicht auf das Dateisystem, auf andere Prozesse, Netzwerkgeräte, Benutzer- und Gruppenidentitäten und noch mehr. Seit Linux 3.19 ist es möglich, dass Benutzer einige dieser Ressourcen trennen und ausgewählten Prozessen (und deren Kindprozessen) eine andere Sicht auf das System geben."
6304 6305
6305#. type: Plain text 6306#. type: Plain text
6306#: doc/guix-cookbook.texi:3338 6307#: guix-git/doc/guix-cookbook.texi:3338
6307msgid "A process with an unshared @code{mount} namespace, for example, has its own view on the file system --- it will only be able to see directories that have been explicitly bound in its mount namespace. A process with its own @code{proc} namespace will consider itself to be the only process running on the system, running as PID 1." 6308msgid "A process with an unshared @code{mount} namespace, for example, has its own view on the file system --- it will only be able to see directories that have been explicitly bound in its mount namespace. A process with its own @code{proc} namespace will consider itself to be the only process running on the system, running as PID 1."
6308msgstr "Wenn ein Prozess zum Beispiel einen getrennten @code{mount}-Namensraum bekommt, hat er eine eigene Sicht auf das Dateisystem@tie{}– in seiner Welt kann er nur Verzeichnisse sehen, die in seinen @code{mount}-Namensraum eingebunden worden sind. Wenn ein Prozess über seinen eigenen @code{proc}-Namensraum verfügt, scheint es, als sei er der einzige Prozess, der auf dem System läuft, und seine Prozesskennung ist die PID 1." 6309msgstr "Wenn ein Prozess zum Beispiel einen getrennten @code{mount}-Namensraum bekommt, hat er eine eigene Sicht auf das Dateisystem@tie{}– in seiner Welt kann er nur Verzeichnisse sehen, die in seinen @code{mount}-Namensraum eingebunden worden sind. Wenn ein Prozess über seinen eigenen @code{proc}-Namensraum verfügt, scheint es, als sei er der einzige Prozess, der auf dem System läuft, und seine Prozesskennung ist die PID 1."
6309 6310
6310#. type: Plain text 6311#. type: Plain text
6311#: doc/guix-cookbook.texi:3345 6312#: guix-git/doc/guix-cookbook.texi:3345
6312msgid "Guix uses these kernel features to provide fully isolated environments and even complete Guix System containers, lightweight virtual machines that share the host system's kernel. This feature comes in especially handy when using Guix on a foreign distribution to prevent interference from foreign libraries or configuration files that are available system-wide." 6313msgid "Guix uses these kernel features to provide fully isolated environments and even complete Guix System containers, lightweight virtual machines that share the host system's kernel. This feature comes in especially handy when using Guix on a foreign distribution to prevent interference from foreign libraries or configuration files that are available system-wide."
6313msgstr "Guix bringt diese Kernelfunktionen für völlig isolierte Umgebungen und sogar Guix System in Containern zum Einsatz@tie{}– Container sind wie leichtgewichtige virtuelle Maschinen, die denselben Kernel wie das Wirtssystem benutzen. Daraus können Sie besonders dann Ihren Nutzen ziehen, wenn Sie Guix auf einer Fremddistribution verwenden, denn so können Sie ausschließen, dass die systemweit zugänglichen fremden Bibliotheken und Konfigurationsdateien störenden Einfluss hätten." 6314msgstr "Guix bringt diese Kernelfunktionen für völlig isolierte Umgebungen und sogar Guix System in Containern zum Einsatz@tie{}– Container sind wie leichtgewichtige virtuelle Maschinen, die denselben Kernel wie das Wirtssystem benutzen. Daraus können Sie besonders dann Ihren Nutzen ziehen, wenn Sie Guix auf einer Fremddistribution verwenden, denn so können Sie ausschließen, dass die systemweit zugänglichen fremden Bibliotheken und Konfigurationsdateien störenden Einfluss hätten."
6314 6315
6315#. type: Plain text 6316#. type: Plain text
6316#: doc/guix-cookbook.texi:3357 6317#: guix-git/doc/guix-cookbook.texi:3357
6317msgid "The easiest way to get started is to use @command{guix shell} with the @option{--container} option. @xref{Invoking guix shell,,, guix, GNU Guix Reference Manual} for a reference of valid options." 6318msgid "The easiest way to get started is to use @command{guix shell} with the @option{--container} option. @xref{Invoking guix shell,,, guix, GNU Guix Reference Manual} for a reference of valid options."
6318msgstr "Der einfachste Einstieg ist, @command{guix shell} mit der Befehlszeilenoption @option{--container} aufzurufen. Siehe @ref{Aufruf von guix shell,,, guix.de, Referenzhandbuch zu GNU Guix} für eine Referenz der möglichen Optionen." 6319msgstr "Der einfachste Einstieg ist, @command{guix shell} mit der Befehlszeilenoption @option{--container} aufzurufen. Siehe @ref{Aufruf von guix shell,,, guix.de, Referenzhandbuch zu GNU Guix} für eine Referenz der möglichen Optionen."
6319 6320
6320#. type: Plain text 6321#. type: Plain text
6321#: doc/guix-cookbook.texi:3364 6322#: guix-git/doc/guix-cookbook.texi:3364
6322msgid "The following snippet spawns a minimal shell process with most namespaces unshared from the system. The current working directory is visible to the process, but anything else on the file system is unavailable. This extreme isolation can be very useful when you want to rule out any sort of interference from environment variables, globally installed libraries, or configuration files." 6323msgid "The following snippet spawns a minimal shell process with most namespaces unshared from the system. The current working directory is visible to the process, but anything else on the file system is unavailable. This extreme isolation can be very useful when you want to rule out any sort of interference from environment variables, globally installed libraries, or configuration files."
6323msgstr "Folgende Befehle legen einen minimalen Shell-Prozess an, bei dem die meisten Namensräume vom übrigen System getrennt sind. Das aktuelle Arbeitsverzeichnis bleibt für den Prozess sichtbar, aber das restliche Dateisystem ist unzugänglich. Diese äußerste Isolation kann sehr hilfreich sein, wenn Sie jeglichen Einfluss durch Umgebungsvariable, global installierte Bibliotheken oder Konfigurationsdateien ausschließen möchten." 6324msgstr "Folgende Befehle legen einen minimalen Shell-Prozess an, bei dem die meisten Namensräume vom übrigen System getrennt sind. Das aktuelle Arbeitsverzeichnis bleibt für den Prozess sichtbar, aber das restliche Dateisystem ist unzugänglich. Diese äußerste Isolation kann sehr hilfreich sein, wenn Sie jeglichen Einfluss durch Umgebungsvariable, global installierte Bibliotheken oder Konfigurationsdateien ausschließen möchten."
6324 6325
6325#. type: example 6326#. type: example
6326#: doc/guix-cookbook.texi:3367 6327#: guix-git/doc/guix-cookbook.texi:3367
6327#, no-wrap 6328#, no-wrap
6328msgid "guix shell --container\n" 6329msgid "guix shell --container\n"
6329msgstr "guix shell --container\n" 6330msgstr "guix shell --container\n"
6330 6331
6331#. type: Plain text 6332#. type: Plain text
6332#: doc/guix-cookbook.texi:3374 6333#: guix-git/doc/guix-cookbook.texi:3374
6333msgid "It is a bleak environment, barren, desolate. You will find that not even the GNU coreutils are available here, so to explore this deserted wasteland you need to use built-in shell commands. Even the usually gigantic @file{/gnu/store} directory is reduced to a faint shadow of itself." 6334msgid "It is a bleak environment, barren, desolate. You will find that not even the GNU coreutils are available here, so to explore this deserted wasteland you need to use built-in shell commands. Even the usually gigantic @file{/gnu/store} directory is reduced to a faint shadow of itself."
6334msgstr "Diese Umgebung ist kahl und leer. Sie haben in der brachen Umgebung nicht einmal die GNU coreutils und müssen zu ihrer Erkundung mit den in die Shell eingebauten Werkzeugen vorliebnehmen. Selbst das Verzeichnis @file{/gnu/store} hat seine für gewöhnlich gigantischen Ausmaße verloren und ist nur mehr ein Schatten seiner selbst." 6335msgstr "Diese Umgebung ist kahl und leer. Sie haben in der brachen Umgebung nicht einmal die GNU coreutils und müssen zu ihrer Erkundung mit den in die Shell eingebauten Werkzeugen vorliebnehmen. Selbst das Verzeichnis @file{/gnu/store} hat seine für gewöhnlich gigantischen Ausmaße verloren und ist nur mehr ein Schatten seiner selbst."
6335 6336
6336#. type: example 6337#. type: example
6337#: doc/guix-cookbook.texi:3384 6338#: guix-git/doc/guix-cookbook.texi:3384
6338#, no-wrap 6339#, no-wrap
6339msgid "" 6340msgid ""
6340"$ echo /gnu/store/*\n" 6341"$ echo /gnu/store/*\n"
@@ -6356,41 +6357,41 @@ msgstr ""
6356"/gnu/store/…-readline-8.1.1\n" 6357"/gnu/store/…-readline-8.1.1\n"
6357 6358
6358#. type: cindex 6359#. type: cindex
6359#: doc/guix-cookbook.texi:3386 6360#: guix-git/doc/guix-cookbook.texi:3386
6360#, no-wrap 6361#, no-wrap
6361msgid "exiting a container" 6362msgid "exiting a container"
6362msgstr "Container verlassen" 6363msgstr "Container verlassen"
6363 6364
6364#. type: Plain text 6365#. type: Plain text
6365#: doc/guix-cookbook.texi:3390 6366#: guix-git/doc/guix-cookbook.texi:3390
6366msgid "There isn't much you can do in an environment like this other than exiting it. You can use @key{^D} or @command{exit} to terminate this limited shell environment." 6367msgid "There isn't much you can do in an environment like this other than exiting it. You can use @key{^D} or @command{exit} to terminate this limited shell environment."
6367msgstr "In einer solchen Umgebung gibt es nichts für Sie zu tun außer die Umgebung wieder zu verlassen. Das geht, indem Sie @key{^D} drücken oder @command{exit} aufrufen, womit die eingeschränkte Shell-Umgebung ihr Ende findet." 6368msgstr "In einer solchen Umgebung gibt es nichts für Sie zu tun außer die Umgebung wieder zu verlassen. Das geht, indem Sie @key{^D} drücken oder @command{exit} aufrufen, womit die eingeschränkte Shell-Umgebung ihr Ende findet."
6368 6369
6369#. type: cindex 6370#. type: cindex
6370#: doc/guix-cookbook.texi:3391 6371#: guix-git/doc/guix-cookbook.texi:3391
6371#, no-wrap 6372#, no-wrap
6372msgid "exposing directories, container" 6373msgid "exposing directories, container"
6373msgstr "Verzeichnisse zugänglich machen, Container" 6374msgstr "Verzeichnisse zugänglich machen, Container"
6374 6375
6375#. type: cindex 6376#. type: cindex
6376#: doc/guix-cookbook.texi:3392 6377#: guix-git/doc/guix-cookbook.texi:3392
6377#, no-wrap 6378#, no-wrap
6378msgid "sharing directories, container" 6379msgid "sharing directories, container"
6379msgstr "geteilte Verzeichnisse, Container" 6380msgstr "geteilte Verzeichnisse, Container"
6380 6381
6381#. type: cindex 6382#. type: cindex
6382#: doc/guix-cookbook.texi:3393 6383#: guix-git/doc/guix-cookbook.texi:3393
6383#, no-wrap 6384#, no-wrap
6384msgid "mapping locations, container" 6385msgid "mapping locations, container"
6385msgstr "Freigaben, Container" 6386msgstr "Freigaben, Container"
6386 6387
6387#. type: Plain text 6388#. type: Plain text
6388#: doc/guix-cookbook.texi:3402 6389#: guix-git/doc/guix-cookbook.texi:3402
6389msgid "You can make other directories available inside of the container environment; use @option{--expose=DIRECTORY} to bind-mount the given directory as a read-only location inside the container, or use @option{--share=DIRECTORY} to make the location writable. With an additional mapping argument after the directory name you can control the name of the directory inside the container. In the following example we map @file{/etc} on the host system to @file{/the/host/etc} inside a container in which the GNU coreutils are installed." 6390msgid "You can make other directories available inside of the container environment; use @option{--expose=DIRECTORY} to bind-mount the given directory as a read-only location inside the container, or use @option{--share=DIRECTORY} to make the location writable. With an additional mapping argument after the directory name you can control the name of the directory inside the container. In the following example we map @file{/etc} on the host system to @file{/the/host/etc} inside a container in which the GNU coreutils are installed."
6390msgstr "Sie können zusätzliche Verzeichnisse in der Container-Umgebung zugänglich machen. Verwenden Sie dazu @option{--expose=VERZEICHNIS} für eine Verzeichniseinbindung nur mit Lesezugriff innerhalb des Containers oder verwenden Sie @option{--share=VERZEICHNIS} für Schreibzugriff. Mit einem zusätzlichen Argument nach dem Verzeichnisnamen können Sie den Namen festlegen, der dem Verzeichnis innerhalb des Containers zugeordnet wird. Folgendes Beispiel zeigt, wie Sie das Verzeichnis @file{/etc} aus dem Wirtssystem auf @file{/das/wirtssystem/etc} innerhalb eines Containers abbilden, in dem die GNU coreutils installiert sind." 6391msgstr "Sie können zusätzliche Verzeichnisse in der Container-Umgebung zugänglich machen. Verwenden Sie dazu @option{--expose=VERZEICHNIS} für eine Verzeichniseinbindung nur mit Lesezugriff innerhalb des Containers oder verwenden Sie @option{--share=VERZEICHNIS} für Schreibzugriff. Mit einem zusätzlichen Argument nach dem Verzeichnisnamen können Sie den Namen festlegen, der dem Verzeichnis innerhalb des Containers zugeordnet wird. Folgendes Beispiel zeigt, wie Sie das Verzeichnis @file{/etc} aus dem Wirtssystem auf @file{/das/wirtssystem/etc} innerhalb eines Containers abbilden, in dem die GNU coreutils installiert sind."
6391 6392
6392#. type: example 6393#. type: example
6393#: doc/guix-cookbook.texi:3406 6394#: guix-git/doc/guix-cookbook.texi:3406
6394#, no-wrap 6395#, no-wrap
6395msgid "" 6396msgid ""
6396"$ guix shell --container --share=/etc=/the/host/etc coreutils\n" 6397"$ guix shell --container --share=/etc=/the/host/etc coreutils\n"
@@ -6400,34 +6401,34 @@ msgstr ""
6400"$ ls /das/wirtssystem/etc\n" 6401"$ ls /das/wirtssystem/etc\n"
6401 6402
6402#. type: Plain text 6403#. type: Plain text
6403#: doc/guix-cookbook.texi:3413 6404#: guix-git/doc/guix-cookbook.texi:3413
6404msgid "Similarly, you can prevent the current working directory from being mapped into the container with the @option{--no-cwd} option. Another good idea is to create a dedicated directory that will serve as the container's home directory, and spawn the container shell from that directory." 6405msgid "Similarly, you can prevent the current working directory from being mapped into the container with the @option{--no-cwd} option. Another good idea is to create a dedicated directory that will serve as the container's home directory, and spawn the container shell from that directory."
6405msgstr "Gleichermaßen können Sie verhindern, dass das aktuelle Arbeitsverzeichnis eine Zuordnung in den Container bekommt, indem Sie die Befehlszeilenoption @option{--no-cwd} angeben. Es ist eine gute Idee, ein Verzeichnis anzulegen, das innerhalb des Containers das Persönliche Verzeichnis (auch „Home-Verzeichnis“) ist. Aus diesem heraus lassen Sie die Shell für den Container starten." 6406msgstr "Gleichermaßen können Sie verhindern, dass das aktuelle Arbeitsverzeichnis eine Zuordnung in den Container bekommt, indem Sie die Befehlszeilenoption @option{--no-cwd} angeben. Es ist eine gute Idee, ein Verzeichnis anzulegen, das innerhalb des Containers das Persönliche Verzeichnis (auch „Home-Verzeichnis“) ist. Aus diesem heraus lassen Sie die Shell für den Container starten."
6406 6407
6407#. type: cindex 6408#. type: cindex
6408#: doc/guix-cookbook.texi:3414 6409#: guix-git/doc/guix-cookbook.texi:3414
6409#, no-wrap 6410#, no-wrap
6410msgid "hide system libraries, container" 6411msgid "hide system libraries, container"
6411msgstr "Systembibliotheken verbergen, Container" 6412msgstr "Systembibliotheken verbergen, Container"
6412 6413
6413#. type: cindex 6414#. type: cindex
6414#: doc/guix-cookbook.texi:3415 6415#: guix-git/doc/guix-cookbook.texi:3415
6415#, no-wrap 6416#, no-wrap
6416msgid "avoid ABI mismatch, container" 6417msgid "avoid ABI mismatch, container"
6417msgstr "inkompatible ABI beheben, Container" 6418msgstr "inkompatible ABI beheben, Container"
6418 6419
6419#. type: Plain text 6420#. type: Plain text
6420#: doc/guix-cookbook.texi:3425 6421#: guix-git/doc/guix-cookbook.texi:3425
6421msgid "On a foreign system a container environment can be used to compile software that cannot possibly be linked with system libraries or with the system's compiler toolchain. A common use-case in a research context is to install packages from within an R session. Outside of a container environment there is a good chance that the foreign compiler toolchain and incompatible system libraries are found first, resulting in incompatible binaries that cannot be used by R. In a container shell this problem disappears, as system libraries and executables simply aren't available due to the unshared @code{mount} namespace." 6422msgid "On a foreign system a container environment can be used to compile software that cannot possibly be linked with system libraries or with the system's compiler toolchain. A common use-case in a research context is to install packages from within an R session. Outside of a container environment there is a good chance that the foreign compiler toolchain and incompatible system libraries are found first, resulting in incompatible binaries that cannot be used by R. In a container shell this problem disappears, as system libraries and executables simply aren't available due to the unshared @code{mount} namespace."
6422msgstr "Auf einem fremden System ist es möglich, in einer Container-Umgebung Software zu kompilieren, die mit den Bibliotheken des Systems oder mit dessen Compiler-Toolchain inkompatibel ist. In der Forschung kommt es häufiger vor, dass man in einer R-Sitzung Pakete installieren möchte. Ohne Container ist es gut möglich, dass die Compiler-Toolchain des Fremdsystems und dessen inkompatible Bibliotheken Vorrang haben und die Binärdateien @emph{nicht} zusammenpassen und in R @emph{nicht} benutzt werden können. In einer Container-Shell gibt es das Problem @emph{nicht}, denn die Bibliotheken und Programme des äußeren Systems sind schlicht gar nicht da, weil der @code{mount}-Namensraum getrennt ist." 6423msgstr "Auf einem fremden System ist es möglich, in einer Container-Umgebung Software zu kompilieren, die mit den Bibliotheken des Systems oder mit dessen Compiler-Toolchain inkompatibel ist. In der Forschung kommt es häufiger vor, dass man in einer R-Sitzung Pakete installieren möchte. Ohne Container ist es gut möglich, dass die Compiler-Toolchain des Fremdsystems und dessen inkompatible Bibliotheken Vorrang haben und die Binärdateien @emph{nicht} zusammenpassen und in R @emph{nicht} benutzt werden können. In einer Container-Shell gibt es das Problem @emph{nicht}, denn die Bibliotheken und Programme des äußeren Systems sind schlicht gar nicht da, weil der @code{mount}-Namensraum getrennt ist."
6423 6424
6424#. type: Plain text 6425#. type: Plain text
6425#: doc/guix-cookbook.texi:3428 6426#: guix-git/doc/guix-cookbook.texi:3428
6426msgid "Let's take a comprehensive manifest providing a comfortable development environment for use with R:" 6427msgid "Let's take a comprehensive manifest providing a comfortable development environment for use with R:"
6427msgstr "Schauen wir uns ein umfassendes Manifest für eine komfortable R-Entwicklungsumgebung an:" 6428msgstr "Schauen wir uns ein umfassendes Manifest für eine komfortable R-Entwicklungsumgebung an:"
6428 6429
6429#. type: lisp 6430#. type: lisp
6430#: doc/guix-cookbook.texi:3432 6431#: guix-git/doc/guix-cookbook.texi:3432
6431#, no-wrap 6432#, no-wrap
6432msgid "" 6433msgid ""
6433"(specifications->manifest\n" 6434"(specifications->manifest\n"
@@ -6439,7 +6440,7 @@ msgstr ""
6439"\n" 6440"\n"
6440 6441
6441#. type: lisp 6442#. type: lisp
6442#: doc/guix-cookbook.texi:3437 6443#: guix-git/doc/guix-cookbook.texi:3437
6443#, no-wrap 6444#, no-wrap
6444msgid "" 6445msgid ""
6445" ;; base packages\n" 6446" ;; base packages\n"
@@ -6455,7 +6456,7 @@ msgstr ""
6455"\n" 6456"\n"
6456 6457
6457#. type: lisp 6458#. type: lisp
6458#: doc/guix-cookbook.texi:3444 6459#: guix-git/doc/guix-cookbook.texi:3444
6459#, no-wrap 6460#, no-wrap
6460msgid "" 6461msgid ""
6461" ;; Common command line tools lest the container is too empty.\n" 6462" ;; Common command line tools lest the container is too empty.\n"
@@ -6476,7 +6477,7 @@ msgstr ""
6476"\n" 6477"\n"
6477 6478
6478#. type: lisp 6479#. type: lisp
6479#: doc/guix-cookbook.texi:3447 6480#: guix-git/doc/guix-cookbook.texi:3447
6480#, no-wrap 6481#, no-wrap
6481msgid "" 6482msgid ""
6482" ;; R markdown tools\n" 6483" ;; R markdown tools\n"
@@ -6488,7 +6489,7 @@ msgstr ""
6488"\n" 6489"\n"
6489 6490
6490#. type: lisp 6491#. type: lisp
6491#: doc/guix-cookbook.texi:3463 6492#: guix-git/doc/guix-cookbook.texi:3463
6492#, no-wrap 6493#, no-wrap
6493msgid "" 6494msgid ""
6494" ;; Toolchain and common libraries for \"install.packages\"\n" 6495" ;; Toolchain and common libraries for \"install.packages\"\n"
@@ -6524,12 +6525,12 @@ msgstr ""
6524" \"zlib\"))\n" 6525" \"zlib\"))\n"
6525 6526
6526#. type: Plain text 6527#. type: Plain text
6527#: doc/guix-cookbook.texi:3469 6528#: guix-git/doc/guix-cookbook.texi:3469
6528msgid "Let's use this to run R inside a container environment. For convenience we share the @code{net} namespace to use the host system's network interfaces. Now we can build R packages from source the traditional way without having to worry about ABI mismatch or incompatibilities." 6529msgid "Let's use this to run R inside a container environment. For convenience we share the @code{net} namespace to use the host system's network interfaces. Now we can build R packages from source the traditional way without having to worry about ABI mismatch or incompatibilities."
6529msgstr "Nehmen wir dieses Manifest und richten uns eine Container-Umgebung ein, in der wir R ausführen. Der Einfachheit halber wollen wir den @code{net}-Namensraum teilen und bekommen Zugriff auf die Netzwerkschnittstellen des Wirtssystems. Damit können wir R-Pakete auf traditionelle Weise aus ihrem Quellcode erstellen, ohne uns um inkompatible ABIs oder sonstige Inkompatibilitäten sorgen zu müssen." 6530msgstr "Nehmen wir dieses Manifest und richten uns eine Container-Umgebung ein, in der wir R ausführen. Der Einfachheit halber wollen wir den @code{net}-Namensraum teilen und bekommen Zugriff auf die Netzwerkschnittstellen des Wirtssystems. Damit können wir R-Pakete auf traditionelle Weise aus ihrem Quellcode erstellen, ohne uns um inkompatible ABIs oder sonstige Inkompatibilitäten sorgen zu müssen."
6530 6531
6531#. type: example 6532#. type: example
6532#: doc/guix-cookbook.texi:3472 6533#: guix-git/doc/guix-cookbook.texi:3472
6533#, no-wrap 6534#, no-wrap
6534msgid "" 6535msgid ""
6535"$ guix shell --container --network --manifest=manifest.scm -- R\n" 6536"$ guix shell --container --network --manifest=manifest.scm -- R\n"
@@ -6539,7 +6540,7 @@ msgstr ""
6539"\n" 6540"\n"
6540 6541
6541#. type: example 6542#. type: example
6542#: doc/guix-cookbook.texi:3485 6543#: guix-git/doc/guix-cookbook.texi:3485
6543#, no-wrap 6544#, no-wrap
6544msgid "" 6545msgid ""
6545"R version 4.2.1 (2022-06-23) -- \"Funny-Looking Kid\"\n" 6546"R version 4.2.1 (2022-06-23) -- \"Funny-Looking Kid\"\n"
@@ -6571,7 +6572,7 @@ msgstr ""
6571"\n" 6572"\n"
6572 6573
6573#. type: example 6574#. type: example
6574#: doc/guix-cookbook.texi:3490 6575#: guix-git/doc/guix-cookbook.texi:3490
6575#, no-wrap 6576#, no-wrap
6576msgid "" 6577msgid ""
6577"The downloaded source packages are in\n" 6578"The downloaded source packages are in\n"
@@ -6585,32 +6586,32 @@ msgstr ""
6585"> # success!\n" 6586"> # success!\n"
6586 6587
6587#. type: Plain text 6588#. type: Plain text
6588#: doc/guix-cookbook.texi:3498 6589#: guix-git/doc/guix-cookbook.texi:3498
6589msgid "Using container shells is fun, but they can become a little cumbersome when you want to go beyond just a single interactive process. Some tasks become a lot easier when they sit on the rock solid foundation of a proper Guix System and its rich set of system services. The next section shows you how to launch a complete Guix System inside of a container." 6590msgid "Using container shells is fun, but they can become a little cumbersome when you want to go beyond just a single interactive process. Some tasks become a lot easier when they sit on the rock solid foundation of a proper Guix System and its rich set of system services. The next section shows you how to launch a complete Guix System inside of a container."
6590msgstr "Containerisierte Shells einzusetzen ist lustig, aber wenn man mehr will als einen einzelnen interaktiven Prozess, werden sie ein bisschen umständlich. Manche Aufgaben sind einfach leichter zu lösen, wenn Sie sie auf einem ordentlichen Guix-System als festem Fundament aufbauen. Dann bekämen Sie Zugriff auf das reichhaltige Angebot von Systemdiensten. Im nächsten Abschnitt wird Ihnen gezeigt, wie Sie eine vollständige Instanz von Guix System in einem Container starten können." 6591msgstr "Containerisierte Shells einzusetzen ist lustig, aber wenn man mehr will als einen einzelnen interaktiven Prozess, werden sie ein bisschen umständlich. Manche Aufgaben sind einfach leichter zu lösen, wenn Sie sie auf einem ordentlichen Guix-System als festem Fundament aufbauen. Dann bekämen Sie Zugriff auf das reichhaltige Angebot von Systemdiensten. Im nächsten Abschnitt wird Ihnen gezeigt, wie Sie eine vollständige Instanz von Guix System in einem Container starten können."
6591 6592
6592#. type: Plain text 6593#. type: Plain text
6593#: doc/guix-cookbook.texi:3512 6594#: guix-git/doc/guix-cookbook.texi:3512
6594msgid "The Guix System provides a wide array of interconnected system services that are configured declaratively to form a dependable stateless GNU System foundation for whatever tasks you throw at it. Even when using Guix on a foreign distribution you can benefit from the design of Guix System by running a system instance as a container. Using the same kernel features of unshared namespaces mentioned in the previous section, the resulting Guix System instance is isolated from the host system and only shares file system locations that you explicitly declare." 6595msgid "The Guix System provides a wide array of interconnected system services that are configured declaratively to form a dependable stateless GNU System foundation for whatever tasks you throw at it. Even when using Guix on a foreign distribution you can benefit from the design of Guix System by running a system instance as a container. Using the same kernel features of unshared namespaces mentioned in the previous section, the resulting Guix System instance is isolated from the host system and only shares file system locations that you explicitly declare."
6595msgstr "Guix System stellt eine breite Palette von ineinandergreifenden Systemdiensten zur Verfügung, welche Sie deklarativ konfigurieren, um ein verlässliches und zustandsloses GNU-System als Fundament für Ihre weiteren Aufgaben zu haben. Selbst wenn Sie Guix auf einer Fremddistribution verwenden, können Sie von diesem Aufbau profitieren, indem Sie so ein System in einem Container starten. Dabei greifen wir auf die Kernel-Funktionalität getrennter Namensräume zurück, die im vorigen Abschnitt genannt wurde. Durch sie wird die erstellte Guix-System-Instanz vom Wirtssystem isoliert und nur die Orte im Dateisystem freigegeben, die Sie ausdrücklich deklariert haben." 6596msgstr "Guix System stellt eine breite Palette von ineinandergreifenden Systemdiensten zur Verfügung, welche Sie deklarativ konfigurieren, um ein verlässliches und zustandsloses GNU-System als Fundament für Ihre weiteren Aufgaben zu haben. Selbst wenn Sie Guix auf einer Fremddistribution verwenden, können Sie von diesem Aufbau profitieren, indem Sie so ein System in einem Container starten. Dabei greifen wir auf die Kernel-Funktionalität getrennter Namensräume zurück, die im vorigen Abschnitt genannt wurde. Durch sie wird die erstellte Guix-System-Instanz vom Wirtssystem isoliert und nur die Orte im Dateisystem freigegeben, die Sie ausdrücklich deklariert haben."
6596 6597
6597#. type: Plain text 6598#. type: Plain text
6598#: doc/guix-cookbook.texi:3523 6599#: guix-git/doc/guix-cookbook.texi:3523
6599msgid "A Guix System container differs from the shell process created by @command{guix shell --container} in a number of important ways. While in a container shell the containerized process is a Bash shell process, a Guix System container runs the Shepherd as PID 1. In a system container all system services (@pxref{Services,,, guix, GNU Guix Reference Manual}) are set up just as they would be on a Guix System in a virtual machine or on bare metal---this includes daemons managed by the GNU@tie{}Shepherd (@pxref{Shepherd Services,,, guix, GNU Guix Reference Manual}) as well as other kinds of extensions to the operating system (@pxref{Service Composition,,, guix, GNU Guix Reference Manual})." 6600msgid "A Guix System container differs from the shell process created by @command{guix shell --container} in a number of important ways. While in a container shell the containerized process is a Bash shell process, a Guix System container runs the Shepherd as PID 1. In a system container all system services (@pxref{Services,,, guix, GNU Guix Reference Manual}) are set up just as they would be on a Guix System in a virtual machine or on bare metal---this includes daemons managed by the GNU@tie{}Shepherd (@pxref{Shepherd Services,,, guix, GNU Guix Reference Manual}) as well as other kinds of extensions to the operating system (@pxref{Service Composition,,, guix, GNU Guix Reference Manual})."
6600msgstr "Der Unterschied zwischen einem Guix-System-Container und einem Shell-Prozess, wie ihn @command{guix shell --container} anlegt, besteht in mehreren wichtigen Einzelheiten. Während in einem Shell-Container der containerisierte Prozess ein Bash-Shell-Prozess ist, wird in einem Guix-System-Container Shepherd als PID 1 ausgeführt. In einem Systemcontainer werden all die Systemdienste (siehe @ref{Dienste,,, guix.de, Referenzhandbuch zu GNU Guix}) auf dieselbe Weise eingerichtet wie wenn Sie Guix System in einer virtuellen Maschine oder auf echter Hardware booten@tie{}– auch die Daemons, die durch GNU@tie{}Shepherd gestartet werden (siehe @ref{Shepherd-Dienste,,, guix.de, Referenzhandbuch zu GNU Guix}) und andere Arten, das System zu erweitern (siehe @ref{Dienstkompositionen,,, guix.de, Referenzhandbuch zu GNU Guix}), sind die gleichen." 6601msgstr "Der Unterschied zwischen einem Guix-System-Container und einem Shell-Prozess, wie ihn @command{guix shell --container} anlegt, besteht in mehreren wichtigen Einzelheiten. Während in einem Shell-Container der containerisierte Prozess ein Bash-Shell-Prozess ist, wird in einem Guix-System-Container Shepherd als PID 1 ausgeführt. In einem Systemcontainer werden all die Systemdienste (siehe @ref{Dienste,,, guix.de, Referenzhandbuch zu GNU Guix}) auf dieselbe Weise eingerichtet wie wenn Sie Guix System in einer virtuellen Maschine oder auf echter Hardware booten@tie{}– auch die Daemons, die durch GNU@tie{}Shepherd gestartet werden (siehe @ref{Shepherd-Dienste,,, guix.de, Referenzhandbuch zu GNU Guix}) und andere Arten, das System zu erweitern (siehe @ref{Dienstkompositionen,,, guix.de, Referenzhandbuch zu GNU Guix}), sind die gleichen."
6601 6602
6602#. type: Plain text 6603#. type: Plain text
6603#: doc/guix-cookbook.texi:3530 6604#: guix-git/doc/guix-cookbook.texi:3530
6604msgid "The perceived increase in complexity of running a Guix System container is easily justified when dealing with more complex applications that have higher or just more rigid requirements on their execution contexts---configuration files, dedicated user accounts, directories for caches or log files, etc. In Guix System the demands of this kind of software are satisfied through the deployment of system services." 6605msgid "The perceived increase in complexity of running a Guix System container is easily justified when dealing with more complex applications that have higher or just more rigid requirements on their execution contexts---configuration files, dedicated user accounts, directories for caches or log files, etc. In Guix System the demands of this kind of software are satisfied through the deployment of system services."
6605msgstr "Dass ein Guix-System-Container eine Zunahme an Komplexität bedeute, lässt sich leicht rechtfertigen, wenn Sie mit komplexeren Anwendungen zu tun haben und deren höheren oder engeren Anforderungen an ihren Ausführungskontext@tie{}– an Konfigurationsdateien, eigene Benutzerkonten, Verzeichnisse für Zwischenspeicher oder Protokolldateien, etc. In Guix System werden solche Anforderungen einer Software durch das Aufspielen von Systemdiensten erfüllt." 6606msgstr "Dass ein Guix-System-Container eine Zunahme an Komplexität bedeute, lässt sich leicht rechtfertigen, wenn Sie mit komplexeren Anwendungen zu tun haben und deren höheren oder engeren Anforderungen an ihren Ausführungskontext@tie{}– an Konfigurationsdateien, eigene Benutzerkonten, Verzeichnisse für Zwischenspeicher oder Protokolldateien, etc. In Guix System werden solche Anforderungen einer Software durch das Aufspielen von Systemdiensten erfüllt."
6606 6607
6607#. type: Plain text 6608#. type: Plain text
6608#: doc/guix-cookbook.texi:3543 6609#: guix-git/doc/guix-cookbook.texi:3543
6609msgid "A good example might be a PostgreSQL database server. Much of the complexity of setting up such a database server is encapsulated in this deceptively short service declaration:" 6610msgid "A good example might be a PostgreSQL database server. Much of the complexity of setting up such a database server is encapsulated in this deceptively short service declaration:"
6610msgstr "Ein geeignetes Beispiel wäre ein PostgreSQL-Datenbankserver. Die Komplexität, ihn aufzusetzen, können Sie großenteils in einer verführerisch kurzen Dienstdeklaration einfangen:" 6611msgstr "Ein geeignetes Beispiel wäre ein PostgreSQL-Datenbankserver. Die Komplexität, ihn aufzusetzen, können Sie großenteils in einer verführerisch kurzen Dienstdeklaration einfangen:"
6611 6612
6612#. type: lisp 6613#. type: lisp
6613#: doc/guix-cookbook.texi:3548 6614#: guix-git/doc/guix-cookbook.texi:3548
6614#, no-wrap 6615#, no-wrap
6615msgid "" 6616msgid ""
6616"(service postgresql-service-type\n" 6617"(service postgresql-service-type\n"
@@ -6622,12 +6623,12 @@ msgstr ""
6622" (postgresql postgresql-14)))\n" 6623" (postgresql postgresql-14)))\n"
6623 6624
6624#. type: Plain text 6625#. type: Plain text
6625#: doc/guix-cookbook.texi:3552 6626#: guix-git/doc/guix-cookbook.texi:3552
6626msgid "A complete operating system declaration for use with a Guix System container would look something like this:" 6627msgid "A complete operating system declaration for use with a Guix System container would look something like this:"
6627msgstr "Eine vollumfängliche Betriebssystemdeklaration, die Sie für einen Guix-System-Container verwenden könnten, sähe in etwa so aus:" 6628msgstr "Eine vollumfängliche Betriebssystemdeklaration, die Sie für einen Guix-System-Container verwenden könnten, sähe in etwa so aus:"
6628 6629
6629#. type: lisp 6630#. type: lisp
6630#: doc/guix-cookbook.texi:3557 6631#: guix-git/doc/guix-cookbook.texi:3557
6631#, no-wrap 6632#, no-wrap
6632msgid "" 6633msgid ""
6633"(use-modules (gnu))\n" 6634"(use-modules (gnu))\n"
@@ -6641,7 +6642,7 @@ msgstr ""
6641"\n" 6642"\n"
6642 6643
6643#. type: lisp 6644#. type: lisp
6644#: doc/guix-cookbook.texi:3591 6645#: guix-git/doc/guix-cookbook.texi:3591
6645#, no-wrap 6646#, no-wrap
6646msgid "" 6647msgid ""
6647"(operating-system\n" 6648"(operating-system\n"
@@ -6713,17 +6714,17 @@ msgstr ""
6713" %base-services)))\n" 6714" %base-services)))\n"
6714 6715
6715#. type: Plain text 6716#. type: Plain text
6716#: doc/guix-cookbook.texi:3599 6717#: guix-git/doc/guix-cookbook.texi:3599
6717msgid "With @code{postgresql-role-service-type} we define a role ``test'' and create a matching database, so that we can test right away without any further manual setup. The @code{postgresql-config-file} settings allow a client from IP address 10.0.0.1 to connect without requiring authentication---a bad idea in production systems, but convenient for this example." 6718msgid "With @code{postgresql-role-service-type} we define a role ``test'' and create a matching database, so that we can test right away without any further manual setup. The @code{postgresql-config-file} settings allow a client from IP address 10.0.0.1 to connect without requiring authentication---a bad idea in production systems, but convenient for this example."
6718msgstr "Mit @code{postgresql-role-service-type} definieren wir eine Rolle namens „test“ und lassen eine zugehörige Datenbank erzeugen, so dass wir gleich mit dem Testen anfangen können ohne weitere manuelle Schritte. Mit den Einstellungen in @code{postgresql-config-file} wird einem Client mit der IP-Adresse 10.0.0.1 die Berechtigung verliehen, eine Verbindung zur Datenbank aufzubauen, ohne sich authentisieren zu müssen@tie{}– eigentlich keine gute Idee bei Produktivsystemen, aber für dieses Beispiel geeignet." 6719msgstr "Mit @code{postgresql-role-service-type} definieren wir eine Rolle namens „test“ und lassen eine zugehörige Datenbank erzeugen, so dass wir gleich mit dem Testen anfangen können ohne weitere manuelle Schritte. Mit den Einstellungen in @code{postgresql-config-file} wird einem Client mit der IP-Adresse 10.0.0.1 die Berechtigung verliehen, eine Verbindung zur Datenbank aufzubauen, ohne sich authentisieren zu müssen@tie{}– eigentlich keine gute Idee bei Produktivsystemen, aber für dieses Beispiel geeignet."
6719 6720
6720#. type: Plain text 6721#. type: Plain text
6721#: doc/guix-cookbook.texi:3605 6722#: guix-git/doc/guix-cookbook.texi:3605
6722msgid "Let's build a script that will launch an instance of this Guix System as a container. Write the @code{operating-system} declaration above to a file @file{os.scm} and then use @command{guix system container} to build the launcher. (@pxref{Invoking guix system,,, guix, GNU Guix Reference Manual})." 6723msgid "Let's build a script that will launch an instance of this Guix System as a container. Write the @code{operating-system} declaration above to a file @file{os.scm} and then use @command{guix system container} to build the launcher. (@pxref{Invoking guix system,,, guix, GNU Guix Reference Manual})."
6723msgstr "Erstellen wir uns ein Skript, das eine Instanz dieses Guix-Systems als Container anlegt. Nachdem Sie obige Betriebssystemdeklaration mit dem @code{operating-system} in eine Datei @file{os.scm} speichern, entsteht das Startprogramm für den Container durch einen Aufruf von @command{guix system container} (siehe @ref{Aufruf von guix system,,, guix.de, Referenzhandbuch zu GNU Guix})." 6724msgstr "Erstellen wir uns ein Skript, das eine Instanz dieses Guix-Systems als Container anlegt. Nachdem Sie obige Betriebssystemdeklaration mit dem @code{operating-system} in eine Datei @file{os.scm} speichern, entsteht das Startprogramm für den Container durch einen Aufruf von @command{guix system container} (siehe @ref{Aufruf von guix system,,, guix.de, Referenzhandbuch zu GNU Guix})."
6724 6725
6725#. type: example 6726#. type: example
6726#: doc/guix-cookbook.texi:3613 6727#: guix-git/doc/guix-cookbook.texi:3613
6727#, no-wrap 6728#, no-wrap
6728msgid "" 6729msgid ""
6729"$ guix system container os.scm\n" 6730"$ guix system container os.scm\n"
@@ -6741,12 +6742,12 @@ msgstr ""
6741"/gnu/store/…-run-container\n" 6742"/gnu/store/…-run-container\n"
6742 6743
6743#. type: Plain text 6744#. type: Plain text
6744#: doc/guix-cookbook.texi:3619 6745#: guix-git/doc/guix-cookbook.texi:3619
6745msgid "Now that we have a launcher script we can run it to spawn the new system with a running PostgreSQL service. Note that due to some as yet unresolved limitations we need to run the launcher as the root user, for example with @command{sudo}." 6746msgid "Now that we have a launcher script we can run it to spawn the new system with a running PostgreSQL service. Note that due to some as yet unresolved limitations we need to run the launcher as the root user, for example with @command{sudo}."
6746msgstr "Jetzt, wo unser Startprogramm fertig ist, können wir es ausführen und ein neues System mit einem laufenden PostgreSQL-Dienst entschlüpft. Anmerkung: Aufgrund derzeit noch ungelöster Einschränkungen kann das Startprogramm nur mit Administratorrechten ausgeführt werden, zum Beispiel mit @command{sudo}." 6747msgstr "Jetzt, wo unser Startprogramm fertig ist, können wir es ausführen und ein neues System mit einem laufenden PostgreSQL-Dienst entschlüpft. Anmerkung: Aufgrund derzeit noch ungelöster Einschränkungen kann das Startprogramm nur mit Administratorrechten ausgeführt werden, zum Beispiel mit @command{sudo}."
6747 6748
6748#. type: example 6749#. type: example
6749#: doc/guix-cookbook.texi:3624 6750#: guix-git/doc/guix-cookbook.texi:3624
6750#, no-wrap 6751#, no-wrap
6751msgid "" 6752msgid ""
6752"$ sudo /gnu/store/@dots{}-run-container\n" 6753"$ sudo /gnu/store/@dots{}-run-container\n"
@@ -6758,12 +6759,12 @@ msgstr ""
6758"…\n" 6759"…\n"
6759 6760
6760#. type: Plain text 6761#. type: Plain text
6761#: doc/guix-cookbook.texi:3631 6762#: guix-git/doc/guix-cookbook.texi:3631
6762msgid "Background the process with @key{Ctrl-z} followed by @command{bg}. Note the process ID in the output; we will need it to connect to the container later. You know what? Let's try attaching to the container right now. We will use @command{nsenter}, a tool provided by the @code{util-linux} package:" 6763msgid "Background the process with @key{Ctrl-z} followed by @command{bg}. Note the process ID in the output; we will need it to connect to the container later. You know what? Let's try attaching to the container right now. We will use @command{nsenter}, a tool provided by the @code{util-linux} package:"
6763msgstr "Versetzen Sie den Prozess in den Hintergrund, indem Sie @key{Strg-z} drücken und danach @command{bg} eingeben. Achten Sie auf die ausgegebene Prozesskennung (PID); wir brauchen sie später noch, um uns mit dem Container zu verbinden. Wissen Sie was? Schauen wir uns doch gleich an, wie Sie eine Verbindung zum Container herstellen. Dazu benutzen wir @command{nsenter}, ein Werkzeug, das im Paket @code{util-linux} zu finden ist:" 6764msgstr "Versetzen Sie den Prozess in den Hintergrund, indem Sie @key{Strg-z} drücken und danach @command{bg} eingeben. Achten Sie auf die ausgegebene Prozesskennung (PID); wir brauchen sie später noch, um uns mit dem Container zu verbinden. Wissen Sie was? Schauen wir uns doch gleich an, wie Sie eine Verbindung zum Container herstellen. Dazu benutzen wir @command{nsenter}, ein Werkzeug, das im Paket @code{util-linux} zu finden ist:"
6764 6765
6765#. type: example 6766#. type: example
6766#: doc/guix-cookbook.texi:3644 6767#: guix-git/doc/guix-cookbook.texi:3644
6767#, no-wrap 6768#, no-wrap
6768msgid "" 6769msgid ""
6769"$ guix shell util-linux\n" 6770"$ guix shell util-linux\n"
@@ -6791,28 +6792,28 @@ msgstr ""
6791"root@@container /# exit\n" 6792"root@@container /# exit\n"
6792 6793
6793#. type: Plain text 6794#. type: Plain text
6794#: doc/guix-cookbook.texi:3647 6795#: guix-git/doc/guix-cookbook.texi:3647
6795msgid "The PostgreSQL service is running in the container!" 6796msgid "The PostgreSQL service is running in the container!"
6796msgstr "Wie Sie sehen, läuft der PostgreSQL-Dienst im Container!" 6797msgstr "Wie Sie sehen, läuft der PostgreSQL-Dienst im Container!"
6797 6798
6798#. type: cindex 6799#. type: cindex
6799#: doc/guix-cookbook.texi:3651 6800#: guix-git/doc/guix-cookbook.texi:3651
6800#, no-wrap 6801#, no-wrap
6801msgid "container networking" 6802msgid "container networking"
6802msgstr "Container-Netzwerkverbindung" 6803msgstr "Container-Netzwerkverbindung"
6803 6804
6804#. type: Plain text 6805#. type: Plain text
6805#: doc/guix-cookbook.texi:3657 6806#: guix-git/doc/guix-cookbook.texi:3657
6806msgid "What good is a Guix System running a PostgreSQL database service as a container when we can only talk to it with processes originating in the container? It would be much better if we could talk to the database over the network." 6807msgid "What good is a Guix System running a PostgreSQL database service as a container when we can only talk to it with processes originating in the container? It would be much better if we could talk to the database over the network."
6807msgstr "Was nützt ein Guix System mit laufendem PostgreSQL-Datenbankdienst in einem Container, wenn es nur mit Prozessen reden kann, die ihren Ursprung in dem Container haben? Viel besser wäre es doch, könnten wir die Datenbank über das Netzwerk ansprechen." 6808msgstr "Was nützt ein Guix System mit laufendem PostgreSQL-Datenbankdienst in einem Container, wenn es nur mit Prozessen reden kann, die ihren Ursprung in dem Container haben? Viel besser wäre es doch, könnten wir die Datenbank über das Netzwerk ansprechen."
6808 6809
6809#. type: Plain text 6810#. type: Plain text
6810#: doc/guix-cookbook.texi:3663 6811#: guix-git/doc/guix-cookbook.texi:3663
6811msgid "The easiest way to do this is to create a pair of connected virtual Ethernet devices (known as @code{veth}). We move one of the devices (@code{ceth-test}) into the @code{net} namespace of the container and leave the other end (@code{veth-test}) of the connection on the host system." 6812msgid "The easiest way to do this is to create a pair of connected virtual Ethernet devices (known as @code{veth}). We move one of the devices (@code{ceth-test}) into the @code{net} namespace of the container and leave the other end (@code{veth-test}) of the connection on the host system."
6812msgstr "Am einfachsten geht das mit einem Paar verbundener virtueller Ethernet-Geräte (bekannt als @code{veth}). Wir schieben das eine Gerät (@code{ceth-test}) in den @code{net}-Namensraum des Containers und lassen das andere Ende (@code{veth-test}) der Verbindung auf dem Wirtssystem." 6813msgstr "Am einfachsten geht das mit einem Paar verbundener virtueller Ethernet-Geräte (bekannt als @code{veth}). Wir schieben das eine Gerät (@code{ceth-test}) in den @code{net}-Namensraum des Containers und lassen das andere Ende (@code{veth-test}) der Verbindung auf dem Wirtssystem."
6813 6814
6814#. type: example 6815#. type: example
6815#: doc/guix-cookbook.texi:3669 6816#: guix-git/doc/guix-cookbook.texi:3669
6816#, no-wrap 6817#, no-wrap
6817msgid "" 6818msgid ""
6818"pid=5983\n" 6819"pid=5983\n"
@@ -6828,7 +6829,7 @@ msgstr ""
6828"\n" 6829"\n"
6829 6830
6830#. type: example 6831#. type: example
6831#: doc/guix-cookbook.texi:3672 6832#: guix-git/doc/guix-cookbook.texi:3672
6832#, no-wrap 6833#, no-wrap
6833msgid "" 6834msgid ""
6834"# Attach the new net namespace \"guix-test\" to the container PID.\n" 6835"# Attach the new net namespace \"guix-test\" to the container PID.\n"
@@ -6840,7 +6841,7 @@ msgstr ""
6840"\n" 6841"\n"
6841 6842
6842#. type: example 6843#. type: example
6843#: doc/guix-cookbook.texi:3675 6844#: guix-git/doc/guix-cookbook.texi:3675
6844#, no-wrap 6845#, no-wrap
6845msgid "" 6846msgid ""
6846"# Create the pair of devices\n" 6847"# Create the pair of devices\n"
@@ -6852,7 +6853,7 @@ msgstr ""
6852"\n" 6853"\n"
6853 6854
6854#. type: example 6855#. type: example
6855#: doc/guix-cookbook.texi:3678 6856#: guix-git/doc/guix-cookbook.texi:3678
6856#, no-wrap 6857#, no-wrap
6857msgid "" 6858msgid ""
6858"# Move the client device into the container's net namespace\n" 6859"# Move the client device into the container's net namespace\n"
@@ -6862,12 +6863,12 @@ msgstr ""
6862"sudo ip link set $client netns $ns\n" 6863"sudo ip link set $client netns $ns\n"
6863 6864
6864#. type: Plain text 6865#. type: Plain text
6865#: doc/guix-cookbook.texi:3681 6866#: guix-git/doc/guix-cookbook.texi:3681
6866msgid "Then we configure the host side:" 6867msgid "Then we configure the host side:"
6867msgstr "Anschließend konfigurieren wir die Wirtsseite:" 6868msgstr "Anschließend konfigurieren wir die Wirtsseite:"
6868 6869
6869#. type: example 6870#. type: example
6870#: doc/guix-cookbook.texi:3685 6871#: guix-git/doc/guix-cookbook.texi:3685
6871#, no-wrap 6872#, no-wrap
6872msgid "" 6873msgid ""
6873"sudo ip link set $host up\n" 6874"sudo ip link set $host up\n"
@@ -6877,12 +6878,12 @@ msgstr ""
6877"sudo ip addr add 10.0.0.1/24 dev $host\n" 6878"sudo ip addr add 10.0.0.1/24 dev $host\n"
6878 6879
6879#. type: Plain text 6880#. type: Plain text
6880#: doc/guix-cookbook.texi:3688 6881#: guix-git/doc/guix-cookbook.texi:3688
6881msgid "@dots{}and then we configure the client side:" 6882msgid "@dots{}and then we configure the client side:"
6882msgstr "… und dann konfigurieren wir die Clientseite:" 6883msgstr "… und dann konfigurieren wir die Clientseite:"
6883 6884
6884#. type: example 6885#. type: example
6885#: doc/guix-cookbook.texi:3693 6886#: guix-git/doc/guix-cookbook.texi:3693
6886#, no-wrap 6887#, no-wrap
6887msgid "" 6888msgid ""
6888"sudo ip netns exec $ns ip link set lo up\n" 6889"sudo ip netns exec $ns ip link set lo up\n"
@@ -6894,12 +6895,12 @@ msgstr ""
6894"sudo ip netns exec $ns ip addr add 10.0.0.2/24 dev $client\n" 6895"sudo ip netns exec $ns ip addr add 10.0.0.2/24 dev $client\n"
6895 6896
6896#. type: Plain text 6897#. type: Plain text
6897#: doc/guix-cookbook.texi:3699 6898#: guix-git/doc/guix-cookbook.texi:3699
6898msgid "At this point the host can reach the container at IP address 10.0.0.2, and the container can reach the host at IP 10.0.0.1. This is all we need to talk to the database server inside the container from the host system on the outside." 6899msgid "At this point the host can reach the container at IP address 10.0.0.2, and the container can reach the host at IP 10.0.0.1. This is all we need to talk to the database server inside the container from the host system on the outside."
6899msgstr "Zu diesem Zeitpunkt kann der Wirt den Container unter der IP-Adresse 10.0.0.2 erreichen und der Container kann seinerseits den Wirt auf IP-Adresse 10.0.0.1 erreichen. Das war alles, um mit dem Datenbankdienst, der im Container steckt, vom außen liegenden Wirtssystem aus reden zu können." 6900msgstr "Zu diesem Zeitpunkt kann der Wirt den Container unter der IP-Adresse 10.0.0.2 erreichen und der Container kann seinerseits den Wirt auf IP-Adresse 10.0.0.1 erreichen. Das war alles, um mit dem Datenbankdienst, der im Container steckt, vom außen liegenden Wirtssystem aus reden zu können."
6900 6901
6901#. type: example 6902#. type: example
6902#: doc/guix-cookbook.texi:3704 6903#: guix-git/doc/guix-cookbook.texi:3704
6903#, no-wrap 6904#, no-wrap
6904msgid "" 6905msgid ""
6905"$ psql -h 10.0.0.2 -U test\n" 6906"$ psql -h 10.0.0.2 -U test\n"
@@ -6913,7 +6914,7 @@ msgstr ""
6913"\n" 6914"\n"
6914 6915
6915#. type: example 6916#. type: example
6916#: doc/guix-cookbook.texi:3714 6917#: guix-git/doc/guix-cookbook.texi:3714
6917#, no-wrap 6918#, no-wrap
6918msgid "" 6919msgid ""
6919"test=> CREATE TABLE hello (who TEXT NOT NULL);\n" 6920"test=> CREATE TABLE hello (who TEXT NOT NULL);\n"
@@ -6937,12 +6938,12 @@ msgstr ""
6937"(1 row)\n" 6938"(1 row)\n"
6938 6939
6939#. type: Plain text 6940#. type: Plain text
6940#: doc/guix-cookbook.texi:3717 6941#: guix-git/doc/guix-cookbook.texi:3717
6941msgid "Now that we're done with this little demonstration let's clean up:" 6942msgid "Now that we're done with this little demonstration let's clean up:"
6942msgstr "Jetzt, wo wir mit der kurzen Demonstration fertig sind, geht es an’s Aufräumen:" 6943msgstr "Jetzt, wo wir mit der kurzen Demonstration fertig sind, geht es an’s Aufräumen:"
6943 6944
6944#. type: example 6945#. type: example
6945#: doc/guix-cookbook.texi:3722 6946#: guix-git/doc/guix-cookbook.texi:3722
6946#, no-wrap 6947#, no-wrap
6947msgid "" 6948msgid ""
6948"sudo kill $pid\n" 6949"sudo kill $pid\n"
@@ -6954,134 +6955,138 @@ msgstr ""
6954"sudo ip link del $host\n" 6955"sudo ip link del $host\n"
6955 6956
6956#. type: Plain text 6957#. type: Plain text
6957#: doc/guix-cookbook.texi:3731 6958#: guix-git/doc/guix-cookbook.texi:3731
6958msgid "Guix can produce disk images (@pxref{Invoking guix system,,, guix, GNU Guix Reference Manual}) that can be used with virtual machines solutions such as virt-manager, GNOME Boxes or the more bare QEMU, among others." 6959msgid "Guix can produce disk images (@pxref{Invoking guix system,,, guix, GNU Guix Reference Manual}) that can be used with virtual machines solutions such as virt-manager, GNOME Boxes or the more bare QEMU, among others."
6959msgstr "Mit Guix können Sie Disk-Images erzeugen (siehe @ref{Aufruf von guix system,,, guix.de, Referenzhandbuch zu GNU Guix}), um sie in Software für virtuelle Maschinen wie virt-manager, GNOME Boxes oder auch dem schlichten QEMU einzusetzen, nur als Beispiel." 6960msgstr "Mit Guix können Sie Disk-Images erzeugen (siehe @ref{Aufruf von guix system,,, guix.de, Referenzhandbuch zu GNU Guix}), um sie in Software für virtuelle Maschinen wie virt-manager, GNOME Boxes oder auch dem schlichten QEMU einzusetzen, nur als Beispiel."
6960 6961
6961#. type: Plain text 6962#. type: Plain text
6962#: doc/guix-cookbook.texi:3734 6963#: guix-git/doc/guix-cookbook.texi:3734
6963msgid "This chapter aims to provide hands-on, practical examples that relates to the usage and configuration of virtual machines on a Guix System." 6964msgid "This chapter aims to provide hands-on, practical examples that relates to the usage and configuration of virtual machines on a Guix System."
6964msgstr "In diesem Kapitel wollen wir direkt nutzbare, praktische Beispiele anschauen, wie man virtuelle Maschinen auf Guix System konfigurieren und nutzen will." 6965msgstr "In diesem Kapitel wollen wir direkt nutzbare, praktische Beispiele anschauen, wie man virtuelle Maschinen auf Guix System konfigurieren und nutzen will."
6965 6966
6966#. type: cindex 6967#. type: cindex
6967#: doc/guix-cookbook.texi:3742 6968#: guix-git/doc/guix-cookbook.texi:3742
6968#, no-wrap 6969#, no-wrap
6969msgid "Network bridge interface" 6970msgid "Network bridge interface"
6970msgstr "Netzwerkbrücke als Schnittstelle" 6971msgstr "Netzwerkbrücke als Schnittstelle"
6971 6972
6972#. type: cindex 6973#. type: cindex
6973#: doc/guix-cookbook.texi:3743 6974#: guix-git/doc/guix-cookbook.texi:3743
6974#, no-wrap 6975#, no-wrap
6975msgid "networking, bridge" 6976msgid "networking, bridge"
6976msgstr "Netzwerk, Bridge" 6977msgstr "Netzwerk, Bridge"
6977 6978
6978#. type: cindex 6979#. type: cindex
6979#: doc/guix-cookbook.texi:3744 6980#: guix-git/doc/guix-cookbook.texi:3744
6980#, no-wrap 6981#, no-wrap
6981msgid "qemu, network bridge" 6982msgid "qemu, network bridge"
6982msgstr "QEMU, Netzwerk-Bridge" 6983msgstr "QEMU, Netzwerk-Bridge"
6983 6984
6984#. type: Plain text 6985#. type: Plain text
6985#: doc/guix-cookbook.texi:3756 6986#: guix-git/doc/guix-cookbook.texi:3756
6986msgid "By default, QEMU uses a so-called ``user mode'' host network back-end, which is convenient as it does not require any configuration. Unfortunately, it is also quite limited. In this mode, the guest @abbr{VM, virtual machine} can access the network the same way the host would, but it cannot be reached from the host. Additionally, since the QEMU user networking mode relies on ICMP, ICMP-based networking tools such as @command{ping} do @emph{not} work in this mode. Thus, it is often desirable to configure a network bridge, which enables the guest to fully participate in the network. This is necessary, for example, when the guest is to be used as a server." 6987msgid "By default, QEMU uses a so-called ``user mode'' host network back-end, which is convenient as it does not require any configuration. Unfortunately, it is also quite limited. In this mode, the guest @abbr{VM, virtual machine} can access the network the same way the host would, but it cannot be reached from the host. Additionally, since the QEMU user networking mode relies on ICMP, ICMP-based networking tools such as @command{ping} do @emph{not} work in this mode. Thus, it is often desirable to configure a network bridge, which enables the guest to fully participate in the network. This is necessary, for example, when the guest is to be used as a server."
6987msgstr "In der Voreinstellung wird der QEMU-Netzwerkstapel auf dem Wirtssystem als normaler Nutzer ausgeführt („User-Mode Host Network Back-end“), was den Vorteil hat, dass man nichts weiter konfigurieren muss. Unglücklicherweise kann man damit @emph{nicht} alles machen. In diesem Modus bekommt die Gast-@abbr{VM, virtuelle Maschine} Zugriff auf das Netzwerk auf dieselbe Weise wie das Wirtssystem, aber vom Wirt aus kann man keine Verbindung zum Gast zustande bringen. Außerdem können, weil in QEMU das User-Mode-Netzwerk über ICMP läuft, @emph{keine} ICMP-basierten Netzwerkprogramme wie @command{ping} funktionieren. Daher ist es oft ratsam, eine Netzwerkbrücke zu konfigurieren, über die das Gastsystem vollständig am Netzwerk teilhat. So kann man auf dem Gast auch einen Server betreiben." 6988msgstr "In der Voreinstellung wird der QEMU-Netzwerkstapel auf dem Wirtssystem als normaler Nutzer ausgeführt („User-Mode Host Network Back-end“), was den Vorteil hat, dass man nichts weiter konfigurieren muss. Unglücklicherweise kann man damit @emph{nicht} alles machen. In diesem Modus bekommt die Gast-@abbr{VM, virtuelle Maschine} Zugriff auf das Netzwerk auf dieselbe Weise wie das Wirtssystem, aber vom Wirt aus kann man keine Verbindung zum Gast zustande bringen. Außerdem können, weil in QEMU das User-Mode-Netzwerk über ICMP läuft, @emph{keine} ICMP-basierten Netzwerkprogramme wie @command{ping} funktionieren. Daher ist es oft ratsam, eine Netzwerkbrücke zu konfigurieren, über die das Gastsystem vollständig am Netzwerk teilhat. So kann man auf dem Gast auch einen Server betreiben."
6988 6989
6989#. type: subsection 6990#. type: subsection
6990#: doc/guix-cookbook.texi:3757 6991#: guix-git/doc/guix-cookbook.texi:3757
6991#, no-wrap 6992#, no-wrap
6992msgid "Creating a network bridge interface" 6993msgid "Creating a network bridge interface"
6993msgstr "Eine Netzwerkbrücken-Schnittstelle aufbauen" 6994msgstr "Eine Netzwerkbrücken-Schnittstelle aufbauen"
6994 6995
6995#. type: Plain text 6996#. type: Plain text
6996#: doc/guix-cookbook.texi:3763 6997#: guix-git/doc/guix-cookbook.texi:3763
6997msgid "There are many ways to create a network bridge. The following command shows how to use NetworkManager and its @command{nmcli} command line interface (CLI) tool, which should already be available if your operating system declaration is based on one of the desktop templates:" 6998msgid "There are many ways to create a network bridge. The following command shows how to use NetworkManager and its @command{nmcli} command line interface (CLI) tool, which should already be available if your operating system declaration is based on one of the desktop templates:"
6998msgstr "Es gibt viele Möglichkeiten, wie man eine Netzwerkbrücke herstellen kann. Wenn die Betriebssystemdeklaration Ihres Systems auf einer der Vorlagen für Desktop-Rechner basiert, läuft darauf NetworkManager. Mit folgendem Befehl kann man NetworkManager über dessen befehlszeilenbasiertes Programm @command{nmcli} („Command Line Interface“, CLI) anweisen, eine Netzwerkbrücke aufzubauen:" 6999msgstr "Es gibt viele Möglichkeiten, wie man eine Netzwerkbrücke herstellen kann. Wenn die Betriebssystemdeklaration Ihres Systems auf einer der Vorlagen für Desktop-Rechner basiert, läuft darauf NetworkManager. Mit folgendem Befehl kann man NetworkManager über dessen befehlszeilenbasiertes Programm @command{nmcli} („Command Line Interface“, CLI) anweisen, eine Netzwerkbrücke aufzubauen:"
6999 7000
7000#. type: example 7001#. type: example
7001#: doc/guix-cookbook.texi:3766 7002#: guix-git/doc/guix-cookbook.texi:3766
7002#, no-wrap 7003#, no-wrap
7003msgid "# nmcli con add type bridge con-name br0 ifname br0\n" 7004msgid "# nmcli con add type bridge con-name br0 ifname br0\n"
7004msgstr "# nmcli con add type bridge con-name br0 ifname br0\n" 7005msgstr "# nmcli con add type bridge con-name br0 ifname br0\n"
7005 7006
7006#. type: Plain text 7007#. type: Plain text
7007#: doc/guix-cookbook.texi:3772 7008#: guix-git/doc/guix-cookbook.texi:3772
7008msgid "To have this bridge be part of your network, you must associate your network bridge with the Ethernet interface used to connect with the network. Assuming your interface is named @samp{enp2s0}, the following command can be used to do so:" 7009msgid "To have this bridge be part of your network, you must associate your network bridge with the Ethernet interface used to connect with the network. Assuming your interface is named @samp{enp2s0}, the following command can be used to do so:"
7009msgstr "Um diese Brücke zu Ihrem Netzwerk hinzuzufügen, müssen Sie Ihre Netzwerkbrücke der Ethernet-Schnittstelle zuordnen, über die Sie sich mit dem Netzwerk verbinden. Wenn Ihre Schnittstelle z.B.@: die Bezeichnung @samp{enp2s0} hat, dann wird die Zuordnung mit folgendem Befehl hergestellt:" 7010msgstr "Um diese Brücke zu Ihrem Netzwerk hinzuzufügen, müssen Sie Ihre Netzwerkbrücke der Ethernet-Schnittstelle zuordnen, über die Sie sich mit dem Netzwerk verbinden. Wenn Ihre Schnittstelle z.B.@: die Bezeichnung @samp{enp2s0} hat, dann wird die Zuordnung mit folgendem Befehl hergestellt:"
7010 7011
7011#. type: example 7012#. type: example
7012#: doc/guix-cookbook.texi:3775 7013#: guix-git/doc/guix-cookbook.texi:3775
7013#, no-wrap 7014#, no-wrap
7014msgid "# nmcli con add type bridge-slave ifname enp2s0 master br0\n" 7015msgid "# nmcli con add type bridge-slave ifname enp2s0 master br0\n"
7015msgstr "# nmcli con add type bridge-slave ifname enp2s0 master br0\n" 7016msgstr "# nmcli con add type bridge-slave ifname enp2s0 master br0\n"
7016 7017
7017#. type: quotation 7018#. type: quotation
7018#: doc/guix-cookbook.texi:3777 doc/guix-cookbook.texi:3817 7019#: guix-git/doc/guix-cookbook.texi:3777 guix-git/doc/guix-cookbook.texi:3819
7019#, no-wrap 7020#, no-wrap
7020msgid "Important" 7021msgid "Important"
7021msgstr "Wichtig" 7022msgstr "Wichtig"
7022 7023
7023#. type: quotation 7024#. type: quotation
7024#: doc/guix-cookbook.texi:3781 7025#: guix-git/doc/guix-cookbook.texi:3781
7025msgid "Only Ethernet interfaces can be added to a bridge. For wireless interfaces, consider the routed network approach detailed in @xref{Routed network for libvirt}." 7026msgid "Only Ethernet interfaces can be added to a bridge. For wireless interfaces, consider the routed network approach detailed in @xref{Routed network for libvirt}."
7026msgstr "Zu einer Brücke können nur Ethernet-Schnittstellen hinzugefügt werden. Wenn Sie ein Drahtlosnetzwerk benutzen, richten Sie wohl besser Routing für Ihr Netzwerk ein, beschrieben in @ref{Routed network for libvirt}." 7027msgstr "Zu einer Brücke können nur Ethernet-Schnittstellen hinzugefügt werden. Wenn Sie ein Drahtlosnetzwerk benutzen, richten Sie wohl besser Routing für Ihr Netzwerk ein, beschrieben in @ref{Routed network for libvirt}."
7027 7028
7028#. type: Plain text 7029#. type: Plain text
7029#: doc/guix-cookbook.texi:3787 7030#: guix-git/doc/guix-cookbook.texi:3787
7030msgid "By default, the network bridge will allow your guests to obtain their IP address via DHCP, if available on your local network. For simplicity, this is what we will use here. To easily find the guests, they can be configured to advertise their host names via mDNS." 7031msgid "By default, the network bridge will allow your guests to obtain their IP address via DHCP, if available on your local network. For simplicity, this is what we will use here. To easily find the guests, they can be configured to advertise their host names via mDNS."
7031msgstr "In der Voreinstellung ermöglicht es die Netzwerkbrücke den Gastsystemen, ihre IP-Adressen mittels DHCP zu beziehen, wenn DHCP auf Ihrem lokalen Netzwerk zur Verfügung gestellt wird. Weil das einfach ist, werden wir es hier benutzen. Um Gastmaschinen im Netzwerk zu finden, können Sie die Gäste so konfigurieren, dass diese ihre Rechnernamen über mDNS mitteilen." 7032msgstr "In der Voreinstellung ermöglicht es die Netzwerkbrücke den Gastsystemen, ihre IP-Adressen mittels DHCP zu beziehen, wenn DHCP auf Ihrem lokalen Netzwerk zur Verfügung gestellt wird. Weil das einfach ist, werden wir es hier benutzen. Um Gastmaschinen im Netzwerk zu finden, können Sie die Gäste so konfigurieren, dass diese ihre Rechnernamen über mDNS mitteilen."
7032 7033
7033#. type: subsection 7034#. type: subsection
7034#: doc/guix-cookbook.texi:3788 7035#: guix-git/doc/guix-cookbook.texi:3788
7035#, no-wrap 7036#, no-wrap
7036msgid "Configuring the QEMU bridge helper script" 7037msgid "Configuring the QEMU bridge helper script"
7037msgstr "Das QEMU-Bridge-Helper-Skript konfigurieren" 7038msgstr "Das QEMU-Bridge-Helper-Skript konfigurieren"
7038 7039
7039#. type: Plain text 7040#. type: Plain text
7040#: doc/guix-cookbook.texi:3796 7041#: guix-git/doc/guix-cookbook.texi:3796
7041msgid "QEMU comes with a helper program to conveniently make use of a network bridge interface as an unprivileged user @pxref{Network options,,, QEMU, QEMU Documentation}. The binary must be made setuid root for proper operation; this can be achieved by adding it to the @code{setuid-programs} field of your (host) @code{operating-system} definition, as shown below:" 7042msgid "QEMU comes with a helper program to conveniently make use of a network bridge interface as an unprivileged user @pxref{Network options,,, QEMU, QEMU Documentation}. The binary must be made setuid root for proper operation; this can be achieved by adding it to the @code{privileged-programs} field of your (host) @code{operating-system} definition, as shown below:"
7042msgstr "Zu QEMU gehört ein Hilfsprogramm, mit dem eine Netzwerkbrücken-Schnittstelle zur Verwendung durch „unprivilegierte“ Nutzer ohne besondere Berechtigungen einfach eingerichtet wird (siehe @ref{Network options,,, QEMU, QEMU-Dokumentation}. Das Programm muss setuid-root gesetzt sein, damit es funktioniert. Dazu fügen Sie es zum @code{setuid-programs}-Feld Ihrer Betriebssystemkonfiguration (auf dem Wirtssystem) hinzu, so wie hier:" 7043msgstr "Zu QEMU gehört ein Hilfsprogramm, mit dem eine Netzwerkbrücken-Schnittstelle zur Verwendung durch „unprivilegierte“ Nutzer ohne besondere Berechtigungen einfach eingerichtet wird (siehe @ref{Network options,,, QEMU, QEMU-Dokumentation}. Das Programm muss setuid-root gesetzt sein, damit es funktioniert. Dazu fügen Sie es zum @code{privileged-programs}-Feld Ihrer Betriebssystemkonfiguration (auf dem Wirtssystem) hinzu, so wie hier:"
7043 7044
7044#. type: example 7045#. type: example
7045#: doc/guix-cookbook.texi:3801 7046#: guix-git/doc/guix-cookbook.texi:3803
7046#, no-wrap 7047#, no-wrap
7047msgid "" 7048msgid ""
7048"(setuid-programs\n" 7049"(privileged-programs\n"
7049" (cons (file-append qemu \"/libexec/qemu-bridge-helper\")\n" 7050" (cons (privileged-program\n"
7050" %setuid-programs))\n" 7051" (program (file-append qemu \"/libexec/qemu-bridge-helper\"))\n"
7052" (setuid? #t))\n"
7053" %default-privileged-programs))\n"
7051msgstr "" 7054msgstr ""
7052"(setuid-programs\n" 7055"(privileged-programs\n"
7053" (cons (file-append qemu \"/libexec/qemu-bridge-helper\")\n" 7056" (cons (privileged-program\n"
7054" %setuid-programs))\n" 7057" (program (file-append qemu \"/libexec/qemu-bridge-helper\"))\n"
7058" (setuid? #t))\n"
7059" %default-privileged-programs))\n"
7055 7060
7056#. type: Plain text 7061#. type: Plain text
7057#: doc/guix-cookbook.texi:3806 7062#: guix-git/doc/guix-cookbook.texi:3808
7058msgid "The file @file{/etc/qemu/bridge.conf} must also be made to allow the bridge interface, as the default is to deny all. Add the following to your list of services to do so:" 7063msgid "The file @file{/etc/qemu/bridge.conf} must also be made to allow the bridge interface, as the default is to deny all. Add the following to your list of services to do so:"
7059msgstr "Zudem muss in der Datei @file{/etc/qemu/bridge.conf} eine Erlaubnis für die Netzwerkbrücken-Schnittstelle eingetragen werden, denn nach Voreinstellung wird alles blockiert. Fügen Sie dazu folgenden Dienst zu Ihrer @code{services}-Liste hinzu:" 7064msgstr "Zudem muss in der Datei @file{/etc/qemu/bridge.conf} eine Erlaubnis für die Netzwerkbrücken-Schnittstelle eingetragen werden, denn nach Voreinstellung wird alles blockiert. Fügen Sie dazu folgenden Dienst zu Ihrer @code{services}-Liste hinzu:"
7060 7065
7061#. type: example 7066#. type: example
7062#: doc/guix-cookbook.texi:3809 7067#: guix-git/doc/guix-cookbook.texi:3811
7063#, no-wrap 7068#, no-wrap
7064msgid "(extra-special-file \"/etc/qemu/host.conf\" \"allow br0\\n\")\n" 7069msgid "(extra-special-file \"/etc/qemu/host.conf\" \"allow br0\\n\")\n"
7065msgstr "(extra-special-file \"/etc/qemu/host.conf\" \"allow br0\\n\")\n" 7070msgstr "(extra-special-file \"/etc/qemu/host.conf\" \"allow br0\\n\")\n"
7066 7071
7067#. type: subsection 7072#. type: subsection
7068#: doc/guix-cookbook.texi:3811 7073#: guix-git/doc/guix-cookbook.texi:3813
7069#, no-wrap 7074#, no-wrap
7070msgid "Invoking QEMU with the right command line options" 7075msgid "Invoking QEMU with the right command line options"
7071msgstr "QEMU mit den richtigen Befehlszeilenoptionen aufrufen" 7076msgstr "QEMU mit den richtigen Befehlszeilenoptionen aufrufen"
7072 7077
7073#. type: Plain text 7078#. type: Plain text
7074#: doc/guix-cookbook.texi:3816 7079#: guix-git/doc/guix-cookbook.texi:3818
7075msgid "When invoking QEMU, the following options should be provided so that the network bridge is used, after having selected a unique MAC address for the guest." 7080msgid "When invoking QEMU, the following options should be provided so that the network bridge is used, after having selected a unique MAC address for the guest."
7076msgstr "Wenn Sie QEMU aufrufen, müssen Sie die folgenden Optionen angeben, damit die Netzwerkbrücke benutzt wird, nachdem Sie eine einzigartige MAC-Adresse für den Gast vorgeben." 7081msgstr "Wenn Sie QEMU aufrufen, müssen Sie die folgenden Optionen angeben, damit die Netzwerkbrücke benutzt wird, nachdem Sie eine einzigartige MAC-Adresse für den Gast vorgeben."
7077 7082
7078#. type: quotation 7083#. type: quotation
7079#: doc/guix-cookbook.texi:3821 7084#: guix-git/doc/guix-cookbook.texi:3823
7080msgid "By default, a single MAC address is used for all guests, unless provided. Failing to provide different MAC addresses to each virtual machine making use of the bridge would cause networking issues." 7085msgid "By default, a single MAC address is used for all guests, unless provided. Failing to provide different MAC addresses to each virtual machine making use of the bridge would cause networking issues."
7081msgstr "Nach Voreinstellung wird dieselbe MAC-Adresse für alle Gastsysteme benutzt, wenn Sie keine angeben. Wenn sich die MAC-Adressen mehrerer virtueller Maschinen aber nicht unterscheiden, kommt es zu Netzwerkfehlern, wenn Sie die Netzwerkbrücke benutzen." 7086msgstr "Nach Voreinstellung wird dieselbe MAC-Adresse für alle Gastsysteme benutzt, wenn Sie keine angeben. Wenn sich die MAC-Adressen mehrerer virtueller Maschinen aber nicht unterscheiden, kommt es zu Netzwerkfehlern, wenn Sie die Netzwerkbrücke benutzen."
7082 7087
7083#. type: example 7088#. type: example
7084#: doc/guix-cookbook.texi:3828 7089#: guix-git/doc/guix-cookbook.texi:3830
7085#, no-wrap 7090#, no-wrap
7086msgid "" 7091msgid ""
7087"$ qemu-system-x86_64 [...] \\\n" 7092"$ qemu-system-x86_64 [...] \\\n"
@@ -7095,12 +7100,12 @@ msgstr ""
7095" […]\n" 7100" […]\n"
7096 7101
7097#. type: Plain text 7102#. type: Plain text
7098#: doc/guix-cookbook.texi:3832 7103#: guix-git/doc/guix-cookbook.texi:3834
7099msgid "To generate MAC addresses that have the QEMU registered prefix, the following snippet can be employed:" 7104msgid "To generate MAC addresses that have the QEMU registered prefix, the following snippet can be employed:"
7100msgstr "Um MAC-Adressen mit dem für QEMU registrierten Präfix zu erzeugen, können Sie folgendes Code-Schnipsel eintippen:" 7105msgstr "Um MAC-Adressen mit dem für QEMU registrierten Präfix zu erzeugen, können Sie folgendes Code-Schnipsel eintippen:"
7101 7106
7102#. type: example 7107#. type: example
7103#: doc/guix-cookbook.texi:3838 7108#: guix-git/doc/guix-cookbook.texi:3840
7104#, no-wrap 7109#, no-wrap
7105msgid "" 7110msgid ""
7106"mac_address=\"52:54:00:$(dd if=/dev/urandom bs=512 count=1 2>/dev/null \\\n" 7111"mac_address=\"52:54:00:$(dd if=/dev/urandom bs=512 count=1 2>/dev/null \\\n"
@@ -7114,18 +7119,18 @@ msgstr ""
7114"echo $mac_address\n" 7119"echo $mac_address\n"
7115 7120
7116#. type: subsection 7121#. type: subsection
7117#: doc/guix-cookbook.texi:3840 7122#: guix-git/doc/guix-cookbook.texi:3842
7118#, no-wrap 7123#, no-wrap
7119msgid "Networking issues caused by Docker" 7124msgid "Networking issues caused by Docker"
7120msgstr "Durch Docker verursachte Netzwerkprobleme" 7125msgstr "Durch Docker verursachte Netzwerkprobleme"
7121 7126
7122#. type: Plain text 7127#. type: Plain text
7123#: doc/guix-cookbook.texi:3847 7128#: guix-git/doc/guix-cookbook.texi:3849
7124msgid "If you use Docker on your machine, you may experience connectivity issues when attempting to use a network bridge, which are caused by Docker also relying on network bridges and configuring its own routing rules. The solution is add the following @code{iptables} snippet to your @code{operating-system} declaration:" 7129msgid "If you use Docker on your machine, you may experience connectivity issues when attempting to use a network bridge, which are caused by Docker also relying on network bridges and configuring its own routing rules. The solution is add the following @code{iptables} snippet to your @code{operating-system} declaration:"
7125msgstr "Wenn Sie auf Ihrer Maschine Docker einsetzen, kann es zu Verbindungsproblemen kommen, wenn Sie eine Netzwerkbrücke zu benutzen versuchen. Der Grund ist, dass auch Docker Netzwerkbrücken mitbringt und seine eigenen Netzwerkregeln einrichtet. Die Lösung liegt im Hinzufügen des folgenden @code{iptables}-Schnipsels in Ihre Betriebssystemdeklaration:" 7130msgstr "Wenn Sie auf Ihrer Maschine Docker einsetzen, kann es zu Verbindungsproblemen kommen, wenn Sie eine Netzwerkbrücke zu benutzen versuchen. Der Grund ist, dass auch Docker Netzwerkbrücken mitbringt und seine eigenen Netzwerkregeln einrichtet. Die Lösung liegt im Hinzufügen des folgenden @code{iptables}-Schnipsels in Ihre Betriebssystemdeklaration:"
7126 7131
7127#. type: example 7132#. type: example
7128#: doc/guix-cookbook.texi:3859 7133#: guix-git/doc/guix-cookbook.texi:3861
7129#, no-wrap 7134#, no-wrap
7130msgid "" 7135msgid ""
7131"(service iptables-service-type\n" 7136"(service iptables-service-type\n"
@@ -7151,41 +7156,41 @@ msgstr ""
7151"\"))\n" 7156"\"))\n"
7152 7157
7153#. type: cindex 7158#. type: cindex
7154#: doc/guix-cookbook.texi:3863 7159#: guix-git/doc/guix-cookbook.texi:3865
7155#, no-wrap 7160#, no-wrap
7156msgid "Virtual network bridge interface" 7161msgid "Virtual network bridge interface"
7157msgstr "Virtuelle-Netzwerkbrücken-Schnittstelle" 7162msgstr "Virtuelle-Netzwerkbrücken-Schnittstelle"
7158 7163
7159#. type: cindex 7164#. type: cindex
7160#: doc/guix-cookbook.texi:3864 7165#: guix-git/doc/guix-cookbook.texi:3866
7161#, no-wrap 7166#, no-wrap
7162msgid "networking, virtual bridge" 7167msgid "networking, virtual bridge"
7163msgstr "Netzwerk, virtuelle Netzwerkbrücke" 7168msgstr "Netzwerk, virtuelle Netzwerkbrücke"
7164 7169
7165#. type: cindex 7170#. type: cindex
7166#: doc/guix-cookbook.texi:3865 7171#: guix-git/doc/guix-cookbook.texi:3867
7167#, no-wrap 7172#, no-wrap
7168msgid "libvirt, virtual network bridge" 7173msgid "libvirt, virtual network bridge"
7169msgstr "libvirt, virtuelle Netzwerkbrücke" 7174msgstr "libvirt, virtuelle Netzwerkbrücke"
7170 7175
7171#. type: Plain text 7176#. type: Plain text
7172#: doc/guix-cookbook.texi:3879 7177#: guix-git/doc/guix-cookbook.texi:3881
7173msgid "If the machine hosting your virtual machines is connected wirelessly to the network, you won't be able to use a true network bridge as explained in the preceding section (@pxref{Network bridge for QEMU}). In this case, the next best option is to use a @emph{virtual} bridge with static routing and to configure a libvirt-powered virtual machine to use it (via the @command{virt-manager} GUI for example). This is similar to the default mode of operation of QEMU/libvirt, except that instead of using @abbr{NAT, Network Address Translation}, it relies on static routes to join the @abbr{VM, virtual machine} IP address to the @abbr{LAN, local area network}. This provides two-way connectivity to and from the virtual machine, which is needed for exposing services hosted on the virtual machine." 7178msgid "If the machine hosting your virtual machines is connected wirelessly to the network, you won't be able to use a true network bridge as explained in the preceding section (@pxref{Network bridge for QEMU}). In this case, the next best option is to use a @emph{virtual} bridge with static routing and to configure a libvirt-powered virtual machine to use it (via the @command{virt-manager} GUI for example). This is similar to the default mode of operation of QEMU/libvirt, except that instead of using @abbr{NAT, Network Address Translation}, it relies on static routes to join the @abbr{VM, virtual machine} IP address to the @abbr{LAN, local area network}. This provides two-way connectivity to and from the virtual machine, which is needed for exposing services hosted on the virtual machine."
7174msgstr "Wenn die Maschine, auf der Ihre virtuellen Maschinen laufen sollen, nur eine drahtlose Verbindung ins Netzwerk hat, haben Sie keine Möglichkeit, eine echte Netzwerkbrücke zu deren Anbindung einzurichten, wie wir sie im vorigen Abschnitt beschrieben haben (siehe @ref{Network bridge for QEMU}). Ihnen bleibt die zweitbeste Option, eine @emph{virtuelle} Netzwerkbrücke mit statischem Routing zu benutzen und eine mit libvirt betriebene virtuelle Maschine so einzurichten, dass sie benutzt wird (zum Beispiel mit Hilfe der grafischen Benutzeroberfläche @command{virt-manager}). Das ist ähnlich zu dem voreingestellten Betriebsmodus von QEMU/libvirt, außer dass wir, statt @abbr{NAT, Network Address Translation} zum Einsatz zu bringen, mit statischen Routen die IP-Adresse der @abbr{VM, virtuellen Maschine} ins @abbr{LAN, Local Area Network} aufnehmen. Damit wird eine beidseitige Verbindung zu und von der virtuellen Maschine möglich, damit alle in Ihrem Netzwerk Zugriff auf die auf der virtuellen Maschine angebotenen Dienste bekommen." 7179msgstr "Wenn die Maschine, auf der Ihre virtuellen Maschinen laufen sollen, nur eine drahtlose Verbindung ins Netzwerk hat, haben Sie keine Möglichkeit, eine echte Netzwerkbrücke zu deren Anbindung einzurichten, wie wir sie im vorigen Abschnitt beschrieben haben (siehe @ref{Network bridge for QEMU}). Ihnen bleibt die zweitbeste Option, eine @emph{virtuelle} Netzwerkbrücke mit statischem Routing zu benutzen und eine mit libvirt betriebene virtuelle Maschine so einzurichten, dass sie benutzt wird (zum Beispiel mit Hilfe der grafischen Benutzeroberfläche @command{virt-manager}). Das ist ähnlich zu dem voreingestellten Betriebsmodus von QEMU/libvirt, außer dass wir, statt @abbr{NAT, Network Address Translation} zum Einsatz zu bringen, mit statischen Routen die IP-Adresse der @abbr{VM, virtuellen Maschine} ins @abbr{LAN, Local Area Network} aufnehmen. Damit wird eine beidseitige Verbindung zu und von der virtuellen Maschine möglich, damit alle in Ihrem Netzwerk Zugriff auf die auf der virtuellen Maschine angebotenen Dienste bekommen."
7175 7180
7176#. type: subsection 7181#. type: subsection
7177#: doc/guix-cookbook.texi:3880 7182#: guix-git/doc/guix-cookbook.texi:3882
7178#, no-wrap 7183#, no-wrap
7179msgid "Creating a virtual network bridge" 7184msgid "Creating a virtual network bridge"
7180msgstr "Eine virtuelle Netzwerkbrücke anlegen" 7185msgstr "Eine virtuelle Netzwerkbrücke anlegen"
7181 7186
7182#. type: Plain text 7187#. type: Plain text
7183#: doc/guix-cookbook.texi:3890 7188#: guix-git/doc/guix-cookbook.texi:3892
7184msgid "A virtual network bridge consists of a few components/configurations, such as a @abbr{TUN, network tunnel} interface, DHCP server (dnsmasq) and firewall rules (iptables). The @command{virsh} command, provided by the @code{libvirt} package, makes it very easy to create a virtual bridge. You first need to choose a network subnet for your virtual bridge; if your home LAN is in the @samp{192.168.1.0/24} network, you could opt to use e.g.@: @samp{192.168.2.0/24}. Define an XML file, e.g.@: @file{/tmp/virbr0.xml}, containing the following:" 7189msgid "A virtual network bridge consists of a few components/configurations, such as a @abbr{TUN, network tunnel} interface, DHCP server (dnsmasq) and firewall rules (iptables). The @command{virsh} command, provided by the @code{libvirt} package, makes it very easy to create a virtual bridge. You first need to choose a network subnet for your virtual bridge; if your home LAN is in the @samp{192.168.1.0/24} network, you could opt to use e.g.@: @samp{192.168.2.0/24}. Define an XML file, e.g.@: @file{/tmp/virbr0.xml}, containing the following:"
7185msgstr "Eine virtuelle Netzwerkbrücke besteht aus mehreren Komponenten bzw.@: Konfigurationen wie einer TUN-Schnittstelle („Netzwerk-Tunnel-Schnittstelle“), DHCP-Server (dnsmasq) und Firewall-Regeln (iptables). Mit dem Befehl @command{virsh} aus dem Paket @code{libvirt} lässt sich die virtuelle Bridge sehr einfach anlegen. Zuerst müssen Sie wissen, welches Netzwerk-Subnetz Ihre virtuelle Brücke haben soll. Wenn Ihrem LAN zu Hause das @samp{192.168.1.0/24}-Netzwerk gehört, könnten Sie z.B.@: @samp{192.168.2.0/24} vergeben. Legen Sie eine XML-Datei an z.B.@: als @file{/tmp/virbr0.xml} mit folgendem Inhalt:" 7190msgstr "Eine virtuelle Netzwerkbrücke besteht aus mehreren Komponenten bzw.@: Konfigurationen wie einer TUN-Schnittstelle („Netzwerk-Tunnel-Schnittstelle“), DHCP-Server (dnsmasq) und Firewall-Regeln (iptables). Mit dem Befehl @command{virsh} aus dem Paket @code{libvirt} lässt sich die virtuelle Bridge sehr einfach anlegen. Zuerst müssen Sie wissen, welches Netzwerk-Subnetz Ihre virtuelle Brücke haben soll. Wenn Ihrem LAN zu Hause das @samp{192.168.1.0/24}-Netzwerk gehört, könnten Sie z.B.@: @samp{192.168.2.0/24} vergeben. Legen Sie eine XML-Datei an z.B.@: als @file{/tmp/virbr0.xml} mit folgendem Inhalt:"
7186 7191
7187#. type: example 7192#. type: example
7188#: doc/guix-cookbook.texi:3902 7193#: guix-git/doc/guix-cookbook.texi:3904
7189#, no-wrap 7194#, no-wrap
7190msgid "" 7195msgid ""
7191"<network>\n" 7196"<network>\n"
@@ -7211,12 +7216,12 @@ msgstr ""
7211"</network>\n" 7216"</network>\n"
7212 7217
7213#. type: Plain text 7218#. type: Plain text
7214#: doc/guix-cookbook.texi:3906 7219#: guix-git/doc/guix-cookbook.texi:3908
7215msgid "Then create and configure the interface using the @command{virsh} command, as root:" 7220msgid "Then create and configure the interface using the @command{virsh} command, as root:"
7216msgstr "Damit legen Sie die Schnittstelle mit Hilfe des @command{virsh}-Befehls an, welchen Sie als Administratorbenutzer @code{root} ausführen:" 7221msgstr "Damit legen Sie die Schnittstelle mit Hilfe des @command{virsh}-Befehls an, welchen Sie als Administratorbenutzer @code{root} ausführen:"
7217 7222
7218#. type: example 7223#. type: example
7219#: doc/guix-cookbook.texi:3911 7224#: guix-git/doc/guix-cookbook.texi:3913
7220#, no-wrap 7225#, no-wrap
7221msgid "" 7226msgid ""
7222"virsh net-define /tmp/virbr0.xml\n" 7227"virsh net-define /tmp/virbr0.xml\n"
@@ -7228,208 +7233,208 @@ msgstr ""
7228"virsh net-start virbr0\n" 7233"virsh net-start virbr0\n"
7229 7234
7230#. type: Plain text 7235#. type: Plain text
7231#: doc/guix-cookbook.texi:3916 7236#: guix-git/doc/guix-cookbook.texi:3918
7232msgid "The @samp{virbr0} interface should now be visible e.g.@: via the @samp{ip address} command. It will be automatically started every time your libvirt virtual machine is started." 7237msgid "The @samp{virbr0} interface should now be visible e.g.@: via the @samp{ip address} command. It will be automatically started every time your libvirt virtual machine is started."
7233msgstr "Die Schnittstelle @samp{virbr0} müsste jetzt zum Beispiel in der Ausgabe des Befehls @samp{ip address} zu sehen sein. Sie wird automatisch gestartet, sobald Ihre virtuelle Maschine mit libvirt gestartet wird." 7238msgstr "Die Schnittstelle @samp{virbr0} müsste jetzt zum Beispiel in der Ausgabe des Befehls @samp{ip address} zu sehen sein. Sie wird automatisch gestartet, sobald Ihre virtuelle Maschine mit libvirt gestartet wird."
7234 7239
7235#. type: subsection 7240#. type: subsection
7236#: doc/guix-cookbook.texi:3917 7241#: guix-git/doc/guix-cookbook.texi:3919
7237#, no-wrap 7242#, no-wrap
7238msgid "Configuring the static routes for your virtual bridge" 7243msgid "Configuring the static routes for your virtual bridge"
7239msgstr "Statische Routen für Ihre virtuelle Netzwerkbrücke einrichten" 7244msgstr "Statische Routen für Ihre virtuelle Netzwerkbrücke einrichten"
7240 7245
7241#. type: Plain text 7246#. type: Plain text
7242#: doc/guix-cookbook.texi:3925 7247#: guix-git/doc/guix-cookbook.texi:3927
7243msgid "If you configured your virtual machine to use your newly created @samp{virbr0} virtual bridge interface, it should already receive an IP via DHCP such as @samp{192.168.2.15} and be reachable from the server hosting it, e.g.@: via @samp{ping 192.168.2.15}. There's one last configuration needed so that the VM can reach the external network: adding static routes to the network's router." 7248msgid "If you configured your virtual machine to use your newly created @samp{virbr0} virtual bridge interface, it should already receive an IP via DHCP such as @samp{192.168.2.15} and be reachable from the server hosting it, e.g.@: via @samp{ping 192.168.2.15}. There's one last configuration needed so that the VM can reach the external network: adding static routes to the network's router."
7244msgstr "Wenn Sie Ihre virtuelle Maschine so eingerichtet haben, dass sie auf der neu geschaffenen Schnittstelle @samp{virbr0} für die virtuelle Bridge läuft, sollte sie von sich aus bereits eine IP wie @samp{192.168.2.15} über DHCP beziehen und darüber von dem Wirts-Serverrechner aus erreichbar sein mit @samp{ping 192.168.2.15} oder entsprechend. Zum Schluss fehlt noch eine letzte Konfiguration, damit die VM auch das externe Netzwerk erreichen kann: Sie müssen im für das Netzwerk zuständigen Router statische Routen hinzufügen." 7249msgstr "Wenn Sie Ihre virtuelle Maschine so eingerichtet haben, dass sie auf der neu geschaffenen Schnittstelle @samp{virbr0} für die virtuelle Bridge läuft, sollte sie von sich aus bereits eine IP wie @samp{192.168.2.15} über DHCP beziehen und darüber von dem Wirts-Serverrechner aus erreichbar sein mit @samp{ping 192.168.2.15} oder entsprechend. Zum Schluss fehlt noch eine letzte Konfiguration, damit die VM auch das externe Netzwerk erreichen kann: Sie müssen im für das Netzwerk zuständigen Router statische Routen hinzufügen."
7245 7250
7246#. type: Plain text 7251#. type: Plain text
7247#: doc/guix-cookbook.texi:3934 7252#: guix-git/doc/guix-cookbook.texi:3936
7248msgid "In this example, the LAN network is @samp{192.168.1.0/24} and the router configuration web page may be accessible via e.g.@: the @url{http://192.168.1.1} page. On a router running the @url{https://librecmc.org/, libreCMC} firmware, you would navigate to the @clicksequence{Network @click{} Static Routes} page (@url{https://192.168.1.1/cgi-bin/luci/admin/network/routes}), and you would add a new entry to the @samp{Static IPv4 Routes} with the following information:" 7253msgid "In this example, the LAN network is @samp{192.168.1.0/24} and the router configuration web page may be accessible via e.g.@: the @url{http://192.168.1.1} page. On a router running the @url{https://librecmc.org/, libreCMC} firmware, you would navigate to the @clicksequence{Network @click{} Static Routes} page (@url{https://192.168.1.1/cgi-bin/luci/admin/network/routes}), and you would add a new entry to the @samp{Static IPv4 Routes} with the following information:"
7249msgstr "In diesem Beispiel gehen wir davon aus, dass das LAN-Netzwerk bei Ihnen den Block @samp{192.168.1.0/24} bekommt und die Router-Einstellungswebseite könnte z.B.@: unter @url{http://192.168.1.1} verfügbar sein. Wenn auf Ihrem Router die Firmware von @url{https://librecmc.org/, libreCMC} läuft, würden Sie nach @clicksequence{Netzwerk @click{} Statische Routen} navigieren (auf die Seite @url{https://192.168.1.1/cgi-bin/luci/admin/network/routes}) und dort einen neuen Eintrag für @samp{Statische IPv4-Routen} mit den folgenden Informationen anlegen:" 7254msgstr "In diesem Beispiel gehen wir davon aus, dass das LAN-Netzwerk bei Ihnen den Block @samp{192.168.1.0/24} bekommt und die Router-Einstellungswebseite könnte z.B.@: unter @url{http://192.168.1.1} verfügbar sein. Wenn auf Ihrem Router die Firmware von @url{https://librecmc.org/, libreCMC} läuft, würden Sie nach @clicksequence{Netzwerk @click{} Statische Routen} navigieren (auf die Seite @url{https://192.168.1.1/cgi-bin/luci/admin/network/routes}) und dort einen neuen Eintrag für @samp{Statische IPv4-Routen} mit den folgenden Informationen anlegen:"
7250 7255
7251#. type: item 7256#. type: item
7252#: doc/guix-cookbook.texi:3936 7257#: guix-git/doc/guix-cookbook.texi:3938
7253#, no-wrap 7258#, no-wrap
7254msgid "Interface" 7259msgid "Interface"
7255msgstr "Schnittstelle" 7260msgstr "Schnittstelle"
7256 7261
7257#. type: table 7262#. type: table
7258#: doc/guix-cookbook.texi:3938 7263#: guix-git/doc/guix-cookbook.texi:3940
7259msgid "lan" 7264msgid "lan"
7260msgstr "lan" 7265msgstr "lan"
7261 7266
7262#. type: item 7267#. type: item
7263#: doc/guix-cookbook.texi:3938 7268#: guix-git/doc/guix-cookbook.texi:3940
7264#, no-wrap 7269#, no-wrap
7265msgid "Target" 7270msgid "Target"
7266msgstr "Ziel" 7271msgstr "Ziel"
7267 7272
7268#. type: table 7273#. type: table
7269#: doc/guix-cookbook.texi:3940 7274#: guix-git/doc/guix-cookbook.texi:3942
7270msgid "192.168.2.0" 7275msgid "192.168.2.0"
7271msgstr "192.168.2.0" 7276msgstr "192.168.2.0"
7272 7277
7273#. type: item 7278#. type: item
7274#: doc/guix-cookbook.texi:3940 7279#: guix-git/doc/guix-cookbook.texi:3942
7275#, no-wrap 7280#, no-wrap
7276msgid "IPv4-Netmask" 7281msgid "IPv4-Netmask"
7277msgstr "IPv4-Netzmaske" 7282msgstr "IPv4-Netzmaske"
7278 7283
7279#. type: table 7284#. type: table
7280#: doc/guix-cookbook.texi:3942 7285#: guix-git/doc/guix-cookbook.texi:3944
7281msgid "255.255.255.0" 7286msgid "255.255.255.0"
7282msgstr "255.255.255.0" 7287msgstr "255.255.255.0"
7283 7288
7284#. type: item 7289#. type: item
7285#: doc/guix-cookbook.texi:3942 7290#: guix-git/doc/guix-cookbook.texi:3944
7286#, no-wrap 7291#, no-wrap
7287msgid "IPv4-Gateway" 7292msgid "IPv4-Gateway"
7288msgstr "IPv4-Gateway" 7293msgstr "IPv4-Gateway"
7289 7294
7290#. type: var{#1} 7295#. type: var{#1}
7291#: doc/guix-cookbook.texi:3944 7296#: guix-git/doc/guix-cookbook.texi:3946
7292msgid "server-ip" 7297msgid "server-ip"
7293msgstr "Server-IP" 7298msgstr "Server-IP"
7294 7299
7295#. type: item 7300#. type: item
7296#: doc/guix-cookbook.texi:3944 7301#: guix-git/doc/guix-cookbook.texi:3946
7297#, no-wrap 7302#, no-wrap
7298msgid "Route type" 7303msgid "Route type"
7299msgstr "Routen-Typ" 7304msgstr "Routen-Typ"
7300 7305
7301#. type: table 7306#. type: table
7302#: doc/guix-cookbook.texi:3946 7307#: guix-git/doc/guix-cookbook.texi:3948
7303msgid "unicast" 7308msgid "unicast"
7304msgstr "unicast" 7309msgstr "unicast"
7305 7310
7306#. type: Plain text 7311#. type: Plain text
7307#: doc/guix-cookbook.texi:3950 7312#: guix-git/doc/guix-cookbook.texi:3952
7308msgid "where @var{server-ip} is the IP address of the machine hosting the VMs, which should be static." 7313msgid "where @var{server-ip} is the IP address of the machine hosting the VMs, which should be static."
7309msgstr "Dabei schreiben Sie statt @var{Server-IP} die IP-Adresse der Wirtsmaschine, auf der die VM laufen. Diese sollte als statische Adresse eingerichtet sein." 7314msgstr "Dabei schreiben Sie statt @var{Server-IP} die IP-Adresse der Wirtsmaschine, auf der die VM laufen. Diese sollte als statische Adresse eingerichtet sein."
7310 7315
7311#. type: Plain text 7316#. type: Plain text
7312#: doc/guix-cookbook.texi:3954 7317#: guix-git/doc/guix-cookbook.texi:3956
7313msgid "After saving/applying this new static route, external connectivity should work from within your VM; you can e.g.@: run @samp{ping gnu.org} to verify that it functions correctly." 7318msgid "After saving/applying this new static route, external connectivity should work from within your VM; you can e.g.@: run @samp{ping gnu.org} to verify that it functions correctly."
7314msgstr "Sobald Sie diese neue statische Route speichern und anwenden, sollten Sie sich von und nach außen mit Ihrer VM verbinden können. Um zu überprüfen, ob es funktioniert, führen Sie z.B.@: den Befehl @samp{ping gnu.org} aus." 7319msgstr "Sobald Sie diese neue statische Route speichern und anwenden, sollten Sie sich von und nach außen mit Ihrer VM verbinden können. Um zu überprüfen, ob es funktioniert, führen Sie z.B.@: den Befehl @samp{ping gnu.org} aus."
7315 7320
7316#. type: Plain text 7321#. type: Plain text
7317#: doc/guix-cookbook.texi:3964 7322#: guix-git/doc/guix-cookbook.texi:3966
7318msgid "Guix is a functional package manager that offers many features beyond what more traditional package managers can do. To the uninitiated, those features might not have obvious use cases at first. The purpose of this chapter is to demonstrate some advanced package management concepts." 7323msgid "Guix is a functional package manager that offers many features beyond what more traditional package managers can do. To the uninitiated, those features might not have obvious use cases at first. The purpose of this chapter is to demonstrate some advanced package management concepts."
7319msgstr "Guix ist ein funktionales Paketverwaltungsprogramm, das weit mehr Funktionalitäten als traditionelle Paketverwalter anbietet. Für nicht Eingeweihte sind deren Anwendungsfälle nicht sofort ersichtlich. Dieses Kapitel ist dazu da, manche fortgeschrittenen Paketverwaltungskonzepte zu demonstrieren." 7324msgstr "Guix ist ein funktionales Paketverwaltungsprogramm, das weit mehr Funktionalitäten als traditionelle Paketverwalter anbietet. Für nicht Eingeweihte sind deren Anwendungsfälle nicht sofort ersichtlich. Dieses Kapitel ist dazu da, manche fortgeschrittenen Paketverwaltungskonzepte zu demonstrieren."
7320 7325
7321#. type: Plain text 7326#. type: Plain text
7322#: doc/guix-cookbook.texi:3967 7327#: guix-git/doc/guix-cookbook.texi:3969
7323msgid "@pxref{Package Management,,, guix, GNU Guix Reference Manual} for a complete reference." 7328msgid "@pxref{Package Management,,, guix, GNU Guix Reference Manual} for a complete reference."
7324msgstr "Siehe @ref{Paketverwaltung,,, guix.de, Referenzhandbuch zu GNU Guix} für eine vollständige Referenz." 7329msgstr "Siehe @ref{Paketverwaltung,,, guix.de, Referenzhandbuch zu GNU Guix} für eine vollständige Referenz."
7325 7330
7326#. type: Plain text 7331#. type: Plain text
7327#: doc/guix-cookbook.texi:3978 7332#: guix-git/doc/guix-cookbook.texi:3980
7328msgid "Guix provides a very useful feature that may be quite foreign to newcomers: @dfn{profiles}. They are a way to group package installations together and all users on the same system are free to use as many profiles as they want." 7333msgid "Guix provides a very useful feature that may be quite foreign to newcomers: @dfn{profiles}. They are a way to group package installations together and all users on the same system are free to use as many profiles as they want."
7329msgstr "Guix gibt uns eine sehr nützliche Funktionalität, die Neuankömmlingen sehr fremd sein dürfte: @dfn{Profile}. Mit ihnen kann man Paketinstallationen zusammenfassen und jeder Benutzer desselben Systems kann so viele davon anlegen, wie sie oder er möchte." 7334msgstr "Guix gibt uns eine sehr nützliche Funktionalität, die Neuankömmlingen sehr fremd sein dürfte: @dfn{Profile}. Mit ihnen kann man Paketinstallationen zusammenfassen und jeder Benutzer desselben Systems kann so viele davon anlegen, wie sie oder er möchte."
7330 7335
7331#. type: Plain text 7336#. type: Plain text
7332#: doc/guix-cookbook.texi:3983 7337#: guix-git/doc/guix-cookbook.texi:3985
7333msgid "Whether you're a developer or not, you may find that multiple profiles bring you great power and flexibility. While they shift the paradigm somewhat compared to @emph{traditional package managers}, they are very convenient to use once you've understood how to set them up." 7338msgid "Whether you're a developer or not, you may find that multiple profiles bring you great power and flexibility. While they shift the paradigm somewhat compared to @emph{traditional package managers}, they are very convenient to use once you've understood how to set them up."
7334msgstr "Ob Sie ein Entwickler sind oder nicht, Sie dürften feststellen, dass mehrere Profile ein mächtiges Werkzeug sind, das Sie flexibler macht. Zwar ist es ein gewisser Paradigmenwechsel verglichen mit @emph{traditioneller Paketverwaltung}, doch sind sie sehr praktisch, sobald man im Umgang mit ihnen den Dreh ’raushat." 7339msgstr "Ob Sie ein Entwickler sind oder nicht, Sie dürften feststellen, dass mehrere Profile ein mächtiges Werkzeug sind, das Sie flexibler macht. Zwar ist es ein gewisser Paradigmenwechsel verglichen mit @emph{traditioneller Paketverwaltung}, doch sind sie sehr praktisch, sobald man im Umgang mit ihnen den Dreh ’raushat."
7335 7340
7336#. type: quotation 7341#. type: quotation
7337#: doc/guix-cookbook.texi:3988 7342#: guix-git/doc/guix-cookbook.texi:3990
7338msgid "This section is an opinionated guide on the use of multiple profiles. It predates @command{guix shell} and its fast profile cache (@pxref{Invoking guix shell,,, guix, GNU Guix Reference Manual})." 7343msgid "This section is an opinionated guide on the use of multiple profiles. It predates @command{guix shell} and its fast profile cache (@pxref{Invoking guix shell,,, guix, GNU Guix Reference Manual})."
7339msgstr "Die Anleitung in diesem Abschnitt setzt sich meinungsstark für die Nutzung mehrerer Profile ein. Als sie geschrieben wurde, gab es @command{guix shell} und dessen schnelles Zwischenspeichern der damit angelegten Profile noch nicht (siehe @ref{Aufruf von guix shell,,, guix.de, Referenzhandbuch zu GNU Guix})." 7344msgstr "Die Anleitung in diesem Abschnitt setzt sich meinungsstark für die Nutzung mehrerer Profile ein. Als sie geschrieben wurde, gab es @command{guix shell} und dessen schnelles Zwischenspeichern der damit angelegten Profile noch nicht (siehe @ref{Aufruf von guix shell,,, guix.de, Referenzhandbuch zu GNU Guix})."
7340 7345
7341#. type: quotation 7346#. type: quotation
7342#: doc/guix-cookbook.texi:3992 7347#: guix-git/doc/guix-cookbook.texi:3994
7343msgid "In many cases, you may find that using @command{guix shell} to set up the environment you need, when you need it, is less work that maintaining a dedicated profile. Your call!" 7348msgid "In many cases, you may find that using @command{guix shell} to set up the environment you need, when you need it, is less work that maintaining a dedicated profile. Your call!"
7344msgstr "Oftmals dürfte es für Sie einfacher sein, mit @command{guix shell} die von Ihnen benötigten Umgebungen dann aufzusetzen, wenn Sie sie brauchen, statt dass Sie sich der Pflege eines dedizierten Profils annehmen müssen. Es ist Ihre Entscheidung!" 7349msgstr "Oftmals dürfte es für Sie einfacher sein, mit @command{guix shell} die von Ihnen benötigten Umgebungen dann aufzusetzen, wenn Sie sie brauchen, statt dass Sie sich der Pflege eines dedizierten Profils annehmen müssen. Es ist Ihre Entscheidung!"
7345 7350
7346#. type: Plain text 7351#. type: Plain text
7347#: doc/guix-cookbook.texi:3999 7352#: guix-git/doc/guix-cookbook.texi:4001
7348msgid "If you are familiar with Python's @samp{virtualenv}, you can think of a profile as a kind of universal @samp{virtualenv} that can hold any kind of software whatsoever, not just Python software. Furthermore, profiles are self-sufficient: they capture all the runtime dependencies which guarantees that all programs within a profile will always work at any point in time." 7353msgid "If you are familiar with Python's @samp{virtualenv}, you can think of a profile as a kind of universal @samp{virtualenv} that can hold any kind of software whatsoever, not just Python software. Furthermore, profiles are self-sufficient: they capture all the runtime dependencies which guarantees that all programs within a profile will always work at any point in time."
7349msgstr "Wenn Ihnen Pythons @samp{virtualenv} vertraut ist, können Sie sich ein Profil als eine Art universelles @samp{virtualenv} vorstellen, das jede Art von Software enthalten kann und nicht nur Python-Software. Des Weiteren sind Profile selbstversorgend: Sie schließen alle Laufzeitabhängigkeiten ein und garantieren somit, dass alle Programme innerhalb eines Profils stets zu jeder Zeit funktionieren werden." 7354msgstr "Wenn Ihnen Pythons @samp{virtualenv} vertraut ist, können Sie sich ein Profil als eine Art universelles @samp{virtualenv} vorstellen, das jede Art von Software enthalten kann und nicht nur Python-Software. Des Weiteren sind Profile selbstversorgend: Sie schließen alle Laufzeitabhängigkeiten ein und garantieren somit, dass alle Programme innerhalb eines Profils stets zu jeder Zeit funktionieren werden."
7350 7355
7351#. type: Plain text 7356#. type: Plain text
7352#: doc/guix-cookbook.texi:4001 7357#: guix-git/doc/guix-cookbook.texi:4003
7353msgid "Multiple profiles have many benefits:" 7358msgid "Multiple profiles have many benefits:"
7354msgstr "Mehrere Profile bieten viele Vorteile:" 7359msgstr "Mehrere Profile bieten viele Vorteile:"
7355 7360
7356#. type: itemize 7361#. type: itemize
7357#: doc/guix-cookbook.texi:4005 7362#: guix-git/doc/guix-cookbook.texi:4007
7358msgid "Clean semantic separation of the various packages a user needs for different contexts." 7363msgid "Clean semantic separation of the various packages a user needs for different contexts."
7359msgstr "Klare semantische Trennung der verschiedenen Pakete, die ein Nutzer für verschiedene Kontexte braucht." 7364msgstr "Klare semantische Trennung der verschiedenen Pakete, die ein Nutzer für verschiedene Kontexte braucht."
7360 7365
7361#. type: itemize 7366#. type: itemize
7362#: doc/guix-cookbook.texi:4009 7367#: guix-git/doc/guix-cookbook.texi:4011
7363msgid "Multiple profiles can be made available into the environment either on login or within a dedicated shell." 7368msgid "Multiple profiles can be made available into the environment either on login or within a dedicated shell."
7364msgstr "Mehrere Profile können in der Umgebung verfügbar gemacht werden, entweder beim Anmelden oder in einer eigenen Shell." 7369msgstr "Mehrere Profile können in der Umgebung verfügbar gemacht werden, entweder beim Anmelden oder in einer eigenen Shell."
7365 7370
7366#. type: itemize 7371#. type: itemize
7367#: doc/guix-cookbook.texi:4013 7372#: guix-git/doc/guix-cookbook.texi:4015
7368msgid "Profiles can be loaded on demand. For instance, the user can use multiple shells, each of them running different profiles." 7373msgid "Profiles can be loaded on demand. For instance, the user can use multiple shells, each of them running different profiles."
7369msgstr "Profile können bei Bedarf geladen werden. Zum Beispiel kann der Nutzer mehrere Unter-Shells benutzen, von denen jede ein anderes Profil ausführt." 7374msgstr "Profile können bei Bedarf geladen werden. Zum Beispiel kann der Nutzer mehrere Unter-Shells benutzen, von denen jede ein anderes Profil ausführt."
7370 7375
7371#. type: itemize 7376#. type: itemize
7372#: doc/guix-cookbook.texi:4018 7377#: guix-git/doc/guix-cookbook.texi:4020
7373msgid "Isolation: Programs from one profile will not use programs from the other, and the user can even install different versions of the same programs to the two profiles without conflict." 7378msgid "Isolation: Programs from one profile will not use programs from the other, and the user can even install different versions of the same programs to the two profiles without conflict."
7374msgstr "Isolierung: Programme aus dem einen Profil werden keine Programme aus dem anderen benutzen, und der Nutzer kann sogar verschiedene Versionen desselben Programms in die zwei Profile installieren, ohne dass es zu Konflikten kommt." 7379msgstr "Isolierung: Programme aus dem einen Profil werden keine Programme aus dem anderen benutzen, und der Nutzer kann sogar verschiedene Versionen desselben Programms in die zwei Profile installieren, ohne dass es zu Konflikten kommt."
7375 7380
7376#. type: itemize 7381#. type: itemize
7377#: doc/guix-cookbook.texi:4022 7382#: guix-git/doc/guix-cookbook.texi:4024
7378msgid "Deduplication: Profiles share dependencies that happens to be the exact same. This makes multiple profiles storage-efficient." 7383msgid "Deduplication: Profiles share dependencies that happens to be the exact same. This makes multiple profiles storage-efficient."
7379msgstr "Deduplizierung: Profile teilen sich Abhängigkeiten, wenn sie genau gleich sind. Dadurch sind mehrere Profile speichereffizient." 7384msgstr "Deduplizierung: Profile teilen sich Abhängigkeiten, wenn sie genau gleich sind. Dadurch sind mehrere Profile speichereffizient."
7380 7385
7381#. type: itemize 7386#. type: itemize
7382#: doc/guix-cookbook.texi:4030 7387#: guix-git/doc/guix-cookbook.texi:4032
7383msgid "Reproducible: when used with declarative manifests, a profile can be fully specified by the Guix commit that was active when it was set up. This means that the exact same profile can be @uref{https://guix.gnu.org/blog/2018/multi-dimensional-transactions-and-rollbacks-oh-my/, set up anywhere and anytime}, with just the commit information. See the section on @ref{Reproducible profiles}." 7388msgid "Reproducible: when used with declarative manifests, a profile can be fully specified by the Guix commit that was active when it was set up. This means that the exact same profile can be @uref{https://guix.gnu.org/blog/2018/multi-dimensional-transactions-and-rollbacks-oh-my/, set up anywhere and anytime}, with just the commit information. See the section on @ref{Reproducible profiles}."
7384msgstr "Reproduzierbar: Wenn man dafür deklarative Manifeste benutzt, kann ein Profil allein durch den bei dessen Einrichtung aktiven Guix-Commit eindeutig spezifiziert werden. Das bedeutet, dass man genau dasselbe Profil @uref{https://guix.gnu.org/blog/2018/multi-dimensional-transactions-and-rollbacks-oh-my/, jederzeit und überall einrichten kann} und man dafür nur die Commit-Informationen braucht. Siehe den Abschnitt über @ref{Reproduzierbare Profile}." 7389msgstr "Reproduzierbar: Wenn man dafür deklarative Manifeste benutzt, kann ein Profil allein durch den bei dessen Einrichtung aktiven Guix-Commit eindeutig spezifiziert werden. Das bedeutet, dass man genau dasselbe Profil @uref{https://guix.gnu.org/blog/2018/multi-dimensional-transactions-and-rollbacks-oh-my/, jederzeit und überall einrichten kann} und man dafür nur die Commit-Informationen braucht. Siehe den Abschnitt über @ref{Reproduzierbare Profile}."
7385 7390
7386#. type: itemize 7391#. type: itemize
7387#: doc/guix-cookbook.texi:4034 7392#: guix-git/doc/guix-cookbook.texi:4036
7388msgid "Easier upgrades and maintenance: Multiple profiles make it easy to keep package listings at hand and make upgrades completely frictionless." 7393msgid "Easier upgrades and maintenance: Multiple profiles make it easy to keep package listings at hand and make upgrades completely frictionless."
7389msgstr "Leichtere Aktualisierung und Wartung: Mit mehreren Profilen ist es ein Leichtes, eine Liste von Paketen zur Hand zu haben und Aktualisierungen völlig reibungslos ablaufen zu lassen." 7394msgstr "Leichtere Aktualisierung und Wartung: Mit mehreren Profilen ist es ein Leichtes, eine Liste von Paketen zur Hand zu haben und Aktualisierungen völlig reibungslos ablaufen zu lassen."
7390 7395
7391#. type: Plain text 7396#. type: Plain text
7392#: doc/guix-cookbook.texi:4037 7397#: guix-git/doc/guix-cookbook.texi:4039
7393msgid "Concretely, here follows some typical profiles:" 7398msgid "Concretely, here follows some typical profiles:"
7394msgstr "Konkret wären diese hier typische Profile:" 7399msgstr "Konkret wären diese hier typische Profile:"
7395 7400
7396#. type: itemize 7401#. type: itemize
7397#: doc/guix-cookbook.texi:4041 7402#: guix-git/doc/guix-cookbook.texi:4043
7398msgid "The dependencies of a project you are working on." 7403msgid "The dependencies of a project you are working on."
7399msgstr "Die Abhängigkeiten des Projekts, an dem Sie arbeiten." 7404msgstr "Die Abhängigkeiten des Projekts, an dem Sie arbeiten."
7400 7405
7401#. type: itemize 7406#. type: itemize
7402#: doc/guix-cookbook.texi:4044 7407#: guix-git/doc/guix-cookbook.texi:4046
7403msgid "Your favourite programming language libraries." 7408msgid "Your favourite programming language libraries."
7404msgstr "Die Bibliotheken Ihrer Lieblingsprogrammiersprache." 7409msgstr "Die Bibliotheken Ihrer Lieblingsprogrammiersprache."
7405 7410
7406#. type: itemize 7411#. type: itemize
7407#: doc/guix-cookbook.texi:4047 7412#: guix-git/doc/guix-cookbook.texi:4049
7408msgid "Laptop-specific programs (like @samp{powertop}) that you don't need on a desktop." 7413msgid "Laptop-specific programs (like @samp{powertop}) that you don't need on a desktop."
7409msgstr "Programme nur für Laptops (wie @samp{powertop}), für die Sie auf einem „Desktop“-Rechner keine Verwendung haben." 7414msgstr "Programme nur für Laptops (wie @samp{powertop}), für die Sie auf einem „Desktop“-Rechner keine Verwendung haben."
7410 7415
7411#. type: itemize 7416#. type: itemize
7412#: doc/guix-cookbook.texi:4051 7417#: guix-git/doc/guix-cookbook.texi:4053
7413msgid "@TeX{}live (this one can be really useful when you need to install just one package for this one document you've just received over email)." 7418msgid "@TeX{}live (this one can be really useful when you need to install just one package for this one document you've just received over email)."
7414msgstr "@TeX{}live (das kann wirklich praktisch sein, wenn Sie nur ein einziges Paket für dieses eine Dokument installieren müssen, das Ihnen jemand in einer E-Mail geschickt hat)." 7419msgstr "@TeX{}live (das kann wirklich praktisch sein, wenn Sie nur ein einziges Paket für dieses eine Dokument installieren müssen, das Ihnen jemand in einer E-Mail geschickt hat)."
7415 7420
7416#. type: itemize 7421#. type: itemize
7417#: doc/guix-cookbook.texi:4054 7422#: guix-git/doc/guix-cookbook.texi:4056
7418msgid "Games." 7423msgid "Games."
7419msgstr "Spiele." 7424msgstr "Spiele."
7420 7425
7421#. type: Plain text 7426#. type: Plain text
7422#: doc/guix-cookbook.texi:4057 7427#: guix-git/doc/guix-cookbook.texi:4059
7423msgid "Let's dive in the set up!" 7428msgid "Let's dive in the set up!"
7424msgstr "Tauchen wir ein in deren Einrichtung!" 7429msgstr "Tauchen wir ein in deren Einrichtung!"
7425 7430
7426#. type: Plain text 7431#. type: Plain text
7427#: doc/guix-cookbook.texi:4072 7432#: guix-git/doc/guix-cookbook.texi:4074
7428msgid "A Guix profile can be set up @i{via} a @dfn{manifest}. A manifest is a snippet of Scheme code that specifies the set of packages you want to have in your profile; it looks like this:" 7433msgid "A Guix profile can be set up @i{via} a @dfn{manifest}. A manifest is a snippet of Scheme code that specifies the set of packages you want to have in your profile; it looks like this:"
7429msgstr "Ein Guix-Profil kann über ein @dfn{Manifest} eingerichtet werden. Ein Manifest ist ein in Scheme geschriebenes Codeschnipsel, mit dem die Pakete spezifiziert werden, die Sie in Ihrem Profil haben möchten. Das sieht etwa so aus:" 7434msgstr "Ein Guix-Profil kann über ein @dfn{Manifest} eingerichtet werden. Ein Manifest ist ein in Scheme geschriebenes Codeschnipsel, mit dem die Pakete spezifiziert werden, die Sie in Ihrem Profil haben möchten. Das sieht etwa so aus:"
7430 7435
7431#. type: lisp 7436#. type: lisp
7432#: doc/guix-cookbook.texi:4082 7437#: guix-git/doc/guix-cookbook.texi:4084
7433#, no-wrap 7438#, no-wrap
7434msgid "" 7439msgid ""
7435"(specifications->manifest\n" 7440"(specifications->manifest\n"
@@ -7451,17 +7456,17 @@ msgstr ""
7451" \"paket-N\"))\n" 7456" \"paket-N\"))\n"
7452 7457
7453#. type: Plain text 7458#. type: Plain text
7454#: doc/guix-cookbook.texi:4086 7459#: guix-git/doc/guix-cookbook.texi:4088
7455msgid "@xref{Writing Manifests,,, guix, GNU Guix Reference Manual}, for more information about the syntax." 7460msgid "@xref{Writing Manifests,,, guix, GNU Guix Reference Manual}, for more information about the syntax."
7456msgstr "Siehe @ref{Manifeste verfassen,,, guix.de, Referenzhandbuch zu GNU Guix} für mehr Informationen zur Syntax." 7461msgstr "Siehe @ref{Manifeste verfassen,,, guix.de, Referenzhandbuch zu GNU Guix} für mehr Informationen zur Syntax."
7457 7462
7458#. type: Plain text 7463#. type: Plain text
7459#: doc/guix-cookbook.texi:4088 7464#: guix-git/doc/guix-cookbook.texi:4090
7460msgid "We can create a manifest specification per profile and install them this way:" 7465msgid "We can create a manifest specification per profile and install them this way:"
7461msgstr "Wir können eine Manifestspezifikation für jedes Profil schreiben und es auf diese Weise installieren:" 7466msgstr "Wir können eine Manifestspezifikation für jedes Profil schreiben und es auf diese Weise installieren:"
7462 7467
7463#. type: example 7468#. type: example
7464#: doc/guix-cookbook.texi:4094 7469#: guix-git/doc/guix-cookbook.texi:4096
7465#, no-wrap 7470#, no-wrap
7466msgid "" 7471msgid ""
7467"GUIX_EXTRA_PROFILES=$HOME/.guix-extra-profiles\n" 7472"GUIX_EXTRA_PROFILES=$HOME/.guix-extra-profiles\n"
@@ -7475,38 +7480,38 @@ msgstr ""
7475" --profile=\"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n" 7480" --profile=\"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n"
7476 7481
7477#. type: Plain text 7482#. type: Plain text
7478#: doc/guix-cookbook.texi:4098 7483#: guix-git/doc/guix-cookbook.texi:4100
7479msgid "Here we set an arbitrary variable @samp{GUIX_EXTRA_PROFILES} to point to the directory where we will store our profiles in the rest of this article." 7484msgid "Here we set an arbitrary variable @samp{GUIX_EXTRA_PROFILES} to point to the directory where we will store our profiles in the rest of this article."
7480msgstr "Hierbei haben wir eine beliebig benannte Variable @samp{GUIX_EXTRA_PROFILES} eingerichtet, die auf das Verzeichnis verweist, wo wir unsere Profile für den Rest dieses Artikels speichern wollen." 7485msgstr "Hierbei haben wir eine beliebig benannte Variable @samp{GUIX_EXTRA_PROFILES} eingerichtet, die auf das Verzeichnis verweist, wo wir unsere Profile für den Rest dieses Artikels speichern wollen."
7481 7486
7482#. type: Plain text 7487#. type: Plain text
7483#: doc/guix-cookbook.texi:4104 7488#: guix-git/doc/guix-cookbook.texi:4106
7484msgid "Placing all your profiles in a single directory, with each profile getting its own sub-directory, is somewhat cleaner. This way, each sub-directory will contain all the symlinks for precisely one profile. Besides, ``looping over profiles'' becomes obvious from any programming language (e.g.@: a shell script) by simply looping over the sub-directories of @samp{$GUIX_EXTRA_PROFILES}." 7489msgid "Placing all your profiles in a single directory, with each profile getting its own sub-directory, is somewhat cleaner. This way, each sub-directory will contain all the symlinks for precisely one profile. Besides, ``looping over profiles'' becomes obvious from any programming language (e.g.@: a shell script) by simply looping over the sub-directories of @samp{$GUIX_EXTRA_PROFILES}."
7485msgstr "Wenn Sie all Ihre Profile in ein einzelnes Verzeichnis legen und jedes Profil ein Unterverzeichnis darin bekommt, ist die Organisation etwas verständlicher. Dadurch wird jedes Unterverzeichnis all die symbolischen Verknüpfungen für genau ein Profil enthalten. Außerdem wird es von jeder Programmiersprache aus einfach, eine „Schleife über die Profile“ zu schreiben (z.B.@: in einem Shell-Skript), indem Sie es einfach die Unterverzeichnisse von @samp{$GUIX_EXTRA_PROFILES} in einer Schleife durchlaufen lassen." 7490msgstr "Wenn Sie all Ihre Profile in ein einzelnes Verzeichnis legen und jedes Profil ein Unterverzeichnis darin bekommt, ist die Organisation etwas verständlicher. Dadurch wird jedes Unterverzeichnis all die symbolischen Verknüpfungen für genau ein Profil enthalten. Außerdem wird es von jeder Programmiersprache aus einfach, eine „Schleife über die Profile“ zu schreiben (z.B.@: in einem Shell-Skript), indem Sie es einfach die Unterverzeichnisse von @samp{$GUIX_EXTRA_PROFILES} in einer Schleife durchlaufen lassen."
7486 7491
7487#. type: Plain text 7492#. type: Plain text
7488#: doc/guix-cookbook.texi:4106 7493#: guix-git/doc/guix-cookbook.texi:4108
7489msgid "Note that it's also possible to loop over the output of" 7494msgid "Note that it's also possible to loop over the output of"
7490msgstr "Beachten Sie, dass man auch eine Schleife über die Ausgabe von" 7495msgstr "Beachten Sie, dass man auch eine Schleife über die Ausgabe von"
7491 7496
7492#. type: example 7497#. type: example
7493#: doc/guix-cookbook.texi:4109 7498#: guix-git/doc/guix-cookbook.texi:4111
7494#, no-wrap 7499#, no-wrap
7495msgid "guix package --list-profiles\n" 7500msgid "guix package --list-profiles\n"
7496msgstr "guix package --list-profiles\n" 7501msgstr "guix package --list-profiles\n"
7497 7502
7498#. type: Plain text 7503#. type: Plain text
7499#: doc/guix-cookbook.texi:4112 7504#: guix-git/doc/guix-cookbook.texi:4114
7500msgid "although you'll probably have to filter out @file{~/.config/guix/current}." 7505msgid "although you'll probably have to filter out @file{~/.config/guix/current}."
7501msgstr "schreiben kann, obwohl Sie dabei wahrscheinlich @file{~/.config/guix/current} herausfiltern wollen würden." 7506msgstr "schreiben kann, obwohl Sie dabei wahrscheinlich @file{~/.config/guix/current} herausfiltern wollen würden."
7502 7507
7503#. type: Plain text 7508#. type: Plain text
7504#: doc/guix-cookbook.texi:4114 7509#: guix-git/doc/guix-cookbook.texi:4116
7505msgid "To enable all profiles on login, add this to your @file{~/.bash_profile} (or similar):" 7510msgid "To enable all profiles on login, add this to your @file{~/.bash_profile} (or similar):"
7506msgstr "Um bei der Anmeldung alle Profile zu aktivieren, fügen Sie dies in Ihre @file{~/.bash_profile} ein (oder etwas Entsprechendes):" 7511msgstr "Um bei der Anmeldung alle Profile zu aktivieren, fügen Sie dies in Ihre @file{~/.bash_profile} ein (oder etwas Entsprechendes):"
7507 7512
7508#. type: example 7513#. type: example
7509#: doc/guix-cookbook.texi:4124 7514#: guix-git/doc/guix-cookbook.texi:4126
7510#, no-wrap 7515#, no-wrap
7511msgid "" 7516msgid ""
7512"for i in $GUIX_EXTRA_PROFILES/*; do\n" 7517"for i in $GUIX_EXTRA_PROFILES/*; do\n"
@@ -7528,17 +7533,17 @@ msgstr ""
7528"done\n" 7533"done\n"
7529 7534
7530#. type: Plain text 7535#. type: Plain text
7531#: doc/guix-cookbook.texi:4129 7536#: guix-git/doc/guix-cookbook.texi:4131
7532msgid "Note to Guix System users: the above reflects how your default profile @file{~/.guix-profile} is activated from @file{/etc/profile}, that latter being loaded by @file{~/.bashrc} by default." 7537msgid "Note to Guix System users: the above reflects how your default profile @file{~/.guix-profile} is activated from @file{/etc/profile}, that latter being loaded by @file{~/.bashrc} by default."
7533msgstr "Eine Anmerkung für Nutzer von „Guix System“: Obiger Code entspricht dem, wie Ihr voreingestelltes Profil @file{~/.guix-profile} durch @file{/etc/profile} aktiviert wird, was nach Vorgabe durch @file{~/.bashrc} geladen wird." 7538msgstr "Eine Anmerkung für Nutzer von „Guix System“: Obiger Code entspricht dem, wie Ihr voreingestelltes Profil @file{~/.guix-profile} durch @file{/etc/profile} aktiviert wird, was nach Vorgabe durch @file{~/.bashrc} geladen wird."
7534 7539
7535#. type: Plain text 7540#. type: Plain text
7536#: doc/guix-cookbook.texi:4131 7541#: guix-git/doc/guix-cookbook.texi:4133
7537msgid "You can obviously choose to only enable a subset of them:" 7542msgid "You can obviously choose to only enable a subset of them:"
7538msgstr "Selbstverständlich können Sie sich auch dafür entscheiden, nur eine Teilmenge zu aktivieren:" 7543msgstr "Selbstverständlich können Sie sich auch dafür entscheiden, nur eine Teilmenge zu aktivieren:"
7539 7544
7540#. type: example 7545#. type: example
7541#: doc/guix-cookbook.texi:4141 7546#: guix-git/doc/guix-cookbook.texi:4143
7542#, no-wrap 7547#, no-wrap
7543msgid "" 7548msgid ""
7544"for i in \"$GUIX_EXTRA_PROFILES\"/my-project-1 \"$GUIX_EXTRA_PROFILES\"/my-project-2; do\n" 7549"for i in \"$GUIX_EXTRA_PROFILES\"/my-project-1 \"$GUIX_EXTRA_PROFILES\"/my-project-2; do\n"
@@ -7560,39 +7565,39 @@ msgstr ""
7560"done\n" 7565"done\n"
7561 7566
7562#. type: Plain text 7567#. type: Plain text
7563#: doc/guix-cookbook.texi:4145 7568#: guix-git/doc/guix-cookbook.texi:4147
7564msgid "When a profile is off, it's straightforward to enable it for an individual shell without \"polluting\" the rest of the user session:" 7569msgid "When a profile is off, it's straightforward to enable it for an individual shell without \"polluting\" the rest of the user session:"
7565msgstr "Wenn ein Profil abgeschaltet ist, lässt es sich mit Leichtigkeit für eine bestimmte Shell aktivieren, ohne die restliche Benutzersitzung zu „verschmutzen“:" 7570msgstr "Wenn ein Profil abgeschaltet ist, lässt es sich mit Leichtigkeit für eine bestimmte Shell aktivieren, ohne die restliche Benutzersitzung zu „verschmutzen“:"
7566 7571
7567#. type: example 7572#. type: example
7568#: doc/guix-cookbook.texi:4148 7573#: guix-git/doc/guix-cookbook.texi:4150
7569#, no-wrap 7574#, no-wrap
7570msgid "GUIX_PROFILE=\"path/to/my-project\" ; . \"$GUIX_PROFILE\"/etc/profile\n" 7575msgid "GUIX_PROFILE=\"path/to/my-project\" ; . \"$GUIX_PROFILE\"/etc/profile\n"
7571msgstr "GUIX_PROFILE=\"pfad/zu/my-project\" ; . \"$GUIX_PROFILE\"/etc/profile\n" 7576msgstr "GUIX_PROFILE=\"pfad/zu/my-project\" ; . \"$GUIX_PROFILE\"/etc/profile\n"
7572 7577
7573#. type: Plain text 7578#. type: Plain text
7574#: doc/guix-cookbook.texi:4155 7579#: guix-git/doc/guix-cookbook.texi:4157
7575msgid "The key to enabling a profile is to @emph{source} its @samp{etc/profile} file. This file contains shell code that exports the right environment variables necessary to activate the software contained in the profile. It is built automatically by Guix and meant to be sourced. It contains the same variables you would get if you ran:" 7580msgid "The key to enabling a profile is to @emph{source} its @samp{etc/profile} file. This file contains shell code that exports the right environment variables necessary to activate the software contained in the profile. It is built automatically by Guix and meant to be sourced. It contains the same variables you would get if you ran:"
7576msgstr "Der Schlüssel dazu, wie man ein Profil aktiviert, ist dessen @samp{etc/profile}-Datei mit @command{source} zu laden. Diese Datei enthält einige Shell-Befehle, um die für das Aktivieren der Software im Profil nötigen Umgebungsvariablen zu exportieren. Die Datei wird durch Guix automatisch erzeugt, um mit @command{source} eingelesen zu werden. Sie enthält dieselben Variablen, die Sie nach Ausführung dieses Befehls bekämen:" 7581msgstr "Der Schlüssel dazu, wie man ein Profil aktiviert, ist dessen @samp{etc/profile}-Datei mit @command{source} zu laden. Diese Datei enthält einige Shell-Befehle, um die für das Aktivieren der Software im Profil nötigen Umgebungsvariablen zu exportieren. Die Datei wird durch Guix automatisch erzeugt, um mit @command{source} eingelesen zu werden. Sie enthält dieselben Variablen, die Sie nach Ausführung dieses Befehls bekämen:"
7577 7582
7578#. type: example 7583#. type: example
7579#: doc/guix-cookbook.texi:4158 7584#: guix-git/doc/guix-cookbook.texi:4160
7580#, no-wrap 7585#, no-wrap
7581msgid "guix package --search-paths=prefix --profile=$my_profile\"\n" 7586msgid "guix package --search-paths=prefix --profile=$my_profile\"\n"
7582msgstr "guix package --search-paths=prefix --profile=$my_profile\"\n" 7587msgstr "guix package --search-paths=prefix --profile=$my_profile\"\n"
7583 7588
7584#. type: Plain text 7589#. type: Plain text
7585#: doc/guix-cookbook.texi:4162 7590#: guix-git/doc/guix-cookbook.texi:4164
7586msgid "Once again, see (@pxref{Invoking guix package,,, guix, GNU Guix Reference Manual}) for the command line options." 7591msgid "Once again, see (@pxref{Invoking guix package,,, guix, GNU Guix Reference Manual}) for the command line options."
7587msgstr "Siehe auch hier das @ref{Aufruf von guix package,,, guix.de, Referenzhandbuch zu GNU Guix} für die Befehlszeilenoptionen." 7592msgstr "Siehe auch hier das @ref{Aufruf von guix package,,, guix.de, Referenzhandbuch zu GNU Guix} für die Befehlszeilenoptionen."
7588 7593
7589#. type: Plain text 7594#. type: Plain text
7590#: doc/guix-cookbook.texi:4164 7595#: guix-git/doc/guix-cookbook.texi:4166
7591msgid "To upgrade a profile, simply install the manifest again:" 7596msgid "To upgrade a profile, simply install the manifest again:"
7592msgstr "Um ein Profil zu aktualisieren, installieren Sie das Manifest einfach nochmal:" 7597msgstr "Um ein Profil zu aktualisieren, installieren Sie das Manifest einfach nochmal:"
7593 7598
7594#. type: example 7599#. type: example
7595#: doc/guix-cookbook.texi:4168 7600#: guix-git/doc/guix-cookbook.texi:4170
7596#, no-wrap 7601#, no-wrap
7597msgid "" 7602msgid ""
7598"guix package -m /path/to/guix-my-project-manifest.scm \\\n" 7603"guix package -m /path/to/guix-my-project-manifest.scm \\\n"
@@ -7602,12 +7607,12 @@ msgstr ""
7602" -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n" 7607" -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n"
7603 7608
7604#. type: Plain text 7609#. type: Plain text
7605#: doc/guix-cookbook.texi:4174 7610#: guix-git/doc/guix-cookbook.texi:4176
7606msgid "To upgrade all profiles, it's easy enough to loop over them. For instance, assuming your manifest specifications are stored in @file{~/.guix-manifests/guix-$profile-manifest.scm}, with @samp{$profile} being the name of the profile (e.g.@: \"project1\"), you could do the following in Bourne shell:" 7611msgid "To upgrade all profiles, it's easy enough to loop over them. For instance, assuming your manifest specifications are stored in @file{~/.guix-manifests/guix-$profile-manifest.scm}, with @samp{$profile} being the name of the profile (e.g.@: \"project1\"), you could do the following in Bourne shell:"
7607msgstr "Um alle Profile zu aktualisieren, genügt es, sie in einer Schleife durchlaufen zu lassen. Nehmen wir zum Beispiel an, Ihre Manifestspezifikationen befinden sich in @file{~/.guix-manifests/guix-$profile-manifest.scm}, wobei @samp{$profile} der Name des Profils ist (z.B.@: „projekt1“), dann könnten Sie in der Bourne-Shell Folgendes tun:" 7612msgstr "Um alle Profile zu aktualisieren, genügt es, sie in einer Schleife durchlaufen zu lassen. Nehmen wir zum Beispiel an, Ihre Manifestspezifikationen befinden sich in @file{~/.guix-manifests/guix-$profile-manifest.scm}, wobei @samp{$profile} der Name des Profils ist (z.B.@: „projekt1“), dann könnten Sie in der Bourne-Shell Folgendes tun:"
7608 7613
7609#. type: example 7614#. type: example
7610#: doc/guix-cookbook.texi:4180 7615#: guix-git/doc/guix-cookbook.texi:4182
7611#, no-wrap 7616#, no-wrap
7612msgid "" 7617msgid ""
7613"for profile in \"$GUIX_EXTRA_PROFILES\"/*; do\n" 7618"for profile in \"$GUIX_EXTRA_PROFILES\"/*; do\n"
@@ -7621,34 +7626,34 @@ msgstr ""
7621"done\n" 7626"done\n"
7622 7627
7623#. type: Plain text 7628#. type: Plain text
7624#: doc/guix-cookbook.texi:4183 7629#: guix-git/doc/guix-cookbook.texi:4185
7625msgid "Each profile has its own generations:" 7630msgid "Each profile has its own generations:"
7626msgstr "Jedes Profil verfügt über seine eigenen Generationen:" 7631msgstr "Jedes Profil verfügt über seine eigenen Generationen:"
7627 7632
7628#. type: example 7633#. type: example
7629#: doc/guix-cookbook.texi:4186 7634#: guix-git/doc/guix-cookbook.texi:4188
7630#, no-wrap 7635#, no-wrap
7631msgid "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --list-generations\n" 7636msgid "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --list-generations\n"
7632msgstr "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --list-generations\n" 7637msgstr "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --list-generations\n"
7633 7638
7634#. type: Plain text 7639#. type: Plain text
7635#: doc/guix-cookbook.texi:4189 7640#: guix-git/doc/guix-cookbook.texi:4191
7636msgid "You can roll-back to any generation of a given profile:" 7641msgid "You can roll-back to any generation of a given profile:"
7637msgstr "Sie können es auf jede Generation zurücksetzen:" 7642msgstr "Sie können es auf jede Generation zurücksetzen:"
7638 7643
7639#. type: example 7644#. type: example
7640#: doc/guix-cookbook.texi:4192 7645#: guix-git/doc/guix-cookbook.texi:4194
7641#, no-wrap 7646#, no-wrap
7642msgid "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --switch-generations=17\n" 7647msgid "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --switch-generations=17\n"
7643msgstr "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --switch-generations=17\n" 7648msgstr "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --switch-generations=17\n"
7644 7649
7645#. type: Plain text 7650#. type: Plain text
7646#: doc/guix-cookbook.texi:4196 7651#: guix-git/doc/guix-cookbook.texi:4198
7647msgid "Finally, if you want to switch to a profile without inheriting from the current environment, you can activate it from an empty shell:" 7652msgid "Finally, if you want to switch to a profile without inheriting from the current environment, you can activate it from an empty shell:"
7648msgstr "Zu guter Letzt ist es möglich, zu einem Profil zu wechseln ohne die aktuelle Umgebung zu erben, indem Sie es aus einer leeren Shell heraus aktivieren:" 7653msgstr "Zu guter Letzt ist es möglich, zu einem Profil zu wechseln ohne die aktuelle Umgebung zu erben, indem Sie es aus einer leeren Shell heraus aktivieren:"
7649 7654
7650#. type: example 7655#. type: example
7651#: doc/guix-cookbook.texi:4200 7656#: guix-git/doc/guix-cookbook.texi:4202
7652#, no-wrap 7657#, no-wrap
7653msgid "" 7658msgid ""
7654"env -i $(which bash) --login --noprofile --norc\n" 7659"env -i $(which bash) --login --noprofile --norc\n"
@@ -7658,58 +7663,58 @@ msgstr ""
7658". my-project/etc/profile\n" 7663". my-project/etc/profile\n"
7659 7664
7660#. type: Plain text 7665#. type: Plain text
7661#: doc/guix-cookbook.texi:4208 7666#: guix-git/doc/guix-cookbook.texi:4210
7662msgid "Activating a profile essentially boils down to exporting a bunch of environmental variables. This is the role of the @samp{etc/profile} within the profile." 7667msgid "Activating a profile essentially boils down to exporting a bunch of environmental variables. This is the role of the @samp{etc/profile} within the profile."
7663msgstr "Das Aktivieren eines Profils bedeutet im Grunde, dass eine Menge Umgebungsvariabler exportiert wird. Diese Rolle fällt der @samp{etc/profile}-Datei innerhalb des Profils zu." 7668msgstr "Das Aktivieren eines Profils bedeutet im Grunde, dass eine Menge Umgebungsvariabler exportiert wird. Diese Rolle fällt der @samp{etc/profile}-Datei innerhalb des Profils zu."
7664 7669
7665#. type: emph{#1} 7670#. type: emph{#1}
7666#: doc/guix-cookbook.texi:4211 7671#: guix-git/doc/guix-cookbook.texi:4213
7667msgid "Note: Only the environmental variables of the packages that consume them will be set." 7672msgid "Note: Only the environmental variables of the packages that consume them will be set."
7668msgstr "Anmerkung: Nur diejenigen Umgebungsvariablen der sie gebrauchenden Pakete werden gesetzt." 7673msgstr "Anmerkung: Nur diejenigen Umgebungsvariablen der sie gebrauchenden Pakete werden gesetzt."
7669 7674
7670#. type: Plain text 7675#. type: Plain text
7671#: doc/guix-cookbook.texi:4215 7676#: guix-git/doc/guix-cookbook.texi:4217
7672msgid "For instance, @samp{MANPATH} won't be set if there is no consumer application for man pages within the profile. So if you need to transparently access man pages once the profile is loaded, you've got two options:" 7677msgid "For instance, @samp{MANPATH} won't be set if there is no consumer application for man pages within the profile. So if you need to transparently access man pages once the profile is loaded, you've got two options:"
7673msgstr "Zum Beispiel wird kein @samp{MANPATH} gesetzt sein, wenn keine Anwendung im Profil diese „Man-Pages“ (Handbuchseiten) gebraucht. Wenn Sie also transparenten Zugriff auf Handbuchseiten brauchen, nachdem das Profil geladen wurde, dann gibt es zwei Möglichkeiten:" 7678msgstr "Zum Beispiel wird kein @samp{MANPATH} gesetzt sein, wenn keine Anwendung im Profil diese „Man-Pages“ (Handbuchseiten) gebraucht. Wenn Sie also transparenten Zugriff auf Handbuchseiten brauchen, nachdem das Profil geladen wurde, dann gibt es zwei Möglichkeiten:"
7674 7679
7675#. type: itemize 7680#. type: itemize
7676#: doc/guix-cookbook.texi:4219 7681#: guix-git/doc/guix-cookbook.texi:4221
7677msgid "Either export the variable manually, e.g." 7682msgid "Either export the variable manually, e.g."
7678msgstr "Entweder Sie exportieren die Variablen von Hand, z.B." 7683msgstr "Entweder Sie exportieren die Variablen von Hand, z.B."
7679 7684
7680#. type: example 7685#. type: example
7681#: doc/guix-cookbook.texi:4221 7686#: guix-git/doc/guix-cookbook.texi:4223
7682#, no-wrap 7687#, no-wrap
7683msgid "export MANPATH=/path/to/profile$@{MANPATH:+:@}$MANPATH\n" 7688msgid "export MANPATH=/path/to/profile$@{MANPATH:+:@}$MANPATH\n"
7684msgstr "export MANPATH=/path/to/profile$@{MANPATH:+:@}$MANPATH\n" 7689msgstr "export MANPATH=/path/to/profile$@{MANPATH:+:@}$MANPATH\n"
7685 7690
7686#. type: itemize 7691#. type: itemize
7687#: doc/guix-cookbook.texi:4225 7692#: guix-git/doc/guix-cookbook.texi:4227
7688msgid "Or include @samp{man-db} to the profile manifest." 7693msgid "Or include @samp{man-db} to the profile manifest."
7689msgstr "Oder Sie schreiben @samp{man-db} in das Profilmanifest hinein." 7694msgstr "Oder Sie schreiben @samp{man-db} in das Profilmanifest hinein."
7690 7695
7691#. type: Plain text 7696#. type: Plain text
7692#: doc/guix-cookbook.texi:4229 7697#: guix-git/doc/guix-cookbook.texi:4231
7693msgid "The same is true for @samp{INFOPATH} (you can install @samp{info-reader}), @samp{PKG_CONFIG_PATH} (install @samp{pkg-config}), etc." 7698msgid "The same is true for @samp{INFOPATH} (you can install @samp{info-reader}), @samp{PKG_CONFIG_PATH} (install @samp{pkg-config}), etc."
7694msgstr "Das Gleiche gilt für @samp{INFOPATH} (Sie können @samp{info-reader} installieren), @samp{PKG_CONFIG_PATH} (installieren Sie @samp{pkg-config}), etc." 7699msgstr "Das Gleiche gilt für @samp{INFOPATH} (Sie können @samp{info-reader} installieren), @samp{PKG_CONFIG_PATH} (installieren Sie @samp{pkg-config}), etc."
7695 7700
7696#. type: Plain text 7701#. type: Plain text
7697#: doc/guix-cookbook.texi:4234 7702#: guix-git/doc/guix-cookbook.texi:4236
7698msgid "What about the default profile that Guix keeps in @file{~/.guix-profile}?" 7703msgid "What about the default profile that Guix keeps in @file{~/.guix-profile}?"
7699msgstr "Was ist mit dem Standardprofil, das Guix in @file{~/.guix-profile} aufbewahrt?" 7704msgstr "Was ist mit dem Standardprofil, das Guix in @file{~/.guix-profile} aufbewahrt?"
7700 7705
7701#. type: Plain text 7706#. type: Plain text
7702#: doc/guix-cookbook.texi:4237 7707#: guix-git/doc/guix-cookbook.texi:4239
7703msgid "You can assign it the role you want. Typically you would install the manifest of the packages you want to use all the time." 7708msgid "You can assign it the role you want. Typically you would install the manifest of the packages you want to use all the time."
7704msgstr "Sie können ihm die Rolle zuweisen, die Sie wollen. Normalerweise würden Sie das Manifest derjenigen Pakete installieren, die Sie ständig benutzen möchten." 7709msgstr "Sie können ihm die Rolle zuweisen, die Sie wollen. Normalerweise würden Sie das Manifest derjenigen Pakete installieren, die Sie ständig benutzen möchten."
7705 7710
7706#. type: Plain text 7711#. type: Plain text
7707#: doc/guix-cookbook.texi:4241 7712#: guix-git/doc/guix-cookbook.texi:4243
7708msgid "Alternatively, you could keep it ``manifest-less'' for throw-away packages that you would just use for a couple of days. This way makes it convenient to run" 7713msgid "Alternatively, you could keep it ``manifest-less'' for throw-away packages that you would just use for a couple of days. This way makes it convenient to run"
7709msgstr "Alternativ können Sie es ohne Manifest für Wegwerfpakete benutzen, die Sie nur ein paar Tage lang benutzen wollen. Das macht es leicht," 7714msgstr "Alternativ können Sie es ohne Manifest für Wegwerfpakete benutzen, die Sie nur ein paar Tage lang benutzen wollen. Das macht es leicht,"
7710 7715
7711#. type: example 7716#. type: example
7712#: doc/guix-cookbook.texi:4245 7717#: guix-git/doc/guix-cookbook.texi:4247
7713#, no-wrap 7718#, no-wrap
7714msgid "" 7719msgid ""
7715"guix install package-foo\n" 7720"guix install package-foo\n"
@@ -7719,107 +7724,107 @@ msgstr ""
7719"guix upgrade paket-bar\n" 7724"guix upgrade paket-bar\n"
7720 7725
7721#. type: Plain text 7726#. type: Plain text
7722#: doc/guix-cookbook.texi:4248 7727#: guix-git/doc/guix-cookbook.texi:4250
7723msgid "without having to specify the path to a profile." 7728msgid "without having to specify the path to a profile."
7724msgstr "auszuführen ohne den Pfad zu einem Profil festzulegen." 7729msgstr "auszuführen ohne den Pfad zu einem Profil festzulegen."
7725 7730
7726#. type: Plain text 7731#. type: Plain text
7727#: doc/guix-cookbook.texi:4256 7732#: guix-git/doc/guix-cookbook.texi:4258
7728msgid "Manifests let you @dfn{declare} the set of packages you'd like to have in a profile (@pxref{Writing Manifests,,, guix, GNU Guix Reference Manual}). They are a convenient way to keep your package lists around and, say, to synchronize them across multiple machines using a version control system." 7733msgid "Manifests let you @dfn{declare} the set of packages you'd like to have in a profile (@pxref{Writing Manifests,,, guix, GNU Guix Reference Manual}). They are a convenient way to keep your package lists around and, say, to synchronize them across multiple machines using a version control system."
7729msgstr "Mit Manifesten können Sie @dfn{deklarativ} angeben, welche Pakete Sie in Ihrem Profil haben möchten (siehe @ref{Manifeste verfassen,,, guix.de, Referenzhandbuch zu GNU Guix}). Sie sind eine bequeme Art, Ihre Paketlisten zur Hand zu haben und diese z.B.@: über mehrere Maschinen hinweg in einem Versionskontrollsystem zu synchronisieren." 7734msgstr "Mit Manifesten können Sie @dfn{deklarativ} angeben, welche Pakete Sie in Ihrem Profil haben möchten (siehe @ref{Manifeste verfassen,,, guix.de, Referenzhandbuch zu GNU Guix}). Sie sind eine bequeme Art, Ihre Paketlisten zur Hand zu haben und diese z.B.@: über mehrere Maschinen hinweg in einem Versionskontrollsystem zu synchronisieren."
7730 7735
7731#. type: Plain text 7736#. type: Plain text
7732#: doc/guix-cookbook.texi:4260 7737#: guix-git/doc/guix-cookbook.texi:4262
7733msgid "A common complaint about manifests is that they can be slow to install when they contain large number of packages. This is especially cumbersome when you just want get an upgrade for one package within a big manifest." 7738msgid "A common complaint about manifests is that they can be slow to install when they contain large number of packages. This is especially cumbersome when you just want get an upgrade for one package within a big manifest."
7734msgstr "Eine oft gehörte Beschwerde über Manifeste ist, dass es lange dauert, sie zu installieren, wenn sie viele Pakete enthalten. Das ist besonders hinderlich, wenn Sie nur ein einziges Paket in ein großes Manifest installieren möchten." 7739msgstr "Eine oft gehörte Beschwerde über Manifeste ist, dass es lange dauert, sie zu installieren, wenn sie viele Pakete enthalten. Das ist besonders hinderlich, wenn Sie nur ein einziges Paket in ein großes Manifest installieren möchten."
7735 7740
7736#. type: Plain text 7741#. type: Plain text
7737#: doc/guix-cookbook.texi:4265 7742#: guix-git/doc/guix-cookbook.texi:4267
7738msgid "This is one more reason to use multiple profiles, which happen to be just perfect to break down manifests into multiple sets of semantically connected packages. Using multiple, small profiles provides more flexibility and usability." 7743msgid "This is one more reason to use multiple profiles, which happen to be just perfect to break down manifests into multiple sets of semantically connected packages. Using multiple, small profiles provides more flexibility and usability."
7739msgstr "Das ist ein weiteres Argument dafür, mehrere Profile zu benutzen, denn es stellt sich heraus, dass dieses Vorgehen perfekt für das Aufbrechen von Manifesten in mehrere Mengen semantisch verbundener Pakete geeignet ist. Mit mehreren, kleinen Profilen haben Sie mehr Flexibilität und Benutzerfreundlichkeit." 7744msgstr "Das ist ein weiteres Argument dafür, mehrere Profile zu benutzen, denn es stellt sich heraus, dass dieses Vorgehen perfekt für das Aufbrechen von Manifesten in mehrere Mengen semantisch verbundener Pakete geeignet ist. Mit mehreren, kleinen Profilen haben Sie mehr Flexibilität und Benutzerfreundlichkeit."
7740 7745
7741#. type: Plain text 7746#. type: Plain text
7742#: doc/guix-cookbook.texi:4267 7747#: guix-git/doc/guix-cookbook.texi:4269
7743msgid "Manifests come with multiple benefits. In particular, they ease maintenance:" 7748msgid "Manifests come with multiple benefits. In particular, they ease maintenance:"
7744msgstr "Manifeste haben mehrere Vorteile. Insbesondere erleichtern sie die Wartung." 7749msgstr "Manifeste haben mehrere Vorteile. Insbesondere erleichtern sie die Wartung."
7745 7750
7746#. type: itemize 7751#. type: itemize
7747#: doc/guix-cookbook.texi:4275 7752#: guix-git/doc/guix-cookbook.texi:4277
7748msgid "When a profile is set up from a manifest, the manifest itself is self-sufficient to keep a ``package listing'' around and reinstall the profile later or on a different system. For ad-hoc profiles, we would need to generate a manifest specification manually and maintain the package versions for the packages that don't use the default version." 7753msgid "When a profile is set up from a manifest, the manifest itself is self-sufficient to keep a ``package listing'' around and reinstall the profile later or on a different system. For ad-hoc profiles, we would need to generate a manifest specification manually and maintain the package versions for the packages that don't use the default version."
7749msgstr "Wenn ein Profil aus einem Manifest heraus eingerichtet wird, ist das Manifest selbst genug, um eine Liste der Pakete zur Verfügung zu haben und das Profil später auf einem anderen System zu installieren. Bei @i{ad-hoc}-Profilen müssten wir hingegen eine Manifestspezifikation von Hand schreiben und uns um die Paketversionen derjenigen Pakete kümmern, die nicht die vorgegebene Version verwenden." 7754msgstr "Wenn ein Profil aus einem Manifest heraus eingerichtet wird, ist das Manifest selbst genug, um eine Liste der Pakete zur Verfügung zu haben und das Profil später auf einem anderen System zu installieren. Bei @i{ad-hoc}-Profilen müssten wir hingegen eine Manifestspezifikation von Hand schreiben und uns um die Paketversionen derjenigen Pakete kümmern, die nicht die vorgegebene Version verwenden."
7750 7755
7751#. type: itemize 7756#. type: itemize
7752#: doc/guix-cookbook.texi:4280 7757#: guix-git/doc/guix-cookbook.texi:4282
7753msgid "@code{guix package --upgrade} always tries to update the packages that have propagated inputs, even if there is nothing to do. Guix manifests remove this problem." 7758msgid "@code{guix package --upgrade} always tries to update the packages that have propagated inputs, even if there is nothing to do. Guix manifests remove this problem."
7754msgstr "Bei @code{guix package --upgrade} wird immer versucht, die Pakete zu aktualisieren, die propagierte Eingaben haben, selbst wenn es nichts zu tun gibt. Mit Guix-Manifesten fällt dieses Problem weg." 7759msgstr "Bei @code{guix package --upgrade} wird immer versucht, die Pakete zu aktualisieren, die propagierte Eingaben haben, selbst wenn es nichts zu tun gibt. Mit Guix-Manifesten fällt dieses Problem weg."
7755 7760
7756#. type: itemize 7761#. type: itemize
7757#: doc/guix-cookbook.texi:4286 7762#: guix-git/doc/guix-cookbook.texi:4288
7758msgid "When partially upgrading a profile, conflicts may arise (due to diverging dependencies between the updated and the non-updated packages) and they can be annoying to resolve manually. Manifests remove this problem altogether since all packages are always upgraded at once." 7763msgid "When partially upgrading a profile, conflicts may arise (due to diverging dependencies between the updated and the non-updated packages) and they can be annoying to resolve manually. Manifests remove this problem altogether since all packages are always upgraded at once."
7759msgstr "Wenn man nur Teile eines Profils aktualisiert, kann es zu Konflikten kommen (weil die Abhängigkeiten zwischen aktualisierten und nicht aktualisierten Paketen voneinander abweichen), und es kann mühsam sein, diese Konflikte von Hand aufzulösen. Manifeste haben kein solches Problem, weil alle Pakete immer gleichzeitig aktualisiert werden." 7764msgstr "Wenn man nur Teile eines Profils aktualisiert, kann es zu Konflikten kommen (weil die Abhängigkeiten zwischen aktualisierten und nicht aktualisierten Paketen voneinander abweichen), und es kann mühsam sein, diese Konflikte von Hand aufzulösen. Manifeste haben kein solches Problem, weil alle Pakete immer gleichzeitig aktualisiert werden."
7760 7765
7761#. type: itemize 7766#. type: itemize
7762#: doc/guix-cookbook.texi:4292 7767#: guix-git/doc/guix-cookbook.texi:4294
7763msgid "As mentioned above, manifests allow for reproducible profiles, while the imperative @code{guix install}, @code{guix upgrade}, etc. do not, since they produce different profiles every time even when they hold the same packages. See @uref{https://issues.guix.gnu.org/issue/33285, the related discussion on the matter}." 7768msgid "As mentioned above, manifests allow for reproducible profiles, while the imperative @code{guix install}, @code{guix upgrade}, etc. do not, since they produce different profiles every time even when they hold the same packages. See @uref{https://issues.guix.gnu.org/issue/33285, the related discussion on the matter}."
7764msgstr "Wie zuvor erwähnt, gewähren einem Manifeste reproduzierbare Profile, während die imperativen @code{guix install}, @code{guix upgrade}, etc.@: das nicht tun, weil sie jedes Mal ein anderes Profil ergeben, obwohl sie dieselben Pakete enthalten. Siehe die @uref{https://issues.guix.gnu.org/issue/33285, dieses Thema betreffende Diskussion}." 7769msgstr "Wie zuvor erwähnt, gewähren einem Manifeste reproduzierbare Profile, während die imperativen @code{guix install}, @code{guix upgrade}, etc.@: das nicht tun, weil sie jedes Mal ein anderes Profil ergeben, obwohl sie dieselben Pakete enthalten. Siehe die @uref{https://issues.guix.gnu.org/issue/33285, dieses Thema betreffende Diskussion}."
7765 7770
7766#. type: itemize 7771#. type: itemize
7767#: doc/guix-cookbook.texi:4300 7772#: guix-git/doc/guix-cookbook.texi:4302
7768msgid "Manifest specifications are usable by other @samp{guix} commands. For example, you can run @code{guix weather -m manifest.scm} to see how many substitutes are available, which can help you decide whether you want to try upgrading today or wait a while. Another example: you can run @code{guix pack -m manifest.scm} to create a pack containing all the packages in the manifest (and their transitive references)." 7773msgid "Manifest specifications are usable by other @samp{guix} commands. For example, you can run @code{guix weather -m manifest.scm} to see how many substitutes are available, which can help you decide whether you want to try upgrading today or wait a while. Another example: you can run @code{guix pack -m manifest.scm} to create a pack containing all the packages in the manifest (and their transitive references)."
7769msgstr "Manifestspezifikationen können von anderen @samp{guix}-Befehlen benutzt werden. Zum Beispiel können Sie @code{guix weather -m manifest.scm} ausführen, um zu sehen, wie viele Substitute verfügbar sind, was Ihnen bei der Entscheidung helfen kann, ob Sie heute schon eine Aktualisierung durchführen oder lieber noch eine Weile warten möchten. Ein anderes Beispiel: Sie können mit @code{guix pack -m manifest.scm} ein Bündel erzeugen, das alle Pakete im Manifest enthält (mitsamt derer transitiven Referenzen)." 7774msgstr "Manifestspezifikationen können von anderen @samp{guix}-Befehlen benutzt werden. Zum Beispiel können Sie @code{guix weather -m manifest.scm} ausführen, um zu sehen, wie viele Substitute verfügbar sind, was Ihnen bei der Entscheidung helfen kann, ob Sie heute schon eine Aktualisierung durchführen oder lieber noch eine Weile warten möchten. Ein anderes Beispiel: Sie können mit @code{guix pack -m manifest.scm} ein Bündel erzeugen, das alle Pakete im Manifest enthält (mitsamt derer transitiven Referenzen)."
7770 7775
7771#. type: itemize 7776#. type: itemize
7772#: doc/guix-cookbook.texi:4304 7777#: guix-git/doc/guix-cookbook.texi:4306
7773msgid "Finally, manifests have a Scheme representation, the @samp{<manifest>} record type. They can be manipulated in Scheme and passed to the various Guix @uref{https://en.wikipedia.org/wiki/Api, APIs}." 7778msgid "Finally, manifests have a Scheme representation, the @samp{<manifest>} record type. They can be manipulated in Scheme and passed to the various Guix @uref{https://en.wikipedia.org/wiki/Api, APIs}."
7774msgstr "Zuletzt haben Manifeste auch eine Repräsentation in Scheme, nämlich den @samp{<manifest>}-Verbundstyp. Sie können in Scheme verarbeitet werden und an die verschiedenen @uref{https://de.wikipedia.org/wiki/Programmierschnittstelle, Guix-Programmierschnittstellen (APIs)} übergeben werden." 7779msgstr "Zuletzt haben Manifeste auch eine Repräsentation in Scheme, nämlich den @samp{<manifest>}-Verbundstyp. Sie können in Scheme verarbeitet werden und an die verschiedenen @uref{https://de.wikipedia.org/wiki/Programmierschnittstelle, Guix-Programmierschnittstellen (APIs)} übergeben werden."
7775 7780
7776#. type: Plain text 7781#. type: Plain text
7777#: doc/guix-cookbook.texi:4315 7782#: guix-git/doc/guix-cookbook.texi:4317
7778msgid "It's important to understand that while manifests can be used to declare profiles, they are not strictly equivalent: profiles have the side effect that they ``pin'' packages in the store, which prevents them from being garbage-collected (@pxref{Invoking guix gc,,, guix, GNU Guix Reference Manual}) and ensures that they will still be available at any point in the future. The @command{guix shell} command also protects recently-used profiles from garbage collection; profiles that have not been used for a while may be garbage-collected though, along with the packages they refer to." 7783msgid "It's important to understand that while manifests can be used to declare profiles, they are not strictly equivalent: profiles have the side effect that they ``pin'' packages in the store, which prevents them from being garbage-collected (@pxref{Invoking guix gc,,, guix, GNU Guix Reference Manual}) and ensures that they will still be available at any point in the future. The @command{guix shell} command also protects recently-used profiles from garbage collection; profiles that have not been used for a while may be garbage-collected though, along with the packages they refer to."
7779msgstr "Es ist wichtig, dass Sie verstehen, dass Manifeste zwar benutzt werden können, um Profile zu deklarieren, sie aber nicht ganz dasselbe wie Profile sind: Profile haben Nebenwirkungen. Sie setzen Pakete im Store fest, so dass sie nicht vom Müllsammler geholt werden (siehe @ref{Aufruf von guix gc,,, guix.de, Referenzhandbuch zu GNU Guix}) und stellen sicher, dass sie auch in Zukunft jederzeit verfügbar sein werden. Wenn Sie den Befehl @command{guix shell} verwenden, werden damit erzeugte kürzlich verwendete Profile allerdings auch vor dem Müllsammler beschützt; Profile, die länger nicht verwendet werden, können jedoch zusammen mit ihren referenzierten Paketen von ihm gelöscht werden." 7784msgstr "Es ist wichtig, dass Sie verstehen, dass Manifeste zwar benutzt werden können, um Profile zu deklarieren, sie aber nicht ganz dasselbe wie Profile sind: Profile haben Nebenwirkungen. Sie setzen Pakete im Store fest, so dass sie nicht vom Müllsammler geholt werden (siehe @ref{Aufruf von guix gc,,, guix.de, Referenzhandbuch zu GNU Guix}) und stellen sicher, dass sie auch in Zukunft jederzeit verfügbar sein werden. Wenn Sie den Befehl @command{guix shell} verwenden, werden damit erzeugte kürzlich verwendete Profile allerdings auch vor dem Müllsammler beschützt; Profile, die länger nicht verwendet werden, können jedoch zusammen mit ihren referenzierten Paketen von ihm gelöscht werden."
7780 7785
7781#. type: Plain text 7786#. type: Plain text
7782#: doc/guix-cookbook.texi:4320 7787#: guix-git/doc/guix-cookbook.texi:4322
7783msgid "To be 100% sure that a given profile will never be collected, install the manifest to a profile and use @code{GUIX_PROFILE=/the/profile; . \"$GUIX_PROFILE\"/etc/profile} as explained above: this guarantees that our hacking environment will be available at all times." 7788msgid "To be 100% sure that a given profile will never be collected, install the manifest to a profile and use @code{GUIX_PROFILE=/the/profile; . \"$GUIX_PROFILE\"/etc/profile} as explained above: this guarantees that our hacking environment will be available at all times."
7784msgstr "Wenn wir uns 100% sicher sein wollen, dass der Müllsammler ein bestimmtes Profil nicht sammelt, müssen wir das Manifest in ein Profil installieren und @code{GUIX_PROFILE=/das/profil; . \"$GUIX_PROFILE\"/etc/profile} aufrufen, wie oben erklärt. Dadurch haben wir die Garantie, dass unsere Hacking-Umgebung jederzeit zur Verfügung steht." 7789msgstr "Wenn wir uns 100% sicher sein wollen, dass der Müllsammler ein bestimmtes Profil nicht sammelt, müssen wir das Manifest in ein Profil installieren und @code{GUIX_PROFILE=/das/profil; . \"$GUIX_PROFILE\"/etc/profile} aufrufen, wie oben erklärt. Dadurch haben wir die Garantie, dass unsere Hacking-Umgebung jederzeit zur Verfügung steht."
7785 7790
7786#. type: Plain text 7791#. type: Plain text
7787#: doc/guix-cookbook.texi:4323 7792#: guix-git/doc/guix-cookbook.texi:4325
7788msgid "@emph{Security warning:} While keeping old profiles around can be convenient, keep in mind that outdated packages may not have received the latest security fixes." 7793msgid "@emph{Security warning:} While keeping old profiles around can be convenient, keep in mind that outdated packages may not have received the latest security fixes."
7789msgstr "@emph{Sicherheitswarnung:} Obwohl es angenehm sein kann, alte Profile zu behalten, sollten Sie daran denken, dass veraltete Pakete @emph{nicht} über die neuesten Sicherheitsbehebungen verfügen." 7794msgstr "@emph{Sicherheitswarnung:} Obwohl es angenehm sein kann, alte Profile zu behalten, sollten Sie daran denken, dass veraltete Pakete @emph{nicht} über die neuesten Sicherheitsbehebungen verfügen."
7790 7795
7791#. type: Plain text 7796#. type: Plain text
7792#: doc/guix-cookbook.texi:4328 7797#: guix-git/doc/guix-cookbook.texi:4330
7793msgid "To reproduce a profile bit-for-bit, we need two pieces of information:" 7798msgid "To reproduce a profile bit-for-bit, we need two pieces of information:"
7794msgstr "Um ein Profil Bit für Bit nachzubilden, brauchen wir zweierlei Informationen:" 7799msgstr "Um ein Profil Bit für Bit nachzubilden, brauchen wir zweierlei Informationen:"
7795 7800
7796#. type: itemize 7801#. type: itemize
7797#: doc/guix-cookbook.texi:4332 7802#: guix-git/doc/guix-cookbook.texi:4334
7798msgid "a manifest (@pxref{Writing Manifests,,, guix, GNU Guix Reference Manual});" 7803msgid "a manifest (@pxref{Writing Manifests,,, guix, GNU Guix Reference Manual});"
7799msgstr "ein Manifest (siehe @ref{Manifeste verfassen,,, guix.de, Referenzhandbuch zu GNU Guix}) und" 7804msgstr "ein Manifest (siehe @ref{Manifeste verfassen,,, guix.de, Referenzhandbuch zu GNU Guix}) und"
7800 7805
7801#. type: itemize 7806#. type: itemize
7802#: doc/guix-cookbook.texi:4335 7807#: guix-git/doc/guix-cookbook.texi:4337
7803msgid "a Guix channel specification (@pxref{Replicating Guix,,, guix, GNU Guix Reference Manual})." 7808msgid "a Guix channel specification (@pxref{Replicating Guix,,, guix, GNU Guix Reference Manual})."
7804msgstr "eine Kanalspezifikation für Guix (siehe @pxref{Guix nachbilden,,, guix.de, Referenzhandbuch zu GNU Guix})." 7809msgstr "eine Kanalspezifikation für Guix (siehe @pxref{Guix nachbilden,,, guix.de, Referenzhandbuch zu GNU Guix})."
7805 7810
7806#. type: Plain text 7811#. type: Plain text
7807#: doc/guix-cookbook.texi:4339 7812#: guix-git/doc/guix-cookbook.texi:4341
7808msgid "Indeed, manifests alone might not be enough: different Guix versions (or different channels) can produce different outputs for a given manifest." 7813msgid "Indeed, manifests alone might not be enough: different Guix versions (or different channels) can produce different outputs for a given manifest."
7809msgstr "Tatsächlich kann es vorkommen, dass ein Manifest allein nicht genug ist: Verschiedene Versionen von Guix (oder andere Kanäle) können beim selben Manifest zu verschiedenen Ausgaben führen." 7814msgstr "Tatsächlich kann es vorkommen, dass ein Manifest allein nicht genug ist: Verschiedene Versionen von Guix (oder andere Kanäle) können beim selben Manifest zu verschiedenen Ausgaben führen."
7810 7815
7811#. type: Plain text 7816#. type: Plain text
7812#: doc/guix-cookbook.texi:4344 7817#: guix-git/doc/guix-cookbook.texi:4346
7813msgid "You can output the Guix channel specification with @samp{guix describe --format=channels} (@pxref{Invoking guix describe,,, guix, GNU Guix Reference Manual}). Save this to a file, say @samp{channel-specs.scm}." 7818msgid "You can output the Guix channel specification with @samp{guix describe --format=channels} (@pxref{Invoking guix describe,,, guix, GNU Guix Reference Manual}). Save this to a file, say @samp{channel-specs.scm}."
7814msgstr "Sie können sich die Guix-Kanalspezifikationen mit @samp{guix describe --format=channels} ausgeben lassen (siehe @ref{Aufruf von guix describe,,, guix.de, Referenzhandbuch zu GNU Guix}). Speichern Sie sie in eine Datei ab, sagen wir @samp{channel-specs.scm}." 7819msgstr "Sie können sich die Guix-Kanalspezifikationen mit @samp{guix describe --format=channels} ausgeben lassen (siehe @ref{Aufruf von guix describe,,, guix.de, Referenzhandbuch zu GNU Guix}). Speichern Sie sie in eine Datei ab, sagen wir @samp{channel-specs.scm}."
7815 7820
7816#. type: Plain text 7821#. type: Plain text
7817#: doc/guix-cookbook.texi:4347 7822#: guix-git/doc/guix-cookbook.texi:4349
7818msgid "On another computer, you can use the channel specification file and the manifest to reproduce the exact same profile:" 7823msgid "On another computer, you can use the channel specification file and the manifest to reproduce the exact same profile:"
7819msgstr "Auf einem anderen Rechner können Sie die Kanalspezifikationsdatei und das Manifest benutzen, um genau dasselbe Profil zu reproduzieren:" 7824msgstr "Auf einem anderen Rechner können Sie die Kanalspezifikationsdatei und das Manifest benutzen, um genau dasselbe Profil zu reproduzieren:"
7820 7825
7821#. type: example 7826#. type: example
7822#: doc/guix-cookbook.texi:4351 7827#: guix-git/doc/guix-cookbook.texi:4353
7823#, no-wrap 7828#, no-wrap
7824msgid "" 7829msgid ""
7825"GUIX_EXTRA_PROFILES=$HOME/.guix-extra-profiles\n" 7830"GUIX_EXTRA_PROFILES=$HOME/.guix-extra-profiles\n"
@@ -7831,7 +7836,7 @@ msgstr ""
7831"\n" 7836"\n"
7832 7837
7833#. type: example 7838#. type: example
7834#: doc/guix-cookbook.texi:4354 7839#: guix-git/doc/guix-cookbook.texi:4356
7835#, no-wrap 7840#, no-wrap
7836msgid "" 7841msgid ""
7837"mkdir -p \"$GUIX_EXTRA\"/my-project\n" 7842"mkdir -p \"$GUIX_EXTRA\"/my-project\n"
@@ -7843,7 +7848,7 @@ msgstr ""
7843"\n" 7848"\n"
7844 7849
7845#. type: example 7850#. type: example
7846#: doc/guix-cookbook.texi:4359 7851#: guix-git/doc/guix-cookbook.texi:4361
7847#, no-wrap 7852#, no-wrap
7848msgid "" 7853msgid ""
7849"mkdir -p \"$GUIX_EXTRA_PROFILES/my-project\"\n" 7854"mkdir -p \"$GUIX_EXTRA_PROFILES/my-project\"\n"
@@ -7857,39 +7862,39 @@ msgstr ""
7857" --profile=\"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n" 7862" --profile=\"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n"
7858 7863
7859#. type: Plain text 7864#. type: Plain text
7860#: doc/guix-cookbook.texi:4363 7865#: guix-git/doc/guix-cookbook.texi:4365
7861msgid "It's safe to delete the Guix channel profile you've just installed with the channel specification, the project profile does not depend on it." 7866msgid "It's safe to delete the Guix channel profile you've just installed with the channel specification, the project profile does not depend on it."
7862msgstr "Es kann nichts Schlimmes passieren, wenn Sie das Guix-Kanalprofil, das Sie eben aus der Kanalspezifikation erstellt haben, löschen, denn das Projektprofil hängt davon nicht ab." 7867msgstr "Es kann nichts Schlimmes passieren, wenn Sie das Guix-Kanalprofil, das Sie eben aus der Kanalspezifikation erstellt haben, löschen, denn das Projektprofil hängt davon nicht ab."
7863 7868
7864#. type: cindex 7869#. type: cindex
7865#: doc/guix-cookbook.texi:4367 7870#: guix-git/doc/guix-cookbook.texi:4369
7866#, no-wrap 7871#, no-wrap
7867msgid "development, with Guix" 7872msgid "development, with Guix"
7868msgstr "Entwicklung, mit Guix" 7873msgstr "Entwicklung, mit Guix"
7869 7874
7870#. type: cindex 7875#. type: cindex
7871#: doc/guix-cookbook.texi:4368 7876#: guix-git/doc/guix-cookbook.texi:4370
7872#, no-wrap 7877#, no-wrap
7873msgid "software development, with Guix" 7878msgid "software development, with Guix"
7874msgstr "Software-Entwicklung, mit Guix" 7879msgstr "Software-Entwicklung, mit Guix"
7875 7880
7876#. type: Plain text 7881#. type: Plain text
7877#: doc/guix-cookbook.texi:4378 7882#: guix-git/doc/guix-cookbook.texi:4380
7878msgid "Guix is a handy tool for developers; @command{guix shell}, in particular, gives a standalone development environment for your package, no matter what language(s) it's written in (@pxref{Invoking guix shell,,, guix, GNU Guix Reference Manual}). To benefit from it, you have to initially write a package definition and have it either in Guix proper, or in a channel, or directly in your project's source tree as a @file{guix.scm} file. This last option is appealing: all developers have to do to get set up is clone the project's repository and run @command{guix shell}, with no arguments." 7883msgid "Guix is a handy tool for developers; @command{guix shell}, in particular, gives a standalone development environment for your package, no matter what language(s) it's written in (@pxref{Invoking guix shell,,, guix, GNU Guix Reference Manual}). To benefit from it, you have to initially write a package definition and have it either in Guix proper, or in a channel, or directly in your project's source tree as a @file{guix.scm} file. This last option is appealing: all developers have to do to get set up is clone the project's repository and run @command{guix shell}, with no arguments."
7879msgstr "Guix ist ein hilfreiches Werkzeug für Entwickler; besonders @command{guix shell} versorgt Sie mit einer eigenständigen Entwicklungsumgebung für Ihr Paket, unabhängig von der oder den Sprachen, in denen es programmiert ist (siehe @ref{Aufruf von guix shell,,, guix.de, Referenzhandbuch zu GNU Guix}). Um Ihren Nutzen daraus zu ziehen, fertigen Sie als Erstes eine Paketdefinition an, die entweder ins eigentliche Guix akzeptiert werden muss oder die Teil eines Kanals oder gleich im Quellbaum Ihres Projekts sein muss in einer Datei @file{guix.scm}. Letztere Option bietet sich an, weil Entwickler dann nur das Repository des Projekts zu klonen brauchen und @command{guix shell} ohne Argumente aufrufen können." 7884msgstr "Guix ist ein hilfreiches Werkzeug für Entwickler; besonders @command{guix shell} versorgt Sie mit einer eigenständigen Entwicklungsumgebung für Ihr Paket, unabhängig von der oder den Sprachen, in denen es programmiert ist (siehe @ref{Aufruf von guix shell,,, guix.de, Referenzhandbuch zu GNU Guix}). Um Ihren Nutzen daraus zu ziehen, fertigen Sie als Erstes eine Paketdefinition an, die entweder ins eigentliche Guix akzeptiert werden muss oder die Teil eines Kanals oder gleich im Quellbaum Ihres Projekts sein muss in einer Datei @file{guix.scm}. Letztere Option bietet sich an, weil Entwickler dann nur das Repository des Projekts zu klonen brauchen und @command{guix shell} ohne Argumente aufrufen können."
7880 7885
7881#. type: Plain text 7886#. type: Plain text
7882#: doc/guix-cookbook.texi:4388 7887#: guix-git/doc/guix-cookbook.texi:4390
7883msgid "Development needs go beyond development environments though. How can developers perform continuous integration of their code in Guix build environments? How can they deliver their code straight to adventurous users? This chapter describes a set of files developers can add to their repository to set up Guix-based development environments, continuous integration, and continuous delivery---all at once@footnote{This chapter is adapted from a @uref{https://guix.gnu.org/en/blog/2023/from-development-environments-to-continuous-integrationthe-ultimate-guide-to-software-development-with-guix/, blog post} published in June 2023 on the Guix web site.}." 7888msgid "Development needs go beyond development environments though. How can developers perform continuous integration of their code in Guix build environments? How can they deliver their code straight to adventurous users? This chapter describes a set of files developers can add to their repository to set up Guix-based development environments, continuous integration, and continuous delivery---all at once@footnote{This chapter is adapted from a @uref{https://guix.gnu.org/en/blog/2023/from-development-environments-to-continuous-integrationthe-ultimate-guide-to-software-development-with-guix/, blog post} published in June 2023 on the Guix web site.}."
7884msgstr "Zur Entwicklung gehört jedoch mehr. Wie richten Entwickler eine kontinuierliche Integration ihres Codes in Guix-Erstellungsumgebungen ein? Wie findet eine sofortige Auslieferung ihres Codes an abenteuerlustige Nutzer statt? Dieses Kapitel erklärt, wie Entwickler wenige zusätzliche Dateien ins Repository hinzufügen, um Guix-basierte Entwicklungsumgebungen, kontinuierliche Integration und kontinuierliche Auslieferung umzusetzen@tie{}– alles auf einmal@footnote{Dieses Kapitel ist eine aufgearbeitete Fassung @uref{https://guix.gnu.org/de/blog/2023/from-development-environments-to-continuous-integrationthe-ultimate-guide-to-software-development-with-guix/, eines Blog-Eintrags}, der im Juni 2023 auf Guix’ Webauftritt veröffentlicht wurde.}." 7889msgstr "Zur Entwicklung gehört jedoch mehr. Wie richten Entwickler eine kontinuierliche Integration ihres Codes in Guix-Erstellungsumgebungen ein? Wie findet eine sofortige Auslieferung ihres Codes an abenteuerlustige Nutzer statt? Dieses Kapitel erklärt, wie Entwickler wenige zusätzliche Dateien ins Repository hinzufügen, um Guix-basierte Entwicklungsumgebungen, kontinuierliche Integration und kontinuierliche Auslieferung umzusetzen@tie{}– alles auf einmal@footnote{Dieses Kapitel ist eine aufgearbeitete Fassung @uref{https://guix.gnu.org/de/blog/2023/from-development-environments-to-continuous-integrationthe-ultimate-guide-to-software-development-with-guix/, eines Blog-Eintrags}, der im Juni 2023 auf Guix’ Webauftritt veröffentlicht wurde.}."
7885 7890
7886#. type: Plain text 7891#. type: Plain text
7887#: doc/guix-cookbook.texi:4411 7892#: guix-git/doc/guix-cookbook.texi:4413
7888msgid "How do we go about ``Guixifying'' a repository? The first step, as we've seen, will be to add a @file{guix.scm} at the root of the repository in question. We'll take @uref{https://www.gnu.org/software/guile,Guile} as an example in this chapter: it's written in Scheme (mostly) and C, and has a number of dependencies---a C compilation tool chain, C libraries, Autoconf and its friends, LaTeX, and so on. The resulting @file{guix.scm} looks like the usual package definition (@pxref{Defining Packages,,, guix, GNU Guix Reference Manual}), just without the @code{define-public} bit:" 7893msgid "How do we go about ``Guixifying'' a repository? The first step, as we've seen, will be to add a @file{guix.scm} at the root of the repository in question. We'll take @uref{https://www.gnu.org/software/guile,Guile} as an example in this chapter: it's written in Scheme (mostly) and C, and has a number of dependencies---a C compilation tool chain, C libraries, Autoconf and its friends, LaTeX, and so on. The resulting @file{guix.scm} looks like the usual package definition (@pxref{Defining Packages,,, guix, GNU Guix Reference Manual}), just without the @code{define-public} bit:"
7889msgstr "Wie lässt sich also ein Repository „guixifizieren“? Unser erster Schritt ist, wie wir sehen konnten, eine Datei @file{guix.scm} im obersten Verzeichnis des fraglichen Repositorys unterzubringen. Nehmen wir @uref{https://www.gnu.org/software/guile,Guile} als Beispiel in diesem Kapitel; es ist in Scheme (zum größten Teil) und in C geschrieben und ist von anderer Software abhängig@tie{}– einer C-Compiler-Toolchain, C-Bibliotheken, Autoconf und seinen Freunden, LaTeX und so weiter. Daraus ergibt sich eine @file{guix.scm}, die ziemlich wie andere Paketdefinitionen auch aussieht (siehe @ref{Pakete definieren,,, guix.de, Referenzhandbuch zu GNU Guix}), nur fehlt das @code{define-public} am Anfang:" 7894msgstr "Wie lässt sich also ein Repository „guixifizieren“? Unser erster Schritt ist, wie wir sehen konnten, eine Datei @file{guix.scm} im obersten Verzeichnis des fraglichen Repositorys unterzubringen. Nehmen wir @uref{https://www.gnu.org/software/guile,Guile} als Beispiel in diesem Kapitel; es ist in Scheme (zum größten Teil) und in C geschrieben und ist von anderer Software abhängig@tie{}– einer C-Compiler-Toolchain, C-Bibliotheken, Autoconf und seinen Freunden, LaTeX und so weiter. Daraus ergibt sich eine @file{guix.scm}, die ziemlich wie andere Paketdefinitionen auch aussieht (siehe @ref{Pakete definieren,,, guix.de, Referenzhandbuch zu GNU Guix}), nur fehlt das @code{define-public} am Anfang:"
7890 7895
7891#. type: lisp 7896#. type: lisp
7892#: doc/guix-cookbook.texi:4414 7897#: guix-git/doc/guix-cookbook.texi:4416
7893#, no-wrap 7898#, no-wrap
7894msgid "" 7899msgid ""
7895";; The ‘guix.scm’ file for Guile, for use by ‘guix shell’.\n" 7900";; The ‘guix.scm’ file for Guile, for use by ‘guix shell’.\n"
@@ -7899,7 +7904,7 @@ msgstr ""
7899"\n" 7904"\n"
7900 7905
7901#. type: lisp 7906#. type: lisp
7902#: doc/guix-cookbook.texi:4435 7907#: guix-git/doc/guix-cookbook.texi:4437
7903#, no-wrap 7908#, no-wrap
7904msgid "" 7909msgid ""
7905"(use-modules (guix)\n" 7910"(use-modules (guix)\n"
@@ -7947,7 +7952,7 @@ msgstr ""
7947"\n" 7952"\n"
7948 7953
7949#. type: lisp 7954#. type: lisp
7950#: doc/guix-cookbook.texi:4457 7955#: guix-git/doc/guix-cookbook.texi:4459
7951#, no-wrap 7956#, no-wrap
7952msgid "" 7957msgid ""
7953"(package\n" 7958"(package\n"
@@ -7997,7 +8002,7 @@ msgstr ""
7997"\n" 8002"\n"
7998 8003
7999#. type: lisp 8004#. type: lisp
8000#: doc/guix-cookbook.texi:4467 8005#: guix-git/doc/guix-cookbook.texi:4469
8001#, no-wrap 8006#, no-wrap
8002msgid "" 8007msgid ""
8003" ;; When cross-compiling, a native version of Guile itself is\n" 8008" ;; When cross-compiling, a native version of Guile itself is\n"
@@ -8023,7 +8028,7 @@ msgstr ""
8023"\n" 8028"\n"
8024 8029
8025#. type: lisp 8030#. type: lisp
8026#: doc/guix-cookbook.texi:4481 8031#: guix-git/doc/guix-cookbook.texi:4483
8027#, no-wrap 8032#, no-wrap
8028msgid "" 8033msgid ""
8029" (native-search-paths\n" 8034" (native-search-paths\n"
@@ -8055,72 +8060,72 @@ msgstr ""
8055" (license license:lgpl3+))\n" 8060" (license license:lgpl3+))\n"
8056 8061
8057#. type: Plain text 8062#. type: Plain text
8058#: doc/guix-cookbook.texi:4485 8063#: guix-git/doc/guix-cookbook.texi:4487
8059msgid "Quite a bit of boilerplate, but now someone who'd like to hack on Guile now only needs to run:" 8064msgid "Quite a bit of boilerplate, but now someone who'd like to hack on Guile now only needs to run:"
8060msgstr "Das ist schon ein bisschen aufwendig, aber wenn jemand an Guile hacken will, braucht sie bloß noch das hier aufzurufen:" 8065msgstr "Das ist schon ein bisschen aufwendig, aber wenn jemand an Guile hacken will, braucht sie bloß noch das hier aufzurufen:"
8061 8066
8062#. type: lisp 8067#. type: lisp
8063#: doc/guix-cookbook.texi:4488 8068#: guix-git/doc/guix-cookbook.texi:4490
8064#, no-wrap 8069#, no-wrap
8065msgid "guix shell\n" 8070msgid "guix shell\n"
8066msgstr "guix shell\n" 8071msgstr "guix shell\n"
8067 8072
8068#. type: Plain text 8073#. type: Plain text
8069#: doc/guix-cookbook.texi:4494 8074#: guix-git/doc/guix-cookbook.texi:4496
8070msgid "That gives them a shell containing all the dependencies of Guile: those listed above, but also @emph{implicit dependencies} such as the GCC tool chain, GNU@ Make, sed, grep, and so on. @xref{Invoking guix shell,,, guix, GNU Guix Reference Manual}, for more info on @command{guix shell}." 8075msgid "That gives them a shell containing all the dependencies of Guile: those listed above, but also @emph{implicit dependencies} such as the GCC tool chain, GNU@ Make, sed, grep, and so on. @xref{Invoking guix shell,,, guix, GNU Guix Reference Manual}, for more info on @command{guix shell}."
8071msgstr "Sie findet sich in einer Shell wieder, wo es alle Abhängigkeiten von Guile gibt: die oben aufgeführten Abhängigkeiten und außerdem @emph{implizite Abhängigkeiten} wie die GCC-Toolchain, GNU@tie{}Make, sed, grep und so weiter. Siehe @ref{Aufruf von guix shell,,, guix.de, Referenzhandbuch zu GNU Guix} für weitere Informationen zu @command{guix shell}." 8076msgstr "Sie findet sich in einer Shell wieder, wo es alle Abhängigkeiten von Guile gibt: die oben aufgeführten Abhängigkeiten und außerdem @emph{implizite Abhängigkeiten} wie die GCC-Toolchain, GNU@tie{}Make, sed, grep und so weiter. Siehe @ref{Aufruf von guix shell,,, guix.de, Referenzhandbuch zu GNU Guix} für weitere Informationen zu @command{guix shell}."
8072 8077
8073#. type: quotation 8078#. type: quotation
8074#: doc/guix-cookbook.texi:4495 8079#: guix-git/doc/guix-cookbook.texi:4497
8075#, no-wrap 8080#, no-wrap
8076msgid "The chef's recommendation" 8081msgid "The chef's recommendation"
8077msgstr "Empfehlung des Hauses" 8082msgstr "Empfehlung des Hauses"
8078 8083
8079#. type: quotation 8084#. type: quotation
8080#: doc/guix-cookbook.texi:4497 8085#: guix-git/doc/guix-cookbook.texi:4499
8081msgid "Our suggestion is to create development environments like this:" 8086msgid "Our suggestion is to create development environments like this:"
8082msgstr "Wir legen Ihnen nahe, Entwicklungsumgebungen mit diesem Befehl anzulegen:" 8087msgstr "Wir legen Ihnen nahe, Entwicklungsumgebungen mit diesem Befehl anzulegen:"
8083 8088
8084#. type: example 8089#. type: example
8085#: doc/guix-cookbook.texi:4500 8090#: guix-git/doc/guix-cookbook.texi:4502
8086#, no-wrap 8091#, no-wrap
8087msgid "guix shell --container --link-profile\n" 8092msgid "guix shell --container --link-profile\n"
8088msgstr "guix shell --container --link-profile\n" 8093msgstr "guix shell --container --link-profile\n"
8089 8094
8090#. type: quotation 8095#. type: quotation
8091#: doc/guix-cookbook.texi:4504 8096#: guix-git/doc/guix-cookbook.texi:4506
8092msgid "... or, for short:" 8097msgid "... or, for short:"
8093msgstr "… oder kurz:" 8098msgstr "… oder kurz:"
8094 8099
8095#. type: example 8100#. type: example
8096#: doc/guix-cookbook.texi:4507 8101#: guix-git/doc/guix-cookbook.texi:4509
8097#, no-wrap 8102#, no-wrap
8098msgid "guix shell -CP\n" 8103msgid "guix shell -CP\n"
8099msgstr "guix shell -CP\n" 8104msgstr "guix shell -CP\n"
8100 8105
8101#. type: quotation 8106#. type: quotation
8102#: doc/guix-cookbook.texi:4517 8107#: guix-git/doc/guix-cookbook.texi:4519
8103msgid "That gives a shell in an isolated container, and all the dependencies show up in @code{$HOME/.guix-profile}, which plays well with caches such as @file{config.cache} (@pxref{Cache Files,,, autoconf, Autoconf}) and absolute file names recorded in generated @code{Makefile}s and the likes. The fact that the shell runs in a container brings peace of mind: nothing but the current directory and Guile's dependencies is visible inside the container; nothing from the system can possibly interfere with your development." 8108msgid "That gives a shell in an isolated container, and all the dependencies show up in @code{$HOME/.guix-profile}, which plays well with caches such as @file{config.cache} (@pxref{Cache Files,,, autoconf, Autoconf}) and absolute file names recorded in generated @code{Makefile}s and the likes. The fact that the shell runs in a container brings peace of mind: nothing but the current directory and Guile's dependencies is visible inside the container; nothing from the system can possibly interfere with your development."
8104msgstr "So erhält man eine Shell in einem isolierten Container und alle Abhängigkeiten finden sich in @code{$HOME/.guix-profile}, was die Nutzung von Zwischenspeichern wie @file{config.cache} (siehe @ref{Cache Files,,, autoconf, Autoconf}) erleichtert und wodurch absolute Dateinamen, die in erzeugten Dateien wie @code{Makefile}s und Ähnlichem festgehalten werden, gültig bleiben. Die Tatsache, dass die Shell in einem Container läuft, erlaubt Ihnen ein Gefühl der Sicherheit: Nichts außer dem aktuellen Verzeichnis und Guiles Abhängigkeiten ist in dieser isolierten Umgebung sichtbar; nichts vom System kann Ihre Arbeit störend beeinflussen." 8109msgstr "So erhält man eine Shell in einem isolierten Container und alle Abhängigkeiten finden sich in @code{$HOME/.guix-profile}, was die Nutzung von Zwischenspeichern wie @file{config.cache} (siehe @ref{Cache Files,,, autoconf, Autoconf}) erleichtert und wodurch absolute Dateinamen, die in erzeugten Dateien wie @code{Makefile}s und Ähnlichem festgehalten werden, gültig bleiben. Die Tatsache, dass die Shell in einem Container läuft, erlaubt Ihnen ein Gefühl der Sicherheit: Nichts außer dem aktuellen Verzeichnis und Guiles Abhängigkeiten ist in dieser isolierten Umgebung sichtbar; nichts vom System kann Ihre Arbeit störend beeinflussen."
8105 8110
8106#. type: section 8111#. type: section
8107#: doc/guix-cookbook.texi:4520 8112#: guix-git/doc/guix-cookbook.texi:4522
8108#, no-wrap 8113#, no-wrap
8109msgid "Level 1: Building with Guix" 8114msgid "Level 1: Building with Guix"
8110msgstr "Stufe 1: Erstellen mit Guix" 8115msgstr "Stufe 1: Erstellen mit Guix"
8111 8116
8112#. type: Plain text 8117#. type: Plain text
8113#: doc/guix-cookbook.texi:4527 8118#: guix-git/doc/guix-cookbook.texi:4529
8114msgid "Now that we have a package definition (@pxref{Getting Started}), why not also take advantage of it so we can build Guile with Guix? We had left the @code{source} field empty, because @command{guix shell} above only cares about the @emph{inputs} of our package---so it can set up the development environment---not about the package itself." 8119msgid "Now that we have a package definition (@pxref{Getting Started}), why not also take advantage of it so we can build Guile with Guix? We had left the @code{source} field empty, because @command{guix shell} above only cares about the @emph{inputs} of our package---so it can set up the development environment---not about the package itself."
8115msgstr "Jetzt, wo wir eine Paketdefinition vorliegen haben (siehe @ref{Getting Started}), können wir sie dann auch gleich benutzen, um Guile mit Guix zu erstellen? Uns fehlt der Eintrag im @code{source}-Feld, das wir leer gelassen haben, denn für @command{guix shell} spielen nur die @emph{inputs} unseres Pakets eine Rolle@tie{}– um die Entwicklungsumgebung zu unserem Paket aufzusetzen@tie{}–, aber das Paket selber wurde bisher nicht gebraucht." 8120msgstr "Jetzt, wo wir eine Paketdefinition vorliegen haben (siehe @ref{Getting Started}), können wir sie dann auch gleich benutzen, um Guile mit Guix zu erstellen? Uns fehlt der Eintrag im @code{source}-Feld, das wir leer gelassen haben, denn für @command{guix shell} spielen nur die @emph{inputs} unseres Pakets eine Rolle@tie{}– um die Entwicklungsumgebung zu unserem Paket aufzusetzen@tie{}–, aber das Paket selber wurde bisher nicht gebraucht."
8116 8121
8117#. type: Plain text 8122#. type: Plain text
8118#: doc/guix-cookbook.texi:4530 8123#: guix-git/doc/guix-cookbook.texi:4532
8119msgid "To build the package with Guix, we'll need to fill out the @code{source} field, along these lines:" 8124msgid "To build the package with Guix, we'll need to fill out the @code{source} field, along these lines:"
8120msgstr "Wenn wir das Paket mit Guix erstellt bekommen möchten, müssen wir etwas ins @code{source}-Feld eintragen, etwa so:" 8125msgstr "Wenn wir das Paket mit Guix erstellt bekommen möchten, müssen wir etwas ins @code{source}-Feld eintragen, etwa so:"
8121 8126
8122#. type: lisp 8127#. type: lisp
8123#: doc/guix-cookbook.texi:4535 8128#: guix-git/doc/guix-cookbook.texi:4537
8124#, no-wrap 8129#, no-wrap
8125msgid "" 8130msgid ""
8126"(use-modules (guix)\n" 8131"(use-modules (guix)\n"
@@ -8134,7 +8139,7 @@ msgstr ""
8134"\n" 8139"\n"
8135 8140
8136#. type: lisp 8141#. type: lisp
8137#: doc/guix-cookbook.texi:4540 8142#: guix-git/doc/guix-cookbook.texi:4542
8138#, no-wrap 8143#, no-wrap
8139msgid "" 8144msgid ""
8140"(define vcs-file?\n" 8145"(define vcs-file?\n"
@@ -8151,7 +8156,7 @@ msgstr ""
8151"\n" 8156"\n"
8152 8157
8153#. type: lisp 8158#. type: lisp
8154#: doc/guix-cookbook.texi:4548 8159#: guix-git/doc/guix-cookbook.texi:4550
8155#, no-wrap 8160#, no-wrap
8156msgid "" 8161msgid ""
8157"(package\n" 8162"(package\n"
@@ -8171,65 +8176,65 @@ msgstr ""
8171" …)\n" 8176" …)\n"
8172 8177
8173#. type: Plain text 8178#. type: Plain text
8174#: doc/guix-cookbook.texi:4551 8179#: guix-git/doc/guix-cookbook.texi:4553
8175msgid "Here's what we changed compared to the previous section:" 8180msgid "Here's what we changed compared to the previous section:"
8176msgstr "Dies sind unsere Änderungen verglichen mit dem vorherigen Abschnitt:" 8181msgstr "Dies sind unsere Änderungen verglichen mit dem vorherigen Abschnitt:"
8177 8182
8178#. type: enumerate 8183#. type: enumerate
8179#: doc/guix-cookbook.texi:4556 8184#: guix-git/doc/guix-cookbook.texi:4558
8180msgid "We added @code{(guix git-download)} to our set of imported modules, so we can use its @code{git-predicate} procedure." 8185msgid "We added @code{(guix git-download)} to our set of imported modules, so we can use its @code{git-predicate} procedure."
8181msgstr "Wir haben @code{(guix git-download)} zu unseren importierten Modulen hinzugefügt, damit wir dessen Prozedur @code{git-predicate} benutzen können." 8186msgstr "Wir haben @code{(guix git-download)} zu unseren importierten Modulen hinzugefügt, damit wir dessen Prozedur @code{git-predicate} benutzen können."
8182 8187
8183#. type: enumerate 8188#. type: enumerate
8184#: doc/guix-cookbook.texi:4560 8189#: guix-git/doc/guix-cookbook.texi:4562
8185msgid "We defined @code{vcs-file?} as a procedure that returns true when passed a file that is under version control. For good measure, we add a fallback case for when we're not in a Git checkout: always return true." 8190msgid "We defined @code{vcs-file?} as a procedure that returns true when passed a file that is under version control. For good measure, we add a fallback case for when we're not in a Git checkout: always return true."
8186msgstr "Wir haben @code{vcs-file?} als Prozedur definiert, die wahr zurückgibt, wenn ihr eine Datei übergeben wird, die unter Versionskontrolle steht. Es gehört sich, den Fall abzufangen, wenn wir uns in keinem Git-Checkout befinden: Dann wird immer wahr geliefert." 8191msgstr "Wir haben @code{vcs-file?} als Prozedur definiert, die wahr zurückgibt, wenn ihr eine Datei übergeben wird, die unter Versionskontrolle steht. Es gehört sich, den Fall abzufangen, wenn wir uns in keinem Git-Checkout befinden: Dann wird immer wahr geliefert."
8187 8192
8188#. type: enumerate 8193#. type: enumerate
8189#: doc/guix-cookbook.texi:4565 8194#: guix-git/doc/guix-cookbook.texi:4567
8190msgid "We set @code{source} to a @uref{https://guix.gnu.org/manual/devel/en/html_node/G_002dExpressions.html#index-local_002dfile,@code{local-file}}---a recursive copy of the current directory (@code{\".\"}), limited to files under version control (the @code{#:select?} bit)." 8195msgid "We set @code{source} to a @uref{https://guix.gnu.org/manual/devel/en/html_node/G_002dExpressions.html#index-local_002dfile,@code{local-file}}---a recursive copy of the current directory (@code{\".\"}), limited to files under version control (the @code{#:select?} bit)."
8191msgstr "Wir setzen @code{source} auf @uref{https://guix.gnu.org/manual/devel/de/html_node/G_002dAusdrucke.html#index-local_002dfile,@code{local-file}}@tie{}– einer rekursiven Kopie des aktuellen Verzeichnisses (@code{\".\"}), eingeschränkt auf solche Dateien, die unter Versionskontrolle gestellt sind (mit @code{#:select?})." 8196msgstr "Wir setzen @code{source} auf @uref{https://guix.gnu.org/manual/devel/de/html_node/G_002dAusdrucke.html#index-local_002dfile,@code{local-file}}@tie{}– einer rekursiven Kopie des aktuellen Verzeichnisses (@code{\".\"}), eingeschränkt auf solche Dateien, die unter Versionskontrolle gestellt sind (mit @code{#:select?})."
8192 8197
8193#. type: Plain text 8198#. type: Plain text
8194#: doc/guix-cookbook.texi:4572 8199#: guix-git/doc/guix-cookbook.texi:4574
8195msgid "From there on, our @file{guix.scm} file serves a second purpose: it lets us build the software with Guix. The whole point of building with Guix is that it's a ``clean'' build---you can be sure nothing from your working tree or system interferes with the build result---and it lets you test a variety of things. First, you can do a plain native build:" 8200msgid "From there on, our @file{guix.scm} file serves a second purpose: it lets us build the software with Guix. The whole point of building with Guix is that it's a ``clean'' build---you can be sure nothing from your working tree or system interferes with the build result---and it lets you test a variety of things. First, you can do a plain native build:"
8196msgstr "Von da an erfüllt @file{guix.scm} einen zweiten Zweck: Wir können die Software mit Guix erstellen. Der Vorteil der Erstellung mit Guix ist, dass eine „saubere“ Erstellung durchgeführt wird@tie{}– Sie können sich sicher sein, das Ergebnis der Erstellung beruht nicht auf Dateien in Ihrem Quellbaum oder anderen Dingen in Ihrem System@tie{}– und auch, dass Sie viele Möglichkeiten testen können. Als Erstes wäre da eine einfache native Erstellung:" 8201msgstr "Von da an erfüllt @file{guix.scm} einen zweiten Zweck: Wir können die Software mit Guix erstellen. Der Vorteil der Erstellung mit Guix ist, dass eine „saubere“ Erstellung durchgeführt wird@tie{}– Sie können sich sicher sein, das Ergebnis der Erstellung beruht nicht auf Dateien in Ihrem Quellbaum oder anderen Dingen in Ihrem System@tie{}– und auch, dass Sie viele Möglichkeiten testen können. Als Erstes wäre da eine einfache native Erstellung:"
8197 8202
8198#. type: example 8203#. type: example
8199#: doc/guix-cookbook.texi:4575 8204#: guix-git/doc/guix-cookbook.texi:4577
8200#, no-wrap 8205#, no-wrap
8201msgid "guix build -f guix.scm\n" 8206msgid "guix build -f guix.scm\n"
8202msgstr "guix build -f guix.scm\n" 8207msgstr "guix build -f guix.scm\n"
8203 8208
8204#. type: Plain text 8209#. type: Plain text
8205#: doc/guix-cookbook.texi:4582 8210#: guix-git/doc/guix-cookbook.texi:4584
8206msgid "But you can also build for another system (possibly after setting up @pxref{Daemon Offload Setup, offloading,, guix, GNU Guix Reference Manual} or @pxref{Virtualization Services, transparent emulation,, guix, GNU Guix Reference Manual}):" 8211msgid "But you can also build for another system (possibly after setting up @pxref{Daemon Offload Setup, offloading,, guix, GNU Guix Reference Manual} or @pxref{Virtualization Services, transparent emulation,, guix, GNU Guix Reference Manual}):"
8207msgstr "Aber auch für ein anderes System können Sie die Erstellung durchführen (unter Umständen müssen Sie erst die Auslagerungsfunktion, siehe @ref{Auslagern des Daemons einrichten,,, guix.de, Referenzhandbuch zu GNU Guix}, oder transparente Emulation, siehe @ref{Virtualisierungsdienste,,, guix.de, Referenzhandbuch zu GNU Guix}, einrichten):" 8212msgstr "Aber auch für ein anderes System können Sie die Erstellung durchführen (unter Umständen müssen Sie erst die Auslagerungsfunktion, siehe @ref{Auslagern des Daemons einrichten,,, guix.de, Referenzhandbuch zu GNU Guix}, oder transparente Emulation, siehe @ref{Virtualisierungsdienste,,, guix.de, Referenzhandbuch zu GNU Guix}, einrichten):"
8208 8213
8209#. type: lisp 8214#. type: lisp
8210#: doc/guix-cookbook.texi:4585 8215#: guix-git/doc/guix-cookbook.texi:4587
8211#, no-wrap 8216#, no-wrap
8212msgid "guix build -f guix.scm -s aarch64-linux -s riscv64-linux\n" 8217msgid "guix build -f guix.scm -s aarch64-linux -s riscv64-linux\n"
8213msgstr "guix build -f guix.scm -s aarch64-linux -s riscv64-linux\n" 8218msgstr "guix build -f guix.scm -s aarch64-linux -s riscv64-linux\n"
8214 8219
8215#. type: Plain text 8220#. type: Plain text
8216#: doc/guix-cookbook.texi:4589 8221#: guix-git/doc/guix-cookbook.texi:4591
8217msgid "@dots{} or cross-compile:" 8222msgid "@dots{} or cross-compile:"
8218msgstr "… oder Sie cross-kompilieren:" 8223msgstr "… oder Sie cross-kompilieren:"
8219 8224
8220#. type: lisp 8225#. type: lisp
8221#: doc/guix-cookbook.texi:4592 8226#: guix-git/doc/guix-cookbook.texi:4594
8222#, no-wrap 8227#, no-wrap
8223msgid "guix build -f guix.scm --target=x86_64-w64-mingw32\n" 8228msgid "guix build -f guix.scm --target=x86_64-w64-mingw32\n"
8224msgstr "guix build -f guix.scm --target=x86_64-w64-mingw32\n" 8229msgstr "guix build -f guix.scm --target=x86_64-w64-mingw32\n"
8225 8230
8226#. type: Plain text 8231#. type: Plain text
8227#: doc/guix-cookbook.texi:4596 8232#: guix-git/doc/guix-cookbook.texi:4598
8228msgid "You can also use @dfn{package transformations} to test package variants (@pxref{Package Transformation Options,,, guix, GNU Guix Reference Manual}):" 8233msgid "You can also use @dfn{package transformations} to test package variants (@pxref{Package Transformation Options,,, guix, GNU Guix Reference Manual}):"
8229msgstr "Möglich sind auch @dfn{Paketumwandlungsoptionen}, womit Sie Varianten Ihres Pakets testen können (siehe @ref{Paketumwandlungsoptionen,,, guix.de, Referenzhandbuch zu GNU Guix}):" 8234msgstr "Möglich sind auch @dfn{Paketumwandlungsoptionen}, womit Sie Varianten Ihres Pakets testen können (siehe @ref{Paketumwandlungsoptionen,,, guix.de, Referenzhandbuch zu GNU Guix}):"
8230 8235
8231#. type: example 8236#. type: example
8232#: doc/guix-cookbook.texi:4601 8237#: guix-git/doc/guix-cookbook.texi:4603
8233#, no-wrap 8238#, no-wrap
8234msgid "" 8239msgid ""
8235"# What if we built with Clang instead of GCC?\n" 8240"# What if we built with Clang instead of GCC?\n"
@@ -8243,7 +8248,7 @@ msgstr ""
8243"\n" 8248"\n"
8244 8249
8245#. type: example 8250#. type: example
8246#: doc/guix-cookbook.texi:4605 8251#: guix-git/doc/guix-cookbook.texi:4607
8247#, no-wrap 8252#, no-wrap
8248msgid "" 8253msgid ""
8249"# What about that under-tested configure flag?\n" 8254"# What about that under-tested configure flag?\n"
@@ -8255,28 +8260,28 @@ msgstr ""
8255" --with-configure-flag=guile@@3.0.99-git=--disable-networking\n" 8260" --with-configure-flag=guile@@3.0.99-git=--disable-networking\n"
8256 8261
8257#. type: Plain text 8262#. type: Plain text
8258#: doc/guix-cookbook.texi:4608 8263#: guix-git/doc/guix-cookbook.texi:4610
8259msgid "Handy!" 8264msgid "Handy!"
8260msgstr "Praktisch!" 8265msgstr "Praktisch!"
8261 8266
8262#. type: section 8267#. type: section
8263#: doc/guix-cookbook.texi:4610 8268#: guix-git/doc/guix-cookbook.texi:4612
8264#, no-wrap 8269#, no-wrap
8265msgid "Level 2: The Repository as a Channel" 8270msgid "Level 2: The Repository as a Channel"
8266msgstr "Stufe 2: Das Repository als Kanal" 8271msgstr "Stufe 2: Das Repository als Kanal"
8267 8272
8268#. type: Plain text 8273#. type: Plain text
8269#: doc/guix-cookbook.texi:4617 8274#: guix-git/doc/guix-cookbook.texi:4619
8270msgid "We now have a Git repository containing (among other things) a package definition (@pxref{Building with Guix}). Can't we turn it into a @dfn{channel} (@pxref{Channels,,, guix, GNU Guix Reference Manual})? After all, channels are designed to ship package definitions to users, and that's exactly what we're doing with our @file{guix.scm}." 8275msgid "We now have a Git repository containing (among other things) a package definition (@pxref{Building with Guix}). Can't we turn it into a @dfn{channel} (@pxref{Channels,,, guix, GNU Guix Reference Manual})? After all, channels are designed to ship package definitions to users, and that's exactly what we're doing with our @file{guix.scm}."
8271msgstr "Jetzt haben wir ein Git-Repository mit (unter anderem) einer Paketdefinition (siehe @ref{Building with Guix}). Wäre es nicht besser, wenn wir daraus einen @dfn{Kanal} machen würden (siehe @ref{Kanäle,,, guix.de, Referenzhandbuch zu GNU Guix})? Schließlich sind Kanäle entwickelt worden, um Nutzer mit Paketdefinitionen zu versorgen, und genau das tun wir mit @file{guix.scm}." 8276msgstr "Jetzt haben wir ein Git-Repository mit (unter anderem) einer Paketdefinition (siehe @ref{Building with Guix}). Wäre es nicht besser, wenn wir daraus einen @dfn{Kanal} machen würden (siehe @ref{Kanäle,,, guix.de, Referenzhandbuch zu GNU Guix})? Schließlich sind Kanäle entwickelt worden, um Nutzer mit Paketdefinitionen zu versorgen, und genau das tun wir mit @file{guix.scm}."
8272 8277
8273#. type: Plain text 8278#. type: Plain text
8274#: doc/guix-cookbook.texi:4624 8279#: guix-git/doc/guix-cookbook.texi:4626
8275msgid "Turns out we can indeed turn it into a channel, but with one caveat: we must create a separate directory for the @code{.scm} file(s) of our channel so that @command{guix pull} doesn't load unrelated @code{.scm} files when someone pulls the channel---and in Guile, there are lots of them! So we'll start like this, keeping a top-level @file{guix.scm} symlink for the sake of @command{guix shell}:" 8280msgid "Turns out we can indeed turn it into a channel, but with one caveat: we must create a separate directory for the @code{.scm} file(s) of our channel so that @command{guix pull} doesn't load unrelated @code{.scm} files when someone pulls the channel---and in Guile, there are lots of them! So we'll start like this, keeping a top-level @file{guix.scm} symlink for the sake of @command{guix shell}:"
8276msgstr "Tatsächlich sollten wir es zu einem Kanal machen, aber aufgepasst: Die @code{.scm}-Datei(en) unseres Kanals gehören in ein gesondertes Verzeichnis, damit @command{guix pull} nicht versucht, die falschen @code{.scm}-Dateien zu laden, wenn jemand damit den Kanal herunterlädt@tie{}– und in Guile gibt es viele @code{.scm}-Dateien! Wir fangen mit der Trennung an, behalten aber auf oberster Ebene eine symbolische Verknüpfung @file{guix.scm} zur Nutzung mit @command{guix shell}:" 8281msgstr "Tatsächlich sollten wir es zu einem Kanal machen, aber aufgepasst: Die @code{.scm}-Datei(en) unseres Kanals gehören in ein gesondertes Verzeichnis, damit @command{guix pull} nicht versucht, die falschen @code{.scm}-Dateien zu laden, wenn jemand damit den Kanal herunterlädt@tie{}– und in Guile gibt es viele @code{.scm}-Dateien! Wir fangen mit der Trennung an, behalten aber auf oberster Ebene eine symbolische Verknüpfung @file{guix.scm} zur Nutzung mit @command{guix shell}:"
8277 8282
8278#. type: lisp 8283#. type: lisp
8279#: doc/guix-cookbook.texi:4629 8284#: guix-git/doc/guix-cookbook.texi:4631
8280#, no-wrap 8285#, no-wrap
8281msgid "" 8286msgid ""
8282"mkdir -p .guix/modules\n" 8287"mkdir -p .guix/modules\n"
@@ -8288,12 +8293,12 @@ msgstr ""
8288"ln -s .guix/modules/guile-package.scm guix.scm\n" 8293"ln -s .guix/modules/guile-package.scm guix.scm\n"
8289 8294
8290#. type: Plain text 8295#. type: Plain text
8291#: doc/guix-cookbook.texi:4640 8296#: guix-git/doc/guix-cookbook.texi:4642
8292msgid "To make it usable as part of a channel, we need to turn our @file{guix.scm} file into a @dfn{package module} (@pxref{Package Modules,,, guix, GNU Guix Reference Manual}): we do that by changing the @code{use-modules} form at the top to a @code{define-module} form. We also need to actually @emph{export} a package variable, with @code{define-public}, while still returning the package value at the end of the file so we can still use @command{guix shell} and @command{guix build -f guix.scm}. The end result looks like this (not repeating things that haven't changed):" 8297msgid "To make it usable as part of a channel, we need to turn our @file{guix.scm} file into a @dfn{package module} (@pxref{Package Modules,,, guix, GNU Guix Reference Manual}): we do that by changing the @code{use-modules} form at the top to a @code{define-module} form. We also need to actually @emph{export} a package variable, with @code{define-public}, while still returning the package value at the end of the file so we can still use @command{guix shell} and @command{guix build -f guix.scm}. The end result looks like this (not repeating things that haven't changed):"
8293msgstr "Damit es als Kanal verwendet werden kann, erweitern wir unsere @file{guix.scm}-Datei zu einem @dfn{Paketmodul} (siehe @ref{Paketmodule,,, guix.de, Referenzhandbuch zu GNU Guix}). Das geschieht, indem wir die @code{use-modules}-Form am Anfang durch eine @code{define-module}-Form ersetzen. Auch müssen wir dann eine Paketvariable @emph{exportieren}, mit @code{define-public}, und dennoch am Ende der Datei den Paketwert zurückliefern, damit @command{guix shell} und @command{guix build -f guix.scm} weiterhin funktionieren. Das Endergebnis sieht so aus (ohne zu wiederholen, was wir nicht verändern):" 8298msgstr "Damit es als Kanal verwendet werden kann, erweitern wir unsere @file{guix.scm}-Datei zu einem @dfn{Paketmodul} (siehe @ref{Paketmodule,,, guix.de, Referenzhandbuch zu GNU Guix}). Das geschieht, indem wir die @code{use-modules}-Form am Anfang durch eine @code{define-module}-Form ersetzen. Auch müssen wir dann eine Paketvariable @emph{exportieren}, mit @code{define-public}, und dennoch am Ende der Datei den Paketwert zurückliefern, damit @command{guix shell} und @command{guix build -f guix.scm} weiterhin funktionieren. Das Endergebnis sieht so aus (ohne zu wiederholen, was wir nicht verändern):"
8294 8299
8295#. type: lisp 8300#. type: lisp
8296#: doc/guix-cookbook.texi:4646 8301#: guix-git/doc/guix-cookbook.texi:4648
8297#, no-wrap 8302#, no-wrap
8298msgid "" 8303msgid ""
8299"(define-module (guile-package)\n" 8304"(define-module (guile-package)\n"
@@ -8309,7 +8314,7 @@ msgstr ""
8309"\n" 8314"\n"
8310 8315
8311#. type: lisp 8316#. type: lisp
8312#: doc/guix-cookbook.texi:4651 8317#: guix-git/doc/guix-cookbook.texi:4653
8313#, no-wrap 8318#, no-wrap
8314msgid "" 8319msgid ""
8315"(define vcs-file?\n" 8320"(define vcs-file?\n"
@@ -8326,7 +8331,7 @@ msgstr ""
8326"\n" 8331"\n"
8327 8332
8328#. type: lisp 8333#. type: lisp
8329#: doc/guix-cookbook.texi:4660 8334#: guix-git/doc/guix-cookbook.texi:4662
8330#, no-wrap 8335#, no-wrap
8331msgid "" 8336msgid ""
8332"(define-public guile\n" 8337"(define-public guile\n"
@@ -8350,7 +8355,7 @@ msgstr ""
8350"\n" 8355"\n"
8351 8356
8352#. type: lisp 8357#. type: lisp
8353#: doc/guix-cookbook.texi:4663 8358#: guix-git/doc/guix-cookbook.texi:4665
8354#, no-wrap 8359#, no-wrap
8355msgid "" 8360msgid ""
8356";; Return the package object define above at the end of the module.\n" 8361";; Return the package object define above at the end of the module.\n"
@@ -8360,12 +8365,12 @@ msgstr ""
8360"guile\n" 8365"guile\n"
8361 8366
8362#. type: Plain text 8367#. type: Plain text
8363#: doc/guix-cookbook.texi:4668 8368#: guix-git/doc/guix-cookbook.texi:4670
8364msgid "We need one last thing: a @uref{https://guix.gnu.org/manual/devel/en/html_node/Package-Modules-in-a-Sub_002ddirectory.html,@code{.guix-channel} file} so Guix knows where to look for package modules in our repository:" 8369msgid "We need one last thing: a @uref{https://guix.gnu.org/manual/devel/en/html_node/Package-Modules-in-a-Sub_002ddirectory.html,@code{.guix-channel} file} so Guix knows where to look for package modules in our repository:"
8365msgstr "Zuletzt brauchen wir noch eine @uref{https://guix.gnu.org/manual/devel/de/html_node/Paketmodule-in-einem-Unterverzeichnis.html,@code{.guix-channel}-Datei}, um Guix zu erklären, woher es die Paketmodule in unserem Repository bekommt:" 8370msgstr "Zuletzt brauchen wir noch eine @uref{https://guix.gnu.org/manual/devel/de/html_node/Paketmodule-in-einem-Unterverzeichnis.html,@code{.guix-channel}-Datei}, um Guix zu erklären, woher es die Paketmodule in unserem Repository bekommt:"
8366 8371
8367#. type: lisp 8372#. type: lisp
8368#: doc/guix-cookbook.texi:4671 8373#: guix-git/doc/guix-cookbook.texi:4673
8369#, no-wrap 8374#, no-wrap
8370msgid "" 8375msgid ""
8371";; This file lets us present this repo as a Guix channel.\n" 8376";; This file lets us present this repo as a Guix channel.\n"
@@ -8375,7 +8380,7 @@ msgstr ""
8375"\n" 8380"\n"
8376 8381
8377#. type: lisp 8382#. type: lisp
8378#: doc/guix-cookbook.texi:4675 8383#: guix-git/doc/guix-cookbook.texi:4677
8379#, no-wrap 8384#, no-wrap
8380msgid "" 8385msgid ""
8381"(channel\n" 8386"(channel\n"
@@ -8387,12 +8392,12 @@ msgstr ""
8387" (directory \".guix/modules\")) ;Paketmodule finden sich unter .guix/modules/\n" 8392" (directory \".guix/modules\")) ;Paketmodule finden sich unter .guix/modules/\n"
8388 8393
8389#. type: Plain text 8394#. type: Plain text
8390#: doc/guix-cookbook.texi:4678 8395#: guix-git/doc/guix-cookbook.texi:4680
8391msgid "To recap, we now have these files:" 8396msgid "To recap, we now have these files:"
8392msgstr "Zusammengefasst liegen diese Dateien jetzt im Repository:" 8397msgstr "Zusammengefasst liegen diese Dateien jetzt im Repository:"
8393 8398
8394#. type: lisp 8399#. type: lisp
8395#: doc/guix-cookbook.texi:4686 8400#: guix-git/doc/guix-cookbook.texi:4688
8396#, no-wrap 8401#, no-wrap
8397msgid "" 8402msgid ""
8398".\n" 8403".\n"
@@ -8410,12 +8415,12 @@ msgstr ""
8410"       └── guile-package.scm\n" 8415"       └── guile-package.scm\n"
8411 8416
8412#. type: Plain text 8417#. type: Plain text
8413#: doc/guix-cookbook.texi:4695 8418#: guix-git/doc/guix-cookbook.texi:4697
8414msgid "And that's it: we have a channel! (We could do better and support @uref{https://guix.gnu.org/manual/devel/en/html_node/Specifying-Channel-Authorizations.html,@emph{channel authentication}} so users know they're pulling genuine code. We'll spare you the details here but it's worth considering!) Users can pull from this channel by @uref{https://guix.gnu.org/manual/devel/en/html_node/Specifying-Additional-Channels.html,adding it to @code{~/.config/guix/channels.scm}}, along these lines:" 8419msgid "And that's it: we have a channel! (We could do better and support @uref{https://guix.gnu.org/manual/devel/en/html_node/Specifying-Channel-Authorizations.html,@emph{channel authentication}} so users know they're pulling genuine code. We'll spare you the details here but it's worth considering!) Users can pull from this channel by @uref{https://guix.gnu.org/manual/devel/en/html_node/Specifying-Additional-Channels.html,adding it to @code{~/.config/guix/channels.scm}}, along these lines:"
8415msgstr "Und das war alles: Wir haben einen Kanal erschaffen! (Noch besser wäre es, auch @uref{https://guix.gnu.org/en/manual/devel/de/html_node/Kanalautorisierungen-angeben.html,@emph{Kanalautorisierungen}} zu unterstützen, damit Benutzer wissen, dass der heruntergeladene Code echt ist. Wir ersparen Ihnen die Feinheiten hier, aber ziehen Sie es in Betracht!) Nutzer können von diesem Kanal pullen, indem sie @uref{https://guix.gnu.org/manual/devel/de/html_node/Weitere-Kanale-angeben.html,ihn zu @code{~/.config/guix/channels.scm} hinzufügen}, etwa so:" 8420msgstr "Und das war alles: Wir haben einen Kanal erschaffen! (Noch besser wäre es, auch @uref{https://guix.gnu.org/en/manual/devel/de/html_node/Kanalautorisierungen-angeben.html,@emph{Kanalautorisierungen}} zu unterstützen, damit Benutzer wissen, dass der heruntergeladene Code echt ist. Wir ersparen Ihnen die Feinheiten hier, aber ziehen Sie es in Betracht!) Nutzer können von diesem Kanal pullen, indem sie @uref{https://guix.gnu.org/manual/devel/de/html_node/Weitere-Kanale-angeben.html,ihn zu @code{~/.config/guix/channels.scm} hinzufügen}, etwa so:"
8416 8421
8417#. type: lisp 8422#. type: lisp
8418#: doc/guix-cookbook.texi:4702 8423#: guix-git/doc/guix-cookbook.texi:4704
8419#, no-wrap 8424#, no-wrap
8420msgid "" 8425msgid ""
8421"(append (list (channel\n" 8426"(append (list (channel\n"
@@ -8431,12 +8436,12 @@ msgstr ""
8431" %default-channels)\n" 8436" %default-channels)\n"
8432 8437
8433#. type: Plain text 8438#. type: Plain text
8434#: doc/guix-cookbook.texi:4705 8439#: guix-git/doc/guix-cookbook.texi:4707
8435msgid "After running @command{guix pull}, we can see the new package:" 8440msgid "After running @command{guix pull}, we can see the new package:"
8436msgstr "Nach einem Aufruf von @command{guix pull} sind die neuen Pakete zu sehen:" 8441msgstr "Nach einem Aufruf von @command{guix pull} sind die neuen Pakete zu sehen:"
8437 8442
8438#. type: example 8443#. type: example
8439#: doc/guix-cookbook.texi:4727 8444#: guix-git/doc/guix-cookbook.texi:4729
8440#, no-wrap 8445#, no-wrap
8441msgid "" 8446msgid ""
8442"$ guix describe\n" 8447"$ guix describe\n"
@@ -8482,17 +8487,17 @@ msgstr ""
8482"/gnu/store/r34gsij7f0glg2fbakcmmk0zn4v62s5w-guile-3.0.99-git\n" 8487"/gnu/store/r34gsij7f0glg2fbakcmmk0zn4v62s5w-guile-3.0.99-git\n"
8483 8488
8484#. type: Plain text 8489#. type: Plain text
8485#: doc/guix-cookbook.texi:4732 8490#: guix-git/doc/guix-cookbook.texi:4734
8486msgid "That's how, as a developer, you get your software delivered directly into the hands of users! No intermediaries, yet no loss of transparency and provenance tracking." 8491msgid "That's how, as a developer, you get your software delivered directly into the hands of users! No intermediaries, yet no loss of transparency and provenance tracking."
8487msgstr "Auf diesem Weg liefern Sie, als Entwickler, Ihre Software direkt in die Hände der Nutzer! Es gibt keine Mittelsmänner, trotzdem bleiben Transparenz und Provenienzverfolgung erhalten." 8492msgstr "Auf diesem Weg liefern Sie, als Entwickler, Ihre Software direkt in die Hände der Nutzer! Es gibt keine Mittelsmänner, trotzdem bleiben Transparenz und Provenienzverfolgung erhalten."
8488 8493
8489#. type: Plain text 8494#. type: Plain text
8490#: doc/guix-cookbook.texi:4736 8495#: guix-git/doc/guix-cookbook.texi:4738
8491msgid "With that in place, it also becomes trivial for anyone to create Docker images, Deb/RPM packages, or a plain tarball with @command{guix pack} (@pxref{Invoking guix pack,,, guix, GNU Guix Reference Manual}):" 8496msgid "With that in place, it also becomes trivial for anyone to create Docker images, Deb/RPM packages, or a plain tarball with @command{guix pack} (@pxref{Invoking guix pack,,, guix, GNU Guix Reference Manual}):"
8492msgstr "Auf dieser Grundlage kann außerdem jeder leicht Docker-Abbilder, Pakete als Deb/RPM oder einen einfachen Tarball mit @command{guix pack} anfertigen (siehe @ref{Aufruf von guix pack,,, guix.de, Referenzhandbuch zu GNU Guix}):" 8497msgstr "Auf dieser Grundlage kann außerdem jeder leicht Docker-Abbilder, Pakete als Deb/RPM oder einen einfachen Tarball mit @command{guix pack} anfertigen (siehe @ref{Aufruf von guix pack,,, guix.de, Referenzhandbuch zu GNU Guix}):"
8493 8498
8494#. type: example 8499#. type: example
8495#: doc/guix-cookbook.texi:4740 8500#: guix-git/doc/guix-cookbook.texi:4742
8496#, no-wrap 8501#, no-wrap
8497msgid "" 8502msgid ""
8498"# How about a Docker image of our Guile snapshot?\n" 8503"# How about a Docker image of our Guile snapshot?\n"
@@ -8504,7 +8509,7 @@ msgstr ""
8504"\n" 8509"\n"
8505 8510
8506#. type: example 8511#. type: example
8507#: doc/guix-cookbook.texi:4743 8512#: guix-git/doc/guix-cookbook.texi:4745
8508#, no-wrap 8513#, no-wrap
8509msgid "" 8514msgid ""
8510"# And a relocatable RPM?\n" 8515"# And a relocatable RPM?\n"
@@ -8514,18 +8519,18 @@ msgstr ""
8514"guix pack -f rpm -R -S /bin=bin guile@@3.0.99-git\n" 8519"guix pack -f rpm -R -S /bin=bin guile@@3.0.99-git\n"
8515 8520
8516#. type: section 8521#. type: section
8517#: doc/guix-cookbook.texi:4746 8522#: guix-git/doc/guix-cookbook.texi:4748
8518#, no-wrap 8523#, no-wrap
8519msgid "Bonus: Package Variants" 8524msgid "Bonus: Package Variants"
8520msgstr "Bonus: Paketvarianten" 8525msgstr "Bonus: Paketvarianten"
8521 8526
8522#. type: Plain text 8527#. type: Plain text
8523#: doc/guix-cookbook.texi:4754 8528#: guix-git/doc/guix-cookbook.texi:4756
8524msgid "We now have an actual channel, but it contains only one package (@pxref{The Repository as a Channel}). While we're at it, we can define @dfn{package variants} (@pxref{Defining Package Variants,,, guix, GNU Guix Reference Manual}) in our @file{guile-package.scm} file, variants that we want to be able to test as Guile developers---similar to what we did above with transformation options. We can add them like so:" 8529msgid "We now have an actual channel, but it contains only one package (@pxref{The Repository as a Channel}). While we're at it, we can define @dfn{package variants} (@pxref{Defining Package Variants,,, guix, GNU Guix Reference Manual}) in our @file{guile-package.scm} file, variants that we want to be able to test as Guile developers---similar to what we did above with transformation options. We can add them like so:"
8525msgstr "Jetzt, wo wir es zu einem richtigen Kanal gebracht haben (siehe @ref{The Repository as a Channel}), drängt sich die Frage auf, warum er nur ein Paket enthält. Da geht mehr, denn wir können gleich mehrere @dfn{Paketvarianten} (siehe @ref{Paketvarianten definieren,,, guix.de, Referenzhandbuch zu GNU Guix}) in unserer Datei @file{guile-package.scm} festlegen, und zwar Varianten, die wir Entwickler von Guile gerne testen würden@tie{}– wofür wir oben noch Paketumwandlungsoptionen gebraucht haben. Wir können Sie auf diese Weise eintragen:" 8530msgstr "Jetzt, wo wir es zu einem richtigen Kanal gebracht haben (siehe @ref{The Repository as a Channel}), drängt sich die Frage auf, warum er nur ein Paket enthält. Da geht mehr, denn wir können gleich mehrere @dfn{Paketvarianten} (siehe @ref{Paketvarianten definieren,,, guix.de, Referenzhandbuch zu GNU Guix}) in unserer Datei @file{guile-package.scm} festlegen, und zwar Varianten, die wir Entwickler von Guile gerne testen würden@tie{}– wofür wir oben noch Paketumwandlungsoptionen gebraucht haben. Wir können Sie auf diese Weise eintragen:"
8526 8531
8527#. type: lisp 8532#. type: lisp
8528#: doc/guix-cookbook.texi:4757 8533#: guix-git/doc/guix-cookbook.texi:4759
8529#, no-wrap 8534#, no-wrap
8530msgid "" 8535msgid ""
8531";; This is the ‘.guix/modules/guile-package.scm’ file.\n" 8536";; This is the ‘.guix/modules/guile-package.scm’ file.\n"
@@ -8535,7 +8540,7 @@ msgstr ""
8535"\n" 8540"\n"
8536 8541
8537#. type: lisp 8542#. type: lisp
8538#: doc/guix-cookbook.texi:4760 8543#: guix-git/doc/guix-cookbook.texi:4762
8539#, no-wrap 8544#, no-wrap
8540msgid "" 8545msgid ""
8541"(define-module (guile-package)\n" 8546"(define-module (guile-package)\n"
@@ -8547,7 +8552,7 @@ msgstr ""
8547"\n" 8552"\n"
8548 8553
8549#. type: lisp 8554#. type: lisp
8550#: doc/guix-cookbook.texi:4763 8555#: guix-git/doc/guix-cookbook.texi:4765
8551#, no-wrap 8556#, no-wrap
8552msgid "" 8557msgid ""
8553"(define-public guile\n" 8558"(define-public guile\n"
@@ -8559,7 +8564,7 @@ msgstr ""
8559"\n" 8564"\n"
8560 8565
8561#. type: lisp 8566#. type: lisp
8562#: doc/guix-cookbook.texi:4771 8567#: guix-git/doc/guix-cookbook.texi:4773
8563#, no-wrap 8568#, no-wrap
8564msgid "" 8569msgid ""
8565"(define (package-with-configure-flags p flags)\n" 8570"(define (package-with-configure-flags p flags)\n"
@@ -8581,7 +8586,7 @@ msgstr ""
8581"\n" 8586"\n"
8582 8587
8583#. type: lisp 8588#. type: lisp
8584#: doc/guix-cookbook.texi:4777 8589#: guix-git/doc/guix-cookbook.texi:4779
8585#, no-wrap 8590#, no-wrap
8586msgid "" 8591msgid ""
8587"(define-public guile-without-threads\n" 8592"(define-public guile-without-threads\n"
@@ -8599,7 +8604,7 @@ msgstr ""
8599"\n" 8604"\n"
8600 8605
8601#. type: lisp 8606#. type: lisp
8602#: doc/guix-cookbook.texi:4783 8607#: guix-git/doc/guix-cookbook.texi:4785
8603#, no-wrap 8608#, no-wrap
8604msgid "" 8609msgid ""
8605"(define-public guile-without-networking\n" 8610"(define-public guile-without-networking\n"
@@ -8617,7 +8622,7 @@ msgstr ""
8617"\n" 8622"\n"
8618 8623
8619#. type: lisp 8624#. type: lisp
8620#: doc/guix-cookbook.texi:4787 8625#: guix-git/doc/guix-cookbook.texi:4789
8621#, no-wrap 8626#, no-wrap
8622msgid "" 8627msgid ""
8623";; Return the package object defined above at the end of the module.\n" 8628";; Return the package object defined above at the end of the module.\n"
@@ -8627,56 +8632,56 @@ msgstr ""
8627"guile\n" 8632"guile\n"
8628 8633
8629#. type: Plain text 8634#. type: Plain text
8630#: doc/guix-cookbook.texi:4792 8635#: guix-git/doc/guix-cookbook.texi:4794
8631msgid "We can build these variants as regular packages once we've pulled the channel. Alternatively, from a checkout of Guile, we can run a command like this one from the top level:" 8636msgid "We can build these variants as regular packages once we've pulled the channel. Alternatively, from a checkout of Guile, we can run a command like this one from the top level:"
8632msgstr "Sobald wir den Kanal mit @command{guix pull} aktiviert haben, können wir diese Varianten als normale Pakete erstellen. Es geht aber auch, einen Befehl wie hier in einem Checkout von Guile auf oberster Ebene auszuführen:" 8637msgstr "Sobald wir den Kanal mit @command{guix pull} aktiviert haben, können wir diese Varianten als normale Pakete erstellen. Es geht aber auch, einen Befehl wie hier in einem Checkout von Guile auf oberster Ebene auszuführen:"
8633 8638
8634#. type: lisp 8639#. type: lisp
8635#: doc/guix-cookbook.texi:4795 8640#: guix-git/doc/guix-cookbook.texi:4797
8636#, no-wrap 8641#, no-wrap
8637msgid "guix build -L $PWD/.guix/modules guile-without-threads\n" 8642msgid "guix build -L $PWD/.guix/modules guile-without-threads\n"
8638msgstr "guix build -L $PWD/.guix/modules guile-without-threads\n" 8643msgstr "guix build -L $PWD/.guix/modules guile-without-threads\n"
8639 8644
8640#. type: section 8645#. type: section
8641#: doc/guix-cookbook.texi:4798 8646#: guix-git/doc/guix-cookbook.texi:4800
8642#, no-wrap 8647#, no-wrap
8643msgid "Level 3: Setting Up Continuous Integration" 8648msgid "Level 3: Setting Up Continuous Integration"
8644msgstr "Stufe 3: Kontinuierliche Integration einrichten" 8649msgstr "Stufe 3: Kontinuierliche Integration einrichten"
8645 8650
8646#. type: cindex 8651#. type: cindex
8647#: doc/guix-cookbook.texi:4800 8652#: guix-git/doc/guix-cookbook.texi:4802
8648#, no-wrap 8653#, no-wrap
8649msgid "continuous integration (CI)" 8654msgid "continuous integration (CI)"
8650msgstr "kontinuierliche Integration (CI)" 8655msgstr "kontinuierliche Integration (CI)"
8651 8656
8652#. type: Plain text 8657#. type: Plain text
8653#: doc/guix-cookbook.texi:4805 8658#: guix-git/doc/guix-cookbook.texi:4807
8654msgid "The channel we defined above (@pxref{The Repository as a Channel}) becomes even more interesting once we set up @uref{https://en.wikipedia.org/wiki/Continuous_integration, @dfn{continuous integration}} (CI). There are several ways to do that." 8659msgid "The channel we defined above (@pxref{The Repository as a Channel}) becomes even more interesting once we set up @uref{https://en.wikipedia.org/wiki/Continuous_integration, @dfn{continuous integration}} (CI). There are several ways to do that."
8655msgstr "Mit dem oben definierten Kanal (siehe @ref{The Repository as a Channel}) können wir erst recht etwas anstellen, sobald wir @uref{https://de.wikipedia.org/wiki/Kontinuierliche_Integration, @dfn{Kontinuierliche Integration}} (Continuous Integration, CI) eingerichtet haben. Hier gibt es mehrere Wege zum Ziel." 8660msgstr "Mit dem oben definierten Kanal (siehe @ref{The Repository as a Channel}) können wir erst recht etwas anstellen, sobald wir @uref{https://de.wikipedia.org/wiki/Kontinuierliche_Integration, @dfn{Kontinuierliche Integration}} (Continuous Integration, CI) eingerichtet haben. Hier gibt es mehrere Wege zum Ziel."
8656 8661
8657#. type: Plain text 8662#. type: Plain text
8658#: doc/guix-cookbook.texi:4811 8663#: guix-git/doc/guix-cookbook.texi:4813
8659msgid "You can use one of the mainstream continuous integration tools, such as GitLab-CI. To do that, you need to make sure you run jobs in a Docker image or virtual machine that has Guix installed. If we were to do that in the case of Guile, we'd have a job that runs a shell command like this one:" 8664msgid "You can use one of the mainstream continuous integration tools, such as GitLab-CI. To do that, you need to make sure you run jobs in a Docker image or virtual machine that has Guix installed. If we were to do that in the case of Guile, we'd have a job that runs a shell command like this one:"
8660msgstr "Sie können ein dem Mainstream entsprechendes Werkzeug zur kontinuierlichen Integration nehmen wie GitLab-CI. Dazu müssen Sie Aufgaben („Jobs“) in einem Docker-Abbild oder einer virtuellen Maschine, auf der Guix installiert ist, ausführen lassen. Wenn wir das für Guile vorhätten, legten wir eine Aufgabe an, die einen Shell-Befehl wie diesen laufen lässt:" 8665msgstr "Sie können ein dem Mainstream entsprechendes Werkzeug zur kontinuierlichen Integration nehmen wie GitLab-CI. Dazu müssen Sie Aufgaben („Jobs“) in einem Docker-Abbild oder einer virtuellen Maschine, auf der Guix installiert ist, ausführen lassen. Wenn wir das für Guile vorhätten, legten wir eine Aufgabe an, die einen Shell-Befehl wie diesen laufen lässt:"
8661 8666
8662#. type: lisp 8667#. type: lisp
8663#: doc/guix-cookbook.texi:4814 8668#: guix-git/doc/guix-cookbook.texi:4816
8664#, no-wrap 8669#, no-wrap
8665msgid "guix build -L $PWD/.guix/modules guile@@3.0.99-git\n" 8670msgid "guix build -L $PWD/.guix/modules guile@@3.0.99-git\n"
8666msgstr "guix build -L $PWD/.guix/modules guile@@3.0.99-git\n" 8671msgstr "guix build -L $PWD/.guix/modules guile@@3.0.99-git\n"
8667 8672
8668#. type: Plain text 8673#. type: Plain text
8669#: doc/guix-cookbook.texi:4818 8674#: guix-git/doc/guix-cookbook.texi:4820
8670msgid "Doing this works great and has the advantage of being easy to achieve on your favorite CI platform." 8675msgid "Doing this works great and has the advantage of being easy to achieve on your favorite CI platform."
8671msgstr "So klappt es gut und der Vorteil ist, dass Sie den Befehl leicht Ihrer bevorzugten CI-Plattform beibringen können." 8676msgstr "So klappt es gut und der Vorteil ist, dass Sie den Befehl leicht Ihrer bevorzugten CI-Plattform beibringen können."
8672 8677
8673#. type: Plain text 8678#. type: Plain text
8674#: doc/guix-cookbook.texi:4827 8679#: guix-git/doc/guix-cookbook.texi:4829
8675msgid "That said, you'll really get the most of it by using @uref{https://guix.gnu.org/en/cuirass,Cuirass}, a CI tool designed for and tightly integrated with Guix. Using it is more work than using a hosted CI tool because you first need to set it up, but that setup phase is greatly simplified if you use its Guix System service (@pxref{Continuous Integration,,, guix, GNU Guix Reference Manual}). Going back to our example, we give Cuirass a spec file that goes like this:" 8680msgid "That said, you'll really get the most of it by using @uref{https://guix.gnu.org/en/cuirass,Cuirass}, a CI tool designed for and tightly integrated with Guix. Using it is more work than using a hosted CI tool because you first need to set it up, but that setup phase is greatly simplified if you use its Guix System service (@pxref{Continuous Integration,,, guix, GNU Guix Reference Manual}). Going back to our example, we give Cuirass a spec file that goes like this:"
8676msgstr "Aber trotzdem können Sie Guix am besten ausnutzen, wenn Sie @uref{https://guix.gnu.org/en/cuirass,Cuirass} verwenden, ein CI-Werkzeug speziell für Guix und eng damit integriert. Cuirass zu benutzen statt einem CI-Werkzeug, das jemand für Sie hostet, macht mehr Aufwand, aber die Einrichtung hält sich in Grenzen, wenn Sie Cuirass’ Dienst auf Guix System benutzen (siehe @ref{Kontinuierliche Integration,,, guix.de, Referenzhandbuch zu GNU Guix}). Kehren wir zu unserem Beispiel zurück, statten wir Cuirass mit so einer Spezifikationsdatei aus:" 8681msgstr "Aber trotzdem können Sie Guix am besten ausnutzen, wenn Sie @uref{https://guix.gnu.org/en/cuirass,Cuirass} verwenden, ein CI-Werkzeug speziell für Guix und eng damit integriert. Cuirass zu benutzen statt einem CI-Werkzeug, das jemand für Sie hostet, macht mehr Aufwand, aber die Einrichtung hält sich in Grenzen, wenn Sie Cuirass’ Dienst auf Guix System benutzen (siehe @ref{Kontinuierliche Integration,,, guix.de, Referenzhandbuch zu GNU Guix}). Kehren wir zu unserem Beispiel zurück, statten wir Cuirass mit so einer Spezifikationsdatei aus:"
8677 8682
8678#. type: lisp 8683#. type: lisp
8679#: doc/guix-cookbook.texi:4839 8684#: guix-git/doc/guix-cookbook.texi:4841
8680#, no-wrap 8685#, no-wrap
8681msgid "" 8686msgid ""
8682";; Cuirass spec file to build all the packages of the ‘guile’ channel.\n" 8687";; Cuirass spec file to build all the packages of the ‘guile’ channel.\n"
@@ -8702,48 +8707,48 @@ msgstr ""
8702" %default-channels))))\n" 8707" %default-channels))))\n"
8703 8708
8704#. type: Plain text 8709#. type: Plain text
8705#: doc/guix-cookbook.texi:4842 8710#: guix-git/doc/guix-cookbook.texi:4844
8706msgid "It differs from what you'd do with other CI tools in two important ways:" 8711msgid "It differs from what you'd do with other CI tools in two important ways:"
8707msgstr "Es gibt zwei wichtige Unterschiede zu dem, was Sie mit anderen CI-Werkzeugen tun würden:" 8712msgstr "Es gibt zwei wichtige Unterschiede zu dem, was Sie mit anderen CI-Werkzeugen tun würden:"
8708 8713
8709#. type: itemize 8714#. type: itemize
8710#: doc/guix-cookbook.texi:4851 8715#: guix-git/doc/guix-cookbook.texi:4853
8711msgid "Cuirass knows it's tracking @emph{two} channels, @code{guile} and @code{guix}. Indeed, our own @code{guile} package depends on many packages provided by the @code{guix} channel---GCC, the GNU libc, libffi, and so on. Changes to packages from the @code{guix} channel can potentially influence our @code{guile} build and this is something we'd like to see as soon as possible as Guile developers." 8716msgid "Cuirass knows it's tracking @emph{two} channels, @code{guile} and @code{guix}. Indeed, our own @code{guile} package depends on many packages provided by the @code{guix} channel---GCC, the GNU libc, libffi, and so on. Changes to packages from the @code{guix} channel can potentially influence our @code{guile} build and this is something we'd like to see as soon as possible as Guile developers."
8712msgstr "Cuirass weiß über @emph{zwei} Kanäle Bescheid, @code{guile} und @code{guix}. Tatsächlich zählen viele Pakete vom @code{guix}-Kanal zu den Abhängigkeiten des von uns entwickelten @code{guile}-Pakets@tie{}– GCC, GNU libc, libffi und weitere. Es kann passieren, dass sich die Pakete vom @code{guix}-Kanal ändern und dadurch die Erstellung unseres @code{guile}-Pakets schiefgeht; so etwas wollen wir als die Entwickler von Guile so früh erfahren, wie es nur geht." 8717msgstr "Cuirass weiß über @emph{zwei} Kanäle Bescheid, @code{guile} und @code{guix}. Tatsächlich zählen viele Pakete vom @code{guix}-Kanal zu den Abhängigkeiten des von uns entwickelten @code{guile}-Pakets@tie{}– GCC, GNU libc, libffi und weitere. Es kann passieren, dass sich die Pakete vom @code{guix}-Kanal ändern und dadurch die Erstellung unseres @code{guile}-Pakets schiefgeht; so etwas wollen wir als die Entwickler von Guile so früh erfahren, wie es nur geht."
8713 8718
8714#. type: itemize 8719#. type: itemize
8715#: doc/guix-cookbook.texi:4856 8720#: guix-git/doc/guix-cookbook.texi:4858
8716msgid "Build results are not thrown away: they can be distributed as @dfn{substitutes} so that users of our @code{guile} channel transparently get pre-built binaries! (@pxref{Substitutes,,, guix, GNU Guix Reference Manual}, for background info on substitutes.)" 8721msgid "Build results are not thrown away: they can be distributed as @dfn{substitutes} so that users of our @code{guile} channel transparently get pre-built binaries! (@pxref{Substitutes,,, guix, GNU Guix Reference Manual}, for background info on substitutes.)"
8717msgstr "Die Erstellungsergebnisse werden @emph{nicht} entsorgt, sondern sie können als @dfn{Substitute}, d.h.@: vorerstellten Binärdateien, allen Nutzern unseres @code{guile}-Kanals transparent zur Verfügung gestellt werden! (Siehe @ref{Substitute,,, guix.de, Referenzhandbuch zu GNU Guix} für Hintergrundwissen zu Substituten.)" 8722msgstr "Die Erstellungsergebnisse werden @emph{nicht} entsorgt, sondern sie können als @dfn{Substitute}, d.h.@: vorerstellten Binärdateien, allen Nutzern unseres @code{guile}-Kanals transparent zur Verfügung gestellt werden! (Siehe @ref{Substitute,,, guix.de, Referenzhandbuch zu GNU Guix} für Hintergrundwissen zu Substituten.)"
8718 8723
8719#. type: Plain text 8724#. type: Plain text
8720#: doc/guix-cookbook.texi:4864 8725#: guix-git/doc/guix-cookbook.texi:4866
8721msgid "From a developer's viewpoint, the end result is this @uref{https://ci.guix.gnu.org/jobset/guile,status page} listing @emph{evaluations}: each evaluation is a combination of commits of the @code{guix} and @code{guile} channels providing a number of @emph{jobs}---one job per package defined in @file{guile-package.scm} times the number of target architectures." 8726msgid "From a developer's viewpoint, the end result is this @uref{https://ci.guix.gnu.org/jobset/guile,status page} listing @emph{evaluations}: each evaluation is a combination of commits of the @code{guix} and @code{guile} channels providing a number of @emph{jobs}---one job per package defined in @file{guile-package.scm} times the number of target architectures."
8722msgstr "Aus Entwicklersicht sieht das Ergebnis am Ende so aus wie die auf Guiles @uref{https://ci.guix.gnu.org/jobset/guile,Status-Seite} aufgelisteten @emph{Auswertungen}: Jede Auswertung besteht aus einer Kombination von Commits der @code{guix}- und @code{guile}-Kanäle, wovon es mehrere @emph{Aufträge} (Jobs) gibt@tie{}– je einen Job pro Paket, das in @file{guile-package.scm} definiert ist, mal der Anzahl der Zielarchitekturen." 8727msgstr "Aus Entwicklersicht sieht das Ergebnis am Ende so aus wie die auf Guiles @uref{https://ci.guix.gnu.org/jobset/guile,Status-Seite} aufgelisteten @emph{Auswertungen}: Jede Auswertung besteht aus einer Kombination von Commits der @code{guix}- und @code{guile}-Kanäle, wovon es mehrere @emph{Aufträge} (Jobs) gibt@tie{}– je einen Job pro Paket, das in @file{guile-package.scm} definiert ist, mal der Anzahl der Zielarchitekturen."
8723 8728
8724#. type: Plain text 8729#. type: Plain text
8725#: doc/guix-cookbook.texi:4871 8730#: guix-git/doc/guix-cookbook.texi:4873
8726msgid "As for substitutes, they come for free! As an example, since our @code{guile} jobset is built on ci.guix.gnu.org, which runs @command{guix publish} (@pxref{Invoking guix publish,,, guix, GNU Guix Reference Manual}) in addition to Cuirass, one automatically gets substitutes for @code{guile} builds from ci.guix.gnu.org; no additional work is needed for that." 8731msgid "As for substitutes, they come for free! As an example, since our @code{guile} jobset is built on ci.guix.gnu.org, which runs @command{guix publish} (@pxref{Invoking guix publish,,, guix, GNU Guix Reference Manual}) in addition to Cuirass, one automatically gets substitutes for @code{guile} builds from ci.guix.gnu.org; no additional work is needed for that."
8727msgstr "Substitute gibt es kostenlos dazu! Zum Beispiel kann jeder, weil unser @code{guile}-Jobset auf ci.guix.gnu.org erstellt wird und dort @command{guix publish} (siehe @ref{Aufruf von guix publish,,, guix.de, Referenzhandbuch zu GNU Guix}) zusätzlich zu Cuirass läuft, automatisch die Substitute für @code{guile}-Erstellungen von ci.guix.gnu.org beziehen; es ist dazu kein Mehraufwand nötig." 8732msgstr "Substitute gibt es kostenlos dazu! Zum Beispiel kann jeder, weil unser @code{guile}-Jobset auf ci.guix.gnu.org erstellt wird und dort @command{guix publish} (siehe @ref{Aufruf von guix publish,,, guix.de, Referenzhandbuch zu GNU Guix}) zusätzlich zu Cuirass läuft, automatisch die Substitute für @code{guile}-Erstellungen von ci.guix.gnu.org beziehen; es ist dazu kein Mehraufwand nötig."
8728 8733
8729#. type: section 8734#. type: section
8730#: doc/guix-cookbook.texi:4873 8735#: guix-git/doc/guix-cookbook.texi:4875
8731#, no-wrap 8736#, no-wrap
8732msgid "Bonus: Build manifest" 8737msgid "Bonus: Build manifest"
8733msgstr "Bonus: Erstellungs-Manifest" 8738msgstr "Bonus: Erstellungs-Manifest"
8734 8739
8735#. type: Plain text 8740#. type: Plain text
8736#: doc/guix-cookbook.texi:4880 8741#: guix-git/doc/guix-cookbook.texi:4882
8737msgid "The Cuirass spec above is convenient: it builds every package in our channel, which includes a few variants (@pxref{Setting Up Continuous Integration}). However, this might be insufficiently expressive in some cases: one might want specific cross-compilation jobs, transformations, Docker images, RPM/Deb packages, or even system tests." 8742msgid "The Cuirass spec above is convenient: it builds every package in our channel, which includes a few variants (@pxref{Setting Up Continuous Integration}). However, this might be insufficiently expressive in some cases: one might want specific cross-compilation jobs, transformations, Docker images, RPM/Deb packages, or even system tests."
8738msgstr "Mit der Cuirass-Spezifikation oben können wir uns gut anfreunden: Jedes Paket in unserem Kanal wird erstellt, einschließlich einiger Varianten (siehe @ref{Setting Up Continuous Integration}). Allerdings können wir in manchen Fällen noch nicht alles ausdrücken, was wir möchten, etwa wenn wir in manchen Cuirass-Jobs cross-kompilieren möchten, Transformationen festlegen oder Docker-Abbilder, RPM-/Deb-Pakete oder sogar Systemtests wollen." 8743msgstr "Mit der Cuirass-Spezifikation oben können wir uns gut anfreunden: Jedes Paket in unserem Kanal wird erstellt, einschließlich einiger Varianten (siehe @ref{Setting Up Continuous Integration}). Allerdings können wir in manchen Fällen noch nicht alles ausdrücken, was wir möchten, etwa wenn wir in manchen Cuirass-Jobs cross-kompilieren möchten, Transformationen festlegen oder Docker-Abbilder, RPM-/Deb-Pakete oder sogar Systemtests wollen."
8739 8744
8740#. type: Plain text 8745#. type: Plain text
8741#: doc/guix-cookbook.texi:4885 8746#: guix-git/doc/guix-cookbook.texi:4887
8742msgid "To achieve that, you can write a @dfn{manifest} (@pxref{Writing Manifests,,, guix, GNU Guix Reference Manual}). The one we have for Guile has entries for the package variants we defined above, as well as additional variants and cross builds:" 8747msgid "To achieve that, you can write a @dfn{manifest} (@pxref{Writing Manifests,,, guix, GNU Guix Reference Manual}). The one we have for Guile has entries for the package variants we defined above, as well as additional variants and cross builds:"
8743msgstr "Das erreichen Sie, indem Sie ein @dfn{Manifest} mit den Angaben schreiben (siehe @ref{Manifeste verfassen,,, guix.de, Referenzhandbuch zu GNU Guix}). Das Manifest, was wir für Guile haben, hat Einträge für die oben definierten Paketvarianten sowie zusätzliche Varianten und Cross-Erstellungen:" 8748msgstr "Das erreichen Sie, indem Sie ein @dfn{Manifest} mit den Angaben schreiben (siehe @ref{Manifeste verfassen,,, guix.de, Referenzhandbuch zu GNU Guix}). Das Manifest, was wir für Guile haben, hat Einträge für die oben definierten Paketvarianten sowie zusätzliche Varianten und Cross-Erstellungen:"
8744 8749
8745#. type: lisp 8750#. type: lisp
8746#: doc/guix-cookbook.texi:4888 8751#: guix-git/doc/guix-cookbook.texi:4890
8747#, no-wrap 8752#, no-wrap
8748msgid "" 8753msgid ""
8749";; This is ‘.guix/manifest.scm’.\n" 8754";; This is ‘.guix/manifest.scm’.\n"
@@ -8753,7 +8758,7 @@ msgstr ""
8753"\n" 8758"\n"
8754 8759
8755#. type: lisp 8760#. type: lisp
8756#: doc/guix-cookbook.texi:4892 8761#: guix-git/doc/guix-cookbook.texi:4894
8757#, no-wrap 8762#, no-wrap
8758msgid "" 8763msgid ""
8759"(use-modules (guix)\n" 8764"(use-modules (guix)\n"
@@ -8767,7 +8772,7 @@ msgstr ""
8767"\n" 8772"\n"
8768 8773
8769#. type: lisp 8774#. type: lisp
8770#: doc/guix-cookbook.texi:4906 8775#: guix-git/doc/guix-cookbook.texi:4908
8771#, no-wrap 8776#, no-wrap
8772msgid "" 8777msgid ""
8773"(define* (package->manifest-entry* package system\n" 8778"(define* (package->manifest-entry* package system\n"
@@ -8801,7 +8806,7 @@ msgstr ""
8801"\n" 8806"\n"
8802 8807
8803#. type: lisp 8808#. type: lisp
8804#: doc/guix-cookbook.texi:4911 8809#: guix-git/doc/guix-cookbook.texi:4913
8805#, no-wrap 8810#, no-wrap
8806msgid "" 8811msgid ""
8807"(define native-builds\n" 8812"(define native-builds\n"
@@ -8817,7 +8822,7 @@ msgstr ""
8817"\n" 8822"\n"
8818 8823
8819#. type: lisp 8824#. type: lisp
8820#: doc/guix-cookbook.texi:4928 8825#: guix-git/doc/guix-cookbook.texi:4930
8821#, no-wrap 8826#, no-wrap
8822msgid "" 8827msgid ""
8823" '(\"x86_64-linux\" \"i686-linux\"\n" 8828" '(\"x86_64-linux\" \"i686-linux\"\n"
@@ -8857,7 +8862,7 @@ msgstr ""
8857"\n" 8862"\n"
8858 8863
8859#. type: lisp 8864#. type: lisp
8860#: doc/guix-cookbook.texi:4939 8865#: guix-git/doc/guix-cookbook.texi:4941
8861#, no-wrap 8866#, no-wrap
8862msgid "" 8867msgid ""
8863"(define cross-builds\n" 8868"(define cross-builds\n"
@@ -8885,18 +8890,18 @@ msgstr ""
8885"\n" 8890"\n"
8886 8891
8887#. type: lisp 8892#. type: lisp
8888#: doc/guix-cookbook.texi:4941 8893#: guix-git/doc/guix-cookbook.texi:4943
8889#, no-wrap 8894#, no-wrap
8890msgid "(concatenate-manifests (list native-builds cross-builds))\n" 8895msgid "(concatenate-manifests (list native-builds cross-builds))\n"
8891msgstr "(concatenate-manifests (list native-builds cross-builds))\n" 8896msgstr "(concatenate-manifests (list native-builds cross-builds))\n"
8892 8897
8893#. type: Plain text 8898#. type: Plain text
8894#: doc/guix-cookbook.texi:4947 8899#: guix-git/doc/guix-cookbook.texi:4949
8895msgid "We won't go into the details of this manifest; suffice to say that it provides additional flexibility. We now need to tell Cuirass to build this manifest, which is done with a spec slightly different from the previous one:" 8900msgid "We won't go into the details of this manifest; suffice to say that it provides additional flexibility. We now need to tell Cuirass to build this manifest, which is done with a spec slightly different from the previous one:"
8896msgstr "Wir gehen nicht auf die Details dieses Manifests ein; es genügt zu wissen, dass wir dadurch mehr Flexibilität haben. Wir müssen jetzt Cuirass die Information geben, dass damit dieses Manifest erstellt werden soll; dazu verwenden wir eine leicht abgeänderte Spezifikation verglichen mit vorher:" 8901msgstr "Wir gehen nicht auf die Details dieses Manifests ein; es genügt zu wissen, dass wir dadurch mehr Flexibilität haben. Wir müssen jetzt Cuirass die Information geben, dass damit dieses Manifest erstellt werden soll; dazu verwenden wir eine leicht abgeänderte Spezifikation verglichen mit vorher:"
8897 8902
8898#. type: lisp 8903#. type: lisp
8899#: doc/guix-cookbook.texi:4959 8904#: guix-git/doc/guix-cookbook.texi:4961
8900#, no-wrap 8905#, no-wrap
8901msgid "" 8906msgid ""
8902";; Cuirass spec file to build all the packages of the ‘guile’ channel.\n" 8907";; Cuirass spec file to build all the packages of the ‘guile’ channel.\n"
@@ -8922,92 +8927,92 @@ msgstr ""
8922" %default-channels))))\n" 8927" %default-channels))))\n"
8923 8928
8924#. type: Plain text 8929#. type: Plain text
8925#: doc/guix-cookbook.texi:4964 8930#: guix-git/doc/guix-cookbook.texi:4966
8926msgid "We changed the @code{(build @dots{})} part of the spec to @code{'(manifest \".guix/manifest.scm\")} so that it would pick our manifest, and that's it!" 8931msgid "We changed the @code{(build @dots{})} part of the spec to @code{'(manifest \".guix/manifest.scm\")} so that it would pick our manifest, and that's it!"
8927msgstr "Wir haben im Teil @code{(build …)} der Spezifikation jetzt @code{'(manifest \".guix/manifest.scm\")} verwendet, damit unser Manifest genommen wird, und das war schon alles!" 8932msgstr "Wir haben im Teil @code{(build …)} der Spezifikation jetzt @code{'(manifest \".guix/manifest.scm\")} verwendet, damit unser Manifest genommen wird, und das war schon alles!"
8928 8933
8929#. type: Plain text 8934#. type: Plain text
8930#: doc/guix-cookbook.texi:4970 8935#: guix-git/doc/guix-cookbook.texi:4972
8931msgid "We picked Guile as the running example in this chapter and you can see the result here:" 8936msgid "We picked Guile as the running example in this chapter and you can see the result here:"
8932msgstr "In diesem Kapitel haben wir die Vorgehensweise auf Guile angewandt und das Ergebnis lässt sich hier bestaunen:" 8937msgstr "In diesem Kapitel haben wir die Vorgehensweise auf Guile angewandt und das Ergebnis lässt sich hier bestaunen:"
8933 8938
8934#. type: itemize 8939#. type: itemize
8935#: doc/guix-cookbook.texi:4974 8940#: guix-git/doc/guix-cookbook.texi:4976
8936msgid "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix-channel?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix-channel}};" 8941msgid "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix-channel?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix-channel}};"
8937msgstr "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix-channel?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix-channel}}," 8942msgstr "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix-channel?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix-channel}},"
8938 8943
8939#. type: itemize 8944#. type: itemize
8940#: doc/guix-cookbook.texi:4977 8945#: guix-git/doc/guix-cookbook.texi:4979
8941msgid "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix/modules/guile-package.scm?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix/modules/guile-package.scm}} with the top-level @file{guix.scm} symlink;" 8946msgid "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix/modules/guile-package.scm?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix/modules/guile-package.scm}} with the top-level @file{guix.scm} symlink;"
8942msgstr "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix/modules/guile-package.scm?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix/modules/guile-package.scm}} auch symbolisch verknüpft als @file{guix.scm} auf der oberstem Verzeichnisebene," 8947msgstr "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix/modules/guile-package.scm?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix/modules/guile-package.scm}} auch symbolisch verknüpft als @file{guix.scm} auf der oberstem Verzeichnisebene,"
8943 8948
8944#. type: itemize 8949#. type: itemize
8945#: doc/guix-cookbook.texi:4979 8950#: guix-git/doc/guix-cookbook.texi:4981
8946msgid "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix/manifest.scm?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix/manifest.scm}}." 8951msgid "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix/manifest.scm?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix/manifest.scm}}."
8947msgstr "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix/manifest.scm?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix/manifest.scm}}." 8952msgstr "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix/manifest.scm?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix/manifest.scm}}."
8948 8953
8949#. type: Plain text 8954#. type: Plain text
8950#: doc/guix-cookbook.texi:4988 8955#: guix-git/doc/guix-cookbook.texi:4990
8951msgid "These days, repositories are commonly peppered with dot files for various tools: @code{.envrc}, @code{.gitlab-ci.yml}, @code{.github/workflows}, @code{Dockerfile}, @code{.buildpacks}, @code{Aptfile}, @code{requirements.txt}, and whatnot. It may sound like we're proposing a bunch of @emph{additional} files, but in fact those files are expressive enough to @emph{supersede} most or all of those listed above." 8956msgid "These days, repositories are commonly peppered with dot files for various tools: @code{.envrc}, @code{.gitlab-ci.yml}, @code{.github/workflows}, @code{Dockerfile}, @code{.buildpacks}, @code{Aptfile}, @code{requirements.txt}, and whatnot. It may sound like we're proposing a bunch of @emph{additional} files, but in fact those files are expressive enough to @emph{supersede} most or all of those listed above."
8952msgstr "Heutzutage werden Repositorys gemeinhin mit Dotfiles für vielerlei Werkzeuge angereichert: @code{.envrc}, @code{.gitlab-ci.yml}, @code{.github/workflows}, @code{Dockerfile}, @code{.buildpacks}, @code{Aptfile}, @code{requirements.txt} und Weiteres. Es wirkt so, als würden wir Sie zu @emph{noch mehr} Dateien überreden, jedoch können Sie mit diesen Dateien so viel ausdrücken, dass sie die meisten oder alle der oben genannten Dateien @emph{ersetzen}." 8957msgstr "Heutzutage werden Repositorys gemeinhin mit Dotfiles für vielerlei Werkzeuge angereichert: @code{.envrc}, @code{.gitlab-ci.yml}, @code{.github/workflows}, @code{Dockerfile}, @code{.buildpacks}, @code{Aptfile}, @code{requirements.txt} und Weiteres. Es wirkt so, als würden wir Sie zu @emph{noch mehr} Dateien überreden, jedoch können Sie mit diesen Dateien so viel ausdrücken, dass sie die meisten oder alle der oben genannten Dateien @emph{ersetzen}."
8953 8958
8954#. type: Plain text 8959#. type: Plain text
8955#: doc/guix-cookbook.texi:4990 8960#: guix-git/doc/guix-cookbook.texi:4992
8956msgid "With a couple of files, we get support for:" 8961msgid "With a couple of files, we get support for:"
8957msgstr "Mit wenigen Dateien bekommen wir Unterstützung für:" 8962msgstr "Mit wenigen Dateien bekommen wir Unterstützung für:"
8958 8963
8959#. type: itemize 8964#. type: itemize
8960#: doc/guix-cookbook.texi:4994 8965#: guix-git/doc/guix-cookbook.texi:4996
8961msgid "development environments (@command{guix shell});" 8966msgid "development environments (@command{guix shell});"
8962msgstr "Entwicklungsumgebungen (@command{guix shell})," 8967msgstr "Entwicklungsumgebungen (@command{guix shell}),"
8963 8968
8964#. type: itemize 8969#. type: itemize
8965#: doc/guix-cookbook.texi:4997 8970#: guix-git/doc/guix-cookbook.texi:4999
8966msgid "pristine test builds, including for package variants and for cross-compilation (@command{guix build});" 8971msgid "pristine test builds, including for package variants and for cross-compilation (@command{guix build});"
8967msgstr "Test-Erstellungen in naturbelassener Umgebung, auch für Paketvarianten und cross-kompiliert (@command{guix build})," 8972msgstr "Test-Erstellungen in naturbelassener Umgebung, auch für Paketvarianten und cross-kompiliert (@command{guix build}),"
8968 8973
8969#. type: itemize 8974#. type: itemize
8970#: doc/guix-cookbook.texi:4999 8975#: guix-git/doc/guix-cookbook.texi:5001
8971msgid "continuous integration (with Cuirass or with some other tool);" 8976msgid "continuous integration (with Cuirass or with some other tool);"
8972msgstr "kontinuierliche Integration (ob mit Cuirass oder mit einem anderen Werkzeug)," 8977msgstr "kontinuierliche Integration (ob mit Cuirass oder mit einem anderen Werkzeug),"
8973 8978
8974#. type: itemize 8979#. type: itemize
8975#: doc/guix-cookbook.texi:5002 8980#: guix-git/doc/guix-cookbook.texi:5004
8976msgid "continuous delivery to users (@emph{via} the channel and with pre-built binaries);" 8981msgid "continuous delivery to users (@emph{via} the channel and with pre-built binaries);"
8977msgstr "kontinuierliche Auslieferung an Nutzer (über den Kanal und mit vorerstellten Binärdateien)," 8982msgstr "kontinuierliche Auslieferung an Nutzer (über den Kanal und mit vorerstellten Binärdateien),"
8978 8983
8979#. type: itemize 8984#. type: itemize
8980#: doc/guix-cookbook.texi:5005 8985#: guix-git/doc/guix-cookbook.texi:5007
8981msgid "generation of derivative build artifacts such as Docker images or Deb/RPM packages (@command{guix pack})." 8986msgid "generation of derivative build artifacts such as Docker images or Deb/RPM packages (@command{guix pack})."
8982msgstr "abgeleitete Erstellungsartefakte wie Docker-Abbildern oder Deb-/RPM-Pakete (@command{guix pack})." 8987msgstr "abgeleitete Erstellungsartefakte wie Docker-Abbildern oder Deb-/RPM-Pakete (@command{guix pack})."
8983 8988
8984#. type: Plain text 8989#. type: Plain text
8985#: doc/guix-cookbook.texi:5010 8990#: guix-git/doc/guix-cookbook.texi:5012
8986msgid "This a nice (in our view!) unified tool set for reproducible software deployment, and an illustration of how you as a developer can benefit from it!" 8991msgid "This a nice (in our view!) unified tool set for reproducible software deployment, and an illustration of how you as a developer can benefit from it!"
8987msgstr "Das ist (wie wir es sehen) ein Schweizer Taschenmesser für reproduzierbare Software-Auslieferung und diese Erklärung sollte aufgezeigt haben, welchen Nutzen Sie als Entwickler daraus gewinnen können!" 8992msgstr "Das ist (wie wir es sehen) ein Schweizer Taschenmesser für reproduzierbare Software-Auslieferung und diese Erklärung sollte aufgezeigt haben, welchen Nutzen Sie als Entwickler daraus gewinnen können!"
8988 8993
8989#. type: Plain text 8994#. type: Plain text
8990#: doc/guix-cookbook.texi:5018 8995#: guix-git/doc/guix-cookbook.texi:5020
8991msgid "Guix provides multiple tools to manage environment. This chapter demonstrate such utilities." 8996msgid "Guix provides multiple tools to manage environment. This chapter demonstrate such utilities."
8992msgstr "Guix liefert mehrere Werkzeuge mit, um die Umgebung zu verwalten. Dieses Kapitel zeigt solche Werkzeuge." 8997msgstr "Guix liefert mehrere Werkzeuge mit, um die Umgebung zu verwalten. Dieses Kapitel zeigt solche Werkzeuge."
8993 8998
8994#. type: Plain text 8999#. type: Plain text
8995#: doc/guix-cookbook.texi:5029 9000#: guix-git/doc/guix-cookbook.texi:5031
8996msgid "Guix provides a @samp{direnv} package, which could extend shell after directory change. This tool could be used to prepare a pure Guix environment." 9001msgid "Guix provides a @samp{direnv} package, which could extend shell after directory change. This tool could be used to prepare a pure Guix environment."
8997msgstr "Guix stellt ein @samp{direnv}-Paket zur Verfügung, mit der die Shell nach einem Verzeichniswechsel erweitert werden kann. Dieses Werkzeug kann benutzt werden, um eine reine, „pure“ Guix-Umgebung vorzubereiten." 9002msgstr "Guix stellt ein @samp{direnv}-Paket zur Verfügung, mit der die Shell nach einem Verzeichniswechsel erweitert werden kann. Dieses Werkzeug kann benutzt werden, um eine reine, „pure“ Guix-Umgebung vorzubereiten."
8998 9003
8999#. type: Plain text 9004#. type: Plain text
9000#: doc/guix-cookbook.texi:5035 9005#: guix-git/doc/guix-cookbook.texi:5037
9001msgid "The following example provides a shell function for @file{~/.direnvrc} file, which could be used from Guix Git repository in @file{~/src/guix/.envrc} file to setup a build environment similar to described in @pxref{Building from Git,,, guix, GNU Guix Reference Manual}." 9006msgid "The following example provides a shell function for @file{~/.direnvrc} file, which could be used from Guix Git repository in @file{~/src/guix/.envrc} file to setup a build environment similar to described in @pxref{Building from Git,,, guix, GNU Guix Reference Manual}."
9002msgstr "Das folgende Beispiel zeigt eine Shell-Funktion für die @file{~/.direnvrc}-Datei, die in einer Datei @file{~/src/guix/.envrc} in Guix’ Git-Repository benutzt werden kann, um eine zur Beschreibung im @ref{Erstellung aus dem Git,,, guix.de, Referenzhandbuch zu GNU Guix} ähnliche Erstellungsumgebung herzustellen." 9007msgstr "Das folgende Beispiel zeigt eine Shell-Funktion für die @file{~/.direnvrc}-Datei, die in einer Datei @file{~/src/guix/.envrc} in Guix’ Git-Repository benutzt werden kann, um eine zur Beschreibung im @ref{Erstellung aus dem Git,,, guix.de, Referenzhandbuch zu GNU Guix} ähnliche Erstellungsumgebung herzustellen."
9003 9008
9004#. type: Plain text 9009#. type: Plain text
9005#: doc/guix-cookbook.texi:5037 9010#: guix-git/doc/guix-cookbook.texi:5039
9006msgid "Create a @file{~/.direnvrc} with a Bash code:" 9011msgid "Create a @file{~/.direnvrc} with a Bash code:"
9007msgstr "Erstellen Sie eine @file{~/.direnvrc} mit einem Bash-Code darin:" 9012msgstr "Erstellen Sie eine @file{~/.direnvrc} mit einem Bash-Code darin:"
9008 9013
9009#. type: example 9014#. type: example
9010#: doc/guix-cookbook.texi:5055 9015#: guix-git/doc/guix-cookbook.texi:5057
9011#, no-wrap 9016#, no-wrap
9012msgid "" 9017msgid ""
9013"# Thanks <https://github.com/direnv/direnv/issues/73#issuecomment-152284914>\n" 9018"# Thanks <https://github.com/direnv/direnv/issues/73#issuecomment-152284914>\n"
@@ -9047,7 +9052,7 @@ msgstr ""
9047"\n" 9052"\n"
9048 9053
9049#. type: example 9054#. type: example
9050#: doc/guix-cookbook.texi:5060 9055#: guix-git/doc/guix-cookbook.texi:5062
9051#, no-wrap 9056#, no-wrap
9052msgid "" 9057msgid ""
9053"use_guix()\n" 9058"use_guix()\n"
@@ -9063,7 +9068,7 @@ msgstr ""
9063"\n" 9068"\n"
9064 9069
9065#. type: example 9070#. type: example
9066#: doc/guix-cookbook.texi:5063 9071#: guix-git/doc/guix-cookbook.texi:5065
9067#, no-wrap 9072#, no-wrap
9068msgid "" 9073msgid ""
9069" # Unset 'GUIX_PACKAGE_PATH'.\n" 9074" # Unset 'GUIX_PACKAGE_PATH'.\n"
@@ -9075,7 +9080,7 @@ msgstr ""
9075"\n" 9080"\n"
9076 9081
9077#. type: example 9082#. type: example
9078#: doc/guix-cookbook.texi:5072 9083#: guix-git/doc/guix-cookbook.texi:5074
9079#, no-wrap 9084#, no-wrap
9080msgid "" 9085msgid ""
9081" # Recreate a garbage collector root.\n" 9086" # Recreate a garbage collector root.\n"
@@ -9099,7 +9104,7 @@ msgstr ""
9099"\n" 9104"\n"
9100 9105
9101#. type: example 9106#. type: example
9102#: doc/guix-cookbook.texi:5087 9107#: guix-git/doc/guix-cookbook.texi:5089
9103#, no-wrap 9108#, no-wrap
9104msgid "" 9109msgid ""
9105" # Miscellaneous packages.\n" 9110" # Miscellaneous packages.\n"
@@ -9135,7 +9140,7 @@ msgstr ""
9135"\n" 9140"\n"
9136 9141
9137#. type: example 9142#. type: example
9138#: doc/guix-cookbook.texi:5090 9143#: guix-git/doc/guix-cookbook.texi:5092
9139#, no-wrap 9144#, no-wrap
9140msgid "" 9145msgid ""
9141" # Environment packages.\n" 9146" # Environment packages.\n"
@@ -9147,7 +9152,8 @@ msgstr ""
9147"\n" 9152"\n"
9148 9153
9149#. type: example 9154#. type: example
9150#: doc/guix-cookbook.texi:5094 9155#: guix-git/doc/guix-cookbook.texi:5096
9156#, no-wrap
9151msgid "" 9157msgid ""
9152" # Thanks <https://lists.gnu.org/archive/html/guix-devel/2016-09/msg00859.html>\n" 9158" # Thanks <https://lists.gnu.org/archive/html/guix-devel/2016-09/msg00859.html>\n"
9153" eval \"$(guix shell --search-paths --root=\"$gcroot\" --pure \\\n" 9159" eval \"$(guix shell --search-paths --root=\"$gcroot\" --pure \\\n"
@@ -9160,7 +9166,7 @@ msgstr ""
9160"\n" 9166"\n"
9161 9167
9162#. type: example 9168#. type: example
9163#: doc/guix-cookbook.texi:5101 9169#: guix-git/doc/guix-cookbook.texi:5103
9164#, no-wrap 9170#, no-wrap
9165msgid "" 9171msgid ""
9166" # Predefine configure flags.\n" 9172" # Predefine configure flags.\n"
@@ -9180,7 +9186,7 @@ msgstr ""
9180"\n" 9186"\n"
9181 9187
9182#. type: example 9188#. type: example
9183#: doc/guix-cookbook.texi:5112 9189#: guix-git/doc/guix-cookbook.texi:5114
9184#, no-wrap 9190#, no-wrap
9185msgid "" 9191msgid ""
9186" # Run make and optionally build something.\n" 9192" # Run make and optionally build something.\n"
@@ -9208,7 +9214,7 @@ msgstr ""
9208"\n" 9214"\n"
9209 9215
9210#. type: example 9216#. type: example
9211#: doc/guix-cookbook.texi:5119 9217#: guix-git/doc/guix-cookbook.texi:5121
9212#, no-wrap 9218#, no-wrap
9213msgid "" 9219msgid ""
9214" # Predefine push Git command.\n" 9220" # Predefine push Git command.\n"
@@ -9228,7 +9234,7 @@ msgstr ""
9228"\n" 9234"\n"
9229 9235
9230#. type: example 9236#. type: example
9231#: doc/guix-cookbook.texi:5122 9237#: guix-git/doc/guix-cookbook.texi:5124
9232#, no-wrap 9238#, no-wrap
9233msgid "" 9239msgid ""
9234" clear # Clean up the screen.\n" 9240" clear # Clean up the screen.\n"
@@ -9240,7 +9246,7 @@ msgstr ""
9240"\n" 9246"\n"
9241 9247
9242#. type: example 9248#. type: example
9243#: doc/guix-cookbook.texi:5130 9249#: guix-git/doc/guix-cookbook.texi:5132
9244#, no-wrap 9250#, no-wrap
9245msgid "" 9251msgid ""
9246" # Show commands help.\n" 9252" # Show commands help.\n"
@@ -9260,70 +9266,70 @@ msgstr ""
9260"@}\n" 9266"@}\n"
9261 9267
9262#. type: Plain text 9268#. type: Plain text
9263#: doc/guix-cookbook.texi:5134 9269#: guix-git/doc/guix-cookbook.texi:5136
9264msgid "Every project containing @file{.envrc} with a string @code{use guix} will have predefined environment variables and procedures." 9270msgid "Every project containing @file{.envrc} with a string @code{use guix} will have predefined environment variables and procedures."
9265msgstr "Jedes Projekt, das eine @file{.envrc} mit einer Zeichenkette @code{use guix} enthält, wird vordefinierte Umgebungsvariable und Prozeduren verwenden." 9271msgstr "Jedes Projekt, das eine @file{.envrc} mit einer Zeichenkette @code{use guix} enthält, wird vordefinierte Umgebungsvariable und Prozeduren verwenden."
9266 9272
9267#. type: Plain text 9273#. type: Plain text
9268#: doc/guix-cookbook.texi:5136 9274#: guix-git/doc/guix-cookbook.texi:5138
9269msgid "Run @command{direnv allow} to setup the environment for the first time." 9275msgid "Run @command{direnv allow} to setup the environment for the first time."
9270msgstr "Führen Sie @command{direnv allow} aus, um die Umgebung bei der ersten Nutzung einzurichten." 9276msgstr "Führen Sie @command{direnv allow} aus, um die Umgebung bei der ersten Nutzung einzurichten."
9271 9277
9272#. type: cindex 9278#. type: cindex
9273#: doc/guix-cookbook.texi:5142 9279#: guix-git/doc/guix-cookbook.texi:5144
9274#, no-wrap 9280#, no-wrap
9275msgid "cluster installation" 9281msgid "cluster installation"
9276msgstr "Installation auf einem Cluster" 9282msgstr "Installation auf einem Cluster"
9277 9283
9278#. type: cindex 9284#. type: cindex
9279#: doc/guix-cookbook.texi:5143 9285#: guix-git/doc/guix-cookbook.texi:5145
9280#, no-wrap 9286#, no-wrap
9281msgid "high-performance computing, HPC" 9287msgid "high-performance computing, HPC"
9282msgstr "Hochleistungsrechnen (HPC)" 9288msgstr "Hochleistungsrechnen (HPC)"
9283 9289
9284#. type: cindex 9290#. type: cindex
9285#: doc/guix-cookbook.texi:5144 9291#: guix-git/doc/guix-cookbook.texi:5146
9286#, no-wrap 9292#, no-wrap
9287msgid "HPC, high-performance computing" 9293msgid "HPC, high-performance computing"
9288msgstr "HPC, Hochleistungsrechnen" 9294msgstr "HPC, Hochleistungsrechnen"
9289 9295
9290#. type: Plain text 9296#. type: Plain text
9291#: doc/guix-cookbook.texi:5150 9297#: guix-git/doc/guix-cookbook.texi:5152
9292msgid "Guix is appealing to scientists and @acronym{HPC, high-performance computing} practitioners: it makes it easy to deploy potentially complex software stacks, and it lets you do so in a reproducible fashion---you can redeploy the exact same software on different machines and at different points in time." 9298msgid "Guix is appealing to scientists and @acronym{HPC, high-performance computing} practitioners: it makes it easy to deploy potentially complex software stacks, and it lets you do so in a reproducible fashion---you can redeploy the exact same software on different machines and at different points in time."
9293msgstr "Guix eignet sich sehr für Forscher und jene, die sich mit Hochleistungsrechnen (@acronym{HPC, High-Performance Computing}) befassen: Komplexe Software-Stacks lassen sich leicht aufspielen und deren Zusammenstellung ist auch noch reproduzierbar@tie{}– Sie können genau die gleiche Software für andere Maschinen und zu einem späteren Zeitpunkt wieder installieren." 9299msgstr "Guix eignet sich sehr für Forscher und jene, die sich mit Hochleistungsrechnen (@acronym{HPC, High-Performance Computing}) befassen: Komplexe Software-Stacks lassen sich leicht aufspielen und deren Zusammenstellung ist auch noch reproduzierbar@tie{}– Sie können genau die gleiche Software für andere Maschinen und zu einem späteren Zeitpunkt wieder installieren."
9294 9300
9295#. type: Plain text 9301#. type: Plain text
9296#: doc/guix-cookbook.texi:5156 9302#: guix-git/doc/guix-cookbook.texi:5158
9297msgid "In this chapter we look at how a cluster sysadmin can install Guix for system-wide use, such that it can be used on all the cluster nodes, and discuss the various tradeoffs@footnote{This chapter is adapted from a @uref{https://hpc.guix.info/blog/2017/11/installing-guix-on-a-cluster/, blog post published on the Guix-HPC web site in 2017}.}." 9303msgid "In this chapter we look at how a cluster sysadmin can install Guix for system-wide use, such that it can be used on all the cluster nodes, and discuss the various tradeoffs@footnote{This chapter is adapted from a @uref{https://hpc.guix.info/blog/2017/11/installing-guix-on-a-cluster/, blog post published on the Guix-HPC web site in 2017}.}."
9298msgstr "In diesem Kapitel wird erörtert, wie der Systemadministrator eines Clusters auf diesem systemweit Guix zur Verfügung stellen kann, so dass es auf allen Knoten im Cluster benutzt werden kann. Außerdem gehen wir auf mögliche Probleme ein@footnote{Das Kapitel ist eine aufgearbeitete Fassung eines @uref{https://hpc.guix.info/blog/2017/11/installing-guix-on-a-cluster/, Blog-Eintrags auf dem Guix-HPC-Webauftritt von 2017}.}." 9304msgstr "In diesem Kapitel wird erörtert, wie der Systemadministrator eines Clusters auf diesem systemweit Guix zur Verfügung stellen kann, so dass es auf allen Knoten im Cluster benutzt werden kann. Außerdem gehen wir auf mögliche Probleme ein@footnote{Das Kapitel ist eine aufgearbeitete Fassung eines @uref{https://hpc.guix.info/blog/2017/11/installing-guix-on-a-cluster/, Blog-Eintrags auf dem Guix-HPC-Webauftritt von 2017}.}."
9299 9305
9300#. type: quotation 9306#. type: quotation
9301#: doc/guix-cookbook.texi:5160 9307#: guix-git/doc/guix-cookbook.texi:5162
9302msgid "Here we assume that the cluster is running a GNU/Linux distro other than Guix System and that we are going to install Guix on top of it." 9308msgid "Here we assume that the cluster is running a GNU/Linux distro other than Guix System and that we are going to install Guix on top of it."
9303msgstr "Wir gehen hier davon aus, dass auf dem Cluster eine andere GNU/Linux-Distribution als Guix System läuft und wir Guix auf dieser installieren werden." 9309msgstr "Wir gehen hier davon aus, dass auf dem Cluster eine andere GNU/Linux-Distribution als Guix System läuft und wir Guix auf dieser installieren werden."
9304 9310
9305#. type: Plain text 9311#. type: Plain text
9306#: doc/guix-cookbook.texi:5176 9312#: guix-git/doc/guix-cookbook.texi:5178
9307msgid "The recommended approach is to set up one @emph{head node} running @command{guix-daemon} and exporting @file{/gnu/store} over NFS to compute nodes." 9313msgid "The recommended approach is to set up one @emph{head node} running @command{guix-daemon} and exporting @file{/gnu/store} over NFS to compute nodes."
9308msgstr "Unsere Empfehlung ist, eine Maschine zum Zentralrechner zu ernennen (als „Head Node“) und auf dieser @command{guix-daemon} auszuführen, wobei @file{/gnu/store} über NFS mit den Arbeitsrechnern („Compute Nodes“) geteilt wird." 9314msgstr "Unsere Empfehlung ist, eine Maschine zum Zentralrechner zu ernennen (als „Head Node“) und auf dieser @command{guix-daemon} auszuführen, wobei @file{/gnu/store} über NFS mit den Arbeitsrechnern („Compute Nodes“) geteilt wird."
9309 9315
9310#. type: Plain text 9316#. type: Plain text
9311#: doc/guix-cookbook.texi:5186 9317#: guix-git/doc/guix-cookbook.texi:5188
9312msgid "Remember that @command{guix-daemon} is responsible for spawning build processes and downloads on behalf of clients (@pxref{Invoking guix-daemon,,, guix, GNU Guix Reference Manual}), and more generally accessing @file{/gnu/store}, which contains all the package binaries built by all the users (@pxref{The Store,,, guix, GNU Guix Reference Manual}). ``Client'' here refers to all the Guix commands that users see, such as @code{guix install}. On a cluster, these commands may be running on the compute nodes and we'll want them to talk to the head node's @code{guix-daemon} instance." 9318msgid "Remember that @command{guix-daemon} is responsible for spawning build processes and downloads on behalf of clients (@pxref{Invoking guix-daemon,,, guix, GNU Guix Reference Manual}), and more generally accessing @file{/gnu/store}, which contains all the package binaries built by all the users (@pxref{The Store,,, guix, GNU Guix Reference Manual}). ``Client'' here refers to all the Guix commands that users see, such as @code{guix install}. On a cluster, these commands may be running on the compute nodes and we'll want them to talk to the head node's @code{guix-daemon} instance."
9313msgstr "Zur Erinnerung: @command{guix-daemon} ist das Hintergrundprogramm, mit dem für Clients Erstellungsprozesse angelegt und Dateien heruntergeladen werden können (siehe @ref{Aufruf des guix-daemon,,, guix.de, Referenzhandbuch zu GNU Guix}), und das allgemein auf @file{/gnu/store} zugreift. Dort liegen dann alle Paket-Binärdateien, die irgendeiner der Nutzer erstellen lassen hat (siehe @ref{Der Store,,, guix.de, Referenzhandbuch zu GNU Guix}). Mit „Clients“ meinen wir die Guix-Befehle, die Benutzer aufgerufen haben, wie etwa @code{guix install}. Auf einem Cluster können diese Befehle auf den Arbeitsrechnern aufgerufen werden und dennoch werden wir sie mit der zentralen @code{guix-daemon}-Instanz sprechen lassen." 9319msgstr "Zur Erinnerung: @command{guix-daemon} ist das Hintergrundprogramm, mit dem für Clients Erstellungsprozesse angelegt und Dateien heruntergeladen werden können (siehe @ref{Aufruf des guix-daemon,,, guix.de, Referenzhandbuch zu GNU Guix}), und das allgemein auf @file{/gnu/store} zugreift. Dort liegen dann alle Paket-Binärdateien, die irgendeiner der Nutzer erstellen lassen hat (siehe @ref{Der Store,,, guix.de, Referenzhandbuch zu GNU Guix}). Mit „Clients“ meinen wir die Guix-Befehle, die Benutzer aufgerufen haben, wie etwa @code{guix install}. Auf einem Cluster können diese Befehle auf den Arbeitsrechnern aufgerufen werden und dennoch werden wir sie mit der zentralen @code{guix-daemon}-Instanz sprechen lassen."
9314 9320
9315#. type: Plain text 9321#. type: Plain text
9316#: doc/guix-cookbook.texi:5191 9322#: guix-git/doc/guix-cookbook.texi:5193
9317msgid "To begin with, the head node can be installed following the usual binary installation instructions (@pxref{Binary Installation,,, guix, GNU Guix Reference Manual}). Thanks to the installation script, this should be quick. Once installation is complete, we need to make some adjustments." 9323msgid "To begin with, the head node can be installed following the usual binary installation instructions (@pxref{Binary Installation,,, guix, GNU Guix Reference Manual}). Thanks to the installation script, this should be quick. Once installation is complete, we need to make some adjustments."
9318msgstr "Legen wir los. Für den Anfang folgen wir auf dem Zentralrechner der Anleitung zur Installation aus einer Binärdatei (siehe @ref{Aus Binärdatei installieren,,, guix.de, Referenzhandbuch zu GNU Guix}). Zum Glück gibt es das Installationsskript, so dass das schnell gehen dürfte. Wenn die Installation dann abgeschlossen ist, müssen wir daran Anpassungen vornehmen." 9324msgstr "Legen wir los. Für den Anfang folgen wir auf dem Zentralrechner der Anleitung zur Installation aus einer Binärdatei (siehe @ref{Aus Binärdatei installieren,,, guix.de, Referenzhandbuch zu GNU Guix}). Zum Glück gibt es das Installationsskript, so dass das schnell gehen dürfte. Wenn die Installation dann abgeschlossen ist, müssen wir daran Anpassungen vornehmen."
9319 9325
9320#. type: Plain text 9326#. type: Plain text
9321#: doc/guix-cookbook.texi:5199 9327#: guix-git/doc/guix-cookbook.texi:5201
9322msgid "Since we want @code{guix-daemon} to be reachable not just from the head node but also from the compute nodes, we need to arrange so that it listens for connections over TCP/IP. To do that, we'll edit the systemd startup file for @command{guix-daemon}, @file{/etc/systemd/system/guix-daemon.service}, and add a @code{--listen} argument to the @code{ExecStart} line so that it looks something like this:" 9328msgid "Since we want @code{guix-daemon} to be reachable not just from the head node but also from the compute nodes, we need to arrange so that it listens for connections over TCP/IP. To do that, we'll edit the systemd startup file for @command{guix-daemon}, @file{/etc/systemd/system/guix-daemon.service}, and add a @code{--listen} argument to the @code{ExecStart} line so that it looks something like this:"
9323msgstr "Weil wir möchten, dass @code{guix-daemon} @emph{nicht} nur auf dem Zentralrechner zugänglich ist, sondern von jedem der Arbeitsrechner erreicht wird, richten wir es so ein, dass er auf Verbindungen über TCP/IP lauscht. Dazu bearbeiten wir die systemd-Datei zum Start von @command{guix-daemon}, @file{/etc/systemd/system/guix-daemon.service}, und fügen ein Argument @code{--listen} zur @code{ExecStart}-Zeile hinzu. Diese sieht jetzt ungefähr so aus:" 9329msgstr "Weil wir möchten, dass @code{guix-daemon} @emph{nicht} nur auf dem Zentralrechner zugänglich ist, sondern von jedem der Arbeitsrechner erreicht wird, richten wir es so ein, dass er auf Verbindungen über TCP/IP lauscht. Dazu bearbeiten wir die systemd-Datei zum Start von @command{guix-daemon}, @file{/etc/systemd/system/guix-daemon.service}, und fügen ein Argument @code{--listen} zur @code{ExecStart}-Zeile hinzu. Diese sieht jetzt ungefähr so aus:"
9324 9330
9325#. type: example 9331#. type: example
9326#: doc/guix-cookbook.texi:5208 9332#: guix-git/doc/guix-cookbook.texi:5210
9327#, no-wrap 9333#, no-wrap
9328msgid "" 9334msgid ""
9329"ExecStart=/var/guix/profiles/per-user/root/current-guix/bin/guix-daemon \\\n" 9335"ExecStart=/var/guix/profiles/per-user/root/current-guix/bin/guix-daemon \\\n"
@@ -9335,18 +9341,18 @@ msgstr ""
9335" --listen=/var/guix/daemon-socket/socket --listen=0.0.0.0\n" 9341" --listen=/var/guix/daemon-socket/socket --listen=0.0.0.0\n"
9336 9342
9337#. type: example 9343#. type: example
9338#: doc/guix-cookbook.texi:5213 9344#: guix-git/doc/guix-cookbook.texi:5215
9339#, no-wrap 9345#, no-wrap
9340msgid "ExecStart=/var/guix/profiles/per-user/root/current-guix/bin/guix-daemon --build-users-group=guixbuild --listen=/var/guix/daemon-socket/socket --listen=0.0.0.0\n" 9346msgid "ExecStart=/var/guix/profiles/per-user/root/current-guix/bin/guix-daemon --build-users-group=guixbuild --listen=/var/guix/daemon-socket/socket --listen=0.0.0.0\n"
9341msgstr "ExecStart=/var/guix/profiles/per-user/root/current-guix/bin/guix-daemon --build-users-group=guixbuild --listen=/var/guix/daemon-socket/socket --listen=0.0.0.0\n" 9347msgstr "ExecStart=/var/guix/profiles/per-user/root/current-guix/bin/guix-daemon --build-users-group=guixbuild --listen=/var/guix/daemon-socket/socket --listen=0.0.0.0\n"
9342 9348
9343#. type: Plain text 9349#. type: Plain text
9344#: doc/guix-cookbook.texi:5217 9350#: guix-git/doc/guix-cookbook.texi:5219
9345msgid "For these changes to take effect, the service needs to be restarted:" 9351msgid "For these changes to take effect, the service needs to be restarted:"
9346msgstr "Die Änderungen wirken sich erst aus, wenn der Dienst neu gestartet wurde:" 9352msgstr "Die Änderungen wirken sich erst aus, wenn der Dienst neu gestartet wurde:"
9347 9353
9348#. type: example 9354#. type: example
9349#: doc/guix-cookbook.texi:5221 9355#: guix-git/doc/guix-cookbook.texi:5223
9350#, no-wrap 9356#, no-wrap
9351msgid "" 9357msgid ""
9352"systemctl daemon-reload\n" 9358"systemctl daemon-reload\n"
@@ -9356,17 +9362,17 @@ msgstr ""
9356"systemctl restart guix-daemon\n" 9362"systemctl restart guix-daemon\n"
9357 9363
9358#. type: quotation 9364#. type: quotation
9359#: doc/guix-cookbook.texi:5230 9365#: guix-git/doc/guix-cookbook.texi:5232
9360msgid "The @code{--listen=0.0.0.0} bit means that @code{guix-daemon} will process @emph{all} incoming TCP connections on port 44146 (@pxref{Invoking guix-daemon,,, guix, GNU Guix Reference Manual}). This is usually fine in a cluster setup where the head node is reachable exclusively from the cluster's local area network---you don't want that to be exposed to the Internet!" 9366msgid "The @code{--listen=0.0.0.0} bit means that @code{guix-daemon} will process @emph{all} incoming TCP connections on port 44146 (@pxref{Invoking guix-daemon,,, guix, GNU Guix Reference Manual}). This is usually fine in a cluster setup where the head node is reachable exclusively from the cluster's local area network---you don't want that to be exposed to the Internet!"
9361msgstr "Mit @code{--listen=0.0.0.0} ist gemeint, dass @code{guix-daemon} @emph{alle} auf Port 44146 eingehenden TCP-Verbindungen annimmt (siehe @ref{Aufruf des guix-daemon,,, guix.de, Referenzhandbuch zu GNU Guix}). Das ist normalerweise auf Rechen-Clustern in Ordnung, weil der Zentralrechner für gewöhnlich ausschließlich vom lokalen Netzwerk des Clusters aus erreichbar ist@tie{}– unter keinen Umständen darf er für das gesamte Internet zugänglich sein!" 9367msgstr "Mit @code{--listen=0.0.0.0} ist gemeint, dass @code{guix-daemon} @emph{alle} auf Port 44146 eingehenden TCP-Verbindungen annimmt (siehe @ref{Aufruf des guix-daemon,,, guix.de, Referenzhandbuch zu GNU Guix}). Das ist normalerweise auf Rechen-Clustern in Ordnung, weil der Zentralrechner für gewöhnlich ausschließlich vom lokalen Netzwerk des Clusters aus erreichbar ist@tie{}– unter keinen Umständen darf er für das gesamte Internet zugänglich sein!"
9362 9368
9363#. type: Plain text 9369#. type: Plain text
9364#: doc/guix-cookbook.texi:5235 9370#: guix-git/doc/guix-cookbook.texi:5237
9365msgid "The next step is to define our NFS exports in @uref{https://linux.die.net/man/5/exports,@file{/etc/exports}} by adding something along these lines:" 9371msgid "The next step is to define our NFS exports in @uref{https://linux.die.net/man/5/exports,@file{/etc/exports}} by adding something along these lines:"
9366msgstr "Als Nächstes müssen wir unsere NFS-Freigaben in @uref{https://linux.die.net/man/5/exports,@file{/etc/exports}} definieren. Dazu fügen wir etwas wie hier hinzu:" 9372msgstr "Als Nächstes müssen wir unsere NFS-Freigaben in @uref{https://linux.die.net/man/5/exports,@file{/etc/exports}} definieren. Dazu fügen wir etwas wie hier hinzu:"
9367 9373
9368#. type: example 9374#. type: example
9369#: doc/guix-cookbook.texi:5240 9375#: guix-git/doc/guix-cookbook.texi:5242
9370#, no-wrap 9376#, no-wrap
9371msgid "" 9377msgid ""
9372"/gnu/store *(ro)\n" 9378"/gnu/store *(ro)\n"
@@ -9378,33 +9384,33 @@ msgstr ""
9378"/var/log/guix *(ro)\n" 9384"/var/log/guix *(ro)\n"
9379 9385
9380#. type: Plain text 9386#. type: Plain text
9381#: doc/guix-cookbook.texi:5247 9387#: guix-git/doc/guix-cookbook.texi:5249
9382msgid "The @file{/gnu/store} directory can be exported read-only since only @command{guix-daemon} on the master node will ever modify it. @file{/var/guix} contains @emph{user profiles} as managed by @code{guix package}; thus, to allow users to install packages with @code{guix package}, this must be read-write." 9388msgid "The @file{/gnu/store} directory can be exported read-only since only @command{guix-daemon} on the master node will ever modify it. @file{/var/guix} contains @emph{user profiles} as managed by @code{guix package}; thus, to allow users to install packages with @code{guix package}, this must be read-write."
9383msgstr "Es genügt, das Verzeichnis @file{/gnu/store} nur lesbar zu exportieren, weil es nur durch @command{guix-daemon} auf dem Hauptknoten jemals verändert wird. In @file{/var/guix} befinden sich @emph{Benutzerprofile}, die man mit @command{guix package} anlegen kann. Damit Benutzer also Pakete mit @command{guix package} installieren können, muss Lese- und Schreibzugriff ermöglicht werden." 9389msgstr "Es genügt, das Verzeichnis @file{/gnu/store} nur lesbar zu exportieren, weil es nur durch @command{guix-daemon} auf dem Hauptknoten jemals verändert wird. In @file{/var/guix} befinden sich @emph{Benutzerprofile}, die man mit @command{guix package} anlegen kann. Damit Benutzer also Pakete mit @command{guix package} installieren können, muss Lese- und Schreibzugriff ermöglicht werden."
9384 9390
9385#. type: Plain text 9391#. type: Plain text
9386#: doc/guix-cookbook.texi:5257 9392#: guix-git/doc/guix-cookbook.texi:5259
9387msgid "Users can create as many profiles as they like in addition to the default profile, @file{~/.guix-profile}. For instance, @code{guix package -p ~/dev/python-dev -i python} installs Python in a profile reachable from the @code{~/dev/python-dev} symlink. To make sure that this profile is protected from garbage collection---i.e., that Python will not be removed from @file{/gnu/store} while this profile exists---, @emph{home directories should be mounted on the head node} as well so that @code{guix-daemon} knows about these non-standard profiles and avoids collecting software they refer to." 9393msgid "Users can create as many profiles as they like in addition to the default profile, @file{~/.guix-profile}. For instance, @code{guix package -p ~/dev/python-dev -i python} installs Python in a profile reachable from the @code{~/dev/python-dev} symlink. To make sure that this profile is protected from garbage collection---i.e., that Python will not be removed from @file{/gnu/store} while this profile exists---, @emph{home directories should be mounted on the head node} as well so that @code{guix-daemon} knows about these non-standard profiles and avoids collecting software they refer to."
9388msgstr "Nutzer können so viele Profile anlegen, wie sie möchten, zusätzlich zum Standardprofil, @file{~/.guix-profile}. Zum Beispiel bekommt jemand, die @code{guix package -p ~/dev/python-dev -i python} ausführt, Python in einem Profil installiert, das über die symbolische Verknüpfung @code{~/dev/python-dev} erreichbar ist. Damit dieses Profil @emph{nicht} irgendwann vom Müllsammler weggeräumt wird@tie{}– d.h.@: damit Python nicht aus @file{/gnu/store} entfernt wird, solange dieses Profil existiert@tie{}–, @emph{müssen die Persönlichen Verzeichnisse in @file{/home} auch auf dem Zentralrechner eingebunden sein}. Wir wollen, dass @code{guix-daemon} über solche Nicht-Standard-Profile weiß, dass die darin referenzierte Software noch gebraucht wird." 9394msgstr "Nutzer können so viele Profile anlegen, wie sie möchten, zusätzlich zum Standardprofil, @file{~/.guix-profile}. Zum Beispiel bekommt jemand, die @code{guix package -p ~/dev/python-dev -i python} ausführt, Python in einem Profil installiert, das über die symbolische Verknüpfung @code{~/dev/python-dev} erreichbar ist. Damit dieses Profil @emph{nicht} irgendwann vom Müllsammler weggeräumt wird@tie{}– d.h.@: damit Python nicht aus @file{/gnu/store} entfernt wird, solange dieses Profil existiert@tie{}–, @emph{müssen die Persönlichen Verzeichnisse in @file{/home} auch auf dem Zentralrechner eingebunden sein}. Wir wollen, dass @code{guix-daemon} über solche Nicht-Standard-Profile weiß, dass die darin referenzierte Software noch gebraucht wird."
9389 9395
9390#. type: Plain text 9396#. type: Plain text
9391#: doc/guix-cookbook.texi:5262 9397#: guix-git/doc/guix-cookbook.texi:5264
9392msgid "It may be a good idea to periodically remove unused bits from @file{/gnu/store} by running @command{guix gc} (@pxref{Invoking guix gc,,, guix, GNU Guix Reference Manual}). This can be done by adding a crontab entry on the head node:" 9398msgid "It may be a good idea to periodically remove unused bits from @file{/gnu/store} by running @command{guix gc} (@pxref{Invoking guix gc,,, guix, GNU Guix Reference Manual}). This can be done by adding a crontab entry on the head node:"
9393msgstr "Es kann allerdings sinnvoll sein, Software die @emph{nicht} gebraucht wird, regelmäßig aus @file{/gnu/store} zu löschen. Verwenden Sie dazu @command{guix gc} (siehe @ref{Aufruf von guix gc,,, guix.de, Referenzhandbuch zu GNU Guix}). Dazu können Sie so einen crontab-Eintrag auf dem Zentralknoten vornehmen:" 9399msgstr "Es kann allerdings sinnvoll sein, Software die @emph{nicht} gebraucht wird, regelmäßig aus @file{/gnu/store} zu löschen. Verwenden Sie dazu @command{guix gc} (siehe @ref{Aufruf von guix gc,,, guix.de, Referenzhandbuch zu GNU Guix}). Dazu können Sie so einen crontab-Eintrag auf dem Zentralknoten vornehmen:"
9394 9400
9395#. type: example 9401#. type: example
9396#: doc/guix-cookbook.texi:5265 9402#: guix-git/doc/guix-cookbook.texi:5267
9397#, no-wrap 9403#, no-wrap
9398msgid "root@@master# crontab -e\n" 9404msgid "root@@master# crontab -e\n"
9399msgstr "root@@master# crontab -e\n" 9405msgstr "root@@master# crontab -e\n"
9400 9406
9401#. type: Plain text 9407#. type: Plain text
9402#: doc/guix-cookbook.texi:5269 9408#: guix-git/doc/guix-cookbook.texi:5271
9403msgid "... with something like this:" 9409msgid "... with something like this:"
9404msgstr "… und schreiben Sie etwa:" 9410msgstr "… und schreiben Sie etwa:"
9405 9411
9406#. type: example 9412#. type: example
9407#: doc/guix-cookbook.texi:5274 9413#: guix-git/doc/guix-cookbook.texi:5276
9408#, no-wrap 9414#, no-wrap
9409msgid "" 9415msgid ""
9410"# Every day at 5AM, run the garbage collector to make sure\n" 9416"# Every day at 5AM, run the garbage collector to make sure\n"
@@ -9416,17 +9422,17 @@ msgstr ""
9416"0 5 * * 1 /usr/local/bin/guix gc -F10G\n" 9422"0 5 * * 1 /usr/local/bin/guix gc -F10G\n"
9417 9423
9418#. type: Plain text 9424#. type: Plain text
9419#: doc/guix-cookbook.texi:5277 9425#: guix-git/doc/guix-cookbook.texi:5279
9420msgid "We're done with the head node! Let's look at compute nodes now." 9426msgid "We're done with the head node! Let's look at compute nodes now."
9421msgstr "So viel zum Zentralrechner! Jetzt geht’s an die Arbeitsknoten." 9427msgstr "So viel zum Zentralrechner! Jetzt geht’s an die Arbeitsknoten."
9422 9428
9423#. type: Plain text 9429#. type: Plain text
9424#: doc/guix-cookbook.texi:5284 9430#: guix-git/doc/guix-cookbook.texi:5286
9425msgid "First of all, we need compute nodes to mount those NFS directories that the head node exports. This can be done by adding the following lines to @uref{https://linux.die.net/man/5/fstab,@file{/etc/fstab}}:" 9431msgid "First of all, we need compute nodes to mount those NFS directories that the head node exports. This can be done by adding the following lines to @uref{https://linux.die.net/man/5/fstab,@file{/etc/fstab}}:"
9426msgstr "Zunächst einmal müssen die Arbeitsknoten auch die NFS-Verzeichnisse einbinden, die vom Zentralrechner angeboten werden. Dafür müssen die folgenden Zeilen in @uref{https://linux.die.net/man/5/fstab,@file{/etc/fstab}} hinzugefügt werden:" 9432msgstr "Zunächst einmal müssen die Arbeitsknoten auch die NFS-Verzeichnisse einbinden, die vom Zentralrechner angeboten werden. Dafür müssen die folgenden Zeilen in @uref{https://linux.die.net/man/5/fstab,@file{/etc/fstab}} hinzugefügt werden:"
9427 9433
9428#. type: example 9434#. type: example
9429#: doc/guix-cookbook.texi:5289 9435#: guix-git/doc/guix-cookbook.texi:5291
9430#, no-wrap 9436#, no-wrap
9431msgid "" 9437msgid ""
9432"@var{head-node}:/gnu/store /gnu/store nfs defaults,_netdev,vers=3 0 0\n" 9438"@var{head-node}:/gnu/store /gnu/store nfs defaults,_netdev,vers=3 0 0\n"
@@ -9438,17 +9444,17 @@ msgstr ""
9438"@var{zentralrechner}:/var/log/guix /var/log/guix nfs defaults,_netdev,vers=3 0 0\n" 9444"@var{zentralrechner}:/var/log/guix /var/log/guix nfs defaults,_netdev,vers=3 0 0\n"
9439 9445
9440#. type: Plain text 9446#. type: Plain text
9441#: doc/guix-cookbook.texi:5295 9447#: guix-git/doc/guix-cookbook.texi:5297
9442msgid "... where @var{head-node} is the name or IP address of your head node. From there on, assuming the mount points exist, you should be able to mount each of these on the compute nodes." 9448msgid "... where @var{head-node} is the name or IP address of your head node. From there on, assuming the mount points exist, you should be able to mount each of these on the compute nodes."
9443msgstr "… wobei Sie anstelle von @var{zentralrechner} den Namen oder die IP-Adresse Ihres Zentralrechners hinterlegen. Von da an sollten Sie diese Verzeichnisse, wenn die Einhängepunkte auch existieren, jeweils auf den Arbeitsknoten einbinden können." 9449msgstr "… wobei Sie anstelle von @var{zentralrechner} den Namen oder die IP-Adresse Ihres Zentralrechners hinterlegen. Von da an sollten Sie diese Verzeichnisse, wenn die Einhängepunkte auch existieren, jeweils auf den Arbeitsknoten einbinden können."
9444 9450
9445#. type: Plain text 9451#. type: Plain text
9446#: doc/guix-cookbook.texi:5301 9452#: guix-git/doc/guix-cookbook.texi:5303
9447msgid "Next, we need to provide a default @command{guix} command that users can run when they first connect to the cluster (eventually they will invoke @command{guix pull}, which will provide them with their ``own'' @command{guix} command). Similar to what the binary installation script did on the head node, we'll store that in @file{/usr/local/bin}:" 9453msgid "Next, we need to provide a default @command{guix} command that users can run when they first connect to the cluster (eventually they will invoke @command{guix pull}, which will provide them with their ``own'' @command{guix} command). Similar to what the binary installation script did on the head node, we'll store that in @file{/usr/local/bin}:"
9448msgstr "Zudem müssen wir unseren Benutzern einen @command{guix}-Befehl vorinstallieren, den sie verwenden können, wenn sie sich zum ersten Mal mit dem Cluster verbinden (damit werden sie @command{guix pull} aufrufen, wodurch ihnen ihr „eigener“ @command{guix}-Befehl zur Verfügung gestellt wird). Analog zum Installationsskript der Guix-Binärdatei auf dem Zentralrechner werden wir unser @command{guix} ebenfalls in @file{/usr/local/bin} unterbringen:" 9454msgstr "Zudem müssen wir unseren Benutzern einen @command{guix}-Befehl vorinstallieren, den sie verwenden können, wenn sie sich zum ersten Mal mit dem Cluster verbinden (damit werden sie @command{guix pull} aufrufen, wodurch ihnen ihr „eigener“ @command{guix}-Befehl zur Verfügung gestellt wird). Analog zum Installationsskript der Guix-Binärdatei auf dem Zentralrechner werden wir unser @command{guix} ebenfalls in @file{/usr/local/bin} unterbringen:"
9449 9455
9450#. type: example 9456#. type: example
9451#: doc/guix-cookbook.texi:5306 9457#: guix-git/doc/guix-cookbook.texi:5308
9452#, no-wrap 9458#, no-wrap
9453msgid "" 9459msgid ""
9454"mkdir -p /usr/local/bin\n" 9460"mkdir -p /usr/local/bin\n"
@@ -9460,12 +9466,12 @@ msgstr ""
9460" /usr/local/bin/guix\n" 9466" /usr/local/bin/guix\n"
9461 9467
9462#. type: Plain text 9468#. type: Plain text
9463#: doc/guix-cookbook.texi:5310 9469#: guix-git/doc/guix-cookbook.texi:5312
9464msgid "We then need to tell @code{guix} to talk to the daemon running on our master node, by adding these lines to @code{/etc/profile}:" 9470msgid "We then need to tell @code{guix} to talk to the daemon running on our master node, by adding these lines to @code{/etc/profile}:"
9465msgstr "Wir müssen dafür sorgen, dass sich @code{guix} mit dem Daemon auf dem Zentralrechner verbindet, indem wir diese Zeilen zu @code{/etc/profile} hinzufügen:" 9471msgstr "Wir müssen dafür sorgen, dass sich @code{guix} mit dem Daemon auf dem Zentralrechner verbindet, indem wir diese Zeilen zu @code{/etc/profile} hinzufügen:"
9466 9472
9467#. type: example 9473#. type: example
9468#: doc/guix-cookbook.texi:5314 9474#: guix-git/doc/guix-cookbook.texi:5316
9469#, no-wrap 9475#, no-wrap
9470msgid "" 9476msgid ""
9471"GUIX_DAEMON_SOCKET=\"guix://@var{head-node}\"\n" 9477"GUIX_DAEMON_SOCKET=\"guix://@var{head-node}\"\n"
@@ -9475,12 +9481,12 @@ msgstr ""
9475"export GUIX_DAEMON_SOCKET\n" 9481"export GUIX_DAEMON_SOCKET\n"
9476 9482
9477#. type: Plain text 9483#. type: Plain text
9478#: doc/guix-cookbook.texi:5319 9484#: guix-git/doc/guix-cookbook.texi:5321
9479msgid "To avoid warnings and make sure @code{guix} uses the right locale, we need to tell it to use locale data provided by Guix (@pxref{Application Setup,,, guix, GNU Guix Reference Manual}):" 9485msgid "To avoid warnings and make sure @code{guix} uses the right locale, we need to tell it to use locale data provided by Guix (@pxref{Application Setup,,, guix, GNU Guix Reference Manual}):"
9480msgstr "Damit unseren Benutzern keine Warnungen angezeigt werden und damit @code{guix} die richtigen Locale-Spracheinstellungen benutzen kann, müssen wir angeben, wo die von Guix bereitgestellten Locale-Daten zu finden sind (siehe @ref{Anwendungen einrichten,,, guix.de, Referenzhandbuch zu GNU Guix}):" 9486msgstr "Damit unseren Benutzern keine Warnungen angezeigt werden und damit @code{guix} die richtigen Locale-Spracheinstellungen benutzen kann, müssen wir angeben, wo die von Guix bereitgestellten Locale-Daten zu finden sind (siehe @ref{Anwendungen einrichten,,, guix.de, Referenzhandbuch zu GNU Guix}):"
9481 9487
9482#. type: example 9488#. type: example
9483#: doc/guix-cookbook.texi:5323 9489#: guix-git/doc/guix-cookbook.texi:5325
9484#, no-wrap 9490#, no-wrap
9485msgid "" 9491msgid ""
9486"GUIX_LOCPATH=/var/guix/profiles/per-user/root/guix-profile/lib/locale\n" 9492"GUIX_LOCPATH=/var/guix/profiles/per-user/root/guix-profile/lib/locale\n"
@@ -9492,7 +9498,7 @@ msgstr ""
9492"\n" 9498"\n"
9493 9499
9494#. type: example 9500#. type: example
9495#: doc/guix-cookbook.texi:5328 9501#: guix-git/doc/guix-cookbook.texi:5330
9496#, no-wrap 9502#, no-wrap
9497msgid "" 9503msgid ""
9498"# Here we must use a valid locale name. Try \"ls $GUIX_LOCPATH/*\"\n" 9504"# Here we must use a valid locale name. Try \"ls $GUIX_LOCPATH/*\"\n"
@@ -9506,12 +9512,12 @@ msgstr ""
9506"export LC_ALL\n" 9512"export LC_ALL\n"
9507 9513
9508#. type: Plain text 9514#. type: Plain text
9509#: doc/guix-cookbook.texi:5336 9515#: guix-git/doc/guix-cookbook.texi:5338
9510msgid "For convenience, @code{guix package} automatically generates @file{~/.guix-profile/etc/profile}, which defines all the environment variables necessary to use the packages---@code{PATH}, @code{C_INCLUDE_PATH}, @code{PYTHONPATH}, etc. Likewise, @command{guix pull} does that under @file{~/.config/guix/current}. Thus it's a good idea to source both from @code{/etc/profile}:" 9516msgid "For convenience, @code{guix package} automatically generates @file{~/.guix-profile/etc/profile}, which defines all the environment variables necessary to use the packages---@code{PATH}, @code{C_INCLUDE_PATH}, @code{PYTHONPATH}, etc. Likewise, @command{guix pull} does that under @file{~/.config/guix/current}. Thus it's a good idea to source both from @code{/etc/profile}:"
9511msgstr "Um die Nutzung zu vereinfachen, legt @code{guix package} selbstständig die Datei @file{~/.guix-profile/etc/profile} an, worin alle Umgebungsvariablen definiert sind, um die Pakete zu benutzen@tie{}– @code{PATH}, @code{C_INCLUDE_PATH}, @code{PYTHONPATH}, etc. Das Gleiche gilt für @command{guix pull}, was eine Datei innerhalb von @file{~/.config/guix/current} anlegt. Diese Definitionen sollten Sie daher in @code{/etc/profile} mit @code{source} laden lassen:" 9517msgstr "Um die Nutzung zu vereinfachen, legt @code{guix package} selbstständig die Datei @file{~/.guix-profile/etc/profile} an, worin alle Umgebungsvariablen definiert sind, um die Pakete zu benutzen@tie{}– @code{PATH}, @code{C_INCLUDE_PATH}, @code{PYTHONPATH}, etc. Das Gleiche gilt für @command{guix pull}, was eine Datei innerhalb von @file{~/.config/guix/current} anlegt. Diese Definitionen sollten Sie daher in @code{/etc/profile} mit @code{source} laden lassen:"
9512 9518
9513#. type: example 9519#. type: example
9514#: doc/guix-cookbook.texi:5344 9520#: guix-git/doc/guix-cookbook.texi:5346
9515#, no-wrap 9521#, no-wrap
9516msgid "" 9522msgid ""
9517"for GUIX_PROFILE in \"$HOME/.config/guix/current\" \"$HOME/.guix-profile\"\n" 9523"for GUIX_PROFILE in \"$HOME/.config/guix/current\" \"$HOME/.guix-profile\"\n"
@@ -9529,65 +9535,65 @@ msgstr ""
9529"done\n" 9535"done\n"
9530 9536
9531#. type: Plain text 9537#. type: Plain text
9532#: doc/guix-cookbook.texi:5348 9538#: guix-git/doc/guix-cookbook.texi:5350
9533msgid "Last but not least, Guix provides command-line completion notably for Bash and zsh. In @code{/etc/bashrc}, consider adding this line:" 9539msgid "Last but not least, Guix provides command-line completion notably for Bash and zsh. In @code{/etc/bashrc}, consider adding this line:"
9534msgstr "Zu guter Letzt können Guix-Befehle durch Bash und zsh ergänzt werden. In @code{/etc/bashrc} fügen Sie dazu diese Zeile hinzu:" 9540msgstr "Zu guter Letzt können Guix-Befehle durch Bash und zsh ergänzt werden. In @code{/etc/bashrc} fügen Sie dazu diese Zeile hinzu:"
9535 9541
9536#. type: verbatim 9542#. type: verbatim
9537#: doc/guix-cookbook.texi:5351 9543#: guix-git/doc/guix-cookbook.texi:5353
9538#, no-wrap 9544#, no-wrap
9539msgid ". /var/guix/profiles/per-user/root/current-guix/etc/bash_completion.d/guix\n" 9545msgid ". /var/guix/profiles/per-user/root/current-guix/etc/bash_completion.d/guix\n"
9540msgstr ". /var/guix/profiles/per-user/root/current-guix/etc/bash_completion.d/guix\n" 9546msgstr ". /var/guix/profiles/per-user/root/current-guix/etc/bash_completion.d/guix\n"
9541 9547
9542#. type: Plain text 9548#. type: Plain text
9543#: doc/guix-cookbook.texi:5354 9549#: guix-git/doc/guix-cookbook.texi:5356
9544msgid "Voilà!" 9550msgid "Voilà!"
9545msgstr "Erledigt!" 9551msgstr "Erledigt!"
9546 9552
9547#. type: Plain text 9553#. type: Plain text
9548#: doc/guix-cookbook.texi:5357 9554#: guix-git/doc/guix-cookbook.texi:5359
9549msgid "You can check that everything's in place by logging in on a compute node and running:" 9555msgid "You can check that everything's in place by logging in on a compute node and running:"
9550msgstr "Überprüfen Sie, dass alles klappt, indem Sie sich auf einem der Arbeitsrechner anmelden und dies ausführen:" 9556msgstr "Überprüfen Sie, dass alles klappt, indem Sie sich auf einem der Arbeitsrechner anmelden und dies ausführen:"
9551 9557
9552#. type: example 9558#. type: example
9553#: doc/guix-cookbook.texi:5360 9559#: guix-git/doc/guix-cookbook.texi:5362
9554#, no-wrap 9560#, no-wrap
9555msgid "guix install hello\n" 9561msgid "guix install hello\n"
9556msgstr "guix install hello\n" 9562msgstr "guix install hello\n"
9557 9563
9558#. type: Plain text 9564#. type: Plain text
9559#: doc/guix-cookbook.texi:5366 9565#: guix-git/doc/guix-cookbook.texi:5368
9560msgid "The daemon on the head node should download pre-built binaries on your behalf and unpack them in @file{/gnu/store}, and @command{guix install} should create @file{~/.guix-profile} containing the @file{~/.guix-profile/bin/hello} command." 9566msgid "The daemon on the head node should download pre-built binaries on your behalf and unpack them in @file{/gnu/store}, and @command{guix install} should create @file{~/.guix-profile} containing the @file{~/.guix-profile/bin/hello} command."
9561msgstr "Daraufhin sollte der Daemon auf dem Zentralrechner für Sie die vorerstellten Binärdateien herunterladen und nach @file{/gnu/store} entpacken, wonach @command{guix install} dann @file{~/.guix-profile} anlegt und darin wird der Befehl @file{~/.guix-profile/bin/hello} zu finden sein." 9567msgstr "Daraufhin sollte der Daemon auf dem Zentralrechner für Sie die vorerstellten Binärdateien herunterladen und nach @file{/gnu/store} entpacken, wonach @command{guix install} dann @file{~/.guix-profile} anlegt und darin wird der Befehl @file{~/.guix-profile/bin/hello} zu finden sein."
9562 9568
9563#. type: section 9569#. type: section
9564#: doc/guix-cookbook.texi:5368 9570#: guix-git/doc/guix-cookbook.texi:5370
9565#, no-wrap 9571#, no-wrap
9566msgid "Network Access" 9572msgid "Network Access"
9567msgstr "Netzwerkzugriff" 9573msgstr "Netzwerkzugriff"
9568 9574
9569#. type: Plain text 9575#. type: Plain text
9570#: doc/guix-cookbook.texi:5373 9576#: guix-git/doc/guix-cookbook.texi:5375
9571msgid "Guix requires network access to download source code and pre-built binaries. The good news is that only the head node needs that since compute nodes simply delegate to it." 9577msgid "Guix requires network access to download source code and pre-built binaries. The good news is that only the head node needs that since compute nodes simply delegate to it."
9572msgstr "Guix setzt voraus, dass Netzwerkzugriff besteht, um Quellcode und vorerstellte Binärdateien herunterzuladen. Die gute Nachricht ist, dass nur der Zentralrechner Netzwerkzugriff braucht, weil die Arbeitsrechner an diesen delegieren." 9578msgstr "Guix setzt voraus, dass Netzwerkzugriff besteht, um Quellcode und vorerstellte Binärdateien herunterzuladen. Die gute Nachricht ist, dass nur der Zentralrechner Netzwerkzugriff braucht, weil die Arbeitsrechner an diesen delegieren."
9573 9579
9574#. type: Plain text 9580#. type: Plain text
9575#: doc/guix-cookbook.texi:5379 9581#: guix-git/doc/guix-cookbook.texi:5381
9576msgid "It is customary for cluster nodes to have access at best to a @emph{white list} of hosts. Our head node needs at least @code{ci.guix.gnu.org} in this white list since this is where it gets pre-built binaries from by default, for all the packages that are in Guix proper." 9582msgid "It is customary for cluster nodes to have access at best to a @emph{white list} of hosts. Our head node needs at least @code{ci.guix.gnu.org} in this white list since this is where it gets pre-built binaries from by default, for all the packages that are in Guix proper."
9577msgstr "Üblicherweise haben Knoten im Cluster höchstens Zugriff auf eine ausgesuchte „Positivliste“ erlaubter Kommunikationspartner. Für den Zentralrechner muss zumindest @code{ci.guix.gnu.org} auf dieser Positivliste stehen, denn von dort stammen in der Vorgabeeinstellung die vorerstellten Binärdateien für alle Pakete, die das eigentliche Guix kennt." 9583msgstr "Üblicherweise haben Knoten im Cluster höchstens Zugriff auf eine ausgesuchte „Positivliste“ erlaubter Kommunikationspartner. Für den Zentralrechner muss zumindest @code{ci.guix.gnu.org} auf dieser Positivliste stehen, denn von dort stammen in der Vorgabeeinstellung die vorerstellten Binärdateien für alle Pakete, die das eigentliche Guix kennt."
9578 9584
9579#. type: Plain text 9585#. type: Plain text
9580#: doc/guix-cookbook.texi:5384 9586#: guix-git/doc/guix-cookbook.texi:5386
9581msgid "Incidentally, @code{ci.guix.gnu.org} also serves as a @emph{content-addressed mirror} of the source code of those packages. Consequently, it is sufficient to have @emph{only} @code{ci.guix.gnu.org} in that white list." 9587msgid "Incidentally, @code{ci.guix.gnu.org} also serves as a @emph{content-addressed mirror} of the source code of those packages. Consequently, it is sufficient to have @emph{only} @code{ci.guix.gnu.org} in that white list."
9582msgstr "Nebenbei ist @code{ci.guix.gnu.org} außerdem ein inhaltsadressierbarer Spiegelserver für die Quelldateien all dieser Pakete. Daher ist es ausreichend, wenn Sie @emph{nur} @code{ci.guix.gnu.org} auf die Positivliste setzen." 9588msgstr "Nebenbei ist @code{ci.guix.gnu.org} außerdem ein inhaltsadressierbarer Spiegelserver für die Quelldateien all dieser Pakete. Daher ist es ausreichend, wenn Sie @emph{nur} @code{ci.guix.gnu.org} auf die Positivliste setzen."
9583 9589
9584#. type: Plain text 9590#. type: Plain text
9585#: doc/guix-cookbook.texi:5393 9591#: guix-git/doc/guix-cookbook.texi:5395
9586msgid "Software packages maintained in a separate repository such as one of the various @uref{https://hpc.guix.info/channels, HPC channels} are of course unavailable from @code{ci.guix.gnu.org}. For these packages, you may want to extend the white list such that source and pre-built binaries (assuming this-party servers provide binaries for these packages) can be downloaded. As a last resort, users can always download source on their workstation and add it to the cluster's @file{/gnu/store}, like this:" 9592msgid "Software packages maintained in a separate repository such as one of the various @uref{https://hpc.guix.info/channels, HPC channels} are of course unavailable from @code{ci.guix.gnu.org}. For these packages, you may want to extend the white list such that source and pre-built binaries (assuming this-party servers provide binaries for these packages) can be downloaded. As a last resort, users can always download source on their workstation and add it to the cluster's @file{/gnu/store}, like this:"
9587msgstr "Software-Pakete, die in einem getrennten Repository angeboten werden wie beispielsweise den @uref{https://hpc.guix.info/channels, HPC-Kanälen}, können natürlich nicht von @code{ci.guix.gnu.org} bezogen werden. Für diese Pakete möchten Sie unter Umständen weitere Server auf die Positivliste setzen, von denen für die fremden Pakete Quell- und Binärdateien heruntergeladen werden können (vorausgesetzt jemand stellt vorerstellte Binärdateien für sie zur Verfügung). Wenn nicht, können Benutzer als Ausweg auch den Quellcode auf ihre Workstations herunterladen und dann in @file{/gnu/store} auf dem Cluster hochladen. Das geht so:" 9593msgstr "Software-Pakete, die in einem getrennten Repository angeboten werden wie beispielsweise den @uref{https://hpc.guix.info/channels, HPC-Kanälen}, können natürlich nicht von @code{ci.guix.gnu.org} bezogen werden. Für diese Pakete möchten Sie unter Umständen weitere Server auf die Positivliste setzen, von denen für die fremden Pakete Quell- und Binärdateien heruntergeladen werden können (vorausgesetzt jemand stellt vorerstellte Binärdateien für sie zur Verfügung). Wenn nicht, können Benutzer als Ausweg auch den Quellcode auf ihre Workstations herunterladen und dann in @file{/gnu/store} auf dem Cluster hochladen. Das geht so:"
9588 9594
9589#. type: verbatim 9595#. type: verbatim
9590#: doc/guix-cookbook.texi:5397 9596#: guix-git/doc/guix-cookbook.texi:5399
9591#, no-wrap 9597#, no-wrap
9592msgid "" 9598msgid ""
9593"GUIX_DAEMON_SOCKET=ssh://compute-node.example.org \\\n" 9599"GUIX_DAEMON_SOCKET=ssh://compute-node.example.org \\\n"
@@ -9597,17 +9603,17 @@ msgstr ""
9597" guix download http://starpu.gforge.inria.fr/files/starpu-1.2.3/starpu-1.2.3.tar.gz\n" 9603" guix download http://starpu.gforge.inria.fr/files/starpu-1.2.3/starpu-1.2.3.tar.gz\n"
9598 9604
9599#. type: Plain text 9605#. type: Plain text
9600#: doc/guix-cookbook.texi:5401 9606#: guix-git/doc/guix-cookbook.texi:5403
9601msgid "The above command downloads @code{starpu-1.2.3.tar.gz} @emph{and} sends it to the cluster's @code{guix-daemon} instance over SSH." 9607msgid "The above command downloads @code{starpu-1.2.3.tar.gz} @emph{and} sends it to the cluster's @code{guix-daemon} instance over SSH."
9602msgstr "Der obige Befehl lädt @code{starpu-1.2.3.tar.gz} herunter @emph{und} lässt es über SSH durch die @code{guix-daemon}-Instanz auf dem Cluster speichern." 9608msgstr "Der obige Befehl lädt @code{starpu-1.2.3.tar.gz} herunter @emph{und} lässt es über SSH durch die @code{guix-daemon}-Instanz auf dem Cluster speichern."
9603 9609
9604#. type: Plain text 9610#. type: Plain text
9605#: doc/guix-cookbook.texi:5408 9611#: guix-git/doc/guix-cookbook.texi:5410
9606msgid "Air-gapped clusters require more work. At the moment, our suggestion would be to download all the necessary source code on a workstation running Guix. For instance, using the @option{--sources} option of @command{guix build} (@pxref{Invoking guix build,,, guix, GNU Guix Reference Manual}), the example below downloads all the source code the @code{openmpi} package depends on:" 9612msgid "Air-gapped clusters require more work. At the moment, our suggestion would be to download all the necessary source code on a workstation running Guix. For instance, using the @option{--sources} option of @command{guix build} (@pxref{Invoking guix build,,, guix, GNU Guix Reference Manual}), the example below downloads all the source code the @code{openmpi} package depends on:"
9607msgstr "Wenn Ihr Cluster gänzlich von der Außenwelt abgeschnitten ist („air-gapped“), ist es aufwendiger. In diesem Fall würden wir dazu raten, dass sie sämtlichen nötigen Quellcode auf eine Workstation herunterladen, auf der Guix läuft. Dafür gibt es zum Beispiel die Befehlszeilenoption @option{--sources} für @command{guix build} (siehe @ref{Aufruf von guix build,,, guix.de, Referenzhandbuch zu GNU Guix}); folgendes Beispiel zeigt, wie Sie sämtlichen Quellcode, von dem das @code{openmpi}-Paket abhängt, herunterladen:" 9613msgstr "Wenn Ihr Cluster gänzlich von der Außenwelt abgeschnitten ist („air-gapped“), ist es aufwendiger. In diesem Fall würden wir dazu raten, dass sie sämtlichen nötigen Quellcode auf eine Workstation herunterladen, auf der Guix läuft. Dafür gibt es zum Beispiel die Befehlszeilenoption @option{--sources} für @command{guix build} (siehe @ref{Aufruf von guix build,,, guix.de, Referenzhandbuch zu GNU Guix}); folgendes Beispiel zeigt, wie Sie sämtlichen Quellcode, von dem das @code{openmpi}-Paket abhängt, herunterladen:"
9608 9614
9609#. type: example 9615#. type: example
9610#: doc/guix-cookbook.texi:5411 9616#: guix-git/doc/guix-cookbook.texi:5413
9611#, no-wrap 9617#, no-wrap
9612msgid "" 9618msgid ""
9613"$ guix build --sources=transitive openmpi\n" 9619"$ guix build --sources=transitive openmpi\n"
@@ -9617,7 +9623,7 @@ msgstr ""
9617"\n" 9623"\n"
9618 9624
9619#. type: example 9625#. type: example
9620#: doc/guix-cookbook.texi:5413 9626#: guix-git/doc/guix-cookbook.texi:5415
9621#, no-wrap 9627#, no-wrap
9622msgid "" 9628msgid ""
9623"@dots{}\n" 9629"@dots{}\n"
@@ -9627,7 +9633,7 @@ msgstr ""
9627"\n" 9633"\n"
9628 9634
9629#. type: example 9635#. type: example
9630#: doc/guix-cookbook.texi:5425 9636#: guix-git/doc/guix-cookbook.texi:5427
9631#, no-wrap 9637#, no-wrap
9632msgid "" 9638msgid ""
9633"/gnu/store/xc17sm60fb8nxadc4qy0c7rqph499z8s-openmpi-1.10.7.tar.bz2\n" 9639"/gnu/store/xc17sm60fb8nxadc4qy0c7rqph499z8s-openmpi-1.10.7.tar.bz2\n"
@@ -9655,17 +9661,17 @@ msgstr ""
9655"…\n" 9661"…\n"
9656 9662
9657#. type: Plain text 9663#. type: Plain text
9658#: doc/guix-cookbook.texi:5429 9664#: guix-git/doc/guix-cookbook.texi:5431
9659msgid "(In case you're wondering, that's more than 320@ MiB of @emph{compressed} source code.)" 9665msgid "(In case you're wondering, that's more than 320@ MiB of @emph{compressed} source code.)"
9660msgstr "(Wenn Sie es genauer wissen wollen, haben wir hier mehr als 320@ MiB @emph{komprimierten} Quellcodes.)" 9666msgstr "(Wenn Sie es genauer wissen wollen, haben wir hier mehr als 320@ MiB @emph{komprimierten} Quellcodes.)"
9661 9667
9662#. type: Plain text 9668#. type: Plain text
9663#: doc/guix-cookbook.texi:5432 9669#: guix-git/doc/guix-cookbook.texi:5434
9664msgid "We can then make a big archive containing all of this (@pxref{Invoking guix archive,,, guix, GNU Guix Reference Manual}):" 9670msgid "We can then make a big archive containing all of this (@pxref{Invoking guix archive,,, guix, GNU Guix Reference Manual}):"
9665msgstr "Daraus lässt sich ein gesammeltes Archiv für all den Quellcode basteln (siehe @ref{Aufruf von guix archive,,, guix.de, Referenzhandbuch zu GNU Guix}):" 9671msgstr "Daraus lässt sich ein gesammeltes Archiv für all den Quellcode basteln (siehe @ref{Aufruf von guix archive,,, guix.de, Referenzhandbuch zu GNU Guix}):"
9666 9672
9667#. type: verbatim 9673#. type: verbatim
9668#: doc/guix-cookbook.texi:5437 9674#: guix-git/doc/guix-cookbook.texi:5439
9669#, no-wrap 9675#, no-wrap
9670msgid "" 9676msgid ""
9671"$ guix archive --export \\\n" 9677"$ guix archive --export \\\n"
@@ -9677,71 +9683,71 @@ msgstr ""
9677" > openmpi-quellcode.nar\n" 9683" > openmpi-quellcode.nar\n"
9678 9684
9679#. type: Plain text 9685#. type: Plain text
9680#: doc/guix-cookbook.texi:5441 9686#: guix-git/doc/guix-cookbook.texi:5443
9681msgid "@dots{} and we can eventually transfer that archive to the cluster on removable storage and unpack it there:" 9687msgid "@dots{} and we can eventually transfer that archive to the cluster on removable storage and unpack it there:"
9682msgstr "… und dieses Archiv können wir dann mittels Wechseldatenträgern auf den Cluster transportieren und dort entpacken:" 9688msgstr "… und dieses Archiv können wir dann mittels Wechseldatenträgern auf den Cluster transportieren und dort entpacken:"
9683 9689
9684#. type: verbatim 9690#. type: verbatim
9685#: doc/guix-cookbook.texi:5444 9691#: guix-git/doc/guix-cookbook.texi:5446
9686#, no-wrap 9692#, no-wrap
9687msgid "$ guix archive --import < openmpi-source-code.nar\n" 9693msgid "$ guix archive --import < openmpi-source-code.nar\n"
9688msgstr "$ guix archive --import < openmpi-quellcode.nar\n" 9694msgstr "$ guix archive --import < openmpi-quellcode.nar\n"
9689 9695
9690#. type: Plain text 9696#. type: Plain text
9691#: doc/guix-cookbook.texi:5448 9697#: guix-git/doc/guix-cookbook.texi:5450
9692msgid "This process has to be repeated every time new source code needs to be brought to the cluster." 9698msgid "This process has to be repeated every time new source code needs to be brought to the cluster."
9693msgstr "Wiederholen Sie diesen Vorgang, wann immer Sie neuen Quellcode auf den Cluster schaffen müssen." 9699msgstr "Wiederholen Sie diesen Vorgang, wann immer Sie neuen Quellcode auf den Cluster schaffen müssen."
9694 9700
9695#. type: Plain text 9701#. type: Plain text
9696#: doc/guix-cookbook.texi:5452 9702#: guix-git/doc/guix-cookbook.texi:5454
9697msgid "As we write this, the research institutes involved in Guix-HPC do not have air-gapped clusters though. If you have experience with such setups, we would like to hear feedback and suggestions." 9703msgid "As we write this, the research institutes involved in Guix-HPC do not have air-gapped clusters though. If you have experience with such setups, we would like to hear feedback and suggestions."
9698msgstr "Wir schreiben das, aber zum jetzigen Zeitpunkt haben die Forschungsinstitute, die mit Guix-HPC arbeiten, gar keinen Cluster mit Air Gap. Wenn Sie Erfahrung damit haben, freuen wir uns über Rückmeldungen und Vorschläge." 9704msgstr "Wir schreiben das, aber zum jetzigen Zeitpunkt haben die Forschungsinstitute, die mit Guix-HPC arbeiten, gar keinen Cluster mit Air Gap. Wenn Sie Erfahrung damit haben, freuen wir uns über Rückmeldungen und Vorschläge."
9699 9705
9700#. type: section 9706#. type: section
9701#: doc/guix-cookbook.texi:5454 9707#: guix-git/doc/guix-cookbook.texi:5456
9702#, no-wrap 9708#, no-wrap
9703msgid "Disk Usage" 9709msgid "Disk Usage"
9704msgstr "Speicherplatz" 9710msgstr "Speicherplatz"
9705 9711
9706#. type: cindex 9712#. type: cindex
9707#: doc/guix-cookbook.texi:5456 9713#: guix-git/doc/guix-cookbook.texi:5458
9708#, no-wrap 9714#, no-wrap
9709msgid "disk usage, on a cluster" 9715msgid "disk usage, on a cluster"
9710msgstr "Speicherplatz, auf einem Cluster" 9716msgstr "Speicherplatz, auf einem Cluster"
9711 9717
9712#. type: Plain text 9718#. type: Plain text
9713#: doc/guix-cookbook.texi:5463 9719#: guix-git/doc/guix-cookbook.texi:5465
9714msgid "A common concern of sysadmins' is whether this is all going to eat a lot of disk space. If anything, if something is going to exhaust disk space, it's going to be scientific data sets rather than compiled software---that's our experience with almost ten years of Guix usage on HPC clusters. Nevertheless, it's worth taking a look at how Guix contributes to disk usage." 9720msgid "A common concern of sysadmins' is whether this is all going to eat a lot of disk space. If anything, if something is going to exhaust disk space, it's going to be scientific data sets rather than compiled software---that's our experience with almost ten years of Guix usage on HPC clusters. Nevertheless, it's worth taking a look at how Guix contributes to disk usage."
9715msgstr "Systemadministratoren sind oft besorgt, ob Guix nicht Unmengen an Plattenplatz verschlingen wird. Aber wenn überhaupt, werden wissenschaftliche Datensätze und nicht kompilierte Software die Speicherplatzfresser sein@tie{}– unserer Erfahrung nach, da wir schon fast zehn Jahre lang Guix auf HPC-Clustern betreiben. Trotzdem lohnt sich ein Blick, wie Guix zum Speicherplatzverbrauch beiträgt." 9721msgstr "Systemadministratoren sind oft besorgt, ob Guix nicht Unmengen an Plattenplatz verschlingen wird. Aber wenn überhaupt, werden wissenschaftliche Datensätze und nicht kompilierte Software die Speicherplatzfresser sein@tie{}– unserer Erfahrung nach, da wir schon fast zehn Jahre lang Guix auf HPC-Clustern betreiben. Trotzdem lohnt sich ein Blick, wie Guix zum Speicherplatzverbrauch beiträgt."
9716 9722
9717#. type: Plain text 9723#. type: Plain text
9718#: doc/guix-cookbook.texi:5468 9724#: guix-git/doc/guix-cookbook.texi:5470
9719msgid "First, having several versions or variants of a given package in @file{/gnu/store} does not necessarily cost much, because @command{guix-daemon} implements deduplication of identical files, and package variants are likely to have a number of common files." 9725msgid "First, having several versions or variants of a given package in @file{/gnu/store} does not necessarily cost much, because @command{guix-daemon} implements deduplication of identical files, and package variants are likely to have a number of common files."
9720msgstr "Zunächst einmal kostet es @emph{nicht} unbedingt viel, wenn mehrere Versionen oder Varianten eines bestimmten Pakets in @file{/gnu/store} liegen, weil @command{guix-daemon} gleiche Dateien dedupliziert und weil Paketvarianten in der Regel viele Dateien gemeinsam haben." 9726msgstr "Zunächst einmal kostet es @emph{nicht} unbedingt viel, wenn mehrere Versionen oder Varianten eines bestimmten Pakets in @file{/gnu/store} liegen, weil @command{guix-daemon} gleiche Dateien dedupliziert und weil Paketvarianten in der Regel viele Dateien gemeinsam haben."
9721 9727
9722#. type: Plain text 9728#. type: Plain text
9723#: doc/guix-cookbook.texi:5475 9729#: guix-git/doc/guix-cookbook.texi:5477
9724msgid "As mentioned above, we recommend having a cron job to run @code{guix gc} periodically, which removes @emph{unused} software from @file{/gnu/store}. However, there's always a possibility that users will keep lots of software in their profiles, or lots of old generations of their profiles, which is ``live'' and cannot be deleted from the viewpoint of @command{guix gc}." 9730msgid "As mentioned above, we recommend having a cron job to run @code{guix gc} periodically, which removes @emph{unused} software from @file{/gnu/store}. However, there's always a possibility that users will keep lots of software in their profiles, or lots of old generations of their profiles, which is ``live'' and cannot be deleted from the viewpoint of @command{guix gc}."
9725msgstr "Dann ist es, wie oben beschrieben, unsere Empfehlung, mit einem „Cron-Job“ regelmäßig @code{guix gc} aufzurufen, was @emph{nicht benutzte} Software aus @file{/gnu/store} löscht. Dennoch kann es sein, dass Benutzer eine ganze Menge Software in ihren Profilen übrig lassen oder dass sie viele alte Generationen ihrer Profile horten, die dann „lebendig“ sind und aus Sicht von @command{guix gc} @emph{nicht} gelöscht werden dürfen." 9731msgstr "Dann ist es, wie oben beschrieben, unsere Empfehlung, mit einem „Cron-Job“ regelmäßig @code{guix gc} aufzurufen, was @emph{nicht benutzte} Software aus @file{/gnu/store} löscht. Dennoch kann es sein, dass Benutzer eine ganze Menge Software in ihren Profilen übrig lassen oder dass sie viele alte Generationen ihrer Profile horten, die dann „lebendig“ sind und aus Sicht von @command{guix gc} @emph{nicht} gelöscht werden dürfen."
9726 9732
9727#. type: Plain text 9733#. type: Plain text
9728#: doc/guix-cookbook.texi:5479 9734#: guix-git/doc/guix-cookbook.texi:5481
9729msgid "The solution to this is for users to regularly remove old generations of their profile. For instance, the following command removes generations that are more than two-month old:" 9735msgid "The solution to this is for users to regularly remove old generations of their profile. For instance, the following command removes generations that are more than two-month old:"
9730msgstr "Die Lösung besteht darin, dass Nutzer die alten Generationen ihrer Profile regelmäßig entfernen. Zum Beispiel werden mit folgendem Befehl alle Generationen entfernt, die älter als zwei Monate sind:" 9736msgstr "Die Lösung besteht darin, dass Nutzer die alten Generationen ihrer Profile regelmäßig entfernen. Zum Beispiel werden mit folgendem Befehl alle Generationen entfernt, die älter als zwei Monate sind:"
9731 9737
9732#. type: example 9738#. type: example
9733#: doc/guix-cookbook.texi:5482 9739#: guix-git/doc/guix-cookbook.texi:5484
9734#, no-wrap 9740#, no-wrap
9735msgid "guix package --delete-generations=2m\n" 9741msgid "guix package --delete-generations=2m\n"
9736msgstr "guix package --delete-generations=2m\n" 9742msgstr "guix package --delete-generations=2m\n"
9737 9743
9738#. type: Plain text 9744#. type: Plain text
9739#: doc/guix-cookbook.texi:5487 9745#: guix-git/doc/guix-cookbook.texi:5489
9740msgid "Likewise, it's a good idea to invite users to regularly upgrade their profile, which can reduce the number of variants of a given piece of software stored in @file{/gnu/store}:" 9746msgid "Likewise, it's a good idea to invite users to regularly upgrade their profile, which can reduce the number of variants of a given piece of software stored in @file{/gnu/store}:"
9741msgstr "Ebenso ist es eine gute Idee, den Nutzern nahezulegen, dass sie ihre Profile regelmäßig auf den neuesten Stand aktualisieren, weil dann weniger Varianten einer Software in @file{/gnu/store} bleiben müssen:" 9747msgstr "Ebenso ist es eine gute Idee, den Nutzern nahezulegen, dass sie ihre Profile regelmäßig auf den neuesten Stand aktualisieren, weil dann weniger Varianten einer Software in @file{/gnu/store} bleiben müssen:"
9742 9748
9743#. type: example 9749#. type: example
9744#: doc/guix-cookbook.texi:5491 9750#: guix-git/doc/guix-cookbook.texi:5493
9745#, no-wrap 9751#, no-wrap
9746msgid "" 9752msgid ""
9747"guix pull\n" 9753"guix pull\n"
@@ -9751,76 +9757,76 @@ msgstr ""
9751"guix upgrade\n" 9757"guix upgrade\n"
9752 9758
9753#. type: Plain text 9759#. type: Plain text
9754#: doc/guix-cookbook.texi:5497 9760#: guix-git/doc/guix-cookbook.texi:5499
9755msgid "As a last resort, it is always possible for sysadmins to do some of this on behalf of their users. Nevertheless, one of the strengths of Guix is the freedom and control users get on their software environment, so we strongly recommend leaving users in control." 9761msgid "As a last resort, it is always possible for sysadmins to do some of this on behalf of their users. Nevertheless, one of the strengths of Guix is the freedom and control users get on their software environment, so we strongly recommend leaving users in control."
9756msgstr "Notfalls können Systemadministratoren die Profile teilweise anstelle der Nutzer bereinigen. Das widerspricht allerdings einem Vorteil von Guix, dass Benutzer viel Freiheit und Kontrolle über ihre Software-Umgebungen bekommen. Wir empfehlen deutlich, die Kontrolle bei den Benutzern zu lassen." 9762msgstr "Notfalls können Systemadministratoren die Profile teilweise anstelle der Nutzer bereinigen. Das widerspricht allerdings einem Vorteil von Guix, dass Benutzer viel Freiheit und Kontrolle über ihre Software-Umgebungen bekommen. Wir empfehlen deutlich, die Kontrolle bei den Benutzern zu lassen."
9757 9763
9758#. type: section 9764#. type: section
9759#: doc/guix-cookbook.texi:5499 9765#: guix-git/doc/guix-cookbook.texi:5501
9760#, no-wrap 9766#, no-wrap
9761msgid "Security Considerations" 9767msgid "Security Considerations"
9762msgstr "Sicherheitsüberlegungen" 9768msgstr "Sicherheitsüberlegungen"
9763 9769
9764#. type: cindex 9770#. type: cindex
9765#: doc/guix-cookbook.texi:5501 9771#: guix-git/doc/guix-cookbook.texi:5503
9766#, no-wrap 9772#, no-wrap
9767msgid "security, on a cluster" 9773msgid "security, on a cluster"
9768msgstr "Sicherheit, auf einem Cluster" 9774msgstr "Sicherheit, auf einem Cluster"
9769 9775
9770#. type: Plain text 9776#. type: Plain text
9771#: doc/guix-cookbook.texi:5506 9777#: guix-git/doc/guix-cookbook.texi:5508
9772msgid "On an HPC cluster, Guix is typically used to manage scientific software. Security-critical software such as the operating system kernel and system services such as @code{sshd} and the batch scheduler remain under control of sysadmins." 9778msgid "On an HPC cluster, Guix is typically used to manage scientific software. Security-critical software such as the operating system kernel and system services such as @code{sshd} and the batch scheduler remain under control of sysadmins."
9773msgstr "Auf einem Hochleistungs-Cluster wird mit Guix normalerweise wissenschaftliche Software verwaltet. Über sicherheitskritische Software wie den Betriebssystem-Kernel und Systemdienste wie @code{sshd} und „Batch“-Auftragsplaner haben weiterhin die Systemadministratoren die Kontrolle." 9779msgstr "Auf einem Hochleistungs-Cluster wird mit Guix normalerweise wissenschaftliche Software verwaltet. Über sicherheitskritische Software wie den Betriebssystem-Kernel und Systemdienste wie @code{sshd} und „Batch“-Auftragsplaner haben weiterhin die Systemadministratoren die Kontrolle."
9774 9780
9775#. type: Plain text 9781#. type: Plain text
9776#: doc/guix-cookbook.texi:5511 9782#: guix-git/doc/guix-cookbook.texi:5513
9777msgid "The Guix project has a good track record delivering security updates in a timely fashion (@pxref{Security Updates,,, guix, GNU Guix Reference Manual}). To get security updates, users have to run @code{guix pull && guix upgrade}." 9783msgid "The Guix project has a good track record delivering security updates in a timely fashion (@pxref{Security Updates,,, guix, GNU Guix Reference Manual}). To get security updates, users have to run @code{guix pull && guix upgrade}."
9778msgstr "Das Guix-Projekt kümmert sich zügig um Sicherheitsaktualisierungen (siehe @ref{Sicherheitsaktualisierungen,,, guix.de, Referenzhandbuch zu GNU Guix}). Um die Sicherheitsaktualisierungen zu bekommen, müssen Nutzer @command{guix pull && guix upgrade} ausführen." 9784msgstr "Das Guix-Projekt kümmert sich zügig um Sicherheitsaktualisierungen (siehe @ref{Sicherheitsaktualisierungen,,, guix.de, Referenzhandbuch zu GNU Guix}). Um die Sicherheitsaktualisierungen zu bekommen, müssen Nutzer @command{guix pull && guix upgrade} ausführen."
9779 9785
9780#. type: Plain text 9786#. type: Plain text
9781#: doc/guix-cookbook.texi:5517 9787#: guix-git/doc/guix-cookbook.texi:5519
9782msgid "Because Guix uniquely identifies software variants, it is easy to see if a vulnerable piece of software is in use. For instance, to check whether the glibc@ 2.25 variant without the mitigation patch against ``@uref{https://www.qualys.com/2017/06/19/stack-clash/stack-clash.txt,Stack Clash}'', one can check whether user profiles refer to it at all:" 9788msgid "Because Guix uniquely identifies software variants, it is easy to see if a vulnerable piece of software is in use. For instance, to check whether the glibc@ 2.25 variant without the mitigation patch against ``@uref{https://www.qualys.com/2017/06/19/stack-clash/stack-clash.txt,Stack Clash}'', one can check whether user profiles refer to it at all:"
9783msgstr "Weil in Guix Software-Varianten eine eindeutige Bezeichnung haben, lässt es sich einfach überprüfen, ob jemand eine von Schwachstellen betroffene Software verwendet. Zum Beispiel kann man für die Variante von glibc@ 2.25, die den Patch zur Behebung der Sicherheitslücke namens „@uref{https://www.qualys.com/2017/06/19/stack-clash/stack-clash.txt,Stack Clash}“ noch nicht hat, prüfen, ob sie überhaupt in einem Benutzerprofil verwendet wird:" 9789msgstr "Weil in Guix Software-Varianten eine eindeutige Bezeichnung haben, lässt es sich einfach überprüfen, ob jemand eine von Schwachstellen betroffene Software verwendet. Zum Beispiel kann man für die Variante von glibc@ 2.25, die den Patch zur Behebung der Sicherheitslücke namens „@uref{https://www.qualys.com/2017/06/19/stack-clash/stack-clash.txt,Stack Clash}“ noch nicht hat, prüfen, ob sie überhaupt in einem Benutzerprofil verwendet wird:"
9784 9790
9785#. type: example 9791#. type: example
9786#: doc/guix-cookbook.texi:5520 9792#: guix-git/doc/guix-cookbook.texi:5522
9787#, no-wrap 9793#, no-wrap
9788msgid "guix gc --referrers /gnu/store/…-glibc-2.25\n" 9794msgid "guix gc --referrers /gnu/store/…-glibc-2.25\n"
9789msgstr "guix gc --referrers /gnu/store/…-glibc-2.25\n" 9795msgstr "guix gc --referrers /gnu/store/…-glibc-2.25\n"
9790 9796
9791#. type: Plain text 9797#. type: Plain text
9792#: doc/guix-cookbook.texi:5524 9798#: guix-git/doc/guix-cookbook.texi:5526
9793msgid "This will report whether profiles exist that refer to this specific glibc variant." 9799msgid "This will report whether profiles exist that refer to this specific glibc variant."
9794msgstr "Dadurch werden Profile gemeldet, die diese bestimmte glibc-Variante verwenden." 9800msgstr "Dadurch werden Profile gemeldet, die diese bestimmte glibc-Variante verwenden."
9795 9801
9796#. type: Plain text 9802#. type: Plain text
9797#: doc/guix-cookbook.texi:5537 9803#: guix-git/doc/guix-cookbook.texi:5539
9798msgid "Guix is based on the @uref{https://nixos.org/nix/, Nix package manager}, which was designed and implemented by Eelco Dolstra, with contributions from other people (see the @file{nix/AUTHORS} file in Guix.) Nix pioneered functional package management, and promoted unprecedented features, such as transactional package upgrades and rollbacks, per-user profiles, and referentially transparent build processes. Without this work, Guix would not exist." 9804msgid "Guix is based on the @uref{https://nixos.org/nix/, Nix package manager}, which was designed and implemented by Eelco Dolstra, with contributions from other people (see the @file{nix/AUTHORS} file in Guix.) Nix pioneered functional package management, and promoted unprecedented features, such as transactional package upgrades and rollbacks, per-user profiles, and referentially transparent build processes. Without this work, Guix would not exist."
9799msgstr "Guix baut auf dem @uref{https://nixos.org/nix/, Nix-Paketverwaltungsprogramm} auf, das von Eelco Dolstra entworfen und entwickelt wurde, mit Beiträgen von anderen Leuten (siehe die Datei @file{nix/AUTHORS} in Guix). Nix hat für die funktionale Paketverwaltung die Pionierarbeit geleistet und noch nie dagewesene Funktionalitäten vorangetrieben wie transaktionsbasierte Paketaktualisierungen und die Rücksetzbarkeit selbiger, eigene Paketprofile für jeden Nutzer und referenziell transparente Erstellungsprozesse. Ohne diese Arbeit gäbe es Guix nicht.<" 9805msgstr "Guix baut auf dem @uref{https://nixos.org/nix/, Nix-Paketverwaltungsprogramm} auf, das von Eelco Dolstra entworfen und entwickelt wurde, mit Beiträgen von anderen Leuten (siehe die Datei @file{nix/AUTHORS} in Guix). Nix hat für die funktionale Paketverwaltung die Pionierarbeit geleistet und noch nie dagewesene Funktionalitäten vorangetrieben wie transaktionsbasierte Paketaktualisierungen und die Rücksetzbarkeit selbiger, eigene Paketprofile für jeden Nutzer und referenziell transparente Erstellungsprozesse. Ohne diese Arbeit gäbe es Guix nicht.<"
9800 9806
9801#. type: Plain text 9807#. type: Plain text
9802#: doc/guix-cookbook.texi:5540 9808#: guix-git/doc/guix-cookbook.texi:5542
9803msgid "The Nix-based software distributions, Nixpkgs and NixOS, have also been an inspiration for Guix." 9809msgid "The Nix-based software distributions, Nixpkgs and NixOS, have also been an inspiration for Guix."
9804msgstr "Die Nix-basierten Software-Distributionen Nixpkgs und NixOS waren auch eine Inspiration für Guix." 9810msgstr "Die Nix-basierten Software-Distributionen Nixpkgs und NixOS waren auch eine Inspiration für Guix."
9805 9811
9806#. type: Plain text 9812#. type: Plain text
9807#: doc/guix-cookbook.texi:5546 9813#: guix-git/doc/guix-cookbook.texi:5548
9808msgid "GNU@tie{}Guix itself is a collective work with contributions from a number of people. See the @file{AUTHORS} file in Guix for more information on these fine people. The @file{THANKS} file lists people who have helped by reporting bugs, taking care of the infrastructure, providing artwork and themes, making suggestions, and more---thank you!" 9814msgid "GNU@tie{}Guix itself is a collective work with contributions from a number of people. See the @file{AUTHORS} file in Guix for more information on these fine people. The @file{THANKS} file lists people who have helped by reporting bugs, taking care of the infrastructure, providing artwork and themes, making suggestions, and more---thank you!"
9809msgstr "GNU@tie{}Guix ist selbst das Produkt kollektiver Arbeit mit Beiträgen durch eine Vielzahl von Leuten. Siehe die Datei @file{AUTHORS} in Guix für mehr Informationen, wer diese wunderbaren Menschen sind. In der Datei @file{THANKS} finden Sie eine Liste der Leute, die uns geholfen haben, indem Sie Fehler gemeldet, sich um unsere Infrastruktur gekümmert, künstlerische Arbeit und schön gestaltete Themen beigesteuert, Vorschläge gemacht und noch vieles mehr getan haben@tie{}– vielen Dank!" 9815msgstr "GNU@tie{}Guix ist selbst das Produkt kollektiver Arbeit mit Beiträgen durch eine Vielzahl von Leuten. Siehe die Datei @file{AUTHORS} in Guix für mehr Informationen, wer diese wunderbaren Menschen sind. In der Datei @file{THANKS} finden Sie eine Liste der Leute, die uns geholfen haben, indem Sie Fehler gemeldet, sich um unsere Infrastruktur gekümmert, künstlerische Arbeit und schön gestaltete Themen beigesteuert, Vorschläge gemacht und noch vieles mehr getan haben@tie{}– vielen Dank!"
9810 9816
9811#. type: Plain text 9817#. type: Plain text
9812#: doc/guix-cookbook.texi:5551 9818#: guix-git/doc/guix-cookbook.texi:5553
9813msgid "This document includes adapted sections from articles that have previously been published on the Guix blog at @uref{https://guix.gnu.org/blog} and on the Guix-HPC blog at @uref{https://hpc.guix.info/blog}." 9819msgid "This document includes adapted sections from articles that have previously been published on the Guix blog at @uref{https://guix.gnu.org/blog} and on the Guix-HPC blog at @uref{https://hpc.guix.info/blog}."
9814msgstr "Dieses Dokument enthält angepasste Abschnitte aus Einträgen, die zuvor auf dem Blog von Guix unter @uref{https://guix.gnu.org/blog} und dem Guix-HPC-Blog unter @uref{https://hpc.guix.info/blog} veröffentlicht wurden." 9820msgstr "Dieses Dokument enthält angepasste Abschnitte aus Einträgen, die zuvor auf dem Blog von Guix unter @uref{https://guix.gnu.org/blog} und dem Guix-HPC-Blog unter @uref{https://hpc.guix.info/blog} veröffentlicht wurden."
9815 9821
9816#. type: cindex 9822#. type: cindex
9817#: doc/guix-cookbook.texi:5556 9823#: guix-git/doc/guix-cookbook.texi:5558
9818#, no-wrap 9824#, no-wrap
9819msgid "license, GNU Free Documentation License" 9825msgid "license, GNU Free Documentation License"
9820msgstr "Lizenz, GNU-Lizenz für freie Dokumentation" 9826msgstr "Lizenz, GNU-Lizenz für freie Dokumentation"
9821 9827
9822#. type: include 9828#. type: include
9823#: doc/guix-cookbook.texi:5557 9829#: guix-git/doc/guix-cookbook.texi:5559
9824#, no-wrap 9830#, no-wrap
9825msgid "fdl-1.3.texi" 9831msgid "fdl-1.3.texi"
9826msgstr "fdl-1.3.texi" 9832msgstr "fdl-1.3.texi"