summaryrefslogtreecommitdiff
path: root/po/doc/guix-cookbook.de.po
diff options
context:
space:
mode:
authorFlorian Pelz <pelzflorian@pelzflorian.de>2024-05-01 02:16:06 +0200
committerFlorian Pelz <pelzflorian@pelzflorian.de>2024-05-01 02:42:54 +0200
commit8bf41c80ef13ea57e834f4e23d649bd99a3e08fc (patch)
treefc80cfd2da54212c280cf700f7a1623ab4d0b7b5 /po/doc/guix-cookbook.de.po
parentfc8f04726c3f16a133bf779a9b24ff91e3c85186 (diff)
nls: Update translations.
* po/packages/sv.po: New file. * po/packages/LINGUAS: Add it. Change-Id: I2ad4dfcb935ba0a4e79c15b86cee6826c6580729
Diffstat (limited to 'po/doc/guix-cookbook.de.po')
-rw-r--r--po/doc/guix-cookbook.de.po2498
1 files changed, 1259 insertions, 1239 deletions
diff --git a/po/doc/guix-cookbook.de.po b/po/doc/guix-cookbook.de.po
index 2f8c1b63904..db138492b7e 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: 2024-04-01 10:29+0200\n" 10"POT-Creation-Date: 2024-04-19 03:25+0000\n"
11"PO-Revision-Date: 2024-04-01 10:31+0200\n" 11"PO-Revision-Date: 2024-04-30 15:55+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.4\n" 19"X-Generator: Weblate 5.5.2\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:42 doc/guix-cookbook.texi:56 30#: guix-git/doc/guix-cookbook.texi:7 guix-git/doc/guix-cookbook.texi:42
31#: guix-git/doc/guix-cookbook.texi:56
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:27 37#: guix-git/doc/guix-cookbook.texi:27
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" 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"
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" 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"
39 40
40#. type: copying 41#. type: copying
41#: doc/guix-cookbook.texi:34 42#: guix-git/doc/guix-cookbook.texi:34
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:36 47#: guix-git/doc/guix-cookbook.texi:36
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:39 53#: guix-git/doc/guix-cookbook.texi:39
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:39 58#: guix-git/doc/guix-cookbook.texi:39
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:43 63#: guix-git/doc/guix-cookbook.texi:43
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:44 69#: guix-git/doc/guix-cookbook.texi:44
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:55 75#: guix-git/doc/guix-cookbook.texi:55
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:62 81#: guix-git/doc/guix-cookbook.texi:62
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:76 87#: guix-git/doc/guix-cookbook.texi:76
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}) and Slovak (@pxref{Top,,, guix-cookbook.sk, Receptá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}) and Slovak (@pxref{Top,,, guix-cookbook.sk, Receptá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}) und auf Slowakisch (siehe @ref{Top,,, guix-cookbook.sk, Receptá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}) und auf Slowakisch (siehe @ref{Top,,, guix-cookbook.sk, Receptá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:87 doc/guix-cookbook.texi:96 92#: guix-git/doc/guix-cookbook.texi:87 guix-git/doc/guix-cookbook.texi:96
92#: doc/guix-cookbook.texi:204 doc/guix-cookbook.texi:205 93#: guix-git/doc/guix-cookbook.texi:204 guix-git/doc/guix-cookbook.texi:205
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:87 99#: guix-git/doc/guix-cookbook.texi:87
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:87 doc/guix-cookbook.texi:100 104#: guix-git/doc/guix-cookbook.texi:87 guix-git/doc/guix-cookbook.texi:100
104#: doc/guix-cookbook.texi:497 doc/guix-cookbook.texi:498 105#: guix-git/doc/guix-cookbook.texi:497 guix-git/doc/guix-cookbook.texi:498
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:87 111#: guix-git/doc/guix-cookbook.texi:87
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:87 doc/guix-cookbook.texi:127 116#: guix-git/doc/guix-cookbook.texi:87 guix-git/doc/guix-cookbook.texi:127
116#: doc/guix-cookbook.texi:1580 doc/guix-cookbook.texi:1581 117#: guix-git/doc/guix-cookbook.texi:1580 guix-git/doc/guix-cookbook.texi:1581
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:87 123#: guix-git/doc/guix-cookbook.texi:87
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:87 doc/guix-cookbook.texi:152 128#: guix-git/doc/guix-cookbook.texi:87 guix-git/doc/guix-cookbook.texi:152
128#: doc/guix-cookbook.texi:3311 doc/guix-cookbook.texi:3312 129#: guix-git/doc/guix-cookbook.texi:3309 guix-git/doc/guix-cookbook.texi:3310
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:87 135#: guix-git/doc/guix-cookbook.texi:87
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:87 doc/guix-cookbook.texi:162 140#: guix-git/doc/guix-cookbook.texi:87 guix-git/doc/guix-cookbook.texi:162
140#: doc/guix-cookbook.texi:3714 doc/guix-cookbook.texi:3715 141#: guix-git/doc/guix-cookbook.texi:3712 guix-git/doc/guix-cookbook.texi:3713
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:87 147#: guix-git/doc/guix-cookbook.texi:87
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:87 doc/guix-cookbook.texi:167 152#: guix-git/doc/guix-cookbook.texi:87 guix-git/doc/guix-cookbook.texi:167
152#: doc/guix-cookbook.texi:3945 doc/guix-cookbook.texi:3946 153#: guix-git/doc/guix-cookbook.texi:3943 guix-git/doc/guix-cookbook.texi:3944
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:87 160#: guix-git/doc/guix-cookbook.texi:87
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:87 doc/guix-cookbook.texi:179 165#: guix-git/doc/guix-cookbook.texi:87 guix-git/doc/guix-cookbook.texi:179
165#: doc/guix-cookbook.texi:4348 doc/guix-cookbook.texi:4349 166#: guix-git/doc/guix-cookbook.texi:4346 guix-git/doc/guix-cookbook.texi:4347
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:87 172#: guix-git/doc/guix-cookbook.texi:87
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:87 doc/guix-cookbook.texi:189 177#: guix-git/doc/guix-cookbook.texi:87 guix-git/doc/guix-cookbook.texi:189
177#: doc/guix-cookbook.texi:4997 doc/guix-cookbook.texi:4998 178#: guix-git/doc/guix-cookbook.texi:4995 guix-git/doc/guix-cookbook.texi:4996
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:87 184#: guix-git/doc/guix-cookbook.texi:87
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:87 doc/guix-cookbook.texi:193 189#: guix-git/doc/guix-cookbook.texi:87 guix-git/doc/guix-cookbook.texi:193
189#: doc/guix-cookbook.texi:5122 doc/guix-cookbook.texi:5123 190#: guix-git/doc/guix-cookbook.texi:5120 guix-git/doc/guix-cookbook.texi:5121
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:87 196#: guix-git/doc/guix-cookbook.texi:87
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:91 doc/guix-cookbook.texi:5498 201#: guix-git/doc/guix-cookbook.texi:91 guix-git/doc/guix-cookbook.texi:5496
201#: doc/guix-cookbook.texi:5499 202#: guix-git/doc/guix-cookbook.texi:5497
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:91 208#: guix-git/doc/guix-cookbook.texi:91
208msgid "Thanks!" 209msgid "Thanks!"
209msgstr "Danke!" 210msgstr "Danke!"
210 211
211#. type: appendix 212#. type: appendix
212#: doc/guix-cookbook.texi:91 doc/guix-cookbook.texi:5525 213#: guix-git/doc/guix-cookbook.texi:91 guix-git/doc/guix-cookbook.texi:5523
213#: doc/guix-cookbook.texi:5526 214#: guix-git/doc/guix-cookbook.texi:5524
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:91 220#: guix-git/doc/guix-cookbook.texi:91
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:91 doc/guix-cookbook.texi:5531 225#: guix-git/doc/guix-cookbook.texi:91 guix-git/doc/guix-cookbook.texi:5529
225#: doc/guix-cookbook.texi:5532 226#: guix-git/doc/guix-cookbook.texi:5530
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:91 232#: guix-git/doc/guix-cookbook.texi:91
232msgid "Concepts." 233msgid "Concepts."
233msgstr "Konzepte." 234msgstr "Konzepte."
234 235
235#. type: menuentry 236#. type: menuentry
236#: doc/guix-cookbook.texi:94 237#: guix-git/doc/guix-cookbook.texi:94
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:98 doc/guix-cookbook.texi:220 242#: guix-git/doc/guix-cookbook.texi:98 guix-git/doc/guix-cookbook.texi:220
242#: doc/guix-cookbook.texi:222 doc/guix-cookbook.texi:223 243#: guix-git/doc/guix-cookbook.texi:222 guix-git/doc/guix-cookbook.texi:223
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:102 doc/guix-cookbook.texi:104 249#: guix-git/doc/guix-cookbook.texi:102 guix-git/doc/guix-cookbook.texi:104
249#: doc/guix-cookbook.texi:509 doc/guix-cookbook.texi:511 250#: guix-git/doc/guix-cookbook.texi:509 guix-git/doc/guix-cookbook.texi:511
250#: doc/guix-cookbook.texi:512 251#: guix-git/doc/guix-cookbook.texi:512
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:102 doc/guix-cookbook.texi:509 257#: guix-git/doc/guix-cookbook.texi:102 guix-git/doc/guix-cookbook.texi:509
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:113 doc/guix-cookbook.texi:559 262#: guix-git/doc/guix-cookbook.texi:113 guix-git/doc/guix-cookbook.texi:559
262#: doc/guix-cookbook.texi:561 doc/guix-cookbook.texi:562 263#: guix-git/doc/guix-cookbook.texi:561 guix-git/doc/guix-cookbook.texi:562
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:113 doc/guix-cookbook.texi:115 269#: guix-git/doc/guix-cookbook.texi:113 guix-git/doc/guix-cookbook.texi:115
269#: doc/guix-cookbook.texi:559 doc/guix-cookbook.texi:752 270#: guix-git/doc/guix-cookbook.texi:559 guix-git/doc/guix-cookbook.texi:752
270#: doc/guix-cookbook.texi:753 271#: guix-git/doc/guix-cookbook.texi:753
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:113 doc/guix-cookbook.texi:559 277#: guix-git/doc/guix-cookbook.texi:113 guix-git/doc/guix-cookbook.texi:559
277#: doc/guix-cookbook.texi:992 doc/guix-cookbook.texi:993 278#: guix-git/doc/guix-cookbook.texi:992 guix-git/doc/guix-cookbook.texi:993
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:113 doc/guix-cookbook.texi:559 284#: guix-git/doc/guix-cookbook.texi:113 guix-git/doc/guix-cookbook.texi:559
284#: doc/guix-cookbook.texi:1396 doc/guix-cookbook.texi:1397 285#: guix-git/doc/guix-cookbook.texi:1396 guix-git/doc/guix-cookbook.texi:1397
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:113 doc/guix-cookbook.texi:121 291#: guix-git/doc/guix-cookbook.texi:113 guix-git/doc/guix-cookbook.texi:121
291#: doc/guix-cookbook.texi:559 doc/guix-cookbook.texi:1414 292#: guix-git/doc/guix-cookbook.texi:559 guix-git/doc/guix-cookbook.texi:1414
292#: doc/guix-cookbook.texi:1415 293#: guix-git/doc/guix-cookbook.texi:1415
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:113 doc/guix-cookbook.texi:559 299#: guix-git/doc/guix-cookbook.texi:113 guix-git/doc/guix-cookbook.texi:559
299#: doc/guix-cookbook.texi:1531 doc/guix-cookbook.texi:1532 300#: guix-git/doc/guix-cookbook.texi:1531 guix-git/doc/guix-cookbook.texi:1532
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:113 doc/guix-cookbook.texi:559 306#: guix-git/doc/guix-cookbook.texi:113 guix-git/doc/guix-cookbook.texi:559
306#: doc/guix-cookbook.texi:1544 doc/guix-cookbook.texi:1545 307#: guix-git/doc/guix-cookbook.texi:1544 guix-git/doc/guix-cookbook.texi:1545
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:113 doc/guix-cookbook.texi:559 313#: guix-git/doc/guix-cookbook.texi:113 guix-git/doc/guix-cookbook.texi:559
313#: doc/guix-cookbook.texi:1565 doc/guix-cookbook.texi:1566 314#: guix-git/doc/guix-cookbook.texi:1565 guix-git/doc/guix-cookbook.texi:1566
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:119 doc/guix-cookbook.texi:770 320#: guix-git/doc/guix-cookbook.texi:119 guix-git/doc/guix-cookbook.texi:770
320#: doc/guix-cookbook.texi:772 doc/guix-cookbook.texi:773 321#: guix-git/doc/guix-cookbook.texi:772 guix-git/doc/guix-cookbook.texi:773
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:119 doc/guix-cookbook.texi:770 327#: guix-git/doc/guix-cookbook.texi:119 guix-git/doc/guix-cookbook.texi:770
327#: doc/guix-cookbook.texi:792 doc/guix-cookbook.texi:793 328#: guix-git/doc/guix-cookbook.texi:792 guix-git/doc/guix-cookbook.texi:793
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:119 doc/guix-cookbook.texi:770 334#: guix-git/doc/guix-cookbook.texi:119 guix-git/doc/guix-cookbook.texi:770
334#: doc/guix-cookbook.texi:906 doc/guix-cookbook.texi:907 335#: guix-git/doc/guix-cookbook.texi:906 guix-git/doc/guix-cookbook.texi:907
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:125 doc/guix-cookbook.texi:1426 341#: guix-git/doc/guix-cookbook.texi:125 guix-git/doc/guix-cookbook.texi:1426
341#: doc/guix-cookbook.texi:1428 doc/guix-cookbook.texi:1429 342#: guix-git/doc/guix-cookbook.texi:1428 guix-git/doc/guix-cookbook.texi:1429
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:125 doc/guix-cookbook.texi:1426 348#: guix-git/doc/guix-cookbook.texi:125 guix-git/doc/guix-cookbook.texi:1426
348#: doc/guix-cookbook.texi:1487 doc/guix-cookbook.texi:1488 349#: guix-git/doc/guix-cookbook.texi:1487 guix-git/doc/guix-cookbook.texi:1488
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:125 doc/guix-cookbook.texi:1426 355#: guix-git/doc/guix-cookbook.texi:125 guix-git/doc/guix-cookbook.texi:1426
355#: doc/guix-cookbook.texi:1505 doc/guix-cookbook.texi:1506 356#: guix-git/doc/guix-cookbook.texi:1505 guix-git/doc/guix-cookbook.texi:1506
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:141 doc/guix-cookbook.texi:1604 362#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
362#: doc/guix-cookbook.texi:1606 doc/guix-cookbook.texi:1607 363#: guix-git/doc/guix-cookbook.texi:1606 guix-git/doc/guix-cookbook.texi:1607
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:141 doc/guix-cookbook.texi:1604 369#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
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:141 doc/guix-cookbook.texi:1604 374#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
374#: doc/guix-cookbook.texi:1651 doc/guix-cookbook.texi:1652 375#: guix-git/doc/guix-cookbook.texi:1651 guix-git/doc/guix-cookbook.texi:1652
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:141 doc/guix-cookbook.texi:1604 381#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
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:141 doc/guix-cookbook.texi:1604 386#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
386#: doc/guix-cookbook.texi:1889 doc/guix-cookbook.texi:1890 387#: guix-git/doc/guix-cookbook.texi:1889 guix-git/doc/guix-cookbook.texi:1890
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:141 doc/guix-cookbook.texi:1604 393#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
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:141 doc/guix-cookbook.texi:1604 398#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
398#: doc/guix-cookbook.texi:2106 doc/guix-cookbook.texi:2107 399#: guix-git/doc/guix-cookbook.texi:2106 guix-git/doc/guix-cookbook.texi:2107
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:141 doc/guix-cookbook.texi:1604 405#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
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:141 doc/guix-cookbook.texi:1604 410#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
410#: doc/guix-cookbook.texi:2228 doc/guix-cookbook.texi:2229 411#: guix-git/doc/guix-cookbook.texi:2228 guix-git/doc/guix-cookbook.texi:2229
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:141 doc/guix-cookbook.texi:1604 417#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
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:141 doc/guix-cookbook.texi:1604 422#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
422#: doc/guix-cookbook.texi:2281 doc/guix-cookbook.texi:2282 423#: guix-git/doc/guix-cookbook.texi:2281 guix-git/doc/guix-cookbook.texi:2282
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:141 doc/guix-cookbook.texi:1604 429#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
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:141 doc/guix-cookbook.texi:143 434#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:143
434#: doc/guix-cookbook.texi:1604 doc/guix-cookbook.texi:2358 435#: guix-git/doc/guix-cookbook.texi:1604 guix-git/doc/guix-cookbook.texi:2358
435#: doc/guix-cookbook.texi:2359 436#: guix-git/doc/guix-cookbook.texi:2359
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:141 doc/guix-cookbook.texi:1604 442#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
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:141 doc/guix-cookbook.texi:1604 447#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
447#: doc/guix-cookbook.texi:2461 doc/guix-cookbook.texi:2462 448#: guix-git/doc/guix-cookbook.texi:2461 guix-git/doc/guix-cookbook.texi:2462
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:141 doc/guix-cookbook.texi:1604 454#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
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:141 doc/guix-cookbook.texi:1604 459#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
459#: doc/guix-cookbook.texi:2704 doc/guix-cookbook.texi:2705 460#: guix-git/doc/guix-cookbook.texi:2702 guix-git/doc/guix-cookbook.texi:2703
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:141 doc/guix-cookbook.texi:1604 466#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
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:141 doc/guix-cookbook.texi:1604 471#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
471#: doc/guix-cookbook.texi:2951 doc/guix-cookbook.texi:2952 472#: guix-git/doc/guix-cookbook.texi:2949 guix-git/doc/guix-cookbook.texi:2950
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:141 doc/guix-cookbook.texi:1604 478#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
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:141 doc/guix-cookbook.texi:1604 483#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
483#: doc/guix-cookbook.texi:3000 doc/guix-cookbook.texi:3001 484#: guix-git/doc/guix-cookbook.texi:2998 guix-git/doc/guix-cookbook.texi:2999
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:141 doc/guix-cookbook.texi:1604 490#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
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:141 doc/guix-cookbook.texi:1604 495#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
495#: doc/guix-cookbook.texi:3064 doc/guix-cookbook.texi:3065 496#: guix-git/doc/guix-cookbook.texi:3062 guix-git/doc/guix-cookbook.texi:3063
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:141 doc/guix-cookbook.texi:1604 502#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
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:141 doc/guix-cookbook.texi:1604 507#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
507#: doc/guix-cookbook.texi:3121 doc/guix-cookbook.texi:3122 508#: guix-git/doc/guix-cookbook.texi:3119 guix-git/doc/guix-cookbook.texi:3120
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:141 doc/guix-cookbook.texi:1604 514#: guix-git/doc/guix-cookbook.texi:141 guix-git/doc/guix-cookbook.texi:1604
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:146 doc/guix-cookbook.texi:2365 519#: guix-git/doc/guix-cookbook.texi:146 guix-git/doc/guix-cookbook.texi:2365
519#: doc/guix-cookbook.texi:2367 doc/guix-cookbook.texi:2368 520#: guix-git/doc/guix-cookbook.texi:2367 guix-git/doc/guix-cookbook.texi:2368
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:146 doc/guix-cookbook.texi:148 526#: guix-git/doc/guix-cookbook.texi:146 guix-git/doc/guix-cookbook.texi:148
526#: doc/guix-cookbook.texi:2365 doc/guix-cookbook.texi:2413 527#: guix-git/doc/guix-cookbook.texi:2365 guix-git/doc/guix-cookbook.texi:2413
527#: doc/guix-cookbook.texi:2414 528#: guix-git/doc/guix-cookbook.texi:2414
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:150 doc/guix-cookbook.texi:2424 534#: guix-git/doc/guix-cookbook.texi:150 guix-git/doc/guix-cookbook.texi:2424
534#: doc/guix-cookbook.texi:2426 doc/guix-cookbook.texi:2427 535#: guix-git/doc/guix-cookbook.texi:2426 guix-git/doc/guix-cookbook.texi:2427
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:155 doc/guix-cookbook.texi:3338 541#: guix-git/doc/guix-cookbook.texi:155 guix-git/doc/guix-cookbook.texi:3336
541#: doc/guix-cookbook.texi:3340 doc/guix-cookbook.texi:3341 542#: guix-git/doc/guix-cookbook.texi:3338 guix-git/doc/guix-cookbook.texi:3339
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:155 doc/guix-cookbook.texi:3338 548#: guix-git/doc/guix-cookbook.texi:155 guix-git/doc/guix-cookbook.texi:3336
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:155 doc/guix-cookbook.texi:157 553#: guix-git/doc/guix-cookbook.texi:155 guix-git/doc/guix-cookbook.texi:157
553#: doc/guix-cookbook.texi:3338 doc/guix-cookbook.texi:3489 554#: guix-git/doc/guix-cookbook.texi:3336 guix-git/doc/guix-cookbook.texi:3487
554#: doc/guix-cookbook.texi:3490 555#: guix-git/doc/guix-cookbook.texi:3488
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:155 doc/guix-cookbook.texi:3338 561#: guix-git/doc/guix-cookbook.texi:155 guix-git/doc/guix-cookbook.texi:3336
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:160 doc/guix-cookbook.texi:3524 566#: guix-git/doc/guix-cookbook.texi:160 guix-git/doc/guix-cookbook.texi:3522
566#: doc/guix-cookbook.texi:3526 doc/guix-cookbook.texi:3527 567#: guix-git/doc/guix-cookbook.texi:3524 guix-git/doc/guix-cookbook.texi:3525
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:160 doc/guix-cookbook.texi:3524 573#: guix-git/doc/guix-cookbook.texi:160 guix-git/doc/guix-cookbook.texi:3522
573#: doc/guix-cookbook.texi:3638 doc/guix-cookbook.texi:3639 574#: guix-git/doc/guix-cookbook.texi:3636 guix-git/doc/guix-cookbook.texi:3637
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:165 doc/guix-cookbook.texi:3727 580#: guix-git/doc/guix-cookbook.texi:165 guix-git/doc/guix-cookbook.texi:3725
580#: doc/guix-cookbook.texi:3729 doc/guix-cookbook.texi:3730 581#: guix-git/doc/guix-cookbook.texi:3727 guix-git/doc/guix-cookbook.texi:3728
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:165 doc/guix-cookbook.texi:3727 587#: guix-git/doc/guix-cookbook.texi:165 guix-git/doc/guix-cookbook.texi:3725
587#: doc/guix-cookbook.texi:3850 doc/guix-cookbook.texi:3851 588#: guix-git/doc/guix-cookbook.texi:3848 guix-git/doc/guix-cookbook.texi:3849
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:169 doc/guix-cookbook.texi:171 594#: guix-git/doc/guix-cookbook.texi:169 guix-git/doc/guix-cookbook.texi:171
594#: doc/guix-cookbook.texi:3959 doc/guix-cookbook.texi:3961 595#: guix-git/doc/guix-cookbook.texi:3957 guix-git/doc/guix-cookbook.texi:3959
595#: doc/guix-cookbook.texi:3962 596#: guix-git/doc/guix-cookbook.texi:3960
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:169 doc/guix-cookbook.texi:3959 602#: guix-git/doc/guix-cookbook.texi:169 guix-git/doc/guix-cookbook.texi:3957
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:177 doc/guix-cookbook.texi:4053 607#: guix-git/doc/guix-cookbook.texi:177 guix-git/doc/guix-cookbook.texi:4051
607#: doc/guix-cookbook.texi:4055 doc/guix-cookbook.texi:4056 608#: guix-git/doc/guix-cookbook.texi:4053 guix-git/doc/guix-cookbook.texi:4054
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:177 doc/guix-cookbook.texi:4053 614#: guix-git/doc/guix-cookbook.texi:177 guix-git/doc/guix-cookbook.texi:4051
614#: doc/guix-cookbook.texi:4188 doc/guix-cookbook.texi:4189 615#: guix-git/doc/guix-cookbook.texi:4186 guix-git/doc/guix-cookbook.texi:4187
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:177 doc/guix-cookbook.texi:4053 621#: guix-git/doc/guix-cookbook.texi:177 guix-git/doc/guix-cookbook.texi:4051
621#: doc/guix-cookbook.texi:4216 doc/guix-cookbook.texi:4217 622#: guix-git/doc/guix-cookbook.texi:4214 guix-git/doc/guix-cookbook.texi:4215
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:177 doc/guix-cookbook.texi:4053 628#: guix-git/doc/guix-cookbook.texi:177 guix-git/doc/guix-cookbook.texi:4051
628#: doc/guix-cookbook.texi:4235 doc/guix-cookbook.texi:4236 629#: guix-git/doc/guix-cookbook.texi:4233 guix-git/doc/guix-cookbook.texi:4234
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:177 doc/guix-cookbook.texi:4053 635#: guix-git/doc/guix-cookbook.texi:177 guix-git/doc/guix-cookbook.texi:4051
635#: doc/guix-cookbook.texi:4310 doc/guix-cookbook.texi:4311 636#: guix-git/doc/guix-cookbook.texi:4308 guix-git/doc/guix-cookbook.texi:4309
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:187 doc/guix-cookbook.texi:4381 642#: guix-git/doc/guix-cookbook.texi:187 guix-git/doc/guix-cookbook.texi:4379
642#: doc/guix-cookbook.texi:4383 doc/guix-cookbook.texi:4384 643#: guix-git/doc/guix-cookbook.texi:4381 guix-git/doc/guix-cookbook.texi:4382
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:187 doc/guix-cookbook.texi:4381 649#: guix-git/doc/guix-cookbook.texi:187 guix-git/doc/guix-cookbook.texi:4379
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:187 doc/guix-cookbook.texi:4381 654#: guix-git/doc/guix-cookbook.texi:187 guix-git/doc/guix-cookbook.texi:4379
654#: doc/guix-cookbook.texi:4503 655#: guix-git/doc/guix-cookbook.texi:4501
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:187 doc/guix-cookbook.texi:4381 661#: guix-git/doc/guix-cookbook.texi:187 guix-git/doc/guix-cookbook.texi:4379
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:187 doc/guix-cookbook.texi:4381 666#: guix-git/doc/guix-cookbook.texi:187 guix-git/doc/guix-cookbook.texi:4379
666#: doc/guix-cookbook.texi:4593 667#: guix-git/doc/guix-cookbook.texi:4591
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:187 doc/guix-cookbook.texi:4381 673#: guix-git/doc/guix-cookbook.texi:187 guix-git/doc/guix-cookbook.texi:4379
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:187 doc/guix-cookbook.texi:4381 678#: guix-git/doc/guix-cookbook.texi:187 guix-git/doc/guix-cookbook.texi:4379
678#: doc/guix-cookbook.texi:4729 679#: guix-git/doc/guix-cookbook.texi:4727
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:187 doc/guix-cookbook.texi:4381 685#: guix-git/doc/guix-cookbook.texi:187 guix-git/doc/guix-cookbook.texi:4379
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:187 doc/guix-cookbook.texi:4381 690#: guix-git/doc/guix-cookbook.texi:187 guix-git/doc/guix-cookbook.texi:4379
690#: doc/guix-cookbook.texi:4781 691#: guix-git/doc/guix-cookbook.texi:4779
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:187 doc/guix-cookbook.texi:4381 697#: guix-git/doc/guix-cookbook.texi:187 guix-git/doc/guix-cookbook.texi:4379
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:187 doc/guix-cookbook.texi:4381 702#: guix-git/doc/guix-cookbook.texi:187 guix-git/doc/guix-cookbook.texi:4379
702#: doc/guix-cookbook.texi:4856 703#: guix-git/doc/guix-cookbook.texi:4854
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:187 doc/guix-cookbook.texi:4381 709#: guix-git/doc/guix-cookbook.texi:187 guix-git/doc/guix-cookbook.texi:4379
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:187 doc/guix-cookbook.texi:4381 714#: guix-git/doc/guix-cookbook.texi:187 guix-git/doc/guix-cookbook.texi:4379
714#: doc/guix-cookbook.texi:4949 doc/guix-cookbook.texi:4950 715#: guix-git/doc/guix-cookbook.texi:4947 guix-git/doc/guix-cookbook.texi:4948
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:187 doc/guix-cookbook.texi:4381 721#: guix-git/doc/guix-cookbook.texi:187 guix-git/doc/guix-cookbook.texi:4379
721msgid "Recap." 722msgid "Recap."
722msgstr "Resümee." 723msgstr "Resümee."
723 724
724#. type: section 725#. type: section
725#: doc/guix-cookbook.texi:191 doc/guix-cookbook.texi:5005 726#: guix-git/doc/guix-cookbook.texi:191 guix-git/doc/guix-cookbook.texi:5003
726#: doc/guix-cookbook.texi:5007 doc/guix-cookbook.texi:5008 727#: guix-git/doc/guix-cookbook.texi:5005 guix-git/doc/guix-cookbook.texi:5006
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:191 doc/guix-cookbook.texi:5005 733#: guix-git/doc/guix-cookbook.texi:191 guix-git/doc/guix-cookbook.texi:5003
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:199 doc/guix-cookbook.texi:5151 738#: guix-git/doc/guix-cookbook.texi:199 guix-git/doc/guix-cookbook.texi:5149
738#: doc/guix-cookbook.texi:5153 doc/guix-cookbook.texi:5154 739#: guix-git/doc/guix-cookbook.texi:5151 guix-git/doc/guix-cookbook.texi:5152
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:199 doc/guix-cookbook.texi:5151 745#: guix-git/doc/guix-cookbook.texi:199 guix-git/doc/guix-cookbook.texi:5149
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:199 doc/guix-cookbook.texi:5151 750#: guix-git/doc/guix-cookbook.texi:199 guix-git/doc/guix-cookbook.texi:5149
750#: doc/guix-cookbook.texi:5249 doc/guix-cookbook.texi:5250 751#: guix-git/doc/guix-cookbook.texi:5247 guix-git/doc/guix-cookbook.texi:5248
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:199 doc/guix-cookbook.texi:5151 757#: guix-git/doc/guix-cookbook.texi:199 guix-git/doc/guix-cookbook.texi:5149
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:199 doc/guix-cookbook.texi:5151 762#: guix-git/doc/guix-cookbook.texi:199 guix-git/doc/guix-cookbook.texi:5149
762#: doc/guix-cookbook.texi:5338 763#: guix-git/doc/guix-cookbook.texi:5336
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:199 doc/guix-cookbook.texi:5151 769#: guix-git/doc/guix-cookbook.texi:199 guix-git/doc/guix-cookbook.texi:5149
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:199 doc/guix-cookbook.texi:5151 774#: guix-git/doc/guix-cookbook.texi:199 guix-git/doc/guix-cookbook.texi:5149
774#: doc/guix-cookbook.texi:5424 775#: guix-git/doc/guix-cookbook.texi:5422
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:199 doc/guix-cookbook.texi:5151 781#: guix-git/doc/guix-cookbook.texi:199 guix-git/doc/guix-cookbook.texi:5149
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:199 doc/guix-cookbook.texi:5151 786#: guix-git/doc/guix-cookbook.texi:199 guix-git/doc/guix-cookbook.texi:5149
786#: doc/guix-cookbook.texi:5469 787#: guix-git/doc/guix-cookbook.texi:5467
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:199 doc/guix-cookbook.texi:5151 793#: guix-git/doc/guix-cookbook.texi:199 guix-git/doc/guix-cookbook.texi:5149
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:211 798#: guix-git/doc/guix-cookbook.texi:211
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:215 803#: guix-git/doc/guix-cookbook.texi:215
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:217 808#: guix-git/doc/guix-cookbook.texi:217
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:225 813#: guix-git/doc/guix-cookbook.texi:225
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:231 819#: guix-git/doc/guix-cookbook.texi:231
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:234 824#: guix-git/doc/guix-cookbook.texi:234
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:240 829#: guix-git/doc/guix-cookbook.texi:240
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:248 834#: guix-git/doc/guix-cookbook.texi:248
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:250 839#: guix-git/doc/guix-cookbook.texi:250
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:254 844#: guix-git/doc/guix-cookbook.texi:254
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:257 856#: guix-git/doc/guix-cookbook.texi:257
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:261 868#: guix-git/doc/guix-cookbook.texi:261
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:268 880#: guix-git/doc/guix-cookbook.texi:268
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:272 885#: guix-git/doc/guix-cookbook.texi:272
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:276 890#: guix-git/doc/guix-cookbook.texi:276
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:281 900#: guix-git/doc/guix-cookbook.texi:281
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:285 905#: guix-git/doc/guix-cookbook.texi:285
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:289 915#: guix-git/doc/guix-cookbook.texi:289
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:292 920#: guix-git/doc/guix-cookbook.texi:292
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:298 925#: guix-git/doc/guix-cookbook.texi:298
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:302 939#: guix-git/doc/guix-cookbook.texi:302
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:305 944#: guix-git/doc/guix-cookbook.texi:305
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:309 950#: guix-git/doc/guix-cookbook.texi:309
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:313 955#: guix-git/doc/guix-cookbook.texi:313
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:320 965#: guix-git/doc/guix-cookbook.texi:320
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:323 970#: guix-git/doc/guix-cookbook.texi:323
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:326 980#: guix-git/doc/guix-cookbook.texi:326
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:329 992#: guix-git/doc/guix-cookbook.texi:329
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:334 1004#: guix-git/doc/guix-cookbook.texi:334
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:338 1018#: guix-git/doc/guix-cookbook.texi:338
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:340 1023#: guix-git/doc/guix-cookbook.texi:340
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:345 1029#: guix-git/doc/guix-cookbook.texi:345
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:349 1034#: guix-git/doc/guix-cookbook.texi:349
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:352 1046#: guix-git/doc/guix-cookbook.texi:352
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:359 1056#: guix-git/doc/guix-cookbook.texi:359
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:363 1061#: guix-git/doc/guix-cookbook.texi:363
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:367 1071#: guix-git/doc/guix-cookbook.texi:367
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:369 1076#: guix-git/doc/guix-cookbook.texi:369
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:370 1082#: guix-git/doc/guix-cookbook.texi:370
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:371 1088#: guix-git/doc/guix-cookbook.texi:371
1088#, no-wrap 1089#, no-wrap
1089msgid "#~" 1090msgid "#~"
1090msgstr "#~" 1091msgstr "#~"
1091 1092
1092#. type: findex 1093#. type: findex
1093#: doc/guix-cookbook.texi:372 1094#: guix-git/doc/guix-cookbook.texi:372
1094#, no-wrap 1095#, no-wrap
1095msgid "#$" 1096msgid "#$"
1096msgstr "#$" 1097msgstr "#$"
1097 1098
1098#. type: findex 1099#. type: findex
1099#: doc/guix-cookbook.texi:373 1100#: guix-git/doc/guix-cookbook.texi:373
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:374 1106#: guix-git/doc/guix-cookbook.texi:374
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:380 1112#: guix-git/doc/guix-cookbook.texi:380
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:384 1117#: guix-git/doc/guix-cookbook.texi:384
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:388 1122#: guix-git/doc/guix-cookbook.texi:388
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:394 1134#: guix-git/doc/guix-cookbook.texi:394
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:397 1152#: guix-git/doc/guix-cookbook.texi:397
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:401 1162#: guix-git/doc/guix-cookbook.texi:401
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:405 1167#: guix-git/doc/guix-cookbook.texi:405
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:412 1172#: guix-git/doc/guix-cookbook.texi:412
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:415 1190#: guix-git/doc/guix-cookbook.texi:415
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:418 1202#: guix-git/doc/guix-cookbook.texi:418
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:422 1212#: guix-git/doc/guix-cookbook.texi:422
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:428 1217#: guix-git/doc/guix-cookbook.texi:428
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:435 1231#: guix-git/doc/guix-cookbook.texi:435
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:440 1236#: guix-git/doc/guix-cookbook.texi:440
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:444 1241#: guix-git/doc/guix-cookbook.texi:444
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:450 1246#: guix-git/doc/guix-cookbook.texi:450
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:456 1260#: guix-git/doc/guix-cookbook.texi:456
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:459 1265#: guix-git/doc/guix-cookbook.texi:459
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:461 1270#: guix-git/doc/guix-cookbook.texi:461
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:465 1276#: guix-git/doc/guix-cookbook.texi:465
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:470 1281#: guix-git/doc/guix-cookbook.texi:470
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:474 1286#: guix-git/doc/guix-cookbook.texi:474
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:481 1291#: guix-git/doc/guix-cookbook.texi:481
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:483 1296#: guix-git/doc/guix-cookbook.texi:483
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:487 1301#: guix-git/doc/guix-cookbook.texi:487
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:493 1311#: guix-git/doc/guix-cookbook.texi:493
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:500 1316#: guix-git/doc/guix-cookbook.texi:500
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:506 1322#: guix-git/doc/guix-cookbook.texi:506
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:520 1327#: guix-git/doc/guix-cookbook.texi:520
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:524 1332#: guix-git/doc/guix-cookbook.texi:524
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:529 1337#: guix-git/doc/guix-cookbook.texi:529
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:533 1342#: guix-git/doc/guix-cookbook.texi:533
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:543 1347#: guix-git/doc/guix-cookbook.texi:543
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:549 1352#: guix-git/doc/guix-cookbook.texi:549
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:567 1357#: guix-git/doc/guix-cookbook.texi:567
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:573 1362#: guix-git/doc/guix-cookbook.texi:573
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:594 1367#: guix-git/doc/guix-cookbook.texi:594
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:598 1411#: guix-git/doc/guix-cookbook.texi:598
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:600 1416#: guix-git/doc/guix-cookbook.texi:600
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:603 1422#: guix-git/doc/guix-cookbook.texi:603
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:604 1427#: guix-git/doc/guix-cookbook.texi:604
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:607 1433#: guix-git/doc/guix-cookbook.texi:607
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:609 1438#: guix-git/doc/guix-cookbook.texi:609
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:611 1444#: guix-git/doc/guix-cookbook.texi:611
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:611 1449#: guix-git/doc/guix-cookbook.texi:611
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:614 1455#: guix-git/doc/guix-cookbook.texi:614
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:614 1460#: guix-git/doc/guix-cookbook.texi:614
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:617 1466#: guix-git/doc/guix-cookbook.texi:617
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:619 1471#: guix-git/doc/guix-cookbook.texi:619
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:628 1477#: guix-git/doc/guix-cookbook.texi:628
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:629 1482#: guix-git/doc/guix-cookbook.texi:629
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:632 1488#: guix-git/doc/guix-cookbook.texi:632
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:633 1493#: guix-git/doc/guix-cookbook.texi:633
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:636 1499#: guix-git/doc/guix-cookbook.texi:636
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:637 1504#: guix-git/doc/guix-cookbook.texi:637
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:639 1510#: guix-git/doc/guix-cookbook.texi:639
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:640 1515#: guix-git/doc/guix-cookbook.texi:640
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:643 1521#: guix-git/doc/guix-cookbook.texi:643
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:647 1526#: guix-git/doc/guix-cookbook.texi:647
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:651 1531#: guix-git/doc/guix-cookbook.texi:651
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:653 1536#: guix-git/doc/guix-cookbook.texi:653
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:659 1541#: guix-git/doc/guix-cookbook.texi:659
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:678 1557#: guix-git/doc/guix-cookbook.texi:678
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:681 1599#: guix-git/doc/guix-cookbook.texi:681
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:688 1604#: guix-git/doc/guix-cookbook.texi:688
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:691 1609#: guix-git/doc/guix-cookbook.texi:691
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:695 1615#: guix-git/doc/guix-cookbook.texi:695
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:702 1625#: guix-git/doc/guix-cookbook.texi:702
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:707 1643#: guix-git/doc/guix-cookbook.texi:707
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:711 1648#: guix-git/doc/guix-cookbook.texi:711
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:715 1654#: guix-git/doc/guix-cookbook.texi:715
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:730 1664#: guix-git/doc/guix-cookbook.texi:730
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:733 1697#: guix-git/doc/guix-cookbook.texi:733
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:737 1703#: guix-git/doc/guix-cookbook.texi:737
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:740 1709#: guix-git/doc/guix-cookbook.texi:740
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:746 1715#: guix-git/doc/guix-cookbook.texi:746
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:751 1727#: guix-git/doc/guix-cookbook.texi:751
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:758 1732#: guix-git/doc/guix-cookbook.texi:758
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:760 1737#: guix-git/doc/guix-cookbook.texi:760
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:763 1742#: guix-git/doc/guix-cookbook.texi:763
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:765 1747#: guix-git/doc/guix-cookbook.texi:765
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:778 1752#: guix-git/doc/guix-cookbook.texi:778
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:783 1757#: guix-git/doc/guix-cookbook.texi:783
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:787 1769#: guix-git/doc/guix-cookbook.texi:787
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:791 1774#: guix-git/doc/guix-cookbook.texi:791
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:795 1779#: guix-git/doc/guix-cookbook.texi:795
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:801 1785#: guix-git/doc/guix-cookbook.texi:801
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:804 1790#: guix-git/doc/guix-cookbook.texi:804
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:807 1795#: guix-git/doc/guix-cookbook.texi:807
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:811 1801#: guix-git/doc/guix-cookbook.texi:811
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:818 1806#: guix-git/doc/guix-cookbook.texi:818
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:838 1824#: guix-git/doc/guix-cookbook.texi:838
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:844 1868#: guix-git/doc/guix-cookbook.texi:844
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:849 1873#: guix-git/doc/guix-cookbook.texi:849
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:855 1878#: guix-git/doc/guix-cookbook.texi:855
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:857 1894#: guix-git/doc/guix-cookbook.texi:857
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:860 1900#: guix-git/doc/guix-cookbook.texi:860
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:864 1905#: guix-git/doc/guix-cookbook.texi:864
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:868 1910#: guix-git/doc/guix-cookbook.texi:868
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:874 1920#: guix-git/doc/guix-cookbook.texi:874
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:880 1925#: guix-git/doc/guix-cookbook.texi:880
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:888 1939#: guix-git/doc/guix-cookbook.texi:888
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:895 1944#: guix-git/doc/guix-cookbook.texi:895
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:902 1960#: guix-git/doc/guix-cookbook.texi:902
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:905 1965#: guix-git/doc/guix-cookbook.texi:905
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:912 1970#: guix-git/doc/guix-cookbook.texi:912
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:918 1975#: guix-git/doc/guix-cookbook.texi:918
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:920 1980#: guix-git/doc/guix-cookbook.texi:920
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:923 1985#: guix-git/doc/guix-cookbook.texi:923
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:927 1991#: guix-git/doc/guix-cookbook.texi:927
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:931 1996#: guix-git/doc/guix-cookbook.texi:931
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:934 2001#: guix-git/doc/guix-cookbook.texi:934
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:936 2006#: guix-git/doc/guix-cookbook.texi:936
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:940 2011#: guix-git/doc/guix-cookbook.texi:940
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:944 2016#: guix-git/doc/guix-cookbook.texi:944
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:951 2021#: guix-git/doc/guix-cookbook.texi:951
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:955 2037#: guix-git/doc/guix-cookbook.texi:955
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:959 2042#: guix-git/doc/guix-cookbook.texi:959
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:963 2052#: guix-git/doc/guix-cookbook.texi:963
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:966 2057#: guix-git/doc/guix-cookbook.texi:966
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:970 2063#: guix-git/doc/guix-cookbook.texi:970
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:973 2068#: guix-git/doc/guix-cookbook.texi:973
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:978 2074#: guix-git/doc/guix-cookbook.texi:978
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:982 2079#: guix-git/doc/guix-cookbook.texi:982
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:984 2084#: guix-git/doc/guix-cookbook.texi:984
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:988 2089#: guix-git/doc/guix-cookbook.texi:988
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:991 2094#: guix-git/doc/guix-cookbook.texi:991
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:998 2099#: guix-git/doc/guix-cookbook.texi:998
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:1012 2104#: guix-git/doc/guix-cookbook.texi:1012
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:1068 2136#: guix-git/doc/guix-cookbook.texi:1068
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:1073 2253#: guix-git/doc/guix-cookbook.texi:1073
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:1075 2258#: guix-git/doc/guix-cookbook.texi:1075
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:1076 2263#: guix-git/doc/guix-cookbook.texi:1076
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:1083 2269#: guix-git/doc/guix-cookbook.texi:1083
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:1087 2274#: guix-git/doc/guix-cookbook.texi:1087
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:1092 2279#: guix-git/doc/guix-cookbook.texi:1092
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:1096 2284#: guix-git/doc/guix-cookbook.texi:1096
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:1102 2289#: guix-git/doc/guix-cookbook.texi:1102
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:1107 2303#: guix-git/doc/guix-cookbook.texi:1107
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:1110 2308#: guix-git/doc/guix-cookbook.texi:1110
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:1111 2313#: guix-git/doc/guix-cookbook.texi:1111
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:1117 2319#: guix-git/doc/guix-cookbook.texi:1117
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:1120 2324#: guix-git/doc/guix-cookbook.texi:1120
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:1121 2329#: guix-git/doc/guix-cookbook.texi:1121
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:1124 2335#: guix-git/doc/guix-cookbook.texi:1124
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:1126 2340#: guix-git/doc/guix-cookbook.texi:1126
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:1129 2346#: guix-git/doc/guix-cookbook.texi:1129
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:1129 2351#: guix-git/doc/guix-cookbook.texi:1129
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:1132 2357#: guix-git/doc/guix-cookbook.texi:1132
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:1132 2362#: guix-git/doc/guix-cookbook.texi:1132
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:1135 2368#: guix-git/doc/guix-cookbook.texi:1135
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:1138 2373#: guix-git/doc/guix-cookbook.texi:1138
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:1142 2378#: guix-git/doc/guix-cookbook.texi:1142
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:1149 2383#: guix-git/doc/guix-cookbook.texi:1149
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:1155 2388#: guix-git/doc/guix-cookbook.texi:1155
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:1156 doc/guix-cookbook.texi:2317 2393#: guix-git/doc/guix-cookbook.texi:1156 guix-git/doc/guix-cookbook.texi:2317
2393#: doc/guix-cookbook.texi:3973 doc/guix-cookbook.texi:5140 2394#: guix-git/doc/guix-cookbook.texi:3971 guix-git/doc/guix-cookbook.texi:5138
2394#: doc/guix-cookbook.texi:5194 2395#: guix-git/doc/guix-cookbook.texi:5192
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:1159 2401#: guix-git/doc/guix-cookbook.texi:1159
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:1166 2406#: guix-git/doc/guix-cookbook.texi:1166
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:1172 2422#: guix-git/doc/guix-cookbook.texi:1172
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:1174 2427#: guix-git/doc/guix-cookbook.texi:1174
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:1178 2433#: guix-git/doc/guix-cookbook.texi:1178
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:1180 2438#: guix-git/doc/guix-cookbook.texi:1180
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:1183 2443#: guix-git/doc/guix-cookbook.texi:1183
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:1186 2448#: guix-git/doc/guix-cookbook.texi:1186
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:1188 2453#: guix-git/doc/guix-cookbook.texi:1188
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:1192 2458#: guix-git/doc/guix-cookbook.texi:1192
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:1193 2463#: guix-git/doc/guix-cookbook.texi:1193
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:1196 2469#: guix-git/doc/guix-cookbook.texi:1196
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:1201 2474#: guix-git/doc/guix-cookbook.texi:1201
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:1205 2479#: guix-git/doc/guix-cookbook.texi:1205
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:1209 2484#: guix-git/doc/guix-cookbook.texi:1209
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:1212 2494#: guix-git/doc/guix-cookbook.texi:1212
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:1215 2499#: guix-git/doc/guix-cookbook.texi:1215
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:1221 2505#: guix-git/doc/guix-cookbook.texi:1221
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:1223 2510#: guix-git/doc/guix-cookbook.texi:1223
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:1226 2515#: guix-git/doc/guix-cookbook.texi:1226
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:1230 2521#: guix-git/doc/guix-cookbook.texi:1230
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:1235 2526#: guix-git/doc/guix-cookbook.texi:1235
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:1254 2531#: guix-git/doc/guix-cookbook.texi:1254
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:1257 2571#: guix-git/doc/guix-cookbook.texi:1257
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:1263 2576#: guix-git/doc/guix-cookbook.texi:1263
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:1267 2590#: guix-git/doc/guix-cookbook.texi:1267
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:1270 2595#: guix-git/doc/guix-cookbook.texi:1270
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:1280 2600#: guix-git/doc/guix-cookbook.texi:1280
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:1291 2624#: guix-git/doc/guix-cookbook.texi:1291
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:1299 2650#: guix-git/doc/guix-cookbook.texi:1299
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:1303 2655#: guix-git/doc/guix-cookbook.texi:1303
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:1307 2660#: guix-git/doc/guix-cookbook.texi:1307
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:1309 2665#: guix-git/doc/guix-cookbook.texi:1309
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:1311 2670#: guix-git/doc/guix-cookbook.texi:1311
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:1313 2675#: guix-git/doc/guix-cookbook.texi:1313
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:1320 2680#: guix-git/doc/guix-cookbook.texi:1320
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:1328 2685#: guix-git/doc/guix-cookbook.texi:1328
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:1334 2703#: guix-git/doc/guix-cookbook.texi:1334
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:1335 2708#: guix-git/doc/guix-cookbook.texi:1335
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:1341 2714#: guix-git/doc/guix-cookbook.texi:1341
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:1342 2719#: guix-git/doc/guix-cookbook.texi:1342
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:1347 2725#: guix-git/doc/guix-cookbook.texi:1347
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:1350 2730#: guix-git/doc/guix-cookbook.texi:1350
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:1353 2735#: guix-git/doc/guix-cookbook.texi:1353
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:1357 2740#: guix-git/doc/guix-cookbook.texi:1357
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:1359 2745#: guix-git/doc/guix-cookbook.texi:1359
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:1361 2751#: guix-git/doc/guix-cookbook.texi:1361
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:1361 2756#: guix-git/doc/guix-cookbook.texi:1361
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:1363 2762#: guix-git/doc/guix-cookbook.texi:1363
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:1363 2767#: guix-git/doc/guix-cookbook.texi:1363
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:1365 2773#: guix-git/doc/guix-cookbook.texi:1365
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:1365 2778#: guix-git/doc/guix-cookbook.texi:1365
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:1369 2784#: guix-git/doc/guix-cookbook.texi:1369
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:1369 2789#: guix-git/doc/guix-cookbook.texi:1369
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:1371 2795#: guix-git/doc/guix-cookbook.texi:1371
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:1371 2800#: guix-git/doc/guix-cookbook.texi:1371
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:1373 2806#: guix-git/doc/guix-cookbook.texi:1373
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:1373 2811#: guix-git/doc/guix-cookbook.texi:1373
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:1375 2817#: guix-git/doc/guix-cookbook.texi:1375
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:1375 2822#: guix-git/doc/guix-cookbook.texi:1375
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:1378 2828#: guix-git/doc/guix-cookbook.texi:1378
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:1378 2833#: guix-git/doc/guix-cookbook.texi:1378
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:1380 2839#: guix-git/doc/guix-cookbook.texi:1380
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:1384 2844#: guix-git/doc/guix-cookbook.texi:1384
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:1385 2849#: guix-git/doc/guix-cookbook.texi:1385
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:1395 2855#: guix-git/doc/guix-cookbook.texi:1395
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:1404 2860#: guix-git/doc/guix-cookbook.texi:1404
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:1408 2865#: guix-git/doc/guix-cookbook.texi:1408
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:1413 2870#: guix-git/doc/guix-cookbook.texi:1413
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:1419 2875#: guix-git/doc/guix-cookbook.texi:1419
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:1421 2880#: guix-git/doc/guix-cookbook.texi:1421
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:1436 2885#: guix-git/doc/guix-cookbook.texi:1436
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:1439 2890#: guix-git/doc/guix-cookbook.texi:1439
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:1443 2900#: guix-git/doc/guix-cookbook.texi:1443
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:1447 2914#: guix-git/doc/guix-cookbook.texi:1447
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:1451 2928#: guix-git/doc/guix-cookbook.texi:1451
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:1477 2942#: guix-git/doc/guix-cookbook.texi:1477
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:1481 2998#: guix-git/doc/guix-cookbook.texi:1481
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:1486 3003#: guix-git/doc/guix-cookbook.texi:1486
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:1492 3008#: guix-git/doc/guix-cookbook.texi:1492
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:1495 3013#: guix-git/doc/guix-cookbook.texi:1495
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:1500 3019#: guix-git/doc/guix-cookbook.texi:1500
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:1503 3024#: guix-git/doc/guix-cookbook.texi:1503
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:1510 3030#: guix-git/doc/guix-cookbook.texi:1510
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:1525 3035#: guix-git/doc/guix-cookbook.texi:1525
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:1530 3067#: guix-git/doc/guix-cookbook.texi:1530
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:1538 3072#: guix-git/doc/guix-cookbook.texi:1538
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:1541 3077#: guix-git/doc/guix-cookbook.texi:1541
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:1543 3082#: guix-git/doc/guix-cookbook.texi:1543
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:1551 3087#: guix-git/doc/guix-cookbook.texi:1551
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:1556 3092#: guix-git/doc/guix-cookbook.texi:1556
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:1559 3097#: guix-git/doc/guix-cookbook.texi:1559
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:1564 3102#: guix-git/doc/guix-cookbook.texi:1564
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:1571 3107#: guix-git/doc/guix-cookbook.texi:1571
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:1574 3112#: guix-git/doc/guix-cookbook.texi:1574
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:1577 3117#: guix-git/doc/guix-cookbook.texi:1577
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:1586 3122#: guix-git/doc/guix-cookbook.texi:1586
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:1589 3127#: guix-git/doc/guix-cookbook.texi:1589
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:1616 3132#: guix-git/doc/guix-cookbook.texi:1616
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:1618 3137#: guix-git/doc/guix-cookbook.texi:1618
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:1626 3142#: guix-git/doc/guix-cookbook.texi:1626
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:1633 3162#: guix-git/doc/guix-cookbook.texi:1633
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:1637 3182#: guix-git/doc/guix-cookbook.texi:1637
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:1642 3194#: guix-git/doc/guix-cookbook.texi:1642
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:1649 3199#: guix-git/doc/guix-cookbook.texi:1649
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:1661 3204#: guix-git/doc/guix-cookbook.texi:1661
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:1667 3209#: guix-git/doc/guix-cookbook.texi:1667
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:1672 3214#: guix-git/doc/guix-cookbook.texi:1672
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:1675 3219#: guix-git/doc/guix-cookbook.texi:1675
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:1686 3224#: guix-git/doc/guix-cookbook.texi:1686
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:1690 3248#: guix-git/doc/guix-cookbook.texi:1690
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:1698 3253#: guix-git/doc/guix-cookbook.texi:1698
3253#, no-wrap 3254#, no-wrap
3254msgid "" 3255msgid ""
3255"(define-public linux-libre-5.15\n" 3256"(define-public linux-libre-5.15\n"
@@ -3267,17 +3268,17 @@ msgstr ""
3267" #:configuration-file kernel-config))\n" 3268" #:configuration-file kernel-config))\n"
3268 3269
3269#. type: Plain text 3270#. type: Plain text
3270#: doc/guix-cookbook.texi:1705 3271#: guix-git/doc/guix-cookbook.texi:1705
3271msgid "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." 3272msgid "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."
3272msgstr "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." 3273msgstr "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."
3273 3274
3274#. type: Plain text 3275#. type: Plain text
3275#: doc/guix-cookbook.texi:1711 3276#: guix-git/doc/guix-cookbook.texi:1711
3276msgid "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:" 3277msgid "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:"
3277msgstr "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:" 3278msgstr "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:"
3278 3279
3279#. type: lisp 3280#. type: lisp
3280#: doc/guix-cookbook.texi:1715 3281#: guix-git/doc/guix-cookbook.texi:1715
3281#, no-wrap 3282#, no-wrap
3282msgid "" 3283msgid ""
3283"(let ((build (assoc-ref %standard-phases 'build))\n" 3284"(let ((build (assoc-ref %standard-phases 'build))\n"
@@ -3289,7 +3290,7 @@ msgstr ""
3289"\n" 3290"\n"
3290 3291
3291#. type: lisp 3292#. type: lisp
3292#: doc/guix-cookbook.texi:1723 3293#: guix-git/doc/guix-cookbook.texi:1723
3293#, no-wrap 3294#, no-wrap
3294msgid "" 3295msgid ""
3295" ;; Use a custom kernel configuration file or a default\n" 3296" ;; Use a custom kernel configuration file or a default\n"
@@ -3309,12 +3310,12 @@ msgstr ""
3309" (invoke \"make\" ,defconfig)))\n" 3310" (invoke \"make\" ,defconfig)))\n"
3310 3311
3311#. type: Plain text 3312#. type: Plain text
3312#: doc/guix-cookbook.texi:1728 3313#: guix-git/doc/guix-cookbook.texi:1728
3313msgid "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:" 3314msgid "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:"
3314msgstr "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." 3315msgstr "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."
3315 3316
3316#. type: lisp 3317#. type: lisp
3317#: doc/guix-cookbook.texi:1737 3318#: guix-git/doc/guix-cookbook.texi:1737
3318#, no-wrap 3319#, no-wrap
3319msgid "" 3320msgid ""
3320"(define-public linux-libre/E2140\n" 3321"(define-public linux-libre/E2140\n"
@@ -3334,17 +3335,17 @@ msgstr ""
3334" (package-native-inputs linux-libre))))))\n" 3335" (package-native-inputs linux-libre))))))\n"
3335 3336
3336#. type: Plain text 3337#. type: Plain text
3337#: doc/guix-cookbook.texi:1744 3338#: guix-git/doc/guix-cookbook.texi:1744
3338msgid "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." 3339msgid "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."
3339msgstr "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." 3340msgstr "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."
3340 3341
3341#. type: Plain text 3342#. type: Plain text
3342#: doc/guix-cookbook.texi:1749 3343#: guix-git/doc/guix-cookbook.texi:1749
3343msgid "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:" 3344msgid "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:"
3344msgstr "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:" 3345msgstr "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:"
3345 3346
3346#. type: lisp 3347#. type: lisp
3347#: doc/guix-cookbook.texi:1765 3348#: guix-git/doc/guix-cookbook.texi:1765
3348#, no-wrap 3349#, no-wrap
3349msgid "" 3350msgid ""
3350"(define %default-extra-linux-options\n" 3351"(define %default-extra-linux-options\n"
@@ -3380,7 +3381,7 @@ msgstr ""
3380"\n" 3381"\n"
3381 3382
3382#. type: lisp 3383#. type: lisp
3383#: doc/guix-cookbook.texi:1776 3384#: guix-git/doc/guix-cookbook.texi:1776
3384#, no-wrap 3385#, no-wrap
3385msgid "" 3386msgid ""
3386"(define (config->string options)\n" 3387"(define (config->string options)\n"
@@ -3406,12 +3407,12 @@ msgstr ""
3406" \"\\n\"))\n" 3407" \"\\n\"))\n"
3407 3408
3408#. type: Plain text 3409#. type: Plain text
3409#: doc/guix-cookbook.texi:1779 3410#: guix-git/doc/guix-cookbook.texi:1779
3410msgid "And in the custom configure script from the `make-linux-libre` package:" 3411msgid "And in the custom configure script from the `make-linux-libre` package:"
3411msgstr "Und im eigenen configure-Skript des „make-linux-libre“-Pakets:" 3412msgstr "Und im eigenen configure-Skript des „make-linux-libre“-Pakets:"
3412 3413
3413#. type: lisp 3414#. type: lisp
3414#: doc/guix-cookbook.texi:1787 3415#: guix-git/doc/guix-cookbook.texi:1787
3415#, no-wrap 3416#, no-wrap
3416msgid "" 3417msgid ""
3417";; Appending works even when the option wasn't in the\n" 3418";; Appending works even when the option wasn't in the\n"
@@ -3431,18 +3432,18 @@ msgstr ""
3431"\n" 3432"\n"
3432 3433
3433#. type: lisp 3434#. type: lisp
3434#: doc/guix-cookbook.texi:1789 3435#: guix-git/doc/guix-cookbook.texi:1789
3435#, no-wrap 3436#, no-wrap
3436msgid "(invoke \"make\" \"oldconfig\")\n" 3437msgid "(invoke \"make\" \"oldconfig\")\n"
3437msgstr "(invoke \"make\" \"oldconfig\")\n" 3438msgstr "(invoke \"make\" \"oldconfig\")\n"
3438 3439
3439#. type: Plain text 3440#. type: Plain text
3440#: doc/guix-cookbook.texi:1794 3441#: guix-git/doc/guix-cookbook.texi:1794
3441msgid "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:" 3442msgid "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:"
3442msgstr "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:" 3443msgstr "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:"
3443 3444
3444#. type: lisp 3445#. type: lisp
3445#: doc/guix-cookbook.texi:1802 3446#: guix-git/doc/guix-cookbook.texi:1802
3446#, no-wrap 3447#, no-wrap
3447msgid "" 3448msgid ""
3448"(define %macbook41-full-config\n" 3449"(define %macbook41-full-config\n"
@@ -3462,7 +3463,7 @@ msgstr ""
3462"\n" 3463"\n"
3463 3464
3464#. type: lisp 3465#. type: lisp
3465#: doc/guix-cookbook.texi:1813 3466#: guix-git/doc/guix-cookbook.texi:1813
3466#, no-wrap 3467#, no-wrap
3467msgid "" 3468msgid ""
3468"(define-public linux-libre-macbook41\n" 3469"(define-public linux-libre-macbook41\n"
@@ -3488,55 +3489,55 @@ msgstr ""
3488" #:extra-options %macbook41-config-options))\n" 3489" #:extra-options %macbook41-config-options))\n"
3489 3490
3490#. type: Plain text 3491#. type: Plain text
3491#: doc/guix-cookbook.texi:1820 3492#: guix-git/doc/guix-cookbook.texi:1820
3492msgid "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. @code{%default-extra-linux-options} are the ones quoted above, which had to be added in since they were replaced in the @code{extra-options} keyword." 3493msgid "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. @code{%default-extra-linux-options} are the ones quoted above, which had to be added in since they were replaced in the @code{extra-options} keyword."
3493msgstr "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 @code{%default-extra-linux-options} sind die oben zitierten, die wieder hinzugefügt werden mussten, weil sie durch das @code{extra-options}-Schlüsselwort ersetzt worden waren." 3494msgstr "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 @code{%default-extra-linux-options} sind die oben zitierten, die wieder hinzugefügt werden mussten, weil sie durch das @code{extra-options}-Schlüsselwort ersetzt worden waren."
3494 3495
3495#. type: Plain text 3496#. type: Plain text
3496#: doc/guix-cookbook.texi:1829 3497#: guix-git/doc/guix-cookbook.texi:1829
3497msgid "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." 3498msgid "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."
3498msgstr "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." 3499msgstr "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."
3499 3500
3500#. type: Plain text 3501#. type: Plain text
3501#: doc/guix-cookbook.texi:1832 3502#: guix-git/doc/guix-cookbook.texi:1832
3502msgid "In order to actually run @code{make localmodconfig} we first need to get and unpack the kernel source code:" 3503msgid "In order to actually run @code{make localmodconfig} we first need to get and unpack the kernel source code:"
3503msgstr "Um @code{make localmodconfig} auch tatsächlich ausführen zu können, müssen wir zunächst den Quellcode des Kernels holen und entpacken:" 3504msgstr "Um @code{make localmodconfig} auch tatsächlich ausführen zu können, müssen wir zunächst den Quellcode des Kernels holen und entpacken:"
3504 3505
3505#. type: example 3506#. type: example
3506#: doc/guix-cookbook.texi:1835 3507#: guix-git/doc/guix-cookbook.texi:1835
3507#, no-wrap 3508#, no-wrap
3508msgid "tar xf $(guix build linux-libre --source)\n" 3509msgid "tar xf $(guix build linux-libre --source)\n"
3509msgstr "tar xf $(guix build linux-libre --source)\n" 3510msgstr "tar xf $(guix build linux-libre --source)\n"
3510 3511
3511#. type: Plain text 3512#. type: Plain text
3512#: doc/guix-cookbook.texi:1842 3513#: guix-git/doc/guix-cookbook.texi:1842
3513msgid "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:" 3514msgid "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:"
3514msgstr "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:" 3515msgstr "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:"
3515 3516
3516#. type: example 3517#. type: example
3517#: doc/guix-cookbook.texi:1845 3518#: guix-git/doc/guix-cookbook.texi:1845
3518#, no-wrap 3519#, no-wrap
3519msgid "guix shell -D linux-libre -- make localmodconfig\n" 3520msgid "guix shell -D linux-libre -- make localmodconfig\n"
3520msgstr "guix shell -D linux-libre -- make localmodconfig\n" 3521msgstr "guix shell -D linux-libre -- make localmodconfig\n"
3521 3522
3522#. type: Plain text 3523#. type: Plain text
3523#: doc/guix-cookbook.texi:1850 3524#: guix-git/doc/guix-cookbook.texi:1850
3524msgid "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:" 3525msgid "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:"
3525msgstr "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:" 3526msgstr "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:"
3526 3527
3527#. type: example 3528#. type: example
3528#: doc/guix-cookbook.texi:1853 3529#: guix-git/doc/guix-cookbook.texi:1853
3529#, no-wrap 3530#, no-wrap
3530msgid "module pcspkr did not have configs CONFIG_INPUT_PCSPKR\n" 3531msgid "module pcspkr did not have configs CONFIG_INPUT_PCSPKR\n"
3531msgstr "module pcspkr did not have configs CONFIG_INPUT_PCSPKR\n" 3532msgstr "module pcspkr did not have configs CONFIG_INPUT_PCSPKR\n"
3532 3533
3533#. type: Plain text 3534#. type: Plain text
3534#: doc/guix-cookbook.texi:1858 3535#: guix-git/doc/guix-cookbook.texi:1858
3535msgid "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:" 3536msgid "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:"
3536msgstr "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:" 3537msgstr "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:"
3537 3538
3538#. type: example 3539#. type: example
3539#: doc/guix-cookbook.texi:1862 3540#: guix-git/doc/guix-cookbook.texi:1862
3540#, no-wrap 3541#, no-wrap
3541msgid "" 3542msgid ""
3542"CONFIG_INPUT_PCSPKR=m\n" 3543"CONFIG_INPUT_PCSPKR=m\n"
@@ -3546,42 +3547,42 @@ msgstr ""
3546"CONFIG_VIRTIO=m\n" 3547"CONFIG_VIRTIO=m\n"
3547 3548
3548#. type: Plain text 3549#. type: Plain text
3549#: doc/guix-cookbook.texi:1871 3550#: guix-git/doc/guix-cookbook.texi:1871
3550msgid "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." 3551msgid "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."
3551msgstr "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." 3552msgstr "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."
3552 3553
3553#. type: Plain text 3554#. type: Plain text
3554#: doc/guix-cookbook.texi:1875 3555#: guix-git/doc/guix-cookbook.texi:1875
3555msgid "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." 3556msgid "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."
3556msgstr "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." 3557msgstr "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."
3557 3558
3558#. type: Plain text 3559#. type: Plain text
3559#: doc/guix-cookbook.texi:1883 3560#: guix-git/doc/guix-cookbook.texi:1883
3560msgid "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." 3561msgid "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."
3561msgstr "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." 3562msgstr "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."
3562 3563
3563#. type: Plain text 3564#. type: Plain text
3564#: doc/guix-cookbook.texi:1888 3565#: guix-git/doc/guix-cookbook.texi:1888
3565msgid "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." 3566msgid "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."
3566msgstr "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." 3567msgstr "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."
3567 3568
3568#. type: Plain text 3569#. type: Plain text
3569#: doc/guix-cookbook.texi:1895 3570#: guix-git/doc/guix-cookbook.texi:1895
3570msgid "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." 3571msgid "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."
3571msgstr "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." 3572msgstr "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."
3572 3573
3573#. type: Plain text 3574#. type: Plain text
3574#: doc/guix-cookbook.texi:1901 3575#: guix-git/doc/guix-cookbook.texi:1901
3575msgid "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." 3576msgid "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."
3576msgstr "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." 3577msgstr "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."
3577 3578
3578#. type: Plain text 3579#. type: Plain text
3579#: doc/guix-cookbook.texi:1906 3580#: guix-git/doc/guix-cookbook.texi:1906
3580msgid "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." 3581msgid "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."
3581msgstr "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." 3582msgstr "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."
3582 3583
3583#. type: lisp 3584#. type: lisp
3584#: doc/guix-cookbook.texi:1928 3585#: guix-git/doc/guix-cookbook.texi:1928
3585#, no-wrap 3586#, no-wrap
3586msgid "" 3587msgid ""
3587"(define-record-type* <image>\n" 3588"(define-record-type* <image>\n"
@@ -3627,46 +3628,46 @@ msgstr ""
3627" (default #t)))\n" 3628" (default #t)))\n"
3628 3629
3629#. type: Plain text 3630#. type: Plain text
3630#: doc/guix-cookbook.texi:1934 3631#: guix-git/doc/guix-cookbook.texi:1934
3631msgid "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." 3632msgid "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."
3632msgstr "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." 3633msgstr "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."
3633 3634
3634#. type: Plain text 3635#. type: Plain text
3635#: doc/guix-cookbook.texi:1937 3636#: guix-git/doc/guix-cookbook.texi:1937
3636msgid "A new directory in the Guix sources is dedicated to images definition. For now there are four files:" 3637msgid "A new directory in the Guix sources is dedicated to images definition. For now there are four files:"
3637msgstr "Ein neues Verzeichnis im Guix-Quellbaum wurde Abbilddefinitionen gewidmet. Zurzeit gibt es vier Dateien darin:" 3638msgstr "Ein neues Verzeichnis im Guix-Quellbaum wurde Abbilddefinitionen gewidmet. Zurzeit gibt es vier Dateien darin:"
3638 3639
3639#. type: file{#1} 3640#. type: file{#1}
3640#: doc/guix-cookbook.texi:1939 3641#: guix-git/doc/guix-cookbook.texi:1939
3641#, no-wrap 3642#, no-wrap
3642msgid "gnu/system/images/hurd.scm" 3643msgid "gnu/system/images/hurd.scm"
3643msgstr "gnu/system/images/hurd.scm" 3644msgstr "gnu/system/images/hurd.scm"
3644 3645
3645#. type: file{#1} 3646#. type: file{#1}
3646#: doc/guix-cookbook.texi:1940 3647#: guix-git/doc/guix-cookbook.texi:1940
3647#, no-wrap 3648#, no-wrap
3648msgid "gnu/system/images/pine64.scm" 3649msgid "gnu/system/images/pine64.scm"
3649msgstr "gnu/system/images/pine64.scm" 3650msgstr "gnu/system/images/pine64.scm"
3650 3651
3651#. type: file{#1} 3652#. type: file{#1}
3652#: doc/guix-cookbook.texi:1941 3653#: guix-git/doc/guix-cookbook.texi:1941
3653#, no-wrap 3654#, no-wrap
3654msgid "gnu/system/images/novena.scm" 3655msgid "gnu/system/images/novena.scm"
3655msgstr "gnu/system/images/novena.scm" 3656msgstr "gnu/system/images/novena.scm"
3656 3657
3657#. type: file{#1} 3658#. type: file{#1}
3658#: doc/guix-cookbook.texi:1942 3659#: guix-git/doc/guix-cookbook.texi:1942
3659#, no-wrap 3660#, no-wrap
3660msgid "gnu/system/images/pinebook-pro.scm" 3661msgid "gnu/system/images/pinebook-pro.scm"
3661msgstr "gnu/system/images/pinebook-pro.scm" 3662msgstr "gnu/system/images/pinebook-pro.scm"
3662 3663
3663#. type: Plain text 3664#. type: Plain text
3664#: doc/guix-cookbook.texi:1948 3665#: guix-git/doc/guix-cookbook.texi:1948
3665msgid "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." 3666msgid "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."
3666msgstr "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." 3667msgstr "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."
3667 3668
3668#. type: lisp 3669#. type: lisp
3669#: doc/guix-cookbook.texi:1972 3670#: guix-git/doc/guix-cookbook.texi:1972
3670#, no-wrap 3671#, no-wrap
3671msgid "" 3672msgid ""
3672"(define pine64-barebones-os\n" 3673"(define pine64-barebones-os\n"
@@ -3716,17 +3717,17 @@ msgstr ""
3716" %base-services))))\n" 3717" %base-services))))\n"
3717 3718
3718#. type: Plain text 3719#. type: Plain text
3719#: doc/guix-cookbook.texi:1976 3720#: guix-git/doc/guix-cookbook.texi:1976
3720msgid "The @code{kernel} and @code{bootloader} fields are pointing to packages dedicated to this board." 3721msgid "The @code{kernel} and @code{bootloader} fields are pointing to packages dedicated to this board."
3721msgstr "Die Felder @code{kernel} und @code{bootloader} verweisen auf platinenspezifische Pakete." 3722msgstr "Die Felder @code{kernel} und @code{bootloader} verweisen auf platinenspezifische Pakete."
3722 3723
3723#. type: Plain text 3724#. type: Plain text
3724#: doc/guix-cookbook.texi:1978 3725#: guix-git/doc/guix-cookbook.texi:1978
3725msgid "Right below, the @code{pine64-image-type} variable is also defined." 3726msgid "Right below, the @code{pine64-image-type} variable is also defined."
3726msgstr "Direkt darunter wird auch die Variable @code{pine64-image-type} definiert." 3727msgstr "Direkt darunter wird auch die Variable @code{pine64-image-type} definiert."
3727 3728
3728#. type: lisp 3729#. type: lisp
3729#: doc/guix-cookbook.texi:1984 3730#: guix-git/doc/guix-cookbook.texi:1984
3730#, no-wrap 3731#, no-wrap
3731msgid "" 3732msgid ""
3732"(define pine64-image-type\n" 3733"(define pine64-image-type\n"
@@ -3740,12 +3741,12 @@ msgstr ""
3740" (constructor (cut image-with-os arm64-disk-image <>))))\n" 3741" (constructor (cut image-with-os arm64-disk-image <>))))\n"
3741 3742
3742#. type: Plain text 3743#. type: Plain text
3743#: doc/guix-cookbook.texi:1988 3744#: guix-git/doc/guix-cookbook.texi:1988
3744msgid "It's using a record we haven't talked about yet, the @code{image-type} record, defined this way:" 3745msgid "It's using a record we haven't talked about yet, the @code{image-type} record, defined this way:"
3745msgstr "Sie benutzt einen Verbundstyp, über den wir noch nicht gesprochen haben, den @code{image-type}-Verbund. Er ist wie folgt definiert:" 3746msgstr "Sie benutzt einen Verbundstyp, über den wir noch nicht gesprochen haben, den @code{image-type}-Verbund. Er ist wie folgt definiert:"
3746 3747
3747#. type: lisp 3748#. type: lisp
3748#: doc/guix-cookbook.texi:1995 3749#: guix-git/doc/guix-cookbook.texi:1995
3749#, no-wrap 3750#, no-wrap
3750msgid "" 3751msgid ""
3751"(define-record-type* <image-type>\n" 3752"(define-record-type* <image-type>\n"
@@ -3761,39 +3762,39 @@ msgstr ""
3761" (constructor image-type-constructor)) ;<operating-system> -> <image>\n" 3762" (constructor image-type-constructor)) ;<operating-system> -> <image>\n"
3762 3763
3763#. type: Plain text 3764#. type: Plain text
3764#: doc/guix-cookbook.texi:2001 3765#: guix-git/doc/guix-cookbook.texi:2001
3765msgid "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:" 3766msgid "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:"
3766msgstr "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:" 3767msgstr "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:"
3767 3768
3768#. type: example 3769#. type: example
3769#: doc/guix-cookbook.texi:2004 3770#: guix-git/doc/guix-cookbook.texi:2004
3770#, no-wrap 3771#, no-wrap
3771msgid "guix system image my-os.scm\n" 3772msgid "guix system image my-os.scm\n"
3772msgstr "guix system image my-os.scm\n" 3773msgstr "guix system image my-os.scm\n"
3773 3774
3774#. type: Plain text 3775#. type: Plain text
3775#: doc/guix-cookbook.texi:2010 3776#: guix-git/doc/guix-cookbook.texi:2010
3776msgid "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:" 3777msgid "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:"
3777msgstr "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:" 3778msgstr "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:"
3778 3779
3779#. type: example 3780#. type: example
3780#: doc/guix-cookbook.texi:2013 3781#: guix-git/doc/guix-cookbook.texi:2013
3781#, no-wrap 3782#, no-wrap
3782msgid "guix system image --image-type=pine64-raw my-os.scm\n" 3783msgid "guix system image --image-type=pine64-raw my-os.scm\n"
3783msgstr "guix system image --image-type=pine64-raw my-os.scm\n" 3784msgstr "guix system image --image-type=pine64-raw my-os.scm\n"
3784 3785
3785#. type: Plain text 3786#. type: Plain text
3786#: doc/guix-cookbook.texi:2019 3787#: guix-git/doc/guix-cookbook.texi:2019
3787msgid "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." 3788msgid "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."
3788msgstr "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." 3789msgstr "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."
3789 3790
3790#. type: Plain text 3791#. type: Plain text
3791#: doc/guix-cookbook.texi:2021 3792#: guix-git/doc/guix-cookbook.texi:2021
3792msgid "The resulting image looks like:" 3793msgid "The resulting image looks like:"
3793msgstr "Es ergibt sich ein Abbild wie dieses:" 3794msgstr "Es ergibt sich ein Abbild wie dieses:"
3794 3795
3795#. type: lisp 3796#. type: lisp
3796#: doc/guix-cookbook.texi:2031 3797#: guix-git/doc/guix-cookbook.texi:2031
3797#, no-wrap 3798#, no-wrap
3798msgid "" 3799msgid ""
3799"(image\n" 3800"(image\n"
@@ -3815,22 +3816,22 @@ msgstr ""
3815" (offset root-offset)))))\n" 3816" (offset root-offset)))))\n"
3816 3817
3817#. type: Plain text 3818#. type: Plain text
3818#: doc/guix-cookbook.texi:2035 3819#: guix-git/doc/guix-cookbook.texi:2035
3819msgid "which is the aggregation of the @code{operating-system} defined in @code{my-os.scm} to the @code{arm64-disk-image} record." 3820msgid "which is the aggregation of the @code{operating-system} defined in @code{my-os.scm} to the @code{arm64-disk-image} record."
3820msgstr "Das ist das Aggregat aus dem in @code{my-os.scm} definierten @code{operating-system} und dem @code{arm64-disk-image}-Verbundsobjekt." 3821msgstr "Das ist das Aggregat aus dem in @code{my-os.scm} definierten @code{operating-system} und dem @code{arm64-disk-image}-Verbundsobjekt."
3821 3822
3822#. type: Plain text 3823#. type: Plain text
3823#: doc/guix-cookbook.texi:2037 3824#: guix-git/doc/guix-cookbook.texi:2037
3824msgid "But enough Scheme madness. What does this image API bring to the Guix user?" 3825msgid "But enough Scheme madness. What does this image API bring to the Guix user?"
3825msgstr "Aber genug vom Scheme-Wahnsinn. Was nützt die Image-Schnittstelle dem Nutzer von Guix?" 3826msgstr "Aber genug vom Scheme-Wahnsinn. Was nützt die Image-Schnittstelle dem Nutzer von Guix?"
3826 3827
3827#. type: Plain text 3828#. type: Plain text
3828#: doc/guix-cookbook.texi:2039 3829#: guix-git/doc/guix-cookbook.texi:2039
3829msgid "One can run:" 3830msgid "One can run:"
3830msgstr "Sie können das ausführen:" 3831msgstr "Sie können das ausführen:"
3831 3832
3832#. type: example 3833#. type: example
3833#: doc/guix-cookbook.texi:2043 3834#: guix-git/doc/guix-cookbook.texi:2043
3834#, no-wrap 3835#, no-wrap
3835msgid "" 3836msgid ""
3836"mathieu@@cervin:~$ guix system --list-image-types\n" 3837"mathieu@@cervin:~$ guix system --list-image-types\n"
@@ -3842,7 +3843,7 @@ msgstr ""
3842"\n" 3843"\n"
3843 3844
3844#. type: example 3845#. type: example
3845#: doc/guix-cookbook.texi:2061 3846#: guix-git/doc/guix-cookbook.texi:2061
3846#, no-wrap 3847#, no-wrap
3847msgid "" 3848msgid ""
3848" - unmatched-raw\n" 3849" - unmatched-raw\n"
@@ -3882,12 +3883,12 @@ msgstr ""
3882" - efi32-raw\n" 3883" - efi32-raw\n"
3883 3884
3884#. type: Plain text 3885#. type: Plain text
3885#: doc/guix-cookbook.texi:2066 3886#: guix-git/doc/guix-cookbook.texi:2066
3886msgid "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:" 3887msgid "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:"
3887msgstr "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}:" 3888msgstr "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}:"
3888 3889
3889#. type: lisp 3890#. type: lisp
3890#: doc/guix-cookbook.texi:2070 3891#: guix-git/doc/guix-cookbook.texi:2070
3891#, no-wrap 3892#, no-wrap
3892msgid "" 3893msgid ""
3893"(use-modules (gnu services linux)\n" 3894"(use-modules (gnu services linux)\n"
@@ -3899,7 +3900,7 @@ msgstr ""
3899"\n" 3900"\n"
3900 3901
3901#. type: lisp 3902#. type: lisp
3902#: doc/guix-cookbook.texi:2081 3903#: guix-git/doc/guix-cookbook.texi:2081
3903#, no-wrap 3904#, no-wrap
3904msgid "" 3905msgid ""
3905"(let ((base-os pine64-barebones-os))\n" 3906"(let ((base-os pine64-barebones-os))\n"
@@ -3925,89 +3926,89 @@ msgstr ""
3925" (operating-system-user-services base-os)))))\n" 3926" (operating-system-user-services base-os)))))\n"
3926 3927
3927#. type: Plain text 3928#. type: Plain text
3928#: doc/guix-cookbook.texi:2084 3929#: guix-git/doc/guix-cookbook.texi:2084
3929msgid "run:" 3930msgid "run:"
3930msgstr "Führen Sie aus:" 3931msgstr "Führen Sie aus:"
3931 3932
3932#. type: example 3933#. type: example
3933#: doc/guix-cookbook.texi:2087 3934#: guix-git/doc/guix-cookbook.texi:2087
3934#, no-wrap 3935#, no-wrap
3935msgid "guix system image --image-type=pine64-raw my-pine-os.scm\n" 3936msgid "guix system image --image-type=pine64-raw my-pine-os.scm\n"
3936msgstr "guix system image --image-type=pine64-raw my-pine-os.scm\n" 3937msgstr "guix system image --image-type=pine64-raw my-pine-os.scm\n"
3937 3938
3938#. type: Plain text 3939#. type: Plain text
3939#: doc/guix-cookbook.texi:2090 3940#: guix-git/doc/guix-cookbook.texi:2090
3940msgid "or," 3941msgid "or,"
3941msgstr "oder" 3942msgstr "oder"
3942 3943
3943#. type: example 3944#. type: example
3944#: doc/guix-cookbook.texi:2093 3945#: guix-git/doc/guix-cookbook.texi:2093
3945#, no-wrap 3946#, no-wrap
3946msgid "guix system image --image-type=hurd-raw my-hurd-os.scm\n" 3947msgid "guix system image --image-type=hurd-raw my-hurd-os.scm\n"
3947msgstr "guix system image --image-type=hurd-raw my-hurd-os.scm\n" 3948msgstr "guix system image --image-type=hurd-raw my-hurd-os.scm\n"
3948 3949
3949#. type: Plain text 3950#. type: Plain text
3950#: doc/guix-cookbook.texi:2097 3951#: guix-git/doc/guix-cookbook.texi:2097
3951msgid "to get an image that can be written directly to a hard drive and booted from." 3952msgid "to get an image that can be written directly to a hard drive and booted from."
3952msgstr "und Sie bekommen ein Abbild, das Sie direkt auf eine Festplatte kopieren und starten können." 3953msgstr "und Sie bekommen ein Abbild, das Sie direkt auf eine Festplatte kopieren und starten können."
3953 3954
3954#. type: Plain text 3955#. type: Plain text
3955#: doc/guix-cookbook.texi:2099 3956#: guix-git/doc/guix-cookbook.texi:2099
3956msgid "Without changing anything to @code{my-hurd-os.scm}, calling:" 3957msgid "Without changing anything to @code{my-hurd-os.scm}, calling:"
3957msgstr "Ohne irgendetwas an @code{my-hurd-os.scm} zu ändern, bewirkt ein Aufruf" 3958msgstr "Ohne irgendetwas an @code{my-hurd-os.scm} zu ändern, bewirkt ein Aufruf"
3958 3959
3959#. type: example 3960#. type: example
3960#: doc/guix-cookbook.texi:2102 3961#: guix-git/doc/guix-cookbook.texi:2102
3961#, no-wrap 3962#, no-wrap
3962msgid "guix system image --image-type=hurd-qcow2 my-hurd-os.scm\n" 3963msgid "guix system image --image-type=hurd-qcow2 my-hurd-os.scm\n"
3963msgstr "guix system image --image-type=hurd-qcow2 my-hurd-os.scm\n" 3964msgstr "guix system image --image-type=hurd-qcow2 my-hurd-os.scm\n"
3964 3965
3965#. type: Plain text 3966#. type: Plain text
3966#: doc/guix-cookbook.texi:2105 3967#: guix-git/doc/guix-cookbook.texi:2105
3967msgid "will instead produce a Hurd QEMU image." 3968msgid "will instead produce a Hurd QEMU image."
3968msgstr "dass stattdessen ein Hurd-Abbild für QEMU erzeugt wird." 3969msgstr "dass stattdessen ein Hurd-Abbild für QEMU erzeugt wird."
3969 3970
3970#. type: cindex 3971#. type: cindex
3971#: doc/guix-cookbook.texi:2108 3972#: guix-git/doc/guix-cookbook.texi:2108
3972#, no-wrap 3973#, no-wrap
3973msgid "2FA, two-factor authentication" 3974msgid "2FA, two-factor authentication"
3974msgstr "2FA, Zwei-Faktor-Authentisierung" 3975msgstr "2FA, Zwei-Faktor-Authentisierung"
3975 3976
3976#. type: cindex 3977#. type: cindex
3977#: doc/guix-cookbook.texi:2109 3978#: guix-git/doc/guix-cookbook.texi:2109
3978#, no-wrap 3979#, no-wrap
3979msgid "U2F, Universal 2nd Factor" 3980msgid "U2F, Universal 2nd Factor"
3980msgstr "U2F, Universal 2nd Factor" 3981msgstr "U2F, Universal 2nd Factor"
3981 3982
3982#. type: cindex 3983#. type: cindex
3983#: doc/guix-cookbook.texi:2110 3984#: guix-git/doc/guix-cookbook.texi:2110
3984#, no-wrap 3985#, no-wrap
3985msgid "security key, configuration" 3986msgid "security key, configuration"
3986msgstr "Sicherheitsschlüssel, einrichten" 3987msgstr "Sicherheitsschlüssel, einrichten"
3987 3988
3988#. type: Plain text 3989#. type: Plain text
3989#: doc/guix-cookbook.texi:2117 3990#: guix-git/doc/guix-cookbook.texi:2117
3990msgid "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." 3991msgid "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."
3991msgstr "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." 3992msgstr "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."
3992 3993
3993#. type: Plain text 3994#. type: Plain text
3994#: doc/guix-cookbook.texi:2122 3995#: guix-git/doc/guix-cookbook.texi:2122
3995msgid "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." 3996msgid "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."
3996msgstr "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." 3997msgstr "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."
3997 3998
3998#. type: subsection 3999#. type: subsection
3999#: doc/guix-cookbook.texi:2123 4000#: guix-git/doc/guix-cookbook.texi:2123
4000#, no-wrap 4001#, no-wrap
4001msgid "Configuration for use as a two-factor authenticator (2FA)" 4002msgid "Configuration for use as a two-factor authenticator (2FA)"
4002msgstr "Einrichten einer Zwei-Faktor-Authentisierung (2FA)" 4003msgstr "Einrichten einer Zwei-Faktor-Authentisierung (2FA)"
4003 4004
4004#. type: Plain text 4005#. type: Plain text
4005#: doc/guix-cookbook.texi:2131 4006#: guix-git/doc/guix-cookbook.texi:2131
4006msgid "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:" 4007msgid "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:"
4007msgstr "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:" 4008msgstr "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:"
4008 4009
4009#. type: lisp 4010#. type: lisp
4010#: doc/guix-cookbook.texi:2150 4011#: guix-git/doc/guix-cookbook.texi:2150
4011#, no-wrap 4012#, no-wrap
4012msgid "" 4013msgid ""
4013"(use-package-modules ... security-token ...)\n" 4014"(use-package-modules ... security-token ...)\n"
@@ -4047,73 +4048,73 @@ msgstr ""
4047" (udev-rules-service 'fido2 libfido2 #:groups '(\"plugdev\")))))\n" 4048" (udev-rules-service 'fido2 libfido2 #:groups '(\"plugdev\")))))\n"
4048 4049
4049#. type: Plain text 4050#. type: Plain text
4050#: doc/guix-cookbook.texi:2155 4051#: guix-git/doc/guix-cookbook.texi:2155
4051msgid "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:" 4052msgid "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:"
4052msgstr "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:" 4053msgstr "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:"
4053 4054
4054#. type: example 4055#. type: example
4055#: doc/guix-cookbook.texi:2158 4056#: guix-git/doc/guix-cookbook.texi:2158
4056#, no-wrap 4057#, no-wrap
4057msgid "guix shell ungoogled-chromium -- chromium chrome://settings/securityKeys\n" 4058msgid "guix shell ungoogled-chromium -- chromium chrome://settings/securityKeys\n"
4058msgstr "guix shell ungoogled-chromium -- chromium chrome://settings/securityKeys\n" 4059msgstr "guix shell ungoogled-chromium -- chromium chrome://settings/securityKeys\n"
4059 4060
4060#. type: Plain text 4061#. type: Plain text
4061#: doc/guix-cookbook.texi:2164 4062#: guix-git/doc/guix-cookbook.texi:2164
4062msgid "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)." 4063msgid "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)."
4063msgstr "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." 4064msgstr "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."
4064 4065
4065#. type: subsection 4066#. type: subsection
4066#: doc/guix-cookbook.texi:2165 4067#: guix-git/doc/guix-cookbook.texi:2165
4067#, no-wrap 4068#, no-wrap
4068msgid "Disabling OTP code generation for a Yubikey" 4069msgid "Disabling OTP code generation for a Yubikey"
4069msgstr "Abschalten der OTP-Code-Erzeugung beim Yubikey" 4070msgstr "Abschalten der OTP-Code-Erzeugung beim Yubikey"
4070 4071
4071#. type: cindex 4072#. type: cindex
4072#: doc/guix-cookbook.texi:2166 4073#: guix-git/doc/guix-cookbook.texi:2166
4073#, no-wrap 4074#, no-wrap
4074msgid "disabling yubikey OTP" 4075msgid "disabling yubikey OTP"
4075msgstr "Yubikey-OTP deaktivieren" 4076msgstr "Yubikey-OTP deaktivieren"
4076 4077
4077#. type: Plain text 4078#. type: Plain text
4078#: doc/guix-cookbook.texi:2172 4079#: guix-git/doc/guix-cookbook.texi:2172
4079msgid "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:" 4080msgid "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:"
4080msgstr "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:" 4081msgstr "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:"
4081 4082
4082#. type: example 4083#. type: example
4083#: doc/guix-cookbook.texi:2175 4084#: guix-git/doc/guix-cookbook.texi:2175
4084#, no-wrap 4085#, no-wrap
4085msgid "guix shell python-yubikey-manager -- ykman config usb --force --disable OTP\n" 4086msgid "guix shell python-yubikey-manager -- ykman config usb --force --disable OTP\n"
4086msgstr "guix shell python-yubikey-manager -- ykman config usb --force --disable OTP\n" 4087msgstr "guix shell python-yubikey-manager -- ykman config usb --force --disable OTP\n"
4087 4088
4088#. type: Plain text 4089#. type: Plain text
4089#: doc/guix-cookbook.texi:2182 4090#: guix-git/doc/guix-cookbook.texi:2182
4090msgid "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." 4091msgid "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."
4091msgstr "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." 4092msgstr "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."
4092 4093
4093#. type: subsection 4094#. type: subsection
4094#: doc/guix-cookbook.texi:2183 4095#: guix-git/doc/guix-cookbook.texi:2183
4095#, no-wrap 4096#, no-wrap
4096msgid "Requiring a Yubikey to open a KeePassXC database" 4097msgid "Requiring a Yubikey to open a KeePassXC database"
4097msgstr "Yubikey verlangen, um eine KeePassXC-Datenbank zu entsperren" 4098msgstr "Yubikey verlangen, um eine KeePassXC-Datenbank zu entsperren"
4098 4099
4099#. type: cindex 4100#. type: cindex
4100#: doc/guix-cookbook.texi:2184 4101#: guix-git/doc/guix-cookbook.texi:2184
4101#, no-wrap 4102#, no-wrap
4102msgid "yubikey, keepassxc integration" 4103msgid "yubikey, keepassxc integration"
4103msgstr "Yubikey, KeePassXC-Integration" 4104msgstr "Yubikey, KeePassXC-Integration"
4104 4105
4105#. type: Plain text 4106#. type: Plain text
4106#: doc/guix-cookbook.texi:2188 4107#: guix-git/doc/guix-cookbook.texi:2188
4107msgid "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." 4108msgid "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."
4108msgstr "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." 4109msgstr "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."
4109 4110
4110#. type: Plain text 4111#. type: Plain text
4111#: doc/guix-cookbook.texi:2191 4112#: guix-git/doc/guix-cookbook.texi:2191
4112msgid "The necessary udev rules file comes from the @code{yubikey-personalization} package, and can be installed like:" 4113msgid "The necessary udev rules file comes from the @code{yubikey-personalization} package, and can be installed like:"
4113msgstr "Die erforderliche udev-Regeldatei liegt im Paket @code{yubikey-personalization} und kann hiermit installiert werden:" 4114msgstr "Die erforderliche udev-Regeldatei liegt im Paket @code{yubikey-personalization} und kann hiermit installiert werden:"
4114 4115
4115#. type: lisp 4116#. type: lisp
4116#: doc/guix-cookbook.texi:2201 4117#: guix-git/doc/guix-cookbook.texi:2201
4117#, no-wrap 4118#, no-wrap
4118msgid "" 4119msgid ""
4119"(use-package-modules ... security-token ...)\n" 4120"(use-package-modules ... security-token ...)\n"
@@ -4135,44 +4136,44 @@ msgstr ""
4135" (udev-rules-service 'yubikey yubikey-personalization))))\n" 4136" (udev-rules-service 'yubikey yubikey-personalization))))\n"
4136 4137
4137#. type: Plain text 4138#. type: Plain text
4138#: doc/guix-cookbook.texi:2208 4139#: guix-git/doc/guix-cookbook.texi:2208
4139msgid "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:" 4140msgid "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:"
4140msgstr "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:" 4141msgstr "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:"
4141 4142
4142#. type: example 4143#. type: example
4143#: doc/guix-cookbook.texi:2211 4144#: guix-git/doc/guix-cookbook.texi:2211
4144#, no-wrap 4145#, no-wrap
4145msgid "guix shell yubikey-manager-qt -- ykman-gui\n" 4146msgid "guix shell yubikey-manager-qt -- ykman-gui\n"
4146msgstr "guix shell yubikey-manager-qt -- ykman-gui\n" 4147msgstr "guix shell yubikey-manager-qt -- ykman-gui\n"
4147 4148
4148#. type: Plain text 4149#. type: Plain text
4149#: doc/guix-cookbook.texi:2220 4150#: guix-git/doc/guix-cookbook.texi:2220
4150msgid "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." 4151msgid "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."
4151msgstr "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." 4152msgstr "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."
4152 4153
4153#. type: Plain text 4154#. type: Plain text
4154#: doc/guix-cookbook.texi:2227 4155#: guix-git/doc/guix-cookbook.texi:2227
4155msgid "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." 4156msgid "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."
4156msgstr "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." 4157msgstr "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."
4157 4158
4158#. type: cindex 4159#. type: cindex
4159#: doc/guix-cookbook.texi:2231 4160#: guix-git/doc/guix-cookbook.texi:2231
4160#, no-wrap 4161#, no-wrap
4161msgid "dynamic DNS, DDNS" 4162msgid "dynamic DNS, DDNS"
4162msgstr "dynamisches DNS, DDNS" 4163msgstr "dynamisches DNS, DDNS"
4163 4164
4164#. type: Plain text 4165#. type: Plain text
4165#: doc/guix-cookbook.texi:2241 4166#: guix-git/doc/guix-cookbook.texi:2241
4166msgid "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." 4167msgid "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."
4167msgstr "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." 4168msgstr "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."
4168 4169
4169#. type: Plain text 4170#. type: Plain text
4170#: doc/guix-cookbook.texi:2246 4171#: guix-git/doc/guix-cookbook.texi:2246
4171msgid "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." 4172msgid "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."
4172msgstr "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}." 4173msgstr "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}."
4173 4174
4174#. type: lisp 4175#. type: lisp
4175#: doc/guix-cookbook.texi:2266 4176#: guix-git/doc/guix-cookbook.texi:2266
4176#, no-wrap 4177#, no-wrap
4177msgid "" 4178msgid ""
4178"(define duckdns-job\n" 4179"(define duckdns-job\n"
@@ -4214,12 +4215,12 @@ msgstr ""
4214" #:user \"nobody\"))\n" 4215" #:user \"nobody\"))\n"
4215 4216
4216#. type: Plain text 4217#. type: Plain text
4217#: doc/guix-cookbook.texi:2270 4218#: guix-git/doc/guix-cookbook.texi:2270
4218msgid "The job then needs to be added to the list of mcron jobs for your system, using something like:" 4219msgid "The job then needs to be added to the list of mcron jobs for your system, using something like:"
4219msgstr "Der Auftrag muss in die Liste der mcron-Aufträge für Ihr System eingetragen werden, etwa so:" 4220msgstr "Der Auftrag muss in die Liste der mcron-Aufträge für Ihr System eingetragen werden, etwa so:"
4220 4221
4221#. type: lisp 4222#. type: lisp
4222#: doc/guix-cookbook.texi:2279 4223#: guix-git/doc/guix-cookbook.texi:2279
4223#, no-wrap 4224#, no-wrap
4224msgid "" 4225msgid ""
4225"(operating-system\n" 4226"(operating-system\n"
@@ -4239,17 +4240,17 @@ msgstr ""
4239" %base-services)))\n" 4240" %base-services)))\n"
4240 4241
4241#. type: Plain text 4242#. type: Plain text
4242#: doc/guix-cookbook.texi:2287 4243#: guix-git/doc/guix-cookbook.texi:2287
4243msgid "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})." 4244msgid "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})."
4244msgstr "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})." 4245msgstr "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})."
4245 4246
4246#. type: Plain text 4247#. type: Plain text
4247#: doc/guix-cookbook.texi:2291 4248#: guix-git/doc/guix-cookbook.texi:2291
4248msgid "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:" 4249msgid "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:"
4249msgstr "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." 4250msgstr "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."
4250 4251
4251#. type: lisp 4252#. type: lisp
4252#: doc/guix-cookbook.texi:2296 4253#: guix-git/doc/guix-cookbook.texi:2296
4253#, no-wrap 4254#, no-wrap
4254msgid "" 4255msgid ""
4255"(use-modules (gnu))\n" 4256"(use-modules (gnu))\n"
@@ -4263,7 +4264,7 @@ msgstr ""
4263"\n" 4264"\n"
4264 4265
4265#. type: lisp 4266#. type: lisp
4266#: doc/guix-cookbook.texi:2305 4267#: guix-git/doc/guix-cookbook.texi:2305
4267#, no-wrap 4268#, no-wrap
4268msgid "" 4269msgid ""
4269"(operating-system\n" 4270"(operating-system\n"
@@ -4285,44 +4286,44 @@ msgstr ""
4285" (kernel-loadable-modules (list wireguard-linux-compat)))\n" 4286" (kernel-loadable-modules (list wireguard-linux-compat)))\n"
4286 4287
4287#. type: Plain text 4288#. type: Plain text
4288#: doc/guix-cookbook.texi:2309 4289#: guix-git/doc/guix-cookbook.texi:2309
4289msgid "After reconfiguring and restarting your system you can either use Wireguard tools or NetworkManager to connect to a VPN server." 4290msgid "After reconfiguring and restarting your system you can either use Wireguard tools or NetworkManager to connect to a VPN server."
4290msgstr "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." 4291msgstr "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."
4291 4292
4292#. type: subsection 4293#. type: subsection
4293#: doc/guix-cookbook.texi:2310 4294#: guix-git/doc/guix-cookbook.texi:2310
4294#, no-wrap 4295#, no-wrap
4295msgid "Using Wireguard tools" 4296msgid "Using Wireguard tools"
4296msgstr "Die Wireguard Tools benutzen" 4297msgstr "Die Wireguard Tools benutzen"
4297 4298
4298#. type: Plain text 4299#. type: Plain text
4299#: doc/guix-cookbook.texi:2316 4300#: guix-git/doc/guix-cookbook.texi:2316
4300msgid "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." 4301msgid "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."
4301msgstr "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." 4302msgstr "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."
4302 4303
4303#. type: quotation 4304#. type: quotation
4304#: doc/guix-cookbook.texi:2320 4305#: guix-git/doc/guix-cookbook.texi:2320
4305msgid "Be warned that the author described this command as a: “[…] very quick and dirty bash script […]”." 4306msgid "Be warned that the author described this command as a: “[…] very quick and dirty bash script […]”."
4306msgstr "Seien Sie gewarnt, dass sein Autor diesen Befehl als ein schnell und unsauber geschriebenes Bash-Skript bezeichnet hat." 4307msgstr "Seien Sie gewarnt, dass sein Autor diesen Befehl als ein schnell und unsauber geschriebenes Bash-Skript bezeichnet hat."
4307 4308
4308#. type: subsection 4309#. type: subsection
4309#: doc/guix-cookbook.texi:2322 4310#: guix-git/doc/guix-cookbook.texi:2322
4310#, no-wrap 4311#, no-wrap
4311msgid "Using NetworkManager" 4312msgid "Using NetworkManager"
4312msgstr "NetworkManager benutzen" 4313msgstr "NetworkManager benutzen"
4313 4314
4314#. type: Plain text 4315#. type: Plain text
4315#: doc/guix-cookbook.texi:2330 4316#: guix-git/doc/guix-cookbook.texi:2330
4316msgid "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." 4317msgid "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."
4317msgstr "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." 4318msgstr "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."
4318 4319
4319#. type: Plain text 4320#. type: Plain text
4320#: doc/guix-cookbook.texi:2332 4321#: guix-git/doc/guix-cookbook.texi:2332
4321msgid "To import your VPN configuration execute nmcli import command:" 4322msgid "To import your VPN configuration execute nmcli import command:"
4322msgstr "Benutzen Sie den nmcli-Import-Befehl, um Ihre VPN-Konfiguration zu importieren." 4323msgstr "Benutzen Sie den nmcli-Import-Befehl, um Ihre VPN-Konfiguration zu importieren."
4323 4324
4324#. type: example 4325#. type: example
4325#: doc/guix-cookbook.texi:2336 4326#: guix-git/doc/guix-cookbook.texi:2336
4326#, no-wrap 4327#, no-wrap
4327msgid "" 4328msgid ""
4328"# nmcli connection import type wireguard file wg0.conf\n" 4329"# nmcli connection import type wireguard file wg0.conf\n"
@@ -4332,12 +4333,12 @@ msgstr ""
4332"Verbindung »wg0« (edbee261-aa5a-42db-b032-6c7757c60fde) erfolgreich hinzugefügt.\n" 4333"Verbindung »wg0« (edbee261-aa5a-42db-b032-6c7757c60fde) erfolgreich hinzugefügt.\n"
4333 4334
4334#. type: Plain text 4335#. type: Plain text
4335#: doc/guix-cookbook.texi:2341 4336#: guix-git/doc/guix-cookbook.texi:2341
4336msgid "This will create a configuration file in @file{/etc/NetworkManager/wg0.nmconnection}. Next connect to the Wireguard server:" 4337msgid "This will create a configuration file in @file{/etc/NetworkManager/wg0.nmconnection}. Next connect to the Wireguard server:"
4337msgstr "Dadurch wird eine Konfigurationsdatei in @file{/etc/NetworkManager/wg0.nmconnection} angelegt. Anschließend können Sie sich mit dem Wireguard-Server verbinden:" 4338msgstr "Dadurch wird eine Konfigurationsdatei in @file{/etc/NetworkManager/wg0.nmconnection} angelegt. Anschließend können Sie sich mit dem Wireguard-Server verbinden:"
4338 4339
4339#. type: example 4340#. type: example
4340#: doc/guix-cookbook.texi:2345 4341#: guix-git/doc/guix-cookbook.texi:2345
4341#, no-wrap 4342#, no-wrap
4342msgid "" 4343msgid ""
4343"$ nmcli connection up wg0\n" 4344"$ nmcli connection up wg0\n"
@@ -4347,45 +4348,45 @@ msgstr ""
4347"Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/6)\n" 4348"Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/6)\n"
4348 4349
4349#. type: Plain text 4350#. type: Plain text
4350#: doc/guix-cookbook.texi:2349 4351#: guix-git/doc/guix-cookbook.texi:2349
4351msgid "By default NetworkManager will connect automatically on system boot. To change that behaviour you need to edit your config:" 4352msgid "By default NetworkManager will connect automatically on system boot. To change that behaviour you need to edit your config:"
4352msgstr "Nach Voreinstellung wird sich NetworkManager automatisch beim Systemstart verbinden. Um dieses Verhalten zu ändern, müssen Sie Ihre Konfiguration bearbeiten:" 4353msgstr "Nach Voreinstellung wird sich NetworkManager automatisch beim Systemstart verbinden. Um dieses Verhalten zu ändern, müssen Sie Ihre Konfiguration bearbeiten:"
4353 4354
4354#. type: example 4355#. type: example
4355#: doc/guix-cookbook.texi:2352 4356#: guix-git/doc/guix-cookbook.texi:2352
4356#, no-wrap 4357#, no-wrap
4357msgid "# nmcli connection modify wg0 connection.autoconnect no\n" 4358msgid "# nmcli connection modify wg0 connection.autoconnect no\n"
4358msgstr "# nmcli connection modify wg0 connection.autoconnect no\n" 4359msgstr "# nmcli connection modify wg0 connection.autoconnect no\n"
4359 4360
4360#. type: Plain text 4361#. type: Plain text
4361#: doc/guix-cookbook.texi:2357 4362#: guix-git/doc/guix-cookbook.texi:2357
4362msgid "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}." 4363msgid "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}."
4363msgstr "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}." 4364msgstr "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}."
4364 4365
4365#. type: cindex 4366#. type: cindex
4366#: doc/guix-cookbook.texi:2360 4367#: guix-git/doc/guix-cookbook.texi:2360
4367#, no-wrap 4368#, no-wrap
4368msgid "wm" 4369msgid "wm"
4369msgstr "Fensterverwaltung (Window Manager, WM)" 4370msgstr "Fensterverwaltung (Window Manager, WM)"
4370 4371
4371#. type: cindex 4372#. type: cindex
4372#: doc/guix-cookbook.texi:2369 4373#: guix-git/doc/guix-cookbook.texi:2369
4373#, no-wrap 4374#, no-wrap
4374msgid "stumpwm" 4375msgid "stumpwm"
4375msgstr "stumpwm" 4376msgstr "stumpwm"
4376 4377
4377#. type: Plain text 4378#. type: Plain text
4378#: doc/guix-cookbook.texi:2374 4379#: guix-git/doc/guix-cookbook.texi:2374
4379msgid "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}." 4380msgid "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}."
4380msgstr "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." 4381msgstr "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."
4381 4382
4382#. type: Plain text 4383#. type: Plain text
4383#: doc/guix-cookbook.texi:2376 4384#: guix-git/doc/guix-cookbook.texi:2376
4384msgid "An example configuration can look like this:" 4385msgid "An example configuration can look like this:"
4385msgstr "Eine Beispielkonfiguration kann so aussehen:" 4386msgstr "Eine Beispielkonfiguration kann so aussehen:"
4386 4387
4387#. type: lisp 4388#. type: lisp
4388#: doc/guix-cookbook.texi:2380 4389#: guix-git/doc/guix-cookbook.texi:2380
4389#, no-wrap 4390#, no-wrap
4390msgid "" 4391msgid ""
4391"(use-modules (gnu))\n" 4392"(use-modules (gnu))\n"
@@ -4397,7 +4398,7 @@ msgstr ""
4397"\n" 4398"\n"
4398 4399
4399#. type: lisp 4400#. type: lisp
4400#: doc/guix-cookbook.texi:2385 4401#: guix-git/doc/guix-cookbook.texi:2385
4401#, no-wrap 4402#, no-wrap
4402msgid "" 4403msgid ""
4403"(operating-system\n" 4404"(operating-system\n"
@@ -4411,18 +4412,18 @@ msgstr ""
4411" %base-packages)))\n" 4412" %base-packages)))\n"
4412 4413
4413#. type: cindex 4414#. type: cindex
4414#: doc/guix-cookbook.texi:2387 4415#: guix-git/doc/guix-cookbook.texi:2387
4415#, no-wrap 4416#, no-wrap
4416msgid "stumpwm fonts" 4417msgid "stumpwm fonts"
4417msgstr "StumpWM-Schriftarten" 4418msgstr "StumpWM-Schriftarten"
4418 4419
4419#. type: Plain text 4420#. type: Plain text
4420#: doc/guix-cookbook.texi:2391 4421#: guix-git/doc/guix-cookbook.texi:2391
4421msgid "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:" 4422msgid "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:"
4422msgstr "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:" 4423msgstr "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:"
4423 4424
4424#. type: lisp 4425#. type: lisp
4425#: doc/guix-cookbook.texi:2395 4426#: guix-git/doc/guix-cookbook.texi:2395
4426#, no-wrap 4427#, no-wrap
4427msgid "" 4428msgid ""
4428"(use-modules (gnu))\n" 4429"(use-modules (gnu))\n"
@@ -4434,7 +4435,7 @@ msgstr ""
4434"\n" 4435"\n"
4435 4436
4436#. type: lisp 4437#. type: lisp
4437#: doc/guix-cookbook.texi:2400 4438#: guix-git/doc/guix-cookbook.texi:2400
4438#, no-wrap 4439#, no-wrap
4439msgid "" 4440msgid ""
4440"(operating-system\n" 4441"(operating-system\n"
@@ -4448,12 +4449,12 @@ msgstr ""
4448" sbcl-ttf-fonts font-dejavu %base-packages)))\n" 4449" sbcl-ttf-fonts font-dejavu %base-packages)))\n"
4449 4450
4450#. type: Plain text 4451#. type: Plain text
4451#: doc/guix-cookbook.texi:2404 4452#: guix-git/doc/guix-cookbook.texi:2404
4452msgid "Then you need to add the following code to a StumpWM configuration file @file{~/.stumpwm.d/init.lisp}:" 4453msgid "Then you need to add the following code to a StumpWM configuration file @file{~/.stumpwm.d/init.lisp}:"
4453msgstr "Den folgenden Code fügen Sie in die Konfigurationsdatei von StumpWM @file{~/.stumpwm.d/init.lisp} ein:" 4454msgstr "Den folgenden Code fügen Sie in die Konfigurationsdatei von StumpWM @file{~/.stumpwm.d/init.lisp} ein:"
4454 4455
4455#. type: lisp 4456#. type: lisp
4456#: doc/guix-cookbook.texi:2411 4457#: guix-git/doc/guix-cookbook.texi:2411
4457#, no-wrap 4458#, no-wrap
4458msgid "" 4459msgid ""
4459"(require :ttf-fonts)\n" 4460"(require :ttf-fonts)\n"
@@ -4469,28 +4470,28 @@ msgstr ""
4469"(set-font (make-instance 'xft:font :family \"DejaVu Sans Mono\" :subfamily \"Book\" :size 11))\n" 4470"(set-font (make-instance 'xft:font :family \"DejaVu Sans Mono\" :subfamily \"Book\" :size 11))\n"
4470 4471
4471#. type: cindex 4472#. type: cindex
4472#: doc/guix-cookbook.texi:2415 4473#: guix-git/doc/guix-cookbook.texi:2415
4473#, no-wrap 4474#, no-wrap
4474msgid "sessionlock" 4475msgid "sessionlock"
4475msgstr "Sitzungssperre" 4476msgstr "Sitzungssperre"
4476 4477
4477#. type: Plain text 4478#. type: Plain text
4478#: doc/guix-cookbook.texi:2421 4479#: guix-git/doc/guix-cookbook.texi:2421
4479msgid "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." 4480msgid "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."
4480msgstr "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." 4481msgstr "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."
4481 4482
4482#. type: Plain text 4483#. type: Plain text
4483#: doc/guix-cookbook.texi:2433 4484#: guix-git/doc/guix-cookbook.texi:2433
4484msgid "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." 4485msgid "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."
4485msgstr "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." 4486msgstr "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."
4486 4487
4487#. type: Plain text 4488#. type: Plain text
4488#: doc/guix-cookbook.texi:2436 4489#: guix-git/doc/guix-cookbook.texi:2436
4489msgid "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}:" 4490msgid "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}:"
4490msgstr "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:" 4491msgstr "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:"
4491 4492
4492#. type: example 4493#. type: example
4493#: doc/guix-cookbook.texi:2440 4494#: guix-git/doc/guix-cookbook.texi:2440
4494#, no-wrap 4495#, no-wrap
4495msgid "" 4496msgid ""
4496"xss-lock -- slock &\n" 4497"xss-lock -- slock &\n"
@@ -4500,17 +4501,17 @@ msgstr ""
4500"exec stumpwm\n" 4501"exec stumpwm\n"
4501 4502
4502#. type: Plain text 4503#. type: Plain text
4503#: doc/guix-cookbook.texi:2444 4504#: guix-git/doc/guix-cookbook.texi:2444
4504msgid "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." 4505msgid "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."
4505msgstr "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." 4506msgstr "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."
4506 4507
4507#. type: Plain text 4508#. type: Plain text
4508#: doc/guix-cookbook.texi:2448 4509#: guix-git/doc/guix-cookbook.texi:2448
4509msgid "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}:" 4510msgid "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}:"
4510msgstr "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:" 4511msgstr "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:"
4511 4512
4512#. type: lisp 4513#. type: lisp
4513#: doc/guix-cookbook.texi:2454 4514#: guix-git/doc/guix-cookbook.texi:2454
4514#, no-wrap 4515#, no-wrap
4515msgid "" 4516msgid ""
4516"(service screen-locker-services-type\n" 4517"(service screen-locker-services-type\n"
@@ -4524,115 +4525,115 @@ msgstr ""
4524" (program (file-append slock \"/bin/slock\"))))\n" 4525" (program (file-append slock \"/bin/slock\"))))\n"
4525 4526
4526#. type: Plain text 4527#. type: Plain text
4527#: doc/guix-cookbook.texi:2460 4528#: guix-git/doc/guix-cookbook.texi:2460
4528msgid "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." 4529msgid "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."
4529msgstr "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." 4530msgstr "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."
4530 4531
4531#. type: cindex 4532#. type: cindex
4532#: doc/guix-cookbook.texi:2463 4533#: guix-git/doc/guix-cookbook.texi:2463
4533#, no-wrap 4534#, no-wrap
4534msgid "linode, Linode" 4535msgid "linode, Linode"
4535msgstr "linode, Linode" 4536msgstr "linode, Linode"
4536 4537
4537#. type: Plain text 4538#. type: Plain text
4538#: doc/guix-cookbook.texi:2468 4539#: guix-git/doc/guix-cookbook.texi:2468
4539msgid "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." 4540msgid "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."
4540msgstr "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." 4541msgstr "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."
4541 4542
4542#. type: example 4543#. type: example
4543#: doc/guix-cookbook.texi:2471 4544#: guix-git/doc/guix-cookbook.texi:2471
4544#, no-wrap 4545#, no-wrap
4545msgid "ssh-keygen\n" 4546msgid "ssh-keygen\n"
4546msgstr "ssh-keygen\n" 4547msgstr "ssh-keygen\n"
4547 4548
4548#. type: Plain text 4549#. type: Plain text
4549#: doc/guix-cookbook.texi:2477 4550#: guix-git/doc/guix-cookbook.texi:2477
4550msgid "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:" 4551msgid "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:"
4551msgstr "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:" 4552msgstr "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:"
4552 4553
4553#. type: example 4554#. type: example
4554#: doc/guix-cookbook.texi:2480 4555#: guix-git/doc/guix-cookbook.texi:2480
4555#, no-wrap 4556#, no-wrap
4556msgid "cat ~/.ssh/<username>_rsa.pub\n" 4557msgid "cat ~/.ssh/<username>_rsa.pub\n"
4557msgstr "cat ~/.ssh/<benutzername>_rsa.pub\n" 4558msgstr "cat ~/.ssh/<benutzername>_rsa.pub\n"
4558 4559
4559#. type: Plain text 4560#. type: Plain text
4560#: doc/guix-cookbook.texi:2483 4561#: guix-git/doc/guix-cookbook.texi:2483
4561msgid "Power the Linode down." 4562msgid "Power the Linode down."
4562msgstr "Fahren Sie den Linode-Knoten herunter." 4563msgstr "Fahren Sie den Linode-Knoten herunter."
4563 4564
4564#. type: Plain text 4565#. type: Plain text
4565#: doc/guix-cookbook.texi:2487 4566#: guix-git/doc/guix-cookbook.texi:2487
4566msgid "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:" 4567msgid "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:"
4567msgstr "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:" 4568msgstr "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:"
4568 4569
4569#. type: itemize 4570#. type: itemize
4570#: doc/guix-cookbook.texi:2491 4571#: guix-git/doc/guix-cookbook.texi:2491
4571msgid "Label: \"Guix\"" 4572msgid "Label: \"Guix\""
4572msgstr "Label: \"Guix\"" 4573msgstr "Label: \"Guix\""
4573 4574
4574#. type: itemize 4575#. type: itemize
4575#: doc/guix-cookbook.texi:2494 4576#: guix-git/doc/guix-cookbook.texi:2494
4576msgid "Filesystem: ext4" 4577msgid "Filesystem: ext4"
4577msgstr "Filesystem: ext4" 4578msgstr "Filesystem: ext4"
4578 4579
4579#. type: itemize 4580#. type: itemize
4580#: doc/guix-cookbook.texi:2497 4581#: guix-git/doc/guix-cookbook.texi:2497
4581msgid "Set it to the remaining size" 4582msgid "Set it to the remaining size"
4582msgstr "Wählen Sie als Größe den übrigen Speicherplatz." 4583msgstr "Wählen Sie als Größe den übrigen Speicherplatz."
4583 4584
4584#. type: Plain text 4585#. type: Plain text
4585#: doc/guix-cookbook.texi:2502 4586#: guix-git/doc/guix-cookbook.texi:2502
4586msgid "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." 4587msgid "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."
4587msgstr "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." 4588msgstr "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."
4588 4589
4589#. type: Plain text 4590#. type: Plain text
4590#: doc/guix-cookbook.texi:2504 4591#: guix-git/doc/guix-cookbook.texi:2504
4591msgid "Now \"Add a Configuration\", with the following:" 4592msgid "Now \"Add a Configuration\", with the following:"
4592msgstr "Fügen Sie eine Konfiguration hinzu („Add a Configuration“) mit folgenden Eigenschaften:" 4593msgstr "Fügen Sie eine Konfiguration hinzu („Add a Configuration“) mit folgenden Eigenschaften:"
4593 4594
4594#. type: itemize 4595#. type: itemize
4595#: doc/guix-cookbook.texi:2507 4596#: guix-git/doc/guix-cookbook.texi:2507
4596msgid "Label: Guix" 4597msgid "Label: Guix"
4597msgstr "Label: Guix" 4598msgstr "Label: Guix"
4598 4599
4599#. type: itemize 4600#. type: itemize
4600#: doc/guix-cookbook.texi:2510 4601#: guix-git/doc/guix-cookbook.texi:2510
4601msgid "Kernel:GRUB 2 (it's at the bottom! This step is @b{IMPORTANT!})" 4602msgid "Kernel:GRUB 2 (it's at the bottom! This step is @b{IMPORTANT!})"
4602msgstr "Kernel: GRUB 2 (Das steht ganz unten! Dieser Schritt ist @b{WICHTIG!})" 4603msgstr "Kernel: GRUB 2 (Das steht ganz unten! Dieser Schritt ist @b{WICHTIG!})"
4603 4604
4604#. type: itemize 4605#. type: itemize
4605#: doc/guix-cookbook.texi:2513 4606#: guix-git/doc/guix-cookbook.texi:2513
4606msgid "Block device assignment:" 4607msgid "Block device assignment:"
4607msgstr "Block device assignment:" 4608msgstr "Block device assignment:"
4608 4609
4609#. type: itemize 4610#. type: itemize
4610#: doc/guix-cookbook.texi:2516 4611#: guix-git/doc/guix-cookbook.texi:2516
4611msgid "@file{/dev/sda}: Guix" 4612msgid "@file{/dev/sda}: Guix"
4612msgstr "@file{/dev/sda}: Guix" 4613msgstr "@file{/dev/sda}: Guix"
4613 4614
4614#. type: itemize 4615#. type: itemize
4615#: doc/guix-cookbook.texi:2519 4616#: guix-git/doc/guix-cookbook.texi:2519
4616msgid "@file{/dev/sdb}: swap" 4617msgid "@file{/dev/sdb}: swap"
4617msgstr "@file{/dev/sdb}: swap" 4618msgstr "@file{/dev/sdb}: swap"
4618 4619
4619#. type: itemize 4620#. type: itemize
4620#: doc/guix-cookbook.texi:2522 4621#: guix-git/doc/guix-cookbook.texi:2522
4621msgid "Root device: @file{/dev/sda}" 4622msgid "Root device: @file{/dev/sda}"
4622msgstr "Root device: @file{/dev/sda}" 4623msgstr "Root device: @file{/dev/sda}"
4623 4624
4624#. type: itemize 4625#. type: itemize
4625#: doc/guix-cookbook.texi:2525 4626#: guix-git/doc/guix-cookbook.texi:2525
4626msgid "Turn off all the filesystem/boot helpers" 4627msgid "Turn off all the filesystem/boot helpers"
4627msgstr "Schalten Sie alle Dateisystem-/Boot-Helfer ab." 4628msgstr "Schalten Sie alle Dateisystem-/Boot-Helfer ab."
4628 4629
4629#. type: Plain text 4630#. type: Plain text
4630#: doc/guix-cookbook.texi:2532 4631#: guix-git/doc/guix-cookbook.texi:2532
4631msgid "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:" 4632msgid "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:"
4632msgstr "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:" 4633msgstr "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:"
4633 4634
4634#. type: example 4635#. type: example
4635#: doc/guix-cookbook.texi:2540 4636#: guix-git/doc/guix-cookbook.texi:2540
4636#, no-wrap 4637#, no-wrap
4637msgid "" 4638msgid ""
4638"sudo apt-get install gpg\n" 4639"sudo apt-get install gpg\n"
@@ -4650,20 +4651,30 @@ msgstr ""
4650"guix pull\n" 4651"guix pull\n"
4651 4652
4652#. type: Plain text 4653#. type: Plain text
4653#: doc/guix-cookbook.texi:2544 4654#: guix-git/doc/guix-cookbook.texi:2544
4654msgid "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}." 4655msgid "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}."
4655msgstr "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}." 4656msgstr "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}."
4656 4657
4657#. type: lisp 4658#. type: lisp
4658#: doc/guix-cookbook.texi:2555 4659#: guix-git/doc/guix-cookbook.texi:2554
4659#, no-wrap 4660#, fuzzy, no-wrap
4661#| msgid ""
4662#| "(use-modules (gnu)\n"
4663#| " (guix modules))\n"
4664#| "(use-service-modules networking\n"
4665#| " ssh)\n"
4666#| "(use-package-modules admin\n"
4667#| " certs\n"
4668#| " package-management\n"
4669#| " ssh\n"
4670#| " tls)\n"
4671#| "\n"
4660msgid "" 4672msgid ""
4661"(use-modules (gnu)\n" 4673"(use-modules (gnu)\n"
4662" (guix modules))\n" 4674" (guix modules))\n"
4663"(use-service-modules networking\n" 4675"(use-service-modules networking\n"
4664" ssh)\n" 4676" ssh)\n"
4665"(use-package-modules admin\n" 4677"(use-package-modules admin\n"
4666" certs\n"
4667" package-management\n" 4678" package-management\n"
4668" ssh\n" 4679" ssh\n"
4669" tls)\n" 4680" tls)\n"
@@ -4681,7 +4692,7 @@ msgstr ""
4681"\n" 4692"\n"
4682 4693
4683#. type: lisp 4694#. type: lisp
4684#: doc/guix-cookbook.texi:2572 4695#: guix-git/doc/guix-cookbook.texi:2571
4685#, no-wrap 4696#, no-wrap
4686msgid "" 4697msgid ""
4687"(operating-system\n" 4698"(operating-system\n"
@@ -4722,7 +4733,7 @@ msgstr ""
4722"\n" 4733"\n"
4723 4734
4724#. type: lisp 4735#. type: lisp
4725#: doc/guix-cookbook.texi:2575 4736#: guix-git/doc/guix-cookbook.texi:2574
4726#, no-wrap 4737#, no-wrap
4727msgid "" 4738msgid ""
4728" (swap-devices (list \"/dev/sdb\"))\n" 4739" (swap-devices (list \"/dev/sdb\"))\n"
@@ -4732,7 +4743,7 @@ msgstr ""
4732"\n" 4743"\n"
4733 4744
4734#. type: lisp 4745#. type: lisp
4735#: doc/guix-cookbook.texi:2579 4746#: guix-git/doc/guix-cookbook.texi:2578
4736#, no-wrap 4747#, no-wrap
4737msgid "" 4748msgid ""
4738" (initrd-modules (cons \"virtio_scsi\" ; Needed to find the disk\n" 4749" (initrd-modules (cons \"virtio_scsi\" ; Needed to find the disk\n"
@@ -4744,7 +4755,7 @@ msgstr ""
4744"\n" 4755"\n"
4745 4756
4746#. type: lisp 4757#. type: lisp
4747#: doc/guix-cookbook.texi:2588 4758#: guix-git/doc/guix-cookbook.texi:2587
4748#, no-wrap 4759#, no-wrap
4749msgid "" 4760msgid ""
4750" (users (cons (user-account\n" 4761" (users (cons (user-account\n"
@@ -4768,11 +4779,15 @@ msgstr ""
4768"\n" 4779"\n"
4769 4780
4770#. type: lisp 4781#. type: lisp
4771#: doc/guix-cookbook.texi:2592 4782#: guix-git/doc/guix-cookbook.texi:2590
4772#, no-wrap 4783#, fuzzy, no-wrap
4784#| msgid ""
4785#| " (packages (cons* nss-certs ;for HTTPS access\n"
4786#| " openssh-sans-x\n"
4787#| " %base-packages))\n"
4788#| "\n"
4773msgid "" 4789msgid ""
4774" (packages (cons* nss-certs ;for HTTPS access\n" 4790" (packages (cons* openssh-sans-x\n"
4775" openssh-sans-x\n"
4776" %base-packages))\n" 4791" %base-packages))\n"
4777"\n" 4792"\n"
4778msgstr "" 4793msgstr ""
@@ -4782,7 +4797,7 @@ msgstr ""
4782"\n" 4797"\n"
4783 4798
4784#. type: lisp 4799#. type: lisp
4785#: doc/guix-cookbook.texi:2603 4800#: guix-git/doc/guix-cookbook.texi:2601
4786#, no-wrap 4801#, no-wrap
4787msgid "" 4802msgid ""
4788" (services (cons*\n" 4803" (services (cons*\n"
@@ -4808,12 +4823,12 @@ msgstr ""
4808" %base-services)))\n" 4823" %base-services)))\n"
4809 4824
4810#. type: Plain text 4825#. type: Plain text
4811#: doc/guix-cookbook.texi:2606 4826#: guix-git/doc/guix-cookbook.texi:2604
4812msgid "Replace the following fields in the above configuration:" 4827msgid "Replace the following fields in the above configuration:"
4813msgstr "Ersetzen Sie in der obigen Konfiguration aber folgende Felder:" 4828msgstr "Ersetzen Sie in der obigen Konfiguration aber folgende Felder:"
4814 4829
4815#. type: lisp 4830#. type: lisp
4816#: doc/guix-cookbook.texi:2614 4831#: guix-git/doc/guix-cookbook.texi:2612
4817#, no-wrap 4832#, no-wrap
4818msgid "" 4833msgid ""
4819"(host-name \"my-server\") ; replace with your server name\n" 4834"(host-name \"my-server\") ; replace with your server name\n"
@@ -4833,17 +4848,17 @@ msgstr ""
4833"(\"root\" ,(local-file \"janedoe_rsa.pub\")) ; Ersetzen durch Ihren SSH-Schlüssel\n" 4848"(\"root\" ,(local-file \"janedoe_rsa.pub\")) ; Ersetzen durch Ihren SSH-Schlüssel\n"
4834 4849
4835#. type: Plain text 4850#. type: Plain text
4836#: doc/guix-cookbook.texi:2621 4851#: guix-git/doc/guix-cookbook.texi:2619
4837msgid "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." 4852msgid "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."
4838msgstr "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." 4853msgstr "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."
4839 4854
4840#. type: Plain text 4855#. type: Plain text
4841#: doc/guix-cookbook.texi:2626 4856#: guix-git/doc/guix-cookbook.texi:2624
4842msgid "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." 4857msgid "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."
4843msgstr "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:" 4858msgstr "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:"
4844 4859
4845#. type: example 4860#. type: example
4846#: doc/guix-cookbook.texi:2631 4861#: guix-git/doc/guix-cookbook.texi:2629
4847#, no-wrap 4862#, no-wrap
4848msgid "" 4863msgid ""
4849"sftp root@@<remote server ip address>\n" 4864"sftp root@@<remote server ip address>\n"
@@ -4855,12 +4870,12 @@ msgstr ""
4855"put /pfad/mit/dateien/guix-config.scm .\n" 4870"put /pfad/mit/dateien/guix-config.scm .\n"
4856 4871
4857#. type: Plain text 4872#. type: Plain text
4858#: doc/guix-cookbook.texi:2634 4873#: guix-git/doc/guix-cookbook.texi:2632
4859msgid "In your first terminal, mount the guix drive:" 4874msgid "In your first terminal, mount the guix drive:"
4860msgstr "Binden Sie mit Ihrem ersten Terminal das Guix-Laufwerk ein:" 4875msgstr "Binden Sie mit Ihrem ersten Terminal das Guix-Laufwerk ein:"
4861 4876
4862#. type: example 4877#. type: example
4863#: doc/guix-cookbook.texi:2638 4878#: guix-git/doc/guix-cookbook.texi:2636
4864#, no-wrap 4879#, no-wrap
4865msgid "" 4880msgid ""
4866"mkdir /mnt/guix\n" 4881"mkdir /mnt/guix\n"
@@ -4870,12 +4885,12 @@ msgstr ""
4870"mount /dev/sdc /mnt/guix\n" 4885"mount /dev/sdc /mnt/guix\n"
4871 4886
4872#. type: Plain text 4887#. type: Plain text
4873#: doc/guix-cookbook.texi:2643 4888#: guix-git/doc/guix-cookbook.texi:2641
4874msgid "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:" 4889msgid "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:"
4875msgstr "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:" 4890msgstr "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:"
4876 4891
4877#. type: example 4892#. type: example
4878#: doc/guix-cookbook.texi:2647 4893#: guix-git/doc/guix-cookbook.texi:2645
4879#, no-wrap 4894#, no-wrap
4880msgid "" 4895msgid ""
4881"mkdir -p /mnt/guix/boot/grub\n" 4896"mkdir -p /mnt/guix/boot/grub\n"
@@ -4885,28 +4900,28 @@ msgstr ""
4885"cp -r /boot/grub/* /mnt/guix/boot/grub/\n" 4900"cp -r /boot/grub/* /mnt/guix/boot/grub/\n"
4886 4901
4887#. type: Plain text 4902#. type: Plain text
4888#: doc/guix-cookbook.texi:2650 4903#: guix-git/doc/guix-cookbook.texi:2648
4889msgid "Now initialize the Guix installation:" 4904msgid "Now initialize the Guix installation:"
4890msgstr "Initialisieren Sie nun die Guix-Installation:" 4905msgstr "Initialisieren Sie nun die Guix-Installation:"
4891 4906
4892#. type: example 4907#. type: example
4893#: doc/guix-cookbook.texi:2653 4908#: guix-git/doc/guix-cookbook.texi:2651
4894#, no-wrap 4909#, no-wrap
4895msgid "guix system init guix-config.scm /mnt/guix\n" 4910msgid "guix system init guix-config.scm /mnt/guix\n"
4896msgstr "guix system init guix-config.scm /mnt/guix\n" 4911msgstr "guix system init guix-config.scm /mnt/guix\n"
4897 4912
4898#. type: Plain text 4913#. type: Plain text
4899#: doc/guix-cookbook.texi:2657 4914#: guix-git/doc/guix-cookbook.texi:2655
4900msgid "Ok, power it down! Now from the Linode console, select boot and select \"Guix\"." 4915msgid "Ok, power it down! Now from the Linode console, select boot and select \"Guix\"."
4901msgstr "OK, fahren Sie Ihn jetzt herunter! Von der Linode-Konsole wählen Sie Booten aus und wählen „Guix“." 4916msgstr "OK, fahren Sie Ihn jetzt herunter! Von der Linode-Konsole wählen Sie Booten aus und wählen „Guix“."
4902 4917
4903#. type: Plain text 4918#. type: Plain text
4904#: doc/guix-cookbook.texi:2660 4919#: guix-git/doc/guix-cookbook.texi:2658
4905msgid "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:" 4920msgid "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:"
4906msgstr "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:" 4921msgstr "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:"
4907 4922
4908#. type: example 4923#. type: example
4909#: doc/guix-cookbook.texi:2676 4924#: guix-git/doc/guix-cookbook.texi:2674
4910#, no-wrap 4925#, no-wrap
4911msgid "" 4926msgid ""
4912"$ ssh root@@<server ip address>\n" 4927"$ ssh root@@<server ip address>\n"
@@ -4940,17 +4955,17 @@ msgstr ""
4940"Host key verification failed.\n" 4955"Host key verification failed.\n"
4941 4956
4942#. type: Plain text 4957#. type: Plain text
4943#: doc/guix-cookbook.texi:2680 4958#: guix-git/doc/guix-cookbook.texi:2678
4944msgid "Either delete @file{~/.ssh/known_hosts} file, or delete the offending line starting with your server IP address." 4959msgid "Either delete @file{~/.ssh/known_hosts} file, or delete the offending line starting with your server IP address."
4945msgstr "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." 4960msgstr "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."
4946 4961
4947#. type: Plain text 4962#. type: Plain text
4948#: doc/guix-cookbook.texi:2682 4963#: guix-git/doc/guix-cookbook.texi:2680
4949msgid "Be sure to set your password and root's password." 4964msgid "Be sure to set your password and root's password."
4950msgstr "Denken Sie daran, Ihr Passwort und das Passwort des Administratornutzers root festzulegen." 4965msgstr "Denken Sie daran, Ihr Passwort und das Passwort des Administratornutzers root festzulegen."
4951 4966
4952#. type: example 4967#. type: example
4953#: doc/guix-cookbook.texi:2687 4968#: guix-git/doc/guix-cookbook.texi:2685
4954#, no-wrap 4969#, no-wrap
4955msgid "" 4970msgid ""
4956"ssh root@@<remote ip address>\n" 4971"ssh root@@<remote ip address>\n"
@@ -4962,43 +4977,43 @@ msgstr ""
4962"passwd <benutzername> ; für das Passwort des normalen Benutzers\n" 4977"passwd <benutzername> ; für das Passwort des normalen Benutzers\n"
4963 4978
4964#. type: Plain text 4979#. type: Plain text
4965#: doc/guix-cookbook.texi:2694 4980#: guix-git/doc/guix-cookbook.texi:2692
4966msgid "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." 4981msgid "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."
4967msgstr "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." 4982msgstr "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."
4968 4983
4969#. type: Plain text 4984#. type: Plain text
4970#: doc/guix-cookbook.texi:2698 4985#: guix-git/doc/guix-cookbook.texi:2696
4971msgid "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!" 4986msgid "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!"
4972msgstr "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!" 4987msgstr "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!"
4973 4988
4974#. type: Plain text 4989#. type: Plain text
4975#: doc/guix-cookbook.texi:2703 4990#: guix-git/doc/guix-cookbook.texi:2701
4976msgid "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." 4991msgid "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."
4977msgstr "Ü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." 4992msgstr "Ü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."
4978 4993
4979#. type: cindex 4994#. type: cindex
4980#: doc/guix-cookbook.texi:2706 4995#: guix-git/doc/guix-cookbook.texi:2704
4981#, no-wrap 4996#, no-wrap
4982msgid "kimsufi, Kimsufi, OVH" 4997msgid "kimsufi, Kimsufi, OVH"
4983msgstr "kimsufi, Kimsufi, OVH" 4998msgstr "kimsufi, Kimsufi, OVH"
4984 4999
4985#. type: Plain text 5000#. type: Plain text
4986#: doc/guix-cookbook.texi:2710 5001#: guix-git/doc/guix-cookbook.texi:2708
4987msgid "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." 5002msgid "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."
4988msgstr "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." 5003msgstr "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."
4989 5004
4990#. type: Plain text 5005#. type: Plain text
4991#: doc/guix-cookbook.texi:2712 5006#: guix-git/doc/guix-cookbook.texi:2710
4992msgid "OVH will email you the credentials required to ssh into a Debian system." 5007msgid "OVH will email you the credentials required to ssh into a Debian system."
4993msgstr "OVH wird Ihnen eine E-Mail mit den Anmeldedaten schicken, damit Sie sich über SSH auf ein Debian-System verbinden können." 5008msgstr "OVH wird Ihnen eine E-Mail mit den Anmeldedaten schicken, damit Sie sich über SSH auf ein Debian-System verbinden können."
4994 5009
4995#. type: Plain text 5010#. type: Plain text
4996#: doc/guix-cookbook.texi:2715 5011#: guix-git/doc/guix-cookbook.texi:2713
4997msgid "Now you can run the \"install guix from @pxref{Binary Installation,,, guix, GNU Guix}\" steps:" 5012msgid "Now you can run the \"install guix from @pxref{Binary Installation,,, guix, GNU Guix}\" steps:"
4998msgstr "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}):" 5013msgstr "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}):"
4999 5014
5000#. type: example 5015#. type: example
5001#: doc/guix-cookbook.texi:2721 5016#: guix-git/doc/guix-cookbook.texi:2719
5002#, no-wrap 5017#, no-wrap
5003msgid "" 5018msgid ""
5004"wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh\n" 5019"wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh\n"
@@ -5012,12 +5027,12 @@ msgstr ""
5012"guix pull\n" 5027"guix pull\n"
5013 5028
5014#. type: Plain text 5029#. type: Plain text
5015#: doc/guix-cookbook.texi:2724 5030#: guix-git/doc/guix-cookbook.texi:2722
5016msgid "Partition the drives and format them, first stop the raid array:" 5031msgid "Partition the drives and format them, first stop the raid array:"
5017msgstr "Partitionieren Sie nun die Laufwerke und formatieren Sie sie, aber erst nachdem Sie das RAID-Array angehalten haben:" 5032msgstr "Partitionieren Sie nun die Laufwerke und formatieren Sie sie, aber erst nachdem Sie das RAID-Array angehalten haben:"
5018 5033
5019#. type: example 5034#. type: example
5020#: doc/guix-cookbook.texi:2728 5035#: guix-git/doc/guix-cookbook.texi:2726
5021#, no-wrap 5036#, no-wrap
5022msgid "" 5037msgid ""
5023"mdadm --stop /dev/md127\n" 5038"mdadm --stop /dev/md127\n"
@@ -5027,12 +5042,12 @@ msgstr ""
5027"mdadm --zero-superblock /dev/sda2 /dev/sdb2\n" 5042"mdadm --zero-superblock /dev/sda2 /dev/sdb2\n"
5028 5043
5029#. type: Plain text 5044#. type: Plain text
5030#: doc/guix-cookbook.texi:2732 5045#: guix-git/doc/guix-cookbook.texi:2730
5031msgid "Then wipe the disks and set up the partitions, we will create a RAID 1 array." 5046msgid "Then wipe the disks and set up the partitions, we will create a RAID 1 array."
5032msgstr "Löschen Sie die Laufwerksinhalte und richten Sie die Partitionen ein; wir erzeugen ein RAID-1-Array." 5047msgstr "Löschen Sie die Laufwerksinhalte und richten Sie die Partitionen ein; wir erzeugen ein RAID-1-Array."
5033 5048
5034#. type: example 5049#. type: example
5035#: doc/guix-cookbook.texi:2736 5050#: guix-git/doc/guix-cookbook.texi:2734
5036#, no-wrap 5051#, no-wrap
5037msgid "" 5052msgid ""
5038"wipefs -a /dev/sda\n" 5053"wipefs -a /dev/sda\n"
@@ -5044,7 +5059,7 @@ msgstr ""
5044"\n" 5059"\n"
5045 5060
5046#. type: example 5061#. type: example
5047#: doc/guix-cookbook.texi:2745 5062#: guix-git/doc/guix-cookbook.texi:2743
5048#, no-wrap 5063#, no-wrap
5049msgid "" 5064msgid ""
5050"parted /dev/sda --align=opt -s -m -- mklabel gpt\n" 5065"parted /dev/sda --align=opt -s -m -- mklabel gpt\n"
@@ -5068,7 +5083,7 @@ msgstr ""
5068"\n" 5083"\n"
5069 5084
5070#. type: example 5085#. type: example
5071#: doc/guix-cookbook.texi:2754 5086#: guix-git/doc/guix-cookbook.texi:2752
5072#, no-wrap 5087#, no-wrap
5073msgid "" 5088msgid ""
5074"parted /dev/sdb --align=opt -s -m -- mklabel gpt\n" 5089"parted /dev/sdb --align=opt -s -m -- mklabel gpt\n"
@@ -5090,12 +5105,12 @@ msgstr ""
5090"parted /dev/sdb --align=opt -s -m -- mkpart primary linux-swap 512MiB 100%\n" 5105"parted /dev/sdb --align=opt -s -m -- mkpart primary linux-swap 512MiB 100%\n"
5091 5106
5092#. type: Plain text 5107#. type: Plain text
5093#: doc/guix-cookbook.texi:2757 5108#: guix-git/doc/guix-cookbook.texi:2755
5094msgid "Create the array:" 5109msgid "Create the array:"
5095msgstr "Legen Sie das Array an:" 5110msgstr "Legen Sie das Array an:"
5096 5111
5097#. type: example 5112#. type: example
5098#: doc/guix-cookbook.texi:2761 5113#: guix-git/doc/guix-cookbook.texi:2759
5099#, no-wrap 5114#, no-wrap
5100msgid "" 5115msgid ""
5101"mdadm --create /dev/md127 --level=1 --raid-disks=2 \\\n" 5116"mdadm --create /dev/md127 --level=1 --raid-disks=2 \\\n"
@@ -5105,12 +5120,12 @@ msgstr ""
5105" --metadata=0.90 /dev/sda2 /dev/sdb2\n" 5120" --metadata=0.90 /dev/sda2 /dev/sdb2\n"
5106 5121
5107#. type: Plain text 5122#. type: Plain text
5108#: doc/guix-cookbook.texi:2765 5123#: guix-git/doc/guix-cookbook.texi:2763
5109msgid "Now create file systems on the relevant partitions, first the boot partitions:" 5124msgid "Now create file systems on the relevant partitions, first the boot partitions:"
5110msgstr "Legen Sie nun Dateisysteme auf diesen Partitionen an, angefangen mit der Boot-Partition:" 5125msgstr "Legen Sie nun Dateisysteme auf diesen Partitionen an, angefangen mit der Boot-Partition:"
5111 5126
5112#. type: example 5127#. type: example
5113#: doc/guix-cookbook.texi:2769 5128#: guix-git/doc/guix-cookbook.texi:2767
5114#, no-wrap 5129#, no-wrap
5115msgid "" 5130msgid ""
5116"mkfs.ext4 /dev/sda1\n" 5131"mkfs.ext4 /dev/sda1\n"
@@ -5120,23 +5135,23 @@ msgstr ""
5120"mkfs.ext4 /dev/sdb1\n" 5135"mkfs.ext4 /dev/sdb1\n"
5121 5136
5122#. type: Plain text 5137#. type: Plain text
5123#: doc/guix-cookbook.texi:2772 5138#: guix-git/doc/guix-cookbook.texi:2770
5124msgid "Then the root partition:" 5139msgid "Then the root partition:"
5125msgstr "Dann die Wurzelpartition:" 5140msgstr "Dann die Wurzelpartition:"
5126 5141
5127#. type: example 5142#. type: example
5128#: doc/guix-cookbook.texi:2775 5143#: guix-git/doc/guix-cookbook.texi:2773
5129#, no-wrap 5144#, no-wrap
5130msgid "mkfs.ext4 /dev/md127\n" 5145msgid "mkfs.ext4 /dev/md127\n"
5131msgstr "mkfs.ext4 /dev/md127\n" 5146msgstr "mkfs.ext4 /dev/md127\n"
5132 5147
5133#. type: Plain text 5148#. type: Plain text
5134#: doc/guix-cookbook.texi:2778 5149#: guix-git/doc/guix-cookbook.texi:2776
5135msgid "Initialize the swap partitions:" 5150msgid "Initialize the swap partitions:"
5136msgstr "Initialisieren Sie die Swap-Partitionen:" 5151msgstr "Initialisieren Sie die Swap-Partitionen:"
5137 5152
5138#. type: example 5153#. type: example
5139#: doc/guix-cookbook.texi:2784 5154#: guix-git/doc/guix-cookbook.texi:2782
5140#, no-wrap 5155#, no-wrap
5141msgid "" 5156msgid ""
5142"mkswap /dev/sda3\n" 5157"mkswap /dev/sda3\n"
@@ -5150,12 +5165,12 @@ msgstr ""
5150"swapon /dev/sdb3\n" 5165"swapon /dev/sdb3\n"
5151 5166
5152#. type: Plain text 5167#. type: Plain text
5153#: doc/guix-cookbook.texi:2787 5168#: guix-git/doc/guix-cookbook.texi:2785
5154msgid "Mount the guix drive:" 5169msgid "Mount the guix drive:"
5155msgstr "Binden Sie das Guix-Laufwerk ein:" 5170msgstr "Binden Sie das Guix-Laufwerk ein:"
5156 5171
5157#. type: example 5172#. type: example
5158#: doc/guix-cookbook.texi:2791 5173#: guix-git/doc/guix-cookbook.texi:2789
5159#, no-wrap 5174#, no-wrap
5160msgid "" 5175msgid ""
5161"mkdir /mnt/guix\n" 5176"mkdir /mnt/guix\n"
@@ -5165,17 +5180,22 @@ msgstr ""
5165"mount /dev/md127 /mnt/guix\n" 5180"mount /dev/md127 /mnt/guix\n"
5166 5181
5167#. type: Plain text 5182#. type: Plain text
5168#: doc/guix-cookbook.texi:2795 5183#: guix-git/doc/guix-cookbook.texi:2793
5169msgid "Now is time to write an operating system declaration @file{os.scm} file; here is a sample:" 5184msgid "Now is time to write an operating system declaration @file{os.scm} file; here is a sample:"
5170msgstr "Der nächste Schritt ist, in eine Datei @file{os.scm} eine Betriebssystemdeklaration zu schreiben, zum Beispiel:" 5185msgstr "Der nächste Schritt ist, in eine Datei @file{os.scm} eine Betriebssystemdeklaration zu schreiben, zum Beispiel:"
5171 5186
5172#. type: lisp 5187#. type: lisp
5173#: doc/guix-cookbook.texi:2800 5188#: guix-git/doc/guix-cookbook.texi:2798
5174#, no-wrap 5189#, fuzzy, no-wrap
5190#| msgid ""
5191#| "(use-modules (gnu) (guix))\n"
5192#| "(use-service-modules networking ssh vpn virtualization sysctl admin mcron)\n"
5193#| "(use-package-modules ssh certs tls tmux vpn virtualization)\n"
5194#| "\n"
5175msgid "" 5195msgid ""
5176"(use-modules (gnu) (guix))\n" 5196"(use-modules (gnu) (guix))\n"
5177"(use-service-modules networking ssh vpn virtualization sysctl admin mcron)\n" 5197"(use-service-modules networking ssh vpn virtualization sysctl admin mcron)\n"
5178"(use-package-modules ssh certs tls tmux vpn virtualization)\n" 5198"(use-package-modules ssh tls tmux vpn virtualization)\n"
5179"\n" 5199"\n"
5180msgstr "" 5200msgstr ""
5181"(use-modules (gnu) (guix))\n" 5201"(use-modules (gnu) (guix))\n"
@@ -5184,7 +5204,7 @@ msgstr ""
5184"\n" 5204"\n"
5185 5205
5186#. type: lisp 5206#. type: lisp
5187#: doc/guix-cookbook.texi:2803 5207#: guix-git/doc/guix-cookbook.texi:2801
5188#, no-wrap 5208#, no-wrap
5189msgid "" 5209msgid ""
5190"(operating-system\n" 5210"(operating-system\n"
@@ -5196,7 +5216,7 @@ msgstr ""
5196"\n" 5216"\n"
5197 5217
5198#. type: lisp 5218#. type: lisp
5199#: doc/guix-cookbook.texi:2808 5219#: guix-git/doc/guix-cookbook.texi:2806
5200#, no-wrap 5220#, no-wrap
5201msgid "" 5221msgid ""
5202" (bootloader (bootloader-configuration\n" 5222" (bootloader (bootloader-configuration\n"
@@ -5212,7 +5232,7 @@ msgstr ""
5212"\n" 5232"\n"
5213 5233
5214#. type: lisp 5234#. type: lisp
5215#: doc/guix-cookbook.texi:2811 5235#: guix-git/doc/guix-cookbook.texi:2809
5216#, no-wrap 5236#, no-wrap
5217msgid "" 5237msgid ""
5218" ;; Add a kernel module for RAID-1 (aka. \"mirror\").\n" 5238" ;; Add a kernel module for RAID-1 (aka. \"mirror\").\n"
@@ -5224,7 +5244,7 @@ msgstr ""
5224"\n" 5244"\n"
5225 5245
5226#. type: lisp 5246#. type: lisp
5227#: doc/guix-cookbook.texi:2817 5247#: guix-git/doc/guix-cookbook.texi:2815
5228#, no-wrap 5248#, no-wrap
5229msgid "" 5249msgid ""
5230" (mapped-devices\n" 5250" (mapped-devices\n"
@@ -5242,7 +5262,7 @@ msgstr ""
5242"\n" 5262"\n"
5243 5263
5244#. type: lisp 5264#. type: lisp
5245#: doc/guix-cookbook.texi:2823 5265#: guix-git/doc/guix-cookbook.texi:2821
5246#, no-wrap 5266#, no-wrap
5247msgid "" 5267msgid ""
5248" (swap-devices\n" 5268" (swap-devices\n"
@@ -5260,7 +5280,7 @@ msgstr ""
5260"\n" 5280"\n"
5261 5281
5262#. type: lisp 5282#. type: lisp
5263#: doc/guix-cookbook.texi:2828 5283#: guix-git/doc/guix-cookbook.texi:2826
5264#, no-wrap 5284#, no-wrap
5265msgid "" 5285msgid ""
5266" (issue\n" 5286" (issue\n"
@@ -5276,7 +5296,7 @@ msgstr ""
5276"\n" 5296"\n"
5277 5297
5278#. type: lisp 5298#. type: lisp
5279#: doc/guix-cookbook.texi:2835 5299#: guix-git/doc/guix-cookbook.texi:2833
5280#, no-wrap 5300#, no-wrap
5281msgid "" 5301msgid ""
5282" (file-systems (cons* (file-system\n" 5302" (file-systems (cons* (file-system\n"
@@ -5296,7 +5316,7 @@ msgstr ""
5296"\n" 5316"\n"
5297 5317
5298#. type: lisp 5318#. type: lisp
5299#: doc/guix-cookbook.texi:2843 5319#: guix-git/doc/guix-cookbook.texi:2841
5300#, no-wrap 5320#, no-wrap
5301msgid "" 5321msgid ""
5302" (users (cons (user-account\n" 5322" (users (cons (user-account\n"
@@ -5318,7 +5338,7 @@ msgstr ""
5318"\n" 5338"\n"
5319 5339
5320#. type: lisp 5340#. type: lisp
5321#: doc/guix-cookbook.texi:2849 5341#: guix-git/doc/guix-cookbook.texi:2847
5322#, no-wrap 5342#, no-wrap
5323msgid "" 5343msgid ""
5324" (sudoers-file\n" 5344" (sudoers-file\n"
@@ -5336,11 +5356,11 @@ msgstr ""
5336"\n" 5356"\n"
5337 5357
5338#. type: lisp 5358#. type: lisp
5339#: doc/guix-cookbook.texi:2863 5359#: guix-git/doc/guix-cookbook.texi:2861
5340#, no-wrap 5360#, no-wrap
5341msgid "" 5361msgid ""
5342" ;; Globally-installed packages.\n" 5362" ;; Globally-installed packages.\n"
5343" (packages (cons* tmux nss-certs gnutls wireguard-tools %base-packages))\n" 5363" (packages (cons* tmux gnutls wireguard-tools %base-packages))\n"
5344" (services\n" 5364" (services\n"
5345" (cons*\n" 5365" (cons*\n"
5346" (service static-networking-service-type\n" 5366" (service static-networking-service-type\n"
@@ -5355,7 +5375,7 @@ msgid ""
5355"\n" 5375"\n"
5356msgstr "" 5376msgstr ""
5357" ;; Global installierte Pakete.\n" 5377" ;; Global installierte Pakete.\n"
5358" (packages (cons* tmux nss-certs gnutls wireguard-tools %base-packages))\n" 5378" (packages (cons* tmux gnutls wireguard-tools %base-packages))\n"
5359" (services\n" 5379" (services\n"
5360" (cons*\n" 5380" (cons*\n"
5361" (service static-networking-service-type\n" 5381" (service static-networking-service-type\n"
@@ -5370,7 +5390,7 @@ msgstr ""
5370"\n" 5390"\n"
5371 5391
5372#. type: lisp 5392#. type: lisp
5373#: doc/guix-cookbook.texi:2865 5393#: guix-git/doc/guix-cookbook.texi:2863
5374#, no-wrap 5394#, no-wrap
5375msgid "" 5395msgid ""
5376" (service unattended-upgrade-service-type)\n" 5396" (service unattended-upgrade-service-type)\n"
@@ -5380,7 +5400,7 @@ msgstr ""
5380"\n" 5400"\n"
5381 5401
5382#. type: lisp 5402#. type: lisp
5383#: doc/guix-cookbook.texi:2880 5403#: guix-git/doc/guix-cookbook.texi:2878
5384#, no-wrap 5404#, no-wrap
5385msgid "" 5405msgid ""
5386" (service openssh-service-type\n" 5406" (service openssh-service-type\n"
@@ -5414,48 +5434,48 @@ msgstr ""
5414"\t\t\t %default-sysctl-settings))))))))\n" 5434"\t\t\t %default-sysctl-settings))))))))\n"
5415 5435
5416#. type: Plain text 5436#. type: Plain text
5417#: doc/guix-cookbook.texi:2885 5437#: guix-git/doc/guix-cookbook.texi:2883
5418msgid "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." 5438msgid "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."
5419msgstr "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." 5439msgstr "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."
5420 5440
5421#. type: Plain text 5441#. type: Plain text
5422#: doc/guix-cookbook.texi:2889 5442#: guix-git/doc/guix-cookbook.texi:2887
5423msgid "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}." 5443msgid "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}."
5424msgstr "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}." 5444msgstr "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}."
5425 5445
5426#. type: Plain text 5446#. type: Plain text
5427#: doc/guix-cookbook.texi:2892 5447#: guix-git/doc/guix-cookbook.texi:2890
5428msgid "Transfer your operating system declaration @file{os.scm} file on the server via the @command{scp} or @command{sftp} commands." 5448msgid "Transfer your operating system declaration @file{os.scm} file on the server via the @command{scp} or @command{sftp} commands."
5429msgstr "Übertragen Sie Ihre Datei mit Betriebssystemdeklaration @file{os.scm} auf den Server mittels des Befehls @command{scp} oder @command{sftp}." 5449msgstr "Übertragen Sie Ihre Datei mit Betriebssystemdeklaration @file{os.scm} auf den Server mittels des Befehls @command{scp} oder @command{sftp}."
5430 5450
5431#. type: Plain text 5451#. type: Plain text
5432#: doc/guix-cookbook.texi:2895 5452#: guix-git/doc/guix-cookbook.texi:2893
5433msgid "Now all that is left is to install Guix with a @code{guix system init} and restart." 5453msgid "Now all that is left is to install Guix with a @code{guix system init} and restart."
5434msgstr "Bleibt nur noch, Guix mit @code{guix system init} zu installieren und neu zu starten." 5454msgstr "Bleibt nur noch, Guix mit @code{guix system init} zu installieren und neu zu starten."
5435 5455
5436#. type: Plain text 5456#. type: Plain text
5437#: doc/guix-cookbook.texi:2900 5457#: guix-git/doc/guix-cookbook.texi:2898
5438msgid "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\"." 5458msgid "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\"."
5439msgstr "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." 5459msgstr "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."
5440 5460
5441#. type: Plain text 5461#. type: Plain text
5442#: doc/guix-cookbook.texi:2902 5462#: guix-git/doc/guix-cookbook.texi:2900
5443msgid "Install packages that will be used in the chroot:" 5463msgid "Install packages that will be used in the chroot:"
5444msgstr "Installieren Sie die Pakete, die im Chroot benutzt werden:" 5464msgstr "Installieren Sie die Pakete, die im Chroot benutzt werden:"
5445 5465
5446#. type: example 5466#. type: example
5447#: doc/guix-cookbook.texi:2905 5467#: guix-git/doc/guix-cookbook.texi:2903
5448#, no-wrap 5468#, no-wrap
5449msgid "guix install bash-static parted util-linux-with-udev coreutils guix\n" 5469msgid "guix install bash-static parted util-linux-with-udev coreutils guix\n"
5450msgstr "guix install bash-static parted util-linux-with-udev coreutils guix\n" 5470msgstr "guix install bash-static parted util-linux-with-udev coreutils guix\n"
5451 5471
5452#. type: Plain text 5472#. type: Plain text
5453#: doc/guix-cookbook.texi:2908 5473#: guix-git/doc/guix-cookbook.texi:2906
5454msgid "Then run the following to create directories needed for the chroot:" 5474msgid "Then run the following to create directories needed for the chroot:"
5455msgstr "Dann legt folgender Befehl die Verzeichnisse für das Chroot an:" 5475msgstr "Dann legt folgender Befehl die Verzeichnisse für das Chroot an:"
5456 5476
5457#. type: example 5477#. type: example
5458#: doc/guix-cookbook.texi:2913 5478#: guix-git/doc/guix-cookbook.texi:2911
5459#, no-wrap 5479#, no-wrap
5460msgid "" 5480msgid ""
5461"cd /mnt && \\\n" 5481"cd /mnt && \\\n"
@@ -5467,23 +5487,23 @@ msgstr ""
5467" var/guix proc sys dev\n" 5487" var/guix proc sys dev\n"
5468 5488
5469#. type: Plain text 5489#. type: Plain text
5470#: doc/guix-cookbook.texi:2916 5490#: guix-git/doc/guix-cookbook.texi:2914
5471msgid "Copy the host resolv.conf in the chroot:" 5491msgid "Copy the host resolv.conf in the chroot:"
5472msgstr "Kopieren Sie die resolv.conf des Wirtssystems in die Chroot:" 5492msgstr "Kopieren Sie die resolv.conf des Wirtssystems in die Chroot:"
5473 5493
5474#. type: example 5494#. type: example
5475#: doc/guix-cookbook.texi:2919 5495#: guix-git/doc/guix-cookbook.texi:2917
5476#, no-wrap 5496#, no-wrap
5477msgid "cp /etc/resolv.conf etc/\n" 5497msgid "cp /etc/resolv.conf etc/\n"
5478msgstr "cp /etc/resolv.conf etc/\n" 5498msgstr "cp /etc/resolv.conf etc/\n"
5479 5499
5480#. type: Plain text 5500#. type: Plain text
5481#: doc/guix-cookbook.texi:2922 5501#: guix-git/doc/guix-cookbook.texi:2920
5482msgid "Mount block devices, the store and its database and the current guix config:" 5502msgid "Mount block devices, the store and its database and the current guix config:"
5483msgstr "Binden Sie die blockorientierten Speichermedien, den Store, seine Datenbank sowie die aktuelle Guix-Konfiguration ein:" 5503msgstr "Binden Sie die blockorientierten Speichermedien, den Store, seine Datenbank sowie die aktuelle Guix-Konfiguration ein:"
5484 5504
5485#. type: example 5505#. type: example
5486#: doc/guix-cookbook.texi:2932 5506#: guix-git/doc/guix-cookbook.texi:2930
5487#, no-wrap 5507#, no-wrap
5488msgid "" 5508msgid ""
5489"mount --rbind /proc /mnt/proc\n" 5509"mount --rbind /proc /mnt/proc\n"
@@ -5505,12 +5525,12 @@ msgstr ""
5505"mount --rbind /root/.guix-profile root/.guix-profile/\n" 5525"mount --rbind /root/.guix-profile root/.guix-profile/\n"
5506 5526
5507#. type: Plain text 5527#. type: Plain text
5508#: doc/guix-cookbook.texi:2935 5528#: guix-git/doc/guix-cookbook.texi:2933
5509msgid "Chroot in /mnt and install the system:" 5529msgid "Chroot in /mnt and install the system:"
5510msgstr "Betreten Sie ein Chroot in /mnt und installieren Sie das System:" 5530msgstr "Betreten Sie ein Chroot in /mnt und installieren Sie das System:"
5511 5531
5512#. type: example 5532#. type: example
5513#: doc/guix-cookbook.texi:2938 5533#: guix-git/doc/guix-cookbook.texi:2936
5514#, no-wrap 5534#, no-wrap
5515msgid "" 5535msgid ""
5516"chroot /mnt/ /bin/bash\n" 5536"chroot /mnt/ /bin/bash\n"
@@ -5520,38 +5540,38 @@ msgstr ""
5520"\n" 5540"\n"
5521 5541
5522#. type: example 5542#. type: example
5523#: doc/guix-cookbook.texi:2940 5543#: guix-git/doc/guix-cookbook.texi:2938
5524#, no-wrap 5544#, no-wrap
5525msgid "guix system init /root/os.scm /guix\n" 5545msgid "guix system init /root/os.scm /guix\n"
5526msgstr "guix system init /root/os.scm /guix\n" 5546msgstr "guix system init /root/os.scm /guix\n"
5527 5547
5528#. type: Plain text 5548#. type: Plain text
5529#: doc/guix-cookbook.texi:2944 5549#: guix-git/doc/guix-cookbook.texi:2942
5530msgid "Finally, from the web user interface (UI), change @samp{netboot} to @samp{boot to disk} and restart (also from the web UI)." 5550msgid "Finally, from the web user interface (UI), change @samp{netboot} to @samp{boot to disk} and restart (also from the web UI)."
5531msgstr "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)." 5551msgstr "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)."
5532 5552
5533#. type: Plain text 5553#. type: Plain text
5534#: doc/guix-cookbook.texi:2947 5554#: guix-git/doc/guix-cookbook.texi:2945
5535msgid "Wait a few minutes and try to ssh with @code{ssh guix@@@var{server-ip-address>} -i @var{path-to-your-ssh-key}}" 5555msgid "Wait a few minutes and try to ssh with @code{ssh guix@@@var{server-ip-address>} -i @var{path-to-your-ssh-key}}"
5536msgstr "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}}" 5556msgstr "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}}"
5537 5557
5538#. type: Plain text 5558#. type: Plain text
5539#: doc/guix-cookbook.texi:2950 5559#: guix-git/doc/guix-cookbook.texi:2948
5540msgid "You should have a Guix system up and running on Kimsufi; congratulations!" 5560msgid "You should have a Guix system up and running on Kimsufi; congratulations!"
5541msgstr "Sie sollten nun ein nutzbares Guix-System auf Kimsufi am Laufen haben; wir gratulieren!" 5561msgstr "Sie sollten nun ein nutzbares Guix-System auf Kimsufi am Laufen haben; wir gratulieren!"
5542 5562
5543#. type: Plain text 5563#. type: Plain text
5544#: doc/guix-cookbook.texi:2959 5564#: guix-git/doc/guix-cookbook.texi:2957
5545msgid "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}." 5565msgid "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}."
5546msgstr "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." 5566msgstr "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."
5547 5567
5548#. type: Plain text 5568#. type: Plain text
5549#: doc/guix-cookbook.texi:2962 5569#: guix-git/doc/guix-cookbook.texi:2960
5550msgid "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." 5570msgid "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."
5551msgstr "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." 5571msgstr "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."
5552 5572
5553#. type: lisp 5573#. type: lisp
5554#: doc/guix-cookbook.texi:2969 5574#: guix-git/doc/guix-cookbook.texi:2967
5555#, no-wrap 5575#, no-wrap
5556msgid "" 5576msgid ""
5557"(define source-drive ;; \"source-drive\" can be named anything you want.\n" 5577"(define source-drive ;; \"source-drive\" can be named anything you want.\n"
@@ -5567,23 +5587,23 @@ msgstr ""
5567" (type \"ext4\"))) ;; Legen Sie den dazu passenden Typ fest.\n" 5587" (type \"ext4\"))) ;; Legen Sie den dazu passenden Typ fest.\n"
5568 5588
5569#. type: Plain text 5589#. type: Plain text
5570#: doc/guix-cookbook.texi:2973 5590#: guix-git/doc/guix-cookbook.texi:2971
5571msgid "The source folder must also be defined, so that guix will know it's not a regular block device, but a folder." 5591msgid "The source folder must also be defined, so that guix will know it's not a regular block device, but a folder."
5572msgstr "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." 5592msgstr "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."
5573 5593
5574#. type: lisp 5594#. type: lisp
5575#: doc/guix-cookbook.texi:2975 5595#: guix-git/doc/guix-cookbook.texi:2973
5576#, no-wrap 5596#, no-wrap
5577msgid "(define (%source-directory) \"/path-to-spinning-disk-goes-here/tmp\") ;; \"source-directory\" can be named any valid variable name.\n" 5597msgid "(define (%source-directory) \"/path-to-spinning-disk-goes-here/tmp\") ;; \"source-directory\" can be named any valid variable name.\n"
5578msgstr "(define (%quellverzeichnis) \"/hier-der-pfad-zur-magnetfestplatte/tmp\") ;; Dem \"quellverzeichnis\" kann man einen beliebigen gültigen Variablennamen geben.\n" 5598msgstr "(define (%quellverzeichnis) \"/hier-der-pfad-zur-magnetfestplatte/tmp\") ;; Dem \"quellverzeichnis\" kann man einen beliebigen gültigen Variablennamen geben.\n"
5579 5599
5580#. type: Plain text 5600#. type: Plain text
5581#: doc/guix-cookbook.texi:2979 5601#: guix-git/doc/guix-cookbook.texi:2977
5582msgid "Finally, inside the @code{file-systems} definition, we must add the mount itself." 5602msgid "Finally, inside the @code{file-systems} definition, we must add the mount itself."
5583msgstr "In der Definition des @code{file-systems}-Felds müssen wir die Einbindung einfügen." 5603msgstr "In der Definition des @code{file-systems}-Felds müssen wir die Einbindung einfügen."
5584 5604
5585#. type: lisp 5605#. type: lisp
5586#: doc/guix-cookbook.texi:2982 5606#: guix-git/doc/guix-cookbook.texi:2980
5587#, no-wrap 5607#, no-wrap
5588msgid "" 5608msgid ""
5589"(file-systems (cons*\n" 5609"(file-systems (cons*\n"
@@ -5593,7 +5613,7 @@ msgstr ""
5593"\n" 5613"\n"
5594 5614
5595#. type: lisp 5615#. type: lisp
5596#: doc/guix-cookbook.texi:2984 5616#: guix-git/doc/guix-cookbook.texi:2982
5597#, no-wrap 5617#, no-wrap
5598msgid "" 5618msgid ""
5599" ...<other drives omitted for clarity>...\n" 5619" ...<other drives omitted for clarity>...\n"
@@ -5603,7 +5623,7 @@ msgstr ""
5603"\n" 5623"\n"
5604 5624
5605#. type: lisp 5625#. type: lisp
5606#: doc/guix-cookbook.texi:2986 5626#: guix-git/doc/guix-cookbook.texi:2984
5607#, no-wrap 5627#, no-wrap
5608msgid "" 5628msgid ""
5609" source-drive ;; Must match the name you gave the source drive in the earlier definition.\n" 5629" source-drive ;; Must match the name you gave the source drive in the earlier definition.\n"
@@ -5613,7 +5633,7 @@ msgstr ""
5613"\n" 5633"\n"
5614 5634
5615#. type: lisp 5635#. type: lisp
5616#: doc/guix-cookbook.texi:2994 5636#: guix-git/doc/guix-cookbook.texi:2992
5617#, no-wrap 5637#, no-wrap
5618msgid "" 5638msgid ""
5619" (file-system\n" 5639" (file-system\n"
@@ -5635,7 +5655,7 @@ msgstr ""
5635"\n" 5655"\n"
5636 5656
5637#. type: lisp 5657#. type: lisp
5638#: doc/guix-cookbook.texi:2996 5658#: guix-git/doc/guix-cookbook.texi:2994
5639#, no-wrap 5659#, no-wrap
5640msgid "" 5660msgid ""
5641" ...<other drives omitted for clarity>...\n" 5661" ...<other drives omitted for clarity>...\n"
@@ -5645,39 +5665,39 @@ msgstr ""
5645"\n" 5665"\n"
5646 5666
5647#. type: lisp 5667#. type: lisp
5648#: doc/guix-cookbook.texi:2998 5668#: guix-git/doc/guix-cookbook.texi:2996
5649#, no-wrap 5669#, no-wrap
5650msgid " ))\n" 5670msgid " ))\n"
5651msgstr " ))\n" 5671msgstr " ))\n"
5652 5672
5653#. type: Plain text 5673#. type: Plain text
5654#: doc/guix-cookbook.texi:3005 5674#: guix-git/doc/guix-cookbook.texi:3003
5655msgid "Guix daemon can use a HTTP proxy to get substitutes, here we are configuring it to get them via Tor." 5675msgid "Guix daemon can use a HTTP proxy to get substitutes, here we are configuring it to get them via Tor."
5656msgstr "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." 5676msgstr "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."
5657 5677
5658#. type: quotation 5678#. type: quotation
5659#: doc/guix-cookbook.texi:3006 5679#: guix-git/doc/guix-cookbook.texi:3004
5660#, no-wrap 5680#, no-wrap
5661msgid "Warning" 5681msgid "Warning"
5662msgstr "Warnung" 5682msgstr "Warnung"
5663 5683
5664#. type: quotation 5684#. type: quotation
5665#: doc/guix-cookbook.texi:3012 5685#: guix-git/doc/guix-cookbook.texi:3010
5666msgid "@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." 5686msgid "@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."
5667msgstr "@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!" 5687msgstr "@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!"
5668 5688
5669#. type: quotation 5689#. type: quotation
5670#: doc/guix-cookbook.texi:3018 5690#: guix-git/doc/guix-cookbook.texi:3016
5671msgid "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." 5691msgid "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."
5672msgstr "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." 5692msgstr "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."
5673 5693
5674#. type: Plain text 5694#. type: Plain text
5675#: doc/guix-cookbook.texi:3023 5695#: guix-git/doc/guix-cookbook.texi:3021
5676msgid "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:" 5696msgid "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:"
5677msgstr "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:" 5697msgstr "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:"
5678 5698
5679#. type: lisp 5699#. type: lisp
5680#: doc/guix-cookbook.texi:3027 5700#: guix-git/doc/guix-cookbook.texi:3025
5681#, no-wrap 5701#, no-wrap
5682msgid "" 5702msgid ""
5683"(use-modules (gnu))\n" 5703"(use-modules (gnu))\n"
@@ -5689,7 +5709,7 @@ msgstr ""
5689"\n" 5709"\n"
5690 5710
5691#. type: lisp 5711#. type: lisp
5692#: doc/guix-cookbook.texi:3044 5712#: guix-git/doc/guix-cookbook.texi:3042
5693#, no-wrap 5713#, no-wrap
5694msgid "" 5714msgid ""
5695"(operating-system\n" 5715"(operating-system\n"
@@ -5727,17 +5747,17 @@ msgstr ""
5727" (http-proxy \"http://localhost:9250\")))))))\n" 5747" (http-proxy \"http://localhost:9250\")))))))\n"
5728 5748
5729#. type: Plain text 5749#. type: Plain text
5730#: doc/guix-cookbook.texi:3053 5750#: guix-git/doc/guix-cookbook.texi:3051
5731msgid "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." 5751msgid "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."
5732msgstr "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." 5752msgstr "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."
5733 5753
5734#. type: Plain text 5754#. type: Plain text
5735#: doc/guix-cookbook.texi:3057 5755#: guix-git/doc/guix-cookbook.texi:3055
5736msgid "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:" 5756msgid "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:"
5737msgstr "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:" 5757msgstr "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:"
5738 5758
5739#. type: example 5759#. type: example
5740#: doc/guix-cookbook.texi:3062 5760#: guix-git/doc/guix-cookbook.texi:3060
5741#, no-wrap 5761#, no-wrap
5742msgid "" 5762msgid ""
5743"sudo herd set-http-proxy guix-daemon http://localhost:9250\n" 5763"sudo herd set-http-proxy guix-daemon http://localhost:9250\n"
@@ -5749,28 +5769,28 @@ msgstr ""
5749" --substitute-urls=@value{SUBSTITUTE-TOR-URL} @dots{}\n" 5769" --substitute-urls=@value{SUBSTITUTE-TOR-URL} @dots{}\n"
5750 5770
5751#. type: cindex 5771#. type: cindex
5752#: doc/guix-cookbook.texi:3066 5772#: guix-git/doc/guix-cookbook.texi:3064
5753#, no-wrap 5773#, no-wrap
5754msgid "nginx, lua, openresty, resty" 5774msgid "nginx, lua, openresty, resty"
5755msgstr "nginx, lua, openresty, resty" 5775msgstr "nginx, lua, openresty, resty"
5756 5776
5757#. type: Plain text 5777#. type: Plain text
5758#: doc/guix-cookbook.texi:3069 5778#: guix-git/doc/guix-cookbook.texi:3067
5759msgid "NGINX could be extended with Lua scripts." 5779msgid "NGINX could be extended with Lua scripts."
5760msgstr "NGINX lässt sich mit Lua-Skripts erweitern." 5780msgstr "NGINX lässt sich mit Lua-Skripts erweitern."
5761 5781
5762#. type: Plain text 5782#. type: Plain text
5763#: doc/guix-cookbook.texi:3072 5783#: guix-git/doc/guix-cookbook.texi:3070
5764msgid "Guix provides NGINX service with ability to load Lua module and specific Lua packages, and reply to requests by evaluating Lua scripts." 5784msgid "Guix provides NGINX service with ability to load Lua module and specific Lua packages, and reply to requests by evaluating Lua scripts."
5765msgstr "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." 5785msgstr "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."
5766 5786
5767#. type: Plain text 5787#. type: Plain text
5768#: doc/guix-cookbook.texi:3076 5788#: guix-git/doc/guix-cookbook.texi:3074
5769msgid "The following example demonstrates system definition with configuration to evaluate @file{index.lua} Lua script on HTTP request to @uref{http://localhost/hello} endpoint:" 5789msgid "The following example demonstrates system definition with configuration to evaluate @file{index.lua} Lua script on HTTP request to @uref{http://localhost/hello} endpoint:"
5770msgstr "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:" 5790msgstr "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:"
5771 5791
5772#. type: example 5792#. type: example
5773#: doc/guix-cookbook.texi:3079 5793#: guix-git/doc/guix-cookbook.texi:3077
5774#, no-wrap 5794#, no-wrap
5775msgid "" 5795msgid ""
5776"local shell = require \"resty.shell\"\n" 5796"local shell = require \"resty.shell\"\n"
@@ -5780,7 +5800,7 @@ msgstr ""
5780"\n" 5800"\n"
5781 5801
5782#. type: example 5802#. type: example
5783#: doc/guix-cookbook.texi:3083 5803#: guix-git/doc/guix-cookbook.texi:3081
5784#, no-wrap 5804#, no-wrap
5785msgid "" 5805msgid ""
5786"local stdin = \"\"\n" 5806"local stdin = \"\"\n"
@@ -5794,7 +5814,7 @@ msgstr ""
5794"\n" 5814"\n"
5795 5815
5796#. type: example 5816#. type: example
5797#: doc/guix-cookbook.texi:3086 5817#: guix-git/doc/guix-cookbook.texi:3084
5798#, no-wrap 5818#, no-wrap
5799msgid "" 5819msgid ""
5800"local ok, stdout, stderr, reason, status =\n" 5820"local ok, stdout, stderr, reason, status =\n"
@@ -5806,13 +5826,13 @@ msgstr ""
5806"\n" 5826"\n"
5807 5827
5808#. type: example 5828#. type: example
5809#: doc/guix-cookbook.texi:3088 5829#: guix-git/doc/guix-cookbook.texi:3086
5810#, no-wrap 5830#, no-wrap
5811msgid "ngx.say(stdout)\n" 5831msgid "ngx.say(stdout)\n"
5812msgstr "ngx.say(stdout)\n" 5832msgstr "ngx.say(stdout)\n"
5813 5833
5814#. type: lisp 5834#. type: lisp
5815#: doc/guix-cookbook.texi:3119 5835#: guix-git/doc/guix-cookbook.texi:3117
5816#, no-wrap 5836#, no-wrap
5817msgid "" 5837msgid ""
5818"(use-modules (gnu))\n" 5838"(use-modules (gnu))\n"
@@ -5874,45 +5894,45 @@ msgstr ""
5874" #$(local-file \"index.lua\"))))))))))))))\n" 5894" #$(local-file \"index.lua\"))))))))))))))\n"
5875 5895
5876#. type: cindex 5896#. type: cindex
5877#: doc/guix-cookbook.texi:3123 5897#: guix-git/doc/guix-cookbook.texi:3121
5878#, no-wrap 5898#, no-wrap
5879msgid "mpd" 5899msgid "mpd"
5880msgstr "mpd" 5900msgstr "mpd"
5881 5901
5882#. type: cindex 5902#. type: cindex
5883#: doc/guix-cookbook.texi:3124 5903#: guix-git/doc/guix-cookbook.texi:3122
5884#, no-wrap 5904#, no-wrap
5885msgid "music server, headless" 5905msgid "music server, headless"
5886msgstr "Musik-Server, ohne Oberfläche" 5906msgstr "Musik-Server, ohne Oberfläche"
5887 5907
5888#. type: cindex 5908#. type: cindex
5889#: doc/guix-cookbook.texi:3125 5909#: guix-git/doc/guix-cookbook.texi:3123
5890#, no-wrap 5910#, no-wrap
5891msgid "bluetooth, ALSA configuration" 5911msgid "bluetooth, ALSA configuration"
5892msgstr "Bluetooth, ALSA-Konfiguration" 5912msgstr "Bluetooth, ALSA-Konfiguration"
5893 5913
5894#. type: Plain text 5914#. type: Plain text
5895#: doc/guix-cookbook.texi:3132 5915#: guix-git/doc/guix-cookbook.texi:3130
5896msgid "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." 5916msgid "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."
5897msgstr "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." 5917msgstr "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."
5898 5918
5899#. type: Plain text 5919#. type: Plain text
5900#: doc/guix-cookbook.texi:3139 5920#: guix-git/doc/guix-cookbook.texi:3137
5901msgid "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." 5921msgid "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."
5902msgstr "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." 5922msgstr "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."
5903 5923
5904#. type: Plain text 5924#. type: Plain text
5905#: doc/guix-cookbook.texi:3145 5925#: guix-git/doc/guix-cookbook.texi:3143
5906msgid "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." 5926msgid "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."
5907msgstr "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." 5927msgstr "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."
5908 5928
5909#. type: Plain text 5929#. type: Plain text
5910#: doc/guix-cookbook.texi:3148 5930#: guix-git/doc/guix-cookbook.texi:3146
5911msgid "Reconfigure your system with at least the following services and packages:" 5931msgid "Reconfigure your system with at least the following services and packages:"
5912msgstr "Rekonfigurieren Sie Ihr System mit mindestens den folgenden Diensten und Paketen:" 5932msgstr "Rekonfigurieren Sie Ihr System mit mindestens den folgenden Diensten und Paketen:"
5913 5933
5914#. type: lisp 5934#. type: lisp
5915#: doc/guix-cookbook.texi:3158 5935#: guix-git/doc/guix-cookbook.texi:3156
5916#, no-wrap 5936#, no-wrap
5917msgid "" 5937msgid ""
5918"(operating-system\n" 5938"(operating-system\n"
@@ -5934,12 +5954,12 @@ msgstr ""
5934" (bluetooth-service #:auto-enable? #t)))\n" 5954" (bluetooth-service #:auto-enable? #t)))\n"
5935 5955
5936#. type: Plain text 5956#. type: Plain text
5937#: doc/guix-cookbook.texi:3165 5957#: guix-git/doc/guix-cookbook.texi:3163
5938msgid "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:" 5958msgid "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:"
5939msgstr "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:" 5959msgstr "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:"
5940 5960
5941#. type: example 5961#. type: example
5942#: doc/guix-cookbook.texi:3169 5962#: guix-git/doc/guix-cookbook.texi:3167
5943#, no-wrap 5963#, no-wrap
5944msgid "" 5964msgid ""
5945"$ bluetoothctl \n" 5965"$ bluetoothctl \n"
@@ -5951,7 +5971,7 @@ msgstr ""
5951"\n" 5971"\n"
5952 5972
5953#. type: example 5973#. type: example
5954#: doc/guix-cookbook.texi:3172 5974#: guix-git/doc/guix-cookbook.texi:3170
5955#, no-wrap 5975#, no-wrap
5956msgid "" 5976msgid ""
5957"[bluetooth]# power on\n" 5977"[bluetooth]# power on\n"
@@ -5963,7 +5983,7 @@ msgstr ""
5963"\n" 5983"\n"
5964 5984
5965#. type: example 5985#. type: example
5966#: doc/guix-cookbook.texi:3175 5986#: guix-git/doc/guix-cookbook.texi:3173
5967#, no-wrap 5987#, no-wrap
5968msgid "" 5988msgid ""
5969"[bluetooth]# agent on\n" 5989"[bluetooth]# agent on\n"
@@ -5975,7 +5995,7 @@ msgstr ""
5975"\n" 5995"\n"
5976 5996
5977#. type: example 5997#. type: example
5978#: doc/guix-cookbook.texi:3178 5998#: guix-git/doc/guix-cookbook.texi:3176
5979#, no-wrap 5999#, no-wrap
5980msgid "" 6000msgid ""
5981"[bluetooth]# default-agent\n" 6001"[bluetooth]# default-agent\n"
@@ -5987,7 +6007,7 @@ msgstr ""
5987"\n" 6007"\n"
5988 6008
5989#. type: example 6009#. type: example
5990#: doc/guix-cookbook.texi:3185 6010#: guix-git/doc/guix-cookbook.texi:3183
5991#, no-wrap 6011#, no-wrap
5992msgid "" 6012msgid ""
5993"[bluetooth]# scan on\n" 6013"[bluetooth]# scan on\n"
@@ -6007,7 +6027,7 @@ msgstr ""
6007"\n" 6027"\n"
6008 6028
6009#. type: example 6029#. type: example
6010#: doc/guix-cookbook.texi:3189 6030#: guix-git/doc/guix-cookbook.texi:3187
6011#, no-wrap 6031#, no-wrap
6012msgid "" 6032msgid ""
6013"[bluetooth]# pair AA:BB:CC:A4:AA:CD\n" 6033"[bluetooth]# pair AA:BB:CC:A4:AA:CD\n"
@@ -6021,7 +6041,7 @@ msgstr ""
6021"\n" 6041"\n"
6022 6042
6023#. type: example 6043#. type: example
6024#: doc/guix-cookbook.texi:3195 6044#: guix-git/doc/guix-cookbook.texi:3193
6025#, no-wrap 6045#, no-wrap
6026msgid "" 6046msgid ""
6027"[My Bluetooth Speaker]# [CHG] Device AA:BB:CC:A4:AA:CD UUIDs: 0000110b-0000-1000-8000-00xxxxxxxxxx\n" 6047"[My Bluetooth Speaker]# [CHG] Device AA:BB:CC:A4:AA:CD UUIDs: 0000110b-0000-1000-8000-00xxxxxxxxxx\n"
@@ -6039,7 +6059,7 @@ msgstr ""
6039"\n" 6059"\n"
6040 6060
6041#. type: example 6061#. type: example
6042#: doc/guix-cookbook.texi:3197 6062#: guix-git/doc/guix-cookbook.texi:3195
6043#, no-wrap 6063#, no-wrap
6044msgid "" 6064msgid ""
6045"[CHG] Device AA:BB:CC:A4:AA:CD Connected: no\n" 6065"[CHG] Device AA:BB:CC:A4:AA:CD Connected: no\n"
@@ -6049,7 +6069,7 @@ msgstr ""
6049"\n" 6069"\n"
6050 6070
6051#. type: example 6071#. type: example
6052#: doc/guix-cookbook.texi:3202 6072#: guix-git/doc/guix-cookbook.texi:3200
6053#, no-wrap 6073#, no-wrap
6054msgid "" 6074msgid ""
6055"[bluetooth]# \n" 6075"[bluetooth]# \n"
@@ -6065,7 +6085,7 @@ msgstr ""
6065"\n" 6085"\n"
6066 6086
6067#. type: example 6087#. type: example
6068#: doc/guix-cookbook.texi:3209 6088#: guix-git/doc/guix-cookbook.texi:3207
6069#, no-wrap 6089#, no-wrap
6070msgid "" 6090msgid ""
6071"[bluetooth]# \n" 6091"[bluetooth]# \n"
@@ -6085,7 +6105,7 @@ msgstr ""
6085"\n" 6105"\n"
6086 6106
6087#. type: example 6107#. type: example
6088#: doc/guix-cookbook.texi:3214 6108#: guix-git/doc/guix-cookbook.texi:3212
6089#, no-wrap 6109#, no-wrap
6090msgid "" 6110msgid ""
6091"[My Bluetooth Speaker]# scan off\n" 6111"[My Bluetooth Speaker]# scan off\n"
@@ -6099,27 +6119,27 @@ msgstr ""
6099"[CHG] Controller 00:11:22:33:95:7F Discovering: no\n" 6119"[CHG] Controller 00:11:22:33:95:7F Discovering: no\n"
6100 6120
6101#. type: Plain text 6121#. type: Plain text
6102#: doc/guix-cookbook.texi:3218 6122#: guix-git/doc/guix-cookbook.texi:3216
6103msgid "Congratulations, you can now automatically connect to your Bluetooth speaker!" 6123msgid "Congratulations, you can now automatically connect to your Bluetooth speaker!"
6104msgstr "Wir gratulieren: Sie bekommen jetzt eine automatische Verbindung zu Ihrem Bluetooth-Speaker!" 6124msgstr "Wir gratulieren: Sie bekommen jetzt eine automatische Verbindung zu Ihrem Bluetooth-Speaker!"
6105 6125
6106#. type: Plain text 6126#. type: Plain text
6107#: doc/guix-cookbook.texi:3228 6127#: guix-git/doc/guix-cookbook.texi:3226
6108msgid "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." 6128msgid "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."
6109msgstr "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." 6129msgstr "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."
6110 6130
6111#. type: Plain text 6131#. type: Plain text
6112#: doc/guix-cookbook.texi:3235 6132#: guix-git/doc/guix-cookbook.texi:3233
6113msgid "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." 6133msgid "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."
6114msgstr "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." 6134msgstr "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."
6115 6135
6116#. type: Plain text 6136#. type: Plain text
6117#: doc/guix-cookbook.texi:3238 6137#: guix-git/doc/guix-cookbook.texi:3236
6118msgid "What follows is the outline of an @code{operating-system} declaration that should accomplish the above-mentioned tasks:" 6138msgid "What follows is the outline of an @code{operating-system} declaration that should accomplish the above-mentioned tasks:"
6119msgstr "Es folgt ein Umriss, wie eine Betriebssystemdeklaration aussehen kann, die die oben genannten Aufgaben erfüllen dürfte:" 6139msgstr "Es folgt ein Umriss, wie eine Betriebssystemdeklaration aussehen kann, die die oben genannten Aufgaben erfüllen dürfte:"
6120 6140
6121#. type: lisp 6141#. type: lisp
6122#: doc/guix-cookbook.texi:3286 6142#: guix-git/doc/guix-cookbook.texi:3284
6123#, no-wrap 6143#, no-wrap
6124msgid "" 6144msgid ""
6125"(use-modules (gnu))\n" 6145"(use-modules (gnu))\n"
@@ -6219,7 +6239,7 @@ msgstr ""
6219"\n" 6239"\n"
6220 6240
6221#. type: lisp 6241#. type: lisp
6222#: doc/guix-cookbook.texi:3291 6242#: guix-git/doc/guix-cookbook.texi:3289
6223#, no-wrap 6243#, no-wrap
6224msgid "" 6244msgid ""
6225"# Declare control device type \\\"bluealsa\\\" from the same module\n" 6245"# Declare control device type \\\"bluealsa\\\" from the same module\n"
@@ -6235,7 +6255,7 @@ msgstr ""
6235"\n" 6255"\n"
6236 6256
6237#. type: lisp 6257#. type: lisp
6238#: doc/guix-cookbook.texi:3298 6258#: guix-git/doc/guix-cookbook.texi:3296
6239#, no-wrap 6259#, no-wrap
6240msgid "" 6260msgid ""
6241"# Define the actual Bluetooth audio device.\n" 6261"# Define the actual Bluetooth audio device.\n"
@@ -6255,7 +6275,7 @@ msgstr ""
6255"\n" 6275"\n"
6256 6276
6257#. type: lisp 6277#. type: lisp
6258#: doc/guix-cookbook.texi:3304 6278#: guix-git/doc/guix-cookbook.texi:3302
6259#, no-wrap 6279#, no-wrap
6260msgid "" 6280msgid ""
6261"# Define an associated controller.\n" 6281"# Define an associated controller.\n"
@@ -6271,48 +6291,48 @@ msgstr ""
6271"\"))))))\n" 6291"\"))))))\n"
6272 6292
6273#. type: Plain text 6293#. type: Plain text
6274#: doc/guix-cookbook.texi:3308 6294#: guix-git/doc/guix-cookbook.texi:3306
6275msgid "Enjoy the music with the MPD client of your choice or a media player capable of streaming via HTTP!" 6295msgid "Enjoy the music with the MPD client of your choice or a media player capable of streaming via HTTP!"
6276msgstr "Genießen Sie nun, wie die Musik aus dem MPD-Client Ihrer Wahl erschallt, oder einem Mediaplayer, der über HTTP streamen kann!" 6296msgstr "Genießen Sie nun, wie die Musik aus dem MPD-Client Ihrer Wahl erschallt, oder einem Mediaplayer, der über HTTP streamen kann!"
6277 6297
6278#. type: Plain text 6298#. type: Plain text
6279#: doc/guix-cookbook.texi:3321 6299#: guix-git/doc/guix-cookbook.texi:3319
6280msgid "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." 6300msgid "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."
6281msgstr "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." 6301msgstr "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."
6282 6302
6283#. type: Plain text 6303#. type: Plain text
6284#: doc/guix-cookbook.texi:3327 6304#: guix-git/doc/guix-cookbook.texi:3325
6285msgid "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." 6305msgid "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."
6286msgstr "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." 6306msgstr "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."
6287 6307
6288#. type: Plain text 6308#. type: Plain text
6289#: doc/guix-cookbook.texi:3334 6309#: guix-git/doc/guix-cookbook.texi:3332
6290msgid "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." 6310msgid "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."
6291msgstr "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." 6311msgstr "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."
6292 6312
6293#. type: Plain text 6313#. type: Plain text
6294#: doc/guix-cookbook.texi:3346 6314#: guix-git/doc/guix-cookbook.texi:3344
6295msgid "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." 6315msgid "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."
6296msgstr "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." 6316msgstr "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."
6297 6317
6298#. type: Plain text 6318#. type: Plain text
6299#: doc/guix-cookbook.texi:3353 6319#: guix-git/doc/guix-cookbook.texi:3351
6300msgid "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." 6320msgid "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."
6301msgstr "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." 6321msgstr "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."
6302 6322
6303#. type: example 6323#. type: example
6304#: doc/guix-cookbook.texi:3356 6324#: guix-git/doc/guix-cookbook.texi:3354
6305#, no-wrap 6325#, no-wrap
6306msgid "guix shell --container\n" 6326msgid "guix shell --container\n"
6307msgstr "guix shell --container\n" 6327msgstr "guix shell --container\n"
6308 6328
6309#. type: Plain text 6329#. type: Plain text
6310#: doc/guix-cookbook.texi:3363 6330#: guix-git/doc/guix-cookbook.texi:3361
6311msgid "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." 6331msgid "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."
6312msgstr "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." 6332msgstr "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."
6313 6333
6314#. type: example 6334#. type: example
6315#: doc/guix-cookbook.texi:3373 6335#: guix-git/doc/guix-cookbook.texi:3371
6316#, no-wrap 6336#, no-wrap
6317msgid "" 6337msgid ""
6318"$ echo /gnu/store/*\n" 6338"$ echo /gnu/store/*\n"
@@ -6334,41 +6354,41 @@ msgstr ""
6334"/gnu/store/…-readline-8.1.1\n" 6354"/gnu/store/…-readline-8.1.1\n"
6335 6355
6336#. type: cindex 6356#. type: cindex
6337#: doc/guix-cookbook.texi:3375 6357#: guix-git/doc/guix-cookbook.texi:3373
6338#, no-wrap 6358#, no-wrap
6339msgid "exiting a container" 6359msgid "exiting a container"
6340msgstr "Container verlassen" 6360msgstr "Container verlassen"
6341 6361
6342#. type: Plain text 6362#. type: Plain text
6343#: doc/guix-cookbook.texi:3379 6363#: guix-git/doc/guix-cookbook.texi:3377
6344msgid "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." 6364msgid "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."
6345msgstr "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." 6365msgstr "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."
6346 6366
6347#. type: cindex 6367#. type: cindex
6348#: doc/guix-cookbook.texi:3380 6368#: guix-git/doc/guix-cookbook.texi:3378
6349#, no-wrap 6369#, no-wrap
6350msgid "exposing directories, container" 6370msgid "exposing directories, container"
6351msgstr "Verzeichnisse zugänglich machen, Container" 6371msgstr "Verzeichnisse zugänglich machen, Container"
6352 6372
6353#. type: cindex 6373#. type: cindex
6354#: doc/guix-cookbook.texi:3381 6374#: guix-git/doc/guix-cookbook.texi:3379
6355#, no-wrap 6375#, no-wrap
6356msgid "sharing directories, container" 6376msgid "sharing directories, container"
6357msgstr "geteilte Verzeichnisse, Container" 6377msgstr "geteilte Verzeichnisse, Container"
6358 6378
6359#. type: cindex 6379#. type: cindex
6360#: doc/guix-cookbook.texi:3382 6380#: guix-git/doc/guix-cookbook.texi:3380
6361#, no-wrap 6381#, no-wrap
6362msgid "mapping locations, container" 6382msgid "mapping locations, container"
6363msgstr "Freigaben, Container" 6383msgstr "Freigaben, Container"
6364 6384
6365#. type: Plain text 6385#. type: Plain text
6366#: doc/guix-cookbook.texi:3391 6386#: guix-git/doc/guix-cookbook.texi:3389
6367msgid "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." 6387msgid "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."
6368msgstr "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." 6388msgstr "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."
6369 6389
6370#. type: example 6390#. type: example
6371#: doc/guix-cookbook.texi:3395 6391#: guix-git/doc/guix-cookbook.texi:3393
6372#, no-wrap 6392#, no-wrap
6373msgid "" 6393msgid ""
6374"$ guix shell --container --share=/etc=/the/host/etc coreutils\n" 6394"$ guix shell --container --share=/etc=/the/host/etc coreutils\n"
@@ -6378,34 +6398,34 @@ msgstr ""
6378"$ ls /das/wirtssystem/etc\n" 6398"$ ls /das/wirtssystem/etc\n"
6379 6399
6380#. type: Plain text 6400#. type: Plain text
6381#: doc/guix-cookbook.texi:3402 6401#: guix-git/doc/guix-cookbook.texi:3400
6382msgid "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." 6402msgid "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."
6383msgstr "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." 6403msgstr "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."
6384 6404
6385#. type: cindex 6405#. type: cindex
6386#: doc/guix-cookbook.texi:3403 6406#: guix-git/doc/guix-cookbook.texi:3401
6387#, no-wrap 6407#, no-wrap
6388msgid "hide system libraries, container" 6408msgid "hide system libraries, container"
6389msgstr "Systembibliotheken verbergen, Container" 6409msgstr "Systembibliotheken verbergen, Container"
6390 6410
6391#. type: cindex 6411#. type: cindex
6392#: doc/guix-cookbook.texi:3404 6412#: guix-git/doc/guix-cookbook.texi:3402
6393#, no-wrap 6413#, no-wrap
6394msgid "avoid ABI mismatch, container" 6414msgid "avoid ABI mismatch, container"
6395msgstr "inkompatible ABI beheben, Container" 6415msgstr "inkompatible ABI beheben, Container"
6396 6416
6397#. type: Plain text 6417#. type: Plain text
6398#: doc/guix-cookbook.texi:3414 6418#: guix-git/doc/guix-cookbook.texi:3412
6399msgid "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." 6419msgid "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."
6400msgstr "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." 6420msgstr "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."
6401 6421
6402#. type: Plain text 6422#. type: Plain text
6403#: doc/guix-cookbook.texi:3417 6423#: guix-git/doc/guix-cookbook.texi:3415
6404msgid "Let's take a comprehensive manifest providing a comfortable development environment for use with R:" 6424msgid "Let's take a comprehensive manifest providing a comfortable development environment for use with R:"
6405msgstr "Schauen wir uns ein umfassendes Manifest für eine komfortable R-Entwicklungsumgebung an:" 6425msgstr "Schauen wir uns ein umfassendes Manifest für eine komfortable R-Entwicklungsumgebung an:"
6406 6426
6407#. type: lisp 6427#. type: lisp
6408#: doc/guix-cookbook.texi:3421 6428#: guix-git/doc/guix-cookbook.texi:3419
6409#, no-wrap 6429#, no-wrap
6410msgid "" 6430msgid ""
6411"(specifications->manifest\n" 6431"(specifications->manifest\n"
@@ -6417,7 +6437,7 @@ msgstr ""
6417"\n" 6437"\n"
6418 6438
6419#. type: lisp 6439#. type: lisp
6420#: doc/guix-cookbook.texi:3426 6440#: guix-git/doc/guix-cookbook.texi:3424
6421#, no-wrap 6441#, no-wrap
6422msgid "" 6442msgid ""
6423" ;; base packages\n" 6443" ;; base packages\n"
@@ -6433,7 +6453,7 @@ msgstr ""
6433"\n" 6453"\n"
6434 6454
6435#. type: lisp 6455#. type: lisp
6436#: doc/guix-cookbook.texi:3433 6456#: guix-git/doc/guix-cookbook.texi:3431
6437#, no-wrap 6457#, no-wrap
6438msgid "" 6458msgid ""
6439" ;; Common command line tools lest the container is too empty.\n" 6459" ;; Common command line tools lest the container is too empty.\n"
@@ -6454,7 +6474,7 @@ msgstr ""
6454"\n" 6474"\n"
6455 6475
6456#. type: lisp 6476#. type: lisp
6457#: doc/guix-cookbook.texi:3436 6477#: guix-git/doc/guix-cookbook.texi:3434
6458#, no-wrap 6478#, no-wrap
6459msgid "" 6479msgid ""
6460" ;; R markdown tools\n" 6480" ;; R markdown tools\n"
@@ -6466,7 +6486,7 @@ msgstr ""
6466"\n" 6486"\n"
6467 6487
6468#. type: lisp 6488#. type: lisp
6469#: doc/guix-cookbook.texi:3452 6489#: guix-git/doc/guix-cookbook.texi:3450
6470#, no-wrap 6490#, no-wrap
6471msgid "" 6491msgid ""
6472" ;; Toolchain and common libraries for \"install.packages\"\n" 6492" ;; Toolchain and common libraries for \"install.packages\"\n"
@@ -6502,12 +6522,12 @@ msgstr ""
6502" \"zlib\"))\n" 6522" \"zlib\"))\n"
6503 6523
6504#. type: Plain text 6524#. type: Plain text
6505#: doc/guix-cookbook.texi:3458 6525#: guix-git/doc/guix-cookbook.texi:3456
6506msgid "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." 6526msgid "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."
6507msgstr "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." 6527msgstr "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."
6508 6528
6509#. type: example 6529#. type: example
6510#: doc/guix-cookbook.texi:3461 6530#: guix-git/doc/guix-cookbook.texi:3459
6511#, no-wrap 6531#, no-wrap
6512msgid "" 6532msgid ""
6513"$ guix shell --container --network --manifest=manifest.scm -- R\n" 6533"$ guix shell --container --network --manifest=manifest.scm -- R\n"
@@ -6517,7 +6537,7 @@ msgstr ""
6517"\n" 6537"\n"
6518 6538
6519#. type: example 6539#. type: example
6520#: doc/guix-cookbook.texi:3474 6540#: guix-git/doc/guix-cookbook.texi:3472
6521#, no-wrap 6541#, no-wrap
6522msgid "" 6542msgid ""
6523"R version 4.2.1 (2022-06-23) -- \"Funny-Looking Kid\"\n" 6543"R version 4.2.1 (2022-06-23) -- \"Funny-Looking Kid\"\n"
@@ -6549,7 +6569,7 @@ msgstr ""
6549"\n" 6569"\n"
6550 6570
6551#. type: example 6571#. type: example
6552#: doc/guix-cookbook.texi:3479 6572#: guix-git/doc/guix-cookbook.texi:3477
6553#, no-wrap 6573#, no-wrap
6554msgid "" 6574msgid ""
6555"The downloaded source packages are in\n" 6575"The downloaded source packages are in\n"
@@ -6563,32 +6583,32 @@ msgstr ""
6563"> # success!\n" 6583"> # success!\n"
6564 6584
6565#. type: Plain text 6585#. type: Plain text
6566#: doc/guix-cookbook.texi:3487 6586#: guix-git/doc/guix-cookbook.texi:3485
6567msgid "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." 6587msgid "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."
6568msgstr "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." 6588msgstr "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."
6569 6589
6570#. type: Plain text 6590#. type: Plain text
6571#: doc/guix-cookbook.texi:3501 6591#: guix-git/doc/guix-cookbook.texi:3499
6572msgid "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." 6592msgid "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."
6573msgstr "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." 6593msgstr "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."
6574 6594
6575#. type: Plain text 6595#. type: Plain text
6576#: doc/guix-cookbook.texi:3512 6596#: guix-git/doc/guix-cookbook.texi:3510
6577msgid "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})." 6597msgid "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})."
6578msgstr "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." 6598msgstr "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."
6579 6599
6580#. type: Plain text 6600#. type: Plain text
6581#: doc/guix-cookbook.texi:3519 6601#: guix-git/doc/guix-cookbook.texi:3517
6582msgid "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." 6602msgid "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."
6583msgstr "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." 6603msgstr "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."
6584 6604
6585#. type: Plain text 6605#. type: Plain text
6586#: doc/guix-cookbook.texi:3532 6606#: guix-git/doc/guix-cookbook.texi:3530
6587msgid "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:" 6607msgid "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:"
6588msgstr "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:" 6608msgstr "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:"
6589 6609
6590#. type: lisp 6610#. type: lisp
6591#: doc/guix-cookbook.texi:3537 6611#: guix-git/doc/guix-cookbook.texi:3535
6592#, no-wrap 6612#, no-wrap
6593msgid "" 6613msgid ""
6594"(service postgresql-service-type\n" 6614"(service postgresql-service-type\n"
@@ -6600,12 +6620,12 @@ msgstr ""
6600" (postgresql postgresql-14)))\n" 6620" (postgresql postgresql-14)))\n"
6601 6621
6602#. type: Plain text 6622#. type: Plain text
6603#: doc/guix-cookbook.texi:3541 6623#: guix-git/doc/guix-cookbook.texi:3539
6604msgid "A complete operating system declaration for use with a Guix System container would look something like this:" 6624msgid "A complete operating system declaration for use with a Guix System container would look something like this:"
6605msgstr "Eine vollumfängliche Betriebssystemdeklaration, die Sie für einen Guix-System-Container verwenden könnten, sähe in etwa so aus:" 6625msgstr "Eine vollumfängliche Betriebssystemdeklaration, die Sie für einen Guix-System-Container verwenden könnten, sähe in etwa so aus:"
6606 6626
6607#. type: lisp 6627#. type: lisp
6608#: doc/guix-cookbook.texi:3546 6628#: guix-git/doc/guix-cookbook.texi:3544
6609#, no-wrap 6629#, no-wrap
6610msgid "" 6630msgid ""
6611"(use-modules (gnu))\n" 6631"(use-modules (gnu))\n"
@@ -6619,7 +6639,7 @@ msgstr ""
6619"\n" 6639"\n"
6620 6640
6621#. type: lisp 6641#. type: lisp
6622#: doc/guix-cookbook.texi:3580 6642#: guix-git/doc/guix-cookbook.texi:3578
6623#, no-wrap 6643#, no-wrap
6624msgid "" 6644msgid ""
6625"(operating-system\n" 6645"(operating-system\n"
@@ -6691,17 +6711,17 @@ msgstr ""
6691" %base-services)))\n" 6711" %base-services)))\n"
6692 6712
6693#. type: Plain text 6713#. type: Plain text
6694#: doc/guix-cookbook.texi:3588 6714#: guix-git/doc/guix-cookbook.texi:3586
6695msgid "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." 6715msgid "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."
6696msgstr "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." 6716msgstr "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."
6697 6717
6698#. type: Plain text 6718#. type: Plain text
6699#: doc/guix-cookbook.texi:3594 6719#: guix-git/doc/guix-cookbook.texi:3592
6700msgid "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})." 6720msgid "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})."
6701msgstr "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})." 6721msgstr "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})."
6702 6722
6703#. type: example 6723#. type: example
6704#: doc/guix-cookbook.texi:3602 6724#: guix-git/doc/guix-cookbook.texi:3600
6705#, no-wrap 6725#, no-wrap
6706msgid "" 6726msgid ""
6707"$ guix system container os.scm\n" 6727"$ guix system container os.scm\n"
@@ -6719,12 +6739,12 @@ msgstr ""
6719"/gnu/store/…-run-container\n" 6739"/gnu/store/…-run-container\n"
6720 6740
6721#. type: Plain text 6741#. type: Plain text
6722#: doc/guix-cookbook.texi:3608 6742#: guix-git/doc/guix-cookbook.texi:3606
6723msgid "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}." 6743msgid "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}."
6724msgstr "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}." 6744msgstr "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}."
6725 6745
6726#. type: example 6746#. type: example
6727#: doc/guix-cookbook.texi:3613 6747#: guix-git/doc/guix-cookbook.texi:3611
6728#, no-wrap 6748#, no-wrap
6729msgid "" 6749msgid ""
6730"$ sudo /gnu/store/@dots{}-run-container\n" 6750"$ sudo /gnu/store/@dots{}-run-container\n"
@@ -6736,12 +6756,12 @@ msgstr ""
6736"…\n" 6756"…\n"
6737 6757
6738#. type: Plain text 6758#. type: Plain text
6739#: doc/guix-cookbook.texi:3620 6759#: guix-git/doc/guix-cookbook.texi:3618
6740msgid "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:" 6760msgid "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:"
6741msgstr "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:" 6761msgstr "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:"
6742 6762
6743#. type: example 6763#. type: example
6744#: doc/guix-cookbook.texi:3633 6764#: guix-git/doc/guix-cookbook.texi:3631
6745#, no-wrap 6765#, no-wrap
6746msgid "" 6766msgid ""
6747"$ guix shell util-linux\n" 6767"$ guix shell util-linux\n"
@@ -6769,28 +6789,28 @@ msgstr ""
6769"root@@container /# exit\n" 6789"root@@container /# exit\n"
6770 6790
6771#. type: Plain text 6791#. type: Plain text
6772#: doc/guix-cookbook.texi:3636 6792#: guix-git/doc/guix-cookbook.texi:3634
6773msgid "The PostgreSQL service is running in the container!" 6793msgid "The PostgreSQL service is running in the container!"
6774msgstr "Wie Sie sehen, läuft der PostgreSQL-Dienst im Container!" 6794msgstr "Wie Sie sehen, läuft der PostgreSQL-Dienst im Container!"
6775 6795
6776#. type: cindex 6796#. type: cindex
6777#: doc/guix-cookbook.texi:3640 6797#: guix-git/doc/guix-cookbook.texi:3638
6778#, no-wrap 6798#, no-wrap
6779msgid "container networking" 6799msgid "container networking"
6780msgstr "Container-Netzwerkverbindung" 6800msgstr "Container-Netzwerkverbindung"
6781 6801
6782#. type: Plain text 6802#. type: Plain text
6783#: doc/guix-cookbook.texi:3646 6803#: guix-git/doc/guix-cookbook.texi:3644
6784msgid "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." 6804msgid "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."
6785msgstr "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." 6805msgstr "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."
6786 6806
6787#. type: Plain text 6807#. type: Plain text
6788#: doc/guix-cookbook.texi:3652 6808#: guix-git/doc/guix-cookbook.texi:3650
6789msgid "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." 6809msgid "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."
6790msgstr "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." 6810msgstr "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."
6791 6811
6792#. type: example 6812#. type: example
6793#: doc/guix-cookbook.texi:3658 6813#: guix-git/doc/guix-cookbook.texi:3656
6794#, no-wrap 6814#, no-wrap
6795msgid "" 6815msgid ""
6796"pid=5983\n" 6816"pid=5983\n"
@@ -6806,7 +6826,7 @@ msgstr ""
6806"\n" 6826"\n"
6807 6827
6808#. type: example 6828#. type: example
6809#: doc/guix-cookbook.texi:3661 6829#: guix-git/doc/guix-cookbook.texi:3659
6810#, no-wrap 6830#, no-wrap
6811msgid "" 6831msgid ""
6812"# Attach the new net namespace \"guix-test\" to the container PID.\n" 6832"# Attach the new net namespace \"guix-test\" to the container PID.\n"
@@ -6818,7 +6838,7 @@ msgstr ""
6818"\n" 6838"\n"
6819 6839
6820#. type: example 6840#. type: example
6821#: doc/guix-cookbook.texi:3664 6841#: guix-git/doc/guix-cookbook.texi:3662
6822#, no-wrap 6842#, no-wrap
6823msgid "" 6843msgid ""
6824"# Create the pair of devices\n" 6844"# Create the pair of devices\n"
@@ -6830,7 +6850,7 @@ msgstr ""
6830"\n" 6850"\n"
6831 6851
6832#. type: example 6852#. type: example
6833#: doc/guix-cookbook.texi:3667 6853#: guix-git/doc/guix-cookbook.texi:3665
6834#, no-wrap 6854#, no-wrap
6835msgid "" 6855msgid ""
6836"# Move the client device into the container's net namespace\n" 6856"# Move the client device into the container's net namespace\n"
@@ -6840,12 +6860,12 @@ msgstr ""
6840"sudo ip link set $client netns $ns\n" 6860"sudo ip link set $client netns $ns\n"
6841 6861
6842#. type: Plain text 6862#. type: Plain text
6843#: doc/guix-cookbook.texi:3670 6863#: guix-git/doc/guix-cookbook.texi:3668
6844msgid "Then we configure the host side:" 6864msgid "Then we configure the host side:"
6845msgstr "Anschließend konfigurieren wir die Wirtsseite:" 6865msgstr "Anschließend konfigurieren wir die Wirtsseite:"
6846 6866
6847#. type: example 6867#. type: example
6848#: doc/guix-cookbook.texi:3674 6868#: guix-git/doc/guix-cookbook.texi:3672
6849#, no-wrap 6869#, no-wrap
6850msgid "" 6870msgid ""
6851"sudo ip link set $host up\n" 6871"sudo ip link set $host up\n"
@@ -6855,12 +6875,12 @@ msgstr ""
6855"sudo ip addr add 10.0.0.1/24 dev $host\n" 6875"sudo ip addr add 10.0.0.1/24 dev $host\n"
6856 6876
6857#. type: Plain text 6877#. type: Plain text
6858#: doc/guix-cookbook.texi:3677 6878#: guix-git/doc/guix-cookbook.texi:3675
6859msgid "@dots{}and then we configure the client side:" 6879msgid "@dots{}and then we configure the client side:"
6860msgstr "… und dann konfigurieren wir die Clientseite:" 6880msgstr "… und dann konfigurieren wir die Clientseite:"
6861 6881
6862#. type: example 6882#. type: example
6863#: doc/guix-cookbook.texi:3682 6883#: guix-git/doc/guix-cookbook.texi:3680
6864#, no-wrap 6884#, no-wrap
6865msgid "" 6885msgid ""
6866"sudo ip netns exec $ns ip link set lo up\n" 6886"sudo ip netns exec $ns ip link set lo up\n"
@@ -6872,12 +6892,12 @@ msgstr ""
6872"sudo ip netns exec $ns ip addr add 10.0.0.2/24 dev $client\n" 6892"sudo ip netns exec $ns ip addr add 10.0.0.2/24 dev $client\n"
6873 6893
6874#. type: Plain text 6894#. type: Plain text
6875#: doc/guix-cookbook.texi:3688 6895#: guix-git/doc/guix-cookbook.texi:3686
6876msgid "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." 6896msgid "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."
6877msgstr "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." 6897msgstr "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."
6878 6898
6879#. type: example 6899#. type: example
6880#: doc/guix-cookbook.texi:3693 6900#: guix-git/doc/guix-cookbook.texi:3691
6881#, no-wrap 6901#, no-wrap
6882msgid "" 6902msgid ""
6883"$ psql -h 10.0.0.2 -U test\n" 6903"$ psql -h 10.0.0.2 -U test\n"
@@ -6891,7 +6911,7 @@ msgstr ""
6891"\n" 6911"\n"
6892 6912
6893#. type: example 6913#. type: example
6894#: doc/guix-cookbook.texi:3703 6914#: guix-git/doc/guix-cookbook.texi:3701
6895#, no-wrap 6915#, no-wrap
6896msgid "" 6916msgid ""
6897"test=> CREATE TABLE hello (who TEXT NOT NULL);\n" 6917"test=> CREATE TABLE hello (who TEXT NOT NULL);\n"
@@ -6915,12 +6935,12 @@ msgstr ""
6915"(1 row)\n" 6935"(1 row)\n"
6916 6936
6917#. type: Plain text 6937#. type: Plain text
6918#: doc/guix-cookbook.texi:3706 6938#: guix-git/doc/guix-cookbook.texi:3704
6919msgid "Now that we're done with this little demonstration let's clean up:" 6939msgid "Now that we're done with this little demonstration let's clean up:"
6920msgstr "Jetzt, wo wir mit der kurzen Demonstration fertig sind, geht es an’s Aufräumen:" 6940msgstr "Jetzt, wo wir mit der kurzen Demonstration fertig sind, geht es an’s Aufräumen:"
6921 6941
6922#. type: example 6942#. type: example
6923#: doc/guix-cookbook.texi:3711 6943#: guix-git/doc/guix-cookbook.texi:3709
6924#, no-wrap 6944#, no-wrap
6925msgid "" 6945msgid ""
6926"sudo kill $pid\n" 6946"sudo kill $pid\n"
@@ -6932,95 +6952,95 @@ msgstr ""
6932"sudo ip link del $host\n" 6952"sudo ip link del $host\n"
6933 6953
6934#. type: Plain text 6954#. type: Plain text
6935#: doc/guix-cookbook.texi:3720 6955#: guix-git/doc/guix-cookbook.texi:3718
6936msgid "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." 6956msgid "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."
6937msgstr "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." 6957msgstr "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."
6938 6958
6939#. type: Plain text 6959#. type: Plain text
6940#: doc/guix-cookbook.texi:3723 6960#: guix-git/doc/guix-cookbook.texi:3721
6941msgid "This chapter aims to provide hands-on, practical examples that relates to the usage and configuration of virtual machines on a Guix System." 6961msgid "This chapter aims to provide hands-on, practical examples that relates to the usage and configuration of virtual machines on a Guix System."
6942msgstr "In diesem Kapitel wollen wir direkt nutzbare, praktische Beispiele anschauen, wie man virtuelle Maschinen auf Guix System konfigurieren und nutzen will." 6962msgstr "In diesem Kapitel wollen wir direkt nutzbare, praktische Beispiele anschauen, wie man virtuelle Maschinen auf Guix System konfigurieren und nutzen will."
6943 6963
6944#. type: cindex 6964#. type: cindex
6945#: doc/guix-cookbook.texi:3731 6965#: guix-git/doc/guix-cookbook.texi:3729
6946#, no-wrap 6966#, no-wrap
6947msgid "Network bridge interface" 6967msgid "Network bridge interface"
6948msgstr "Netzwerkbrücke als Schnittstelle" 6968msgstr "Netzwerkbrücke als Schnittstelle"
6949 6969
6950#. type: cindex 6970#. type: cindex
6951#: doc/guix-cookbook.texi:3732 6971#: guix-git/doc/guix-cookbook.texi:3730
6952#, no-wrap 6972#, no-wrap
6953msgid "networking, bridge" 6973msgid "networking, bridge"
6954msgstr "Netzwerk, Bridge" 6974msgstr "Netzwerk, Bridge"
6955 6975
6956#. type: cindex 6976#. type: cindex
6957#: doc/guix-cookbook.texi:3733 6977#: guix-git/doc/guix-cookbook.texi:3731
6958#, no-wrap 6978#, no-wrap
6959msgid "qemu, network bridge" 6979msgid "qemu, network bridge"
6960msgstr "QEMU, Netzwerk-Bridge" 6980msgstr "QEMU, Netzwerk-Bridge"
6961 6981
6962#. type: Plain text 6982#. type: Plain text
6963#: doc/guix-cookbook.texi:3745 6983#: guix-git/doc/guix-cookbook.texi:3743
6964msgid "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." 6984msgid "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."
6965msgstr "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." 6985msgstr "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."
6966 6986
6967#. type: subsection 6987#. type: subsection
6968#: doc/guix-cookbook.texi:3746 6988#: guix-git/doc/guix-cookbook.texi:3744
6969#, no-wrap 6989#, no-wrap
6970msgid "Creating a network bridge interface" 6990msgid "Creating a network bridge interface"
6971msgstr "Eine Netzwerkbrücken-Schnittstelle aufbauen" 6991msgstr "Eine Netzwerkbrücken-Schnittstelle aufbauen"
6972 6992
6973#. type: Plain text 6993#. type: Plain text
6974#: doc/guix-cookbook.texi:3752 6994#: guix-git/doc/guix-cookbook.texi:3750
6975msgid "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:" 6995msgid "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:"
6976msgstr "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:" 6996msgstr "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:"
6977 6997
6978#. type: example 6998#. type: example
6979#: doc/guix-cookbook.texi:3755 6999#: guix-git/doc/guix-cookbook.texi:3753
6980#, no-wrap 7000#, no-wrap
6981msgid "# nmcli con add type bridge con-name br0 ifname br0\n" 7001msgid "# nmcli con add type bridge con-name br0 ifname br0\n"
6982msgstr "# nmcli con add type bridge con-name br0 ifname br0\n" 7002msgstr "# nmcli con add type bridge con-name br0 ifname br0\n"
6983 7003
6984#. type: Plain text 7004#. type: Plain text
6985#: doc/guix-cookbook.texi:3761 7005#: guix-git/doc/guix-cookbook.texi:3759
6986msgid "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:" 7006msgid "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:"
6987msgstr "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:" 7007msgstr "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:"
6988 7008
6989#. type: example 7009#. type: example
6990#: doc/guix-cookbook.texi:3764 7010#: guix-git/doc/guix-cookbook.texi:3762
6991#, no-wrap 7011#, no-wrap
6992msgid "# nmcli con add type bridge-slave ifname enp2s0 master br0\n" 7012msgid "# nmcli con add type bridge-slave ifname enp2s0 master br0\n"
6993msgstr "# nmcli con add type bridge-slave ifname enp2s0 master br0\n" 7013msgstr "# nmcli con add type bridge-slave ifname enp2s0 master br0\n"
6994 7014
6995#. type: quotation 7015#. type: quotation
6996#: doc/guix-cookbook.texi:3766 doc/guix-cookbook.texi:3806 7016#: guix-git/doc/guix-cookbook.texi:3764 guix-git/doc/guix-cookbook.texi:3804
6997#, no-wrap 7017#, no-wrap
6998msgid "Important" 7018msgid "Important"
6999msgstr "Wichtig" 7019msgstr "Wichtig"
7000 7020
7001#. type: quotation 7021#. type: quotation
7002#: doc/guix-cookbook.texi:3770 7022#: guix-git/doc/guix-cookbook.texi:3768
7003msgid "Only Ethernet interfaces can be added to a bridge. For wireless interfaces, consider the routed network approach detailed in @xref{Routed network for libvirt}." 7023msgid "Only Ethernet interfaces can be added to a bridge. For wireless interfaces, consider the routed network approach detailed in @xref{Routed network for libvirt}."
7004msgstr "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}." 7024msgstr "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}."
7005 7025
7006#. type: Plain text 7026#. type: Plain text
7007#: doc/guix-cookbook.texi:3776 7027#: guix-git/doc/guix-cookbook.texi:3774
7008msgid "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." 7028msgid "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."
7009msgstr "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." 7029msgstr "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."
7010 7030
7011#. type: subsection 7031#. type: subsection
7012#: doc/guix-cookbook.texi:3777 7032#: guix-git/doc/guix-cookbook.texi:3775
7013#, no-wrap 7033#, no-wrap
7014msgid "Configuring the QEMU bridge helper script" 7034msgid "Configuring the QEMU bridge helper script"
7015msgstr "Das QEMU-Bridge-Helper-Skript konfigurieren" 7035msgstr "Das QEMU-Bridge-Helper-Skript konfigurieren"
7016 7036
7017#. type: Plain text 7037#. type: Plain text
7018#: doc/guix-cookbook.texi:3785 7038#: guix-git/doc/guix-cookbook.texi:3783
7019msgid "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:" 7039msgid "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:"
7020msgstr "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:" 7040msgstr "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:"
7021 7041
7022#. type: example 7042#. type: example
7023#: doc/guix-cookbook.texi:3790 7043#: guix-git/doc/guix-cookbook.texi:3788
7024#, no-wrap 7044#, no-wrap
7025msgid "" 7045msgid ""
7026"(setuid-programs\n" 7046"(setuid-programs\n"
@@ -7032,34 +7052,34 @@ msgstr ""
7032" %setuid-programs))\n" 7052" %setuid-programs))\n"
7033 7053
7034#. type: Plain text 7054#. type: Plain text
7035#: doc/guix-cookbook.texi:3795 7055#: guix-git/doc/guix-cookbook.texi:3793
7036msgid "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:" 7056msgid "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:"
7037msgstr "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:" 7057msgstr "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:"
7038 7058
7039#. type: example 7059#. type: example
7040#: doc/guix-cookbook.texi:3798 7060#: guix-git/doc/guix-cookbook.texi:3796
7041#, no-wrap 7061#, no-wrap
7042msgid "(extra-special-file \"/etc/qemu/host.conf\" \"allow br0\\n\")\n" 7062msgid "(extra-special-file \"/etc/qemu/host.conf\" \"allow br0\\n\")\n"
7043msgstr "(extra-special-file \"/etc/qemu/host.conf\" \"allow br0\\n\")\n" 7063msgstr "(extra-special-file \"/etc/qemu/host.conf\" \"allow br0\\n\")\n"
7044 7064
7045#. type: subsection 7065#. type: subsection
7046#: doc/guix-cookbook.texi:3800 7066#: guix-git/doc/guix-cookbook.texi:3798
7047#, no-wrap 7067#, no-wrap
7048msgid "Invoking QEMU with the right command line options" 7068msgid "Invoking QEMU with the right command line options"
7049msgstr "QEMU mit den richtigen Befehlszeilenoptionen aufrufen" 7069msgstr "QEMU mit den richtigen Befehlszeilenoptionen aufrufen"
7050 7070
7051#. type: Plain text 7071#. type: Plain text
7052#: doc/guix-cookbook.texi:3805 7072#: guix-git/doc/guix-cookbook.texi:3803
7053msgid "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." 7073msgid "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."
7054msgstr "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." 7074msgstr "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."
7055 7075
7056#. type: quotation 7076#. type: quotation
7057#: doc/guix-cookbook.texi:3810 7077#: guix-git/doc/guix-cookbook.texi:3808
7058msgid "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." 7078msgid "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."
7059msgstr "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." 7079msgstr "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."
7060 7080
7061#. type: example 7081#. type: example
7062#: doc/guix-cookbook.texi:3817 7082#: guix-git/doc/guix-cookbook.texi:3815
7063#, no-wrap 7083#, no-wrap
7064msgid "" 7084msgid ""
7065"$ qemu-system-x86_64 [...] \\\n" 7085"$ qemu-system-x86_64 [...] \\\n"
@@ -7073,12 +7093,12 @@ msgstr ""
7073" […]\n" 7093" […]\n"
7074 7094
7075#. type: Plain text 7095#. type: Plain text
7076#: doc/guix-cookbook.texi:3821 7096#: guix-git/doc/guix-cookbook.texi:3819
7077msgid "To generate MAC addresses that have the QEMU registered prefix, the following snippet can be employed:" 7097msgid "To generate MAC addresses that have the QEMU registered prefix, the following snippet can be employed:"
7078msgstr "Um MAC-Adressen mit dem für QEMU registrierten Präfix zu erzeugen, können Sie folgendes Code-Schnipsel eintippen:" 7098msgstr "Um MAC-Adressen mit dem für QEMU registrierten Präfix zu erzeugen, können Sie folgendes Code-Schnipsel eintippen:"
7079 7099
7080#. type: example 7100#. type: example
7081#: doc/guix-cookbook.texi:3827 7101#: guix-git/doc/guix-cookbook.texi:3825
7082#, no-wrap 7102#, no-wrap
7083msgid "" 7103msgid ""
7084"mac_address=\"52:54:00:$(dd if=/dev/urandom bs=512 count=1 2>/dev/null \\\n" 7104"mac_address=\"52:54:00:$(dd if=/dev/urandom bs=512 count=1 2>/dev/null \\\n"
@@ -7092,18 +7112,18 @@ msgstr ""
7092"echo $mac_address\n" 7112"echo $mac_address\n"
7093 7113
7094#. type: subsection 7114#. type: subsection
7095#: doc/guix-cookbook.texi:3829 7115#: guix-git/doc/guix-cookbook.texi:3827
7096#, no-wrap 7116#, no-wrap
7097msgid "Networking issues caused by Docker" 7117msgid "Networking issues caused by Docker"
7098msgstr "Durch Docker verursachte Netzwerkprobleme" 7118msgstr "Durch Docker verursachte Netzwerkprobleme"
7099 7119
7100#. type: Plain text 7120#. type: Plain text
7101#: doc/guix-cookbook.texi:3836 7121#: guix-git/doc/guix-cookbook.texi:3834
7102msgid "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:" 7122msgid "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:"
7103msgstr "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:" 7123msgstr "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:"
7104 7124
7105#. type: example 7125#. type: example
7106#: doc/guix-cookbook.texi:3848 7126#: guix-git/doc/guix-cookbook.texi:3846
7107#, no-wrap 7127#, no-wrap
7108msgid "" 7128msgid ""
7109"(service iptables-service-type\n" 7129"(service iptables-service-type\n"
@@ -7129,41 +7149,41 @@ msgstr ""
7129"\"))\n" 7149"\"))\n"
7130 7150
7131#. type: cindex 7151#. type: cindex
7132#: doc/guix-cookbook.texi:3852 7152#: guix-git/doc/guix-cookbook.texi:3850
7133#, no-wrap 7153#, no-wrap
7134msgid "Virtual network bridge interface" 7154msgid "Virtual network bridge interface"
7135msgstr "Virtuelle-Netzwerkbrücken-Schnittstelle" 7155msgstr "Virtuelle-Netzwerkbrücken-Schnittstelle"
7136 7156
7137#. type: cindex 7157#. type: cindex
7138#: doc/guix-cookbook.texi:3853 7158#: guix-git/doc/guix-cookbook.texi:3851
7139#, no-wrap 7159#, no-wrap
7140msgid "networking, virtual bridge" 7160msgid "networking, virtual bridge"
7141msgstr "Netzwerk, virtuelle Netzwerkbrücke" 7161msgstr "Netzwerk, virtuelle Netzwerkbrücke"
7142 7162
7143#. type: cindex 7163#. type: cindex
7144#: doc/guix-cookbook.texi:3854 7164#: guix-git/doc/guix-cookbook.texi:3852
7145#, no-wrap 7165#, no-wrap
7146msgid "libvirt, virtual network bridge" 7166msgid "libvirt, virtual network bridge"
7147msgstr "libvirt, virtuelle Netzwerkbrücke" 7167msgstr "libvirt, virtuelle Netzwerkbrücke"
7148 7168
7149#. type: Plain text 7169#. type: Plain text
7150#: doc/guix-cookbook.texi:3868 7170#: guix-git/doc/guix-cookbook.texi:3866
7151msgid "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." 7171msgid "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."
7152msgstr "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." 7172msgstr "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."
7153 7173
7154#. type: subsection 7174#. type: subsection
7155#: doc/guix-cookbook.texi:3869 7175#: guix-git/doc/guix-cookbook.texi:3867
7156#, no-wrap 7176#, no-wrap
7157msgid "Creating a virtual network bridge" 7177msgid "Creating a virtual network bridge"
7158msgstr "Eine virtuelle Netzwerkbrücke anlegen" 7178msgstr "Eine virtuelle Netzwerkbrücke anlegen"
7159 7179
7160#. type: Plain text 7180#. type: Plain text
7161#: doc/guix-cookbook.texi:3879 7181#: guix-git/doc/guix-cookbook.texi:3877
7162msgid "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:" 7182msgid "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:"
7163msgstr "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:" 7183msgstr "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:"
7164 7184
7165#. type: example 7185#. type: example
7166#: doc/guix-cookbook.texi:3891 7186#: guix-git/doc/guix-cookbook.texi:3889
7167#, no-wrap 7187#, no-wrap
7168msgid "" 7188msgid ""
7169"<network>\n" 7189"<network>\n"
@@ -7189,12 +7209,12 @@ msgstr ""
7189"</network>\n" 7209"</network>\n"
7190 7210
7191#. type: Plain text 7211#. type: Plain text
7192#: doc/guix-cookbook.texi:3895 7212#: guix-git/doc/guix-cookbook.texi:3893
7193msgid "Then create and configure the interface using the @command{virsh} command, as root:" 7213msgid "Then create and configure the interface using the @command{virsh} command, as root:"
7194msgstr "Damit legen Sie die Schnittstelle mit Hilfe des @command{virsh}-Befehls an, welchen Sie als Administratorbenutzer @code{root} ausführen:" 7214msgstr "Damit legen Sie die Schnittstelle mit Hilfe des @command{virsh}-Befehls an, welchen Sie als Administratorbenutzer @code{root} ausführen:"
7195 7215
7196#. type: example 7216#. type: example
7197#: doc/guix-cookbook.texi:3900 7217#: guix-git/doc/guix-cookbook.texi:3898
7198#, no-wrap 7218#, no-wrap
7199msgid "" 7219msgid ""
7200"virsh net-define /tmp/virbr0.xml\n" 7220"virsh net-define /tmp/virbr0.xml\n"
@@ -7206,208 +7226,208 @@ msgstr ""
7206"virsh net-start virbr0\n" 7226"virsh net-start virbr0\n"
7207 7227
7208#. type: Plain text 7228#. type: Plain text
7209#: doc/guix-cookbook.texi:3905 7229#: guix-git/doc/guix-cookbook.texi:3903
7210msgid "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." 7230msgid "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."
7211msgstr "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." 7231msgstr "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."
7212 7232
7213#. type: subsection 7233#. type: subsection
7214#: doc/guix-cookbook.texi:3906 7234#: guix-git/doc/guix-cookbook.texi:3904
7215#, no-wrap 7235#, no-wrap
7216msgid "Configuring the static routes for your virtual bridge" 7236msgid "Configuring the static routes for your virtual bridge"
7217msgstr "Statische Routen für Ihre virtuelle Netzwerkbrücke einrichten" 7237msgstr "Statische Routen für Ihre virtuelle Netzwerkbrücke einrichten"
7218 7238
7219#. type: Plain text 7239#. type: Plain text
7220#: doc/guix-cookbook.texi:3914 7240#: guix-git/doc/guix-cookbook.texi:3912
7221msgid "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." 7241msgid "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."
7222msgstr "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." 7242msgstr "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."
7223 7243
7224#. type: Plain text 7244#. type: Plain text
7225#: doc/guix-cookbook.texi:3923 7245#: guix-git/doc/guix-cookbook.texi:3921
7226msgid "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:" 7246msgid "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:"
7227msgstr "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:" 7247msgstr "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:"
7228 7248
7229#. type: item 7249#. type: item
7230#: doc/guix-cookbook.texi:3925 7250#: guix-git/doc/guix-cookbook.texi:3923
7231#, no-wrap 7251#, no-wrap
7232msgid "Interface" 7252msgid "Interface"
7233msgstr "Schnittstelle" 7253msgstr "Schnittstelle"
7234 7254
7235#. type: table 7255#. type: table
7236#: doc/guix-cookbook.texi:3927 7256#: guix-git/doc/guix-cookbook.texi:3925
7237msgid "lan" 7257msgid "lan"
7238msgstr "lan" 7258msgstr "lan"
7239 7259
7240#. type: item 7260#. type: item
7241#: doc/guix-cookbook.texi:3927 7261#: guix-git/doc/guix-cookbook.texi:3925
7242#, no-wrap 7262#, no-wrap
7243msgid "Target" 7263msgid "Target"
7244msgstr "Ziel" 7264msgstr "Ziel"
7245 7265
7246#. type: table 7266#. type: table
7247#: doc/guix-cookbook.texi:3929 7267#: guix-git/doc/guix-cookbook.texi:3927
7248msgid "192.168.2.0" 7268msgid "192.168.2.0"
7249msgstr "192.168.2.0" 7269msgstr "192.168.2.0"
7250 7270
7251#. type: item 7271#. type: item
7252#: doc/guix-cookbook.texi:3929 7272#: guix-git/doc/guix-cookbook.texi:3927
7253#, no-wrap 7273#, no-wrap
7254msgid "IPv4-Netmask" 7274msgid "IPv4-Netmask"
7255msgstr "IPv4-Netzmaske" 7275msgstr "IPv4-Netzmaske"
7256 7276
7257#. type: table 7277#. type: table
7258#: doc/guix-cookbook.texi:3931 7278#: guix-git/doc/guix-cookbook.texi:3929
7259msgid "255.255.255.0" 7279msgid "255.255.255.0"
7260msgstr "255.255.255.0" 7280msgstr "255.255.255.0"
7261 7281
7262#. type: item 7282#. type: item
7263#: doc/guix-cookbook.texi:3931 7283#: guix-git/doc/guix-cookbook.texi:3929
7264#, no-wrap 7284#, no-wrap
7265msgid "IPv4-Gateway" 7285msgid "IPv4-Gateway"
7266msgstr "IPv4-Gateway" 7286msgstr "IPv4-Gateway"
7267 7287
7268#. type: var{#1} 7288#. type: var{#1}
7269#: doc/guix-cookbook.texi:3933 7289#: guix-git/doc/guix-cookbook.texi:3931
7270msgid "server-ip" 7290msgid "server-ip"
7271msgstr "Server-IP" 7291msgstr "Server-IP"
7272 7292
7273#. type: item 7293#. type: item
7274#: doc/guix-cookbook.texi:3933 7294#: guix-git/doc/guix-cookbook.texi:3931
7275#, no-wrap 7295#, no-wrap
7276msgid "Route type" 7296msgid "Route type"
7277msgstr "Routen-Typ" 7297msgstr "Routen-Typ"
7278 7298
7279#. type: table 7299#. type: table
7280#: doc/guix-cookbook.texi:3935 7300#: guix-git/doc/guix-cookbook.texi:3933
7281msgid "unicast" 7301msgid "unicast"
7282msgstr "unicast" 7302msgstr "unicast"
7283 7303
7284#. type: Plain text 7304#. type: Plain text
7285#: doc/guix-cookbook.texi:3939 7305#: guix-git/doc/guix-cookbook.texi:3937
7286msgid "where @var{server-ip} is the IP address of the machine hosting the VMs, which should be static." 7306msgid "where @var{server-ip} is the IP address of the machine hosting the VMs, which should be static."
7287msgstr "Dabei schreiben Sie statt @var{Server-IP} die IP-Adresse der Wirtsmaschine, auf der die VM laufen. Diese sollte als statische Adresse eingerichtet sein." 7307msgstr "Dabei schreiben Sie statt @var{Server-IP} die IP-Adresse der Wirtsmaschine, auf der die VM laufen. Diese sollte als statische Adresse eingerichtet sein."
7288 7308
7289#. type: Plain text 7309#. type: Plain text
7290#: doc/guix-cookbook.texi:3943 7310#: guix-git/doc/guix-cookbook.texi:3941
7291msgid "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." 7311msgid "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."
7292msgstr "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." 7312msgstr "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."
7293 7313
7294#. type: Plain text 7314#. type: Plain text
7295#: doc/guix-cookbook.texi:3953 7315#: guix-git/doc/guix-cookbook.texi:3951
7296msgid "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." 7316msgid "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."
7297msgstr "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." 7317msgstr "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."
7298 7318
7299#. type: Plain text 7319#. type: Plain text
7300#: doc/guix-cookbook.texi:3956 7320#: guix-git/doc/guix-cookbook.texi:3954
7301msgid "@pxref{Package Management,,, guix, GNU Guix Reference Manual} for a complete reference." 7321msgid "@pxref{Package Management,,, guix, GNU Guix Reference Manual} for a complete reference."
7302msgstr "Siehe @ref{Paketverwaltung,,, guix.de, Referenzhandbuch zu GNU Guix} für eine vollständige Referenz." 7322msgstr "Siehe @ref{Paketverwaltung,,, guix.de, Referenzhandbuch zu GNU Guix} für eine vollständige Referenz."
7303 7323
7304#. type: Plain text 7324#. type: Plain text
7305#: doc/guix-cookbook.texi:3967 7325#: guix-git/doc/guix-cookbook.texi:3965
7306msgid "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." 7326msgid "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."
7307msgstr "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." 7327msgstr "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."
7308 7328
7309#. type: Plain text 7329#. type: Plain text
7310#: doc/guix-cookbook.texi:3972 7330#: guix-git/doc/guix-cookbook.texi:3970
7311msgid "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." 7331msgid "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."
7312msgstr "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." 7332msgstr "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."
7313 7333
7314#. type: quotation 7334#. type: quotation
7315#: doc/guix-cookbook.texi:3977 7335#: guix-git/doc/guix-cookbook.texi:3975
7316msgid "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})." 7336msgid "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})."
7317msgstr "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})." 7337msgstr "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})."
7318 7338
7319#. type: quotation 7339#. type: quotation
7320#: doc/guix-cookbook.texi:3981 7340#: guix-git/doc/guix-cookbook.texi:3979
7321msgid "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!" 7341msgid "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!"
7322msgstr "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!" 7342msgstr "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!"
7323 7343
7324#. type: Plain text 7344#. type: Plain text
7325#: doc/guix-cookbook.texi:3988 7345#: guix-git/doc/guix-cookbook.texi:3986
7326msgid "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." 7346msgid "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."
7327msgstr "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." 7347msgstr "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."
7328 7348
7329#. type: Plain text 7349#. type: Plain text
7330#: doc/guix-cookbook.texi:3990 7350#: guix-git/doc/guix-cookbook.texi:3988
7331msgid "Multiple profiles have many benefits:" 7351msgid "Multiple profiles have many benefits:"
7332msgstr "Mehrere Profile bieten viele Vorteile:" 7352msgstr "Mehrere Profile bieten viele Vorteile:"
7333 7353
7334#. type: itemize 7354#. type: itemize
7335#: doc/guix-cookbook.texi:3994 7355#: guix-git/doc/guix-cookbook.texi:3992
7336msgid "Clean semantic separation of the various packages a user needs for different contexts." 7356msgid "Clean semantic separation of the various packages a user needs for different contexts."
7337msgstr "Klare semantische Trennung der verschiedenen Pakete, die ein Nutzer für verschiedene Kontexte braucht." 7357msgstr "Klare semantische Trennung der verschiedenen Pakete, die ein Nutzer für verschiedene Kontexte braucht."
7338 7358
7339#. type: itemize 7359#. type: itemize
7340#: doc/guix-cookbook.texi:3998 7360#: guix-git/doc/guix-cookbook.texi:3996
7341msgid "Multiple profiles can be made available into the environment either on login or within a dedicated shell." 7361msgid "Multiple profiles can be made available into the environment either on login or within a dedicated shell."
7342msgstr "Mehrere Profile können in der Umgebung verfügbar gemacht werden, entweder beim Anmelden oder in einer eigenen Shell." 7362msgstr "Mehrere Profile können in der Umgebung verfügbar gemacht werden, entweder beim Anmelden oder in einer eigenen Shell."
7343 7363
7344#. type: itemize 7364#. type: itemize
7345#: doc/guix-cookbook.texi:4002 7365#: guix-git/doc/guix-cookbook.texi:4000
7346msgid "Profiles can be loaded on demand. For instance, the user can use multiple shells, each of them running different profiles." 7366msgid "Profiles can be loaded on demand. For instance, the user can use multiple shells, each of them running different profiles."
7347msgstr "Profile können bei Bedarf geladen werden. Zum Beispiel kann der Nutzer mehrere Unter-Shells benutzen, von denen jede ein anderes Profil ausführt." 7367msgstr "Profile können bei Bedarf geladen werden. Zum Beispiel kann der Nutzer mehrere Unter-Shells benutzen, von denen jede ein anderes Profil ausführt."
7348 7368
7349#. type: itemize 7369#. type: itemize
7350#: doc/guix-cookbook.texi:4007 7370#: guix-git/doc/guix-cookbook.texi:4005
7351msgid "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." 7371msgid "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."
7352msgstr "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." 7372msgstr "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."
7353 7373
7354#. type: itemize 7374#. type: itemize
7355#: doc/guix-cookbook.texi:4011 7375#: guix-git/doc/guix-cookbook.texi:4009
7356msgid "Deduplication: Profiles share dependencies that happens to be the exact same. This makes multiple profiles storage-efficient." 7376msgid "Deduplication: Profiles share dependencies that happens to be the exact same. This makes multiple profiles storage-efficient."
7357msgstr "Deduplizierung: Profile teilen sich Abhängigkeiten, wenn sie genau gleich sind. Dadurch sind mehrere Profile speichereffizient." 7377msgstr "Deduplizierung: Profile teilen sich Abhängigkeiten, wenn sie genau gleich sind. Dadurch sind mehrere Profile speichereffizient."
7358 7378
7359#. type: itemize 7379#. type: itemize
7360#: doc/guix-cookbook.texi:4019 7380#: guix-git/doc/guix-cookbook.texi:4017
7361msgid "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}." 7381msgid "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}."
7362msgstr "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}." 7382msgstr "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}."
7363 7383
7364#. type: itemize 7384#. type: itemize
7365#: doc/guix-cookbook.texi:4023 7385#: guix-git/doc/guix-cookbook.texi:4021
7366msgid "Easier upgrades and maintenance: Multiple profiles make it easy to keep package listings at hand and make upgrades completely frictionless." 7386msgid "Easier upgrades and maintenance: Multiple profiles make it easy to keep package listings at hand and make upgrades completely frictionless."
7367msgstr "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." 7387msgstr "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."
7368 7388
7369#. type: Plain text 7389#. type: Plain text
7370#: doc/guix-cookbook.texi:4026 7390#: guix-git/doc/guix-cookbook.texi:4024
7371msgid "Concretely, here follows some typical profiles:" 7391msgid "Concretely, here follows some typical profiles:"
7372msgstr "Konkret wären diese hier typische Profile:" 7392msgstr "Konkret wären diese hier typische Profile:"
7373 7393
7374#. type: itemize 7394#. type: itemize
7375#: doc/guix-cookbook.texi:4030 7395#: guix-git/doc/guix-cookbook.texi:4028
7376msgid "The dependencies of a project you are working on." 7396msgid "The dependencies of a project you are working on."
7377msgstr "Die Abhängigkeiten des Projekts, an dem Sie arbeiten." 7397msgstr "Die Abhängigkeiten des Projekts, an dem Sie arbeiten."
7378 7398
7379#. type: itemize 7399#. type: itemize
7380#: doc/guix-cookbook.texi:4033 7400#: guix-git/doc/guix-cookbook.texi:4031
7381msgid "Your favourite programming language libraries." 7401msgid "Your favourite programming language libraries."
7382msgstr "Die Bibliotheken Ihrer Lieblingsprogrammiersprache." 7402msgstr "Die Bibliotheken Ihrer Lieblingsprogrammiersprache."
7383 7403
7384#. type: itemize 7404#. type: itemize
7385#: doc/guix-cookbook.texi:4036 7405#: guix-git/doc/guix-cookbook.texi:4034
7386msgid "Laptop-specific programs (like @samp{powertop}) that you don't need on a desktop." 7406msgid "Laptop-specific programs (like @samp{powertop}) that you don't need on a desktop."
7387msgstr "Programme nur für Laptops (wie @samp{powertop}), für die Sie auf einem „Desktop“-Rechner keine Verwendung haben." 7407msgstr "Programme nur für Laptops (wie @samp{powertop}), für die Sie auf einem „Desktop“-Rechner keine Verwendung haben."
7388 7408
7389#. type: itemize 7409#. type: itemize
7390#: doc/guix-cookbook.texi:4040 7410#: guix-git/doc/guix-cookbook.texi:4038
7391msgid "@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)." 7411msgid "@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)."
7392msgstr "@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)." 7412msgstr "@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)."
7393 7413
7394#. type: itemize 7414#. type: itemize
7395#: doc/guix-cookbook.texi:4043 7415#: guix-git/doc/guix-cookbook.texi:4041
7396msgid "Games." 7416msgid "Games."
7397msgstr "Spiele." 7417msgstr "Spiele."
7398 7418
7399#. type: Plain text 7419#. type: Plain text
7400#: doc/guix-cookbook.texi:4046 7420#: guix-git/doc/guix-cookbook.texi:4044
7401msgid "Let's dive in the set up!" 7421msgid "Let's dive in the set up!"
7402msgstr "Tauchen wir ein in deren Einrichtung!" 7422msgstr "Tauchen wir ein in deren Einrichtung!"
7403 7423
7404#. type: Plain text 7424#. type: Plain text
7405#: doc/guix-cookbook.texi:4061 7425#: guix-git/doc/guix-cookbook.texi:4059
7406msgid "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:" 7426msgid "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:"
7407msgstr "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:" 7427msgstr "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:"
7408 7428
7409#. type: lisp 7429#. type: lisp
7410#: doc/guix-cookbook.texi:4071 7430#: guix-git/doc/guix-cookbook.texi:4069
7411#, no-wrap 7431#, no-wrap
7412msgid "" 7432msgid ""
7413"(specifications->manifest\n" 7433"(specifications->manifest\n"
@@ -7429,17 +7449,17 @@ msgstr ""
7429" \"paket-N\"))\n" 7449" \"paket-N\"))\n"
7430 7450
7431#. type: Plain text 7451#. type: Plain text
7432#: doc/guix-cookbook.texi:4075 7452#: guix-git/doc/guix-cookbook.texi:4073
7433msgid "@xref{Writing Manifests,,, guix, GNU Guix Reference Manual}, for more information about the syntax." 7453msgid "@xref{Writing Manifests,,, guix, GNU Guix Reference Manual}, for more information about the syntax."
7434msgstr "Siehe @ref{Manifeste verfassen,,, guix.de, Referenzhandbuch zu GNU Guix} für mehr Informationen zur Syntax." 7454msgstr "Siehe @ref{Manifeste verfassen,,, guix.de, Referenzhandbuch zu GNU Guix} für mehr Informationen zur Syntax."
7435 7455
7436#. type: Plain text 7456#. type: Plain text
7437#: doc/guix-cookbook.texi:4077 7457#: guix-git/doc/guix-cookbook.texi:4075
7438msgid "We can create a manifest specification per profile and install them this way:" 7458msgid "We can create a manifest specification per profile and install them this way:"
7439msgstr "Wir können eine Manifestspezifikation für jedes Profil schreiben und es auf diese Weise installieren:" 7459msgstr "Wir können eine Manifestspezifikation für jedes Profil schreiben und es auf diese Weise installieren:"
7440 7460
7441#. type: example 7461#. type: example
7442#: doc/guix-cookbook.texi:4082 7462#: guix-git/doc/guix-cookbook.texi:4080
7443#, no-wrap 7463#, no-wrap
7444msgid "" 7464msgid ""
7445"GUIX_EXTRA_PROFILES=$HOME/.guix-extra-profiles\n" 7465"GUIX_EXTRA_PROFILES=$HOME/.guix-extra-profiles\n"
@@ -7451,38 +7471,38 @@ msgstr ""
7451"guix package --manifest=/pfad/zu/guix-my-project-manifest.scm --profile=\"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n" 7471"guix package --manifest=/pfad/zu/guix-my-project-manifest.scm --profile=\"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n"
7452 7472
7453#. type: Plain text 7473#. type: Plain text
7454#: doc/guix-cookbook.texi:4086 7474#: guix-git/doc/guix-cookbook.texi:4084
7455msgid "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." 7475msgid "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."
7456msgstr "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." 7476msgstr "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."
7457 7477
7458#. type: Plain text 7478#. type: Plain text
7459#: doc/guix-cookbook.texi:4092 7479#: guix-git/doc/guix-cookbook.texi:4090
7460msgid "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}." 7480msgid "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}."
7461msgstr "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." 7481msgstr "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."
7462 7482
7463#. type: Plain text 7483#. type: Plain text
7464#: doc/guix-cookbook.texi:4094 7484#: guix-git/doc/guix-cookbook.texi:4092
7465msgid "Note that it's also possible to loop over the output of" 7485msgid "Note that it's also possible to loop over the output of"
7466msgstr "Beachten Sie, dass man auch eine Schleife über die Ausgabe von" 7486msgstr "Beachten Sie, dass man auch eine Schleife über die Ausgabe von"
7467 7487
7468#. type: example 7488#. type: example
7469#: doc/guix-cookbook.texi:4097 7489#: guix-git/doc/guix-cookbook.texi:4095
7470#, no-wrap 7490#, no-wrap
7471msgid "guix package --list-profiles\n" 7491msgid "guix package --list-profiles\n"
7472msgstr "guix package --list-profiles\n" 7492msgstr "guix package --list-profiles\n"
7473 7493
7474#. type: Plain text 7494#. type: Plain text
7475#: doc/guix-cookbook.texi:4100 7495#: guix-git/doc/guix-cookbook.texi:4098
7476msgid "although you'll probably have to filter out @file{~/.config/guix/current}." 7496msgid "although you'll probably have to filter out @file{~/.config/guix/current}."
7477msgstr "schreiben kann, obwohl Sie dabei wahrscheinlich @file{~/.config/guix/current} herausfiltern wollen würden." 7497msgstr "schreiben kann, obwohl Sie dabei wahrscheinlich @file{~/.config/guix/current} herausfiltern wollen würden."
7478 7498
7479#. type: Plain text 7499#. type: Plain text
7480#: doc/guix-cookbook.texi:4102 7500#: guix-git/doc/guix-cookbook.texi:4100
7481msgid "To enable all profiles on login, add this to your @file{~/.bash_profile} (or similar):" 7501msgid "To enable all profiles on login, add this to your @file{~/.bash_profile} (or similar):"
7482msgstr "Um bei der Anmeldung alle Profile zu aktivieren, fügen Sie dies in Ihre @file{~/.bash_profile} ein (oder etwas Entsprechendes):" 7502msgstr "Um bei der Anmeldung alle Profile zu aktivieren, fügen Sie dies in Ihre @file{~/.bash_profile} ein (oder etwas Entsprechendes):"
7483 7503
7484#. type: example 7504#. type: example
7485#: doc/guix-cookbook.texi:4112 7505#: guix-git/doc/guix-cookbook.texi:4110
7486#, no-wrap 7506#, no-wrap
7487msgid "" 7507msgid ""
7488"for i in $GUIX_EXTRA_PROFILES/*; do\n" 7508"for i in $GUIX_EXTRA_PROFILES/*; do\n"
@@ -7504,17 +7524,17 @@ msgstr ""
7504"done\n" 7524"done\n"
7505 7525
7506#. type: Plain text 7526#. type: Plain text
7507#: doc/guix-cookbook.texi:4117 7527#: guix-git/doc/guix-cookbook.texi:4115
7508msgid "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." 7528msgid "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."
7509msgstr "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." 7529msgstr "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."
7510 7530
7511#. type: Plain text 7531#. type: Plain text
7512#: doc/guix-cookbook.texi:4119 7532#: guix-git/doc/guix-cookbook.texi:4117
7513msgid "You can obviously choose to only enable a subset of them:" 7533msgid "You can obviously choose to only enable a subset of them:"
7514msgstr "Selbstverständlich können Sie sich auch dafür entscheiden, nur eine Teilmenge zu aktivieren:" 7534msgstr "Selbstverständlich können Sie sich auch dafür entscheiden, nur eine Teilmenge zu aktivieren:"
7515 7535
7516#. type: example 7536#. type: example
7517#: doc/guix-cookbook.texi:4129 7537#: guix-git/doc/guix-cookbook.texi:4127
7518#, no-wrap 7538#, no-wrap
7519msgid "" 7539msgid ""
7520"for i in \"$GUIX_EXTRA_PROFILES\"/my-project-1 \"$GUIX_EXTRA_PROFILES\"/my-project-2; do\n" 7540"for i in \"$GUIX_EXTRA_PROFILES\"/my-project-1 \"$GUIX_EXTRA_PROFILES\"/my-project-2; do\n"
@@ -7536,50 +7556,50 @@ msgstr ""
7536"done\n" 7556"done\n"
7537 7557
7538#. type: Plain text 7558#. type: Plain text
7539#: doc/guix-cookbook.texi:4133 7559#: guix-git/doc/guix-cookbook.texi:4131
7540msgid "When a profile is off, it's straightforward to enable it for an individual shell without \"polluting\" the rest of the user session:" 7560msgid "When a profile is off, it's straightforward to enable it for an individual shell without \"polluting\" the rest of the user session:"
7541msgstr "Wenn ein Profil abgeschaltet ist, lässt es sich mit Leichtigkeit für eine bestimmte Shell aktivieren, ohne die restliche Benutzersitzung zu „verschmutzen“:" 7561msgstr "Wenn ein Profil abgeschaltet ist, lässt es sich mit Leichtigkeit für eine bestimmte Shell aktivieren, ohne die restliche Benutzersitzung zu „verschmutzen“:"
7542 7562
7543#. type: example 7563#. type: example
7544#: doc/guix-cookbook.texi:4136 7564#: guix-git/doc/guix-cookbook.texi:4134
7545#, no-wrap 7565#, no-wrap
7546msgid "GUIX_PROFILE=\"path/to/my-project\" ; . \"$GUIX_PROFILE\"/etc/profile\n" 7566msgid "GUIX_PROFILE=\"path/to/my-project\" ; . \"$GUIX_PROFILE\"/etc/profile\n"
7547msgstr "GUIX_PROFILE=\"pfad/zu/my-project\" ; . \"$GUIX_PROFILE\"/etc/profile\n" 7567msgstr "GUIX_PROFILE=\"pfad/zu/my-project\" ; . \"$GUIX_PROFILE\"/etc/profile\n"
7548 7568
7549#. type: Plain text 7569#. type: Plain text
7550#: doc/guix-cookbook.texi:4143 7570#: guix-git/doc/guix-cookbook.texi:4141
7551msgid "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:" 7571msgid "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:"
7552msgstr "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:" 7572msgstr "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:"
7553 7573
7554#. type: example 7574#. type: example
7555#: doc/guix-cookbook.texi:4146 7575#: guix-git/doc/guix-cookbook.texi:4144
7556#, no-wrap 7576#, no-wrap
7557msgid "guix package --search-paths=prefix --profile=$my_profile\"\n" 7577msgid "guix package --search-paths=prefix --profile=$my_profile\"\n"
7558msgstr "guix package --search-paths=prefix --profile=$my_profile\"\n" 7578msgstr "guix package --search-paths=prefix --profile=$my_profile\"\n"
7559 7579
7560#. type: Plain text 7580#. type: Plain text
7561#: doc/guix-cookbook.texi:4150 7581#: guix-git/doc/guix-cookbook.texi:4148
7562msgid "Once again, see (@pxref{Invoking guix package,,, guix, GNU Guix Reference Manual}) for the command line options." 7582msgid "Once again, see (@pxref{Invoking guix package,,, guix, GNU Guix Reference Manual}) for the command line options."
7563msgstr "Siehe auch hier das @ref{Aufruf von guix package,,, guix.de, Referenzhandbuch zu GNU Guix} für die Befehlszeilenoptionen." 7583msgstr "Siehe auch hier das @ref{Aufruf von guix package,,, guix.de, Referenzhandbuch zu GNU Guix} für die Befehlszeilenoptionen."
7564 7584
7565#. type: Plain text 7585#. type: Plain text
7566#: doc/guix-cookbook.texi:4152 7586#: guix-git/doc/guix-cookbook.texi:4150
7567msgid "To upgrade a profile, simply install the manifest again:" 7587msgid "To upgrade a profile, simply install the manifest again:"
7568msgstr "Um ein Profil zu aktualisieren, installieren Sie das Manifest einfach nochmal:" 7588msgstr "Um ein Profil zu aktualisieren, installieren Sie das Manifest einfach nochmal:"
7569 7589
7570#. type: example 7590#. type: example
7571#: doc/guix-cookbook.texi:4155 7591#: guix-git/doc/guix-cookbook.texi:4153
7572#, no-wrap 7592#, no-wrap
7573msgid "guix package -m /path/to/guix-my-project-manifest.scm -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n" 7593msgid "guix package -m /path/to/guix-my-project-manifest.scm -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n"
7574msgstr "guix package -m /pfad/zu/guix-my-project-manifest.scm -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n" 7594msgstr "guix package -m /pfad/zu/guix-my-project-manifest.scm -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n"
7575 7595
7576#. type: Plain text 7596#. type: Plain text
7577#: doc/guix-cookbook.texi:4161 7597#: guix-git/doc/guix-cookbook.texi:4159
7578msgid "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:" 7598msgid "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:"
7579msgstr "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:" 7599msgstr "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:"
7580 7600
7581#. type: example 7601#. type: example
7582#: doc/guix-cookbook.texi:4166 7602#: guix-git/doc/guix-cookbook.texi:4164
7583#, no-wrap 7603#, no-wrap
7584msgid "" 7604msgid ""
7585"for profile in \"$GUIX_EXTRA_PROFILES\"/*; do\n" 7605"for profile in \"$GUIX_EXTRA_PROFILES\"/*; do\n"
@@ -7591,34 +7611,34 @@ msgstr ""
7591"done\n" 7611"done\n"
7592 7612
7593#. type: Plain text 7613#. type: Plain text
7594#: doc/guix-cookbook.texi:4169 7614#: guix-git/doc/guix-cookbook.texi:4167
7595msgid "Each profile has its own generations:" 7615msgid "Each profile has its own generations:"
7596msgstr "Jedes Profil verfügt über seine eigenen Generationen:" 7616msgstr "Jedes Profil verfügt über seine eigenen Generationen:"
7597 7617
7598#. type: example 7618#. type: example
7599#: doc/guix-cookbook.texi:4172 7619#: guix-git/doc/guix-cookbook.texi:4170
7600#, no-wrap 7620#, no-wrap
7601msgid "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --list-generations\n" 7621msgid "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --list-generations\n"
7602msgstr "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --list-generations\n" 7622msgstr "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --list-generations\n"
7603 7623
7604#. type: Plain text 7624#. type: Plain text
7605#: doc/guix-cookbook.texi:4175 7625#: guix-git/doc/guix-cookbook.texi:4173
7606msgid "You can roll-back to any generation of a given profile:" 7626msgid "You can roll-back to any generation of a given profile:"
7607msgstr "Sie können es auf jede Generation zurücksetzen:" 7627msgstr "Sie können es auf jede Generation zurücksetzen:"
7608 7628
7609#. type: example 7629#. type: example
7610#: doc/guix-cookbook.texi:4178 7630#: guix-git/doc/guix-cookbook.texi:4176
7611#, no-wrap 7631#, no-wrap
7612msgid "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --switch-generations=17\n" 7632msgid "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --switch-generations=17\n"
7613msgstr "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --switch-generations=17\n" 7633msgstr "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --switch-generations=17\n"
7614 7634
7615#. type: Plain text 7635#. type: Plain text
7616#: doc/guix-cookbook.texi:4182 7636#: guix-git/doc/guix-cookbook.texi:4180
7617msgid "Finally, if you want to switch to a profile without inheriting from the current environment, you can activate it from an empty shell:" 7637msgid "Finally, if you want to switch to a profile without inheriting from the current environment, you can activate it from an empty shell:"
7618msgstr "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:" 7638msgstr "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:"
7619 7639
7620#. type: example 7640#. type: example
7621#: doc/guix-cookbook.texi:4186 7641#: guix-git/doc/guix-cookbook.texi:4184
7622#, no-wrap 7642#, no-wrap
7623msgid "" 7643msgid ""
7624"env -i $(which bash) --login --noprofile --norc\n" 7644"env -i $(which bash) --login --noprofile --norc\n"
@@ -7628,58 +7648,58 @@ msgstr ""
7628". my-project/etc/profile\n" 7648". my-project/etc/profile\n"
7629 7649
7630#. type: Plain text 7650#. type: Plain text
7631#: doc/guix-cookbook.texi:4194 7651#: guix-git/doc/guix-cookbook.texi:4192
7632msgid "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." 7652msgid "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."
7633msgstr "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." 7653msgstr "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."
7634 7654
7635#. type: emph{#1} 7655#. type: emph{#1}
7636#: doc/guix-cookbook.texi:4197 7656#: guix-git/doc/guix-cookbook.texi:4195
7637msgid "Note: Only the environmental variables of the packages that consume them will be set." 7657msgid "Note: Only the environmental variables of the packages that consume them will be set."
7638msgstr "Anmerkung: Nur diejenigen Umgebungsvariablen der sie gebrauchenden Pakete werden gesetzt." 7658msgstr "Anmerkung: Nur diejenigen Umgebungsvariablen der sie gebrauchenden Pakete werden gesetzt."
7639 7659
7640#. type: Plain text 7660#. type: Plain text
7641#: doc/guix-cookbook.texi:4201 7661#: guix-git/doc/guix-cookbook.texi:4199
7642msgid "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:" 7662msgid "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:"
7643msgstr "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:" 7663msgstr "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:"
7644 7664
7645#. type: itemize 7665#. type: itemize
7646#: doc/guix-cookbook.texi:4205 7666#: guix-git/doc/guix-cookbook.texi:4203
7647msgid "Either export the variable manually, e.g." 7667msgid "Either export the variable manually, e.g."
7648msgstr "Entweder Sie exportieren die Variablen von Hand, z.B." 7668msgstr "Entweder Sie exportieren die Variablen von Hand, z.B."
7649 7669
7650#. type: example 7670#. type: example
7651#: doc/guix-cookbook.texi:4207 7671#: guix-git/doc/guix-cookbook.texi:4205
7652#, no-wrap 7672#, no-wrap
7653msgid "export MANPATH=/path/to/profile$@{MANPATH:+:@}$MANPATH\n" 7673msgid "export MANPATH=/path/to/profile$@{MANPATH:+:@}$MANPATH\n"
7654msgstr "export MANPATH=/path/to/profile$@{MANPATH:+:@}$MANPATH\n" 7674msgstr "export MANPATH=/path/to/profile$@{MANPATH:+:@}$MANPATH\n"
7655 7675
7656#. type: itemize 7676#. type: itemize
7657#: doc/guix-cookbook.texi:4211 7677#: guix-git/doc/guix-cookbook.texi:4209
7658msgid "Or include @samp{man-db} to the profile manifest." 7678msgid "Or include @samp{man-db} to the profile manifest."
7659msgstr "Oder Sie schreiben @samp{man-db} in das Profilmanifest hinein." 7679msgstr "Oder Sie schreiben @samp{man-db} in das Profilmanifest hinein."
7660 7680
7661#. type: Plain text 7681#. type: Plain text
7662#: doc/guix-cookbook.texi:4215 7682#: guix-git/doc/guix-cookbook.texi:4213
7663msgid "The same is true for @samp{INFOPATH} (you can install @samp{info-reader}), @samp{PKG_CONFIG_PATH} (install @samp{pkg-config}), etc." 7683msgid "The same is true for @samp{INFOPATH} (you can install @samp{info-reader}), @samp{PKG_CONFIG_PATH} (install @samp{pkg-config}), etc."
7664msgstr "Das Gleiche gilt für @samp{INFOPATH} (Sie können @samp{info-reader} installieren), @samp{PKG_CONFIG_PATH} (installieren Sie @samp{pkg-config}), etc." 7684msgstr "Das Gleiche gilt für @samp{INFOPATH} (Sie können @samp{info-reader} installieren), @samp{PKG_CONFIG_PATH} (installieren Sie @samp{pkg-config}), etc."
7665 7685
7666#. type: Plain text 7686#. type: Plain text
7667#: doc/guix-cookbook.texi:4220 7687#: guix-git/doc/guix-cookbook.texi:4218
7668msgid "What about the default profile that Guix keeps in @file{~/.guix-profile}?" 7688msgid "What about the default profile that Guix keeps in @file{~/.guix-profile}?"
7669msgstr "Was ist mit dem Standardprofil, das Guix in @file{~/.guix-profile} aufbewahrt?" 7689msgstr "Was ist mit dem Standardprofil, das Guix in @file{~/.guix-profile} aufbewahrt?"
7670 7690
7671#. type: Plain text 7691#. type: Plain text
7672#: doc/guix-cookbook.texi:4223 7692#: guix-git/doc/guix-cookbook.texi:4221
7673msgid "You can assign it the role you want. Typically you would install the manifest of the packages you want to use all the time." 7693msgid "You can assign it the role you want. Typically you would install the manifest of the packages you want to use all the time."
7674msgstr "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." 7694msgstr "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."
7675 7695
7676#. type: Plain text 7696#. type: Plain text
7677#: doc/guix-cookbook.texi:4227 7697#: guix-git/doc/guix-cookbook.texi:4225
7678msgid "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" 7698msgid "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"
7679msgstr "Alternativ können Sie es ohne Manifest für Wegwerfpakete benutzen, die Sie nur ein paar Tage lang benutzen wollen. Das macht es leicht," 7699msgstr "Alternativ können Sie es ohne Manifest für Wegwerfpakete benutzen, die Sie nur ein paar Tage lang benutzen wollen. Das macht es leicht,"
7680 7700
7681#. type: example 7701#. type: example
7682#: doc/guix-cookbook.texi:4231 7702#: guix-git/doc/guix-cookbook.texi:4229
7683#, no-wrap 7703#, no-wrap
7684msgid "" 7704msgid ""
7685"guix install package-foo\n" 7705"guix install package-foo\n"
@@ -7689,107 +7709,107 @@ msgstr ""
7689"guix upgrade paket-bar\n" 7709"guix upgrade paket-bar\n"
7690 7710
7691#. type: Plain text 7711#. type: Plain text
7692#: doc/guix-cookbook.texi:4234 7712#: guix-git/doc/guix-cookbook.texi:4232
7693msgid "without having to specify the path to a profile." 7713msgid "without having to specify the path to a profile."
7694msgstr "auszuführen ohne den Pfad zu einem Profil festzulegen." 7714msgstr "auszuführen ohne den Pfad zu einem Profil festzulegen."
7695 7715
7696#. type: Plain text 7716#. type: Plain text
7697#: doc/guix-cookbook.texi:4242 7717#: guix-git/doc/guix-cookbook.texi:4240
7698msgid "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." 7718msgid "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."
7699msgstr "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." 7719msgstr "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."
7700 7720
7701#. type: Plain text 7721#. type: Plain text
7702#: doc/guix-cookbook.texi:4246 7722#: guix-git/doc/guix-cookbook.texi:4244
7703msgid "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." 7723msgid "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."
7704msgstr "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." 7724msgstr "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."
7705 7725
7706#. type: Plain text 7726#. type: Plain text
7707#: doc/guix-cookbook.texi:4251 7727#: guix-git/doc/guix-cookbook.texi:4249
7708msgid "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." 7728msgid "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."
7709msgstr "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." 7729msgstr "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."
7710 7730
7711#. type: Plain text 7731#. type: Plain text
7712#: doc/guix-cookbook.texi:4253 7732#: guix-git/doc/guix-cookbook.texi:4251
7713msgid "Manifests come with multiple benefits. In particular, they ease maintenance:" 7733msgid "Manifests come with multiple benefits. In particular, they ease maintenance:"
7714msgstr "Manifeste haben mehrere Vorteile. Insbesondere erleichtern sie die Wartung." 7734msgstr "Manifeste haben mehrere Vorteile. Insbesondere erleichtern sie die Wartung."
7715 7735
7716#. type: itemize 7736#. type: itemize
7717#: doc/guix-cookbook.texi:4261 7737#: guix-git/doc/guix-cookbook.texi:4259
7718msgid "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." 7738msgid "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."
7719msgstr "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." 7739msgstr "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."
7720 7740
7721#. type: itemize 7741#. type: itemize
7722#: doc/guix-cookbook.texi:4266 7742#: guix-git/doc/guix-cookbook.texi:4264
7723msgid "@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." 7743msgid "@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."
7724msgstr "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." 7744msgstr "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."
7725 7745
7726#. type: itemize 7746#. type: itemize
7727#: doc/guix-cookbook.texi:4272 7747#: guix-git/doc/guix-cookbook.texi:4270
7728msgid "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." 7748msgid "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."
7729msgstr "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." 7749msgstr "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."
7730 7750
7731#. type: itemize 7751#. type: itemize
7732#: doc/guix-cookbook.texi:4278 7752#: guix-git/doc/guix-cookbook.texi:4276
7733msgid "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}." 7753msgid "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}."
7734msgstr "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}." 7754msgstr "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}."
7735 7755
7736#. type: itemize 7756#. type: itemize
7737#: doc/guix-cookbook.texi:4286 7757#: guix-git/doc/guix-cookbook.texi:4284
7738msgid "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)." 7758msgid "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)."
7739msgstr "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)." 7759msgstr "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)."
7740 7760
7741#. type: itemize 7761#. type: itemize
7742#: doc/guix-cookbook.texi:4290 7762#: guix-git/doc/guix-cookbook.texi:4288
7743msgid "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}." 7763msgid "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}."
7744msgstr "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." 7764msgstr "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."
7745 7765
7746#. type: Plain text 7766#. type: Plain text
7747#: doc/guix-cookbook.texi:4301 7767#: guix-git/doc/guix-cookbook.texi:4299
7748msgid "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." 7768msgid "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."
7749msgstr "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." 7769msgstr "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."
7750 7770
7751#. type: Plain text 7771#. type: Plain text
7752#: doc/guix-cookbook.texi:4306 7772#: guix-git/doc/guix-cookbook.texi:4304
7753msgid "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." 7773msgid "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."
7754msgstr "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." 7774msgstr "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."
7755 7775
7756#. type: Plain text 7776#. type: Plain text
7757#: doc/guix-cookbook.texi:4309 7777#: guix-git/doc/guix-cookbook.texi:4307
7758msgid "@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." 7778msgid "@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."
7759msgstr "@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." 7779msgstr "@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."
7760 7780
7761#. type: Plain text 7781#. type: Plain text
7762#: doc/guix-cookbook.texi:4314 7782#: guix-git/doc/guix-cookbook.texi:4312
7763msgid "To reproduce a profile bit-for-bit, we need two pieces of information:" 7783msgid "To reproduce a profile bit-for-bit, we need two pieces of information:"
7764msgstr "Um ein Profil Bit für Bit nachzubilden, brauchen wir zweierlei Informationen:" 7784msgstr "Um ein Profil Bit für Bit nachzubilden, brauchen wir zweierlei Informationen:"
7765 7785
7766#. type: itemize 7786#. type: itemize
7767#: doc/guix-cookbook.texi:4318 7787#: guix-git/doc/guix-cookbook.texi:4316
7768msgid "a manifest (@pxref{Writing Manifests,,, guix, GNU Guix Reference Manual});" 7788msgid "a manifest (@pxref{Writing Manifests,,, guix, GNU Guix Reference Manual});"
7769msgstr "ein Manifest (siehe @ref{Manifeste verfassen,,, guix.de, Referenzhandbuch zu GNU Guix}) und" 7789msgstr "ein Manifest (siehe @ref{Manifeste verfassen,,, guix.de, Referenzhandbuch zu GNU Guix}) und"
7770 7790
7771#. type: itemize 7791#. type: itemize
7772#: doc/guix-cookbook.texi:4321 7792#: guix-git/doc/guix-cookbook.texi:4319
7773msgid "a Guix channel specification (@pxref{Replicating Guix,,, guix, GNU Guix Reference Manual})." 7793msgid "a Guix channel specification (@pxref{Replicating Guix,,, guix, GNU Guix Reference Manual})."
7774msgstr "eine Kanalspezifikation für Guix (siehe @pxref{Guix nachbilden,,, guix.de, Referenzhandbuch zu GNU Guix})." 7794msgstr "eine Kanalspezifikation für Guix (siehe @pxref{Guix nachbilden,,, guix.de, Referenzhandbuch zu GNU Guix})."
7775 7795
7776#. type: Plain text 7796#. type: Plain text
7777#: doc/guix-cookbook.texi:4325 7797#: guix-git/doc/guix-cookbook.texi:4323
7778msgid "Indeed, manifests alone might not be enough: different Guix versions (or different channels) can produce different outputs for a given manifest." 7798msgid "Indeed, manifests alone might not be enough: different Guix versions (or different channels) can produce different outputs for a given manifest."
7779msgstr "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." 7799msgstr "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."
7780 7800
7781#. type: Plain text 7801#. type: Plain text
7782#: doc/guix-cookbook.texi:4330 7802#: guix-git/doc/guix-cookbook.texi:4328
7783msgid "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}." 7803msgid "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}."
7784msgstr "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}." 7804msgstr "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}."
7785 7805
7786#. type: Plain text 7806#. type: Plain text
7787#: doc/guix-cookbook.texi:4333 7807#: guix-git/doc/guix-cookbook.texi:4331
7788msgid "On another computer, you can use the channel specification file and the manifest to reproduce the exact same profile:" 7808msgid "On another computer, you can use the channel specification file and the manifest to reproduce the exact same profile:"
7789msgstr "Auf einem anderen Rechner können Sie die Kanalspezifikationsdatei und das Manifest benutzen, um genau dasselbe Profil zu reproduzieren:" 7809msgstr "Auf einem anderen Rechner können Sie die Kanalspezifikationsdatei und das Manifest benutzen, um genau dasselbe Profil zu reproduzieren:"
7790 7810
7791#. type: example 7811#. type: example
7792#: doc/guix-cookbook.texi:4337 7812#: guix-git/doc/guix-cookbook.texi:4335
7793#, no-wrap 7813#, no-wrap
7794msgid "" 7814msgid ""
7795"GUIX_EXTRA_PROFILES=$HOME/.guix-extra-profiles\n" 7815"GUIX_EXTRA_PROFILES=$HOME/.guix-extra-profiles\n"
@@ -7801,7 +7821,7 @@ msgstr ""
7801"\n" 7821"\n"
7802 7822
7803#. type: example 7823#. type: example
7804#: doc/guix-cookbook.texi:4340 7824#: guix-git/doc/guix-cookbook.texi:4338
7805#, no-wrap 7825#, no-wrap
7806msgid "" 7826msgid ""
7807"mkdir -p \"$GUIX_EXTRA\"/my-project\n" 7827"mkdir -p \"$GUIX_EXTRA\"/my-project\n"
@@ -7813,7 +7833,7 @@ msgstr ""
7813"\n" 7833"\n"
7814 7834
7815#. type: example 7835#. type: example
7816#: doc/guix-cookbook.texi:4343 7836#: guix-git/doc/guix-cookbook.texi:4341
7817#, no-wrap 7837#, no-wrap
7818msgid "" 7838msgid ""
7819"mkdir -p \"$GUIX_EXTRA_PROFILES/my-project\"\n" 7839"mkdir -p \"$GUIX_EXTRA_PROFILES/my-project\"\n"
@@ -7823,39 +7843,39 @@ msgstr ""
7823"\"$GUIX_EXTRA\"/my-project/guix/bin/guix package --manifest=/path/to/guix-my-project-manifest.scm --profile=\"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n" 7843"\"$GUIX_EXTRA\"/my-project/guix/bin/guix package --manifest=/path/to/guix-my-project-manifest.scm --profile=\"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n"
7824 7844
7825#. type: Plain text 7845#. type: Plain text
7826#: doc/guix-cookbook.texi:4347 7846#: guix-git/doc/guix-cookbook.texi:4345
7827msgid "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." 7847msgid "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."
7828msgstr "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." 7848msgstr "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."
7829 7849
7830#. type: cindex 7850#. type: cindex
7831#: doc/guix-cookbook.texi:4351 7851#: guix-git/doc/guix-cookbook.texi:4349
7832#, no-wrap 7852#, no-wrap
7833msgid "development, with Guix" 7853msgid "development, with Guix"
7834msgstr "Entwicklung, mit Guix" 7854msgstr "Entwicklung, mit Guix"
7835 7855
7836#. type: cindex 7856#. type: cindex
7837#: doc/guix-cookbook.texi:4352 7857#: guix-git/doc/guix-cookbook.texi:4350
7838#, no-wrap 7858#, no-wrap
7839msgid "software development, with Guix" 7859msgid "software development, with Guix"
7840msgstr "Software-Entwicklung, mit Guix" 7860msgstr "Software-Entwicklung, mit Guix"
7841 7861
7842#. type: Plain text 7862#. type: Plain text
7843#: doc/guix-cookbook.texi:4362 7863#: guix-git/doc/guix-cookbook.texi:4360
7844msgid "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." 7864msgid "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."
7845msgstr "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." 7865msgstr "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."
7846 7866
7847#. type: Plain text 7867#. type: Plain text
7848#: doc/guix-cookbook.texi:4372 7868#: guix-git/doc/guix-cookbook.texi:4370
7849msgid "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.}." 7869msgid "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.}."
7850msgstr "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.}." 7870msgstr "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.}."
7851 7871
7852#. type: Plain text 7872#. type: Plain text
7853#: doc/guix-cookbook.texi:4395 7873#: guix-git/doc/guix-cookbook.texi:4393
7854msgid "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:" 7874msgid "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:"
7855msgstr "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:" 7875msgstr "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:"
7856 7876
7857#. type: lisp 7877#. type: lisp
7858#: doc/guix-cookbook.texi:4398 7878#: guix-git/doc/guix-cookbook.texi:4396
7859#, no-wrap 7879#, no-wrap
7860msgid "" 7880msgid ""
7861";; The ‘guix.scm’ file for Guile, for use by ‘guix shell’.\n" 7881";; The ‘guix.scm’ file for Guile, for use by ‘guix shell’.\n"
@@ -7865,7 +7885,7 @@ msgstr ""
7865"\n" 7885"\n"
7866 7886
7867#. type: lisp 7887#. type: lisp
7868#: doc/guix-cookbook.texi:4419 7888#: guix-git/doc/guix-cookbook.texi:4417
7869#, no-wrap 7889#, no-wrap
7870msgid "" 7890msgid ""
7871"(use-modules (guix)\n" 7891"(use-modules (guix)\n"
@@ -7913,7 +7933,7 @@ msgstr ""
7913"\n" 7933"\n"
7914 7934
7915#. type: lisp 7935#. type: lisp
7916#: doc/guix-cookbook.texi:4441 7936#: guix-git/doc/guix-cookbook.texi:4439
7917#, no-wrap 7937#, no-wrap
7918msgid "" 7938msgid ""
7919"(package\n" 7939"(package\n"
@@ -7963,7 +7983,7 @@ msgstr ""
7963"\n" 7983"\n"
7964 7984
7965#. type: lisp 7985#. type: lisp
7966#: doc/guix-cookbook.texi:4451 7986#: guix-git/doc/guix-cookbook.texi:4449
7967#, no-wrap 7987#, no-wrap
7968msgid "" 7988msgid ""
7969" ;; When cross-compiling, a native version of Guile itself is\n" 7989" ;; When cross-compiling, a native version of Guile itself is\n"
@@ -7989,7 +8009,7 @@ msgstr ""
7989"\n" 8009"\n"
7990 8010
7991#. type: lisp 8011#. type: lisp
7992#: doc/guix-cookbook.texi:4465 8012#: guix-git/doc/guix-cookbook.texi:4463
7993#, no-wrap 8013#, no-wrap
7994msgid "" 8014msgid ""
7995" (native-search-paths\n" 8015" (native-search-paths\n"
@@ -8021,72 +8041,72 @@ msgstr ""
8021" (license license:lgpl3+))\n" 8041" (license license:lgpl3+))\n"
8022 8042
8023#. type: Plain text 8043#. type: Plain text
8024#: doc/guix-cookbook.texi:4469 8044#: guix-git/doc/guix-cookbook.texi:4467
8025msgid "Quite a bit of boilerplate, but now someone who'd like to hack on Guile now only needs to run:" 8045msgid "Quite a bit of boilerplate, but now someone who'd like to hack on Guile now only needs to run:"
8026msgstr "Das ist schon ein bisschen aufwendig, aber wenn jemand an Guile hacken will, braucht sie bloß noch das hier aufzurufen:" 8046msgstr "Das ist schon ein bisschen aufwendig, aber wenn jemand an Guile hacken will, braucht sie bloß noch das hier aufzurufen:"
8027 8047
8028#. type: lisp 8048#. type: lisp
8029#: doc/guix-cookbook.texi:4472 8049#: guix-git/doc/guix-cookbook.texi:4470
8030#, no-wrap 8050#, no-wrap
8031msgid "guix shell\n" 8051msgid "guix shell\n"
8032msgstr "guix shell\n" 8052msgstr "guix shell\n"
8033 8053
8034#. type: Plain text 8054#. type: Plain text
8035#: doc/guix-cookbook.texi:4478 8055#: guix-git/doc/guix-cookbook.texi:4476
8036msgid "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}." 8056msgid "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}."
8037msgstr "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}." 8057msgstr "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}."
8038 8058
8039#. type: quotation 8059#. type: quotation
8040#: doc/guix-cookbook.texi:4479 8060#: guix-git/doc/guix-cookbook.texi:4477
8041#, no-wrap 8061#, no-wrap
8042msgid "The chef's recommendation" 8062msgid "The chef's recommendation"
8043msgstr "Empfehlung des Hauses" 8063msgstr "Empfehlung des Hauses"
8044 8064
8045#. type: quotation 8065#. type: quotation
8046#: doc/guix-cookbook.texi:4481 8066#: guix-git/doc/guix-cookbook.texi:4479
8047msgid "Our suggestion is to create development environments like this:" 8067msgid "Our suggestion is to create development environments like this:"
8048msgstr "Wir legen Ihnen nahe, Entwicklungsumgebungen mit diesem Befehl anzulegen:" 8068msgstr "Wir legen Ihnen nahe, Entwicklungsumgebungen mit diesem Befehl anzulegen:"
8049 8069
8050#. type: example 8070#. type: example
8051#: doc/guix-cookbook.texi:4484 8071#: guix-git/doc/guix-cookbook.texi:4482
8052#, no-wrap 8072#, no-wrap
8053msgid "guix shell --container --link-profile\n" 8073msgid "guix shell --container --link-profile\n"
8054msgstr "guix shell --container --link-profile\n" 8074msgstr "guix shell --container --link-profile\n"
8055 8075
8056#. type: quotation 8076#. type: quotation
8057#: doc/guix-cookbook.texi:4488 8077#: guix-git/doc/guix-cookbook.texi:4486
8058msgid "... or, for short:" 8078msgid "... or, for short:"
8059msgstr "… oder kurz:" 8079msgstr "… oder kurz:"
8060 8080
8061#. type: example 8081#. type: example
8062#: doc/guix-cookbook.texi:4491 8082#: guix-git/doc/guix-cookbook.texi:4489
8063#, no-wrap 8083#, no-wrap
8064msgid "guix shell -CP\n" 8084msgid "guix shell -CP\n"
8065msgstr "guix shell -CP\n" 8085msgstr "guix shell -CP\n"
8066 8086
8067#. type: quotation 8087#. type: quotation
8068#: doc/guix-cookbook.texi:4501 8088#: guix-git/doc/guix-cookbook.texi:4499
8069msgid "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." 8089msgid "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."
8070msgstr "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." 8090msgstr "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."
8071 8091
8072#. type: section 8092#. type: section
8073#: doc/guix-cookbook.texi:4504 8093#: guix-git/doc/guix-cookbook.texi:4502
8074#, no-wrap 8094#, no-wrap
8075msgid "Level 1: Building with Guix" 8095msgid "Level 1: Building with Guix"
8076msgstr "Stufe 1: Erstellen mit Guix" 8096msgstr "Stufe 1: Erstellen mit Guix"
8077 8097
8078#. type: Plain text 8098#. type: Plain text
8079#: doc/guix-cookbook.texi:4511 8099#: guix-git/doc/guix-cookbook.texi:4509
8080msgid "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." 8100msgid "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."
8081msgstr "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." 8101msgstr "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."
8082 8102
8083#. type: Plain text 8103#. type: Plain text
8084#: doc/guix-cookbook.texi:4514 8104#: guix-git/doc/guix-cookbook.texi:4512
8085msgid "To build the package with Guix, we'll need to fill out the @code{source} field, along these lines:" 8105msgid "To build the package with Guix, we'll need to fill out the @code{source} field, along these lines:"
8086msgstr "Wenn wir das Paket mit Guix erstellt bekommen möchten, müssen wir etwas ins @code{source}-Feld eintragen, etwa so:" 8106msgstr "Wenn wir das Paket mit Guix erstellt bekommen möchten, müssen wir etwas ins @code{source}-Feld eintragen, etwa so:"
8087 8107
8088#. type: lisp 8108#. type: lisp
8089#: doc/guix-cookbook.texi:4519 8109#: guix-git/doc/guix-cookbook.texi:4517
8090#, no-wrap 8110#, no-wrap
8091msgid "" 8111msgid ""
8092"(use-modules (guix)\n" 8112"(use-modules (guix)\n"
@@ -8100,7 +8120,7 @@ msgstr ""
8100"\n" 8120"\n"
8101 8121
8102#. type: lisp 8122#. type: lisp
8103#: doc/guix-cookbook.texi:4524 8123#: guix-git/doc/guix-cookbook.texi:4522
8104#, no-wrap 8124#, no-wrap
8105msgid "" 8125msgid ""
8106"(define vcs-file?\n" 8126"(define vcs-file?\n"
@@ -8117,7 +8137,7 @@ msgstr ""
8117"\n" 8137"\n"
8118 8138
8119#. type: lisp 8139#. type: lisp
8120#: doc/guix-cookbook.texi:4532 8140#: guix-git/doc/guix-cookbook.texi:4530
8121#, no-wrap 8141#, no-wrap
8122msgid "" 8142msgid ""
8123"(package\n" 8143"(package\n"
@@ -8137,65 +8157,65 @@ msgstr ""
8137" …)\n" 8157" …)\n"
8138 8158
8139#. type: Plain text 8159#. type: Plain text
8140#: doc/guix-cookbook.texi:4535 8160#: guix-git/doc/guix-cookbook.texi:4533
8141msgid "Here's what we changed compared to the previous section:" 8161msgid "Here's what we changed compared to the previous section:"
8142msgstr "Dies sind unsere Änderungen verglichen mit dem vorherigen Abschnitt:" 8162msgstr "Dies sind unsere Änderungen verglichen mit dem vorherigen Abschnitt:"
8143 8163
8144#. type: enumerate 8164#. type: enumerate
8145#: doc/guix-cookbook.texi:4540 8165#: guix-git/doc/guix-cookbook.texi:4538
8146msgid "We added @code{(guix git-download)} to our set of imported modules, so we can use its @code{git-predicate} procedure." 8166msgid "We added @code{(guix git-download)} to our set of imported modules, so we can use its @code{git-predicate} procedure."
8147msgstr "Wir haben @code{(guix git-download)} zu unseren importierten Modulen hinzugefügt, damit wir dessen Prozedur @code{git-predicate} benutzen können." 8167msgstr "Wir haben @code{(guix git-download)} zu unseren importierten Modulen hinzugefügt, damit wir dessen Prozedur @code{git-predicate} benutzen können."
8148 8168
8149#. type: enumerate 8169#. type: enumerate
8150#: doc/guix-cookbook.texi:4544 8170#: guix-git/doc/guix-cookbook.texi:4542
8151msgid "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." 8171msgid "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."
8152msgstr "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." 8172msgstr "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."
8153 8173
8154#. type: enumerate 8174#. type: enumerate
8155#: doc/guix-cookbook.texi:4549 8175#: guix-git/doc/guix-cookbook.texi:4547
8156msgid "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)." 8176msgid "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)."
8157msgstr "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?})." 8177msgstr "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?})."
8158 8178
8159#. type: Plain text 8179#. type: Plain text
8160#: doc/guix-cookbook.texi:4556 8180#: guix-git/doc/guix-cookbook.texi:4554
8161msgid "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:" 8181msgid "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:"
8162msgstr "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:" 8182msgstr "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:"
8163 8183
8164#. type: example 8184#. type: example
8165#: doc/guix-cookbook.texi:4559 8185#: guix-git/doc/guix-cookbook.texi:4557
8166#, no-wrap 8186#, no-wrap
8167msgid "guix build -f guix.scm\n" 8187msgid "guix build -f guix.scm\n"
8168msgstr "guix build -f guix.scm\n" 8188msgstr "guix build -f guix.scm\n"
8169 8189
8170#. type: Plain text 8190#. type: Plain text
8171#: doc/guix-cookbook.texi:4566 8191#: guix-git/doc/guix-cookbook.texi:4564
8172msgid "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}):" 8192msgid "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}):"
8173msgstr "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):" 8193msgstr "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):"
8174 8194
8175#. type: lisp 8195#. type: lisp
8176#: doc/guix-cookbook.texi:4569 8196#: guix-git/doc/guix-cookbook.texi:4567
8177#, no-wrap 8197#, no-wrap
8178msgid "guix build -f guix.scm -s aarch64-linux -s riscv64-linux\n" 8198msgid "guix build -f guix.scm -s aarch64-linux -s riscv64-linux\n"
8179msgstr "guix build -f guix.scm -s aarch64-linux -s riscv64-linux\n" 8199msgstr "guix build -f guix.scm -s aarch64-linux -s riscv64-linux\n"
8180 8200
8181#. type: Plain text 8201#. type: Plain text
8182#: doc/guix-cookbook.texi:4573 8202#: guix-git/doc/guix-cookbook.texi:4571
8183msgid "@dots{} or cross-compile:" 8203msgid "@dots{} or cross-compile:"
8184msgstr "… oder Sie cross-kompilieren:" 8204msgstr "… oder Sie cross-kompilieren:"
8185 8205
8186#. type: lisp 8206#. type: lisp
8187#: doc/guix-cookbook.texi:4576 8207#: guix-git/doc/guix-cookbook.texi:4574
8188#, no-wrap 8208#, no-wrap
8189msgid "guix build -f guix.scm --target=x86_64-w64-mingw32\n" 8209msgid "guix build -f guix.scm --target=x86_64-w64-mingw32\n"
8190msgstr "guix build -f guix.scm --target=x86_64-w64-mingw32\n" 8210msgstr "guix build -f guix.scm --target=x86_64-w64-mingw32\n"
8191 8211
8192#. type: Plain text 8212#. type: Plain text
8193#: doc/guix-cookbook.texi:4580 8213#: guix-git/doc/guix-cookbook.texi:4578
8194msgid "You can also use @dfn{package transformations} to test package variants (@pxref{Package Transformation Options,,, guix, GNU Guix Reference Manual}):" 8214msgid "You can also use @dfn{package transformations} to test package variants (@pxref{Package Transformation Options,,, guix, GNU Guix Reference Manual}):"
8195msgstr "Möglich sind auch @dfn{Paketumwandlungsoptionen}, womit Sie Varianten Ihres Pakets testen können (siehe @ref{Paketumwandlungsoptionen,,, guix.de, Referenzhandbuch zu GNU Guix}):" 8215msgstr "Möglich sind auch @dfn{Paketumwandlungsoptionen}, womit Sie Varianten Ihres Pakets testen können (siehe @ref{Paketumwandlungsoptionen,,, guix.de, Referenzhandbuch zu GNU Guix}):"
8196 8216
8197#. type: example 8217#. type: example
8198#: doc/guix-cookbook.texi:4585 8218#: guix-git/doc/guix-cookbook.texi:4583
8199#, no-wrap 8219#, no-wrap
8200msgid "" 8220msgid ""
8201"# What if we built with Clang instead of GCC?\n" 8221"# What if we built with Clang instead of GCC?\n"
@@ -8209,7 +8229,7 @@ msgstr ""
8209"\n" 8229"\n"
8210 8230
8211#. type: example 8231#. type: example
8212#: doc/guix-cookbook.texi:4589 8232#: guix-git/doc/guix-cookbook.texi:4587
8213#, no-wrap 8233#, no-wrap
8214msgid "" 8234msgid ""
8215"# What about that under-tested configure flag?\n" 8235"# What about that under-tested configure flag?\n"
@@ -8221,28 +8241,28 @@ msgstr ""
8221" --with-configure-flag=guile@@3.0.99-git=--disable-networking\n" 8241" --with-configure-flag=guile@@3.0.99-git=--disable-networking\n"
8222 8242
8223#. type: Plain text 8243#. type: Plain text
8224#: doc/guix-cookbook.texi:4592 8244#: guix-git/doc/guix-cookbook.texi:4590
8225msgid "Handy!" 8245msgid "Handy!"
8226msgstr "Praktisch!" 8246msgstr "Praktisch!"
8227 8247
8228#. type: section 8248#. type: section
8229#: doc/guix-cookbook.texi:4594 8249#: guix-git/doc/guix-cookbook.texi:4592
8230#, no-wrap 8250#, no-wrap
8231msgid "Level 2: The Repository as a Channel" 8251msgid "Level 2: The Repository as a Channel"
8232msgstr "Stufe 2: Das Repository als Kanal" 8252msgstr "Stufe 2: Das Repository als Kanal"
8233 8253
8234#. type: Plain text 8254#. type: Plain text
8235#: doc/guix-cookbook.texi:4601 8255#: guix-git/doc/guix-cookbook.texi:4599
8236msgid "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}." 8256msgid "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}."
8237msgstr "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}." 8257msgstr "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}."
8238 8258
8239#. type: Plain text 8259#. type: Plain text
8240#: doc/guix-cookbook.texi:4608 8260#: guix-git/doc/guix-cookbook.texi:4606
8241msgid "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}:" 8261msgid "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}:"
8242msgstr "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}:" 8262msgstr "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}:"
8243 8263
8244#. type: lisp 8264#. type: lisp
8245#: doc/guix-cookbook.texi:4613 8265#: guix-git/doc/guix-cookbook.texi:4611
8246#, no-wrap 8266#, no-wrap
8247msgid "" 8267msgid ""
8248"mkdir -p .guix/modules\n" 8268"mkdir -p .guix/modules\n"
@@ -8254,12 +8274,12 @@ msgstr ""
8254"ln -s .guix/modules/guile-package.scm guix.scm\n" 8274"ln -s .guix/modules/guile-package.scm guix.scm\n"
8255 8275
8256#. type: Plain text 8276#. type: Plain text
8257#: doc/guix-cookbook.texi:4624 8277#: guix-git/doc/guix-cookbook.texi:4622
8258msgid "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):" 8278msgid "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):"
8259msgstr "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):" 8279msgstr "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):"
8260 8280
8261#. type: lisp 8281#. type: lisp
8262#: doc/guix-cookbook.texi:4630 8282#: guix-git/doc/guix-cookbook.texi:4628
8263#, no-wrap 8283#, no-wrap
8264msgid "" 8284msgid ""
8265"(define-module (guile-package)\n" 8285"(define-module (guile-package)\n"
@@ -8275,7 +8295,7 @@ msgstr ""
8275"\n" 8295"\n"
8276 8296
8277#. type: lisp 8297#. type: lisp
8278#: doc/guix-cookbook.texi:4635 8298#: guix-git/doc/guix-cookbook.texi:4633
8279#, no-wrap 8299#, no-wrap
8280msgid "" 8300msgid ""
8281"(define vcs-file?\n" 8301"(define vcs-file?\n"
@@ -8292,7 +8312,7 @@ msgstr ""
8292"\n" 8312"\n"
8293 8313
8294#. type: lisp 8314#. type: lisp
8295#: doc/guix-cookbook.texi:4644 8315#: guix-git/doc/guix-cookbook.texi:4642
8296#, no-wrap 8316#, no-wrap
8297msgid "" 8317msgid ""
8298"(define-public guile\n" 8318"(define-public guile\n"
@@ -8316,7 +8336,7 @@ msgstr ""
8316"\n" 8336"\n"
8317 8337
8318#. type: lisp 8338#. type: lisp
8319#: doc/guix-cookbook.texi:4647 8339#: guix-git/doc/guix-cookbook.texi:4645
8320#, no-wrap 8340#, no-wrap
8321msgid "" 8341msgid ""
8322";; Return the package object define above at the end of the module.\n" 8342";; Return the package object define above at the end of the module.\n"
@@ -8326,12 +8346,12 @@ msgstr ""
8326"guile\n" 8346"guile\n"
8327 8347
8328#. type: Plain text 8348#. type: Plain text
8329#: doc/guix-cookbook.texi:4652 8349#: guix-git/doc/guix-cookbook.texi:4650
8330msgid "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:" 8350msgid "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:"
8331msgstr "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:" 8351msgstr "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:"
8332 8352
8333#. type: lisp 8353#. type: lisp
8334#: doc/guix-cookbook.texi:4655 8354#: guix-git/doc/guix-cookbook.texi:4653
8335#, no-wrap 8355#, no-wrap
8336msgid "" 8356msgid ""
8337";; This file lets us present this repo as a Guix channel.\n" 8357";; This file lets us present this repo as a Guix channel.\n"
@@ -8341,7 +8361,7 @@ msgstr ""
8341"\n" 8361"\n"
8342 8362
8343#. type: lisp 8363#. type: lisp
8344#: doc/guix-cookbook.texi:4659 8364#: guix-git/doc/guix-cookbook.texi:4657
8345#, no-wrap 8365#, no-wrap
8346msgid "" 8366msgid ""
8347"(channel\n" 8367"(channel\n"
@@ -8353,12 +8373,12 @@ msgstr ""
8353" (directory \".guix/modules\")) ;Paketmodule finden sich unter .guix/modules/\n" 8373" (directory \".guix/modules\")) ;Paketmodule finden sich unter .guix/modules/\n"
8354 8374
8355#. type: Plain text 8375#. type: Plain text
8356#: doc/guix-cookbook.texi:4662 8376#: guix-git/doc/guix-cookbook.texi:4660
8357msgid "To recap, we now have these files:" 8377msgid "To recap, we now have these files:"
8358msgstr "Zusammengefasst liegen diese Dateien jetzt im Repository:" 8378msgstr "Zusammengefasst liegen diese Dateien jetzt im Repository:"
8359 8379
8360#. type: lisp 8380#. type: lisp
8361#: doc/guix-cookbook.texi:4670 8381#: guix-git/doc/guix-cookbook.texi:4668
8362#, no-wrap 8382#, no-wrap
8363msgid "" 8383msgid ""
8364".\n" 8384".\n"
@@ -8376,12 +8396,12 @@ msgstr ""
8376"       └── guile-package.scm\n" 8396"       └── guile-package.scm\n"
8377 8397
8378#. type: Plain text 8398#. type: Plain text
8379#: doc/guix-cookbook.texi:4679 8399#: guix-git/doc/guix-cookbook.texi:4677
8380msgid "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:" 8400msgid "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:"
8381msgstr "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:" 8401msgstr "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:"
8382 8402
8383#. type: lisp 8403#. type: lisp
8384#: doc/guix-cookbook.texi:4686 8404#: guix-git/doc/guix-cookbook.texi:4684
8385#, no-wrap 8405#, no-wrap
8386msgid "" 8406msgid ""
8387"(append (list (channel\n" 8407"(append (list (channel\n"
@@ -8397,12 +8417,12 @@ msgstr ""
8397" %default-channels)\n" 8417" %default-channels)\n"
8398 8418
8399#. type: Plain text 8419#. type: Plain text
8400#: doc/guix-cookbook.texi:4689 8420#: guix-git/doc/guix-cookbook.texi:4687
8401msgid "After running @command{guix pull}, we can see the new package:" 8421msgid "After running @command{guix pull}, we can see the new package:"
8402msgstr "Nach einem Aufruf von @command{guix pull} sind die neuen Pakete zu sehen:" 8422msgstr "Nach einem Aufruf von @command{guix pull} sind die neuen Pakete zu sehen:"
8403 8423
8404#. type: example 8424#. type: example
8405#: doc/guix-cookbook.texi:4711 8425#: guix-git/doc/guix-cookbook.texi:4709
8406#, no-wrap 8426#, no-wrap
8407msgid "" 8427msgid ""
8408"$ guix describe\n" 8428"$ guix describe\n"
@@ -8448,17 +8468,17 @@ msgstr ""
8448"/gnu/store/r34gsij7f0glg2fbakcmmk0zn4v62s5w-guile-3.0.99-git\n" 8468"/gnu/store/r34gsij7f0glg2fbakcmmk0zn4v62s5w-guile-3.0.99-git\n"
8449 8469
8450#. type: Plain text 8470#. type: Plain text
8451#: doc/guix-cookbook.texi:4716 8471#: guix-git/doc/guix-cookbook.texi:4714
8452msgid "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." 8472msgid "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."
8453msgstr "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." 8473msgstr "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."
8454 8474
8455#. type: Plain text 8475#. type: Plain text
8456#: doc/guix-cookbook.texi:4720 8476#: guix-git/doc/guix-cookbook.texi:4718
8457msgid "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}):" 8477msgid "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}):"
8458msgstr "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}):" 8478msgstr "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}):"
8459 8479
8460#. type: example 8480#. type: example
8461#: doc/guix-cookbook.texi:4724 8481#: guix-git/doc/guix-cookbook.texi:4722
8462#, no-wrap 8482#, no-wrap
8463msgid "" 8483msgid ""
8464"# How about a Docker image of our Guile snapshot?\n" 8484"# How about a Docker image of our Guile snapshot?\n"
@@ -8470,7 +8490,7 @@ msgstr ""
8470"\n" 8490"\n"
8471 8491
8472#. type: example 8492#. type: example
8473#: doc/guix-cookbook.texi:4727 8493#: guix-git/doc/guix-cookbook.texi:4725
8474#, no-wrap 8494#, no-wrap
8475msgid "" 8495msgid ""
8476"# And a relocatable RPM?\n" 8496"# And a relocatable RPM?\n"
@@ -8480,18 +8500,18 @@ msgstr ""
8480"guix pack -f rpm -R -S /bin=bin guile@@3.0.99-git\n" 8500"guix pack -f rpm -R -S /bin=bin guile@@3.0.99-git\n"
8481 8501
8482#. type: section 8502#. type: section
8483#: doc/guix-cookbook.texi:4730 8503#: guix-git/doc/guix-cookbook.texi:4728
8484#, no-wrap 8504#, no-wrap
8485msgid "Bonus: Package Variants" 8505msgid "Bonus: Package Variants"
8486msgstr "Bonus: Paketvarianten" 8506msgstr "Bonus: Paketvarianten"
8487 8507
8488#. type: Plain text 8508#. type: Plain text
8489#: doc/guix-cookbook.texi:4738 8509#: guix-git/doc/guix-cookbook.texi:4736
8490msgid "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:" 8510msgid "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:"
8491msgstr "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:" 8511msgstr "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:"
8492 8512
8493#. type: lisp 8513#. type: lisp
8494#: doc/guix-cookbook.texi:4741 8514#: guix-git/doc/guix-cookbook.texi:4739
8495#, no-wrap 8515#, no-wrap
8496msgid "" 8516msgid ""
8497";; This is the ‘.guix/modules/guile-package.scm’ file.\n" 8517";; This is the ‘.guix/modules/guile-package.scm’ file.\n"
@@ -8501,7 +8521,7 @@ msgstr ""
8501"\n" 8521"\n"
8502 8522
8503#. type: lisp 8523#. type: lisp
8504#: doc/guix-cookbook.texi:4744 8524#: guix-git/doc/guix-cookbook.texi:4742
8505#, no-wrap 8525#, no-wrap
8506msgid "" 8526msgid ""
8507"(define-module (guile-package)\n" 8527"(define-module (guile-package)\n"
@@ -8513,7 +8533,7 @@ msgstr ""
8513"\n" 8533"\n"
8514 8534
8515#. type: lisp 8535#. type: lisp
8516#: doc/guix-cookbook.texi:4747 8536#: guix-git/doc/guix-cookbook.texi:4745
8517#, no-wrap 8537#, no-wrap
8518msgid "" 8538msgid ""
8519"(define-public guile\n" 8539"(define-public guile\n"
@@ -8525,7 +8545,7 @@ msgstr ""
8525"\n" 8545"\n"
8526 8546
8527#. type: lisp 8547#. type: lisp
8528#: doc/guix-cookbook.texi:4755 8548#: guix-git/doc/guix-cookbook.texi:4753
8529#, no-wrap 8549#, no-wrap
8530msgid "" 8550msgid ""
8531"(define (package-with-configure-flags p flags)\n" 8551"(define (package-with-configure-flags p flags)\n"
@@ -8547,7 +8567,7 @@ msgstr ""
8547"\n" 8567"\n"
8548 8568
8549#. type: lisp 8569#. type: lisp
8550#: doc/guix-cookbook.texi:4761 8570#: guix-git/doc/guix-cookbook.texi:4759
8551#, no-wrap 8571#, no-wrap
8552msgid "" 8572msgid ""
8553"(define-public guile-without-threads\n" 8573"(define-public guile-without-threads\n"
@@ -8565,7 +8585,7 @@ msgstr ""
8565"\n" 8585"\n"
8566 8586
8567#. type: lisp 8587#. type: lisp
8568#: doc/guix-cookbook.texi:4767 8588#: guix-git/doc/guix-cookbook.texi:4765
8569#, no-wrap 8589#, no-wrap
8570msgid "" 8590msgid ""
8571"(define-public guile-without-networking\n" 8591"(define-public guile-without-networking\n"
@@ -8583,7 +8603,7 @@ msgstr ""
8583"\n" 8603"\n"
8584 8604
8585#. type: lisp 8605#. type: lisp
8586#: doc/guix-cookbook.texi:4771 8606#: guix-git/doc/guix-cookbook.texi:4769
8587#, no-wrap 8607#, no-wrap
8588msgid "" 8608msgid ""
8589";; Return the package object defined above at the end of the module.\n" 8609";; Return the package object defined above at the end of the module.\n"
@@ -8593,56 +8613,56 @@ msgstr ""
8593"guile\n" 8613"guile\n"
8594 8614
8595#. type: Plain text 8615#. type: Plain text
8596#: doc/guix-cookbook.texi:4776 8616#: guix-git/doc/guix-cookbook.texi:4774
8597msgid "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:" 8617msgid "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:"
8598msgstr "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:" 8618msgstr "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:"
8599 8619
8600#. type: lisp 8620#. type: lisp
8601#: doc/guix-cookbook.texi:4779 8621#: guix-git/doc/guix-cookbook.texi:4777
8602#, no-wrap 8622#, no-wrap
8603msgid "guix build -L $PWD/.guix/modules guile-without-threads\n" 8623msgid "guix build -L $PWD/.guix/modules guile-without-threads\n"
8604msgstr "guix build -L $PWD/.guix/modules guile-without-threads\n" 8624msgstr "guix build -L $PWD/.guix/modules guile-without-threads\n"
8605 8625
8606#. type: section 8626#. type: section
8607#: doc/guix-cookbook.texi:4782 8627#: guix-git/doc/guix-cookbook.texi:4780
8608#, no-wrap 8628#, no-wrap
8609msgid "Level 3: Setting Up Continuous Integration" 8629msgid "Level 3: Setting Up Continuous Integration"
8610msgstr "Stufe 3: Kontinuierliche Integration einrichten" 8630msgstr "Stufe 3: Kontinuierliche Integration einrichten"
8611 8631
8612#. type: cindex 8632#. type: cindex
8613#: doc/guix-cookbook.texi:4784 8633#: guix-git/doc/guix-cookbook.texi:4782
8614#, no-wrap 8634#, no-wrap
8615msgid "continuous integration (CI)" 8635msgid "continuous integration (CI)"
8616msgstr "kontinuierliche Integration (CI)" 8636msgstr "kontinuierliche Integration (CI)"
8617 8637
8618#. type: Plain text 8638#. type: Plain text
8619#: doc/guix-cookbook.texi:4789 8639#: guix-git/doc/guix-cookbook.texi:4787
8620msgid "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." 8640msgid "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."
8621msgstr "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." 8641msgstr "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."
8622 8642
8623#. type: Plain text 8643#. type: Plain text
8624#: doc/guix-cookbook.texi:4795 8644#: guix-git/doc/guix-cookbook.texi:4793
8625msgid "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:" 8645msgid "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:"
8626msgstr "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:" 8646msgstr "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:"
8627 8647
8628#. type: lisp 8648#. type: lisp
8629#: doc/guix-cookbook.texi:4798 8649#: guix-git/doc/guix-cookbook.texi:4796
8630#, no-wrap 8650#, no-wrap
8631msgid "guix build -L $PWD/.guix/modules guile@@3.0.99-git\n" 8651msgid "guix build -L $PWD/.guix/modules guile@@3.0.99-git\n"
8632msgstr "guix build -L $PWD/.guix/modules guile@@3.0.99-git\n" 8652msgstr "guix build -L $PWD/.guix/modules guile@@3.0.99-git\n"
8633 8653
8634#. type: Plain text 8654#. type: Plain text
8635#: doc/guix-cookbook.texi:4802 8655#: guix-git/doc/guix-cookbook.texi:4800
8636msgid "Doing this works great and has the advantage of being easy to achieve on your favorite CI platform." 8656msgid "Doing this works great and has the advantage of being easy to achieve on your favorite CI platform."
8637msgstr "So klappt es gut und der Vorteil ist, dass Sie den Befehl leicht Ihrer bevorzugten CI-Plattform beibringen können." 8657msgstr "So klappt es gut und der Vorteil ist, dass Sie den Befehl leicht Ihrer bevorzugten CI-Plattform beibringen können."
8638 8658
8639#. type: Plain text 8659#. type: Plain text
8640#: doc/guix-cookbook.texi:4811 8660#: guix-git/doc/guix-cookbook.texi:4809
8641msgid "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:" 8661msgid "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:"
8642msgstr "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:" 8662msgstr "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:"
8643 8663
8644#. type: lisp 8664#. type: lisp
8645#: doc/guix-cookbook.texi:4823 8665#: guix-git/doc/guix-cookbook.texi:4821
8646#, no-wrap 8666#, no-wrap
8647msgid "" 8667msgid ""
8648";; Cuirass spec file to build all the packages of the ‘guile’ channel.\n" 8668";; Cuirass spec file to build all the packages of the ‘guile’ channel.\n"
@@ -8668,48 +8688,48 @@ msgstr ""
8668" %default-channels))))\n" 8688" %default-channels))))\n"
8669 8689
8670#. type: Plain text 8690#. type: Plain text
8671#: doc/guix-cookbook.texi:4826 8691#: guix-git/doc/guix-cookbook.texi:4824
8672msgid "It differs from what you'd do with other CI tools in two important ways:" 8692msgid "It differs from what you'd do with other CI tools in two important ways:"
8673msgstr "Es gibt zwei wichtige Unterschiede zu dem, was Sie mit anderen CI-Werkzeugen tun würden:" 8693msgstr "Es gibt zwei wichtige Unterschiede zu dem, was Sie mit anderen CI-Werkzeugen tun würden:"
8674 8694
8675#. type: itemize 8695#. type: itemize
8676#: doc/guix-cookbook.texi:4835 8696#: guix-git/doc/guix-cookbook.texi:4833
8677msgid "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." 8697msgid "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."
8678msgstr "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." 8698msgstr "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."
8679 8699
8680#. type: itemize 8700#. type: itemize
8681#: doc/guix-cookbook.texi:4840 8701#: guix-git/doc/guix-cookbook.texi:4838
8682msgid "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.)" 8702msgid "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.)"
8683msgstr "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.)" 8703msgstr "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.)"
8684 8704
8685#. type: Plain text 8705#. type: Plain text
8686#: doc/guix-cookbook.texi:4848 8706#: guix-git/doc/guix-cookbook.texi:4846
8687msgid "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." 8707msgid "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."
8688msgstr "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." 8708msgstr "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."
8689 8709
8690#. type: Plain text 8710#. type: Plain text
8691#: doc/guix-cookbook.texi:4855 8711#: guix-git/doc/guix-cookbook.texi:4853
8692msgid "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." 8712msgid "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."
8693msgstr "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." 8713msgstr "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."
8694 8714
8695#. type: section 8715#. type: section
8696#: doc/guix-cookbook.texi:4857 8716#: guix-git/doc/guix-cookbook.texi:4855
8697#, no-wrap 8717#, no-wrap
8698msgid "Bonus: Build manifest" 8718msgid "Bonus: Build manifest"
8699msgstr "Bonus: Erstellungs-Manifest" 8719msgstr "Bonus: Erstellungs-Manifest"
8700 8720
8701#. type: Plain text 8721#. type: Plain text
8702#: doc/guix-cookbook.texi:4864 8722#: guix-git/doc/guix-cookbook.texi:4862
8703msgid "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." 8723msgid "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."
8704msgstr "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." 8724msgstr "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."
8705 8725
8706#. type: Plain text 8726#. type: Plain text
8707#: doc/guix-cookbook.texi:4869 8727#: guix-git/doc/guix-cookbook.texi:4867
8708msgid "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:" 8728msgid "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:"
8709msgstr "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:" 8729msgstr "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:"
8710 8730
8711#. type: lisp 8731#. type: lisp
8712#: doc/guix-cookbook.texi:4872 8732#: guix-git/doc/guix-cookbook.texi:4870
8713#, no-wrap 8733#, no-wrap
8714msgid "" 8734msgid ""
8715";; This is ‘.guix/manifest.scm’.\n" 8735";; This is ‘.guix/manifest.scm’.\n"
@@ -8719,7 +8739,7 @@ msgstr ""
8719"\n" 8739"\n"
8720 8740
8721#. type: lisp 8741#. type: lisp
8722#: doc/guix-cookbook.texi:4876 8742#: guix-git/doc/guix-cookbook.texi:4874
8723#, no-wrap 8743#, no-wrap
8724msgid "" 8744msgid ""
8725"(use-modules (guix)\n" 8745"(use-modules (guix)\n"
@@ -8733,7 +8753,7 @@ msgstr ""
8733"\n" 8753"\n"
8734 8754
8735#. type: lisp 8755#. type: lisp
8736#: doc/guix-cookbook.texi:4890 8756#: guix-git/doc/guix-cookbook.texi:4888
8737#, no-wrap 8757#, no-wrap
8738msgid "" 8758msgid ""
8739"(define* (package->manifest-entry* package system\n" 8759"(define* (package->manifest-entry* package system\n"
@@ -8767,7 +8787,7 @@ msgstr ""
8767"\n" 8787"\n"
8768 8788
8769#. type: lisp 8789#. type: lisp
8770#: doc/guix-cookbook.texi:4895 8790#: guix-git/doc/guix-cookbook.texi:4893
8771#, no-wrap 8791#, no-wrap
8772msgid "" 8792msgid ""
8773"(define native-builds\n" 8793"(define native-builds\n"
@@ -8783,7 +8803,7 @@ msgstr ""
8783"\n" 8803"\n"
8784 8804
8785#. type: lisp 8805#. type: lisp
8786#: doc/guix-cookbook.texi:4912 8806#: guix-git/doc/guix-cookbook.texi:4910
8787#, no-wrap 8807#, no-wrap
8788msgid "" 8808msgid ""
8789" '(\"x86_64-linux\" \"i686-linux\"\n" 8809" '(\"x86_64-linux\" \"i686-linux\"\n"
@@ -8823,7 +8843,7 @@ msgstr ""
8823"\n" 8843"\n"
8824 8844
8825#. type: lisp 8845#. type: lisp
8826#: doc/guix-cookbook.texi:4923 8846#: guix-git/doc/guix-cookbook.texi:4921
8827#, no-wrap 8847#, no-wrap
8828msgid "" 8848msgid ""
8829"(define cross-builds\n" 8849"(define cross-builds\n"
@@ -8851,18 +8871,18 @@ msgstr ""
8851"\n" 8871"\n"
8852 8872
8853#. type: lisp 8873#. type: lisp
8854#: doc/guix-cookbook.texi:4925 8874#: guix-git/doc/guix-cookbook.texi:4923
8855#, no-wrap 8875#, no-wrap
8856msgid "(concatenate-manifests (list native-builds cross-builds))\n" 8876msgid "(concatenate-manifests (list native-builds cross-builds))\n"
8857msgstr "(concatenate-manifests (list native-builds cross-builds))\n" 8877msgstr "(concatenate-manifests (list native-builds cross-builds))\n"
8858 8878
8859#. type: Plain text 8879#. type: Plain text
8860#: doc/guix-cookbook.texi:4931 8880#: guix-git/doc/guix-cookbook.texi:4929
8861msgid "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:" 8881msgid "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:"
8862msgstr "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:" 8882msgstr "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:"
8863 8883
8864#. type: lisp 8884#. type: lisp
8865#: doc/guix-cookbook.texi:4943 8885#: guix-git/doc/guix-cookbook.texi:4941
8866#, no-wrap 8886#, no-wrap
8867msgid "" 8887msgid ""
8868";; Cuirass spec file to build all the packages of the ‘guile’ channel.\n" 8888";; Cuirass spec file to build all the packages of the ‘guile’ channel.\n"
@@ -8888,92 +8908,92 @@ msgstr ""
8888" %default-channels))))\n" 8908" %default-channels))))\n"
8889 8909
8890#. type: Plain text 8910#. type: Plain text
8891#: doc/guix-cookbook.texi:4948 8911#: guix-git/doc/guix-cookbook.texi:4946
8892msgid "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!" 8912msgid "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!"
8893msgstr "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!" 8913msgstr "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!"
8894 8914
8895#. type: Plain text 8915#. type: Plain text
8896#: doc/guix-cookbook.texi:4954 8916#: guix-git/doc/guix-cookbook.texi:4952
8897msgid "We picked Guile as the running example in this chapter and you can see the result here:" 8917msgid "We picked Guile as the running example in this chapter and you can see the result here:"
8898msgstr "In diesem Kapitel haben wir die Vorgehensweise auf Guile angewandt und das Ergebnis lässt sich hier bestaunen:" 8918msgstr "In diesem Kapitel haben wir die Vorgehensweise auf Guile angewandt und das Ergebnis lässt sich hier bestaunen:"
8899 8919
8900#. type: itemize 8920#. type: itemize
8901#: doc/guix-cookbook.texi:4958 8921#: guix-git/doc/guix-cookbook.texi:4956
8902msgid "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix-channel?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix-channel}};" 8922msgid "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix-channel?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix-channel}};"
8903msgstr "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix-channel?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix-channel}}," 8923msgstr "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix-channel?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix-channel}},"
8904 8924
8905#. type: itemize 8925#. type: itemize
8906#: doc/guix-cookbook.texi:4961 8926#: guix-git/doc/guix-cookbook.texi:4959
8907msgid "@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;" 8927msgid "@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;"
8908msgstr "@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," 8928msgstr "@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,"
8909 8929
8910#. type: itemize 8930#. type: itemize
8911#: doc/guix-cookbook.texi:4963 8931#: guix-git/doc/guix-cookbook.texi:4961
8912msgid "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix/manifest.scm?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix/manifest.scm}}." 8932msgid "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix/manifest.scm?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix/manifest.scm}}."
8913msgstr "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix/manifest.scm?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix/manifest.scm}}." 8933msgstr "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix/manifest.scm?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix/manifest.scm}}."
8914 8934
8915#. type: Plain text 8935#. type: Plain text
8916#: doc/guix-cookbook.texi:4972 8936#: guix-git/doc/guix-cookbook.texi:4970
8917msgid "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." 8937msgid "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."
8918msgstr "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}." 8938msgstr "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}."
8919 8939
8920#. type: Plain text 8940#. type: Plain text
8921#: doc/guix-cookbook.texi:4974 8941#: guix-git/doc/guix-cookbook.texi:4972
8922msgid "With a couple of files, we get support for:" 8942msgid "With a couple of files, we get support for:"
8923msgstr "Mit wenigen Dateien bekommen wir Unterstützung für:" 8943msgstr "Mit wenigen Dateien bekommen wir Unterstützung für:"
8924 8944
8925#. type: itemize 8945#. type: itemize
8926#: doc/guix-cookbook.texi:4978 8946#: guix-git/doc/guix-cookbook.texi:4976
8927msgid "development environments (@command{guix shell});" 8947msgid "development environments (@command{guix shell});"
8928msgstr "Entwicklungsumgebungen (@command{guix shell})," 8948msgstr "Entwicklungsumgebungen (@command{guix shell}),"
8929 8949
8930#. type: itemize 8950#. type: itemize
8931#: doc/guix-cookbook.texi:4981 8951#: guix-git/doc/guix-cookbook.texi:4979
8932msgid "pristine test builds, including for package variants and for cross-compilation (@command{guix build});" 8952msgid "pristine test builds, including for package variants and for cross-compilation (@command{guix build});"
8933msgstr "Test-Erstellungen in naturbelassener Umgebung, auch für Paketvarianten und cross-kompiliert (@command{guix build})," 8953msgstr "Test-Erstellungen in naturbelassener Umgebung, auch für Paketvarianten und cross-kompiliert (@command{guix build}),"
8934 8954
8935#. type: itemize 8955#. type: itemize
8936#: doc/guix-cookbook.texi:4983 8956#: guix-git/doc/guix-cookbook.texi:4981
8937msgid "continuous integration (with Cuirass or with some other tool);" 8957msgid "continuous integration (with Cuirass or with some other tool);"
8938msgstr "kontinuierliche Integration (ob mit Cuirass oder mit einem anderen Werkzeug)," 8958msgstr "kontinuierliche Integration (ob mit Cuirass oder mit einem anderen Werkzeug),"
8939 8959
8940#. type: itemize 8960#. type: itemize
8941#: doc/guix-cookbook.texi:4986 8961#: guix-git/doc/guix-cookbook.texi:4984
8942msgid "continuous delivery to users (@emph{via} the channel and with pre-built binaries);" 8962msgid "continuous delivery to users (@emph{via} the channel and with pre-built binaries);"
8943msgstr "kontinuierliche Auslieferung an Nutzer (über den Kanal und mit vorerstellten Binärdateien)," 8963msgstr "kontinuierliche Auslieferung an Nutzer (über den Kanal und mit vorerstellten Binärdateien),"
8944 8964
8945#. type: itemize 8965#. type: itemize
8946#: doc/guix-cookbook.texi:4989 8966#: guix-git/doc/guix-cookbook.texi:4987
8947msgid "generation of derivative build artifacts such as Docker images or Deb/RPM packages (@command{guix pack})." 8967msgid "generation of derivative build artifacts such as Docker images or Deb/RPM packages (@command{guix pack})."
8948msgstr "abgeleitete Erstellungsartefakte wie Docker-Abbildern oder Deb-/RPM-Pakete (@command{guix pack})." 8968msgstr "abgeleitete Erstellungsartefakte wie Docker-Abbildern oder Deb-/RPM-Pakete (@command{guix pack})."
8949 8969
8950#. type: Plain text 8970#. type: Plain text
8951#: doc/guix-cookbook.texi:4994 8971#: guix-git/doc/guix-cookbook.texi:4992
8952msgid "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!" 8972msgid "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!"
8953msgstr "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!" 8973msgstr "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!"
8954 8974
8955#. type: Plain text 8975#. type: Plain text
8956#: doc/guix-cookbook.texi:5002 8976#: guix-git/doc/guix-cookbook.texi:5000
8957msgid "Guix provides multiple tools to manage environment. This chapter demonstrate such utilities." 8977msgid "Guix provides multiple tools to manage environment. This chapter demonstrate such utilities."
8958msgstr "Guix liefert mehrere Werkzeuge mit, um die Umgebung zu verwalten. Dieses Kapitel zeigt solche Werkzeuge." 8978msgstr "Guix liefert mehrere Werkzeuge mit, um die Umgebung zu verwalten. Dieses Kapitel zeigt solche Werkzeuge."
8959 8979
8960#. type: Plain text 8980#. type: Plain text
8961#: doc/guix-cookbook.texi:5013 8981#: guix-git/doc/guix-cookbook.texi:5011
8962msgid "Guix provides a @samp{direnv} package, which could extend shell after directory change. This tool could be used to prepare a pure Guix environment." 8982msgid "Guix provides a @samp{direnv} package, which could extend shell after directory change. This tool could be used to prepare a pure Guix environment."
8963msgstr "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." 8983msgstr "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."
8964 8984
8965#. type: Plain text 8985#. type: Plain text
8966#: doc/guix-cookbook.texi:5019 8986#: guix-git/doc/guix-cookbook.texi:5017
8967msgid "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}." 8987msgid "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}."
8968msgstr "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." 8988msgstr "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."
8969 8989
8970#. type: Plain text 8990#. type: Plain text
8971#: doc/guix-cookbook.texi:5021 8991#: guix-git/doc/guix-cookbook.texi:5019
8972msgid "Create a @file{~/.direnvrc} with a Bash code:" 8992msgid "Create a @file{~/.direnvrc} with a Bash code:"
8973msgstr "Erstellen Sie eine @file{~/.direnvrc} mit einem Bash-Code darin:" 8993msgstr "Erstellen Sie eine @file{~/.direnvrc} mit einem Bash-Code darin:"
8974 8994
8975#. type: example 8995#. type: example
8976#: doc/guix-cookbook.texi:5039 8996#: guix-git/doc/guix-cookbook.texi:5037
8977#, no-wrap 8997#, no-wrap
8978msgid "" 8998msgid ""
8979"# Thanks <https://github.com/direnv/direnv/issues/73#issuecomment-152284914>\n" 8999"# Thanks <https://github.com/direnv/direnv/issues/73#issuecomment-152284914>\n"
@@ -9013,7 +9033,7 @@ msgstr ""
9013"\n" 9033"\n"
9014 9034
9015#. type: example 9035#. type: example
9016#: doc/guix-cookbook.texi:5044 9036#: guix-git/doc/guix-cookbook.texi:5042
9017#, no-wrap 9037#, no-wrap
9018msgid "" 9038msgid ""
9019"use_guix()\n" 9039"use_guix()\n"
@@ -9029,7 +9049,7 @@ msgstr ""
9029"\n" 9049"\n"
9030 9050
9031#. type: example 9051#. type: example
9032#: doc/guix-cookbook.texi:5047 9052#: guix-git/doc/guix-cookbook.texi:5045
9033#, no-wrap 9053#, no-wrap
9034msgid "" 9054msgid ""
9035" # Unset 'GUIX_PACKAGE_PATH'.\n" 9055" # Unset 'GUIX_PACKAGE_PATH'.\n"
@@ -9041,7 +9061,7 @@ msgstr ""
9041"\n" 9061"\n"
9042 9062
9043#. type: example 9063#. type: example
9044#: doc/guix-cookbook.texi:5056 9064#: guix-git/doc/guix-cookbook.texi:5054
9045#, no-wrap 9065#, no-wrap
9046msgid "" 9066msgid ""
9047" # Recreate a garbage collector root.\n" 9067" # Recreate a garbage collector root.\n"
@@ -9065,7 +9085,7 @@ msgstr ""
9065"\n" 9085"\n"
9066 9086
9067#. type: example 9087#. type: example
9068#: doc/guix-cookbook.texi:5071 9088#: guix-git/doc/guix-cookbook.texi:5069
9069#, no-wrap 9089#, no-wrap
9070msgid "" 9090msgid ""
9071" # Miscellaneous packages.\n" 9091" # Miscellaneous packages.\n"
@@ -9101,7 +9121,7 @@ msgstr ""
9101"\n" 9121"\n"
9102 9122
9103#. type: example 9123#. type: example
9104#: doc/guix-cookbook.texi:5074 9124#: guix-git/doc/guix-cookbook.texi:5072
9105#, no-wrap 9125#, no-wrap
9106msgid "" 9126msgid ""
9107" # Environment packages.\n" 9127" # Environment packages.\n"
@@ -9113,7 +9133,7 @@ msgstr ""
9113"\n" 9133"\n"
9114 9134
9115#. type: example 9135#. type: example
9116#: doc/guix-cookbook.texi:5077 9136#: guix-git/doc/guix-cookbook.texi:5075
9117#, no-wrap 9137#, no-wrap
9118msgid "" 9138msgid ""
9119" # Thanks <https://lists.gnu.org/archive/html/guix-devel/2016-09/msg00859.html>\n" 9139" # Thanks <https://lists.gnu.org/archive/html/guix-devel/2016-09/msg00859.html>\n"
@@ -9125,7 +9145,7 @@ msgstr ""
9125"\n" 9145"\n"
9126 9146
9127#. type: example 9147#. type: example
9128#: doc/guix-cookbook.texi:5084 9148#: guix-git/doc/guix-cookbook.texi:5082
9129#, no-wrap 9149#, no-wrap
9130msgid "" 9150msgid ""
9131" # Predefine configure flags.\n" 9151" # Predefine configure flags.\n"
@@ -9145,7 +9165,7 @@ msgstr ""
9145"\n" 9165"\n"
9146 9166
9147#. type: example 9167#. type: example
9148#: doc/guix-cookbook.texi:5095 9168#: guix-git/doc/guix-cookbook.texi:5093
9149#, no-wrap 9169#, no-wrap
9150msgid "" 9170msgid ""
9151" # Run make and optionally build something.\n" 9171" # Run make and optionally build something.\n"
@@ -9173,7 +9193,7 @@ msgstr ""
9173"\n" 9193"\n"
9174 9194
9175#. type: example 9195#. type: example
9176#: doc/guix-cookbook.texi:5102 9196#: guix-git/doc/guix-cookbook.texi:5100
9177#, no-wrap 9197#, no-wrap
9178msgid "" 9198msgid ""
9179" # Predefine push Git command.\n" 9199" # Predefine push Git command.\n"
@@ -9193,7 +9213,7 @@ msgstr ""
9193"\n" 9213"\n"
9194 9214
9195#. type: example 9215#. type: example
9196#: doc/guix-cookbook.texi:5105 9216#: guix-git/doc/guix-cookbook.texi:5103
9197#, no-wrap 9217#, no-wrap
9198msgid "" 9218msgid ""
9199" clear # Clean up the screen.\n" 9219" clear # Clean up the screen.\n"
@@ -9205,7 +9225,7 @@ msgstr ""
9205"\n" 9225"\n"
9206 9226
9207#. type: example 9227#. type: example
9208#: doc/guix-cookbook.texi:5113 9228#: guix-git/doc/guix-cookbook.texi:5111
9209#, no-wrap 9229#, no-wrap
9210msgid "" 9230msgid ""
9211" # Show commands help.\n" 9231" # Show commands help.\n"
@@ -9225,81 +9245,81 @@ msgstr ""
9225"@}\n" 9245"@}\n"
9226 9246
9227#. type: Plain text 9247#. type: Plain text
9228#: doc/guix-cookbook.texi:5117 9248#: guix-git/doc/guix-cookbook.texi:5115
9229msgid "Every project containing @file{.envrc} with a string @code{use guix} will have predefined environment variables and procedures." 9249msgid "Every project containing @file{.envrc} with a string @code{use guix} will have predefined environment variables and procedures."
9230msgstr "Jedes Projekt, das eine @file{.envrc} mit einer Zeichenkette @code{use guix} enthält, wird vordefinierte Umgebungsvariable und Prozeduren verwenden." 9250msgstr "Jedes Projekt, das eine @file{.envrc} mit einer Zeichenkette @code{use guix} enthält, wird vordefinierte Umgebungsvariable und Prozeduren verwenden."
9231 9251
9232#. type: Plain text 9252#. type: Plain text
9233#: doc/guix-cookbook.texi:5119 9253#: guix-git/doc/guix-cookbook.texi:5117
9234msgid "Run @command{direnv allow} to setup the environment for the first time." 9254msgid "Run @command{direnv allow} to setup the environment for the first time."
9235msgstr "Führen Sie @command{direnv allow} aus, um die Umgebung bei der ersten Nutzung einzurichten." 9255msgstr "Führen Sie @command{direnv allow} aus, um die Umgebung bei der ersten Nutzung einzurichten."
9236 9256
9237#. type: cindex 9257#. type: cindex
9238#: doc/guix-cookbook.texi:5125 9258#: guix-git/doc/guix-cookbook.texi:5123
9239#, no-wrap 9259#, no-wrap
9240msgid "cluster installation" 9260msgid "cluster installation"
9241msgstr "Installation auf einem Cluster" 9261msgstr "Installation auf einem Cluster"
9242 9262
9243#. type: cindex 9263#. type: cindex
9244#: doc/guix-cookbook.texi:5126 9264#: guix-git/doc/guix-cookbook.texi:5124
9245#, no-wrap 9265#, no-wrap
9246msgid "high-performance computing, HPC" 9266msgid "high-performance computing, HPC"
9247msgstr "Hochleistungsrechnen (HPC)" 9267msgstr "Hochleistungsrechnen (HPC)"
9248 9268
9249#. type: cindex 9269#. type: cindex
9250#: doc/guix-cookbook.texi:5127 9270#: guix-git/doc/guix-cookbook.texi:5125
9251#, no-wrap 9271#, no-wrap
9252msgid "HPC, high-performance computing" 9272msgid "HPC, high-performance computing"
9253msgstr "HPC, Hochleistungsrechnen" 9273msgstr "HPC, Hochleistungsrechnen"
9254 9274
9255#. type: Plain text 9275#. type: Plain text
9256#: doc/guix-cookbook.texi:5133 9276#: guix-git/doc/guix-cookbook.texi:5131
9257msgid "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." 9277msgid "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."
9258msgstr "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." 9278msgstr "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."
9259 9279
9260#. type: Plain text 9280#. type: Plain text
9261#: doc/guix-cookbook.texi:5139 9281#: guix-git/doc/guix-cookbook.texi:5137
9262msgid "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}.}." 9282msgid "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}.}."
9263msgstr "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}.}." 9283msgstr "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}.}."
9264 9284
9265#. type: quotation 9285#. type: quotation
9266#: doc/guix-cookbook.texi:5143 9286#: guix-git/doc/guix-cookbook.texi:5141
9267msgid "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." 9287msgid "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."
9268msgstr "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." 9288msgstr "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."
9269 9289
9270#. type: Plain text 9290#. type: Plain text
9271#: doc/guix-cookbook.texi:5159 9291#: guix-git/doc/guix-cookbook.texi:5157
9272msgid "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." 9292msgid "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."
9273msgstr "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." 9293msgstr "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."
9274 9294
9275#. type: Plain text 9295#. type: Plain text
9276#: doc/guix-cookbook.texi:5169 9296#: guix-git/doc/guix-cookbook.texi:5167
9277msgid "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." 9297msgid "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."
9278msgstr "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." 9298msgstr "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."
9279 9299
9280#. type: Plain text 9300#. type: Plain text
9281#: doc/guix-cookbook.texi:5174 9301#: guix-git/doc/guix-cookbook.texi:5172
9282msgid "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." 9302msgid "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."
9283msgstr "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." 9303msgstr "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."
9284 9304
9285#. type: Plain text 9305#. type: Plain text
9286#: doc/guix-cookbook.texi:5182 9306#: guix-git/doc/guix-cookbook.texi:5180
9287msgid "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:" 9307msgid "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:"
9288msgstr "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:" 9308msgstr "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:"
9289 9309
9290#. type: example 9310#. type: example
9291#: doc/guix-cookbook.texi:5185 9311#: guix-git/doc/guix-cookbook.texi:5183
9292#, no-wrap 9312#, no-wrap
9293msgid "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" 9313msgid "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"
9294msgstr "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" 9314msgstr "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"
9295 9315
9296#. type: Plain text 9316#. type: Plain text
9297#: doc/guix-cookbook.texi:5188 9317#: guix-git/doc/guix-cookbook.texi:5186
9298msgid "For these changes to take effect, the service needs to be restarted:" 9318msgid "For these changes to take effect, the service needs to be restarted:"
9299msgstr "Die Änderungen wirken sich erst aus, wenn der Dienst neu gestartet wurde:" 9319msgstr "Die Änderungen wirken sich erst aus, wenn der Dienst neu gestartet wurde:"
9300 9320
9301#. type: example 9321#. type: example
9302#: doc/guix-cookbook.texi:5192 9322#: guix-git/doc/guix-cookbook.texi:5190
9303#, no-wrap 9323#, no-wrap
9304msgid "" 9324msgid ""
9305"systemctl daemon-reload\n" 9325"systemctl daemon-reload\n"
@@ -9309,17 +9329,17 @@ msgstr ""
9309"systemctl restart guix-daemon\n" 9329"systemctl restart guix-daemon\n"
9310 9330
9311#. type: quotation 9331#. type: quotation
9312#: doc/guix-cookbook.texi:5201 9332#: guix-git/doc/guix-cookbook.texi:5199
9313msgid "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!" 9333msgid "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!"
9314msgstr "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!" 9334msgstr "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!"
9315 9335
9316#. type: Plain text 9336#. type: Plain text
9317#: doc/guix-cookbook.texi:5206 9337#: guix-git/doc/guix-cookbook.texi:5204
9318msgid "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:" 9338msgid "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:"
9319msgstr "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:" 9339msgstr "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:"
9320 9340
9321#. type: example 9341#. type: example
9322#: doc/guix-cookbook.texi:5211 9342#: guix-git/doc/guix-cookbook.texi:5209
9323#, no-wrap 9343#, no-wrap
9324msgid "" 9344msgid ""
9325"/gnu/store *(ro)\n" 9345"/gnu/store *(ro)\n"
@@ -9331,33 +9351,33 @@ msgstr ""
9331"/var/log/guix *(ro)\n" 9351"/var/log/guix *(ro)\n"
9332 9352
9333#. type: Plain text 9353#. type: Plain text
9334#: doc/guix-cookbook.texi:5218 9354#: guix-git/doc/guix-cookbook.texi:5216
9335msgid "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." 9355msgid "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."
9336msgstr "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." 9356msgstr "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."
9337 9357
9338#. type: Plain text 9358#. type: Plain text
9339#: doc/guix-cookbook.texi:5228 9359#: guix-git/doc/guix-cookbook.texi:5226
9340msgid "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." 9360msgid "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."
9341msgstr "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." 9361msgstr "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."
9342 9362
9343#. type: Plain text 9363#. type: Plain text
9344#: doc/guix-cookbook.texi:5233 9364#: guix-git/doc/guix-cookbook.texi:5231
9345msgid "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:" 9365msgid "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:"
9346msgstr "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:" 9366msgstr "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:"
9347 9367
9348#. type: example 9368#. type: example
9349#: doc/guix-cookbook.texi:5236 9369#: guix-git/doc/guix-cookbook.texi:5234
9350#, no-wrap 9370#, no-wrap
9351msgid "root@@master# crontab -e\n" 9371msgid "root@@master# crontab -e\n"
9352msgstr "root@@master# crontab -e\n" 9372msgstr "root@@master# crontab -e\n"
9353 9373
9354#. type: Plain text 9374#. type: Plain text
9355#: doc/guix-cookbook.texi:5240 9375#: guix-git/doc/guix-cookbook.texi:5238
9356msgid "... with something like this:" 9376msgid "... with something like this:"
9357msgstr "… und schreiben Sie etwa:" 9377msgstr "… und schreiben Sie etwa:"
9358 9378
9359#. type: example 9379#. type: example
9360#: doc/guix-cookbook.texi:5245 9380#: guix-git/doc/guix-cookbook.texi:5243
9361#, no-wrap 9381#, no-wrap
9362msgid "" 9382msgid ""
9363"# Every day at 5AM, run the garbage collector to make sure\n" 9383"# Every day at 5AM, run the garbage collector to make sure\n"
@@ -9369,17 +9389,17 @@ msgstr ""
9369"0 5 * * 1 /usr/local/bin/guix gc -F10G\n" 9389"0 5 * * 1 /usr/local/bin/guix gc -F10G\n"
9370 9390
9371#. type: Plain text 9391#. type: Plain text
9372#: doc/guix-cookbook.texi:5248 9392#: guix-git/doc/guix-cookbook.texi:5246
9373msgid "We're done with the head node! Let's look at compute nodes now." 9393msgid "We're done with the head node! Let's look at compute nodes now."
9374msgstr "So viel zum Zentralrechner! Jetzt geht’s an die Arbeitsknoten." 9394msgstr "So viel zum Zentralrechner! Jetzt geht’s an die Arbeitsknoten."
9375 9395
9376#. type: Plain text 9396#. type: Plain text
9377#: doc/guix-cookbook.texi:5255 9397#: guix-git/doc/guix-cookbook.texi:5253
9378msgid "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}}:" 9398msgid "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}}:"
9379msgstr "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:" 9399msgstr "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:"
9380 9400
9381#. type: example 9401#. type: example
9382#: doc/guix-cookbook.texi:5260 9402#: guix-git/doc/guix-cookbook.texi:5258
9383#, no-wrap 9403#, no-wrap
9384msgid "" 9404msgid ""
9385"@var{head-node}:/gnu/store /gnu/store nfs defaults,_netdev,vers=3 0 0\n" 9405"@var{head-node}:/gnu/store /gnu/store nfs defaults,_netdev,vers=3 0 0\n"
@@ -9391,17 +9411,17 @@ msgstr ""
9391"@var{zentralrechner}:/var/log/guix /var/log/guix nfs defaults,_netdev,vers=3 0 0\n" 9411"@var{zentralrechner}:/var/log/guix /var/log/guix nfs defaults,_netdev,vers=3 0 0\n"
9392 9412
9393#. type: Plain text 9413#. type: Plain text
9394#: doc/guix-cookbook.texi:5266 9414#: guix-git/doc/guix-cookbook.texi:5264
9395msgid "... 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." 9415msgid "... 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."
9396msgstr "… 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." 9416msgstr "… 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."
9397 9417
9398#. type: Plain text 9418#. type: Plain text
9399#: doc/guix-cookbook.texi:5272 9419#: guix-git/doc/guix-cookbook.texi:5270
9400msgid "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}:" 9420msgid "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}:"
9401msgstr "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:" 9421msgstr "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:"
9402 9422
9403#. type: example 9423#. type: example
9404#: doc/guix-cookbook.texi:5277 9424#: guix-git/doc/guix-cookbook.texi:5275
9405#, no-wrap 9425#, no-wrap
9406msgid "" 9426msgid ""
9407"mkdir -p /usr/local/bin\n" 9427"mkdir -p /usr/local/bin\n"
@@ -9413,12 +9433,12 @@ msgstr ""
9413" /usr/local/bin/guix\n" 9433" /usr/local/bin/guix\n"
9414 9434
9415#. type: Plain text 9435#. type: Plain text
9416#: doc/guix-cookbook.texi:5281 9436#: guix-git/doc/guix-cookbook.texi:5279
9417msgid "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}:" 9437msgid "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}:"
9418msgstr "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:" 9438msgstr "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:"
9419 9439
9420#. type: example 9440#. type: example
9421#: doc/guix-cookbook.texi:5285 9441#: guix-git/doc/guix-cookbook.texi:5283
9422#, no-wrap 9442#, no-wrap
9423msgid "" 9443msgid ""
9424"GUIX_DAEMON_SOCKET=\"guix://@var{head-node}\"\n" 9444"GUIX_DAEMON_SOCKET=\"guix://@var{head-node}\"\n"
@@ -9428,12 +9448,12 @@ msgstr ""
9428"export GUIX_DAEMON_SOCKET\n" 9448"export GUIX_DAEMON_SOCKET\n"
9429 9449
9430#. type: Plain text 9450#. type: Plain text
9431#: doc/guix-cookbook.texi:5290 9451#: guix-git/doc/guix-cookbook.texi:5288
9432msgid "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}):" 9452msgid "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}):"
9433msgstr "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}):" 9453msgstr "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}):"
9434 9454
9435#. type: example 9455#. type: example
9436#: doc/guix-cookbook.texi:5294 9456#: guix-git/doc/guix-cookbook.texi:5292
9437#, no-wrap 9457#, no-wrap
9438msgid "" 9458msgid ""
9439"GUIX_LOCPATH=/var/guix/profiles/per-user/root/guix-profile/lib/locale\n" 9459"GUIX_LOCPATH=/var/guix/profiles/per-user/root/guix-profile/lib/locale\n"
@@ -9445,7 +9465,7 @@ msgstr ""
9445"\n" 9465"\n"
9446 9466
9447#. type: example 9467#. type: example
9448#: doc/guix-cookbook.texi:5299 9468#: guix-git/doc/guix-cookbook.texi:5297
9449#, no-wrap 9469#, no-wrap
9450msgid "" 9470msgid ""
9451"# Here we must use a valid locale name. Try \"ls $GUIX_LOCPATH/*\"\n" 9471"# Here we must use a valid locale name. Try \"ls $GUIX_LOCPATH/*\"\n"
@@ -9459,12 +9479,12 @@ msgstr ""
9459"export LC_ALL\n" 9479"export LC_ALL\n"
9460 9480
9461#. type: Plain text 9481#. type: Plain text
9462#: doc/guix-cookbook.texi:5307 9482#: guix-git/doc/guix-cookbook.texi:5305
9463msgid "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}:" 9483msgid "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}:"
9464msgstr "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:" 9484msgstr "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:"
9465 9485
9466#. type: example 9486#. type: example
9467#: doc/guix-cookbook.texi:5315 9487#: guix-git/doc/guix-cookbook.texi:5313
9468#, no-wrap 9488#, no-wrap
9469msgid "" 9489msgid ""
9470"for GUIX_PROFILE in \"$HOME/.config/guix/current\" \"$HOME/.guix-profile\"\n" 9490"for GUIX_PROFILE in \"$HOME/.config/guix/current\" \"$HOME/.guix-profile\"\n"
@@ -9482,65 +9502,65 @@ msgstr ""
9482"done\n" 9502"done\n"
9483 9503
9484#. type: Plain text 9504#. type: Plain text
9485#: doc/guix-cookbook.texi:5319 9505#: guix-git/doc/guix-cookbook.texi:5317
9486msgid "Last but not least, Guix provides command-line completion notably for Bash and zsh. In @code{/etc/bashrc}, consider adding this line:" 9506msgid "Last but not least, Guix provides command-line completion notably for Bash and zsh. In @code{/etc/bashrc}, consider adding this line:"
9487msgstr "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:" 9507msgstr "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:"
9488 9508
9489#. type: verbatim 9509#. type: verbatim
9490#: doc/guix-cookbook.texi:5322 9510#: guix-git/doc/guix-cookbook.texi:5320
9491#, no-wrap 9511#, no-wrap
9492msgid ". /var/guix/profiles/per-user/root/current-guix/etc/bash_completion.d/guix\n" 9512msgid ". /var/guix/profiles/per-user/root/current-guix/etc/bash_completion.d/guix\n"
9493msgstr ". /var/guix/profiles/per-user/root/current-guix/etc/bash_completion.d/guix\n" 9513msgstr ". /var/guix/profiles/per-user/root/current-guix/etc/bash_completion.d/guix\n"
9494 9514
9495#. type: Plain text 9515#. type: Plain text
9496#: doc/guix-cookbook.texi:5325 9516#: guix-git/doc/guix-cookbook.texi:5323
9497msgid "Voilà!" 9517msgid "Voilà!"
9498msgstr "Erledigt!" 9518msgstr "Erledigt!"
9499 9519
9500#. type: Plain text 9520#. type: Plain text
9501#: doc/guix-cookbook.texi:5328 9521#: guix-git/doc/guix-cookbook.texi:5326
9502msgid "You can check that everything's in place by logging in on a compute node and running:" 9522msgid "You can check that everything's in place by logging in on a compute node and running:"
9503msgstr "Überprüfen Sie, dass alles klappt, indem Sie sich auf einem der Arbeitsrechner anmelden und dies ausführen:" 9523msgstr "Überprüfen Sie, dass alles klappt, indem Sie sich auf einem der Arbeitsrechner anmelden und dies ausführen:"
9504 9524
9505#. type: example 9525#. type: example
9506#: doc/guix-cookbook.texi:5331 9526#: guix-git/doc/guix-cookbook.texi:5329
9507#, no-wrap 9527#, no-wrap
9508msgid "guix install hello\n" 9528msgid "guix install hello\n"
9509msgstr "guix install hello\n" 9529msgstr "guix install hello\n"
9510 9530
9511#. type: Plain text 9531#. type: Plain text
9512#: doc/guix-cookbook.texi:5337 9532#: guix-git/doc/guix-cookbook.texi:5335
9513msgid "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." 9533msgid "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."
9514msgstr "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." 9534msgstr "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."
9515 9535
9516#. type: section 9536#. type: section
9517#: doc/guix-cookbook.texi:5339 9537#: guix-git/doc/guix-cookbook.texi:5337
9518#, no-wrap 9538#, no-wrap
9519msgid "Network Access" 9539msgid "Network Access"
9520msgstr "Netzwerkzugriff" 9540msgstr "Netzwerkzugriff"
9521 9541
9522#. type: Plain text 9542#. type: Plain text
9523#: doc/guix-cookbook.texi:5344 9543#: guix-git/doc/guix-cookbook.texi:5342
9524msgid "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." 9544msgid "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."
9525msgstr "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." 9545msgstr "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."
9526 9546
9527#. type: Plain text 9547#. type: Plain text
9528#: doc/guix-cookbook.texi:5350 9548#: guix-git/doc/guix-cookbook.texi:5348
9529msgid "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." 9549msgid "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."
9530msgstr "Ü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." 9550msgstr "Ü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."
9531 9551
9532#. type: Plain text 9552#. type: Plain text
9533#: doc/guix-cookbook.texi:5355 9553#: guix-git/doc/guix-cookbook.texi:5353
9534msgid "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." 9554msgid "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."
9535msgstr "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." 9555msgstr "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."
9536 9556
9537#. type: Plain text 9557#. type: Plain text
9538#: doc/guix-cookbook.texi:5364 9558#: guix-git/doc/guix-cookbook.texi:5362
9539msgid "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:" 9559msgid "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:"
9540msgstr "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:" 9560msgstr "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:"
9541 9561
9542#. type: verbatim 9562#. type: verbatim
9543#: doc/guix-cookbook.texi:5368 9563#: guix-git/doc/guix-cookbook.texi:5366
9544#, no-wrap 9564#, no-wrap
9545msgid "" 9565msgid ""
9546"GUIX_DAEMON_SOCKET=ssh://compute-node.example.org \\\n" 9566"GUIX_DAEMON_SOCKET=ssh://compute-node.example.org \\\n"
@@ -9550,17 +9570,17 @@ msgstr ""
9550" guix download http://starpu.gforge.inria.fr/files/starpu-1.2.3/starpu-1.2.3.tar.gz\n" 9570" guix download http://starpu.gforge.inria.fr/files/starpu-1.2.3/starpu-1.2.3.tar.gz\n"
9551 9571
9552#. type: Plain text 9572#. type: Plain text
9553#: doc/guix-cookbook.texi:5372 9573#: guix-git/doc/guix-cookbook.texi:5370
9554msgid "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." 9574msgid "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."
9555msgstr "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." 9575msgstr "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."
9556 9576
9557#. type: Plain text 9577#. type: Plain text
9558#: doc/guix-cookbook.texi:5379 9578#: guix-git/doc/guix-cookbook.texi:5377
9559msgid "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:" 9579msgid "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:"
9560msgstr "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:" 9580msgstr "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:"
9561 9581
9562#. type: example 9582#. type: example
9563#: doc/guix-cookbook.texi:5382 9583#: guix-git/doc/guix-cookbook.texi:5380
9564#, no-wrap 9584#, no-wrap
9565msgid "" 9585msgid ""
9566"$ guix build --sources=transitive openmpi\n" 9586"$ guix build --sources=transitive openmpi\n"
@@ -9570,7 +9590,7 @@ msgstr ""
9570"\n" 9590"\n"
9571 9591
9572#. type: example 9592#. type: example
9573#: doc/guix-cookbook.texi:5384 9593#: guix-git/doc/guix-cookbook.texi:5382
9574#, no-wrap 9594#, no-wrap
9575msgid "" 9595msgid ""
9576"@dots{}\n" 9596"@dots{}\n"
@@ -9580,7 +9600,7 @@ msgstr ""
9580"\n" 9600"\n"
9581 9601
9582#. type: example 9602#. type: example
9583#: doc/guix-cookbook.texi:5396 9603#: guix-git/doc/guix-cookbook.texi:5394
9584#, no-wrap 9604#, no-wrap
9585msgid "" 9605msgid ""
9586"/gnu/store/xc17sm60fb8nxadc4qy0c7rqph499z8s-openmpi-1.10.7.tar.bz2\n" 9606"/gnu/store/xc17sm60fb8nxadc4qy0c7rqph499z8s-openmpi-1.10.7.tar.bz2\n"
@@ -9608,17 +9628,17 @@ msgstr ""
9608"…\n" 9628"…\n"
9609 9629
9610#. type: Plain text 9630#. type: Plain text
9611#: doc/guix-cookbook.texi:5400 9631#: guix-git/doc/guix-cookbook.texi:5398
9612msgid "(In case you're wondering, that's more than 320@ MiB of @emph{compressed} source code.)" 9632msgid "(In case you're wondering, that's more than 320@ MiB of @emph{compressed} source code.)"
9613msgstr "(Wenn Sie es genauer wissen wollen, haben wir hier mehr als 320@ MiB @emph{komprimierten} Quellcodes.)" 9633msgstr "(Wenn Sie es genauer wissen wollen, haben wir hier mehr als 320@ MiB @emph{komprimierten} Quellcodes.)"
9614 9634
9615#. type: Plain text 9635#. type: Plain text
9616#: doc/guix-cookbook.texi:5403 9636#: guix-git/doc/guix-cookbook.texi:5401
9617msgid "We can then make a big archive containing all of this (@pxref{Invoking guix archive,,, guix, GNU Guix Reference Manual}):" 9637msgid "We can then make a big archive containing all of this (@pxref{Invoking guix archive,,, guix, GNU Guix Reference Manual}):"
9618msgstr "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}):" 9638msgstr "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}):"
9619 9639
9620#. type: verbatim 9640#. type: verbatim
9621#: doc/guix-cookbook.texi:5408 9641#: guix-git/doc/guix-cookbook.texi:5406
9622#, no-wrap 9642#, no-wrap
9623msgid "" 9643msgid ""
9624"$ guix archive --export \\\n" 9644"$ guix archive --export \\\n"
@@ -9630,71 +9650,71 @@ msgstr ""
9630" > openmpi-quellcode.nar\n" 9650" > openmpi-quellcode.nar\n"
9631 9651
9632#. type: Plain text 9652#. type: Plain text
9633#: doc/guix-cookbook.texi:5412 9653#: guix-git/doc/guix-cookbook.texi:5410
9634msgid "@dots{} and we can eventually transfer that archive to the cluster on removable storage and unpack it there:" 9654msgid "@dots{} and we can eventually transfer that archive to the cluster on removable storage and unpack it there:"
9635msgstr "… und dieses Archiv können wir dann mittels Wechseldatenträgern auf den Cluster transportieren und dort entpacken:" 9655msgstr "… und dieses Archiv können wir dann mittels Wechseldatenträgern auf den Cluster transportieren und dort entpacken:"
9636 9656
9637#. type: verbatim 9657#. type: verbatim
9638#: doc/guix-cookbook.texi:5415 9658#: guix-git/doc/guix-cookbook.texi:5413
9639#, no-wrap 9659#, no-wrap
9640msgid "$ guix archive --import < openmpi-source-code.nar\n" 9660msgid "$ guix archive --import < openmpi-source-code.nar\n"
9641msgstr "$ guix archive --import < openmpi-quellcode.nar\n" 9661msgstr "$ guix archive --import < openmpi-quellcode.nar\n"
9642 9662
9643#. type: Plain text 9663#. type: Plain text
9644#: doc/guix-cookbook.texi:5419 9664#: guix-git/doc/guix-cookbook.texi:5417
9645msgid "This process has to be repeated every time new source code needs to be brought to the cluster." 9665msgid "This process has to be repeated every time new source code needs to be brought to the cluster."
9646msgstr "Wiederholen Sie diesen Vorgang, wann immer Sie neuen Quellcode auf den Cluster schaffen müssen." 9666msgstr "Wiederholen Sie diesen Vorgang, wann immer Sie neuen Quellcode auf den Cluster schaffen müssen."
9647 9667
9648#. type: Plain text 9668#. type: Plain text
9649#: doc/guix-cookbook.texi:5423 9669#: guix-git/doc/guix-cookbook.texi:5421
9650msgid "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." 9670msgid "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."
9651msgstr "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." 9671msgstr "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."
9652 9672
9653#. type: section 9673#. type: section
9654#: doc/guix-cookbook.texi:5425 9674#: guix-git/doc/guix-cookbook.texi:5423
9655#, no-wrap 9675#, no-wrap
9656msgid "Disk Usage" 9676msgid "Disk Usage"
9657msgstr "Speicherplatz" 9677msgstr "Speicherplatz"
9658 9678
9659#. type: cindex 9679#. type: cindex
9660#: doc/guix-cookbook.texi:5427 9680#: guix-git/doc/guix-cookbook.texi:5425
9661#, no-wrap 9681#, no-wrap
9662msgid "disk usage, on a cluster" 9682msgid "disk usage, on a cluster"
9663msgstr "Speicherplatz, auf einem Cluster" 9683msgstr "Speicherplatz, auf einem Cluster"
9664 9684
9665#. type: Plain text 9685#. type: Plain text
9666#: doc/guix-cookbook.texi:5434 9686#: guix-git/doc/guix-cookbook.texi:5432
9667msgid "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." 9687msgid "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."
9668msgstr "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." 9688msgstr "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."
9669 9689
9670#. type: Plain text 9690#. type: Plain text
9671#: doc/guix-cookbook.texi:5439 9691#: guix-git/doc/guix-cookbook.texi:5437
9672msgid "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." 9692msgid "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."
9673msgstr "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." 9693msgstr "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."
9674 9694
9675#. type: Plain text 9695#. type: Plain text
9676#: doc/guix-cookbook.texi:5446 9696#: guix-git/doc/guix-cookbook.texi:5444
9677msgid "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}." 9697msgid "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}."
9678msgstr "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." 9698msgstr "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."
9679 9699
9680#. type: Plain text 9700#. type: Plain text
9681#: doc/guix-cookbook.texi:5450 9701#: guix-git/doc/guix-cookbook.texi:5448
9682msgid "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:" 9702msgid "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:"
9683msgstr "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:" 9703msgstr "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:"
9684 9704
9685#. type: example 9705#. type: example
9686#: doc/guix-cookbook.texi:5453 9706#: guix-git/doc/guix-cookbook.texi:5451
9687#, no-wrap 9707#, no-wrap
9688msgid "guix package --delete-generations=2m\n" 9708msgid "guix package --delete-generations=2m\n"
9689msgstr "guix package --delete-generations=2m\n" 9709msgstr "guix package --delete-generations=2m\n"
9690 9710
9691#. type: Plain text 9711#. type: Plain text
9692#: doc/guix-cookbook.texi:5458 9712#: guix-git/doc/guix-cookbook.texi:5456
9693msgid "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}:" 9713msgid "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}:"
9694msgstr "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:" 9714msgstr "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:"
9695 9715
9696#. type: example 9716#. type: example
9697#: doc/guix-cookbook.texi:5462 9717#: guix-git/doc/guix-cookbook.texi:5460
9698#, no-wrap 9718#, no-wrap
9699msgid "" 9719msgid ""
9700"guix pull\n" 9720"guix pull\n"
@@ -9704,76 +9724,76 @@ msgstr ""
9704"guix upgrade\n" 9724"guix upgrade\n"
9705 9725
9706#. type: Plain text 9726#. type: Plain text
9707#: doc/guix-cookbook.texi:5468 9727#: guix-git/doc/guix-cookbook.texi:5466
9708msgid "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." 9728msgid "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."
9709msgstr "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." 9729msgstr "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."
9710 9730
9711#. type: section 9731#. type: section
9712#: doc/guix-cookbook.texi:5470 9732#: guix-git/doc/guix-cookbook.texi:5468
9713#, no-wrap 9733#, no-wrap
9714msgid "Security Considerations" 9734msgid "Security Considerations"
9715msgstr "Sicherheitsüberlegungen" 9735msgstr "Sicherheitsüberlegungen"
9716 9736
9717#. type: cindex 9737#. type: cindex
9718#: doc/guix-cookbook.texi:5472 9738#: guix-git/doc/guix-cookbook.texi:5470
9719#, no-wrap 9739#, no-wrap
9720msgid "security, on a cluster" 9740msgid "security, on a cluster"
9721msgstr "Sicherheit, auf einem Cluster" 9741msgstr "Sicherheit, auf einem Cluster"
9722 9742
9723#. type: Plain text 9743#. type: Plain text
9724#: doc/guix-cookbook.texi:5477 9744#: guix-git/doc/guix-cookbook.texi:5475
9725msgid "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." 9745msgid "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."
9726msgstr "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." 9746msgstr "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."
9727 9747
9728#. type: Plain text 9748#. type: Plain text
9729#: doc/guix-cookbook.texi:5482 9749#: guix-git/doc/guix-cookbook.texi:5480
9730msgid "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}." 9750msgid "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}."
9731msgstr "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." 9751msgstr "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."
9732 9752
9733#. type: Plain text 9753#. type: Plain text
9734#: doc/guix-cookbook.texi:5488 9754#: guix-git/doc/guix-cookbook.texi:5486
9735msgid "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:" 9755msgid "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:"
9736msgstr "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:" 9756msgstr "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:"
9737 9757
9738#. type: example 9758#. type: example
9739#: doc/guix-cookbook.texi:5491 9759#: guix-git/doc/guix-cookbook.texi:5489
9740#, no-wrap 9760#, no-wrap
9741msgid "guix gc --referrers /gnu/store/…-glibc-2.25\n" 9761msgid "guix gc --referrers /gnu/store/…-glibc-2.25\n"
9742msgstr "guix gc --referrers /gnu/store/…-glibc-2.25\n" 9762msgstr "guix gc --referrers /gnu/store/…-glibc-2.25\n"
9743 9763
9744#. type: Plain text 9764#. type: Plain text
9745#: doc/guix-cookbook.texi:5495 9765#: guix-git/doc/guix-cookbook.texi:5493
9746msgid "This will report whether profiles exist that refer to this specific glibc variant." 9766msgid "This will report whether profiles exist that refer to this specific glibc variant."
9747msgstr "Dadurch werden Profile gemeldet, die diese bestimmte glibc-Variante verwenden." 9767msgstr "Dadurch werden Profile gemeldet, die diese bestimmte glibc-Variante verwenden."
9748 9768
9749#. type: Plain text 9769#. type: Plain text
9750#: doc/guix-cookbook.texi:5508 9770#: guix-git/doc/guix-cookbook.texi:5506
9751msgid "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." 9771msgid "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."
9752msgstr "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.<" 9772msgstr "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.<"
9753 9773
9754#. type: Plain text 9774#. type: Plain text
9755#: doc/guix-cookbook.texi:5511 9775#: guix-git/doc/guix-cookbook.texi:5509
9756msgid "The Nix-based software distributions, Nixpkgs and NixOS, have also been an inspiration for Guix." 9776msgid "The Nix-based software distributions, Nixpkgs and NixOS, have also been an inspiration for Guix."
9757msgstr "Die Nix-basierten Software-Distributionen Nixpkgs und NixOS waren auch eine Inspiration für Guix." 9777msgstr "Die Nix-basierten Software-Distributionen Nixpkgs und NixOS waren auch eine Inspiration für Guix."
9758 9778
9759#. type: Plain text 9779#. type: Plain text
9760#: doc/guix-cookbook.texi:5517 9780#: guix-git/doc/guix-cookbook.texi:5515
9761msgid "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!" 9781msgid "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!"
9762msgstr "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!" 9782msgstr "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!"
9763 9783
9764#. type: Plain text 9784#. type: Plain text
9765#: doc/guix-cookbook.texi:5522 9785#: guix-git/doc/guix-cookbook.texi:5520
9766msgid "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}." 9786msgid "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}."
9767msgstr "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." 9787msgstr "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."
9768 9788
9769#. type: cindex 9789#. type: cindex
9770#: doc/guix-cookbook.texi:5527 9790#: guix-git/doc/guix-cookbook.texi:5525
9771#, no-wrap 9791#, no-wrap
9772msgid "license, GNU Free Documentation License" 9792msgid "license, GNU Free Documentation License"
9773msgstr "Lizenz, GNU-Lizenz für freie Dokumentation" 9793msgstr "Lizenz, GNU-Lizenz für freie Dokumentation"
9774 9794
9775#. type: include 9795#. type: include
9776#: doc/guix-cookbook.texi:5528 9796#: guix-git/doc/guix-cookbook.texi:5526
9777#, no-wrap 9797#, no-wrap
9778msgid "fdl-1.3.texi" 9798msgid "fdl-1.3.texi"
9779msgstr "fdl-1.3.texi" 9799msgstr "fdl-1.3.texi"