summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-04-17 14:06:30 +0200
committerLudovic Courtès <ludo@gnu.org>2019-04-17 14:06:30 +0200
commitc04052e4dfeb8cd6abd84d7c9009bae81f4b8686 (patch)
treefb1b9d90e9e7976705d3645bdcdb561c8c54eba0 /doc
parent72f749dcb83dbda9f98e28fa3622cc1d3db6275a (diff)
nls: Update 'de' translation of the manual.
Diffstat (limited to 'doc')
-rw-r--r--doc/contributing.de.texi757
-rw-r--r--doc/guix.de.texi8180
2 files changed, 5197 insertions, 3740 deletions
diff --git a/doc/contributing.de.texi b/doc/contributing.de.texi
index 259523aa6f8..6a999baece7 100644
--- a/doc/contributing.de.texi
+++ b/doc/contributing.de.texi
@@ -6,7 +6,7 @@ es wachsen zu lassen! Bitte kontaktieren Sie uns auf
6@email{guix-devel@@gnu.org} und @code{#guix} im Freenode-IRC-Netzwerk. Wir 6@email{guix-devel@@gnu.org} und @code{#guix} im Freenode-IRC-Netzwerk. Wir
7freuen uns auf Ihre Ideen, Fehlerberichte, Patches und alles, was hilfreich 7freuen uns auf Ihre Ideen, Fehlerberichte, Patches und alles, was hilfreich
8für das Projekt sein könnte. Besonders willkommen ist Hilfe bei der 8für das Projekt sein könnte. Besonders willkommen ist Hilfe bei der
9Erstellung von Paketen (@pxref{Paketrichtlinien}). 9Erstellung von Paketen (siehe @ref{Paketrichtlinien}).
10 10
11@cindex Verhaltensregeln, für Mitwirkende 11@cindex Verhaltensregeln, für Mitwirkende
12@cindex Verhaltenskodex für Mitwirkende 12@cindex Verhaltenskodex für Mitwirkende
@@ -43,8 +43,8 @@ git clone https://git.savannah.gnu.org/git/guix.git
43@end example 43@end example
44 44
45Wenn Sie Guix aus einem Checkout erstellen, sind außer den bereits in den 45Wenn Sie Guix aus einem Checkout erstellen, sind außer den bereits in den
46Installationsanweisungen genannten Paketen weitere nötig 46Installationsanweisungen genannten Paketen weitere nötig (siehe
47(@pxref{Voraussetzungen}). 47@ref{Voraussetzungen}).
48 48
49@itemize 49@itemize
50@item @url{http://gnu.org/software/autoconf/, GNU Autoconf}; 50@item @url{http://gnu.org/software/autoconf/, GNU Autoconf};
@@ -64,7 +64,7 @@ an Guix zu arbeiten:
64guix environment guix 64guix environment guix
65@end example 65@end example
66 66
67In @xref{Aufruf von guix environment} finden Sie weitere Informationen zu 67In @ref{Aufruf von guix environment} finden Sie weitere Informationen zu
68diesem Befehl. Zusätzliche Abhängigkeiten können mit @option{--ad-hoc} 68diesem Befehl. Zusätzliche Abhängigkeiten können mit @option{--ad-hoc}
69hinzugefügt werden: 69hinzugefügt werden:
70 70
@@ -73,7 +73,7 @@ guix environment guix --ad-hoc help2man git strace
73@end example 73@end example
74 74
75Führen Sie @command{./bootstrap} aus, um die Infrastruktur des 75Führen Sie @command{./bootstrap} aus, um die Infrastruktur des
76Erstellungssystems mit Autoconf und Automake zu erstellen. Möglicherweise 76Erstellungssystems mit Autoconf und Automake zu erzeugen. Möglicherweise
77erhalten Sie eine Fehlermeldung wie diese: 77erhalten Sie eine Fehlermeldung wie diese:
78 78
79@example 79@example
@@ -93,18 +93,18 @@ Befehl aufrufen:
93export ACLOCAL_PATH=/usr/share/aclocal 93export ACLOCAL_PATH=/usr/share/aclocal
94@end example 94@end example
95 95
96In @xref{Macro Search Path,,, automake, The GNU Automake Manual} finden Sie 96In @ref{Macro Search Path,,, automake, The GNU Automake Manual} finden Sie
97weitere Informationen. 97weitere Informationen.
98 98
99Dann führen Sie wie gewohnt @command{./configure} aus. Achten Sie darauf, 99Dann führen Sie wie gewohnt @command{./configure} aus. Achten Sie darauf,
100@code{--localstatedir=@var{Verzeichnis}} zu übergeben, wobei 100@code{--localstatedir=@var{Verzeichnis}} zu übergeben, wobei
101@var{Verzeichnis} der von Ihrer aktuellen Installation verwendete 101@var{Verzeichnis} der von Ihrer aktuellen Installation verwendete
102@code{localstatedir}-Wert ist (weitere Informationen auf @pxref{Der Store}). 102@code{localstatedir}-Wert ist (weitere Informationen siehe @ref{Der Store}).
103 103
104Zum Schluss müssen Sie @code{make check} aufrufen, um die Tests auszuführen 104Zum Schluss müssen Sie @code{make check} aufrufen, um die Tests auszuführen
105(@pxref{Die Testsuite laufen lassen}). Falls etwas fehlschlägt, werfen Sie einen 105(siehe @ref{Den Testkatalog laufen lassen}). Falls etwas fehlschlägt, werfen Sie
106Blick auf die Installationsanweisungen (@pxref{Installation}) oder senden 106einen Blick auf die Installationsanweisungen (siehe @ref{Installation}) oder
107Sie eine E-Mail an die @email{guix-devel@@gnu.org, Mailingliste}. 107senden Sie eine E-Mail an die @email{guix-devel@@gnu.org, Mailingliste}.
108 108
109 109
110@node Guix vor der Installation ausführen 110@node Guix vor der Installation ausführen
@@ -118,7 +118,7 @@ Endnutzer-»Straßenanzug« und Ihrem »Faschingskostüm« unterscheiden.
118Zu diesem Zweck können alle Befehlszeilenwerkzeuge auch schon benutzt 118Zu diesem Zweck können alle Befehlszeilenwerkzeuge auch schon benutzt
119werden, ohne dass Sie @code{make install} laufen lassen. Dazu müssen Sie 119werden, ohne dass Sie @code{make install} laufen lassen. Dazu müssen Sie
120sich in einer Umgebung befinden, in der alle Abhängigkeiten von Guix 120sich in einer Umgebung befinden, in der alle Abhängigkeiten von Guix
121verfügbar sind (@pxref{Erstellung aus dem Git}) und darin einfach vor jeden 121verfügbar sind (siehe @ref{Erstellung aus dem Git}) und darin einfach vor jeden
122Befehl @command{./pre-inst-env} schreiben (das Skript @file{pre-inst-env} 122Befehl @command{./pre-inst-env} schreiben (das Skript @file{pre-inst-env}
123befindet sich auf oberster Ebene im Verzeichnis, wo Guix erstellt wird, wo 123befindet sich auf oberster Ebene im Verzeichnis, wo Guix erstellt wird, wo
124es durch @command{./configure} erzeugt wird), zum Beispiel so@footnote{Die 124es durch @command{./configure} erzeugt wird), zum Beispiel so@footnote{Die
@@ -144,8 +144,8 @@ $ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'
144@noindent 144@noindent
145@cindex REPL 145@cindex REPL
146@cindex Lese-Auswerten-Schreiben-Schleife 146@cindex Lese-Auswerten-Schreiben-Schleife
147@dots{} und auf einer REPL (@pxref{Using Guile Interactively,,, guile, Guile 147@dots{} und auf einer REPL (siehe @ref{Using Guile Interactively,,, guile,
148Reference Manual}): 148Guile Reference Manual}):
149 149
150@example 150@example
151$ ./pre-inst-env guile 151$ ./pre-inst-env guile
@@ -169,19 +169,20 @@ nötig sind, um dies zu ermöglichen, einschließlich @env{PATH} und
169 169
170Beachten Sie, dass @command{./pre-inst-env guix pull} den lokalen Quellbaum 170Beachten Sie, dass @command{./pre-inst-env guix pull} den lokalen Quellbaum
171@emph{nicht} aktualisiert; es aktualisiert lediglich die symbolische 171@emph{nicht} aktualisiert; es aktualisiert lediglich die symbolische
172Verknüpfung @file{~/.config/guix/current} (@pxref{Aufruf von guix pull}). Um 172Verknüpfung @file{~/.config/guix/current} (siehe @ref{Aufruf von guix pull}). Um Ihren lokalen Quellbaum zu aktualisieren, müssen Sie stattdessen
173Ihren lokalen Quellbaum zu aktualisieren, müssen Sie stattdessen
174@command{git pull} benutzen. 173@command{git pull} benutzen.
175 174
176 175
177@node Perfekt eingerichtet 176@node Perfekt eingerichtet
178@section Perfekt eingerichtet 177@section Perfekt eingerichtet
179 178
180The Perfect Setup to hack on Guix is basically the perfect setup used for 179Um perfekt für das Hacken an Guix eingerichtet zu sein, brauchen Sie an sich
181Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference 180dasselbe wie um perfekt für das Hacken mit Guile (siehe @ref{Using Guile in
182Manual}). First, you need more than an editor, you need 181Emacs,,, guile, Guile Reference Manual}). Zunächst brauchen Sie mehr als ein
183@url{http://www.gnu.org/software/emacs, Emacs}, empowered by the wonderful 182Textverarbeitungsprogramm, Sie brauchen
184@url{http://nongnu.org/geiser/, Geiser}. To set that up, run: 183@url{http://www.gnu.org/software/emacs, Emacs} zusammen mit den vom
184wunderbaren @url{http://nongnu.org/geiser/, Geiser} verliehenen Kräften. Um
185diese zu installieren, können Sie Folgendes ausführen:
185 186
186@example 187@example
187guix package -i emacs guile emacs-geiser 188guix package -i emacs guile emacs-geiser
@@ -191,8 +192,8 @@ Geiser ermöglicht interaktive und inkrementelle Entwicklung aus Emacs
191heraus: Code kann in Puffern kompiliert und ausgewertet werden. Zugang zu 192heraus: Code kann in Puffern kompiliert und ausgewertet werden. Zugang zu
192Online-Dokumentation (Docstrings) steht ebenso zur Verfügung wie 193Online-Dokumentation (Docstrings) steht ebenso zur Verfügung wie
193kontextabhängige Vervollständigung, @kbd{M-.} um zu einer Objektdefinition 194kontextabhängige Vervollständigung, @kbd{M-.} um zu einer Objektdefinition
194zu springen, eine REPL, um Ihren Code auszuprobieren, und mehr 195zu springen, eine REPL, um Ihren Code auszuprobieren, und mehr (siehe
195(@pxref{Einführung,,, geiser, Geiser User Manual}). Zur bequemen 196@ref{Einführung,,, geiser, Geiser User Manual}). Zur bequemen
196Guix-Entwicklung sollten Sie Guiles Ladepfad so ergänzen, dass die 197Guix-Entwicklung sollten Sie Guiles Ladepfad so ergänzen, dass die
197Quelldateien in Ihrem Checkout gefunden werden. 198Quelldateien in Ihrem Checkout gefunden werden.
198 199
@@ -245,63 +246,69 @@ wieder weiter umgeschrieben werden kann.
245@node Paketrichtlinien 246@node Paketrichtlinien
246@section Paketrichtlinien 247@section Paketrichtlinien
247 248
248@cindex packages, creating 249@cindex Pakete definieren
249The GNU distribution is nascent and may well lack some of your favorite 250Die GNU-Distribution ist noch sehr jung und einige Ihrer Lieblingspakete
250packages. This section describes how you can help make the distribution 251könnten noch fehlen. Dieser Abschnitt beschreibt, wie Sie dabei helfen
251grow. 252können, die Distribution wachsen zu lassen.
252 253
253Free software packages are usually distributed in the form of @dfn{source 254Pakete mit freier Software werden normalerweise in Form von @dfn{Tarballs
254code tarballs}---typically @file{tar.gz} files that contain all the source 255mit dem Quellcode} angeboten — typischerweise in
255files. Adding a package to the distribution means essentially two things: 256@file{tar.gz}-Archivdateien, in denen alle Quelldateien enthalten sind. Ein
256adding a @dfn{recipe} that describes how to build the package, including a 257Paket zur Distribution hinzuzufügen, bedeutet also zweierlei Dinge: Zum
257list of other packages required to build it, and adding @dfn{package 258einen fügt man ein @dfn{Rezept} ein, das beschreibt, wie das Paket erstellt
258metadata} along with that recipe, such as a description and licensing 259werden kann, einschließlich einer Liste von anderen Paketen, die für diese
259information. 260Erstellung gebraucht werden, zum anderen fügt man @dfn{Paketmetadaten} zum
260 261Rezept hinzu, wie zum Beispiel eine Beschreibung und Lizenzinformationen.
261In Guix all this information is embodied in @dfn{package definitions}. 262
262Package definitions provide a high-level view of the package. They are 263In Guix sind all diese Informationen ein Teil der
263written using the syntax of the Scheme programming language; in fact, for 264@dfn{Paketdefinitionen}. In Paketdefinitionen hat man eine abstrahierte,
264each package we define a variable bound to the package definition, and 265hochsprachliche Sicht auf das Paket. Sie werden in der Syntax der
265export that variable from a module (@pxref{Paketmodule}). However, 266Scheme-Programmiersprache verfasst; tatsächlich definieren wir für jedes
266in-depth Scheme knowledge is @emph{not} a prerequisite for creating 267Paket eine Variable und binden diese an dessen Definition, um die Variable
267packages. For more information on package definitions, @pxref{Pakete definieren}. 268anschließend aus einem Modul heraus zu exportieren (siehe @ref{Paketmodule}). Allerdings ist @emph{kein} tiefgehendes Wissen über Scheme
268 269erforderlich, um Pakete zu erstellen. Mehr Informationen über
269Once a package definition is in place, stored in a file in the Guix source 270Paketdefinitionen finden Sie im Abschnitt @ref{Pakete definieren}.
270tree, it can be tested using the @command{guix build} command 271
271(@pxref{Aufruf von guix build}). For example, assuming the new package is 272Eine fertige Paketdefinition kann, nachdem sie in eine Datei im
272called @code{gnew}, you may run this command from the Guix build tree 273Quell-Verzeichnisbaum von Guix eingesetzt wurde, mit Hilfe des Befehls
273(@pxref{Guix vor der Installation ausführen}): 274@command{guix build} getestet werden (siehe @ref{Aufruf von guix build}). Wenn
275das Paket zum Beispiel den Namen @code{gnew} trägt, können Sie folgenden
276Befehl aus dem Erstellungs-Verzeichnisbaum von Guix heraus ausführen (siehe
277@ref{Guix vor der Installation ausführen}):
274 278
275@example 279@example
276./pre-inst-env guix build gnew --keep-failed 280./pre-inst-env guix build gnew --keep-failed
277@end example 281@end example
278 282
279Using @code{--keep-failed} makes it easier to debug build failures since it 283Wenn Sie @code{--keep-failed} benutzen, ist es leichter, fehlgeschlagene
280provides access to the failed build tree. Another useful command-line 284Erstellungen zu untersuchen, weil dann der Verzeichnisbaum der
281option when debugging is @code{--log-file}, to access the build log. 285fehlgeschlagenen Erstellung zugänglich bleibt. Eine andere nützliche
286Befehlszeilenoption bei der Fehlersuche ist @code{--log-file}, womit das
287Erstellungsprotokoll eingesehen werden kann.
282 288
283If the package is unknown to the @command{guix} command, it may be that the 289Wenn der @command{guix}-Befehl das Paket nicht erkennt, kann es daran
284source file contains a syntax error, or lacks a @code{define-public} clause 290liegen, dass die Quelldatei einen Syntaxfehler hat oder ihr eine
285to export the package variable. To figure it out, you may load the module 291@code{define-public}-Klausel fehlt, die die Paketvariable exportiert. Um das
286from Guile to get more information about the actual error: 292herauszufinden, können Sie das Modul aus Guile heraus laden, um mehr
293Informationen über den tatsächlichen Fehler zu bekommen:
287 294
288@example 295@example
289./pre-inst-env guile -c '(use-modules (gnu packages gnew))' 296./pre-inst-env guile -c '(use-modules (gnu packages gnew))'
290@end example 297@end example
291 298
292Once your package builds correctly, please send us a patch 299Sobald Ihr Paket erfolgreich erstellt werden kann, schicken Sie uns bitte
293(@pxref{Einreichen von Patches}). Well, if you need help, we will be happy to 300einen Patch (siehe @ref{Einreichen von Patches}). Wenn Sie dabei Hilfe brauchen
294help you too. Once the patch is committed in the Guix repository, the new 301sollten, helfen wir gerne. Ab dem Zeitpunkt, zu dem der Patch als Commit ins
295package automatically gets built on the supported platforms by 302Guix-Repository eingepflegt wurde, wird das neue Paket automatisch durch
296@url{http://hydra.gnu.org/jobset/gnu/master, our continuous integration 303@url{http://hydra.gnu.org/jobset/gnu/master, unser System zur
297system}. 304Kontinuierlichen Integration} auf allen unterstützten Plattformen erstellt.
298 305
299@cindex substituter 306@cindex Substituierer
300Users can obtain the new package definition simply by running @command{guix 307Benutzern steht die neue Paketdefinition zur Verfügung, nachdem sie das
301pull} (@pxref{Aufruf von guix pull}). When @code{@value{SUBSTITUTE-SERVER}} 308nächste Mal @command{guix pull} ausgeführt haben (siehe @ref{Aufruf von guix pull}). Wenn @code{@value{SUBSTITUTE-SERVER}} selbst damit fertig ist, das
302is done building the package, installing the package automatically downloads 309Paket zu erstellen, werden bei der Installation automatisch Binärdateien von
303binaries from there (@pxref{Substitute}). The only place where human 310dort heruntergeladen (siehe @ref{Substitute}). Menschliches Eingreifen muss
304intervention is needed is to review and apply the patch. 311nur stattfinden, um den Patch zu überprüfen und anzuwenden.
305 312
306 313
307@menu 314@menu
@@ -326,67 +333,74 @@ intervention is needed is to review and apply the patch.
326@c 333@c
327@c =========================================================================== 334@c ===========================================================================
328@c Adapted from http://www.gnu.org/philosophy/philosophy.html. 335@c Adapted from http://www.gnu.org/philosophy/philosophy.html.
329@cindex free software 336@cindex freie Software
330The GNU operating system has been developed so that users can have freedom 337Das GNU-Betriebssystem wurde entwickelt, um Menschen Freiheit bei der
331in their computing. GNU is @dfn{free software}, meaning that users have the 338Nutzung ihrer Rechengeräte zu ermöglichen. GNU ist @dfn{freie Software}, was
332@url{http://www.gnu.org/philosophy/free-sw.html,four essential freedoms}: to 339bedeutet, dass Benutzer die
333run the program, to study and change the program in source code form, to 340@url{http://www.gnu.org/philosophy/free-sw.de.html,vier wesentlichen
334redistribute exact copies, and to distribute modified versions. Packages 341Freiheiten} haben: das Programm auszuführen, es zu untersuchen, das Programm
335found in the GNU distribution provide only software that conveys these four 342in Form seines Quellcodes anzupassen und exakte Kopien ebenso wie
336freedoms. 343modifizierte Versionen davon an andere weiterzugeben. Die Pakete, die Sie in
337 344der GNU-Distribution finden, stellen ausschließlich solche Software zur
338In addition, the GNU distribution follow the 345Verfügung, die Ihnen diese vier Freiheiten gewährt.
339@url{http://www.gnu.org/distros/free-system-distribution-guidelines.html,free 346
340software distribution guidelines}. Among other things, these guidelines 347Außerdem befolgt die GNU-Distribution die
341reject non-free firmware, recommendations of non-free software, and discuss 348@url{http://www.gnu.org/distros/free-system-distribution-guidelines.de.html,Richtlinien
342ways to deal with trademarks and patents. 349für freie Systemverteilungen}. Unter anderem werden unfreie Firmware sowie
343 350Empfehlungen von unfreier Software abgelehnt und Möglichkeiten zum Umgang
344Some otherwise free upstream package sources contain a small and optional 351mit Markenzeichen und Patenten werden diskutiert.
345subset that violates the above guidelines, for instance because this subset 352
346is itself non-free code. When that happens, the offending items are removed 353Ansonsten freier Paketquellcode von manchen Anbietern enthält einen kleinen
347with appropriate patches or code snippets in the @code{origin} form of the 354und optionalen Teil, der diese Richtlinien verletzt. Zum Beispiel kann
348package (@pxref{Pakete definieren}). This way, @code{guix build --source} 355dieser Teil selbst unfreier Code sein. Wenn das vorkommt, wird der sie
349returns the ``freed'' source rather than the unmodified upstream source. 356verletzende Teil mit angemessenen Patches oder Code-Schnipseln innerhalb der
357@code{origin}-Form des Pakets entfernt (siehe @ref{Pakete definieren}). Dadurch liefert Ihnen @code{guix build --source} nur den
358»befreiten« Quellcode und nicht den unmodifizierten Quellcode des Anbieters.
350 359
351 360
352@node Paketbenennung 361@node Paketbenennung
353@subsection Paketbenennung 362@subsection Paketbenennung
354 363
355@cindex package name 364@cindex Paketname
356A package has actually two names associated with it: First, there is the 365Tatsächlich sind mit jedem Paket zwei Namen assoziiert: Zum einen gibt es
357name of the @emph{Scheme variable}, the one following @code{define-public}. 366den Namen der @emph{Scheme-Variablen}, der direkt nach @code{define-public}
358By this name, the package can be made known in the Scheme code, for instance 367im Code steht. Mit diesem Namen kann das Paket im Scheme-Code nutzbar
359as input to another package. Second, there is the string in the @code{name} 368gemacht und zum Beispiel als Eingabe eines anderen Pakets benannt
360field of a package definition. This name is used by package management 369werden. Zum anderen gibt es die Zeichenkette im @code{name}-Feld einer
361commands such as @command{guix package} and @command{guix build}. 370Paketdefinition. Dieser Name wird von Paketverwaltungsbefehlen wie
371@command{guix package} und @command{guix build} benutzt.
362 372
363Both are usually the same and correspond to the lowercase conversion of the 373Meistens sind die beiden identisch und ergeben sich aus einer Umwandlung des
364project name chosen upstream, with underscores replaced with hyphens. For 374vom Anbieter verwendeten Projektnamens in Kleinbuchstaben, bei der
365instance, GNUnet is available as @code{gnunet}, and SDL_net as 375Unterstriche durch Bindestriche ersetzt werden. Zum Beispiel wird GNUnet
366@code{sdl-net}. 376unter dem Paketnamen @code{gnunet} angeboten und SDL_net als @code{sdl-net}.
367 377
368We do not add @code{lib} prefixes for library packages, unless these are 378An Bibliothekspakete hängen wir vorne kein @code{lib} als Präfix an, solange
369already part of the official project name. But @pxref{Python-Module} and 379es nicht Teil des offiziellen Projektnamens ist. Beachten Sie aber die
370@ref{Perl-Module} for special rules concerning modules for the Python and 380Abschnitte @ref{Python-Module} und @ref{Perl-Module}, in denen
371Perl languages. 381Sonderregeln für Module der Programmiersprachen Python und Perl beschrieben
382sind.
372 383
373Font package names are handled differently, @pxref{Schriftarten}. 384Auch Pakete mit Schriftarten werden anders behandelt, siehe @ref{Schriftarten}.
374 385
375 386
376@node Versionsnummern 387@node Versionsnummern
377@subsection Versionsnummern 388@subsection Versionsnummern
378 389
379@cindex package version 390@cindex Paketversion
380We usually package only the latest version of a given free software 391Normalerweise stellen wir nur für die neueste Version eines
381project. But sometimes, for instance for incompatible library versions, two 392Freie-Software-Projekts ein Paket bereit. Manchmal gibt es allerdings Fälle
382(or more) versions of the same package are needed. These require different 393wie zum Beispiel untereinander inkompatible Bibliotheksversionen, so dass
383Scheme variable names. We use the name as defined in @ref{Paketbenennung} 394zwei (oder mehr) Versionen desselben Pakets angeboten werden müssen. In
384for the most recent version; previous versions use the same name, suffixed 395diesem Fall müssen wir verschiedene Scheme-Variablennamen benutzen. Wir
385by @code{-} and the smallest prefix of the version number that may 396benutzen dann für die neueste Version den Namen, wie er im Abschnitt
386distinguish the two versions. 397@ref{Paketbenennung} festgelegt wird, und geben vorherigen Versionen
387 398denselben Namen mit einem zusätzlichen Suffix aus @code{-} gefolgt vom
388The name inside the package definition is the same for all versions of a 399kürzesten Präfix der Versionsnummer, mit dem noch immer zwei Versionen
389package and does not contain any version number. 400unterschieden werden können.
401
402Der Name innerhalb der Paketdefinition ist hingegen derselbe für alle
403Versionen eines Pakets und enthält keine Versionsnummer.
390 404
391Zum Beispiel können für GTK in den Versionen 2.24.20 und 3.9.12 Pakete wie 405Zum Beispiel können für GTK in den Versionen 2.24.20 und 3.9.12 Pakete wie
392folgt geschrieben werden: 406folgt geschrieben werden:
@@ -414,48 +428,51 @@ Wenn wir auch GTK 3.8.2 wollten, würden wir das Paket schreiben als
414 428
415@c See <https://lists.gnu.org/archive/html/guix-devel/2016-01/msg00425.html>, 429@c See <https://lists.gnu.org/archive/html/guix-devel/2016-01/msg00425.html>,
416@c for a discussion of what follows. 430@c for a discussion of what follows.
417@cindex version number, for VCS snapshots 431@cindex Versionsnummer, bei Snapshots aus Versionskontrolle
418Occasionally, we package snapshots of upstream's version control system 432Gelegentlich fügen wir auch Pakete für Snapshots aus dem
419(VCS) instead of formal releases. This should remain exceptional, because 433Versionskontrollsystem des Anbieters statt formaler Veröffentlichungen zur
420it is up to upstream developers to clarify what the stable release is. Yet, 434Distribution hinzu. Das sollte die Ausnahme bleiben, weil die Entwickler
421it is sometimes necessary. So, what should we put in the @code{version} 435selbst klarstellen sollten, welche Version als die stabile Veröffentlichung
422field? 436gelten sollte, ab und zu ist es jedoch notwendig. Was also sollten wir dann
423 437im @code{version}-Feld eintragen?
424Clearly, we need to make the commit identifier of the VCS snapshot visible 438
425in the version string, but we also need to make sure that the version string 439Offensichtlich muss der Bezeichner des Commits, den wir als Snapshot aus dem
426is monotonically increasing so that @command{guix package --upgrade} can 440Versionskontrollsystem nehmen, in der Versionszeichenkette zu erkennen sein,
427determine which version is newer. Since commit identifiers, notably with 441aber wir müssen auch sicherstellen, dass die Version monoton steigend ist,
428Git, are not monotonically increasing, we add a revision number that we 442damit @command{guix package --upgrade} feststellen kann, welche Version die
429increase each time we upgrade to a newer snapshot. The resulting version 443neuere ist. Weil Commit-Bezeichner, insbesondere bei Git, nicht monoton
430string looks like this: 444steigen, müssen wir eine Revisionsnummer hinzufügen, die wir jedes Mal
445erhöhen, wenn wir das Paket auf einen neueren Snapshot aktualisieren. Die
446sich ergebende Versionszeichenkette sieht dann so aus:
431 447
432@example 448@example
4332.0.11-3.cabba9e 4492.0.11-3.cabba9e
434 ^ ^ ^ 450 ^ ^ ^
435 | | `-- upstream commit ID 451 | | `-- Commit-ID beim Anbieter
436 | | 452 | |
437 | `--- Guix package revision 453 | `--- Revisionsnummer des Guix-Pakets
438 | 454 |
439latest upstream version 455die neueste Version, die der Anbieter veröffentlicht hat
440@end example 456@end example
441 457
442It is a good idea to strip commit identifiers in the @code{version} field 458Es ist eine gute Idee, die Commit-Bezeichner im @code{version}-Feld auf,
443to, say, 7 digits. It avoids an aesthetic annoyance (assuming aesthetics 459sagen wir, 7 Ziffern zu beschränken. Das sieht besser aus (angenommen, das
444have a role to play here) as well as problems related to OS limits such as 460sollte hier eine Rolle spielen) und vermeidet Probleme, die mit der
445the maximum shebang length (127 bytes for the Linux kernel.) It is best to 461maximalen Länge von Shebangs zu tun haben (127 Bytes beim Linux-Kernel). Am
446use the full commit identifiers in @code{origin}s, though, to avoid 462besten benutzt man jedoch den vollständigen Commit-Bezeichner in
447ambiguities. A typical package definition may look like this: 463@code{origin}s, um Mehrdeutigkeiten zu vermeiden. Eine typische
464Paketdefinition könnte so aussehen:
448 465
449@example 466@example
450(define my-package 467(define mein-paket
451 (let ((commit "c3f29bc928d5900971f65965feaae59e1272a3f7") 468 (let ((commit "c3f29bc928d5900971f65965feaae59e1272a3f7")
452 (revision "1")) ;Guix package revision 469 (revision "1")) ;Guix-Paketrevision
453 (package 470 (package
454 (version (git-version "0.9" revision commit)) 471 (version (git-version "0.9" revision commit))
455 (source (origin 472 (source (origin
456 (method git-fetch) 473 (method git-fetch)
457 (uri (git-reference 474 (uri (git-reference
458 (url "git://example.org/my-package.git") 475 (url "git://example.org/mein-paket.git")
459 (commit commit))) 476 (commit commit)))
460 (sha256 (base32 "1mbikn@dots{}")) 477 (sha256 (base32 "1mbikn@dots{}"))
461 (file-name (git-file-name name version)))) 478 (file-name (git-file-name name version))))
@@ -466,58 +483,69 @@ ambiguities. A typical package definition may look like this:
466@node Zusammenfassungen und Beschreibungen 483@node Zusammenfassungen und Beschreibungen
467@subsection Zusammenfassungen und Beschreibungen 484@subsection Zusammenfassungen und Beschreibungen
468 485
469@cindex package description 486@cindex Paketbeschreibung
470@cindex package synopsis 487@cindex Paketzusammenfassung
471As we have seen before, each package in GNU@tie{}Guix includes a synopsis 488Wie wir bereits gesehen haben, enthält jedes Paket in GNU@tie{}Guix eine (im
472and a description (@pxref{Pakete definieren}). Synopses and descriptions 489Code englischsprachige) Zusammenfassung (englisch: Synopsis) und eine
473are important: They are what @command{guix package --search} searches, and a 490Beschreibung (englisch: Description; siehe @ref{Pakete definieren}). Zusammenfassungen und Beschreibungen sind wichtig: Sie werden
474crucial piece of information to help users determine whether a given package 491mit @command{guix package --search} durchsucht und stellen eine
475suits their needs. Consequently, packagers should pay attention to what 492entscheidende Informationsquelle für Nutzer dar, die entscheiden wollen, ob
476goes into them. 493das Paket Ihren Bedürfnissen entspricht, daher sollten Paketentwickler Acht
477 494geben, was sie dort eintragen.
478Synopses must start with a capital letter and must not end with a period. 495
479They must not start with ``a'' or ``the'', which usually does not bring 496Zusammenfassungen müssen mit einem Großbuchstaben beginnen und dürfen nicht
480anything; for instance, prefer ``File-frobbing tool'' over ``A tool that 497mit einem Punkt enden. Sie dürfen nicht mit den Artikeln »a« oder »the«
481frobs files''. The synopsis should say what the package is---e.g., ``Core 498beginnen, die meistens ohnehin nichts zum Verständnis beitragen. Zum
482GNU utilities (file, text, shell)''---or what it is used for---e.g., the 499Beispiel sollte »File-frobbing tool« gegenüber »A tool that frobs files«
483synopsis for GNU@tie{}grep is ``Print lines matching a pattern''. 500vorgezogen werden. Die Zusammenfassung sollte aussagen, um was es sich beim
484 501Paket handelt — z.B.@: »Core GNU utilities (file, text, shell)« —, oder
485Keep in mind that the synopsis must be meaningful for a very wide audience. 502aussagen, wofür es benutzt wird — z.B.@: ist die Zusammenfassung für
486For example, ``Manipulate alignments in the SAM format'' might make sense 503GNU@tie{}grep »Print lines matching a pattern«.
487for a seasoned bioinformatics researcher, but might be fairly unhelpful or 504
488even misleading to a non-specialized audience. It is a good idea to come up 505Beachten Sie, dass die Zusammenfassung für eine sehr große Leserschaft einen
489with a synopsis that gives an idea of the application domain of the 506Sinn ergeben muss. Zum Beispiel würde »Manipulate alignments in the SAM
490package. In this example, this might give something like ``Manipulate 507format« vielleicht von einem erfahrenen Forscher in der Bioinformatik
491nucleotide sequence alignments'', which hopefully gives the user a better 508verstanden, könnte für die Nicht-Spezialisten in Guix’ Zielgruppe aber wenig
492idea of whether this is what they are looking for. 509hilfreich sein oder würde diesen sogar eine falsche Vorstellung geben. Es
493 510ist eine gute Idee, sich eine Zusammenfassung zu überlegen, die eine
494Descriptions should take between five and ten lines. Use full sentences, 511Vorstellung von der Anwendungsdomäne des Pakets vermittelt. Im Beispiel hier
495and avoid using acronyms without first introducing them. Please avoid 512würden sich die Nutzer mit »Manipulate nucleotide sequence alignments«
496marketing phrases such as ``world-leading'', ``industrial-strength'', and 513hoffentlich ein besseres Bild davon machen können, ob das Paket ist, wonach
497``next-generation'', and avoid superlatives like ``the most 514sie suchen.
498advanced''---they are not helpful to users looking for a package and may 515
499even sound suspicious. Instead, try to be factual, mentioning use cases and 516Beschreibungen sollten zwischen fünf und zehn Zeilen lang sein. Benutzen Sie
500features. 517vollständige Sätze und vermeiden Sie Abkürzungen, die Sie nicht zuvor
501 518eingeführt haben. Vermeiden Sie bitte Marketing-Phrasen wie »world-leading«
502@cindex Texinfo markup, in package descriptions 519(»weltweit führend«), »industrial-strength« (»industrietauglich«) und
503Descriptions can include Texinfo markup, which is useful to introduce 520»next-generation« (»der nächsten Generation«) ebenso wie Superlative wie
504ornaments such as @code{@@code} or @code{@@dfn}, bullet lists, or hyperlinks 521»the most advanced« (»das fortgeschrittenste«) — davon haben Nutzer nichts,
505(@pxref{Overview,,, texinfo, GNU Texinfo}). However you should be careful 522wenn sie ein Paket suchen, und es könnte sogar verdächtig klingen. Versuchen
506when using some characters for example @samp{@@} and curly braces which are 523Sie stattdessen, bei den Fakten zu bleiben und dabei Anwendungszwecke und
507the basic special characters in Texinfo (@pxref{Special Characters,,, 524Funktionalitäten zu erwähnen.
508texinfo, GNU Texinfo}). User interfaces such as @command{guix package 525
509--show} take care of rendering it appropriately. 526@cindex Texinfo-Auszeichnungen, in Paketbeschreibungen
510 527Beschreibungen können wie bei Texinfo ausgezeichneten Text enthalten. Das
511Synopses and descriptions are translated by volunteers 528bedeutet, Text kann Verzierungen wie @code{@@code} oder @code{@@dfn},
512@uref{http://translationproject.org/domain/guix-packages.html, at the 529Auflistungen oder Hyperlinks enthalten (siehe @ref{Overview,,, texinfo, GNU
513Translation Project} so that as many users as possible can read them in 530Texinfo}). Sie sollten allerdings vorsichtig sein, wenn Sie bestimmte
514their native language. User interfaces search them and display them in the 531Zeichen wie @samp{@@} und geschweifte Klammern schreiben, weil es sich dabei
515language specified by the current locale. 532um die grundlegenden Sonderzeichen in Texinfo handelt (siehe @ref{Special
516 533Characters,,, texinfo, GNU Texinfo}). Benutzungsschnittstellen wie
517To allow @command{xgettext} to extract them as translatable strings, 534@command{guix package --show} kümmern sich darum, solche Auszeichnungen
518synopses and descriptions @emph{must be literal strings}. This means that 535angemessen darzustellen.
519you cannot use @code{string-append} or @code{format} to construct these 536
520strings: 537Zusammenfassungen und Beschreibungen werden von Freiwilligen
538@uref{http://translationproject.org/domain/guix-packages.html, beim
539Translation Project} übersetzt, damit so viele Nutzer wie möglich sie in
540ihrer Muttersprache lesen können. Mit Schnittstellen für Benutzer können sie
541in der von der aktuell eingestellten Locale festgelegten Sprache durchsucht
542und angezeigt werden.
543
544Damit @command{xgettext} sie als übersetzbare Zeichenketten extrahieren
545kann, @emph{müssen} Zusammenfassungen und Beschreibungen einfache
546Zeichenketten-Literale sein. Das bedeutet, dass Sie diese Zeichenketten
547nicht mit Prozeduren wie @code{string-append} oder @code{format}
548konstruieren können:
521 549
522@lisp 550@lisp
523(package 551(package
@@ -526,11 +554,12 @@ strings:
526 (description (string-append "This is " "*not*" " translatable."))) 554 (description (string-append "This is " "*not*" " translatable.")))
527@end lisp 555@end lisp
528 556
529Translation is a lot of work so, as a packager, please pay even more 557Übersetzen ist viel Arbeit, also passen Sie als Paketentwickler bitte umso
530attention to your synopses and descriptions as every change may entail 558mehr auf, wenn Sie Ihre Zusammenfassungen und Beschreibungen formulieren,
531additional work for translators. In order to help them, it is possible to 559weil jede Änderung zusätzliche Arbeit für Übersetzer bedeutet. Um den
532make recommendations or instructions visible to them by inserting special 560Übersetzern zu helfen, können Sie Empfehlungen und Anweisungen für diese
533comments like this (@pxref{xgettext Invocation,,, gettext, GNU Gettext}): 561sichtbar machen, indem Sie spezielle Kommentare wie in diesem Beispiel
562einfügen (siehe @ref{xgettext Invocation,,, gettext, GNU Gettext}):
534 563
535@example 564@example
536;; TRANSLATORS: "X11 resize-and-rotate" should not be translated. 565;; TRANSLATORS: "X11 resize-and-rotate" should not be translated.
@@ -543,70 +572,78 @@ for the X11 resize-and-rotate (RandR) extension. @dots{}")
543@subsection Python-Module 572@subsection Python-Module
544 573
545@cindex python 574@cindex python
546We currently package Python 2 and Python 3, under the Scheme variable names 575Zur Zeit stellen wir ein Paket für Python 2 und eines für Python 3 jeweils
547@code{python-2} and @code{python} as explained in @ref{Versionsnummern}. To 576über die Scheme-Variablen mit den Namen @code{python-2} und @code{python}
548avoid confusion and naming clashes with other programming languages, it 577zur Verfügung, entsprechend der Erklärungen im Abschnitt @ref{Versionsnummern}. Um Verwirrungen und Namenskollisionen mit anderen
549seems desirable that the name of a package for a Python module contains the 578Programmiersprachen zu vermeiden, erscheint es als wünschenswert, dass der
550word @code{python}. 579Name eines Pakets für ein Python-Modul auch das Wort @code{python} enthält.
551 580
552Some modules are compatible with only one version of Python, others with 581Manche Module sind nur mit einer Version von Python kompatibel, andere mit
553both. If the package Foo compiles only with Python 3, we name it 582beiden. Wenn das Paket Foo nur mit Python 3 kompiliert werden kann, geben
554@code{python-foo}; if it compiles only with Python 2, we name it 583wir ihm den Namen @code{python-foo}, wenn es nur mit Python 2 kompilierbar
555@code{python2-foo}. If it is compatible with both versions, we create two 584ist, wählen wir den Namen @code{python2-foo}. Ist es mit beiden Versionen
556packages with the corresponding names. 585kompatibel, erstellen wir zwei Pakete jeweils mit dem entsprechenden Namen.
557 586
558If a project already contains the word @code{python}, we drop this; for 587Wenn ein Projekt bereits das Wort @code{python} im Namen hat, lassen wir es
559instance, the module python-dateutil is packaged under the names 588weg; zum Beispiel ist das Modul python-dateutil unter den Namen
560@code{python-dateutil} and @code{python2-dateutil}. If the project name 589@code{python-dateutil} und @code{python2-dateutil} verfügbar. Wenn der
561starts with @code{py} (e.g.@: @code{pytz}), we keep it and prefix it as 590Projektname mit @code{py} beginnt (z.B.@: @code{pytz}), behalten wir ihn bei
562described above. 591und stellen das oben beschriebene Präfix voran.
563 592
564@subsubsection Specifying Dependencies 593@subsubsection Abhängigkeiten angeben
565@cindex inputs, for Python packages 594@cindex Eingaben, für Python-Pakete
566 595
567Dependency information for Python packages is usually available in the 596Informationen über Abhängigkeiten von Python-Paketen, welche mal mehr und
568package source tree, with varying degrees of accuracy: in the 597mal weniger stimmen, finden sich normalerweise im Verzeichnisbaum des
569@file{setup.py} file, in @file{requirements.txt}, or in @file{tox.ini}. 598Paketquellcodes: in der Datei @file{setup.py}, in @file{requirements.txt}
570 599oder in @file{tox.ini}.
571Your mission, when writing a recipe for a Python package, is to map these 600
572dependencies to the appropriate type of ``input'' (@pxref{»package«-Referenz, 601Wenn Sie ein Rezept für ein Python-Paket schreiben, lautet Ihr Auftrag,
573inputs}). Although the @code{pypi} importer normally does a good job 602diese Abhängigkeiten auf angemessene Arten von »Eingaben« abzubilden (siehe
574(@pxref{Aufruf von guix import}), you may want to check the following check 603@ref{»package«-Referenz, inputs}). Obwohl der @code{pypi}-Importer hier
575list to determine which dependency goes where. 604normalerweise eine gute Arbeit leistet (siehe @ref{Aufruf von guix import}),
605könnten Sie die folgende Prüfliste durchgehen wollen, um zu bestimmen, wo
606welche Abhängigkeit eingeordnet werden sollte.
576 607
577@itemize 608@itemize
578 609
579@item 610@item
580We currently package Python 2 with @code{setuptools} and @code{pip} 611Derzeit ist unser Python-2-Paket so geschrieben, dass es @code{setuptools}
581installed like Python 3.4 has per default. Thus you don't need to specify 612und @code{pip} installiert, wie es auch in den Vorgaben zu Python 3.4
582either of these as an input. @command{guix lint} will warn you if you do. 613gemacht wird. Sie müssen also keines der beiden als Eingabe angeben. Wenn
614Sie es doch tun, wird @command{guix lint} Sie darauf mit einer Warnung
615aufmerksam machen.
583 616
584@item 617@item
585Python dependencies required at run time go into @code{propagated-inputs}. 618Python-Abhängigkeiten, die zur Laufzeit gebraucht werden, stehen im
586They are typically defined with the @code{install_requires} keyword in 619@code{propagated-inputs}-Feld. Solche werden typischerweise mit dem
587@file{setup.py}, or in the @file{requirements.txt} file. 620Schlüsselwort @code{install_requires} in @file{setup.py} oder in der Datei
621@file{requirements.txt} definiert.
588 622
589@item 623@item
590Python packages required only at build time---e.g., those listed with the 624Python-Pakete, die nur zur Erstellungszeit gebraucht werden — z.B.@: jene,
591@code{setup_requires} keyword in @file{setup.py}---or only for 625die mit dem Schlüsselwort @code{setup_requires} in @file{setup.py}
592testing---e.g., those in @code{tests_require}---go into 626aufgeführt sind — oder die nur zum Testen gebraucht werden — also die in
593@code{native-inputs}. The rationale is that (1) they do not need to be 627@code{tests_require} —, stehen in @code{native-inputs}. Die Begründung ist,
594propagated because they are not needed at run time, and (2) in a 628dass (1) sie nicht propagiert werden müssen, weil sie zur Laufzeit nicht
595cross-compilation context, it's the ``native'' input that we'd want. 629gebraucht werden, und (2) wir beim Cross-Kompilieren die »native« Eingabe
596 630des Wirtssystems wollen.
597Examples are the @code{pytest}, @code{mock}, and @code{nose} test 631
598frameworks. Of course if any of these packages is also required at 632Beispiele sind die Testrahmen @code{pytest}, @code{mock} und
599run-time, it needs to go to @code{propagated-inputs}. 633@code{nose}. Wenn natürlich irgendeines dieser Pakete auch zur Laufzeit
634benötigt wird, muss es doch in @code{propagated-inputs} stehen.
600 635
601@item 636@item
602Anything that does not fall in the previous categories goes to 637Alles, was nicht in die bisher genannten Kategorien fällt, steht in
603@code{inputs}, for example programs or C libraries required for building 638@code{inputs}, zum Beispiel Programme oder C-Bibliotheken, die zur
604Python packages containing C extensions. 639Erstellung von Python-Paketen mit enthaltenen C-Erweiterungen gebraucht
640werden.
605 641
606@item 642@item
607If a Python package has optional dependencies (@code{extras_require}), it is 643Wenn ein Python-Paket optionale Abhängigkeiten hat (@code{extras_require}),
608up to you to decide whether to add them or not, based on their 644ist es Ihnen überlassen, sie hinzuzufügen oder nicht hinzuzufügen, je
609usefulness/overhead ratio (@pxref{Einreichen von Patches, @command{guix size}}). 645nachdem wie es um deren Verhältnis von Nützlichkeit zu anderen Nachteilen
646steht (siehe @ref{Einreichen von Patches, @command{guix size}}).
610 647
611@end itemize 648@end itemize
612 649
@@ -615,76 +652,82 @@ usefulness/overhead ratio (@pxref{Einreichen von Patches, @command{guix size}}).
615@subsection Perl-Module 652@subsection Perl-Module
616 653
617@cindex perl 654@cindex perl
618Perl programs standing for themselves are named as any other package, using 655Eigenständige Perl-Programme bekommen einen Namen wie jedes andere Paket,
619the lowercase upstream name. For Perl packages containing a single class, 656unter Nutzung des Namens beim Anbieter in Kleinbuchstaben. Für Perl-Pakete,
620we use the lowercase class name, replace all occurrences of @code{::} by 657die eine einzelne Klasse enthalten, ersetzen wir alle Vorkommen von
621dashes and prepend the prefix @code{perl-}. So the class @code{XML::Parser} 658@code{::} durch Striche und hängen davor das Präfix @code{perl-} an. Die
622becomes @code{perl-xml-parser}. Modules containing several classes keep 659Klasse @code{XML::Parser} wird also zu @code{perl-xml-parser}. Module, die
623their lowercase upstream name and are also prepended by @code{perl-}. Such 660mehrere Klassen beinhalten, behalten ihren Namen beim Anbieter, in
624modules tend to have the word @code{perl} somewhere in their name, which 661Kleinbuchstaben gesetzt, und auch an sie wird vorne das Präfix @code{perl-}
625gets dropped in favor of the prefix. For instance, @code{libwww-perl} 662angehängt. Es gibt die Tendenz, solche Module mit dem Wort @code{perl}
626becomes @code{perl-libwww}. 663irgendwo im Namen zu versehen, das wird zu Gunsten des Präfixes
664weggelassen. Zum Beispiel wird aus @code{libwww-perl} bei uns
665@code{perl-libwww}.
627 666
628 667
629@node Java-Pakete 668@node Java-Pakete
630@subsection Java-Pakete 669@subsection Java-Pakete
631 670
632@cindex java 671@cindex java
633Java programs standing for themselves are named as any other package, using 672Eigenständige Java-Programme werden wie jedes andere Paket benannt, d.h.@:
634the lowercase upstream name. 673mit ihrem in Kleinbuchstaben geschriebenen Namen beim Anbieter.
635 674
636To avoid confusion and naming clashes with other programming languages, it 675Um Verwirrungen und Namenskollisionen mit anderen Programmiersprachen zu
637is desirable that the name of a package for a Java package is prefixed with 676vermeiden, ist es wünschenswert, dass dem Namem eines Pakets zu einem
638@code{java-}. If a project already contains the word @code{java}, we drop 677Java-Paket das Präfix @code{java-} vorangestellt wird. Wenn ein Projekt
639this; for instance, the package @code{ngsjava} is packaged under the name 678bereits das Wort @code{java} im Namen trägt, lassen wir es weg; zum Beispiel
679befindet sich das Java-Paket @code{ngsjava} in einem Paket namens
640@code{java-ngs}. 680@code{java-ngs}.
641 681
642For Java packages containing a single class or a small class hierarchy, we 682Bei Java-Paketen, die eine einzelne Klasse oder eine kleine
643use the lowercase class name, replace all occurrences of @code{.} by dashes 683Klassenhierarchie enthalten, benutzen wir den Klassennamen in
644and prepend the prefix @code{java-}. So the class @code{apache.commons.cli} 684Kleinbuchstaben und ersetzen dabei alle Vorkommen von @code{.} durch Striche
645becomes package @code{java-apache-commons-cli}. 685und setzen das Präfix @code{java-} davor. Die Klasse
686@code{apache.commons.cli} wird also zum Paket
687@code{java-apache-commons-cli}.
646 688
647 689
648@node Schriftarten 690@node Schriftarten
649@subsection Schriftarten 691@subsection Schriftarten
650 692
651@cindex Schriftarten 693@cindex Schriftarten
652For fonts that are in general not installed by a user for typesetting 694Wenn Schriftarten in der Regel nicht von Nutzern zur Textbearbeitung
653purposes, or that are distributed as part of a larger software package, we 695installiert werden oder als Teil eines größeren Software-Pakets mitgeliefert
654rely on the general packaging rules for software; for instance, this applies 696werden, gelten dafür die allgemeinen Paketrichtlinien für Software. Zum
655to the fonts delivered as part of the X.Org system or fonts that are part of 697Beispiel trifft das auf als Teil des X.Org-Systems ausgelieferte
656TeX Live. 698Schriftarten zu, oder auf Schriftarten, die ein Teil von TeX Live sind.
657 699
658To make it easier for a user to search for fonts, names for other packages 700Damit es Nutzer leichter haben, nach Schriftarten zu suchen, konstruieren
659containing only fonts are constructed as follows, independently of the 701wir die Namen von anderen Paketen, die nur Schriftarten enthalten, nach dem
660upstream package name. 702folgenden Schema, egal was der Paketname beim Anbieter ist.
661 703
662The name of a package containing only one font family starts with 704Der Name eines Pakets, das nur eine Schriftfamilie enthält, beginnt mit
663@code{font-}; it is followed by the foundry name and a dash @code{-} if the 705@code{font-}. Darauf folgt der Name des Schriftenherstellers und ein Strich
664foundry is known, and the font family name, in which spaces are replaced by 706@code{-}, sofern bekannt ist, wer der Schriftenhersteller ist, und dann der
665dashes (and as usual, all upper case letters are transformed to lower 707Name der Schriftfamilie, in dem Leerzeichen durch Striche ersetzt werden
666case). For example, the Gentium font family by SIL is packaged under the 708(und wie immer mit Großbuchstaben statt Kleinbuchstaben). Zum Beispiel
667name @code{font-sil-gentium}. 709befindet sich die von SIL hergestellte Gentium-Schriftfamilie im Paket mit
668 710dem Namen @code{font-sil-gentium}.
669For a package containing several font families, the name of the collection 711
670is used in the place of the font family name. For instance, the Liberation 712Wenn ein Paket mehrere Schriftfamilien enthält, wird der Name der Sammlung
671fonts consist of three families, Liberation Sans, Liberation Serif and 713anstelle des Schriftfamiliennamens benutzt. Zum Beispiel umfassen die
672Liberation Mono. These could be packaged separately under the names 714Liberation-Schriftarten drei Familien: Liberation Sans, Liberation Serif und
673@code{font-liberation-sans} and so on; but as they are distributed together 715Liberation Mono. Man könnte sie getrennt voneinander mit den Namen
674under a common name, we prefer to package them together as 716@code{font-liberation-sans} und so weiter in Pakete einteilen, da sie aber
675@code{font-liberation}. 717unter einem gemeinsamen Namen angeboten werden, packen wir sie lieber
676 718zusammen in ein Paket mit dem Namen @code{font-liberation}.
677In the case where several formats of the same font family or font collection 719
678are packaged separately, a short form of the format, prepended by a dash, is 720Für den Fall, dass mehrere Formate derselben Schriftfamilie oder
679added to the package name. We use @code{-ttf} for TrueType fonts, 721Schriftartensammlung in separate Pakete kommen, wird ein Kurzname für das
680@code{-otf} for OpenType fonts and @code{-type1} for PostScript Type 1 722Format mit einem Strich vorne zum Paketnamen hinzugefügt. Wir benutzen
681fonts. 723@code{-ttf} für TrueType-Schriftarten, @code{-otf} für OpenType-Schriftarten
724und @code{-type1} für PostScript-Typ-1-Schriftarten.
682 725
683 726
684@node Code-Stil 727@node Code-Stil
685@section Code-Stil 728@section Code-Stil
686 729
687Im Allgemeinen folgt unser Code den GNU Coding Standards (@pxref{Top,,, 730Im Allgemeinen folgt unser Code den GNU Coding Standards (siehe @ref{Top,,,
688standards, GNU Coding Standards}). Da diese aber nicht viel über Scheme zu 731standards, GNU Coding Standards}). Da diese aber nicht viel über Scheme zu
689sagen haben, folgen hier einige zusätzliche Regeln. 732sagen haben, folgen hier einige zusätzliche Regeln.
690 733
@@ -747,7 +790,7 @@ Ein paar in Guix eingeführte Sonderformen, wie zum Beispiel das
747sind in der Datei @file{.dir-locals.el} definiert, die Emacs automatisch 790sind in der Datei @file{.dir-locals.el} definiert, die Emacs automatisch
748benutzt. Beachten Sie auch, dass Emacs-Guix einen Modus namens 791benutzt. Beachten Sie auch, dass Emacs-Guix einen Modus namens
749@code{guix-devel-mode} bereitstellt, der Guix-Code richtig einrückt und 792@code{guix-devel-mode} bereitstellt, der Guix-Code richtig einrückt und
750hervorhebt (@pxref{Development,,, emacs-guix, The Emacs-Guix Reference 793hervorhebt (siehe @ref{Entwicklung,,, emacs-guix, The Emacs-Guix Reference
751Manual}). 794Manual}).
752 795
753@cindex Einrückung, Code- 796@cindex Einrückung, Code-
@@ -800,60 +843,61 @@ unter @uref{https://bugs.gnu.org/guix-patches}, wodurch wir den Überblick
800über Eingereichtes behalten können. Jede an diese Mailing-Liste gesendete 843über Eingereichtes behalten können. Jede an diese Mailing-Liste gesendete
801Nachricht bekommt eine neue Folgenummer zugewiesen, so dass man eine 844Nachricht bekommt eine neue Folgenummer zugewiesen, so dass man eine
802Folge-Email zur Einreichung an @code{@var{NNN}@@debbugs.gnu.org} senden 845Folge-Email zur Einreichung an @code{@var{NNN}@@debbugs.gnu.org} senden
803kann, wobei @var{NNN} für die Folgenummer steht (@pxref{Senden einer Patch-Reihe}). 846kann, wobei @var{NNN} für die Folgenummer steht (siehe @ref{Senden einer Patch-Reihe}).
804 847
805Bitte schreiben Sie Commit-Logs im ChangeLog-Format (@pxref{Change Logs,,, 848Bitte schreiben Sie Commit-Logs im ChangeLog-Format (siehe @ref{Change
806standards, GNU Coding Standards}); dazu finden Sie Beispiele unter den 849Logs,,, standards, GNU Coding Standards}); dazu finden Sie Beispiele unter
807bisherigen Commits. 850den bisherigen Commits.
808 851
809Bevor Sie einen Patch einreichen, der eine Paketdefinition hinzufügt oder 852Bevor Sie einen Patch einreichen, der eine Paketdefinition hinzufügt oder
810verändert, gehen Sie bitte diese Prüfliste durch: 853verändert, gehen Sie bitte diese Prüfliste durch:
811 854
812@enumerate 855@enumerate
813@item 856@item
814Wenn die Autoren der verpackten Software eine kryptographische Signatur für 857Wenn die Autoren der verpackten Software eine kryptografische Signatur
815den Tarball der Veröffentlichung anbieten, so machen Sie sich bitte die 858bzw. Beglaubigung für den Tarball der Veröffentlichung anbieten, so machen
816Mühe, die Echtheit des Archivs zu überprüfen. Für eine abgetrennte 859Sie sich bitte die Mühe, die Echtheit des Archivs zu überprüfen. Für eine
817GPG-Signaturdatei würden Sie das mit dem Befehl @code{gpg --verify} tun. 860abgetrennte GPG-Signaturdatei würden Sie das mit dem Befehl @code{gpg
861--verify} tun.
818 862
819@item 863@item
820Nehmen Sie sich die Zeit, eine passende Zusammenfassung und Beschreibung für 864Nehmen Sie sich die Zeit, eine passende Zusammenfassung und Beschreibung für
821das Paket zu verfassen. Unter @xref{Zusammenfassungen und Beschreibungen} finden Sie 865das Paket zu verfassen. Unter @ref{Zusammenfassungen und Beschreibungen} finden Sie
822dazu einige Richtlinien. 866dazu einige Richtlinien.
823 867
824@item 868@item
825Verwenden Sie @code{guix lint @var{Paket}}, wobei @var{Paket} das neue oder 869Verwenden Sie @code{guix lint @var{Paket}}, wobei @var{Paket} das neue oder
826geänderte Paket bezeichnet, und beheben Sie alle gemeldeten Fehler 870geänderte Paket bezeichnet, und beheben Sie alle gemeldeten Fehler (siehe
827(@pxref{Aufruf von guix lint}). 871@ref{Aufruf von guix lint}).
828 872
829@item 873@item
830Stellen Sie sicher, dass das Paket auf Ihrer Plattform erstellt werden kann, 874Stellen Sie sicher, dass das Paket auf Ihrer Plattform erstellt werden kann,
831indem Sie @code{guix build @var{Paket}} ausführen. 875indem Sie @code{guix build @var{Paket}} ausführen.
832 876
833@item 877@item
834We recommend you also try building the package on other supported 878Wir empfehlen, dass Sie auch versuchen, das Paket auf anderen unterstützten
835platforms. As you may not have access to actual hardware platforms, we 879Plattformen zu erstellen. Da Sie vielleicht keinen Zugang zu echter Hardware
836recommend using the @code{qemu-binfmt-service-type} to emulate them. In 880für diese Plattformen haben, empfehlen wir, den
837order to enable it, add the following service to the list of services in 881@code{qemu-binfmt-service-type} zu benutzen, um sie zu emulieren. Um ihn zu
838your @code{operating-system} configuration: 882aktivieren, fügen Sie den folgenden Dienst in die Liste der Dienste
883(»services«) in Ihrer @code{operating-system}-Konfiguration ein:
839 884
840@example 885@example
841(service qemu-binfmt-service-type 886(service qemu-binfmt-service-type
842 (qemu-binfmt-configuration 887 (qemu-binfmt-configuration
843 (platforms (lookup-qemu-platforms "arm" "aarch64" "ppc" "mips64el")) 888 (platforms (lookup-qemu-platforms "arm" "aarch64" "mips64el"))
844 (guix-support? #t))) 889 (guix-support? #t)))
845@end example 890@end example
846 891
847Then reconfigure your system. 892Rekonfigurieren Sie anschließend Ihr System.
848 893
849You can then build packages for different platforms by specifying the 894Sie nnen Pakete für andere Plattformen erstellen lassen, indem Sie die
850@code{--system} option. For example, to build the "hello" package for the 895Befehlszeilenoption @code{--system} angeben. Um zum Beispiel das Paket
851armhf, aarch64, powerpc, or mips64 architectures, you would run the 896»hello« für die Architekturen armhf, aarch64 oder mips64 erstellen zu
852following commands, respectively: 897lassen, rden Sie jeweils die folgenden Befehle angeben:
853@example 898@example
854guix build --system=armhf-linux --rounds=2 hello 899guix build --system=armhf-linux --rounds=2 hello
855guix build --system=aarch64-linux --rounds=2 hello 900guix build --system=aarch64-linux --rounds=2 hello
856guix build --system=powerpc-linux --rounds=2 hello
857guix build --system=mips64el-linux --rounds=2 hello 901guix build --system=mips64el-linux --rounds=2 hello
858@end example 902@end example
859 903
@@ -874,17 +918,18 @@ einzuspielen, die aber das gesamte System betreffen — gebündelt
874mitgelieferte Kopien würden dies verhindern. 918mitgelieferte Kopien würden dies verhindern.
875 919
876@item 920@item
877Take a look at the profile reported by @command{guix size} (@pxref{Aufruf von guix size}). This will allow you to notice references to other packages 921Schauen Sie sich das von @command{guix size} ausgegebene Profil an (siehe
878unwillingly retained. It may also help determine whether to split the 922@ref{Aufruf von guix size}). Dadurch können Sie Referenzen auf andere Pakete
879package (@pxref{Pakete mit mehreren Ausgaben.}), and which optional 923finden, die ungewollt vorhanden sind. Dies kann auch dabei helfen, zu
880dependencies should be used. In particular, avoid adding @code{texlive} as 924entscheiden, ob das Paket aufgespalten werden sollte (siehe @ref{Pakete mit mehreren Ausgaben.}) und welche optionalen Abhängigkeiten verwendet
881a dependency: because of its extreme size, use @code{texlive-tiny} or 925werden sollten. Dabei sollten Sie es wegen seiner enormen Größe insbesondere
882@code{texlive-union} instead. 926vermeiden, @code{texlive} als eine Abhängigkeit hinzuzufügen; benutzen Sie
927stattdessen @code{texlive-tiny} oder @code{texlive-union}.
883 928
884@item 929@item
885Achten Sie bei wichtigen Änderungen darauf, dass abhängige Pakete (falls 930Achten Sie bei wichtigen Änderungen darauf, dass abhängige Pakete (falls
886vorhanden) nicht von der Änderung beeinträchtigt werden; @code{guix refresh 931vorhanden) nicht von der Änderung beeinträchtigt werden; @code{guix refresh
887--list-dependent @var{Paket}} hilft Ihnen dabei (@pxref{Aufruf von guix refresh}). 932--list-dependent @var{Paket}} hilft Ihnen dabei (siehe @ref{Aufruf von guix refresh}).
888 933
889@c See <https://lists.gnu.org/archive/html/guix-devel/2016-10/msg00933.html>. 934@c See <https://lists.gnu.org/archive/html/guix-devel/2016-10/msg00933.html>.
890@cindex Branching-Strategie 935@cindex Branching-Strategie
@@ -899,9 +944,9 @@ statt, nach ungefähr diesen Regeln:
899 944
900@item zwischen 300 und 1200 abhängige Pakete 945@item zwischen 300 und 1200 abhängige Pakete
901@code{staging}-Branch (störfreie Änderungen). Dieser Branch wird circa alle 946@code{staging}-Branch (störfreie Änderungen). Dieser Branch wird circa alle
9023 Wochen in @code{master} gemerget. Themenbezogene Änderungen (z.B. eine 9473 Wochen mit @code{master} zusammengeführt. Themenbezogene Änderungen
903Aktualisierung der GNOME-Plattform) können stattdessen auch auf einem 948(z.B.@: eine Aktualisierung der GNOME-Plattform) können stattdessen auch auf
904eigenen Branch umgesetzt werden (wie @code{gnome-updates}). 949einem eigenen Branch umgesetzt werden (wie @code{gnome-updates}).
905 950
906@item mehr als 1200 abhängige Pakete 951@item mehr als 1200 abhängige Pakete
907@code{core-updates}-Branch (kann auch größere und womöglich andere Software 952@code{core-updates}-Branch (kann auch größere und womöglich andere Software
@@ -932,7 +977,7 @@ Sie typischerweise, ob eine unabhängige Erstellung des Pakets genau dasselbe
932Ergebnis wie Ihre Erstellung hat, Bit für Bit. 977Ergebnis wie Ihre Erstellung hat, Bit für Bit.
933 978
934Dies können Sie leicht tun, indem Sie dasselbe Paket mehrere Male 979Dies können Sie leicht tun, indem Sie dasselbe Paket mehrere Male
935hintereinander auf Ihrer Maschine erstellen (@pxref{Aufruf von guix build}): 980hintereinander auf Ihrer Maschine erstellen (siehe @ref{Aufruf von guix build}):
936 981
937@example 982@example
938guix build --rounds=2 mein-paket 983guix build --rounds=2 mein-paket
@@ -942,20 +987,22 @@ Dies reicht aus, um eine ganze Klasse häufiger Ursachen von
942Nichtdeterminismus zu finden, wie zum Beispiel Zeitstempel oder 987Nichtdeterminismus zu finden, wie zum Beispiel Zeitstempel oder
943zufallsgenerierte Ausgaben im Ergebnis der Erstellung. 988zufallsgenerierte Ausgaben im Ergebnis der Erstellung.
944 989
945Another option is to use @command{guix challenge} (@pxref{Aufruf von guix challenge}). You may run it once the package has been committed and built 990Eine weitere Möglichkeit ist, @command{guix challenge} (siehe @ref{Aufruf von guix challenge}) zu benutzen. Sie können es ausführen, sobald ein Paket
946by @code{@value{SUBSTITUTE-SERVER}} to check whether it obtains the same 991commitet und von @code{@value{SUBSTITUTE-SERVER}} erstellt wurde, um zu
947result as you did. Better yet: Find another machine that can build it and 992sehen, ob dort dasselbe Ergebnis wie bei Ihnen geliefert wurde. Noch besser:
948run @command{guix publish}. Since the remote build machine is likely 993Finden Sie eine andere Maschine, die das Paket erstellen kann, und führen
949different from yours, this can catch non-determinism issues related to the 994Sie @command{guix publish} aus. Da sich die entfernte Erstellungsmaschine
950hardware---e.g., use of different instruction set extensions---or to the 995wahrscheinlich von Ihrer unterscheidet, können Sie auf diese Weise Probleme
951operating system kernel---e.g., reliance on @code{uname} or @file{/proc} 996durch Nichtdeterminismus erkennen, die mit der Hardware zu tun haben — zum
952files. 997Beispiel die Nutzung anderer Befehlssatzerweiterungen — oder mit dem
998Betriebssystem-Kernel — zum Beispiel, indem @code{uname} oder
999@file{/proc}-Dateien verwendet werden.
953 1000
954@item 1001@item
955Beim Schreiben von Dokumentation achten Sie bitte auf eine 1002Beim Schreiben von Dokumentation achten Sie bitte auf eine
956geschlechtsneutrale Wortwahl, wenn Sie sich auf Personen beziehen, wie 1003geschlechtsneutrale Wortwahl, wenn Sie sich auf Personen beziehen, wie
957@uref{https://en.wikipedia.org/wiki/Singular_they, »they«@comma{} 1004@uref{https://en.wikipedia.org/wiki/Singular_they, »they«@comma{}
958»their«@comma{} »them« im Singular}, und so weiter. 1005»their«@comma{} »them« im Singular} und so weiter.
959 1006
960@item 1007@item
961Stelllen Sie sicher, dass Ihr Patch nur einen Satz zusammengehöriger 1008Stelllen Sie sicher, dass Ihr Patch nur einen Satz zusammengehöriger
@@ -969,11 +1016,11 @@ zusammen mit Fehlerbehebungen für das Paket.
969@item 1016@item
970Bitte befolgen Sie unsere Richtlinien für die Code-Formatierung, womöglich 1017Bitte befolgen Sie unsere Richtlinien für die Code-Formatierung, womöglich
971wollen Sie dies automatisch tun lassen durch das Skript 1018wollen Sie dies automatisch tun lassen durch das Skript
972@command{etc/indent-code.el} (@pxref{Formatierung von Code}). 1019@command{etc/indent-code.el} (siehe @ref{Formatierung von Code}).
973 1020
974@item 1021@item
975Benutzen Sie, wenn möglich, Spiegelserver (Mirrors) in der Quell-URL 1022Benutzen Sie, wenn möglich, Spiegelserver (Mirrors) in der Quell-URL (siehe
976(@pxref{Aufruf von guix download}). Verwenden Sie verlässliche URLs, keine 1023@ref{Aufruf von guix download}). Verwenden Sie verlässliche URLs, keine
977automatisch generierten. Zum Beispiel sind Archive von GitHub nicht immer 1024automatisch generierten. Zum Beispiel sind Archive von GitHub nicht immer
978identisch von einer Generation auf die nächste, daher ist es in diesem Fall 1025identisch von einer Generation auf die nächste, daher ist es in diesem Fall
979besser, als Quelle einen Klon des Repositorys zu verwenden. Benutzen Sie 1026besser, als Quelle einen Klon des Repositorys zu verwenden. Benutzen Sie
@@ -984,7 +1031,7 @@ wirklich und wenn sich der Name ändert, stimmt die URL nicht mehr.
984 1031
985Bitte benutzen Sie @samp{[PATCH] @dots{}} als Betreff, wenn Sie einen Patch 1032Bitte benutzen Sie @samp{[PATCH] @dots{}} als Betreff, wenn Sie einen Patch
986an die Mailing-Liste schicken. Sie können dazu Ihr E-Mail-Programm oder den 1033an die Mailing-Liste schicken. Sie können dazu Ihr E-Mail-Programm oder den
987Befehl @command{git send-email} benutzen (@pxref{Senden einer Patch-Reihe}). Wir bevorzugen es, Patches als reine Textnachrichten zu erhalten, 1034Befehl @command{git send-email} benutzen (siehe @ref{Senden einer Patch-Reihe}). Wir bevorzugen es, Patches als reine Textnachrichten zu erhalten,
988entweder eingebettet (inline) oder als MIME-Anhänge. Sie sind dazu 1035entweder eingebettet (inline) oder als MIME-Anhänge. Sie sind dazu
989angehalten, zu überprüfen, ob Ihr Mail-Programm solche Dinge wie 1036angehalten, zu überprüfen, ob Ihr Mail-Programm solche Dinge wie
990Zeilenumbrüche oder die Einrückung verändert, wodurch die Patches womöglich 1037Zeilenumbrüche oder die Einrückung verändert, wodurch die Patches womöglich
@@ -1000,9 +1047,9 @@ Sie eine E-Mail an @email{@var{NNN}-done@@debbugs.gnu.org} senden.
1000@cindex @code{git-send-email} 1047@cindex @code{git-send-email}
1001 1048
1002@c Debbugs bug: https://debbugs.gnu.org/db/15/15361.html 1049@c Debbugs bug: https://debbugs.gnu.org/db/15/15361.html
1003Wenn Sie eine Patch-Reihe senden (z.B. mit @code{git send-email}), schicken 1050Wenn Sie eine Patch-Reihe senden (z.B.@: mit @code{git send-email}),
1004Sie bitte als Erstes eine Nachricht an @email{guix-patches@@gnu.org} und 1051schicken Sie bitte als Erstes eine Nachricht an
1005dann nachfolgende Patches an @email{@var{NNN}@@debbugs.gnu.org}, um 1052@email{guix-patches@@gnu.org} und dann nachfolgende Patches an
1006sicherzustellen, dass sie zusammen bearbeitet werden. Siehe 1053@email{@var{NNN}@@debbugs.gnu.org}, um sicherzustellen, dass sie zusammen
1007@uref{https://debbugs.gnu.org/Advanced.html, die Debbugs-Dokumentation} für 1054bearbeitet werden. Siehe @uref{https://debbugs.gnu.org/Advanced.html, die
1008weitere Informationen. 1055Debbugs-Dokumentation} für weitere Informationen.
diff --git a/doc/guix.de.texi b/doc/guix.de.texi
index 83dae0d3ecb..419d40379e6 100644
--- a/doc/guix.de.texi
+++ b/doc/guix.de.texi
@@ -32,9 +32,9 @@ Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{}
322015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017 322015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017
33Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019 Ricardo 33Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019 Ricardo
34Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 34Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{}
352016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018 352016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018,
36Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright 362019 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@*
37@copyright{} 2016, 2017 ng0@* Copyright @copyright{} 2016, 2017, 37Copyright @copyright{} 2016, 2017 ng0@* Copyright @copyright{} 2016, 2017,
382018, 2019 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* 382018, 2019 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@*
39Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 39Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016,
402017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018 402017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018
@@ -46,7 +46,7 @@ Christopher Allan Webber@* Copyright @copyright{} 2017, 2018 Marius Bakke@*
46Copyright @copyright{} 2017 Hartmut Goebel@* Copyright @copyright{} 2017 46Copyright @copyright{} 2017 Hartmut Goebel@* Copyright @copyright{} 2017
47Maxim Cournoyer@* Copyright @copyright{} 2017, 2018 Tobias Geerinckx-Rice@* 47Maxim Cournoyer@* Copyright @copyright{} 2017, 2018 Tobias Geerinckx-Rice@*
48Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 48Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017
49Andy Wingo@* Copyright @copyright{} 2017, 2018 Arun Isaac@* Copyright 49Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019 Arun Isaac@* Copyright
50@copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* 50@copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@*
51Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike 51Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike
52Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright 52Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright
@@ -114,10 +114,10 @@ geschrieben wurde.
114@c TRANSLATORS: You can replace the following paragraph with information on 114@c TRANSLATORS: You can replace the following paragraph with information on
115@c how to join your own translation team and how to report issues with the 115@c how to join your own translation team and how to report issues with the
116@c translation. 116@c translation.
117Dieses Handbuch ist auch auf Englisch (@pxref{Top,,, guix, GNU Guix 117Dieses Handbuch ist auch auf Englisch (siehe @ref{Top,,, guix, GNU Guix
118Reference Manual}) und Französisch verfügbar (@pxref{Top,,, guix.fr, Manuel 118Reference Manual}) und Französisch verfügbar (siehe @ref{Top,,, guix.fr,
119de référence de GNU Guix}). Wenn Sie es in Ihre eigene Sprache übersetzen 119Manuel de référence de GNU Guix}). Wenn Sie es in Ihre eigene Sprache
120möchten, dann sind Sie beim 120übersetzen möchten, dann sind Sie beim
121@uref{https://translationproject.org/domain/guix-manual.html, Translation 121@uref{https://translationproject.org/domain/guix-manual.html, Translation
122Project} herzlich willkommen. 122Project} herzlich willkommen.
123 123
@@ -126,7 +126,7 @@ Project} herzlich willkommen.
126* Installation:: Guix installieren. 126* Installation:: Guix installieren.
127* Systeminstallation:: Das ganze Betriebssystem installieren. 127* Systeminstallation:: Das ganze Betriebssystem installieren.
128* Paketverwaltung:: Pakete installieren, aktualisieren usw. 128* Paketverwaltung:: Pakete installieren, aktualisieren usw.
129* Development:: Guix-aided software development. 129* Entwicklung:: Von Guix unterstützte Softwareentwicklung.
130* Programmierschnittstelle:: Guix in Scheme verwenden. 130* Programmierschnittstelle:: Guix in Scheme verwenden.
131* Zubehör:: Befehle zur Paketverwaltung. 131* Zubehör:: Befehle zur Paketverwaltung.
132* Systemkonfiguration:: Das Betriebssystem konfigurieren. 132* Systemkonfiguration:: Das Betriebssystem konfigurieren.
@@ -153,8 +153,8 @@ Einführung
153 153
154 154
155 155
156* Managing Software the Guix Way:: What's special. 156* Auf Guix-Art Software verwalten:: Was Guix besonders macht.
157* GNU-Distribution:: The packages and tools. 157* GNU-Distribution:: Die Pakete und Werkzeuge.
158 158
159Installation 159Installation
160 160
@@ -163,7 +163,7 @@ Installation
163* Aus Binärdatei installieren:: Guix installieren, ohne Zeit zu verlieren! 163* Aus Binärdatei installieren:: Guix installieren, ohne Zeit zu verlieren!
164* Voraussetzungen:: Zum Erstellen und Benutzen von Guix nötige 164* Voraussetzungen:: Zum Erstellen und Benutzen von Guix nötige
165 Software. 165 Software.
166* Die Testsuite laufen lassen:: Guix testen. 166* Den Testkatalog laufen lassen:: Guix testen.
167* Den Daemon einrichten:: Wie man die Umgebung des Erstellungs-Daemons 167* Den Daemon einrichten:: Wie man die Umgebung des Erstellungs-Daemons
168 einrichtet. 168 einrichtet.
169* Aufruf des guix-daemon:: Den Erstellungs-Daemon laufen lassen. 169* Aufruf des guix-daemon:: Den Erstellungs-Daemon laufen lassen.
@@ -189,10 +189,20 @@ Systeminstallation
189* Installation von USB-Stick oder DVD:: Das Installationsmedium 189* Installation von USB-Stick oder DVD:: Das Installationsmedium
190 vorbereiten. 190 vorbereiten.
191* Vor der Installation:: Netzwerkanbindung, Partitionierung etc. 191* Vor der Installation:: Netzwerkanbindung, Partitionierung etc.
192* Fortfahren mit der Installation:: Die Hauptsache. 192* Geführte grafische Installation:: Leichte grafische Installation.
193* Installing Guix in a VM:: Guix System playground. 193* Manuelle Installation:: Manuelle Installation für Zauberer.
194* Nach der Systeminstallation:: Wenn die Installation erfolgreich war.
195* Guix in einer VM installieren:: Ein »Guix System«-Spielplatz.
194* Ein Abbild zur Installation erstellen:: Wie ein solches entsteht. 196* Ein Abbild zur Installation erstellen:: Wie ein solches entsteht.
195 197
198Manuelle Installation
199
200
201
202* Tastaturbelegung und Netzwerkanbindung und Partitionierung:: Erstes
203 Einrichten.
204* Fortfahren mit der Installation:: Installieren.
205
196Paketverwaltung 206Paketverwaltung
197 207
198 208
@@ -223,7 +233,7 @@ Substitute
223* Vom Vertrauen gegenüber Binärdateien:: Wie können Sie diesem binären 233* Vom Vertrauen gegenüber Binärdateien:: Wie können Sie diesem binären
224 Blob trauen? 234 Blob trauen?
225 235
226Development 236Entwicklung
227 237
228 238
229 239
@@ -258,12 +268,12 @@ Zubehör
258* Aufruf von guix edit:: Paketdefinitionen bearbeiten. 268* Aufruf von guix edit:: Paketdefinitionen bearbeiten.
259* Aufruf von guix download:: Herunterladen einer Datei und Ausgabe ihres 269* Aufruf von guix download:: Herunterladen einer Datei und Ausgabe ihres
260 Hashes. 270 Hashes.
261* Aufruf von guix hash:: Den kryptographischen Hash einer Datei 271* Aufruf von guix hash:: Den kryptografischen Hash einer Datei
262 berechnen. 272 berechnen.
263* Aufruf von guix import:: Paketdefinitionen importieren. 273* Aufruf von guix import:: Paketdefinitionen importieren.
264* Aufruf von guix refresh:: Paketdefinitionen aktualisieren. 274* Aufruf von guix refresh:: Paketdefinitionen aktualisieren.
265* Aufruf von guix lint:: Fehler in Paketdefinitionen finden. 275* Aufruf von guix lint:: Fehler in Paketdefinitionen finden.
266* Aufruf von guix size:: Plattenverbrauch profilieren. 276* Aufruf von guix size:: Plattenplatzverbrauch profilieren.
267* Aufruf von guix graph:: Den Paketgraphen visualisieren. 277* Aufruf von guix graph:: Den Paketgraphen visualisieren.
268* Aufruf von guix publish:: Substitute teilen. 278* Aufruf von guix publish:: Substitute teilen.
269* Aufruf von guix challenge:: Die Substitut-Server anfechten. 279* Aufruf von guix challenge:: Die Substitut-Server anfechten.
@@ -294,6 +304,7 @@ Systemkonfiguration
294* Dateisysteme:: Die Dateisystemeinbindungen konfigurieren. 304* Dateisysteme:: Die Dateisystemeinbindungen konfigurieren.
295* Zugeordnete Geräte:: Näheres zu blockorientierten Speichermedien. 305* Zugeordnete Geräte:: Näheres zu blockorientierten Speichermedien.
296* Benutzerkonten:: Benutzerkonten festlegen. 306* Benutzerkonten:: Benutzerkonten festlegen.
307* Tastaturbelegung:: Wie das System Tastendrücke interpretiert.
297* Locales:: Sprache und kulturelle Konventionen. 308* Locales:: Sprache und kulturelle Konventionen.
298* Dienste:: Systemdienste festlegen. 309* Dienste:: Systemdienste festlegen.
299* Setuid-Programme:: Mit Administratorrechten startende Programme. 310* Setuid-Programme:: Mit Administratorrechten startende Programme.
@@ -302,7 +313,8 @@ Systemkonfiguration
302* Initiale RAM-Disk:: Linux-libre hochfahren. 313* Initiale RAM-Disk:: Linux-libre hochfahren.
303* Bootloader-Konfiguration:: Den Bootloader konfigurieren. 314* Bootloader-Konfiguration:: Den Bootloader konfigurieren.
304* Aufruf von guix system:: Instanziierung einer Systemkonfiguration. 315* Aufruf von guix system:: Instanziierung einer Systemkonfiguration.
305* Running Guix in a VM:: How to run Guix System in a virtual machine. 316* Guix in einer VM starten:: Wie man »Guix System« in einer virtuellen
317 Maschine startet.
306* Dienste definieren:: Neue Dienstdefinitionen hinzufügen. 318* Dienste definieren:: Neue Dienstdefinitionen hinzufügen.
307 319
308Dienste 320Dienste
@@ -354,59 +366,67 @@ Dienste definieren
354@chapter Einführung 366@chapter Einführung
355 367
356@cindex Zweck 368@cindex Zweck
357GNU Guix@footnote{``Guix'' is pronounced like ``geeks'', or ``ɡiːks'' using 369GNU Guix@footnote{»Guix« wird wie »geeks« ausgesprochen, also als »ɡiːks« in
358the international phonetic alphabet (IPA).} is a package management tool for 370der Notation des Internationalen Phonetischen Alphabets (IPA).} ist ein
359and distribution of the GNU system. Guix makes it easy for unprivileged 371Werkzeug zur Verwaltung von Softwarepaketen für das GNU-System und eine
360users to install, upgrade, or remove software packages, to roll back to a 372Distribution desselbigen GNU-Systems. Guix macht es @emph{nicht} mit
361previous package set, to build packages from source, and generally assists 373besonderen Berechtigungen ausgestatteten, »unprivilegierten« Nutzern leicht,
362with the creation and maintenance of software environments. 374Softwarepakete zu installieren, zu aktualisieren oder zu entfernen, zu einem
375vorherigen Satz von Paketen zurückzuwechseln, Pakete aus ihrem Quellcode
376heraus zu erstellen und hilft allgemein bei der Erzeugung und Wartung von
377Software-Umgebungen.
363 378
364@cindex Guix System 379@cindex Guix System
365@cindex GuixSD, now Guix System 380@cindex GuixSD, was jetzt Guix System heißt
366@cindex Guix System Distribution, now Guix System 381@cindex Guix System Distribution, welche jetzt Guix System heißt
367You can install GNU@tie{}Guix on top of an existing GNU/Linux system where 382Sie können GNU@tie{}Guix auf ein bestehendes GNU/Linux-System aufsetzen, wo
368it complements the available tools without interference 383es die bereits verfügbaren Werkzeuge ergänzt, ohne zu stören (siehe
369(@pxref{Installation}), or you can use it as a standalone operating system 384@ref{Installation}), oder Sie können es als eine eigenständige
370distribution, @dfn{Guix@tie{}System}@footnote{We used to refer to Guix 385Betriebssystem-Distribution namens @dfn{Guix@tie{}System}
371System as ``Guix System Distribution'' or ``GuixSD''. We now consider it 386verwenden@footnote{Der Name @dfn{Guix@tie{}System} wird auf englische Weise
372makes more sense to group everything under the ``Guix'' banner since, after 387ausgesprochen. Früher hatten wir »Guix System« als »Guix System
373all, Guix System is readily available through the @command{guix system} 388Distribution« bezeichnet und mit »GuixSD« abgekürzt. Wir denken mittlerweile
374command, even if you're using a different distro underneath!}. @xref{GNU-Distribution}. 389aber, dass es sinnvoller ist, alles unter der Fahne von Guix zu gruppieren,
390weil schließlich »Guix System« auch über den Befehl @command{guix system}
391verfügbar ist, selbst wenn Sie Guix auf einer fremden Distribution
392benutzen!}. Siehe @ref{GNU-Distribution}.
375 393
376@menu 394@menu
377* Managing Software the Guix Way:: What's special. 395* Auf Guix-Art Software verwalten:: Was Guix besonders macht.
378* GNU-Distribution:: The packages and tools. 396* GNU-Distribution:: Die Pakete und Werkzeuge.
379@end menu 397@end menu
380 398
381@node Managing Software the Guix Way 399@node Auf Guix-Art Software verwalten
382@section Managing Software the Guix Way 400@section Auf Guix-Art Software verwalten
383 401
384@cindex Benutzeroberflächen 402@cindex Benutzeroberflächen
385Guix provides a command-line package management interface (@pxref{Paketverwaltung}), tools to help with software development (@pxref{Development}), 403Guix bietet eine befehlszeilenbasierte Paketverwaltungsschnittstelle (siehe
386command-line utilities for more advanced usage, (@pxref{Zubehör}), as well 404@ref{Aufruf von guix package}), Werkzeuge als Hilfestellung bei der
387as Scheme programming interfaces (@pxref{Programmierschnittstelle}). 405Software-Entwicklung (siehe @ref{Entwicklung}), Befehlszeilenwerkzeuge für
406fortgeschrittenere Nutzung (siehe @ref{Zubehör}) sowie Schnittstellen zur
407Programmierung in Scheme (siehe @ref{Programmierschnittstelle}).
388@cindex Erstellungs-Daemon 408@cindex Erstellungs-Daemon
389Der @dfn{Erstellungs-Daemon} ist für das Erstellen von Paketen im Auftrag 409Der @dfn{Erstellungs-Daemon} ist für das Erstellen von Paketen im Auftrag
390von Nutzern verantwortlich (@pxref{Den Daemon einrichten}) und für das 410von Nutzern verantwortlich (siehe @ref{Den Daemon einrichten}) und für das
391Herunterladen vorerstellter Binärdateien aus autorisierten Quellen 411Herunterladen vorerstellter Binärdateien aus autorisierten Quellen (siehe
392(@pxref{Substitute}). 412@ref{Substitute}).
393 413
394@cindex Erweiterbarkeit der Distribution 414@cindex Erweiterbarkeit der Distribution
395@cindex Anpassung, von Paketen 415@cindex Anpassung, von Paketen
396Guix enthält Paketdefinitionen für viele Pakete, von GNU und nicht von GNU, 416Guix enthält Paketdefinitionen für viele Pakete, von GNU und nicht von GNU,
397die alle @uref{https://www.gnu.org/philosophy/free-sw.html, die Freiheit des 417die alle @uref{https://www.gnu.org/philosophy/free-sw.html, die Freiheit des
398Computernutzers respektieren}. Es ist @emph{erweiterbar}: Nutzer können ihre 418Computernutzers respektieren}. Es ist @emph{erweiterbar}: Nutzer können ihre
399eigenen Paketdefinitionen schreiben (@pxref{Pakete definieren}) und sie als 419eigenen Paketdefinitionen schreiben (siehe @ref{Pakete definieren}) und sie
400unabhängige Paketmodule verfügbar machen (@pxref{Paketmodule}). Es ist 420als unabhängige Paketmodule verfügbar machen (siehe @ref{Paketmodule}). Es ist auch @emph{anpassbar}: Nutzer können spezialisierte
401auch @emph{anpassbar}: Nutzer können spezialisierte Paketdefinitionen aus 421Paketdefinitionen aus bestehenden @emph{ableiten}, auch von der Befehlszeile
402bestehenden @emph{ableiten}, auch von der Befehlszeile (@pxref{Paketumwandlungsoptionen}). 422(siehe @ref{Paketumwandlungsoptionen}).
403 423
404@cindex funktionale Paketverwaltung 424@cindex funktionale Paketverwaltung
405@cindex Isolierung 425@cindex Isolierung
406Intern implementiert Guix die Disziplin der @dfn{funktionalen 426Intern implementiert Guix die Disziplin der @dfn{funktionalen
407Paketverwaltung}, zu der Nix schon die Pionierarbeit geleistet hat 427Paketverwaltung}, zu der Nix schon die Pionierarbeit geleistet hat (siehe
408(@pxref{Danksagungen}). In Guix wird der Prozess, ein Paket zu erstellen 428@ref{Danksagungen}). In Guix wird der Prozess, ein Paket zu erstellen und
409und zu installieren, als eine @emph{Funktion} im mathematischen Sinn 429zu installieren, als eine @emph{Funktion} im mathematischen Sinn
410aufgefasst. Diese Funktion hat Eingaben, wie zum Beispiel 430aufgefasst. Diese Funktion hat Eingaben, wie zum Beispiel
411Erstellungs-Skripts, einen Compiler und Bibliotheken, und liefert ein 431Erstellungs-Skripts, einen Compiler und Bibliotheken, und liefert ein
412installiertes Paket. Als eine reine Funktion hängt sein Ergebnis allein von 432installiertes Paket. Als eine reine Funktion hängt sein Ergebnis allein von
@@ -422,36 +442,37 @@ dies zu erreichen, laufen Erstellungsprozesse in isolieren Umgebungen
422@cindex Store 442@cindex Store
423Das Ergebnis von Paketerstellungsfunktionen wird im Dateisystem 443Das Ergebnis von Paketerstellungsfunktionen wird im Dateisystem
424@dfn{zwischengespeichert} in einem besonderen Verzeichnis, was als @dfn{der 444@dfn{zwischengespeichert} in einem besonderen Verzeichnis, was als @dfn{der
425Store} bezeichnet wird (@pxref{Der Store}). Jedes Paket wird in sein eigenes 445Store} bezeichnet wird (siehe @ref{Der Store}). Jedes Paket wird in sein
426Verzeichnis im Store installiert — standardmäßig ist er unter 446eigenes Verzeichnis im Store installiert — standardmäßig ist er unter
427@file{/gnu/store} zu finden. Der Verzeichnisname enthält einen Hash aller 447@file{/gnu/store} zu finden. Der Verzeichnisname enthält einen Hash aller
428Eingaben, anhand derer das Paket erzeugt wurde, somit hat das Ändern einer 448Eingaben, anhand derer das Paket erzeugt wurde, somit hat das Ändern einer
429Eingabe einen völlig anderen Verzeichnisnamen zur Folge. 449Eingabe einen völlig anderen Verzeichnisnamen zur Folge.
430 450
431Dieses Vorgehen ist die Grundlage für die Guix auszeichnenden 451Dieses Vorgehen ist die Grundlage für die Guix auszeichnenden
432Funktionalitäten: Unterstützung transaktionsbasierter Paketaktualisierungen 452Funktionalitäten: Unterstützung transaktionsbasierter Paketaktualisierungen
433und -rückstufungen, Installation von Paketen als einfacher Nutzer sowie 453und -rücksetzungen, Installation von Paketen als einfacher Nutzer sowie
434Garbage Collection für Pakete (@pxref{Funktionalitäten}). 454Garbage Collection für Pakete (siehe @ref{Funktionalitäten}).
435 455
436 456
437@node GNU-Distribution 457@node GNU-Distribution
438@section GNU-Distribution 458@section GNU-Distribution
439 459
440@cindex Guix System 460@cindex Guix System
441Guix comes with a distribution of the GNU system consisting entirely of free 461Mit Guix kommt eine Distribution des GNU-Systems, die nur aus freier
442software@footnote{The term ``free'' here refers to the 462Software@footnote{Die Bezeichnung »frei« steht hier für die
443@url{http://www.gnu.org/philosophy/free-sw.html,freedom provided to users of 463@url{http://www.gnu.org/philosophy/free-sw.html,Freiheiten, die Nutzern der
444that software}.}. The distribution can be installed on its own 464Software geboten werden}.} besteht. Die Distribution kann für sich allein
445(@pxref{Systeminstallation}), but it is also possible to install Guix as a 465installiert werden (siehe @ref{Systeminstallation}), aber Guix kann auch
446package manager on top of an installed GNU/Linux system 466auf einem bestehenden GNU/Linux-System installiert werden. Wenn wir die
447(@pxref{Installation}). When we need to distinguish between the two, we 467Anwendungslle unterscheiden möchten, bezeichnen wir die alleinstehende
448refer to the standalone distribution as Guix@tie{}System. 468Distribution als »Guix@tie{}System« (mit englischer Aussprache).
449 469
450Die Distribution stellt den Kern der GNU-Pakete, also insbesondere GNU libc, 470Die Distribution stellt den Kern der GNU-Pakete, also insbesondere GNU libc,
451GCC und Binutils, sowie zahlreiche zum GNU-Projekt gehörende und nicht dazu 471GCC und Binutils, sowie zahlreiche zum GNU-Projekt gehörende und nicht dazu
452gehörende Anwendungen zur Verfügung. Die vollständige Liste verfügbarer 472gehörende Anwendungen zur Verfügung. Die vollständige Liste verfügbarer
453Pakete können Sie @url{http://www.gnu.org/software/guix/packages,online} 473Pakete können Sie @url{http://www.gnu.org/software/guix/packages,online}
454einsehen, oder indem Sie @command{guix package} ausführen (@pxref{Aufruf von guix package}): 474einsehen, oder indem Sie @command{guix package} ausführen (siehe
475@ref{Aufruf von guix package}):
455 476
456@example 477@example
457guix package --list-available 478guix package --list-available
@@ -480,7 +501,7 @@ ARMv7-A-Architektur mit »hard float«, Thumb-2 und NEON, für die EABI
480@item aarch64-linux 501@item aarch64-linux
48164-Bit-ARMv8-A-Prozessoren, little-endian, Linux-Libre als Kernel. Derzeit 50264-Bit-ARMv8-A-Prozessoren, little-endian, Linux-Libre als Kernel. Derzeit
482ist dies noch in der Erprobungsphase mit begrenzter Unterstützung. Unter 503ist dies noch in der Erprobungsphase mit begrenzter Unterstützung. Unter
483@xref{Mitwirken} steht, wie Sie dabei helfen können! 504@ref{Mitwirken} steht, wie Sie dabei helfen können!
484 505
485@item mips64el-linux 506@item mips64el-linux
48664-Bit-MIPS-Prozessoren, little-endian, insbesondere die Loongson-Reihe, 50764-Bit-MIPS-Prozessoren, little-endian, insbesondere die Loongson-Reihe,
@@ -488,22 +509,24 @@ n32-ABI, mit Linux-Libre als Kernel.
488 509
489@end table 510@end table
490 511
491With Guix@tie{}System, you @emph{declare} all aspects of the operating 512Mit Guix@tie{}System @emph{deklarieren} Sie alle Aspekte der
492system configuration and Guix takes care of instantiating the configuration 513Betriebssystemkonfiguration und Guix kümmert sich darum, die Konfiguration
493in a transactional, reproducible, and stateless fashion (@pxref{Systemkonfiguration}). Guix System uses the Linux-libre kernel, the Shepherd 514auf transaktionsbasierte, reproduzierbare und zustandslose Weise zu
494initialization system (@pxref{Einführung,,, shepherd, The GNU Shepherd 515instanziieren (siehe @ref{Systemkonfiguration}). Guix System benutzt den
495Manual}), the well-known GNU utilities and tool chain, as well as the 516Kernel Linux-libre, das Shepherd-Initialisierungssystem (siehe
496graphical environment or system services of your choice. 517@ref{Einführung,,, shepherd, The GNU Shepherd Manual}), die wohlbekannten
518GNU-Werkzeuge mit der zugehörigen Werkzeugkette sowie die grafische Umgebung
519und Systemdienste Ihrer Wahl.
497 520
498Guix System is available on all the above platforms except 521Guix System ist auf allen oben genannten Plattformen außer
499@code{mips64el-linux}. 522@code{mips64el-linux} verfügbar.
500 523
501@noindent 524@noindent
502Informationen, wie auf andere Architekturen oder Kernels portiert werden 525Informationen, wie auf andere Architekturen oder Kernels portiert werden
503kann, finden Sie im Abschnitt @pxref{Portierung}. 526kann, finden Sie im Abschnitt @ref{Portierung}.
504 527
505Diese Distribution aufzubauen basiert auf Kooperation, und Sie sind herzlich 528Diese Distribution aufzubauen basiert auf Kooperation, und Sie sind herzlich
506eingeladen, dabei mitzumachen! Im Abschnitt @xref{Mitwirken} stehen 529eingeladen, dabei mitzumachen! Im Abschnitt @ref{Mitwirken} stehen
507weitere Informationen, wie Sie uns helfen können. 530weitere Informationen, wie Sie uns helfen können.
508 531
509 532
@@ -514,37 +537,40 @@ weitere Informationen, wie Sie uns helfen können.
514@cindex Guix installieren 537@cindex Guix installieren
515 538
516@quotation Anmerkung 539@quotation Anmerkung
517We recommend the use of this 540Wir empfehlen, dieses
518@uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, 541@uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh,
519shell installer script} to install Guix on top of a running GNU/Linux 542Shell-basierte Installationsskript} zu benutzen, um Guix auf ein bestehendes
520system, thereafter called a @dfn{foreign distro}.@footnote{This section is 543GNU/Linux-System zu installieren — im Folgenden als @dfn{Fremddistribution}
521concerned with the installation of the package manager, which can be done on 544bezeichnet.@footnote{Dieser Abschnitt bezieht sich auf die Installation des
522top of a running GNU/Linux system. If, instead, you want to install the 545Paketverwaltungswerkzeugs, das auf ein bestehendes GNU/Linux-System
523complete GNU operating system, @pxref{Systeminstallation}.} The script 546aufsetzend installiert werden kann. Wenn Sie stattdessen das vollständige
524automates the download, installation, and initial configuration of Guix. It 547GNU-Betriebssystem installieren möchten, lesen Sie @ref{Systeminstallation}.} Das Skript automatisiert das Herunterladen, das Installieren
525should be run as the root user. 548und die anfängliche Konfiguration von Guix. Es sollte als der
549Administratornutzer »root« ausgeführt werden.
526@end quotation 550@end quotation
527 551
528@cindex Fremddistribution 552@cindex Fremddistribution
529@cindex Verzeichnisse auf einer Fremddistribution 553@cindex Verzeichnisse auf einer Fremddistribution
530When installed on a foreign distro, GNU@tie{}Guix complements the available 554Wenn es auf einer Fremddistribution installiert wird, ergänzt GNU@tie{}Guix
531tools without interference. Its data lives exclusively in two directories, 555die verfügbaren Werkzeuge, ohne dass sie sich gegenseitig stören. Guix’
532usually @file{/gnu/store} and @file{/var/guix}; other files on your system, 556Daten befinden sich ausschließlich in zwei Verzeichnissen, üblicherweise
533such as @file{/etc}, are left untouched. 557@file{/gnu/store} und @file{/var/guix}; andere Dateien auf Ihrem System wie
558@file{/etc} bleiben unberührt.
534 559
535Sobald es installiert ist, kann Guix durch Ausführen von @command{guix pull} 560Sobald es installiert ist, kann Guix durch Ausführen von @command{guix pull}
536aktualisiert werden (@pxref{Aufruf von guix pull}). 561aktualisiert werden (siehe @ref{Aufruf von guix pull}).
537 562
538If you prefer to perform the installation steps manually or want to tweak 563Sollten Sie es vorziehen, die Installationsschritte manuell durchzuführen,
539them, you may find the following subsections useful. They describe the 564oder falls Sie Anpassungen daran vornehmen möchten, könnten sich die
540software requirements of Guix, as well as how to install it manually and get 565folgenden Unterabschnitte als nützlich erweisen. Diese beschreiben die
541ready to use it. 566Software-Voraussetzungen von Guix und wie man es manuell installiert, so
567dass man es benutzen kann.
542 568
543@menu 569@menu
544* Aus Binärdatei installieren:: Guix installieren, ohne Zeit zu verlieren! 570* Aus Binärdatei installieren:: Guix installieren, ohne Zeit zu verlieren!
545* Voraussetzungen:: Zum Erstellen und Benutzen von Guix nötige 571* Voraussetzungen:: Zum Erstellen und Benutzen von Guix nötige
546 Software. 572 Software.
547* Die Testsuite laufen lassen:: Guix testen. 573* Den Testkatalog laufen lassen:: Guix testen.
548* Den Daemon einrichten:: Wie man die Umgebung des Erstellungs-Daemons 574* Den Daemon einrichten:: Wie man die Umgebung des Erstellungs-Daemons
549 einrichtet. 575 einrichtet.
550* Aufruf des guix-daemon:: Den Erstellungs-Daemon laufen lassen. 576* Aufruf des guix-daemon:: Den Erstellungs-Daemon laufen lassen.
@@ -608,7 +634,7 @@ ausführen. Danach führen Sie als @code{root}-Nutzer aus:
608# mv var/guix /var/ && mv gnu / 634# mv var/guix /var/ && mv gnu /
609@end example 635@end example
610 636
611Dadurch wird @file{/gnu/store} (@pxref{Der Store}) und @file{/var/guix} 637Dadurch wird @file{/gnu/store} (siehe @ref{Der Store}) und @file{/var/guix}
612erzeugt. Letzteres enthält ein fertiges Guix-Profil für den 638erzeugt. Letzteres enthält ein fertiges Guix-Profil für den
613Administratornutzer @code{root} (wie im nächsten Schritt beschrieben). 639Administratornutzer @code{root} (wie im nächsten Schritt beschrieben).
614 640
@@ -625,7 +651,7 @@ abhängt, wann es erstellt wurde, und es somit reproduzierbar wird.
625 651
626@item 652@item
627Machen Sie das Profil als @file{~root/.config/guix/current} verfügbar, wo 653Machen Sie das Profil als @file{~root/.config/guix/current} verfügbar, wo
628@command{guix pull} es aktualisieren kann (@pxref{Aufruf von guix pull}): 654@command{guix pull} es aktualisieren kann (siehe @ref{Aufruf von guix pull}):
629 655
630@example 656@example
631# mkdir -p ~root/.config/guix 657# mkdir -p ~root/.config/guix
@@ -643,7 +669,7 @@ Umgebungsvariable zu ergänzen:
643 669
644@item 670@item
645Erzeugen Sie Nutzergruppe und Nutzerkonten für die Erstellungs-Benutzer wie 671Erzeugen Sie Nutzergruppe und Nutzerkonten für die Erstellungs-Benutzer wie
646folgt (@pxref{Einrichten der Erstellungsumgebung}). 672folgt (siehe @ref{Einrichten der Erstellungsumgebung}).
647 673
648@item 674@item
649Führen Sie den Daemon aus, und lassen Sie ihn automatisch bei jedem 675Führen Sie den Daemon aus, und lassen Sie ihn automatisch bei jedem
@@ -703,14 +729,15 @@ verfügbar zu machen:
703 729
704Auf diese Art wird, unter der Annahme, dass bei Ihnen 730Auf diese Art wird, unter der Annahme, dass bei Ihnen
705@file{/usr/local/share/info} im Suchpfad eingetragen ist, das Ausführen von 731@file{/usr/local/share/info} im Suchpfad eingetragen ist, das Ausführen von
706@command{info guix} dieses Handbuch öffnen (@pxref{Other Info Directories,,, 732@command{info guix.de} dieses Handbuch öffnen (siehe @ref{Other Info
707texinfo, GNU Texinfo} hat weitere Details, wie Sie den Info-Suchpfad ändern 733Directories,,, texinfo, GNU Texinfo} hat weitere Details, wie Sie den
708können). 734Info-Suchpfad ändern können).
709 735
710@item 736@item
711@cindex Substitute, deren Autorisierung 737@cindex Substitute, deren Autorisierung
712To use substitutes from @code{@value{SUBSTITUTE-SERVER}} or one of its 738Um Substitute von @code{@value{SUBSTITUTE-SERVER}} oder einem Spiegelserver
713mirrors (@pxref{Substitute}), authorize them: 739davon zu benutzen (siehe @ref{Substitute}), müssen sie erst autorisiert
740werden:
714 741
715@example 742@example
716# guix archive --authorize < \ 743# guix archive --authorize < \
@@ -719,7 +746,7 @@ mirrors (@pxref{Substitute}), authorize them:
719 746
720@item 747@item
721Alle Nutzer müssen womöglich ein paar zusätzliche Schritte ausführen, damit 748Alle Nutzer müssen womöglich ein paar zusätzliche Schritte ausführen, damit
722ihre Guix-Umgebung genutzt werden kann, siehe @pxref{Anwendungen einrichten}. 749ihre Guix-Umgebung genutzt werden kann, siehe @ref{Anwendungen einrichten}.
723@end enumerate 750@end enumerate
724 751
725Voilà, die Installation ist fertig! 752Voilà, die Installation ist fertig!
@@ -745,14 +772,14 @@ make guix-binary.@var{System}.tar.xz
745@end example 772@end example
746 773
747@noindent 774@noindent
748...@: which, in turn, runs: 775@: was wiederum dies ausführt:
749 776
750@example 777@example
751guix pack -s @var{System} --localstatedir \ 778guix pack -s @var{System} --localstatedir \
752 --profile-name=current-guix guix 779 --profile-name=current-guix guix
753@end example 780@end example
754 781
755Siehe @xref{Aufruf von guix pack} für weitere Informationen zu diesem 782Siehe @ref{Aufruf von guix pack} für weitere Informationen zu diesem
756praktischen Werkzeug. 783praktischen Werkzeug.
757 784
758@node Voraussetzungen 785@node Voraussetzungen
@@ -765,19 +792,19 @@ GNU-Software und wird hier nicht beschrieben. Bitte lesen Sie die Dateien
765erfahren. 792erfahren.
766 793
767@cindex Offizielle Webpräsenz 794@cindex Offizielle Webpräsenz
768GNU Guix is available for download from its website at 795GNU Guix kann von seiner Webpräsenz unter
769@url{https://www.gnu.org/software/guix/}. 796@url{http://www.gnu.org/software/guix/} heruntergeladen werden.
770 797
771GNU Guix hat folgende Pakete als Abhängigkeiten: 798GNU Guix hat folgende Pakete als Abhängigkeiten:
772 799
773@itemize 800@itemize
774@item @url{http://gnu.org/software/guile/, GNU Guile}, version 2.2.x; 801@item @url{http://gnu.org/software/guile/, GNU Guile}, Version 2.2.x,
775@item @url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, Version 802@item @url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, Version
7760.1.0 oder neuer, 8030.1.0 oder neuer,
777@item 804@item
778@uref{http://gnutls.org/, GnuTLS}, im Speziellen dessen Bindungen für Guile 805@uref{http://gnutls.org/, GnuTLS}, im Speziellen dessen Anbindungen für
779(@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, 806Guile (siehe @ref{Guile Preparations, how to install the GnuTLS bindings for
780gnutls-guile, GnuTLS-Guile}), 807Guile,, gnutls-guile, GnuTLS-Guile}),
781@item 808@item
782@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, 809@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3},
783Version 0.1.0 oder neuer, 810Version 0.1.0 oder neuer,
@@ -785,7 +812,7 @@ Version 0.1.0 oder neuer,
785@c FIXME: Specify a version number once a release has been made. 812@c FIXME: Specify a version number once a release has been made.
786@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, vom August 2017 813@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, vom August 2017
787oder neuer, 814oder neuer,
788@item @uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}; 815@item @uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON},
789@item @url{http://zlib.net, zlib}, 816@item @url{http://zlib.net, zlib},
790@item @url{http://www.gnu.org/software/make/, GNU Make}. 817@item @url{http://www.gnu.org/software/make/, GNU Make}.
791@end itemize 818@end itemize
@@ -795,7 +822,7 @@ Folgende Abhängigkeiten sind optional:
795@itemize 822@itemize
796@item 823@item
797@c Note: We need at least 0.10.2 for 'channel-send-eof'. 824@c Note: We need at least 0.10.2 for 'channel-send-eof'.
798Unterstützung für das Auslagern von Erstellungen (@pxref{Auslagern des Daemons einrichten}) und @command{guix copy} (@pxref{Aufruf von guix copy}) hängt von 825Unterstützung für das Auslagern von Erstellungen (siehe @ref{Auslagern des Daemons einrichten}) und @command{guix copy} (siehe @ref{Aufruf von guix copy}) hängt von
799@uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, Version 826@uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, Version
8000.10.2 oder neuer, ab. 8270.10.2 oder neuer, ab.
801 828
@@ -819,10 +846,10 @@ Sollten Sie Guix auf einem System konfigurieren, auf dem Guix bereits
819installiert ist, dann stellen Sie sicher, dasselbe Zustandsverzeichnis wie 846installiert ist, dann stellen Sie sicher, dasselbe Zustandsverzeichnis wie
820für die bestehende Installation zu verwenden. Benutzen Sie dazu die 847für die bestehende Installation zu verwenden. Benutzen Sie dazu die
821Befehlszeilenoption @code{--localstatedir} des @command{configure}-Skripts 848Befehlszeilenoption @code{--localstatedir} des @command{configure}-Skripts
822(@pxref{Directory Variables, @code{localstatedir},, standards, GNU Coding 849(siehe @ref{Directory Variables, @code{localstatedir},, standards, GNU
823Standards}). Das @command{configure}-Skript schützt vor ungewollter 850Coding Standards}). Das @command{configure}-Skript schützt vor ungewollter
824Fehlkonfiguration der @var{localstatedir}, damit sie nicht versehentlich 851Fehlkonfiguration der @var{localstatedir}, damit sie nicht versehentlich
825Ihren Store verfälschen (@pxref{Der Store}). 852Ihren Store verfälschen (siehe @ref{Der Store}).
826 853
827@cindex Nix, Kompatibilität 854@cindex Nix, Kompatibilität
828Wenn eine funktionierende Installation of @url{http://nixos.org/nix/, the 855Wenn eine funktionierende Installation of @url{http://nixos.org/nix/, the
@@ -834,15 +861,15 @@ Guix ist mit Nix kompatibel, daher ist es möglich, denselben Store für beide
834zu verwenden. Dazu müssen Sie an @command{configure} nicht nur denselben 861zu verwenden. Dazu müssen Sie an @command{configure} nicht nur denselben
835Wert für @code{--with-store-dir} übergeben, sondern auch denselben Wert für 862Wert für @code{--with-store-dir} übergeben, sondern auch denselben Wert für
836@code{--localstatedir}. Letzterer ist deswegen essenziell, weil er unter 863@code{--localstatedir}. Letzterer ist deswegen essenziell, weil er unter
837Anderem angibt, wo die Datenbank liegt, in der sich die Metainformationen 864anderem angibt, wo die Datenbank liegt, in der sich die Metainformationen
838über den Store befinden. Für Nix sind die Werte standardmäßig 865über den Store befinden. Für Nix sind die Werte standardmäßig
839@code{--with-store-dir=/nix/store} und 866@code{--with-store-dir=/nix/store} und
840@code{--localstatedir=/nix/var}. Beachten Sie, dass @code{--disable-daemon} 867@code{--localstatedir=/nix/var}. Beachten Sie, dass @code{--disable-daemon}
841nicht erforderlich ist, wenn Sie die Absicht haben, den Store mit Nix zu 868nicht erforderlich ist, wenn Sie die Absicht haben, den Store mit Nix zu
842teilen. 869teilen.
843 870
844@node Die Testsuite laufen lassen 871@node Den Testkatalog laufen lassen
845@section Die Testsuite laufen lassen 872@section Den Testkatalog laufen lassen
846 873
847@cindex Testkatalog 874@cindex Testkatalog
848Nachdem @command{configure} und @code{make} erfolgreich durchgelaufen sind, 875Nachdem @command{configure} und @code{make} erfolgreich durchgelaufen sind,
@@ -882,12 +909,13 @@ make check TESTS="tests/base64.scm" SCM_LOG_DRIVER_FLAGS="--brief=no"
882Kommt es zum Fehlschlag, senden Sie bitte eine E-Mail an 909Kommt es zum Fehlschlag, senden Sie bitte eine E-Mail an
883@email{bug-guix@@gnu.org} und fügen Sie die Datei @file{test-suite.log} als 910@email{bug-guix@@gnu.org} und fügen Sie die Datei @file{test-suite.log} als
884Anhang bei. Bitte geben Sie dabei in Ihrer Nachricht die benutzte Version 911Anhang bei. Bitte geben Sie dabei in Ihrer Nachricht die benutzte Version
885von Guix an sowie die Versionsnummern der Abhängigkeiten 912von Guix an sowie die Versionsnummern der Abhängigkeiten (siehe
886(@pxref{Voraussetzungen}). 913@ref{Voraussetzungen}).
887 914
888Guix also comes with a whole-system test suite that tests complete Guix 915Guix wird auch mit einem Testkatalog für das ganze System ausgeliefert, der
889System instances. It can only run on systems where Guix is already 916vollständige Instanzen des »Guix System«-Betriebssystems testet. Er kann nur
890installed, using: 917auf Systemen benutzt werden, auf denen Guix bereits installiert ist, mit
918folgendem Befehl:
891 919
892@example 920@example
893make check-system 921make check-system
@@ -906,7 +934,7 @@ definiert. Sie funktionieren, indem Sie das getestete Betriebssystem mitsamt
906schlichter Instrumentierung in einer virtuellen Maschine (VM) ausführen. Die 934schlichter Instrumentierung in einer virtuellen Maschine (VM) ausführen. Die
907Tests können aufwendige Berechnungen durchführen oder sie günstig umgehen, 935Tests können aufwendige Berechnungen durchführen oder sie günstig umgehen,
908je nachdem, ob für ihre Abhängigkeiten Substitute zur Verfügung stehen 936je nachdem, ob für ihre Abhängigkeiten Substitute zur Verfügung stehen
909(@pxref{Substitute}). Manche von ihnen nehmen viel Speicherplatz in 937(siehe @ref{Substitute}). Manche von ihnen nehmen viel Speicherplatz in
910Anspruch, um die VM-Abbilder zu speichern. 938Anspruch, um die VM-Abbilder zu speichern.
911 939
912Auch hier gilt: Falls Testfehler auftreten, senden Sie bitte alle Details an 940Auch hier gilt: Falls Testfehler auftreten, senden Sie bitte alle Details an
@@ -964,8 +992,8 @@ wenn der Daemon @code{root}-Rechte in Erstellungsprozessen ablegt. Mehrere
964solche Benutzer zu haben, ermöglicht es dem Daemon, verschiedene 992solche Benutzer zu haben, ermöglicht es dem Daemon, verschiedene
965Erstellungsprozessen unter verschiedenen Benutzeridentifikatoren (UIDs) zu 993Erstellungsprozessen unter verschiedenen Benutzeridentifikatoren (UIDs) zu
966starten, was garantiert, dass sie einander nicht stören — eine essenzielle 994starten, was garantiert, dass sie einander nicht stören — eine essenzielle
967Funktionalität, da Erstellungen als reine Funktionen angesehen werden 995Funktionalität, da Erstellungen als reine Funktionen angesehen werden (siehe
968(@pxref{Einführung}). 996@ref{Einführung}).
969 997
970Auf einem GNU/Linux-System kann ein Pool von Erstellungsbenutzern wie folgt 998Auf einem GNU/Linux-System kann ein Pool von Erstellungsbenutzern wie folgt
971erzeugt werden (mit Bash-Syntax und den Befehlen von @code{shadow}): 999erzeugt werden (mit Bash-Syntax und den Befehlen von @code{shadow}):
@@ -986,12 +1014,12 @@ erzeugt werden (mit Bash-Syntax und den Befehlen von @code{shadow}):
986@noindent 1014@noindent
987Die Anzahl der Erstellungsbenutzer entscheidet, wieviele Erstellungsaufträge 1015Die Anzahl der Erstellungsbenutzer entscheidet, wieviele Erstellungsaufträge
988parallel ausgeführt werden können, wie es mit der Befehlszeilenoption 1016parallel ausgeführt werden können, wie es mit der Befehlszeilenoption
989@option{--max-jobs} vorgegeben werden kann (@pxref{Aufruf des guix-daemon, 1017@option{--max-jobs} vorgegeben werden kann (siehe @ref{Aufruf des guix-daemon,
990@option{--max-jobs}}). Um @command{guix system vm} und ähnliche Befehle 1018@option{--max-jobs}}). Um @command{guix system vm} und ähnliche Befehle
991nutzen zu können, müssen Sie die Erstellungsbenutzer unter Umständen zur 1019nutzen zu können, müssen Sie die Erstellungsbenutzer unter Umständen zur
992@code{kvm}-Benutzergruppe hinzufügen, damit sie Zugriff auf @file{/dev/kvm} 1020@code{kvm}-Benutzergruppe hinzufügen, damit sie Zugriff auf @file{/dev/kvm}
993haben, mit @code{-G guixbuild,kvm} statt @code{-G guixbuild} 1021haben, mit @code{-G guixbuild,kvm} statt @code{-G guixbuild} (siehe
994(@pxref{Aufruf von guix system}). 1022@ref{Aufruf von guix system}).
995 1023
996Das Programm @code{guix-daemon} kann mit dem folgenden Befehl als 1024Das Programm @code{guix-daemon} kann mit dem folgenden Befehl als
997@code{root} gestartet werden@footnote{Wenn Ihre Maschine systemd als 1025@code{root} gestartet werden@footnote{Wenn Ihre Maschine systemd als
@@ -1041,20 +1069,20 @@ Eintrag für den Benutzer @file{nobody},
1041einem @file{/tmp}-Verzeichnis mit Schreibrechten. 1069einem @file{/tmp}-Verzeichnis mit Schreibrechten.
1042@end itemize 1070@end itemize
1043 1071
1044Sie können beeinflussen, in welchem Verzeichnis der Daemon Erstellungsbäume 1072Sie können beeinflussen, in welchem Verzeichnis der Daemon Verzeichnisbäume
1045unterbringt, indem sie den Wert der Umgebungsvariablen @code{TMPDIR} 1073zur Erstellung unterbringt, indem sie den Wert der Umgebungsvariablen
1046ändern. Allerdings heißt innerhalb des chroots der Erstellungsbaum immer 1074@code{TMPDIR} ändern. Allerdings heißt innerhalb des chroots der
1047@file{/tmp/guix-build-@var{name}.drv-0}, wobei @var{name} der Ableitungsname 1075Erstellungsbaum immer @file{/tmp/guix-build-@var{Name}.drv-0}, wobei
1048ist — z.B. @code{coreutils-8.24}. Dadurch hat der Wert von @code{TMPDIR} 1076@var{Name} der Ableitungsname ist — z.B.@: @code{coreutils-8.24}. Dadurch
1049keinen Einfluss auf die Erstellungsumgebung, wodurch Unterschiede vermieden 1077hat der Wert von @code{TMPDIR} keinen Einfluss auf die Erstellungsumgebung,
1050werden, falls Erstellungsprozesse den Namen ihres Erstellungsbaumes 1078wodurch Unterschiede vermieden werden, falls Erstellungsprozesse den Namen
1051einfangen. 1079ihres Erstellungsbaumes einfangen.
1052 1080
1053@vindex http_proxy 1081@vindex http_proxy
1054Der Daemon befolgt außerdem den Wert der Umgebungsvariablen 1082Der Daemon befolgt außerdem den Wert der Umgebungsvariablen
1055@code{http_proxy} für von ihm durchgeführte HTTP-Downloads, sei es für 1083@code{http_proxy} für von ihm durchgeführte HTTP-Downloads, sei es für
1056Ableitungen mit fester Ausgabe (@pxref{Ableitungen}) oder für Substitute 1084Ableitungen mit fester Ausgabe (siehe @ref{Ableitungen}) oder für Substitute
1057(@pxref{Substitute}). 1085(siehe @ref{Substitute}).
1058 1086
1059Wenn Sie Guix als ein Benutzer ohne erweiterte Rechte installieren, ist es 1087Wenn Sie Guix als ein Benutzer ohne erweiterte Rechte installieren, ist es
1060dennoch möglich, @command{guix-daemon} auszuführen, sofern Sie 1088dennoch möglich, @command{guix-daemon} auszuführen, sofern Sie
@@ -1071,20 +1099,20 @@ Funktionen aufzufassen.
1071 1099
1072@cindex auslagern 1100@cindex auslagern
1073@cindex Build-Hook 1101@cindex Build-Hook
1074Wenn erwünscht kann der Erstellungs-Daemon Ableitungserstellungen 1102Wenn erwünscht, kann der Erstellungs-Daemon Ableitungserstellungen auf
1075@dfn{auslagern} auf andere Maschinen, auf denen Guix läuft, mit Hilfe des 1103andere Maschinen @dfn{auslagern}, auf denen Guix läuft, mit Hilfe des
1076@code{offload}-»@dfn{Build-Hooks}«@footnote{Diese Funktionalität ist nur 1104@code{offload}-@dfn{Build-Hooks}@footnote{Diese Funktionalität ist nur
1077verfügbar, wenn @uref{https://github.com/artyom-poptsov/guile-ssh, 1105verfügbar, wenn @uref{https://github.com/artyom-poptsov/guile-ssh,
1078Guile-SSH} vorhanden ist.}. Wenn diese Funktionalität aktiviert ist, wird 1106Guile-SSH} vorhanden ist.}. Wenn diese Funktionalität aktiviert ist, wird
1079eine nutzerspezifizierte Liste von Erstellungsmaschinen aus 1107eine nutzerspezifizierte Liste von Erstellungsmaschinen aus
1080@file{/etc/guix/machines.scm} gelesen. Wann immer eine Erstellung angefragt 1108@file{/etc/guix/machines.scm} gelesen. Wann immer eine Erstellung angefragt
1081wird, zum Beispiel durch @code{guix build}, versucht der Daemon, sie an eine 1109wird, zum Beispiel durch @code{guix build}, versucht der Daemon, sie an eine
1082der Erstellungsmaschinen auszulagern, die die Einschränkungen der Ableitung 1110der Erstellungsmaschinen auszulagern, die die Einschränkungen der Ableitung
1083erfüllen, insbesondere ihren Systemtyp — z.B. @file{x86_64-linux}. Fehlende 1111erfüllen, insbesondere ihren Systemtyp — z.B.@:
1084Voraussetzungen für die Erstellung werden über SSH auf die Zielmaschine 1112@file{x86_64-linux}. Fehlende Voraussetzungen für die Erstellung werden über
1085kopiert, welche dann mit der Erstellung weitermacht. Hat sie Erfolg damit, 1113SSH auf die Zielmaschine kopiert, welche dann mit der Erstellung
1086so werden die Ausgabe oder Ausgaben der Erstellung zurück auf die 1114weitermacht. Hat sie Erfolg damit, so werden die Ausgabe oder Ausgaben der
1087ursprüngliche Maschine kopiert. 1115Erstellung zurück auf die ursprüngliche Maschine kopiert.
1088 1116
1089Die Datei @file{/etc/guix/machines.scm} sieht normalerweise so aus: 1117Die Datei @file{/etc/guix/machines.scm} sieht normalerweise so aus:
1090 1118
@@ -1117,9 +1145,9 @@ sie zurückliefert, muss eine Liste von @code{build-machine}-Objekten
1117sein. Obwohl dieses Beispiel eine feste Liste von Erstellungsmaschinen 1145sein. Obwohl dieses Beispiel eine feste Liste von Erstellungsmaschinen
1118zeigt, könnte man auch auf die Idee kommen, etwa mit DNS-SD eine Liste 1146zeigt, könnte man auch auf die Idee kommen, etwa mit DNS-SD eine Liste
1119möglicher im lokalen Netzwerk entdeckter Erstellungsmaschinen zu liefern 1147möglicher im lokalen Netzwerk entdeckter Erstellungsmaschinen zu liefern
1120(@pxref{Einführung, Guile-Avahi,, guile-avahi, Using Avahi in Guile Scheme 1148(siehe @ref{Einführung, Guile-Avahi,, guile-avahi, Using Avahi in Guile
1121Programs}). Der Datentyp @code{build-machine} wird im Folgenden weiter 1149Scheme Programs}). Der Datentyp @code{build-machine} wird im Folgenden
1122ausgeführt. 1150weiter ausgeführt.
1123 1151
1124@deftp {Datentyp} build-machine 1152@deftp {Datentyp} build-machine
1125Dieser Datentyp repräsentiert Erstellungsmaschinen, an die der Daemon 1153Dieser Datentyp repräsentiert Erstellungsmaschinen, an die der Daemon
@@ -1128,10 +1156,10 @@ Erstellungen auslagern darf. Die wichtigen Felder sind:
1128@table @code 1156@table @code
1129 1157
1130@item name 1158@item name
1131Der Hostname (d.h. der Rechnername) der entfernten Maschine. 1159Der Hostname (d.h.@: der Rechnername) der entfernten Maschine.
1132 1160
1133@item system 1161@item system
1134Der Systemtyp der entfernten Maschine — z.B. @code{"x86_64-linux"}. 1162Der Systemtyp der entfernten Maschine — z.B.@: @code{"x86_64-linux"}.
1135 1163
1136@item user 1164@item user
1137Das Benutzerkonto, mit dem eine Verbindung zur entfernten Maschine über SSH 1165Das Benutzerkonto, mit dem eine Verbindung zur entfernten Maschine über SSH
@@ -1156,8 +1184,8 @@ zu finden.
1156Wenn auf der Maschine der SSH-Daemon von GNU@tie{}lsh, nämlich 1184Wenn auf der Maschine der SSH-Daemon von GNU@tie{}lsh, nämlich
1157@command{lshd}, läuft, befindet sich der Host-Schlüssel in 1185@command{lshd}, läuft, befindet sich der Host-Schlüssel in
1158@file{/etc/lsh/host-key.pub} oder einer ähnlichen Datei. Er kann ins 1186@file{/etc/lsh/host-key.pub} oder einer ähnlichen Datei. Er kann ins
1159OpenSSH-Format umgewandelt werden durch @command{lsh-export-key} 1187OpenSSH-Format umgewandelt werden durch @command{lsh-export-key} (siehe
1160(@pxref{Converting keys,,, lsh, LSH Manual}): 1188@ref{Converting keys,,, lsh, LSH Manual}):
1161 1189
1162@example 1190@example
1163$ lsh-export-key --openssh < /etc/lsh/host-key.pub 1191$ lsh-export-key --openssh < /etc/lsh/host-key.pub
@@ -1214,8 +1242,8 @@ eingeplant.
1214@end table 1242@end table
1215@end deftp 1243@end deftp
1216 1244
1217The @command{guix} command must be in the search path on the build 1245Der Befehl @code{guix} muss sich im Suchpfad der Erstellungsmaschinen
1218machines. You can check whether this is the case by running: 1246befinden. Um dies nachzuprüfen, können Sie Folgendes ausführen:
1219 1247
1220@example 1248@example
1221ssh build-machine guix repl --version 1249ssh build-machine guix repl --version
@@ -1226,7 +1254,7 @@ eingerichtet ist. Wie zuvor erklärt, werden beim Auslagern Dateien zwischen
1226den Stores der Maschinen hin- und hergeschickt. Damit das funktioniert, 1254den Stores der Maschinen hin- und hergeschickt. Damit das funktioniert,
1227müssen Sie als Erstes ein Schlüsselpaar auf jeder Maschine erzeugen, damit 1255müssen Sie als Erstes ein Schlüsselpaar auf jeder Maschine erzeugen, damit
1228der Daemon signierte Archive mit den Dateien aus dem Store versenden kann 1256der Daemon signierte Archive mit den Dateien aus dem Store versenden kann
1229(@pxref{Aufruf von guix archive}): 1257(siehe @ref{Aufruf von guix archive}):
1230 1258
1231@example 1259@example
1232# guix archive --generate-key 1260# guix archive --generate-key
@@ -1294,11 +1322,12 @@ diesen Befehl auf dem Hauptknoten aus:
1294@cindex SELinux, Policy für den Daemon 1322@cindex SELinux, Policy für den Daemon
1295@cindex Mandatory Access Control, SELinux 1323@cindex Mandatory Access Control, SELinux
1296@cindex Sicherheit, des guix-daemon 1324@cindex Sicherheit, des guix-daemon
1297Guix includes an SELinux policy file at @file{etc/guix-daemon.cil} that can 1325Guix enthält eine SELinux-Richtliniendatei (»Policy«) unter
1298be installed on a system where SELinux is enabled, in order to label Guix 1326@file{etc/guix-daemon.cil}, die auf einem System installiert werden kann,
1299files and to specify the expected behavior of the daemon. Since Guix System 1327auf dem SELinux aktiviert ist, damit Guix-Dateien gekennzeichnet sind und um
1300does not provide an SELinux base policy, the daemon policy cannot be used on 1328das erwartete Verhalten des Daemons anzugeben. Da Guix System keine
1301Guix System. 1329Grundrichtlinie (»Base Policy«) für SELinux bietet, kann diese Richtlinie
1330für den Daemon auf Guix System nicht benutzt werden.
1302 1331
1303@subsubsection Installieren der SELinux-Policy 1332@subsubsection Installieren der SELinux-Policy
1304@cindex SELinux, Policy installieren 1333@cindex SELinux, Policy installieren
@@ -1396,7 +1425,7 @@ verfügbar ist, etc. Normalerweise wird er so als Administratornutzer
1396@end example 1425@end example
1397 1426
1398@noindent 1427@noindent
1399Details, wie Sie ihn einrichten, finden Sie im Abschnitt @pxref{Den Daemon einrichten}. 1428Details, wie Sie ihn einrichten, finden Sie im Abschnitt @ref{Den Daemon einrichten}.
1400 1429
1401@cindex chroot 1430@cindex chroot
1402@cindex Container, Erstellungsumgebung 1431@cindex Container, Erstellungsumgebung
@@ -1407,13 +1436,13 @@ unterschiedlichen UIDs aus, die aus der Erstellungsgruppe stammen, deren
1407Name mit @code{--build-users-group} übergeben wurde. Außerdem läuft jeder 1436Name mit @code{--build-users-group} übergeben wurde. Außerdem läuft jeder
1408Erstellungsprozess in einer chroot-Umgebung, die nur die Teilmenge des 1437Erstellungsprozess in einer chroot-Umgebung, die nur die Teilmenge des
1409Stores enthält, von der der Erstellungsprozess abhängt, entsprechend seiner 1438Stores enthält, von der der Erstellungsprozess abhängt, entsprechend seiner
1410Ableitung (@pxref{Programmierschnittstelle, derivation}), und ein paar 1439Ableitung (siehe @ref{Programmierschnittstelle, derivation}), und ein paar
1411bestimmte Systemverzeichnisse, darunter standardmäßig auch @file{/dev} und 1440bestimmte Systemverzeichnisse, darunter standardmäßig auch @file{/dev} und
1412@file{/dev/pts}. Zudem ist die Erstellungsumgebung auf GNU/Linux ein 1441@file{/dev/pts}. Zudem ist die Erstellungsumgebung auf GNU/Linux ein
1413@dfn{Container}: Nicht nur hat er seinen eigenen Dateisystembaum, er hat 1442@dfn{Container}: Nicht nur hat er seinen eigenen Dateisystembaum, er hat
1414auch einen separaten Namensraum zum Einhängen von Dateisystemen, seinen 1443auch einen separaten Namensraum zum Einhängen von Dateisystemen, seinen
1415eigenen Namensraum für PIDs, für Netzwerke, etc. Dies hilft dabei, 1444eigenen Namensraum für PIDs, für Netzwerke, etc. Dies hilft dabei,
1416reproduzierbare Erstellungen zu garantieren (@pxref{Funktionalitäten}). 1445reproduzierbare Erstellungen zu garantieren (siehe @ref{Funktionalitäten}).
1417 1446
1418Wenn der Daemon im Auftrag des Nutzers eine Erstellung durchführt, erzeugt 1447Wenn der Daemon im Auftrag des Nutzers eine Erstellung durchführt, erzeugt
1419er ein Erstellungsverzeichnis, entweder in @file{/tmp} oder im Verzeichnis, 1448er ein Erstellungsverzeichnis, entweder in @file{/tmp} oder im Verzeichnis,
@@ -1424,50 +1453,51 @@ läuft, allerdings trägt es im Container stattdessen immer den Namen
1424 1453
1425Nach Abschluss der Erstellung wird das Erstellungsverzeichnis automatisch 1454Nach Abschluss der Erstellung wird das Erstellungsverzeichnis automatisch
1426entfernt, außer wenn die Erstellung fehlgeschlagen ist und der Client 1455entfernt, außer wenn die Erstellung fehlgeschlagen ist und der Client
1427@option{--keep-failed} angegeben hat (@pxref{Aufruf von guix build, 1456@option{--keep-failed} angegeben hat (siehe @ref{Aufruf von guix build,
1428@option{--keep-failed}}). 1457@option{--keep-failed}}).
1429 1458
1430Der Daemon lauscht auf Verbindungen und erstellt jeweils einen Unterprozess 1459Der Daemon lauscht auf Verbindungen und erstellt jeweils einen Unterprozess
1431für jede von einem Client begonnene Sitzung (d.h. von einem der 1460für jede von einem Client begonnene Sitzung (d.h.@: von einem der
1432@command{guix}-Unterbefehle.) Der Befehl @command{guix processes} zeigt 1461@command{guix}-Unterbefehle). Der Befehl @command{guix processes} zeigt
1433Ihnen eine Übersicht solcher Systemaktivitäten; damit werden Ihnen alle 1462Ihnen eine Übersicht solcher Systemaktivitäten; damit werden Ihnen alle
1434aktiven Sitzungen und Clients gezeigt. Weitere Informationen finden Sie 1463aktiven Sitzungen und Clients gezeigt. Weitere Informationen finden Sie
1435unter @xref{Aufruf von guix processes}. 1464unter @ref{Aufruf von guix processes}.
1436 1465
1437Die folgenden Befehlszeilenoptionen werden unterstützt: 1466Die folgenden Befehlszeilenoptionen werden unterstützt:
1438 1467
1439@table @code 1468@table @code
1440@item --build-users-group=@var{Gruppe} 1469@item --build-users-group=@var{Gruppe}
1441Verwende die Benutzerkonten aus der @var{Gruppe}, um Erstellungsprozesse 1470Verwende die Benutzerkonten aus der @var{Gruppe}, um Erstellungsprozesse
1442auszuführen (@pxref{Den Daemon einrichten, build users}). 1471auszuführen (siehe @ref{Den Daemon einrichten, build users}).
1443 1472
1444@item --no-substitutes 1473@item --no-substitutes
1445@cindex Substitute 1474@cindex Substitute
1446Benutze keine Substitute für Erstellungsergebnisse. Das heißt, dass alle 1475Benutze keine Substitute für Erstellungsergebnisse. Das heißt, dass alle
1447Objekte lokal erstellt werden müssen, und kein Herunterladen von vorab 1476Objekte lokal erstellt werden müssen, und kein Herunterladen von vorab
1448erstellten Binärdateien erlaubt ist (@pxref{Substitute}). 1477erstellten Binärdateien erlaubt ist (siehe @ref{Substitute}).
1449 1478
1450Wenn der Daemon mit @code{--no-substitutes} ausgeführt wird, können Clients 1479Wenn der Daemon mit @code{--no-substitutes} ausgeführt wird, können Clients
1451trotzdem Substitute explizit aktivieren über den entfernten Prozeduraufruf 1480trotzdem Substitute explizit aktivieren über den entfernten Prozeduraufruf
1452@code{set-build-options} (@pxref{Der Store}). 1481@code{set-build-options} (siehe @ref{Der Store}).
1453 1482
1454@item --substitute-urls=@var{URLs} 1483@item --substitute-urls=@var{URLs}
1455@anchor{daemon-substitute-urls} 1484@anchor{daemon-substitute-urls}
1456Consider @var{urls} the default whitespace-separated list of substitute 1485@var{URLs} als standardmäßige, leerzeichengetrennte Liste der Quell-URLs für
1457source URLs. When this option is omitted, 1486Substitute benutzen. Wenn diese Befehlszeilenoption @emph{nicht} angegeben
1458@indicateurl{https://@value{SUBSTITUTE-SERVER}} is used. 1487wird, wird @indicateurl{https://@value{SUBSTITUTE-SERVER}} verwendet.
1459 1488
1460Das hat zur Folge, dass Substitute von den @var{URLs} heruntergeladen werden 1489Das hat zur Folge, dass Substitute von den @var{URLs} heruntergeladen werden
1461können, solange sie mit einer Signatur versehen sind, der vertraut wird 1490können, solange sie mit einer Signatur versehen sind, der vertraut wird
1462(@pxref{Substitute}). 1491(siehe @ref{Substitute}).
1463 1492
1464@cindex Build-Hook 1493@cindex Build-Hook
1465@item --no-build-hook 1494@item --no-build-hook
1466Den »@dfn{Build-Hook}« nicht benutzen. 1495Den @dfn{Build-Hook} nicht benutzen.
1467 1496
1468»Build-Hook« ist der Name eines Hilfsprogramms, das der Daemon starten kann 1497»Build-Hook« ist der Name eines Hilfsprogramms, das der Daemon starten kann
1469und an das er Erstellungsanfragen übermittelt. Durch diesen Mechanismus 1498und an das er Erstellungsanfragen übermittelt. Durch diesen Mechanismus
1470können Erstellungen an andere Maschinen ausgelagert werden (@pxref{Auslagern des Daemons einrichten}). 1499können Erstellungen an andere Maschinen ausgelagert werden (siehe
1500@ref{Auslagern des Daemons einrichten}).
1471 1501
1472@item --cache-failures 1502@item --cache-failures
1473Fehler bei der Erstellung zwischenspeichern. Normalerweise werden nur 1503Fehler bei der Erstellung zwischenspeichern. Normalerweise werden nur
@@ -1477,7 +1507,7 @@ Wenn diese Befehlszeilenoption benutzt wird, kann @command{guix gc
1477--list-failures} benutzt werden, um die Menge an Store-Objekten abzufragen, 1507--list-failures} benutzt werden, um die Menge an Store-Objekten abzufragen,
1478die als Fehlschläge markiert sind; @command{guix gc --clear-failures} 1508die als Fehlschläge markiert sind; @command{guix gc --clear-failures}
1479entfernt Store-Objekte aus der Menge zwischengespeicherter 1509entfernt Store-Objekte aus der Menge zwischengespeicherter
1480Fehlschläge. @xref{Aufruf von guix gc}. 1510Fehlschläge. Siehe @ref{Aufruf von guix gc}.
1481 1511
1482@item --cores=@var{n} 1512@item --cores=@var{n}
1483@itemx -c @var{n} 1513@itemx -c @var{n}
@@ -1486,7 +1516,7 @@ viele wie verfügbar sind.
1486 1516
1487Der Vorgabewert ist @code{0}, jeder Client kann jedoch eine abweichende 1517Der Vorgabewert ist @code{0}, jeder Client kann jedoch eine abweichende
1488Anzahl vorgeben, zum Beispiel mit der Befehlszeilenoption @code{--cores} von 1518Anzahl vorgeben, zum Beispiel mit der Befehlszeilenoption @code{--cores} von
1489@command{guix build} (@pxref{Aufruf von guix build}). 1519@command{guix build} (siehe @ref{Aufruf von guix build}).
1490 1520
1491Dadurch wird die Umgebungsvariable @code{NIX_BUILD_CORES} im 1521Dadurch wird die Umgebungsvariable @code{NIX_BUILD_CORES} im
1492Erstellungsprozess definiert, welcher sie benutzen kann, um intern parallele 1522Erstellungsprozess definiert, welcher sie benutzen kann, um intern parallele
@@ -1497,7 +1527,8 @@ Ausführungen zuzulassen — zum Beispiel durch Nutzung von @code{make
1497@itemx -M @var{n} 1527@itemx -M @var{n}
1498Höchstenss @var{n} Erstellungsaufträge parallel bearbeiten. Der Vorgabewert 1528Höchstenss @var{n} Erstellungsaufträge parallel bearbeiten. Der Vorgabewert
1499liegt bei @code{1}. Wird er auf @code{0} gesetzt, werden keine Erstellungen 1529liegt bei @code{1}. Wird er auf @code{0} gesetzt, werden keine Erstellungen
1500lokal durchgeführt, stattdessen lagert der Daemon sie nur aus (@pxref{Auslagern des Daemons einrichten}) oder sie schlagen einfach fehl. 1530lokal durchgeführt, stattdessen lagert der Daemon sie nur aus (siehe
1531@ref{Auslagern des Daemons einrichten}) oder sie schlagen einfach fehl.
1501 1532
1502@item --max-silent-time=@var{Sekunden} 1533@item --max-silent-time=@var{Sekunden}
1503Wenn der Erstellungs- oder Substitutionsprozess länger als 1534Wenn der Erstellungs- oder Substitutionsprozess länger als
@@ -1508,7 +1539,7 @@ Der Vorgabewert ist @code{0}, was bedeutet, dass es keine Zeitbeschränkung
1508gibt. 1539gibt.
1509 1540
1510Clients können einen anderen Wert als den hier angegebenen verwenden lassen 1541Clients können einen anderen Wert als den hier angegebenen verwenden lassen
1511(@pxref{Gemeinsame Erstellungsoptionen, @code{--max-silent-time}}). 1542(siehe @ref{Gemeinsame Erstellungsoptionen, @code{--max-silent-time}}).
1512 1543
1513@item --timeout=@var{Sekunden} 1544@item --timeout=@var{Sekunden}
1514Entsprechend wird hier der Erstellungs- oder Substitutionsprozess 1545Entsprechend wird hier der Erstellungs- oder Substitutionsprozess
@@ -1518,13 +1549,13 @@ abgebrochen und als Fehlschlag gemeldet, wenn er mehr als
1518Der Vorgabewert ist @code{0}, was bedeutet, dass es keine Zeitbeschränkung 1549Der Vorgabewert ist @code{0}, was bedeutet, dass es keine Zeitbeschränkung
1519gibt. 1550gibt.
1520 1551
1521Clients können einen anderen Wert verwenden lassen (@pxref{Gemeinsame Erstellungsoptionen, @code{--timeout}}). 1552Clients können einen anderen Wert verwenden lassen (siehe @ref{Gemeinsame Erstellungsoptionen, @code{--timeout}}).
1522 1553
1523@item --rounds=@var{N} 1554@item --rounds=@var{N}
1524Jede Ableitung @var{n}-mal hintereinander erstellen und einen Fehler melden, 1555Jede Ableitung @var{n}-mal hintereinander erstellen und einen Fehler melden,
1525wenn nacheinander ausgewertete Erstellungsergebnisse nicht Bit für Bit 1556wenn nacheinander ausgewertete Erstellungsergebnisse nicht Bit für Bit
1526identisch sind. Beachten Sie, dass Clients wie @command{guix build} einen 1557identisch sind. Beachten Sie, dass Clients wie @command{guix build} einen
1527anderen Wert verwenden lassen können (@pxref{Aufruf von guix build}). 1558anderen Wert verwenden lassen können (siehe @ref{Aufruf von guix build}).
1528 1559
1529Wenn dies zusammen mit @option{--keep-failed} benutzt wird, bleiben die sich 1560Wenn dies zusammen mit @option{--keep-failed} benutzt wird, bleiben die sich
1530unterscheidenden Ausgaben im Store unter dem Namen 1561unterscheidenden Ausgaben im Store unter dem Namen
@@ -1537,7 +1568,7 @@ Informationen zur Fehlersuche ausgeben.
1537Dies ist nützlich, um Probleme beim Starten des Daemons nachzuvollziehen; 1568Dies ist nützlich, um Probleme beim Starten des Daemons nachzuvollziehen;
1538Clients könn aber auch ein abweichenden Wert verwenden lassen, zum Beispiel 1569Clients könn aber auch ein abweichenden Wert verwenden lassen, zum Beispiel
1539mit der Befehlszeilenoption @code{--verbosity} von @command{guix build} 1570mit der Befehlszeilenoption @code{--verbosity} von @command{guix build}
1540(@pxref{Aufruf von guix build}). 1571(siehe @ref{Aufruf von guix build}).
1541 1572
1542@item --chroot-directory=@var{Verzeichnis} 1573@item --chroot-directory=@var{Verzeichnis}
1543Füge das @var{Verzeichnis} zum chroot von Erstellungen hinzu. 1574Füge das @var{Verzeichnis} zum chroot von Erstellungen hinzu.
@@ -1587,14 +1618,14 @@ Ableitungen behalten muss (»yes«) oder nicht (»no«).
1587Für »yes« behält der Müllsammler die Ausgaben aller lebendigen Ableitungen 1618Für »yes« behält der Müllsammler die Ausgaben aller lebendigen Ableitungen
1588im Store — die @code{.drv}-Dateien. Der Vorgabewert ist aber »no«, so dass 1619im Store — die @code{.drv}-Dateien. Der Vorgabewert ist aber »no«, so dass
1589Ableitungsausgaben nur vorgehalten werden, wenn sie von einer 1620Ableitungsausgaben nur vorgehalten werden, wenn sie von einer
1590Müllsammlerwurzel aus erreichbar sind. Siehe den Abschnitt @xref{Aufruf von guix gc} für weitere Informationen zu Müllsammlerwurzeln. 1621Müllsammlerwurzel aus erreichbar sind. Siehe den Abschnitt @ref{Aufruf von guix gc} für weitere Informationen zu Müllsammlerwurzeln.
1591 1622
1592@item --gc-keep-derivations[=yes|no] 1623@item --gc-keep-derivations[=yes|no]
1593Gibt an, ob der Müllsammler (GC) Ableitungen behalten muss (»yes«), wenn sie 1624Gibt an, ob der Müllsammler (GC) Ableitungen behalten muss (»yes«), wenn sie
1594lebendige Ausgaben haben, oder nicht (»no«). 1625lebendige Ausgaben haben, oder nicht (»no«).
1595 1626
1596Für »yes«, den Vorgabewert, behält der Müllsammler Ableitungen — 1627Für »yes«, den Vorgabewert, behält der Müllsammler Ableitungen — z.B.@:
1597z.B. @code{.drv}-Dateien —, solange zumindest eine ihrer Ausgaben lebendig 1628@code{.drv}-Dateien —, solange zumindest eine ihrer Ausgaben lebendig
1598ist. Dadurch können Nutzer den Ursprung der Dateien in ihrem Store 1629ist. Dadurch können Nutzer den Ursprung der Dateien in ihrem Store
1599nachvollziehen. Setzt man den Wert auf »no«, wird ein bisschen weniger 1630nachvollziehen. Setzt man den Wert auf »no«, wird ein bisschen weniger
1600Speicher auf der Platte verbraucht. 1631Speicher auf der Platte verbraucht.
@@ -1630,8 +1661,8 @@ erkannt wurde, wie zum Beispiel @code{x86_64-linux}.
1630Lausche am @var{Endpunkt} auf Verbindungen. Dabei wird der @var{Endpunkt} 1661Lausche am @var{Endpunkt} auf Verbindungen. Dabei wird der @var{Endpunkt}
1631als Dateiname eines Unix-Sockets verstanden, wenn er mit einem @code{/} 1662als Dateiname eines Unix-Sockets verstanden, wenn er mit einem @code{/}
1632(Schrägstrich) beginnt. Andernfalls wird der @var{Endpunkt} als Hostname 1663(Schrägstrich) beginnt. Andernfalls wird der @var{Endpunkt} als Hostname
1633(d.h. Rechnername) oder als Hostname-Port-Paar verstanden, auf dem gelauscht 1664(d.h.@: Rechnername) oder als Hostname-Port-Paar verstanden, auf dem
1634wird. Hier sind ein paar Beispiele: 1665gelauscht wird. Hier sind ein paar Beispiele:
1635 1666
1636@table @code 1667@table @code
1637@item --listen=/gnu/var/daemon 1668@item --listen=/gnu/var/daemon
@@ -1655,16 +1686,16 @@ Diese Befehlszeilenoption kann mehrmals wiederholt werden. In diesem Fall
1655akzeptiert @command{guix-daemon} Verbindungen auf allen angegebenen 1686akzeptiert @command{guix-daemon} Verbindungen auf allen angegebenen
1656Endpunkten. Benutzer können bei Client-Befehlen angeben, mit welchem 1687Endpunkten. Benutzer können bei Client-Befehlen angeben, mit welchem
1657Endpunkt sie sich verbinden möchten, indem sie die Umgebungsvariable 1688Endpunkt sie sich verbinden möchten, indem sie die Umgebungsvariable
1658@code{GUIX_DAEMON_SOCKET} festlegen (@pxref{Der Store, 1689@code{GUIX_DAEMON_SOCKET} festlegen (siehe @ref{Der Store,
1659@code{GUIX_DAEMON_SOCKET}}). 1690@code{GUIX_DAEMON_SOCKET}}).
1660 1691
1661@quotation Anmerkung 1692@quotation Anmerkung
1662Das Daemon-Protokoll ist @emph{weder authentifiziert noch 1693Das Daemon-Protokoll ist @emph{weder authentifiziert noch
1663verschlüsselt}. Die Benutzung von @code{--listen=@var{Host}} eignet sich für 1694verschlüsselt}. Die Benutzung von @code{--listen=@var{Host}} eignet sich für
1664lokale Netzwerke, wie z.B. in Rechen-Clustern, wo sich nur solche Knoten mit 1695lokale Netzwerke, wie z.B.@: in Rechen-Clustern, wo sich nur solche Knoten
1665dem Daemon verbinden, denen man vertraut. In Situationen, wo ein Fernzugriff 1696mit dem Daemon verbinden, denen man vertraut. In Situationen, wo ein
1666auf den Daemon durchgeführt wird, empfehlen wir, über Unix-Sockets in 1697Fernzugriff auf den Daemon durchgeführt wird, empfehlen wir, über
1667Verbindung mit SSH zuzugreifen. 1698Unix-Sockets in Verbindung mit SSH zuzugreifen.
1668@end quotation 1699@end quotation
1669 1700
1670Wird @code{--listen} nicht angegeben, lauscht @command{guix-daemon} auf 1701Wird @code{--listen} nicht angegeben, lauscht @command{guix-daemon} auf
@@ -1677,14 +1708,14 @@ Verbindungen auf dem Unix-Socket, der sich unter
1677@section Anwendungen einrichten 1708@section Anwendungen einrichten
1678 1709
1679@cindex Fremddistribution 1710@cindex Fremddistribution
1680When using Guix on top of GNU/Linux distribution other than Guix System---a 1711uft Guix aufgesetzt auf einer GNU/Linux-Distribution außer Guix System
1681so-called @dfn{foreign distro}---a few additional steps are needed to get 1712einer sogenannten @dfn{Fremddistribution} —, so sind ein paar zusätzliche
1682everything in place. Here are some of them. 1713Schritte bei der Einrichtung nötig. Hier finden Sie manche davon.
1683 1714
1684@subsection Locales 1715@subsection Locales
1685 1716
1686@anchor{locales-and-locpath} 1717@anchor{locales-and-locpath}
1687@cindex locales, when not on Guix System 1718@cindex Locales, nicht auf Guix System
1688@vindex LOCPATH 1719@vindex LOCPATH
1689@vindex GUIX_LOCPATH 1720@vindex GUIX_LOCPATH
1690Über Guix installierte Pakete benutzen nicht die Daten zu Regions- und 1721Über Guix installierte Pakete benutzen nicht die Daten zu Regions- und
@@ -1703,7 +1734,7 @@ wiegt. Alternativ gibt es auch @code{glibc-utf8-locales}, was kleiner, aber
1703auf ein paar UTF-8-Locales beschränkt ist. 1734auf ein paar UTF-8-Locales beschränkt ist.
1704 1735
1705Die Variable @code{GUIX_LOCPATH} spielt eine ähnliche Rolle wie 1736Die Variable @code{GUIX_LOCPATH} spielt eine ähnliche Rolle wie
1706@code{LOCPATH} (@pxref{Locale Names, @code{LOCPATH},, libc, The GNU C 1737@code{LOCPATH} (siehe @ref{Locale Names, @code{LOCPATH},, libc, The GNU C
1707Library Reference Manual}). Es gibt jedoch zwei wichtige Unterschiede: 1738Library Reference Manual}). Es gibt jedoch zwei wichtige Unterschiede:
1708 1739
1709@enumerate 1740@enumerate
@@ -1715,7 +1746,7 @@ inkompatiblen Locale-Daten von Guix laden.
1715 1746
1716@item 1747@item
1717libc hängt an jeden @code{GUIX_LOCPATH}-Eintrag @code{/X.Y} an, wobei 1748libc hängt an jeden @code{GUIX_LOCPATH}-Eintrag @code{/X.Y} an, wobei
1718@code{X.Y} die Version von libc ist — z.B. @code{2.22}. Sollte Ihr 1749@code{X.Y} die Version von libc ist — z.B.@: @code{2.22}. Sollte Ihr
1719Guix-Profil eine Mischung aus Programmen enthalten, die an verschiedene 1750Guix-Profil eine Mischung aus Programmen enthalten, die an verschiedene
1720libc-Versionen gebunden sind, wird jede nur die Locale-Daten im richtigen 1751libc-Versionen gebunden sind, wird jede nur die Locale-Daten im richtigen
1721Format zu laden versuchen. 1752Format zu laden versuchen.
@@ -1735,13 +1766,13 @@ stärkstens}, dass Sie den @dfn{Name Service Cache Daemon} der
1735GNU-C-Bibliothek, @command{nscd}, laufen lassen, welcher auf dem Socket 1766GNU-C-Bibliothek, @command{nscd}, laufen lassen, welcher auf dem Socket
1736@file{/var/run/nscd/socket} lauschen sollte. Wenn Sie das nicht tun, könnten 1767@file{/var/run/nscd/socket} lauschen sollte. Wenn Sie das nicht tun, könnten
1737mit Guix installierte Anwendungen Probleme beim Auflösen von Hostnamen 1768mit Guix installierte Anwendungen Probleme beim Auflösen von Hostnamen
1738(d.h. Rechnernamen) oder Benutzerkonten haben, oder sogar abstürzen. Die 1769(d.h.@: Rechnernamen) oder Benutzerkonten haben, oder sogar abstürzen. Die
1739nächsten Absätze erklären warum. 1770nächsten Absätze erklären warum.
1740 1771
1741@cindex @file{nsswitch.conf} 1772@cindex @file{nsswitch.conf}
1742Die GNU-C-Bibliothek implementiert einen @dfn{Name Service Switch} (NSS), 1773Die GNU-C-Bibliothek implementiert einen @dfn{Name Service Switch} (NSS),
1743welcher einen erweiterbaren Mechanismus zur allgemeinen »Namensauflösung« 1774welcher einen erweiterbaren Mechanismus zur allgemeinen »Namensauflösung«
1744darstellt: Hostnamensauflösung, Benutzerkonten und weiteres (@pxref{Name Service Switch,,, libc, The GNU C Library Reference Manual}). 1775darstellt: Hostnamensauflösung, Benutzerkonten und weiteres (siehe @ref{Name Service Switch,,, libc, The GNU C Library Reference Manual}).
1745 1776
1746@cindex Network Information Service (NIS) 1777@cindex Network Information Service (NIS)
1747@cindex NIS (Network Information Service) 1778@cindex NIS (Network Information Service)
@@ -1752,8 +1783,8 @@ Plugin @code{nis} gestattet die Auflösung von Benutzerkonten über den
1752Network Information Service (NIS) und so weiter. Diese zusätzlichen 1783Network Information Service (NIS) und so weiter. Diese zusätzlichen
1753»Auflösungsdienste« werden systemweit konfiguriert in 1784»Auflösungsdienste« werden systemweit konfiguriert in
1754@file{/etc/nsswitch.conf} und alle auf dem System laufenden Programme halten 1785@file{/etc/nsswitch.conf} und alle auf dem System laufenden Programme halten
1755sich an diese Einstellungen (@pxref{NSS Configuration File,,, libc, The GNU 1786sich an diese Einstellungen (siehe @ref{NSS Configuration File,,, libc, The
1756C Reference Manual}). 1787GNU C Reference Manual}).
1757 1788
1758Wenn sie eine Namensauflösung durchführen — zum Beispiel, indem sie die 1789Wenn sie eine Namensauflösung durchführen — zum Beispiel, indem sie die
1759@code{getaddrinfo}-Funktion in C aufrufen — versuchen die Anwendungen als 1790@code{getaddrinfo}-Funktion in C aufrufen — versuchen die Anwendungen als
@@ -1786,15 +1817,15 @@ Laden von Schriftarten und für die Darstellung im X11-Client. Im Paket
1786@file{$HOME/.guix-profile} gesucht. Um es grafischen Anwendungen, die mit 1817@file{$HOME/.guix-profile} gesucht. Um es grafischen Anwendungen, die mit
1787Guix installiert wurden, zu ermöglichen, Schriftarten anzuzeigen, müssen Sie 1818Guix installiert wurden, zu ermöglichen, Schriftarten anzuzeigen, müssen Sie
1788die Schriftarten auch mit Guix installieren. Essenzielle Pakete für 1819die Schriftarten auch mit Guix installieren. Essenzielle Pakete für
1789Schriftarten sind unter Anderem @code{gs-fonts}, @code{font-dejavu} und 1820Schriftarten sind unter anderem @code{gs-fonts}, @code{font-dejavu} und
1790@code{font-gnu-freefont-ttf}. 1821@code{font-gnu-freefont-ttf}.
1791 1822
1792Um auf Chinesisch, Japanisch oder Koreanisch verfassten Text in grafischen 1823Um auf Chinesisch, Japanisch oder Koreanisch verfassten Text in grafischen
1793Anwendungen anzeigen zu können, möchten Sie vielleicht 1824Anwendungen anzeigen zu können, möchten Sie vielleicht
1794@code{font-adobe-source-han-sans} oder @code{font-wqy-zenhei} 1825@code{font-adobe-source-han-sans} oder @code{font-wqy-zenhei}
1795installieren. Ersteres hat mehrere Ausgaben, für jede Sprachfamilie eine 1826installieren. Ersteres hat mehrere Ausgaben, für jede Sprachfamilie eine
1796(@pxref{Pakete mit mehreren Ausgaben.}). Zum Beispiel installiert folgender 1827(siehe @ref{Pakete mit mehreren Ausgaben.}). Zum Beispiel installiert
1797Befehl Schriftarten für chinesische Sprachen: 1828folgender Befehl Schriftarten für chinesische Sprachen:
1798 1829
1799@example 1830@example
1800guix package -i font-adobe-source-han-sans:cn 1831guix package -i font-adobe-source-han-sans:cn
@@ -1804,7 +1835,7 @@ guix package -i font-adobe-source-han-sans:cn
1804Ältere Programme wie @command{xterm} benutzen kein Fontconfig, sondern 1835Ältere Programme wie @command{xterm} benutzen kein Fontconfig, sondern
1805X-Server-seitige Schriftartendarstellung. Solche Programme setzen voraus, 1836X-Server-seitige Schriftartendarstellung. Solche Programme setzen voraus,
1806dass der volle Name einer Schriftart mit XLFD (X Logical Font Description) 1837dass der volle Name einer Schriftart mit XLFD (X Logical Font Description)
1807angegeben wird, z.B. so: 1838angegeben wird, z.B.@: so:
1808 1839
1809@example 1840@example
1810-*-dejavu sans-medium-r-normal-*-*-100-*-*-*-*-*-1 1841-*-dejavu sans-medium-r-normal-*-*-100-*-*-*-*-*-1
@@ -1843,7 +1874,7 @@ zugegriffen wird.
1843 1874
1844Wenn Sie Guix auf einer Fremddistribution verwenden, können Sie dieses Paket 1875Wenn Sie Guix auf einer Fremddistribution verwenden, können Sie dieses Paket
1845installieren und die relevanten Umgebungsvariablen festlegen, damit Pakete 1876installieren und die relevanten Umgebungsvariablen festlegen, damit Pakete
1846wissen, wo sie Zertifikate finden. In @xref{X.509-Zertifikate} stehen 1877wissen, wo sie Zertifikate finden. Unter @ref{X.509-Zertifikate} stehen
1847genaue Informationen. 1878genaue Informationen.
1848 1879
1849@subsection Emacs-Pakete 1880@subsection Emacs-Pakete
@@ -1857,14 +1888,14 @@ gespeichert. Letzteres Verzeichnis gibt es, weil es Tausende von
1857Emacs-Paketen gibt und sie alle im selben Verzeichnis zu speichern 1888Emacs-Paketen gibt und sie alle im selben Verzeichnis zu speichern
1858vielleicht nicht verlässlich funktioniert (wegen Namenskonflikten). Daher 1889vielleicht nicht verlässlich funktioniert (wegen Namenskonflikten). Daher
1859halten wir es für richtig, für jedes Paket ein anderes Verzeichnis zu 1890halten wir es für richtig, für jedes Paket ein anderes Verzeichnis zu
1860benutzen. Das Emacs-Paketsystem organisiert die Dateistruktur ähnlich 1891benutzen. Das Emacs-Paketsystem organisiert die Dateistruktur ähnlich (siehe
1861(@pxref{Package Files,,, emacs, The GNU Emacs Manual}). 1892@ref{Package Files,,, emacs, The GNU Emacs Manual}).
1862 1893
1863Standardmäßig »weiß« Emacs (wenn er mit Guix installiert wurde), wo diese 1894Standardmäßig »weiß« Emacs (wenn er mit Guix installiert wurde), wo diese
1864Pakete liegen, Sie müssen also nichts selbst konfigurieren. Wenn Sie aber 1895Pakete liegen, Sie müssen also nichts selbst konfigurieren. Wenn Sie aber
1865aus irgendeinem Grund mit Guix installierte Pakete nicht automatisch laden 1896aus irgendeinem Grund mit Guix installierte Pakete nicht automatisch laden
1866lassen möchten, können Sie Emacs mit der Befehlszeilenoption 1897lassen möchten, können Sie Emacs mit der Befehlszeilenoption
1867@code{--no-site-file} starten (@pxref{Init File,,, emacs, The GNU Emacs 1898@code{--no-site-file} starten (siehe @ref{Init File,,, emacs, The GNU Emacs
1868Manual}). 1899Manual}).
1869 1900
1870@subsection GCC-Toolchain 1901@subsection GCC-Toolchain
@@ -1880,11 +1911,15 @@ Entwicklung mit C/C++, einschließlich GCC selbst, der GNU-C-Bibliothek
1880(Header-Dateien und Binärdateien samt Symbolen zur Fehlersuche/Debugging in 1911(Header-Dateien und Binärdateien samt Symbolen zur Fehlersuche/Debugging in
1881der @code{debug}-Ausgabe), Binutils und einen Wrapper für den Binder/Linker. 1912der @code{debug}-Ausgabe), Binutils und einen Wrapper für den Binder/Linker.
1882 1913
1883The wrapper's purpose is to inspect the @code{-L} and @code{-l} switches 1914Der Zweck des Wrappers ist, die an den Binder übergebenen
1884passed to the linker, add corresponding @code{-rpath} arguments, and invoke 1915Befehlszeilenoptionen mit @code{-L} und @code{-l} zu überprüfen und jeweils
1885the actual linker with this new set of arguments. You can instruct the 1916passende Argumente mit @code{-rpath} anzufügen, womit dann der echte Binder
1886wrapper to refuse to link against libraries not in the store by setting the 1917aufgerufen wird. Standardmäßig weigert sich der Binder-Wrapper, mit
1887@code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} environment variable to @code{no}. 1918Bibliotheken außerhalb des Stores zu binden, um »Reinheit« zu
1919gewährleisten. Das kann aber stören, wenn man die Toolchain benutzt, um mit
1920lokalen Bibliotheken zu binden. Um Referenzen auf Bibliotheken außerhalb des
1921Stores zu erlauben, müssen Sie die Umgebungsvariable
1922@code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} setzen.
1888 1923
1889@c TODO What else? 1924@c TODO What else?
1890 1925
@@ -1892,11 +1927,12 @@ wrapper to refuse to link against libraries not in the store by setting the
1892@node Systeminstallation 1927@node Systeminstallation
1893@chapter Systeminstallation 1928@chapter Systeminstallation
1894 1929
1895@cindex installing Guix System 1930@cindex Installieren von Guix System
1896@cindex Guix System, installation 1931@cindex Guix System, Installation
1897This section explains how to install Guix System on a machine. Guix, as a 1932Dieser Abschnitt beschreibt, wie Sie »Guix System« auf einer Maschine
1898package manager, can also be installed on top of a running GNU/Linux system, 1933installieren. Guix kann auch als Paketverwaltungswerkzeug ein bestehendes
1899@pxref{Installation}. 1934GNU/Linux-System ergänzen, mehr dazu finden Sie im Abschnitt
1935@ref{Installation}.
1900 1936
1901@ifinfo 1937@ifinfo
1902@quotation Anmerkung 1938@quotation Anmerkung
@@ -1904,9 +1940,9 @@ package manager, can also be installed on top of a running GNU/Linux system,
1904@c installation image. 1940@c installation image.
1905Sie lesen diese Dokumentation mit einem Info-Betrachter. Details, wie Sie 1941Sie lesen diese Dokumentation mit einem Info-Betrachter. Details, wie Sie
1906ihn bedienen, erfahren Sie, indem Sie die Eingabetaste (auch »Return« oder 1942ihn bedienen, erfahren Sie, indem Sie die Eingabetaste (auch »Return« oder
1907»Enter« genannt) auf folgender Verknüpfung drücken: @pxref{Top, Info 1943»Enter« genannt) auf folgender Verknüpfung drücken: @ref{Top, Info reader,,
1908reader,, info-stnd, Stand-alone GNU Info}. Drücken Sie danach @kbd{l}, um 1944info-stnd, Stand-alone GNU Info}. Drücken Sie danach @kbd{l}, um hierher
1909hierher zurückzukommen. 1945zurückzukommen.
1910 1946
1911Führen Sie alternativ @command{info info} auf einer anderen Konsole (tty) 1947Führen Sie alternativ @command{info info} auf einer anderen Konsole (tty)
1912aus, um dieses Handbuch offen zu lassen. 1948aus, um dieses Handbuch offen zu lassen.
@@ -1919,66 +1955,53 @@ aus, um dieses Handbuch offen zu lassen.
1919* Installation von USB-Stick oder DVD:: Das Installationsmedium 1955* Installation von USB-Stick oder DVD:: Das Installationsmedium
1920 vorbereiten. 1956 vorbereiten.
1921* Vor der Installation:: Netzwerkanbindung, Partitionierung etc. 1957* Vor der Installation:: Netzwerkanbindung, Partitionierung etc.
1922* Fortfahren mit der Installation:: Die Hauptsache. 1958* Geführte grafische Installation:: Leichte grafische Installation.
1923* Installing Guix in a VM:: Guix System playground. 1959* Manuelle Installation:: Manuelle Installation für Zauberer.
1960* Nach der Systeminstallation:: Wenn die Installation erfolgreich war.
1961* Guix in einer VM installieren:: Ein »Guix System«-Spielplatz.
1924* Ein Abbild zur Installation erstellen:: Wie ein solches entsteht. 1962* Ein Abbild zur Installation erstellen:: Wie ein solches entsteht.
1925@end menu 1963@end menu
1926 1964
1927@node Einschränkungen 1965@node Einschränkungen
1928@section Einschränkungen 1966@section Einschränkungen
1929 1967
1930As of version @value{VERSION}, Guix System is not production-ready. It may 1968We consider Guix System to be ready for a wide range of ``desktop'' and
1931contain bugs and lack important features. Thus, if you are looking for a 1969server use cases. The reliability guarantees it provides---transactional
1932stable production system that respects your freedom as a computer user, a 1970upgrades and rollbacks, reproducibility---make it a solid foundation.
1933good solution at this point is to consider
1934@url{http://www.gnu.org/distros/free-distros.html, one of the more
1935established GNU/Linux distributions}. We hope you can soon switch to the
1936Guix System without fear, of course. In the meantime, you can also keep
1937using your distribution and try out the package manager on top of it
1938(@pxref{Installation}).
1939 1971
1940Bevor Sie mit der Installation fortfahren, beachten Sie die folgenden 1972Nevertheless, before you proceed with the installation, be aware of the
1941merklichen Einschränkungen der Version @value{VERSION}: 1973following noteworthy limitations applicable to version @value{VERSION}:
1942 1974
1943@itemize 1975@itemize
1944@item 1976@item
1945Für den Installationsprozess wird keine grafische Oberfläche mitgeliefert
1946und er erfordert Erfahrung mit GNU/Linux (siehe die folgenden
1947Unterabschnitte, um ein Gefühl dafür zu bekommen, was wir damit meinen).
1948
1949@item
1950Der Logical Volume Manager (LVM) wird nicht unterstützt. 1977Der Logical Volume Manager (LVM) wird nicht unterstützt.
1951 1978
1952@item 1979@item
1953Immer mehr Systemdienste sind verfügbar (@pxref{Dienste}), aber manche 1980Immer mehr Systemdienste sind verfügbar (siehe @ref{Dienste}), aber manche
1954könnten noch fehlen. 1981könnten noch fehlen.
1955 1982
1956@item 1983@item
1957More than 8,500 packages are available, but you might occasionally find that 1984GNOME, Xfce, LXDE, and Enlightenment are available (@pxref{Desktop-Dienste}), as well as a number of X11 window managers. However, KDE is
1958a useful package is missing. 1985currently missing.
1959
1960@item
1961GNOME, Xfce, LXDE und Enlightenment stehen zur Verfügung (@pxref{Desktop-Dienste}), ebenso eine Reihe von X11-Fensterverwaltungsprogrammen. Manche
1962grafischen Anwendungen könnten aber noch fehlen, ebenso fehlt KDE.
1963@end itemize 1986@end itemize
1964 1987
1965Sie wurden gewarnt! Dies soll allerdings nicht nur ein Hinweis sein, sondern 1988More than a disclaimer, this is an invitation to report issues (and success
1966auch als Einladung aufgefasst werden, uns Fehler (und Erfolgsgeschichten!) 1989stories!), and to join us in improving it. @xref{Mitwirken}, for more
1967zu melden und bei uns mitzumachen, um Guix zu verbessern. Siehe den 1990info.
1968Abschnitt @xref{Mitwirken}.
1969 1991
1970 1992
1971@node Hardware-Überlegungen 1993@node Hardware-Überlegungen
1972@section Hardware-Überlegungen 1994@section Hardware-Überlegungen
1973 1995
1974@cindex hardware support on Guix System 1996@cindex Hardwareunterstützung von Guix System
1975GNU@tie{}Guix focuses on respecting the user's computing freedom. It builds 1997GNU@tie{}Guix legt den Fokus darauf, die Freiheit des Nutzers auf seinem
1976around the kernel Linux-libre, which means that only hardware for which free 1998Rechner zu respektieren. Es baut auf Linux-libre als Kernel auf, wodurch nur
1977software drivers and firmware exist is supported. Nowadays, a wide range of 1999Hardware unterstützt wird, für die Treiber und Firmware existieren, die
1978off-the-shelf hardware is supported on GNU/Linux-libre---from keyboards to 2000freie Software sind. Heutzutage wird ein großer Teil der handelsüblichen
1979graphics cards to scanners and Ethernet controllers. Unfortunately, there 2001Hardware von GNU/Linux-libre unterstützt — von Tastaturen bis hin zu
1980are still areas where hardware vendors deny users control over their own 2002Grafikkarten, Scannern und Ethernet-Adaptern. Leider gibt es noch Bereiche,
1981computing, and such hardware is not supported on Guix System. 2003wo die Hardwareanbieter ihren Nutzern die Kontrolle über ihren eigenen
2004Rechner verweigern. Solche Hardware wird von Guix System nicht unterstützt.
1982 2005
1983@cindex WLAN, Hardware-Unterstützung 2006@cindex WLAN, Hardware-Unterstützung
1984One of the main areas where free drivers or firmware are lacking is WiFi 2007One of the main areas where free drivers or firmware are lacking is WiFi
@@ -1987,7 +2010,7 @@ devices. WiFi devices known to work include those using Atheros chips
1987driver, and those using Broadcom/AirForce chips (BCM43xx with Wireless-Core 2010driver, and those using Broadcom/AirForce chips (BCM43xx with Wireless-Core
1988Revision 5), which corresponds to the @code{b43-open} Linux-libre driver. 2011Revision 5), which corresponds to the @code{b43-open} Linux-libre driver.
1989Free firmware exists for both and is available out-of-the-box on Guix 2012Free firmware exists for both and is available out-of-the-box on Guix
1990System, as part of @var{%base-firmware} (@pxref{»operating-system«-Referenz, 2013System, as part of @code{%base-firmware} (@pxref{»operating-system«-Referenz,
1991@code{firmware}}). 2014@code{firmware}}).
1992 2015
1993@cindex RYF, Respects Your Freedom 2016@cindex RYF, Respects Your Freedom
@@ -2008,7 +2031,7 @@ unterstützt werden.
2008@section Installation von USB-Stick oder DVD 2031@section Installation von USB-Stick oder DVD
2009 2032
2010Sie können ein ISO-9660-Installationsabbild von 2033Sie können ein ISO-9660-Installationsabbild von
2011@indicateurl{https://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{System}.iso.xz} 2034@indicateurl{https://alpha.gnu.org/gnu/guix/guix-system-install-@value{VERSION}.@var{System}.iso.xz}
2012herunterladen, dass Sie auf einen USB-Stick aufspielen oder auf eine DVD 2035herunterladen, dass Sie auf einen USB-Stick aufspielen oder auf eine DVD
2013brennen können, wobei Sie für @var{System} eines der folgenden schreiben 2036brennen können, wobei Sie für @var{System} eines der folgenden schreiben
2014müssen: 2037müssen:
@@ -2026,8 +2049,8 @@ Laden Sie auch die entsprechende @file{.sig}-Datei herunter und verifizieren
2026Sie damit die Authentizität Ihres Abbilds, indem Sie diese Befehle eingeben: 2049Sie damit die Authentizität Ihres Abbilds, indem Sie diese Befehle eingeben:
2027 2050
2028@example 2051@example
2029$ wget https://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{System}.iso.xz.sig 2052$ wget https://alpha.gnu.org/gnu/guix/guix-system-install-@value{VERSION}.@var{System}.iso.xz.sig
2030$ gpg --verify guixsd-install-@value{VERSION}.@var{System}.iso.xz.sig 2053$ gpg --verify guix-system-install-@value{VERSION}.@var{System}.iso.xz.sig
2031@end example 2054@end example
2032 2055
2033Falls dieser Befehl fehlschlägt, weil Sie nicht über den nötigen 2056Falls dieser Befehl fehlschlägt, weil Sie nicht über den nötigen
@@ -2057,7 +2080,7 @@ durch:
2057Entpacken Sie das Abbild mit dem @command{xz}-Befehl: 2080Entpacken Sie das Abbild mit dem @command{xz}-Befehl:
2058 2081
2059@example 2082@example
2060xz -d guixsd-install-@value{VERSION}.@var{System}.iso.xz 2083xz -d guix-system-install-@value{VERSION}.@var{System}.iso.xz
2061@end example 2084@end example
2062 2085
2063@item 2086@item
@@ -2066,7 +2089,7 @@ groß ist, und bestimmen Sie seinen Gerätenamen. Ist der Gerätename des
2066USB-Sticks @file{/dev/sdX}, dann kopieren Sie das Abbild mit dem Befehl: 2089USB-Sticks @file{/dev/sdX}, dann kopieren Sie das Abbild mit dem Befehl:
2067 2090
2068@example 2091@example
2069dd if=guixsd-install-@value{VERSION}.@var{system}.iso of=/dev/sdX 2092dd if=guix-system-install-@value{VERSION}.@var{System}.iso of=/dev/sdX
2070sync 2093sync
2071@end example 2094@end example
2072 2095
@@ -2083,7 +2106,7 @@ Um das Abbild auf eine DVD zu kopieren, führen Sie diese Schritte durch:
2083Entpacken Sie das Abbild mit dem @command{xz}-Befehl: 2106Entpacken Sie das Abbild mit dem @command{xz}-Befehl:
2084 2107
2085@example 2108@example
2086xz -d guixsd-install-@value{VERSION}.@var{System}.iso.xz 2109xz -d guix-system-install-@value{VERSION}.@var{System}.iso.xz
2087@end example 2110@end example
2088 2111
2089@item 2112@item
@@ -2092,7 +2115,7 @@ Gerätenamen. Angenommen der Name des DVD-Laufwerks ist @file{/dev/srX},
2092kopieren Sie das Abbild mit: 2115kopieren Sie das Abbild mit:
2093 2116
2094@example 2117@example
2095growisofs -dvd-compat -Z /dev/srX=guixsd-install-@value{VERSION}.@var{system}.iso 2118growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.@var{System}.iso
2096@end example 2119@end example
2097 2120
2098Der Zugriff auf @file{/dev/srX} setzt in der Regel Administratorrechte 2121Der Zugriff auf @file{/dev/srX} setzt in der Regel Administratorrechte
@@ -2102,32 +2125,35 @@ voraus.
2102@unnumberedsubsec Das System starten 2125@unnumberedsubsec Das System starten
2103 2126
2104Sobald das erledigt ist, sollten Sie Ihr System neu starten und es vom 2127Sobald das erledigt ist, sollten Sie Ihr System neu starten und es vom
2105USB-Stick oder der DVD booten können. Dazu müssen Sie wahrscheinlich beim 2128USB-Stick oder der DVD hochfahren (»booten«) können. Dazu müssen Sie
2106Starten des Rechners in das BIOS- oder UEFI-Boot-Menü gehen, von wo aus Sie 2129wahrscheinlich beim Starten des Rechners in das BIOS- oder UEFI-Boot-Menü
2107auswählen können, dass vom USB-Stick gebootet werden soll. 2130gehen, von wo aus Sie auswählen können, dass vom USB-Stick gebootet werden
2131soll.
2108 2132
2109@xref{Installing Guix in a VM}, if, instead, you would like to install Guix 2133Lesen Sie den Abschnitt @ref{Guix in einer VM installieren}, wenn Sie Guix System
2110System in a virtual machine (VM). 2134stattdessen in einer virtuellen Maschine (VM) installieren möchten.
2111 2135
2112 2136
2113@node Vor der Installation 2137@node Vor der Installation
2114@section Vor der Installation 2138@section Vor der Installation
2115 2139
2116Once you have successfully booted your computer using the installation 2140Wenn Sie Ihren Rechner gebootet haben, können Sie sich vom grafischen
2117medium, you should end up with the welcome page of the graphical installer. 2141Installationsprogramm durch den Installationsvorgang führen lassen, was den
2118The graphical installer is a text-based user interface built upon the newt 2142Einstieg leicht macht (siehe @ref{Geführte grafische Installation}). Alternativ können Sie sich auch für einen »manuellen«
2119library. It shall guide you through all the different steps needed to 2143Installationsvorgang entscheiden, wenn Sie bereits mit GNU/Linux vertraut
2120install GNU@tie{}Guix System. However, as the graphical installer is still 2144sind und mehr Kontrolle haben möchten, als sie das grafische
2121under heavy development, you might want to fallback to the original, shell 2145Installationsprogramm bietet (siehe @ref{Manuelle Installation}).
2122based install process, by switching to TTYs 3 to 6 with the shortcuts 2146
2123CTRL-ALT-F[3-6]. The following sections describe the installation procedure 2147Das grafische Installationsprogramm steht Ihnen auf TTY1 zur Verfügung. Auf
2124assuming you're using one of those TTYs. They are configured and can be used 2148den TTYs 3 bis 6 können Sie vor sich eine Eingabeaufforderung für den
2125to run commands as root. 2149Administratornutzer »root« sehen, nachdem Sie @kbd{strg-alt-f3},
2126 2150@kbd{strg-alt-f4} usw.@: gedrückt haben. TTY2 zeigt Ihnen dieses Handbuch,
2127TTY2 shows this documentation, browsable using the Info reader commands 2151das Sie über die Tastenkombination @kbd{strg-alt-f2} erreichen. In dieser
2128(@pxref{Top,,, info-stnd, Stand-alone GNU Info}). The installation system 2152Dokumentation können Sie mit den Steuerungsbefehlen Ihres Info-Betrachters
2129runs the GPM mouse daemon, which allows you to select text with the left 2153blättern (siehe @ref{Top,,, info-stnd, Stand-alone GNU Info}). Auf dem
2130mouse button and to paste it with the middle button. 2154Installationssystem läuft der GPM-Maus-Daemon, wodurch Sie Text mit der
2155linken Maustaste markieren und ihn mit der mittleren Maustaste einfügen
2156können.
2131 2157
2132@quotation Anmerkung 2158@quotation Anmerkung
2133Für die Installation benötigen Sie Zugang zum Internet, damit fehlende 2159Für die Installation benötigen Sie Zugang zum Internet, damit fehlende
@@ -2136,12 +2162,79 @@ Abschnitt »Netzwerkkonfiguration« weiter unten finden Sie mehr Informationen
2136dazu. 2162dazu.
2137@end quotation 2163@end quotation
2138 2164
2139The installation system includes many common tools needed for this task. 2165@node Geführte grafische Installation
2140But it is also a full-blown Guix System, which means that you can install 2166@section Geführte grafische Installation
2141additional packages, should you need it, using @command{guix package} 2167
2142(@pxref{Aufruf von guix package}). 2168Das grafische Installationsprogramm ist mit einer textbasierten
2169Benutzeroberfläche ausgestattet. Es kann Sie mit Dialogfeldern durch die
2170Schritte führen, mit denen Sie GNU@tie{}Guix System installieren.
2171
2172Die ersten Dialogfelder ermöglichen es Ihnen, das System aufzusetzen, wie
2173Sie es bei der Installation benutzen: Sie können die Sprache und
2174Tastaturbelegung festlegen und die Netzwerkanbindung einrichten, die während
2175der Installation benutzt wird. Das folgende Bild zeigt den Dialog zur
2176Einrichtung der Netzwerkanbindung.
2177
2178@image{images/installer-network,5in,, Netzwerkanbindung einrichten mit dem
2179grafischen Installationsprogramm}
2180
2181Mit den danach kommenden Schritten können Sie Ihre Festplatte
2182partitionieren, wie im folgenden Bild gezeigt, und auswählen, ob Ihre
2183Dateisysteme verschlüsselt werden sollen oder nicht. Sie können Ihren
2184Rechnernamen und das Administratorpasswort (das »root«-Passwort) festlegen
2185und ein Benutzerkonto einrichten, und noch mehr.
2186
2187@image{images/installer-partitions,5in,, Partitionieren mit dem grafischen
2188Installationsprogramm}
2189
2190Beachten Sie, dass Sie mit dem Installationsprogramm jederzeit den aktuellen
2191Installationsschritt verlassen und zu einem vorherigen Schritt zurückkehren
2192können, wie Sie im folgenden Bild sehen können.
2143 2193
2144@subsection Tastaturbelegung 2194@image{images/installer-resume,5in,, Mit einem Installationsschritt
2195fortfahren}
2196
2197Sobald Sie fertig sind, erzeugt das Installationsprogramm eine
2198Betriebssystemkonfiguration und zeigt sie an (siehe @ref{Das Konfigurationssystem nutzen}). Zu diesem Zeitpunkt können Sie auf »OK« drücken und
2199die Installation wird losgehen. Ist sie erfolgreich, können Sie neu starten
2200und Ihr neues System genießen. Siehe @ref{Nach der Systeminstallation} für
2201Informationen, wie es weitergeht!
2202
2203
2204@node Manuelle Installation
2205@section Manuelle Installation
2206
2207Dieser Abschnitt beschreibt, wie Sie GNU@tie{}Guix System auf manuelle Weise
2208auf Ihrer Maschine installieren. Diese Alternative setzt voraus, dass Sie
2209bereits mit GNU/Linux, der Shell und üblichen Administrationswerkzeugen
2210vertraut sind. Wenn Sie glauben, dass das nichts für Sie ist, dann möchten
2211Sie vielleicht das geführte grafische Installationsprogramm benutzen (siehe
2212@ref{Geführte grafische Installation}).
2213
2214Das Installationssystem macht Eingabeaufforderungen auf den TTYs 3 bis 6
2215zugänglich, auf denen Sie als Administratornutzer Befehle eingeben können;
2216Sie erreichen diese, indem Sie die Tastenkombinationen @kbd{strg-alt-f3},
2217@kbd{strg-alt-f4} und so weiter benutzen. Es enthält viele übliche
2218Werkzeuge, mit denen Sie diese Aufgabe bewältigen können. Da es sich auch um
2219ein vollständiges »Guix System«-System handelt, können Sie aber auch andere
2220Pakete mit dem Befehl @command{guix package} nachinstallieren, wenn Sie sie
2221brauchen (siehe @ref{Aufruf von guix package}).
2222
2223@menu
2224* Tastaturbelegung und Netzwerkanbindung und Partitionierung:: Erstes
2225 Einrichten.
2226* Fortfahren mit der Installation:: Installieren.
2227@end menu
2228
2229@node Tastaturbelegung und Netzwerkanbindung und Partitionierung
2230@subsection Tastaturbelegung, Netzwerkanbindung und Partitionierung
2231
2232Bevor Sie das System installieren können, wollen Sie vielleicht die
2233Tastaturbelegung ändern, eine Netzwerkverbindung herstellen und die
2234Zielfestplatte partitionieren. Dieser Abschnitt wird Sie durch diese
2235Schritte führen.
2236
2237@subsubsection Tastaturbelegung
2145 2238
2146@cindex Tastaturbelegung 2239@cindex Tastaturbelegung
2147Das Installationsabbild verwendet die US-amerikanische 2240Das Installationsabbild verwendet die US-amerikanische
@@ -2158,7 +2251,7 @@ Schauen Sie sich an, welche Dateien im Verzeichnis
2158verfügbarer Tastaturbelegungen zu sehen. Wenn Sie mehr Informationen 2251verfügbarer Tastaturbelegungen zu sehen. Wenn Sie mehr Informationen
2159brauchen, führen Sie @command{man loadkeys} aus. 2252brauchen, führen Sie @command{man loadkeys} aus.
2160 2253
2161@subsection Netzwerkkonfiguration 2254@subsubsection Netzwerkkonfiguration
2162 2255
2163Führen Sie folgenden Befehl aus, um zu sehen, wie Ihre 2256Führen Sie folgenden Befehl aus, um zu sehen, wie Ihre
2164Netzwerkschnittstellen benannt sind: 2257Netzwerkschnittstellen benannt sind:
@@ -2261,14 +2354,14 @@ Vergewissern Sie sich vorher, dass Sie entweder ein Passwort mit
2261Authentifizierung über öffentliche Schlüssel eingerichtet haben, bevor Sie 2354Authentifizierung über öffentliche Schlüssel eingerichtet haben, bevor Sie
2262sich anmelden. 2355sich anmelden.
2263 2356
2264@subsection Plattenpartitionierung 2357@subsubsection Plattenpartitionierung
2265 2358
2266Sofern nicht bereits geschehen, ist der nächste Schritt, zu partitionieren 2359Sofern nicht bereits geschehen, ist der nächste Schritt, zu partitionieren
2267und dann die Zielpartition zu formatieren. 2360und dann die Zielpartition zu formatieren.
2268 2361
2269Auf dem Installationsabbild sind mehrere Partitionierungswerkzeuge zu 2362Auf dem Installationsabbild sind mehrere Partitionierungswerkzeuge zu
2270finden, einschließlich (@pxref{Overview,,, parted, GNU Parted User Manual}), 2363finden, einschließlich (siehe @ref{Overview,,, parted, GNU Parted User
2271@command{fdisk} und @command{cfdisk}. Starten Sie eines davon und 2364Manual}), @command{fdisk} und @command{cfdisk}. Starten Sie eines davon und
2272partitionieren Sie Ihre Festplatte oder sonstigen Massenspeicher: 2365partitionieren Sie Ihre Festplatte oder sonstigen Massenspeicher:
2273 2366
2274@example 2367@example
@@ -2278,16 +2371,17 @@ cfdisk
2278Wenn Ihre Platte mit einer »GUID Partition Table« (GPT) formatiert ist, und 2371Wenn Ihre Platte mit einer »GUID Partition Table« (GPT) formatiert ist, und
2279Sie vorhaben, die BIOS-basierte Variante des GRUB-Bootloaders zu 2372Sie vorhaben, die BIOS-basierte Variante des GRUB-Bootloaders zu
2280installieren (was der Vorgabe entspricht), stellen Sie sicher, dass eine 2373installieren (was der Vorgabe entspricht), stellen Sie sicher, dass eine
2281Partition als BIOS-Boot-Partition ausgewiesen ist (@pxref{BIOS 2374Partition als BIOS-Boot-Partition ausgewiesen ist (siehe @ref{BIOS
2282installation,,, grub, GNU GRUB manual}). 2375installation,,, grub, GNU GRUB manual}).
2283 2376
2284@cindex EFI, Installation 2377@cindex EFI, Installation
2285@cindex UEFI, Installation 2378@cindex UEFI, Installation
2286@cindex ESP, EFI-Systempartition 2379@cindex ESP, EFI-Systempartition
2287If you instead wish to use EFI-based GRUB, a FAT32 @dfn{EFI System 2380Falls Sie stattdessen einen EFI-basierten GRUB installieren möchten, muss
2288Partition} (ESP) is required. This partition can be mounted at 2381auf der Platte eine FAT32-formatierte @dfn{EFI-Systempartition} (ESP)
2289@file{/boot/efi} for instance and must have the @code{esp} flag set. E.g., 2382vorhanden sein. Diese Partition kann unter dem Pfad @file{/boot/efi}
2290for @command{parted}: 2383eingebunden (»gemountet«) werden und die @code{esp}-Flag der Partition muss
2384gesetzt sein. Dazu würden Sie beispielsweise in @command{parted} eintippen:
2291 2385
2292@example 2386@example
2293parted /dev/sda set 1 esp on 2387parted /dev/sda set 1 esp on
@@ -2302,16 +2396,17 @@ installieren möchten: Wenn bei Ihnen das Verzeichnis
2302eine EFI-Installation durchführen, wozu Sie in Ihrer Konfiguration 2396eine EFI-Installation durchführen, wozu Sie in Ihrer Konfiguration
2303@code{grub-efi-bootloader} benutzen. Ansonsten sollten Sie den 2397@code{grub-efi-bootloader} benutzen. Ansonsten sollten Sie den
2304BIOS-basierten GRUB benutzen, der mit @code{grub-bootloader} bezeichnet 2398BIOS-basierten GRUB benutzen, der mit @code{grub-bootloader} bezeichnet
2305wird. Siehe @xref{Bootloader-Konfiguration}, wenn Sie mehr Informationen 2399wird. Siehe @ref{Bootloader-Konfiguration}, wenn Sie mehr Informationen
2306über Bootloader brauchen. 2400über Bootloader brauchen.
2307@end quotation 2401@end quotation
2308 2402
2309Once you are done partitioning the target hard disk drive, you have to 2403Sobald Sie die Platte fertig partitioniert haben, auf die Sie installieren
2310create a file system on the relevant partition(s)@footnote{Currently Guix 2404möchten, müssen Sie ein Dateisystem auf Ihrer oder Ihren für Guix System
2311System only supports ext4 and btrfs file systems. In particular, code that 2405vorgesehenen Partition(en) erzeugen@footnote{Derzeit unterstützt Guix System
2312reads file system UUIDs and labels only works for these file system 2406nur die Dateisystemtypen ext4 und btrfs. Insbesondere funktioniert
2313types.}. For the ESP, if you have one and assuming it is @file{/dev/sda1}, 2407Guix-Code, der Dateisystem-UUIDs und -Labels ausliest, nur auf diesen
2314run: 2408Dateisystemtypen.}. Wenn Sie eine ESP brauchen und dafür die Partition
2409@file{/dev/sda1} vorgesehen haben, müssen Sie diesen Befehl ausführen:
2315 2410
2316@example 2411@example
2317mkfs.fat -F32 /dev/sda1 2412mkfs.fat -F32 /dev/sda1
@@ -2319,7 +2414,7 @@ mkfs.fat -F32 /dev/sda1
2319 2414
2320Geben Sie Ihren Dateisystemen auch besser eine Bezeichnung (»Label«), damit 2415Geben Sie Ihren Dateisystemen auch besser eine Bezeichnung (»Label«), damit
2321Sie sie zuverlässig wiedererkennen und später in den 2416Sie sie zuverlässig wiedererkennen und später in den
2322@code{file-system}-Deklarationen darauf Bezug nehmen können (@pxref{Dateisysteme}). Dazu benutzen Sie typischerweise die Befehlszeilenoption 2417@code{file-system}-Deklarationen darauf Bezug nehmen können (siehe @ref{Dateisysteme}). Dazu benutzen Sie typischerweise die Befehlszeilenoption
2323@code{-L} des Befehls @command{mkfs.ext4} oder entsprechende Optionen für 2418@code{-L} des Befehls @command{mkfs.ext4} oder entsprechende Optionen für
2324andere Befehle. Wenn wir also annehmen, dass @file{/dev/sda2} die Partition 2419andere Befehle. Wenn wir also annehmen, dass @file{/dev/sda2} die Partition
2325ist, auf der Ihr Wurzeldateisystem (englisch »root«) wohnen soll, können Sie 2420ist, auf der Ihr Wurzeldateisystem (englisch »root«) wohnen soll, können Sie
@@ -2354,13 +2449,14 @@ des künftigen Wurzeldateisystems ist):
2354mount LABEL=my-root /mnt 2449mount LABEL=my-root /mnt
2355@end example 2450@end example
2356 2451
2357Also mount any other file systems you would like to use on the target system 2452Binden Sie auch alle anderen Dateisysteme ein, die Sie auf dem Zielsystem
2358relative to this path. If you have opted for @file{/boot/efi} as an EFI 2453benutzen möchten, mit Einhängepunkten relativ zu diesem Pfad. Wenn Sie sich
2359mount point for example, mount it at @file{/mnt/boot/efi} now so it is found 2454zum Beispiel für einen Einhängepunkt @file{/boot/efi} für die
2360by @code{guix system init} afterwards. 2455EFI-Systempartition entschieden haben, binden Sie sie jetzt als
2456@file{/mnt/boot/efi} ein, damit @code{guix system init} sie später findet.
2361 2457
2362Wenn Sie zudem auch vorhaben, eine oder mehrere Swap-Partitionen zu benutzen 2458Wenn Sie zudem auch vorhaben, eine oder mehrere Swap-Partitionen zu benutzen
2363(@pxref{Memory Concepts, swap space,, libc, The GNU C Library Reference 2459(siehe @ref{Memory Concepts, swap space,, libc, The GNU C Library Reference
2364Manual}), initialisieren Sie diese nun mit @command{mkswap}. Angenommen Sie 2460Manual}), initialisieren Sie diese nun mit @command{mkswap}. Angenommen Sie
2365haben eine Swap-Partition auf @file{/dev/sda3}, dann würde der Befehl so 2461haben eine Swap-Partition auf @file{/dev/sda3}, dann würde der Befehl so
2366lauten: 2462lauten:
@@ -2373,8 +2469,8 @@ swapon /dev/sda3
2373Alternativ können Sie eine Swap-Datei benutzen. Angenommen, Sie wollten die 2469Alternativ können Sie eine Swap-Datei benutzen. Angenommen, Sie wollten die
2374Datei @file{/swapdatei} im neuen System als eine Swapdatei benutzen, dann 2470Datei @file{/swapdatei} im neuen System als eine Swapdatei benutzen, dann
2375müssten Sie Folgendes ausführen@footnote{Dieses Beispiel wird auf vielen 2471müssten Sie Folgendes ausführen@footnote{Dieses Beispiel wird auf vielen
2376Arten von Dateisystemen funktionieren (z.B. auf ext4). Auf Dateisystemen mit 2472Arten von Dateisystemen funktionieren (z.B.@: auf ext4). Auf Dateisystemen
2377Copy-on-Write (wie z.B. btrfs) können sich die nötigen Schritte 2473mit Copy-on-Write (wie z.B.@: btrfs) können sich die nötigen Schritte
2378unterscheiden. Details finden Sie in der Dokumentation auf den 2474unterscheiden. Details finden Sie in der Dokumentation auf den
2379Handbuchseiten von @command{mkswap} und @command{swapon}.}: 2475Handbuchseiten von @command{mkswap} und @command{swapon}.}:
2380 2476
@@ -2393,7 +2489,7 @@ beschrieben erstellt haben, die Verschlüsselung auch die Swap-Datei schützt,
2393genau wie jede andere Datei in dem Dateisystem. 2489genau wie jede andere Datei in dem Dateisystem.
2394 2490
2395@node Fortfahren mit der Installation 2491@node Fortfahren mit der Installation
2396@section Fortfahren mit der Installation 2492@subsection Fortfahren mit der Installation
2397 2493
2398Wenn die Partitionen des Installationsziels bereit sind und dessen 2494Wenn die Partitionen des Installationsziels bereit sind und dessen
2399Wurzeldateisystem unter @file{/mnt} eingebunden wurde, kann es losgehen mit 2495Wurzeldateisystem unter @file{/mnt} eingebunden wurde, kann es losgehen mit
@@ -2403,7 +2499,7 @@ der Installation. Führen Sie zuerst aus:
2403herd start cow-store /mnt 2499herd start cow-store /mnt
2404@end example 2500@end example
2405 2501
2406Dadurch wird @file{/gnu/store} copy-on-write, d.h. dorthin von Guix 2502Dadurch wird @file{/gnu/store} copy-on-write, d.h.@: dorthin von Guix
2407erstellte Pakete werden in ihrer Installationsphase auf dem unter 2503erstellte Pakete werden in ihrer Installationsphase auf dem unter
2408@file{/mnt} befindlichen Zieldateisystem gespeichert, statt den 2504@file{/mnt} befindlichen Zieldateisystem gespeichert, statt den
2409Arbeitsspeicher auszulasten. Das ist nötig, weil die erste Phase des Befehls 2505Arbeitsspeicher auszulasten. Das ist nötig, weil die erste Phase des Befehls
@@ -2415,7 +2511,7 @@ Arbeitsspeicher gelagert werden konnten.
2415Als Nächstes müssen Sie eine Datei bearbeiten und dort eine Deklaration des 2511Als Nächstes müssen Sie eine Datei bearbeiten und dort eine Deklaration des
2416Betriebssystems, das Sie installieren möchten, hineinschreiben. Zu diesem 2512Betriebssystems, das Sie installieren möchten, hineinschreiben. Zu diesem
2417Zweck sind im Installationssystem drei Texteditoren enthalten. Wir 2513Zweck sind im Installationssystem drei Texteditoren enthalten. Wir
2418empfehlen, dass Sie GNU nano benutzen (@pxref{Top,,, nano, GNU nano 2514empfehlen, dass Sie GNU nano benutzen (siehe @ref{Top,,, nano, GNU nano
2419Manual}), welcher Syntax und zueinander gehörende Klammern hervorheben 2515Manual}), welcher Syntax und zueinander gehörende Klammern hervorheben
2420kann. Andere mitgelieferte Texteditoren, die Sie benutzen können, sind GNU 2516kann. Andere mitgelieferte Texteditoren, die Sie benutzen können, sind GNU
2421Zile (ein Emacs-Klon) und nvi (ein Klon des ursprünglichen 2517Zile (ein Emacs-Klon) und nvi (ein Klon des ursprünglichen
@@ -2424,8 +2520,8 @@ Zieldateisystem der Installation speichern, etwa als
2424@file{/mnt/etc/config.scm}, weil Sie Ihre Konfigurationsdatei im frisch 2520@file{/mnt/etc/config.scm}, weil Sie Ihre Konfigurationsdatei im frisch
2425installierten System noch brauchen werden. 2521installierten System noch brauchen werden.
2426 2522
2427Der Abschnitt @xref{Das Konfigurationssystem nutzen} gibt einen Überblick 2523Der Abschnitt @ref{Das Konfigurationssystem nutzen} gibt einen Überblick über
2428über die Konfigurationsdatei. Die in dem Abschnitt diskutierten 2524die Konfigurationsdatei. Die in dem Abschnitt diskutierten
2429Beispielkonfigurationen sind im Installationsabbild im Verzeichnis 2525Beispielkonfigurationen sind im Installationsabbild im Verzeichnis
2430@file{/etc/configuration} zu finden. Um also mit einer Systemkonfiguration 2526@file{/etc/configuration} zu finden. Um also mit einer Systemkonfiguration
2431anzufangen, die einen grafischen »Display-Server« (eine 2527anzufangen, die einen grafischen »Display-Server« (eine
@@ -2442,13 +2538,16 @@ Folgendes:
2442 2538
2443@itemize 2539@itemize
2444@item 2540@item
2445Make sure the @code{bootloader-configuration} form refers to the target you 2541Ihre @code{bootloader-configuration}-Form muss sich auf dasjenige Ziel
2446want to install GRUB on. It should mention @code{grub-bootloader} if you 2542beziehen, auf das Sie GRUB installieren möchten. Sie sollte genau dann
2447are installing GRUB in the legacy way, or @code{grub-efi-bootloader} for 2543@code{grub-bootloader} nennen, wenn Sie GRUB im alten BIOS-Modus
2448newer UEFI systems. For legacy systems, the @code{target} field names a 2544installieren, und für neuere UEFI-Systeme sollten Sie
2449device, like @code{/dev/sda}; for UEFI systems it names a path to a mounted 2545@code{grub-efi-bootloader} nennen. Bei Altsystemen bezeichnet das
2450EFI partition, like @code{/boot/efi}; do make sure the path is currently 2546@code{target}-Feld ein Gerät wie @code{/dev/sda}, bei UEFI-Systemen
2451mounted and a @code{file-system} entry is specified in your configuration. 2547bezeichnet es den Pfad zu einer eingebundenen EFI-Partition wie
2548@code{/boot/efi}; stellen Sie sicher, dass die ESP tatsächlich dort
2549eingebunden ist und ein @code{file-system}-Eintrag dafür in Ihrer
2550Konfiguration festgelegt wurde.
2452 2551
2453@item 2552@item
2454Dateisystembezeichnungen müssen mit den jeweiligen @code{device}-Feldern in 2553Dateisystembezeichnungen müssen mit den jeweiligen @code{device}-Feldern in
@@ -2458,7 +2557,7 @@ ihre @code{device}-Felder benutzen.
2458 2557
2459@item 2558@item
2460Gibt es verschlüsselte Partitionen oder RAID-Partitionen, dann müssen sie im 2559Gibt es verschlüsselte Partitionen oder RAID-Partitionen, dann müssen sie im
2461@code{mapped-devices}-Feld genannt werden (@pxref{Zugeordnete Geräte}). 2560@code{mapped-devices}-Feld genannt werden (siehe @ref{Zugeordnete Geräte}).
2462@end itemize 2561@end itemize
2463 2562
2464Wenn Sie damit fertig sind, Ihre Konfigurationsdatei vorzubereiten, können 2563Wenn Sie damit fertig sind, Ihre Konfigurationsdatei vorzubereiten, können
@@ -2474,20 +2573,26 @@ guix system init /mnt/etc/config.scm /mnt
2474Dies kopiert alle notwendigen Dateien und installiert GRUB auf 2573Dies kopiert alle notwendigen Dateien und installiert GRUB auf
2475@file{/dev/sdX}, sofern Sie nicht noch die Befehlszeilenoption 2574@file{/dev/sdX}, sofern Sie nicht noch die Befehlszeilenoption
2476@option{--no-bootloader} benutzen. Weitere Informationen finden Sie im 2575@option{--no-bootloader} benutzen. Weitere Informationen finden Sie im
2477Abschnitt @pxref{Aufruf von guix system}. Der Befehl kann das Herunterladen 2576Abschnitt @ref{Aufruf von guix system}. Der Befehl kann das Herunterladen oder
2478oder Erstellen fehlender Softwarepakete auslösen, was einige Zeit in 2577Erstellen fehlender Softwarepakete auslösen, was einige Zeit in Anspruch
2479Anspruch nehmen kann. 2578nehmen kann.
2480 2579
2481Sobald der Befehl erfolgreich — hoffentlich! — durchgelaufen ist, können Sie 2580Sobald der Befehl erfolgreich — hoffentlich! — durchgelaufen ist, können Sie
2482mit dem Befehl @command{reboot} das neue System booten lassen. Der 2581mit dem Befehl @command{reboot} das neue System booten lassen. Der
2483Administratornutzer @code{root} hat im neuen System zunächst ein leeres 2582Administratornutzer @code{root} hat im neuen System zunächst ein leeres
2484Passwort und Passwörter der anderen Nutzer müssen Sie erst setzen, indem Sie 2583Passwort, und Passwörter der anderen Nutzer müssen Sie später setzen, indem
2485den Befehl @command{passwd} als @code{root} ausführen, außer Ihre 2584Sie den Befehl @command{passwd} als @code{root} ausführen, außer Ihre
2486Konfiguration enthält schon Passwörter (@pxref{user-account-password, user 2585Konfiguration enthält schon Passwörter (siehe @ref{user-account-password,
2487account passwords}). 2586user account passwords}). Siehe @ref{Nach der Systeminstallation} für
2587Informationen, wie es weiter geht!
2588
2488 2589
2489@cindex upgrading Guix System 2590@node Nach der Systeminstallation
2490From then on, you can update the system whenever you want by running, say: 2591@section Nach der Systeminstallation
2592
2593Sie haben es geschafft: Sie haben Guix System erfolgreich gebootet! Von
2594jetzt an können Sie Guix System aktualisieren, wann Sie möchten, indem Sie
2595zum Beispiel das hier ausführen:
2491 2596
2492@example 2597@example
2493guix pull 2598guix pull
@@ -2495,38 +2600,44 @@ sudo guix system reconfigure /etc/config.scm
2495@end example 2600@end example
2496 2601
2497@noindent 2602@noindent
2498This builds a new system generation with the latest packages and services 2603Dadurch wird eine neue Systemgeneration aus den neuesten Paketen und
2499(@pxref{Aufruf von guix system}). We recommend doing that regularly so that 2604Diensten erstellt (siehe @ref{Aufruf von guix system}). Wir empfehlen, diese
2500your system includes the latest security updates (@pxref{Sicherheitsaktualisierungen}). 2605Schritte regelmäßig zu wiederholen, damit Ihr System die aktuellen
2606Sicherheitsaktualisierungen benutzt (siehe @ref{Sicherheitsaktualisierungen}).
2501 2607
2502@c See <https://lists.gnu.org/archive/html/guix-devel/2019-01/msg00268.html>. 2608@c See <https://lists.gnu.org/archive/html/guix-devel/2019-01/msg00268.html>.
2503@quotation Anmerkung 2609@quotation Anmerkung
2504@cindex sudo vs. @command{guix pull} 2610@cindex sudo, Wirkung auf @command{guix pull}
2505Note that @command{sudo guix} runs your user's @command{guix} command and 2611Beachten Sie, dass bei Nutzung von @command{sudo guix} der
2506@emph{not} root's, because @command{sudo} leaves @code{PATH} unchanged. To 2612@command{guix}-Befehl des aktiven Benutzers ausgeführt wird und @emph{nicht}
2507explicitly run root's @command{guix}, type @command{sudo -i guix @dots{}}. 2613der des Administratornutzers »root«, weil @command{sudo} die
2614Umgebungsvariable @code{PATH} unverändert lässt. Um ausdrücklich das
2615@command{guix}-Programm des Administrators aufzurufen, müssen Sie
2616@command{sudo -i guix @dots{}} eintippen.
2508@end quotation 2617@end quotation
2509 2618
2510Join us on @code{#guix} on the Freenode IRC network or on 2619Besuchen Sie uns auf @code{#guix} auf dem Freenode-IRC-Netzwerk oder auf der
2511@email{guix-devel@@gnu.org} to share your experience---good or not so good. 2620Mailing-Liste @file{guix-devel@@gnu.org}, um uns Rückmeldung zu geben!
2621
2512 2622
2513@node Installing Guix in a VM 2623@node Guix in einer VM installieren
2514@section Installing Guix in a Virtual Machine 2624@section Guix in einer virtuellen Maschine installieren
2515 2625
2516@cindex virtual machine, Guix System installation 2626@cindex virtuelle Maschine, Guix System installieren
2517@cindex Virtual Private Server (VPS) 2627@cindex Virtual Private Server (VPS)
2518@cindex VPS (Virtual Private Server) 2628@cindex VPS (Virtual Private Server)
2519If you'd like to install Guix System in a virtual machine (VM) or on a 2629Wenn Sie Guix System auf einer virtuellen Maschine (VM) oder einem »Virtual
2520virtual private server (VPS) rather than on your beloved machine, this 2630Private Server« (VPS) statt auf Ihrer echten Maschine installieren möchten,
2521section is for you. 2631ist dieser Abschnitt hier richtig für Sie.
2522 2632
2523To boot a @uref{http://qemu.org/,QEMU} VM for installing Guix System in a 2633Um eine virtuelle Maschine für @uref{http://qemu.org/,QEMU} aufzusetzen, mit
2524disk image, follow these steps: 2634der Sie Guix System in ein »Disk-Image« installieren können (also in eine
2635Datei mit einem Abbild eines Plattenspeichers), gehen Sie so vor:
2525 2636
2526@enumerate 2637@enumerate
2527@item 2638@item
2528First, retrieve and decompress the Guix system installation image as 2639Zunächst laden Sie das Installationsabbild des Guix-Systems wie zuvor
2529described previously (@pxref{Installation von USB-Stick oder DVD}). 2640beschrieben herunter und entpacken es (siehe @ref{Installation von USB-Stick oder DVD}).
2530 2641
2531@item 2642@item
2532Legen Sie nun ein Disk-Image an, das das System nach der Installation 2643Legen Sie nun ein Disk-Image an, das das System nach der Installation
@@ -2547,7 +2658,7 @@ Starten Sie das USB-Installationsabbild auf einer virtuellen Maschine:
2547@example 2658@example
2548qemu-system-x86_64 -m 1024 -smp 1 \ 2659qemu-system-x86_64 -m 1024 -smp 1 \
2549 -net user -net nic,model=virtio -boot menu=on \ 2660 -net user -net nic,model=virtio -boot menu=on \
2550 -drive file=guixsd-install-@value{VERSION}.@var{System}.iso \ 2661 -drive file=guix-system-install-@value{VERSION}.@var{System}.iso \
2551 -drive file=guixsd.img 2662 -drive file=guixsd.img
2552@end example 2663@end example
2553 2664
@@ -2562,11 +2673,12 @@ bestätigen.
2562@item 2673@item
2563Sie sind nun in der virtuellen Maschine als Administratornutzer @code{root} 2674Sie sind nun in der virtuellen Maschine als Administratornutzer @code{root}
2564angemeldet und können mit der Installation wie gewohnt fortfahren. Folgen 2675angemeldet und können mit der Installation wie gewohnt fortfahren. Folgen
2565Sie der Anleitung im Abschnitt @xref{Vor der Installation}. 2676Sie der Anleitung im Abschnitt @ref{Vor der Installation}.
2566@end enumerate 2677@end enumerate
2567 2678
2568Once installation is complete, you can boot the system that's on your 2679Wurde die Installation abgeschlossen, können Sie das System starten, das
2569@file{guixsd.img} image. @xref{Running Guix in a VM}, for how to do that. 2680sich nun als Abbild in der Datei @file{guixsd.img} befindet. Der Abschnitt
2681@ref{Guix in einer VM starten} erklärt, wie Sie das tun können.
2570 2682
2571@node Ein Abbild zur Installation erstellen 2683@node Ein Abbild zur Installation erstellen
2572@section Ein Abbild zur Installation erstellen 2684@section Ein Abbild zur Installation erstellen
@@ -2611,11 +2723,11 @@ natürlich noch mehr als diese offensichtlichen Funktionalitäten.
2611 2723
2612Dieses Kapitel beschreibt die Hauptfunktionalitäten von Guix, sowie die von 2724Dieses Kapitel beschreibt die Hauptfunktionalitäten von Guix, sowie die von
2613Guix angebotenen Paketverwaltungswerkzeuge. Zusätzlich von den im Folgenden 2725Guix angebotenen Paketverwaltungswerkzeuge. Zusätzlich von den im Folgenden
2614beschriebenen Befehlszeilen-Benutzerschnittstellen (@pxref{Aufruf von guix package, @code{guix package}}) können Sie auch mit der 2726beschriebenen Befehlszeilen-Benutzerschnittstellen (siehe @ref{Aufruf von guix package, @code{guix package}}) können Sie auch mit der
2615Emacs-Guix-Schnittstelle (@pxref{Top,,, emacs-guix, The Emacs-Guix Reference 2727Emacs-Guix-Schnittstelle (siehe @ref{Top,,, emacs-guix, The Emacs-Guix
2616Manual}) arbeiten, nachdem Sie das Paket @code{emacs-guix} installiert haben 2728Reference Manual}) arbeiten, nachdem Sie das Paket @code{emacs-guix}
2617(führen Sie zum Einstieg in Emacs-Guix den Emacs-Befehl @kbd{M-x guix-help} 2729installiert haben (führen Sie zum Einstieg in Emacs-Guix den Emacs-Befehl
2618aus): 2730@kbd{M-x guix-help} aus):
2619 2731
2620@example 2732@example
2621guix package -i emacs-guix 2733guix package -i emacs-guix
@@ -2654,11 +2766,11 @@ Zum Beispiel installiert @code{alice} GCC 4.7.2. Dadurch zeigt dann
2654@file{/gnu/store/@dots{}-gcc-4.7.2/bin/gcc}. Auf demselben Rechner hat 2766@file{/gnu/store/@dots{}-gcc-4.7.2/bin/gcc}. Auf demselben Rechner hat
2655@code{bob} bereits GCC 4.8.0 installiert. Das Profil von @code{bob} zeigt 2767@code{bob} bereits GCC 4.8.0 installiert. Das Profil von @code{bob} zeigt
2656dann einfach weiterhin auf @file{/gnu/store/@dots{}-gcc-4.8.0/bin/gcc} — 2768dann einfach weiterhin auf @file{/gnu/store/@dots{}-gcc-4.8.0/bin/gcc} —
2657d.h. beide Versionen von GCC koexistieren auf demselben System, ohne sich zu 2769d.h.@: beide Versionen von GCC koexistieren auf demselben System, ohne sich
2658stören. 2770zu stören.
2659 2771
2660Der Befehl @command{guix package} ist das zentrale Werkzeug, um Pakete zu 2772Der Befehl @command{guix package} ist das zentrale Werkzeug, um Pakete zu
2661verwalten (@pxref{Aufruf von guix package}). Es arbeitet auf dem eigenen 2773verwalten (siehe @ref{Aufruf von guix package}). Es arbeitet auf dem eigenen
2662Profil jedes Nutzers und kann @emph{mit normalen Benutzerrechten} ausgeführt 2774Profil jedes Nutzers und kann @emph{mit normalen Benutzerrechten} ausgeführt
2663werden. 2775werden.
2664 2776
@@ -2671,24 +2783,25 @@ von @command{guix package} während der Transaktion beendet wird, oder es zum
2671Stromausfall während der Transaktion kommt, dann bleibt der alte, nutzbare 2783Stromausfall während der Transaktion kommt, dann bleibt der alte, nutzbare
2672Zustands des Nutzerprofils erhalten. 2784Zustands des Nutzerprofils erhalten.
2673 2785
2674In addition, any package transaction may be @emph{rolled back}. So, if, for 2786Zudem kann jede Pakettransaktion @emph{zurückgesetzt} werden
2675example, an upgrade installs a new version of a package that turns out to 2787(Rollback). Wird also zum Beispiel durch eine Aktualisierung eine neue
2676have a serious bug, users may roll back to the previous instance of their 2788Version eines Pakets installiert, die einen schwerwiegenden Fehler zur Folge
2677profile, which was known to work well. Similarly, the global system 2789hat, können Nutzer ihr Profil einfach auf die vorherige Profilinstanz
2678configuration on Guix is subject to transactional upgrades and roll-back 2790zurücksetzen, von der sie wissen, dass sie gut lief. Ebenso unterliegt bei
2679(@pxref{Das Konfigurationssystem nutzen}). 2791Guix auch die globale Systemkonfiguration transaktionellen Aktualisierungen
2792und Rücksetzungen (siehe @ref{Das Konfigurationssystem nutzen}).
2680 2793
2681Alle Pakete im Paket-Store können vom @emph{Müllsammler} (Garbage Collector) 2794Alle Pakete im Paket-Store können vom @emph{Müllsammler} (Garbage Collector)
2682gelöscht werden. Guix ist in der Lage, festzustellen, welche Pakete noch 2795gelöscht werden. Guix ist in der Lage, festzustellen, welche Pakete noch
2683durch Benutzerprofile referenziert werden, und entfernt nur diese, die 2796durch Benutzerprofile referenziert werden, und entfernt nur diese, die
2684nachweislich nicht mehr referenziert werden (@pxref{Aufruf von guix gc}). Benutzer können auch ausdrücklich alte Generationen ihres Profils 2797nachweislich nicht mehr referenziert werden (siehe @ref{Aufruf von guix gc}). Benutzer können auch ausdrücklich alte Generationen ihres Profils
2685löschen, damit die zugehörigen Pakete vom Müllsammler gelöscht werden 2798löschen, damit die zugehörigen Pakete vom Müllsammler gelöscht werden
2686können. 2799können.
2687 2800
2688@cindex Reproduzierbarkeit 2801@cindex Reproduzierbarkeit
2689@cindex Reproduzierbare Erstellungen 2802@cindex Reproduzierbare Erstellungen
2690Guix verfolgt einen @dfn{rein funktionalen} Ansatz bei der Paketverwaltung, 2803Guix verfolgt einen @dfn{rein funktionalen} Ansatz bei der Paketverwaltung,
2691wie er in der Einleitung beschrieben wurde (@pxref{Einführung}). Jedes 2804wie er in der Einleitung beschrieben wurde (siehe @ref{Einführung}). Jedes
2692Paketverzeichnis im @file{/gnu/store} hat einen Hash all seiner bei der 2805Paketverzeichnis im @file{/gnu/store} hat einen Hash all seiner bei der
2693Erstellung benutzten Eingaben im Namen — Compiler, Bibliotheken, 2806Erstellung benutzten Eingaben im Namen — Compiler, Bibliotheken,
2694Erstellungs-Skripts etc. Diese direkte Entsprechung ermöglicht es Benutzern, 2807Erstellungs-Skripts etc. Diese direkte Entsprechung ermöglicht es Benutzern,
@@ -2697,34 +2810,33 @@ Distribution entspricht. Sie maximiert auch die @dfn{Reproduzierbarkeit der
2697Erstellungen} zu maximieren: Dank der isolierten Erstellungsumgebungen, die 2810Erstellungen} zu maximieren: Dank der isolierten Erstellungsumgebungen, die
2698benutzt werden, resultiert eine Erstellung wahrscheinlich in bitweise 2811benutzt werden, resultiert eine Erstellung wahrscheinlich in bitweise
2699identischen Dateien, auch wenn sie auf unterschiedlichen Maschinen 2812identischen Dateien, auch wenn sie auf unterschiedlichen Maschinen
2700durchgeführt wird (@pxref{Aufruf des guix-daemon, container}). 2813durchgeführt wird (siehe @ref{Aufruf des guix-daemon, container}).
2701 2814
2702@cindex Substitute 2815@cindex Substitute
2703Auf dieser Grundlage kann Guix @dfn{transparent Binär- oder Quelldateien 2816Auf dieser Grundlage kann Guix @dfn{transparent Binär- oder Quelldateien
2704ausliefern}. Wenn eine vorerstellte Binärdatei für ein 2817ausliefern}. Wenn eine vorerstellte Binärdatei für ein
2705@file{/gnu/store}-Objekt von einer externen Quelle verfügbar ist — ein 2818@file{/gnu/store}-Objekt von einer externen Quelle verfügbar ist — ein
2706@dfn{Substitut} —, lädt Guix sie einfach herunter und entpackt sie, 2819@dfn{Substitut} —, lädt Guix sie einfach herunter und entpackt sie,
2707andernfalls erstellt Guix das Paket lokal aus seinem Quellcode 2820andernfalls erstellt Guix das Paket lokal aus seinem Quellcode (siehe
2708(@pxref{Substitute}). Weil Erstellungsergebnisse normalerweise Bit für Bit 2821@ref{Substitute}). Weil Erstellungsergebnisse normalerweise Bit für Bit
2709reproduzierbar sind, müssen die Nutzer den Servern, die Substitute anbieten, 2822reproduzierbar sind, müssen die Nutzer den Servern, die Substitute anbieten,
2710nicht blind vertrauen; sie können eine lokale Erstellung erzwingen und 2823nicht blind vertrauen; sie können eine lokale Erstellung erzwingen und
2711Substitute @emph{anfechten} (@pxref{Aufruf von guix challenge}). 2824Substitute @emph{anfechten} (siehe @ref{Aufruf von guix challenge}).
2712 2825
2713Kontrolle über die Erstellungsumgebung ist eine auch für Entwickler 2826Kontrolle über die Erstellungsumgebung ist eine auch für Entwickler
2714nützliche Funktionalität. Der Befehl @command{guix environment} ermöglicht 2827nützliche Funktionalität. Der Befehl @command{guix environment} ermöglicht
2715es Entwicklern eines Pakets, schnell die richtige Entwicklungsumgebung für 2828es Entwicklern eines Pakets, schnell die richtige Entwicklungsumgebung für
2716ihr Paket einzurichten, ohne manuell die Abhängigkeiten des Pakets in ihr 2829ihr Paket einzurichten, ohne manuell die Abhängigkeiten des Pakets in ihr
2717Profil installieren zu müssen (@pxref{Aufruf von guix environment}). 2830Profil installieren zu müssen (siehe @ref{Aufruf von guix environment}).
2718 2831
2719@cindex Nachbildung, von Software-Umgebungen 2832@cindex Nachbildung, von Software-Umgebungen
2720@cindex Provenienzverfolgung, von Software-Artefakten 2833@cindex Provenienzverfolgung, von Software-Artefakten
2721Ganz Guix und all seine Paketdefinitionen stehen unter Versionskontrolle und 2834Ganz Guix und all seine Paketdefinitionen stehen unter Versionskontrolle und
2722@command{guix pull} macht es möglich, auf dem Verlauf der Entwicklung von 2835@command{guix pull} macht es möglich, auf dem Verlauf der Entwicklung von
2723Guix selbst »in der Zeit zu reisen« (@pxref{Aufruf von guix pull}). Dadurch 2836Guix selbst »in der Zeit zu reisen« (siehe @ref{Aufruf von guix pull}). Dadurch kann eine Instanz von Guix auf einer anderen Maschine oder
2724kann eine Instanz von Guix auf einer anderen Maschine oder zu einem späteren 2837zu einem späteren Zeitpunkt genau nachgebildet werden, wodurch auch
2725Zeitpunkt genau nachgebildet werden, wodurch auch @emph{vollständige 2838@emph{vollständige Software-Umgebungen gänzlich nachgebildet} werden können,
2726Software-Umgebungen gänzlich nachgebildet} werden können, mit genauer 2839mit genauer @dfn{Provenienzverfolgung}, wo diese Software herkommt.
2727@dfn{Provenienzverfolgung}, wo diese Software herkommt.
2728 2840
2729@node Aufruf von guix package 2841@node Aufruf von guix package
2730@section Invoking @command{guix package} 2842@section Invoking @command{guix package}
@@ -2737,7 +2849,7 @@ Der Befehl @command{guix package} ist ein Werkzeug, womit Nutzer Pakete
2737installieren, aktualisieren, entfernen und auf vorherige Konfigurationen 2849installieren, aktualisieren, entfernen und auf vorherige Konfigurationen
2738zurücksetzen können. Dabei wird nur das eigene Profil des Nutzers verwendet, 2850zurücksetzen können. Dabei wird nur das eigene Profil des Nutzers verwendet,
2739und es funktioniert mit normalen Benutzerrechten, ohne Administratorrechte 2851und es funktioniert mit normalen Benutzerrechten, ohne Administratorrechte
2740(@pxref{Funktionalitäten}). Die Syntax ist: 2852(siehe @ref{Funktionalitäten}). Die Syntax ist:
2741 2853
2742@example 2854@example
2743guix package @var{Optionen} 2855guix package @var{Optionen}
@@ -2758,18 +2870,18 @@ guix package -r lua -i guile guile-cairo
2758@command{guix package} unterstützt auch ein @dfn{deklaratives Vorgehen}, 2870@command{guix package} unterstützt auch ein @dfn{deklaratives Vorgehen},
2759wobei der Nutzer die genaue Menge an Paketen, die verfügbar sein sollen, 2871wobei der Nutzer die genaue Menge an Paketen, die verfügbar sein sollen,
2760festlegt und über die Befehlszeilenoption @option{--manifest} übergibt 2872festlegt und über die Befehlszeilenoption @option{--manifest} übergibt
2761(@pxref{profile-manifest, @option{--manifest}}). 2873(siehe @ref{profile-manifest, @option{--manifest}}).
2762 2874
2763@cindex Profil 2875@cindex Profil
2764Für jeden Benutzer wird automatisch eine symbolische Verknüpfung zu seinem 2876Für jeden Benutzer wird automatisch eine symbolische Verknüpfung zu seinem
2765Standardprofil angelegt als @file{$HOME/.guix-profile}. Diese symbolische 2877Standardprofil angelegt als @file{$HOME/.guix-profile}. Diese symbolische
2766Verknüpfung zeigt immer auf die aktuelle Generation des Standardprofils des 2878Verknüpfung zeigt immer auf die aktuelle Generation des Standardprofils des
2767Benutzers. Somit können Nutzer @file{$HOME/.guix-profile/bin} z.B. zu ihrer 2879Benutzers. Somit können Nutzer @file{$HOME/.guix-profile/bin} z.B.@: zu
2768Umgebungsvariablen @code{PATH} hinzufügen. 2880ihrer Umgebungsvariablen @code{PATH} hinzufügen.
2769@cindex Suchpfade 2881@cindex Suchpfade
2770Wenn Sie nicht die Guix System Distribution benutzen, sollten Sie in 2882Wenn Sie nicht die Guix System Distribution benutzen, sollten Sie in
2771Betracht ziehen, folgende Zeilen zu Ihrem @file{~/.bash_profile} 2883Betracht ziehen, folgende Zeilen zu Ihrem @file{~/.bash_profile}
2772hinzuzufügen (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference 2884hinzuzufügen (siehe @ref{Bash Startup Files,,, bash, The GNU Bash Reference
2773Manual}), damit in neu erzeugten Shells alle Umgebungsvariablen richtig 2885Manual}), damit in neu erzeugten Shells alle Umgebungsvariablen richtig
2774definiert werden: 2886definiert werden:
2775 2887
@@ -2780,7 +2892,7 @@ source "$HOME/.guix-profile/etc/profile"
2780 2892
2781Ist Ihr System für mehrere Nutzer eingerichtet, werden Nutzerprofile an 2893Ist Ihr System für mehrere Nutzer eingerichtet, werden Nutzerprofile an
2782einem Ort gespeichert, der als @dfn{Müllsammlerwurzel} registriert ist, auf 2894einem Ort gespeichert, der als @dfn{Müllsammlerwurzel} registriert ist, auf
2783die @file{$HOME/.guix-profile} zeigt (@pxref{Aufruf von guix gc}). Dieses 2895die @file{$HOME/.guix-profile} zeigt (siehe @ref{Aufruf von guix gc}). Dieses
2784Verzeichnis ist normalerweise 2896Verzeichnis ist normalerweise
2785@code{@var{localstatedir}/guix/profiles/per-user/@var{Benutzer}}, wobei 2897@code{@var{localstatedir}/guix/profiles/per-user/@var{Benutzer}}, wobei
2786@var{localstatedir} der an @code{configure} als @code{--localstatedir} 2898@var{localstatedir} der an @code{configure} als @code{--localstatedir}
@@ -2806,14 +2918,13 @@ und einer Versionsnummer, wie @code{guile@@1.8.8} oder auch nur
2806Wird keine Versionsnummer angegeben, wird die neueste verfügbare Version 2918Wird keine Versionsnummer angegeben, wird die neueste verfügbare Version
2807ausgewählt. Zudem kann im @var{Paket} ein Doppelpunkt auftauchen, gefolgt 2919ausgewählt. Zudem kann im @var{Paket} ein Doppelpunkt auftauchen, gefolgt
2808vom Namen einer der Ausgaben des Pakets, wie @code{gcc:doc} oder 2920vom Namen einer der Ausgaben des Pakets, wie @code{gcc:doc} oder
2809@code{binutils@@2.22:lib} (@pxref{Pakete mit mehreren Ausgaben.}). Pakete 2921@code{binutils@@2.22:lib} (siehe @ref{Pakete mit mehreren Ausgaben.}). Pakete mit zugehörigem Namen (und optional der Version) werden
2810mit zugehörigem Namen (und optional der Version) werden unter den Modulen 2922unter den Modulen der GNU-Distribution gesucht (siehe @ref{Paketmodule}).
2811der GNU-Distribution gesucht (@pxref{Paketmodule}).
2812 2923
2813@cindex propagierte Eingaben 2924@cindex propagierte Eingaben
2814Manchmal haben Pakete @dfn{propagierte Eingaben}: Als solche werden 2925Manchmal haben Pakete @dfn{propagierte Eingaben}: Als solche werden
2815Abhängigkeiten bezeichnet, die automatisch zusammen mit dem angeforderten 2926Abhängigkeiten bezeichnet, die automatisch zusammen mit dem angeforderten
2816Paket installiert werden (im Abschnitt @pxref{package-propagated-inputs, 2927Paket installiert werden (im Abschnitt @ref{package-propagated-inputs,
2817@code{propagated-inputs} in @code{package} objects} sind weitere 2928@code{propagated-inputs} in @code{package} objects} sind weitere
2818Informationen über propagierte Eingaben in Paketdefinitionen zu finden). 2929Informationen über propagierte Eingaben in Paketdefinitionen zu finden).
2819 2930
@@ -2848,7 +2959,7 @@ Ausgabe eines Pakets mit mehreren Ausgaben gewünscht ist.
2848Das Paket installieren, zu dem der Code in der @var{Datei} ausgewertet wird. 2959Das Paket installieren, zu dem der Code in der @var{Datei} ausgewertet wird.
2849 2960
2850Zum Beispiel könnte die @var{Datei} eine Definition wie diese enthalten 2961Zum Beispiel könnte die @var{Datei} eine Definition wie diese enthalten
2851(@pxref{Pakete definieren}): 2962(siehe @ref{Pakete definieren}):
2852 2963
2853@example 2964@example
2854@verbatiminclude package-hello.scm 2965@verbatiminclude package-hello.scm
@@ -2857,7 +2968,7 @@ Zum Beispiel könnte die @var{Datei} eine Definition wie diese enthalten
2857Entwickler könnten es für nützlich erachten, eine solche 2968Entwickler könnten es für nützlich erachten, eine solche
2858@file{guix.scm}-Datei im Quellbaum ihres Projekts abzulegen, mit der 2969@file{guix.scm}-Datei im Quellbaum ihres Projekts abzulegen, mit der
2859Zwischenstände der Entwicklung getestet und reproduzierbare 2970Zwischenstände der Entwicklung getestet und reproduzierbare
2860Erstellungsumgebungen aufgebaut werden können (@pxref{Aufruf von guix environment}). 2971Erstellungsumgebungen aufgebaut werden können (siehe @ref{Aufruf von guix environment}).
2861 2972
2862@item --remove=@var{Paket} @dots{} 2973@item --remove=@var{Paket} @dots{}
2863@itemx -r @var{Paket} @dots{} 2974@itemx -r @var{Paket} @dots{}
@@ -2879,7 +2990,7 @@ weiter unten die Befehlszeilenoption @code{--do-not-upgrade}.
2879Beachten Sie, dass das Paket so auf die neueste Version unter den Paketen 2990Beachten Sie, dass das Paket so auf die neueste Version unter den Paketen
2880gebracht wird, die in der aktuell installierten Distribution vorliegen. Um 2991gebracht wird, die in der aktuell installierten Distribution vorliegen. Um
2881jedoch Ihre Distribution zu aktualisieren, sollten Sie regelmäßig 2992jedoch Ihre Distribution zu aktualisieren, sollten Sie regelmäßig
2882@command{guix pull} ausführen (@pxref{Aufruf von guix pull}). 2993@command{guix pull} ausführen (siehe @ref{Aufruf von guix pull}).
2883 2994
2884@item --do-not-upgrade[=@var{Regexp} @dots{}] 2995@item --do-not-upgrade[=@var{Regexp} @dots{}]
2885In Verbindung mit der Befehlszeilenoption @code{--upgrade}, führe 2996In Verbindung mit der Befehlszeilenoption @code{--upgrade}, führe
@@ -2936,8 +3047,8 @@ auflösen, zum Beispiel so:
2936@cindex rücksetzen 3047@cindex rücksetzen
2937@cindex Zurücksetzen von Transaktionen 3048@cindex Zurücksetzen von Transaktionen
2938@cindex Transaktionen, zurücksetzen 3049@cindex Transaktionen, zurücksetzen
2939Wechselt zur vorherigen @dfn{Generation} des Profils zurück — d.h. macht die 3050Wechselt zur vorherigen @dfn{Generation} des Profils zurück — d.h.@: macht
2940letzte Transaktion rückgängig. 3051die letzte Transaktion rückgängig.
2941 3052
2942In Verbindung mit Befehlszeilenoptionen wie @code{--install} wird zuerst 3053In Verbindung mit Befehlszeilenoptionen wie @code{--install} wird zuerst
2943zurückgesetzt, bevor andere Aktionen durchgeführt werden. 3054zurückgesetzt, bevor andere Aktionen durchgeführt werden.
@@ -2947,8 +3058,8 @@ wechselt das Profil zur @dfn{nullten Generation}, die keinerlei Dateien
2947enthält, abgesehen von Metadaten über sich selbst. 3058enthält, abgesehen von Metadaten über sich selbst.
2948 3059
2949Nach dem Zurücksetzen überschreibt das Installieren, Entfernen oder 3060Nach dem Zurücksetzen überschreibt das Installieren, Entfernen oder
2950Aktualisieren von Paketen vormals zukünftige Generationen, d.h. der Verlauf 3061Aktualisieren von Paketen vormals zukünftige Generationen, d.h.@: der
2951der Generationen eines Profils ist immer linear. 3062Verlauf der Generationen eines Profils ist immer linear.
2952 3063
2953@item --switch-generation=@var{Muster} 3064@item --switch-generation=@var{Muster}
2954@itemx -S @var{Muster} 3065@itemx -S @var{Muster}
@@ -2976,9 +3087,9 @@ festzulegen, die von einigen installierten Paketen benutzt werden.
2976 3087
2977Zum Beispiel braucht GCC die Umgebungsvariablen @code{CPATH} und 3088Zum Beispiel braucht GCC die Umgebungsvariablen @code{CPATH} und
2978@code{LIBRARY_PATH}, um zu wissen, wo sich im Benutzerprofil Header und 3089@code{LIBRARY_PATH}, um zu wissen, wo sich im Benutzerprofil Header und
2979Bibliotheken befinden (@pxref{Environment Variables,,, gcc, Using the GNU 3090Bibliotheken befinden (siehe @ref{Environment Variables,,, gcc, Using the
2980Compiler Collection (GCC)}). Wenn GCC und, sagen wir, die C-Bibliothek im 3091GNU Compiler Collection (GCC)}). Wenn GCC und, sagen wir, die C-Bibliothek
2981Profil installiert sind, schlägt @code{--search-paths} also vor, diese 3092im Profil installiert sind, schlägt @code{--search-paths} also vor, diese
2982Variablen jeweils auf @code{@var{profile}/include} und 3093Variablen jeweils auf @code{@var{profile}/include} und
2983@code{@var{profile}/lib} verweisen zu lassen. 3094@code{@var{profile}/lib} verweisen zu lassen.
2984 3095
@@ -3038,10 +3149,11 @@ Verfügbarkeit von Paketen nachzulesen:
3038@item --search=@var{Regexp} 3149@item --search=@var{Regexp}
3039@itemx -s @var{Regexp} 3150@itemx -s @var{Regexp}
3040@cindex Suche nach Paketen 3151@cindex Suche nach Paketen
3041List the available packages whose name, synopsis, or description matches 3152Führt alle verfügbaren Pakete auf, deren Name, Zusammenfassung oder
3042@var{regexp} (in a case-insensitive fashion), sorted by relevance. Print 3153Beschreibung zum regulären Ausdruck @var{Regexp} passt, ohne Groß- und
3043all the metadata of matching packages in @code{recutils} format (@pxref{Top, 3154Kleinschreibung zu unterscheiden und sortiert nach ihrer Relevanz. Alle
3044GNU recutils databases,, recutils, GNU recutils manual}). 3155Metadaten passender Pakete werden im @code{recutils}-Format geliefert (siehe
3156@ref{Top, GNU recutils databases,, recutils, GNU recutils manual}).
3045 3157
3046So können bestimmte Felder mit dem Befehl @command{recsel} extrahiert 3158So können bestimmte Felder mit dem Befehl @command{recsel} extrahiert
3047werden, zum Beispiel: 3159werden, zum Beispiel:
@@ -3089,7 +3201,7 @@ Pakete, die mit »keyboards« (Tastaturen, oder musikalischen Keyboard) zu tun
3089haben. 3201haben.
3090 3202
3091Es ist Zeit für ein komplexeres Beispiel. Folgender Befehl sucht 3203Es ist Zeit für ein komplexeres Beispiel. Folgender Befehl sucht
3092kryptographische Bibliotheken, filtert Haskell-, Perl-, Python- und 3204kryptografische Bibliotheken, filtert Haskell-, Perl-, Python- und
3093Ruby-Bibliotheken heraus und gibt Namen und Zusammenfassung passender Pakete 3205Ruby-Bibliotheken heraus und gibt Namen und Zusammenfassung passender Pakete
3094aus: 3206aus:
3095 3207
@@ -3099,13 +3211,14 @@ $ guix package -s crypto -s library | \
3099@end example 3211@end example
3100 3212
3101@noindent 3213@noindent
3102@xref{Selection Expressions,,, recutils, GNU recutils manual} enthält 3214Siehe @ref{Selection Expressions,,, recutils, GNU recutils manual}, es
3103weitere Informationen über @dfn{Auswahlausdrücke} mit @code{recsel -e}. 3215enthält weitere Informationen über @dfn{Auswahlausdrücke} mit @code{recsel
3216-e}.
3104 3217
3105@item --show=@var{Paket} 3218@item --show=@var{Paket}
3106Zeigt Details über das @var{Paket} aus der Liste verfügbarer Pakete, im 3219Zeigt Details über das @var{Paket} aus der Liste verfügbarer Pakete, im
3107@code{recutils}-Format (@pxref{Top, GNU recutils databases,, recutils, GNU 3220@code{recutils}-Format (siehe @ref{Top, GNU recutils databases,, recutils,
3108recutils manual}). 3221GNU recutils manual}).
3109 3222
3110@example 3223@example
3111$ guix package --show=python | recsel -p name,version 3224$ guix package --show=python | recsel -p name,version
@@ -3137,20 +3250,20 @@ Zu jedem installierten Paket werden folgende Informationen angezeigt, durch
3137Tabulatorzeichen getrennt: der Paketname, die Version als Zeichenkette, 3250Tabulatorzeichen getrennt: der Paketname, die Version als Zeichenkette,
3138welche Teile des Pakets installiert sind (zum Beispiel @code{out}, wenn die 3251welche Teile des Pakets installiert sind (zum Beispiel @code{out}, wenn die
3139Standard-Paketausgabe installiert ist, @code{include}, wenn seine Header 3252Standard-Paketausgabe installiert ist, @code{include}, wenn seine Header
3140installiert sind, usw.) und an welchem Pfad das Paket im Store zu finden 3253installiert sind, usw.)@: und an welchem Pfad das Paket im Store zu finden
3141ist. 3254ist.
3142 3255
3143@item --list-available[=@var{Regexp}] 3256@item --list-available[=@var{Regexp}]
3144@itemx -A [@var{Regexp}] 3257@itemx -A [@var{Regexp}]
3145Listet Pakete auf, die in der aktuell installierten Distribution dieses 3258Listet Pakete auf, die in der aktuell installierten Distribution dieses
3146Systems verfügbar sind (@pxref{GNU-Distribution}). Wenn ein regulärer 3259Systems verfügbar sind (siehe @ref{GNU-Distribution}). Wenn ein regulärer
3147Ausdruck @var{Regexp} angegeben wird, werden nur Pakete aufgeführt, deren 3260Ausdruck @var{Regexp} angegeben wird, werden nur Pakete aufgeführt, deren
3148Name zum regulären Ausdruck @var{Regexp} passt. 3261Name zum regulären Ausdruck @var{Regexp} passt.
3149 3262
3150Zu jedem Paket werden folgende Informationen getrennt durch Tabulatorzeichen 3263Zu jedem Paket werden folgende Informationen getrennt durch Tabulatorzeichen
3151ausgegeben: der Name, die Version als Zeichenkette, die Teile des Programms 3264ausgegeben: der Name, die Version als Zeichenkette, die Teile des Programms
3152(@pxref{Pakete mit mehreren Ausgaben.}) und die Stelle im Quellcode, an der 3265(siehe @ref{Pakete mit mehreren Ausgaben.}) und die Stelle im Quellcode, an
3153das Paket definiert ist. 3266der das Paket definiert ist.
3154 3267
3155@item --list-generations[=@var{Muster}] 3268@item --list-generations[=@var{Muster}]
3156@itemx -l [@var{Muster}] 3269@itemx -l [@var{Muster}]
@@ -3162,7 +3275,8 @@ nullte Generation niemals angezeigt wird.
3162 3275
3163Zu jedem installierten Paket werden folgende Informationen durch 3276Zu jedem installierten Paket werden folgende Informationen durch
3164Tabulatorzeichen getrennt angezeigt: der Name des Pakets, die Version als 3277Tabulatorzeichen getrennt angezeigt: der Name des Pakets, die Version als
3165Zeichenkette, welcher Teil des Pakets installiert ist (@pxref{Pakete mit mehreren Ausgaben.}) und an welcher Stelle sich das Paket im Store befindet. 3278Zeichenkette, welcher Teil des Pakets installiert ist (siehe @ref{Pakete mit mehreren Ausgaben.}) und an welcher Stelle sich das Paket im Store
3279befindet.
3166 3280
3167Wenn ein @var{Muster} angegeben wird, liefert der Befehl nur dazu passende 3281Wenn ein @var{Muster} angegeben wird, liefert der Befehl nur dazu passende
3168Generationen. Gültige Muster sind zum Beispiel: 3282Generationen. Gültige Muster sind zum Beispiel:
@@ -3212,13 +3326,13 @@ können. Dieser Befehl sollte also nur mit Vorsicht benutzt werden.
3212@end table 3326@end table
3213 3327
3214Zu guter Letzt können Sie, da @command{guix package} Erstellungsprozesse zu 3328Zu guter Letzt können Sie, da @command{guix package} Erstellungsprozesse zu
3215starten vermag, auch alle gemeinsamen Erstellungsoptionen (@pxref{Gemeinsame Erstellungsoptionen}) verwenden. Auch Paketumwandlungsoptionen wie 3329starten vermag, auch alle gemeinsamen Erstellungsoptionen (siehe @ref{Gemeinsame Erstellungsoptionen}) verwenden. Auch Paketumwandlungsoptionen wie
3216@option{--with-source} sind möglich (@pxref{Paketumwandlungsoptionen}). Beachten Sie jedoch, dass die verwendeten 3330@option{--with-source} sind möglich (siehe @ref{Paketumwandlungsoptionen}). Beachten Sie jedoch, dass die verwendeten
3217Paketumwandlungsoptionen verloren gehen, nachdem Sie die Pakete aktualisiert 3331Paketumwandlungsoptionen verloren gehen, nachdem Sie die Pakete aktualisiert
3218haben. Damit Paketumwandlungen über Aktualisierungen hinweg erhalten 3332haben. Damit Paketumwandlungen über Aktualisierungen hinweg erhalten
3219bleiben, sollten Sie Ihre eigene Paketvariante in einem Guile-Modul 3333bleiben, sollten Sie Ihre eigene Paketvariante in einem Guile-Modul
3220definieren und zur Umgebungsvariablen @code{GUIX_PACKAGE_PATH} hinzufügen 3334definieren und zur Umgebungsvariablen @code{GUIX_PACKAGE_PATH} hinzufügen
3221(@pxref{Pakete definieren}). 3335(siehe @ref{Pakete definieren}).
3222 3336
3223@node Substitute 3337@node Substitute
3224@section Substitute 3338@section Substitute
@@ -3233,7 +3347,7 @@ Erstellungsergebnisse. In vielen Fällen geht das Herunterladen eines
3233Substituts wesentlich schneller, als Dinge lokal zu erstellen. 3347Substituts wesentlich schneller, als Dinge lokal zu erstellen.
3234 3348
3235Substitute können alles sein, was das Ergebnis einer Ableitungserstellung 3349Substitute können alles sein, was das Ergebnis einer Ableitungserstellung
3236ist (@pxref{Ableitungen}). Natürlich sind sie üblicherweise vorerstellte 3350ist (siehe @ref{Ableitungen}). Natürlich sind sie üblicherweise vorerstellte
3237Paket-Binärdateien, aber wenn zum Beispiel ein Quell-Tarball das Ergebnis 3351Paket-Binärdateien, aber wenn zum Beispiel ein Quell-Tarball das Ergebnis
3238einer Ableitungserstellung ist, kann auch er als Substitut verfügbar sein. 3352einer Ableitungserstellung ist, kann auch er als Substitut verfügbar sein.
3239 3353
@@ -3253,14 +3367,16 @@ einer Ableitungserstellung ist, kann auch er als Substitut verfügbar sein.
3253 3367
3254@cindex Hydra 3368@cindex Hydra
3255@cindex Build-Farm 3369@cindex Build-Farm
3256The @code{@value{SUBSTITUTE-SERVER}} server is a front-end to an official 3370Der Server @code{@value{SUBSTITUTE-SERVER}} ist die Fassade für eine
3257build farm that builds packages from Guix continuously for some 3371offizielle »Build-Farm«, ein Erstellungswerk, das kontinuierlich Guix-Pakete
3258architectures, and makes them available as substitutes. This is the default 3372für einige Prozessorarchitekturen erstellt und sie als Substitute zur
3259source of substitutes; it can be overridden by passing the 3373Verfügung stellt. Dies ist die standardmäßige Quelle von Substituten; durch
3260@option{--substitute-urls} option either to @command{guix-daemon} 3374Übergeben der Befehlszeilenoption @option{--substitute-urls} an entweder den
3261(@pxref{daemon-substitute-urls,, @code{guix-daemon --substitute-urls}}) or 3375@command{guix-daemon} (siehe @ref{daemon-substitute-urls,, @code{guix-daemon
3262to client tools such as @command{guix package} 3376--substitute-urls}}) oder Client-Werkzeuge wie @command{guix package} (siehe
3263(@pxref{client-substitute-urls,, client @option{--substitute-urls} option}). 3377@ref{client-substitute-urls,, die Befehlszeilenoption
3378@option{--substitute-urls} beim Client}) kann eine abweichende Einstellung
3379benutzt werden.
3264 3380
3265Substitut-URLs können entweder HTTP oder HTTPS sein. HTTPS wird empfohlen, 3381Substitut-URLs können entweder HTTP oder HTTPS sein. HTTPS wird empfohlen,
3266weil die Kommunikation verschlüsselt ist; umgekehrt kann bei HTTP die 3382weil die Kommunikation verschlüsselt ist; umgekehrt kann bei HTTP die
@@ -3269,13 +3385,12 @@ könnte, ob Ihr System über noch nicht behobene Sicherheitsschwachstellen
3269verfügt. 3385verfügt.
3270 3386
3271Substitute von der offiziellen Build-Farm sind standardmäßig erlaubt, wenn 3387Substitute von der offiziellen Build-Farm sind standardmäßig erlaubt, wenn
3272Sie die Guix-System-Distribution verwenden (@pxref{GNU-Distribution}). Auf 3388Sie die Guix-System-Distribution verwenden (siehe @ref{GNU-Distribution}). Auf Fremddistributionen sind sie allerdings standardmäßig
3273Fremddistributionen sind sie allerdings standardmäßig ausgeschaltet, solange 3389ausgeschaltet, solange Sie sie nicht ausdrücklich in einem der empfohlenen
3274Sie sie nicht ausdrücklich in einem der empfohlenen Installationsschritte 3390Installationsschritte erlaubt haben (siehe @ref{Installation}). Die
3275erlaubt haben (@pxref{Installation}). Die folgenden Absätze beschreiben, wie 3391folgenden Absätze beschreiben, wie Sie Substitute für die offizielle
3276Sie Substitute für die offizielle Build-Farm an- oder ausschalten; dieselbe 3392Build-Farm an- oder ausschalten; dieselbe Prozedur kann auch benutzt werden,
3277Prozedur kann auch benutzt werden, um Substitute für einen beliebigen 3393um Substitute für einen beliebigen anderen Substitutsserver zu erlauben.
3278anderen Substitutsserver zu erlauben.
3279 3394
3280@node Substitut-Server autorisieren 3395@node Substitut-Server autorisieren
3281@subsection Substitut-Server autorisieren 3396@subsection Substitut-Server autorisieren
@@ -3284,28 +3399,32 @@ anderen Substitutsserver zu erlauben.
3284@cindex Substitute, deren Autorisierung 3399@cindex Substitute, deren Autorisierung
3285@cindex Access Control List (ACL), für Substitute 3400@cindex Access Control List (ACL), für Substitute
3286@cindex ACL (Access Control List), für Substitute 3401@cindex ACL (Access Control List), für Substitute
3287To allow Guix to download substitutes from @code{@value{SUBSTITUTE-SERVER}} 3402Um es Guix zu gestatten, Substitute von @code{@value{SUBSTITUTE-SERVER}}
3288or a mirror thereof, you must add its public key to the access control list 3403oder einem Spiegelserver davon herunterzuladen, müssen Sie den zugehörigen
3289(ACL) of archive imports, using the @command{guix archive} command 3404öffentlichen Schlüssel zur Access Control List (ACL,
3290(@pxref{Aufruf von guix archive}). Doing so implies that you trust 3405Zugriffssteuerungsliste) für Archivimporte hinzufügen, mit Hilfe des Befehls
3291@code{@value{SUBSTITUTE-SERVER}} to not be compromised and to serve genuine 3406@command{guix archive} (siehe @ref{Aufruf von guix archive}). Dies impliziert,
3292substitutes. 3407dass Sie darauf vertrauen, dass @code{@value{SUBSTITUTE-SERVER}} nicht
3293 3408kompromittiert wurde und echte Substitute liefert.
3294The public key for @code{@value{SUBSTITUTE-SERVER}} is installed along with 3409
3295Guix, in @code{@var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub}, where 3410Der öffentliche Schlüssel für @code{@value{SUBSTITUTE-SERVER}} wird zusammen
3296@var{prefix} is the installation prefix of Guix. If you installed Guix from 3411mit Guix installiert, in das Verzeichnis
3297source, make sure you checked the GPG signature of 3412@code{@var{prefix}/share/guix/hydra.gnu.org.pub}, wobei @var{prefix} das bei
3298@file{guix-@value{VERSION}.tar.gz}, which contains this public key file. 3413der Installation angegebene Präfix von Guix ist. Wenn Sie Guix aus seinem
3299Then, you can run something like this: 3414Quellcode heraus installieren, sollten Sie sichergehen, dass Sie die
3415GPG-Signatur (auch »Beglaubigung« genannt) von
3416@file{guix-@value{VERSION}.tar.gz} prüfen, worin sich dieser öffentliche
3417Schlüssel befindet. Dann können Sie so etwas wie hier ausführen:
3300 3418
3301@example 3419@example
3302# guix archive --authorize < @var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub 3420# guix archive --authorize < @var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub
3303@end example 3421@end example
3304 3422
3305@quotation Anmerkung 3423@quotation Anmerkung
3306Similarly, the @file{hydra.gnu.org.pub} file contains the public key of an 3424Genauso enthält die Datei @file{hydra.gnu.org.pub} den öffentlichen
3307independent build farm also run by the project, reachable at 3425Schlüssel für eine unabhängige Build-Farm, die auch vom Guix-Projekt
3308@indicateurl{https://mirror.hydra.gnu.org}. 3426betrieben wird. Sie ist unter @indicateurl{https://mirror.hydra.gnu.org}
3427erreichbar ist.
3309@end quotation 3428@end quotation
3310 3429
3311Sobald es eingerichtet wurde, sollte sich die Ausgabe eines Befehls wie 3430Sobald es eingerichtet wurde, sollte sich die Ausgabe eines Befehls wie
@@ -3335,15 +3454,16 @@ $ guix build emacs --dry-run
3335@end example 3454@end example
3336 3455
3337@noindent 3456@noindent
3338This indicates that substitutes from @code{@value{SUBSTITUTE-SERVER}} are 3457Das zeigt an, dass Substitute von @code{@value{SUBSTITUTE-SERVER}} nutzbar
3339usable and will be downloaded, when possible, for future builds. 3458sind und für zukünftige Erstellungen heruntergeladen werden, wann immer es
3459möglich ist.
3340 3460
3341@cindex Substitute, wie man sie ausschaltet 3461@cindex Substitute, wie man sie ausschaltet
3342Der Substitutsmechanismus kann global ausgeschaltet werden, indem Sie dem 3462Der Substitutsmechanismus kann global ausgeschaltet werden, indem Sie dem
3343@code{guix-daemon} beim Starten die Befehlszeilenoption 3463@code{guix-daemon} beim Starten die Befehlszeilenoption
3344@code{--no-substitutes} übergeben (@pxref{Aufruf des guix-daemon}). Er kann 3464@code{--no-substitutes} übergeben (siehe @ref{Aufruf des guix-daemon}). Er
3345auch temporär ausgeschaltet werden, indem Sie @code{--no-substitutes} an 3465kann auch temporär ausgeschaltet werden, indem Sie @code{--no-substitutes}
3346@command{guix package}, @command{guix build} und andere 3466an @command{guix package}, @command{guix build} und andere
3347Befehlszeilenwerkzeuge übergeben. 3467Befehlszeilenwerkzeuge übergeben.
3348 3468
3349@node Substitutauthentifizierung 3469@node Substitutauthentifizierung
@@ -3405,7 +3525,7 @@ sein, usw.
3405Wenn Substitute aktiviert sind und ein Substitut für eine Ableitung zwar 3525Wenn Substitute aktiviert sind und ein Substitut für eine Ableitung zwar
3406verfügbar ist, aber die versuchte Substitution fehlschlägt, kann Guix 3526verfügbar ist, aber die versuchte Substitution fehlschlägt, kann Guix
3407versuchen, die Ableitung lokal zu erstellen, je nachdem, ob 3527versuchen, die Ableitung lokal zu erstellen, je nachdem, ob
3408@code{--fallback} übergeben wurde (@pxref{fallback-option,, common build 3528@code{--fallback} übergeben wurde (siehe @ref{fallback-option,, common build
3409option @code{--fallback}}). Genauer gesagt, wird keine lokale Erstellung 3529option @code{--fallback}}). Genauer gesagt, wird keine lokale Erstellung
3410durchgeführt, solange kein @code{--fallback} angegeben wurde, und die 3530durchgeführt, solange kein @code{--fallback} angegeben wurde, und die
3411Ableitung wird als Fehlschlag angesehen. Wenn @code{--fallback} übergeben 3531Ableitung wird als Fehlschlag angesehen. Wenn @code{--fallback} übergeben
@@ -3417,39 +3537,41 @@ lokale Erstellung durchgeführt wird, egal ob @code{--fallback} übergeben
3417wurde oder nicht. 3537wurde oder nicht.
3418 3538
3419Um eine Vorstellung zu bekommen, wieviele Substitute gerade verfügbar sind, 3539Um eine Vorstellung zu bekommen, wieviele Substitute gerade verfügbar sind,
3420können Sie den Befehl @command{guix weather} benutzen (@pxref{Aufruf von guix weather}). Dieser Befehl zeigt Statistiken darüber an, wie es um die von 3540können Sie den Befehl @command{guix weather} benutzen (siehe @ref{Aufruf von guix weather}). Dieser Befehl zeigt Statistiken darüber an, wie es um die
3421einem Server verfügbaren Substitute steht. 3541von einem Server verfügbaren Substitute steht.
3422 3542
3423@node Vom Vertrauen gegenüber Binärdateien 3543@node Vom Vertrauen gegenüber Binärdateien
3424@subsection Vom Vertrauen gegenüber Binärdateien 3544@subsection Vom Vertrauen gegenüber Binärdateien
3425 3545
3426@cindex Vertrauen, gegenüber vorerstellten Binärdateien 3546@cindex Vertrauen, gegenüber vorerstellten Binärdateien
3427Today, each individual's control over their own computing is at the mercy of 3547Derzeit hängt die Kontrolle jedes Individuums über seine Rechner von
3428institutions, corporations, and groups with enough power and determination 3548Institutionen, Unternehmen und solchen Gruppierungen ab, die über genug
3429to subvert the computing infrastructure and exploit its weaknesses. While 3549Macht und Entschlusskraft verfügen, die Rechnerinfrastruktur zu sabotieren
3430using @code{@value{SUBSTITUTE-SERVER}} substitutes can be convenient, we 3550und ihre Schwachstellen auszunutzen. Auch wenn es bequem ist, Substitute von
3431encourage users to also build on their own, or even run their own build 3551@code{@value{SUBSTITUTE-SERVER}} zu benutzen, ermuntern wir Nutzer, auch
3432farm, such that @code{@value{SUBSTITUTE-SERVER}} is less of an interesting 3552selbst Erstellungen durchzuführen oder gar ihre eigene Build-Farm zu
3433target. One way to help is by publishing the software you build using 3553betreiben, damit @code{@value{SUBSTITUTE-SERVER}} ein weniger interessantes
3434@command{guix publish} so that others have one more choice of server to 3554Ziel wird. Eine Art, uns zu helfen, ist, die von Ihnen erstellte Software
3435download substitutes from (@pxref{Aufruf von guix publish}). 3555mit dem Befehl @command{guix publish} zu veröffentlichen, damit andere eine
3556größere Auswahl haben, von welchem Server sie Substitute beziehen möchten
3557(siehe @ref{Aufruf von guix publish}).
3436 3558
3437Guix hat die richtigen Grundlagen, um die Reproduzierbarkeit von 3559Guix hat die richtigen Grundlagen, um die Reproduzierbarkeit von
3438Erstellungen zu maximieren (@pxref{Funktionalitäten}). In den meisten Fällen sollten 3560Erstellungen zu maximieren (siehe @ref{Funktionalitäten}). In den meisten Fällen
3439unabhängige Erstellungen eines bestimmten Pakets zu bitweise identischen 3561sollten unabhängige Erstellungen eines bestimmten Pakets zu bitweise
3440Ergebnissen führen. Wir können also mit Hilfe einer vielschichtigen Menge an 3562identischen Ergebnissen führen. Wir können also mit Hilfe einer
3441unabhängigen Paketerstellungen die Integrität unseres Systems besser 3563vielschichtigen Menge an unabhängigen Paketerstellungen die Integrität
3442gewährleisten. Der Befehl @command{guix challenge} hat das Ziel, Nutzern zu 3564unseres Systems besser gewährleisten. Der Befehl @command{guix challenge}
3443ermöglichen, Substitutserver zu beurteilen, und Entwickler dabei zu 3565hat das Ziel, Nutzern zu ermöglichen, Substitutserver zu beurteilen, und
3444unterstützen, nichtdeterministische Paketerstellungen zu finden 3566Entwickler dabei zu unterstützen, nichtdeterministische Paketerstellungen zu
3445(@pxref{Aufruf von guix challenge}). Ebenso ermöglicht es die 3567finden (siehe @ref{Aufruf von guix challenge}). Ebenso ermöglicht es die
3446Befehlszeilenoption @option{--check} von @command{guix build}, dass Nutzer 3568Befehlszeilenoption @option{--check} von @command{guix build}, dass Nutzer
3447bereits installierte Substitute auf Echtheit zu prüfen, indem sie lokal 3569bereits installierte Substitute auf Echtheit zu prüfen, indem sie lokal
3448nachgebaut werden (@pxref{build-check, @command{guix build --check}}). 3570nachgebaut werden (siehe @ref{build-check, @command{guix build --check}}).
3449 3571
3450In Zukunft wollen wir, dass Guix Binärdateien an und von Nutzern 3572In Zukunft wollen wir, dass Guix Binärdateien an und von Nutzern
3451peer-to-peer veröffentlichen kann. Wenn Sie mit uns dieses Projekt 3573peer-to-peer veröffentlichen kann. Wenn Sie mit uns dieses Projekt
3452diskuttieren möchten, kommen Sie auf unsere Mailing-Liste 3574diskutieren möchten, kommen Sie auf unsere Mailing-Liste
3453@email{guix-devel@@gnu.org}. 3575@email{guix-devel@@gnu.org}.
3454 3576
3455@node Pakete mit mehreren Ausgaben. 3577@node Pakete mit mehreren Ausgaben.
@@ -3459,14 +3581,14 @@ diskuttieren möchten, kommen Sie auf unsere Mailing-Liste
3459@cindex Paketausgaben 3581@cindex Paketausgaben
3460@cindex Ausgaben 3582@cindex Ausgaben
3461 3583
3462Oft haben in Guix definierte Pakete eine einzige @dfn{Ausgabe} — d.h. aus 3584Oft haben in Guix definierte Pakete eine einzige @dfn{Ausgabe} — d.h.@: aus
3463dem Quellpaket entsteht genau ein Verzeichnis im Store. Wenn Sie 3585dem Quellpaket entsteht genau ein Verzeichnis im Store. Wenn Sie
3464@command{guix package -i glibc} ausführen, wird die Standard-Paketausgabe 3586@command{guix package -i glibc} ausführen, wird die Standard-Paketausgabe
3465des GNU-libc-Pakets installiert; die Standardausgabe wird @code{out} 3587des GNU-libc-Pakets installiert; die Standardausgabe wird @code{out}
3466genannt, aber ihr Name kann weggelassen werden, wie sie an obigem Befehl 3588genannt, aber ihr Name kann weggelassen werden, wie sie an obigem Befehl
3467sehen. In diesem speziellen Fall enthält die Standard-Paketausgabe von 3589sehen. In diesem speziellen Fall enthält die Standard-Paketausgabe von
3468@code{glibc} alle C-Headerdateien, gemeinsamen Bibliotheken (»Shared 3590@code{glibc} alle C-Headerdateien, gemeinsamen Bibliotheken (»Shared
3469Libraries«), statische Bibliotheken (»Static Libraries«), Dokumentation für 3591Libraries«), statischen Bibliotheken (»Static Libraries«), Dokumentation für
3470Info sowie andere zusätzliche Dateien. 3592Info sowie andere zusätzliche Dateien.
3471 3593
3472Manchmal ist es besser, die verschiedenen Arten von Dateien, die aus einem 3594Manchmal ist es besser, die verschiedenen Arten von Dateien, die aus einem
@@ -3498,16 +3620,16 @@ belassen wir deshalb die Befehlszeilenwerkzeuge in der
3498Standard-Paketausgabe, während sich die GUIs in einer separaten Ausgabe 3620Standard-Paketausgabe, während sich die GUIs in einer separaten Ausgabe
3499befinden. So können Benutzer, die die GUIs nicht brauchen, Platz sparen. Der 3621befinden. So können Benutzer, die die GUIs nicht brauchen, Platz sparen. Der
3500Befehl @command{guix size} kann dabei helfen, solche Situationen zu erkennen 3622Befehl @command{guix size} kann dabei helfen, solche Situationen zu erkennen
3501(@pxref{Aufruf von guix size}). @command{guix graph} kann auch helfen 3623(siehe @ref{Aufruf von guix size}). @command{guix graph} kann auch helfen
3502(@pxref{Aufruf von guix graph}). 3624(siehe @ref{Aufruf von guix graph}).
3503 3625
3504In der GNU-Distribution gibt es viele solche Pakete mit mehreren 3626In der GNU-Distribution gibt es viele solche Pakete mit mehreren
3505Ausgaben. Andere Konventionen für Ausgabenamen sind zum Beispiel @code{lib} 3627Ausgaben. Andere Konventionen für Ausgabenamen sind zum Beispiel @code{lib}
3506für Bibliotheken und eventuell auch ihre Header-Dateien,, @code{bin} für 3628für Bibliotheken und eventuell auch ihre Header-Dateien,, @code{bin} für
3507eigenständige Programme und @code{debug} für Informationen zur 3629eigenständige Programme und @code{debug} für Informationen zur
3508Fehlerbehandlung (@pxref{Dateien zur Fehlersuche installieren}). Die Ausgaben eines 3630Fehlerbehandlung (siehe @ref{Dateien zur Fehlersuche installieren}). Die Ausgaben
3509Pakets stehen in der dritten Spalte der Anzeige von @command{guix package 3631eines Pakets stehen in der dritten Spalte der Anzeige von @command{guix
3510--list-available} (@pxref{Aufruf von guix package}). 3632package --list-available} (siehe @ref{Aufruf von guix package}).
3511 3633
3512 3634
3513@node Aufruf von guix gc 3635@node Aufruf von guix gc
@@ -3532,12 +3654,14 @@ Müllsammlerwurzeln (kurz auch »GC-Wurzeln«, von englisch »Garbage
3532Collector«) umfasst Standard-Benutzerprofile; standardmäßig werden diese 3654Collector«) umfasst Standard-Benutzerprofile; standardmäßig werden diese
3533Müllsammlerwurzeln durch symbolische Verknüpfungen in 3655Müllsammlerwurzeln durch symbolische Verknüpfungen in
3534@file{/var/guix/gcroots} dargestellt. Neue Müllsammlerwurzeln können zum 3656@file{/var/guix/gcroots} dargestellt. Neue Müllsammlerwurzeln können zum
3535Beispiel mit @command{guix build --root} festgelegt werden (@pxref{Aufruf von guix build}). 3657Beispiel mit @command{guix build --root} festgelegt werden (siehe
3658@ref{Aufruf von guix build}). Der Befehl @command{guix gc --list-roots} listet
3659sie auf.
3536 3660
3537Bevor Sie mit @code{guix gc --collect-garbage} Speicher freimachen, wollen 3661Bevor Sie mit @code{guix gc --collect-garbage} Speicher freimachen, wollen
3538Sie vielleicht alte Generationen von Benutzerprofilen löschen, damit alte 3662Sie vielleicht alte Generationen von Benutzerprofilen löschen, damit alte
3539Paketerstellungen von diesen Generationen entfernt werden können. Führen Sie 3663Paketerstellungen von diesen Generationen entfernt werden können. Führen Sie
3540dazu @code{guix package --delete-generations} aus (@pxref{Aufruf von guix package}). 3664dazu @code{guix package --delete-generations} aus (siehe @ref{Aufruf von guix package}).
3541 3665
3542Unsere Empfehlung ist, dass Sie den Müllsammler regelmäßig laufen lassen und 3666Unsere Empfehlung ist, dass Sie den Müllsammler regelmäßig laufen lassen und
3543wenn Sie wenig freien Speicherplatz zur Verfügung haben. Um zum Beispiel 3667wenn Sie wenig freien Speicherplatz zur Verfügung haben. Um zum Beispiel
@@ -3548,12 +3672,14 @@ Verfügung haben, benutzen Sie einfach:
3548guix gc -F 5G 3672guix gc -F 5G
3549@end example 3673@end example
3550 3674
3551It is perfectly safe to run as a non-interactive periodic job 3675Es ist völlig sicher, dafür eine nicht interaktive, regelmäßige
3552(@pxref{Geplante Auftragsausführung}, for how to set up such a job). Running 3676Auftragsausführung vorzugeben (siehe @ref{Geplante Auftragsausführung} für eine
3553@command{guix gc} with no arguments will collect as much garbage as it can, 3677Erklärung, wie man das tun kann). @command{guix gc} ohne
3554but that is often inconvenient: you may find yourself having to rebuild or 3678Befehlszeilenargumente auszuführen, lässt so viel Müll wie möglich sammeln,
3555re-download software that is ``dead'' from the GC viewpoint but that is 3679aber das ist oft nicht, was man will, denn so muss man unter Umständen
3556necessary to build other pieces of software---e.g., the compiler tool chain. 3680Software erneut erstellen oder erneut herunterladen, weil der Müllsammler
3681sie als »tot« ansieht, sie aber zur Erstellung anderer Software wieder
3682gebraucht wird — das trifft zum Beispiel auf die Compiler-Toolchain zu.
3557 3683
3558Der Befehl @command{guix gc} hat drei Arbeitsmodi: Er kann benutzt werden, 3684Der Befehl @command{guix gc} hat drei Arbeitsmodi: Er kann benutzt werden,
3559um als Müllsammler tote Dateien zu entfernen (das Standardverhalten), um 3685um als Müllsammler tote Dateien zu entfernen (das Standardverhalten), um
@@ -3565,14 +3691,14 @@ Müllsammler-Befehlszeilenoptionen sind wie folgt:
3565@table @code 3691@table @code
3566@item --collect-garbage[=@var{Minimum}] 3692@item --collect-garbage[=@var{Minimum}]
3567@itemx -C [@var{Minimum}] 3693@itemx -C [@var{Minimum}]
3568Lässt Müll sammeln — z.B. nicht erreichbare Dateien in @file{/gnu/store} und 3694Lässt Müll sammeln — z.B.@: nicht erreichbare Dateien in @file{/gnu/store}
3569seinen Unterverzeichnissen. Wird keine andere Befehlszeilenoption angegeben, 3695und seinen Unterverzeichnissen. Wird keine andere Befehlszeilenoption
3570wird standardmäßig diese durchgeführt. 3696angegeben, wird standardmäßig diese durchgeführt.
3571 3697
3572Wenn ein @var{Minimum} angegeben wurde, hört der Müllsammler auf, sobald 3698Wenn ein @var{Minimum} angegeben wurde, hört der Müllsammler auf, sobald
3573@var{Minimum} Bytes gesammelt wurden. Das @var{Minimum} kann die Anzahl der 3699@var{Minimum} Bytes gesammelt wurden. Das @var{Minimum} kann die Anzahl der
3574Bytes bezeichnen oder mit einer Einheit als Suffix versehen sein, wie etwa 3700Bytes bezeichnen oder mit einer Einheit als Suffix versehen sein, wie etwa
3575@code{MiB} für Mebibytes und @code{GB} für Gigabytes (@pxref{Block size, 3701@code{MiB} für Mebibytes und @code{GB} für Gigabytes (siehe @ref{Block size,
3576size specifications,, coreutils, GNU Coreutils}). 3702size specifications,, coreutils, GNU Coreutils}).
3577 3703
3578Wird kein @var{Minimum} angegeben, sammelt der Müllsammler allen Müll. 3704Wird kein @var{Minimum} angegeben, sammelt der Müllsammler allen Müll.
@@ -3586,8 +3712,24 @@ eine Speichergröße wie @code{500MiB}, wie oben beschrieben.
3586Wenn die angegebene @var{Menge} oder mehr bereits in @file{/gnu/store} frei 3712Wenn die angegebene @var{Menge} oder mehr bereits in @file{/gnu/store} frei
3587verfügbar ist, passiert nichts. 3713verfügbar ist, passiert nichts.
3588 3714
3715@item --delete-generations[=@var{Dauer}]
3716@itemx -d [@var{Dauer}]
3717Bevor der Müllsammelvorgang beginnt, werden hiermit alle Generationen von
3718allen Benutzerprofilen gelöscht, die älter sind als die angegebene
3719@var{Dauer}; wird es als Administratornutzer »root« ausgeführt, geschieht
3720dies mit den Profilen @emph{von allen Benutzern}.
3721
3722Zum Beispiel löscht der folgende Befehl alle Generationen Ihrer Profile, die
3723älter als zwei Monate sind (ausgenommen die momentanen Generationen), und
3724schmeißt dann den Müllsammler an, um Platz freizuräumen, bis mindestens 10
3725GiB verfügbar sind:
3726
3727@example
3728guix gc -d 2m -F 10G
3729@end example
3730
3589@item --delete 3731@item --delete
3590@itemx -d 3732@itemx -D
3591Versucht, alle als Argumente angegebenen Dateien oder Verzeichnisse im Store 3733Versucht, alle als Argumente angegebenen Dateien oder Verzeichnisse im Store
3592zu löschen. Dies schlägt fehl, wenn manche der Dateien oder Verzeichnisse 3734zu löschen. Dies schlägt fehl, wenn manche der Dateien oder Verzeichnisse
3593nicht im Store oder noch immer lebendig sind. 3735nicht im Store oder noch immer lebendig sind.
@@ -3597,9 +3739,14 @@ Store-Objekte auflisten, die zwischengespeicherten Erstellungsfehlern
3597entsprechen. 3739entsprechen.
3598 3740
3599Hierbei wird nichts ausgegeben, sofern der Daemon nicht mit 3741Hierbei wird nichts ausgegeben, sofern der Daemon nicht mit
3600@option{--cache-failures} gestartet wurde (@pxref{Aufruf des guix-daemon, 3742@option{--cache-failures} gestartet wurde (siehe @ref{Aufruf des guix-daemon,
3601@option{--cache-failures}}). 3743@option{--cache-failures}}).
3602 3744
3745@item --list-roots
3746Die Müllsammlerwurzeln auflisten, die dem Nutzer gehören. Wird der Befehl
3747als Administratornutzer ausgeführt, werden @emph{alle} Müllsammlerwurzeln
3748aufgelistet.
3749
3603@item --clear-failures 3750@item --clear-failures
3604Die angegebenen Store-Objekte aus dem Zwischenspeicher für fehlgeschlagene 3751Die angegebenen Store-Objekte aus dem Zwischenspeicher für fehlgeschlagene
3605Erstellungen entfernen. 3752Erstellungen entfernen.
@@ -3634,15 +3781,15 @@ auf. Voraussetzungen sind die Store-Dateien selbst, ihre Referenzen sowie
3634die Referenzen davon, rekursiv. Mit anderen Worten, die zurückgelieferte 3781die Referenzen davon, rekursiv. Mit anderen Worten, die zurückgelieferte
3635Liste ist der @dfn{transitive Abschluss} dieser Store-Dateien. 3782Liste ist der @dfn{transitive Abschluss} dieser Store-Dateien.
3636 3783
3637Der Abschnitt @xref{Aufruf von guix size} erklärt ein Werkzeug, um den 3784Der Abschnitt @ref{Aufruf von guix size} erklärt ein Werkzeug, um den
3638Speicherbedarf des Abschlusses eines Elements zu ermitteln. Siehe 3785Speicherbedarf des Abschlusses eines Elements zu ermitteln. Siehe
3639@xref{Aufruf von guix graph} für ein Werkzeug, um den Referenzgraphen zu 3786@ref{Aufruf von guix graph} für ein Werkzeug, um den Referenzgraphen zu
3640veranschaulichen. 3787veranschaulichen.
3641 3788
3642@item --derivers 3789@item --derivers
3643@cindex Ableitung 3790@cindex Ableitung
3644Liefert die Ableitung(en), die zu den angegebenen Store-Objekten führen 3791Liefert die Ableitung(en), die zu den angegebenen Store-Objekten führen
3645(@pxref{Ableitungen}). 3792(siehe @ref{Ableitungen}).
3646 3793
3647Zum Beispiel liefert dieser Befehl: 3794Zum Beispiel liefert dieser Befehl:
3648 3795
@@ -3687,11 +3834,11 @@ der Befehl viel Zeit brauchen, besonders auf Systemen mit langsamer Platte.
3687@cindex Datenbeschädigung, Behebung 3834@cindex Datenbeschädigung, Behebung
3688Mit @option{--verify=repair} oder @option{--verify=contents,repair} versucht 3835Mit @option{--verify=repair} oder @option{--verify=contents,repair} versucht
3689der Daemon, beschädigte Store-Objekte zu reparieren, indem er Substitute für 3836der Daemon, beschädigte Store-Objekte zu reparieren, indem er Substitute für
3690selbige herunterlädt (@pxref{Substitute}). Weil die Reparatur nicht atomar 3837selbige herunterlädt (siehe @ref{Substitute}). Weil die Reparatur nicht
3691und daher womöglich riskant ist, kann nur der Systemadministrator den Befehl 3838atomar und daher womöglich riskant ist, kann nur der Systemadministrator den
3692benutzen. Eine weniger aufwendige Alternative, wenn Sie wissen, welches 3839Befehl benutzen. Eine weniger aufwendige Alternative, wenn Sie wissen,
3693Objekt beschädigt ist, ist, @command{guix build --repair} zu benutzen 3840welches Objekt beschädigt ist, ist, @command{guix build --repair} zu
3694(@pxref{Aufruf von guix build}). 3841benutzen (siehe @ref{Aufruf von guix build}).
3695 3842
3696@item --optimize 3843@item --optimize
3697@cindex Deduplizieren 3844@cindex Deduplizieren
@@ -3700,7 +3847,7 @@ optimieren — mit anderen Worten wird der Store @dfn{dedupliziert}.
3700 3847
3701Der Daemon führt Deduplizierung automatisch nach jeder erfolgreichen 3848Der Daemon führt Deduplizierung automatisch nach jeder erfolgreichen
3702Erstellung und jedem Importieren eines Archivs durch, sofern er nicht mit 3849Erstellung und jedem Importieren eines Archivs durch, sofern er nicht mit
3703@code{--disable-deduplication} (@pxref{Aufruf des guix-daemon, 3850@code{--disable-deduplication} (siehe @ref{Aufruf des guix-daemon,
3704@code{--disable-deduplication}}) gestartet wurde. Diese Befehlszeilenoption 3851@code{--disable-deduplication}}) gestartet wurde. Diese Befehlszeilenoption
3705brauchen Sie also in erster Linie dann, wenn der Daemon zuvor mit 3852brauchen Sie also in erster Linie dann, wenn der Daemon zuvor mit
3706@code{--disable-deduplication} gestartet worden ist. 3853@code{--disable-deduplication} gestartet worden ist.
@@ -3739,8 +3886,8 @@ Guix-Version, und umgekehrt.
3739Das Ergebnis von @command{guix pull} ist ein als 3886Das Ergebnis von @command{guix pull} ist ein als
3740@file{~/.config/guix/current} verfügbares @dfn{Profil} mit dem neuesten 3887@file{~/.config/guix/current} verfügbares @dfn{Profil} mit dem neuesten
3741Guix. Stellen Sie sicher, dass es am Anfang Ihres Suchpfades steht, damit 3888Guix. Stellen Sie sicher, dass es am Anfang Ihres Suchpfades steht, damit
3742Sie auch wirklich das neueste Guix und sein Info-Handbuch sehen 3889Sie auch wirklich das neueste Guix und sein Info-Handbuch sehen (siehe
3743(@pxref{Dokumentation}): 3890@ref{Dokumentation}):
3744 3891
3745@example 3892@example
3746export PATH="$HOME/.config/guix/current/bin:$PATH" 3893export PATH="$HOME/.config/guix/current/bin:$PATH"
@@ -3783,8 +3930,8 @@ andere Möglichkeiten erklärt, sich den momentanen Zustand von Guix
3783beschreiben zu lassen. 3930beschreiben zu lassen.
3784 3931
3785Das Profil @code{~/.config/guix/current} verhält sich genau wie jedes andere 3932Das Profil @code{~/.config/guix/current} verhält sich genau wie jedes andere
3786Profil, das von @command{guix package} erzeugt wurde (@pxref{Aufruf von guix package}). Das bedeutet, Sie können seine Generationen auflisten und es auf 3933Profil, das von @command{guix package} erzeugt wurde (siehe @ref{Aufruf von guix package}). Das bedeutet, Sie können seine Generationen auflisten und es
3787die vorherige Generation — also das vorherige Guix — zurücksetzen und so 3934auf die vorherige Generation — also das vorherige Guix — zurücksetzen und so
3788weiter: 3935weiter:
3789 3936
3790@example 3937@example
@@ -3801,9 +3948,9 @@ aufgerufen, aber er versteht auch folgende Befehlszeilenoptionen:
3801@item --url=@var{URL} 3948@item --url=@var{URL}
3802@itemx --commit=@var{Commit} 3949@itemx --commit=@var{Commit}
3803@itemx --branch=@var{Branch} 3950@itemx --branch=@var{Branch}
3804Code wird von der angegebenen @var{URL} für den angegebenen @var{Commit} 3951Download code for the @code{guix} channel from the specified @var{url}, at
3805(eine gültige Commit-ID, dargestellt als hexadezimale Zeichenkette) oder 3952the given @var{commit} (a valid Git commit ID represented as a hexadecimal
3806@var{Branch} heruntergeladen. 3953string), or @var{branch}.
3807 3954
3808@cindex @file{channels.scm}, Konfigurationsdatei 3955@cindex @file{channels.scm}, Konfigurationsdatei
3809@cindex Konfigurationsdatei für Kanäle 3956@cindex Konfigurationsdatei für Kanäle
@@ -3816,14 +3963,14 @@ die Option @option{--channels} angeben (siehe unten).
3816Die Liste der Kanäle aus der angegebenen @var{Datei} statt aus 3963Die Liste der Kanäle aus der angegebenen @var{Datei} statt aus
3817@file{~/.config/guix/channels.scm} auslesen. Die @var{Datei} muss 3964@file{~/.config/guix/channels.scm} auslesen. Die @var{Datei} muss
3818Scheme-Code enthalten, der zu einer Liste von Kanalobjekten ausgewertet 3965Scheme-Code enthalten, der zu einer Liste von Kanalobjekten ausgewertet
3819wird. Siehe @xref{Kanäle} für nähere Informationen. 3966wird. Siehe @ref{Kanäle} für nähere Informationen.
3820 3967
3821@item --list-generations[=@var{Muster}] 3968@item --list-generations[=@var{Muster}]
3822@itemx -l [@var{Muster}] 3969@itemx -l [@var{Muster}]
3823Alle Generationen von @file{~/.config/guix/current} bzw., wenn ein 3970Alle Generationen von @file{~/.config/guix/current} bzw., wenn ein
3824@var{Muster} angegeben wird, die dazu passenden Generationen auflisten. Die 3971@var{Muster} angegeben wird, die dazu passenden Generationen auflisten. Die
3825Syntax für das @var{Muster} ist dieselbe wie bei @code{guix package 3972Syntax für das @var{Muster} ist dieselbe wie bei @code{guix package
3826--list-generations} (@pxref{Aufruf von guix package}). 3973--list-generations} (siehe @ref{Aufruf von guix package}).
3827 3974
3828Im Abschnitt @ref{Aufruf von guix describe, @command{guix describe}} wird eine 3975Im Abschnitt @ref{Aufruf von guix describe, @command{guix describe}} wird eine
3829Möglichkeit erklärt, sich Informationen nur über die aktuelle Generation 3976Möglichkeit erklärt, sich Informationen nur über die aktuelle Generation
@@ -3841,7 +3988,7 @@ jeweils erstellt oder substituiert würde, ohne es tatsächlich durchzuführen.
3841@item --system=@var{System} 3988@item --system=@var{System}
3842@itemx -s @var{System} 3989@itemx -s @var{System}
3843Versuchen, für die angegebene Art von @var{System} geeignete Binärdateien zu 3990Versuchen, für die angegebene Art von @var{System} geeignete Binärdateien zu
3844erstellen — z.B. @code{i686-linux} — statt für die Art von System, das die 3991erstellen — z.B.@: @code{i686-linux} — statt für die Art von System, das die
3845Erstellung durchführt. 3992Erstellung durchführt.
3846 3993
3847@item --verbose 3994@item --verbose
@@ -3856,10 +4003,10 @@ Befehlszeilenoption ist nur für Guix-Entwickler von Nutzen.
3856Mit Hilfe von @dfn{Kanälen} können Sie bei @command{guix pull} anweisen, von 4003Mit Hilfe von @dfn{Kanälen} können Sie bei @command{guix pull} anweisen, von
3857welchem Repository und welchem Branch Guix aktualisiert werden soll, sowie 4004welchem Repository und welchem Branch Guix aktualisiert werden soll, sowie
3858von welchen @emph{weiteren} Repositorys Paketmodule bezogen werden 4005von welchen @emph{weiteren} Repositorys Paketmodule bezogen werden
3859sollen. Im Abschnitt @xref{Kanäle} finden Sie nähere Informationen. 4006sollen. Im Abschnitt @ref{Kanäle} finden Sie nähere Informationen.
3860 4007
3861Außerdem unterstützt @command{guix pull} alle gemeinsamen 4008Außerdem unterstützt @command{guix pull} alle gemeinsamen
3862Erstellungsoptionen (@pxref{Gemeinsame Erstellungsoptionen}). 4009Erstellungsoptionen (siehe @ref{Gemeinsame Erstellungsoptionen}).
3863 4010
3864@node Kanäle 4011@node Kanäle
3865@section Kanäle 4012@section Kanäle
@@ -3870,7 +4017,7 @@ Erstellungsoptionen (@pxref{Gemeinsame Erstellungsoptionen}).
3870@cindex @command{guix pull}, Konfigurationsdatei 4017@cindex @command{guix pull}, Konfigurationsdatei
3871@cindex Konfiguration von @command{guix pull} 4018@cindex Konfiguration von @command{guix pull}
3872Guix und die Sammlung darin verfügbarer Pakete können Sie durch Ausführen 4019Guix und die Sammlung darin verfügbarer Pakete können Sie durch Ausführen
3873von @command{guix pull} aktualisieren (@pxref{Aufruf von guix pull}). Standardmäßig lädt @command{guix pull} Guix selbst vom offiziellen 4020von @command{guix pull} aktualisieren (siehe @ref{Aufruf von guix pull}). Standardmäßig lädt @command{guix pull} Guix selbst vom offiziellen
3874Repository von GNU@tie{}Guix herunter und installiert es. Diesen Vorgang 4021Repository von GNU@tie{}Guix herunter und installiert es. Diesen Vorgang
3875können Sie anpassen, indem Sie @dfn{Kanäle} in der Datei 4022können Sie anpassen, indem Sie @dfn{Kanäle} in der Datei
3876@file{~/.config/guix/channels.scm} angeben. Ein Kanal enthält eine Angabe 4023@file{~/.config/guix/channels.scm} angeben. Ein Kanal enthält eine Angabe
@@ -3911,9 +4058,9 @@ Sie haben ein paar eigene Paketvarianten oder persönliche Pakete, von denen
3911Sie meinen, dass sie @emph{nicht} geeignet sind, ins Guix-Projekt selbst 4058Sie meinen, dass sie @emph{nicht} geeignet sind, ins Guix-Projekt selbst
3912aufgenommen zu werden, die Ihnen aber dennoch wie andere Pakete auf der 4059aufgenommen zu werden, die Ihnen aber dennoch wie andere Pakete auf der
3913Befehlszeile zur Verfügung stehen sollen. Dann würden Sie zunächst Module 4060Befehlszeile zur Verfügung stehen sollen. Dann würden Sie zunächst Module
3914mit diesen Paketdefinitionen schreiben (@pxref{Paketmodule}) und diese 4061mit diesen Paketdefinitionen schreiben (siehe @ref{Paketmodule}) und
3915dann in einem Git-Repository verwalten, welches Sie selbst oder jeder andere 4062diese dann in einem Git-Repository verwalten, welches Sie selbst oder jeder
3916dann als zusätzlichen Kanal eintragen können, von dem Pakete geladen 4063andere dann als zusätzlichen Kanal eintragen können, von dem Pakete geladen
3917werden. Klingt gut, oder? 4064werden. Klingt gut, oder?
3918 4065
3919@c What follows stems from discussions at 4066@c What follows stems from discussions at
@@ -3927,8 +4074,8 @@ auch ein paar Worte der Warnung mit auf den Weg geben:
3927@itemize 4074@itemize
3928@item 4075@item
3929Bevor Sie einen Kanal veröffentlichen, überlegen Sie sich bitte erst, ob Sie 4076Bevor Sie einen Kanal veröffentlichen, überlegen Sie sich bitte erst, ob Sie
3930die Pakete nicht besser zum eigentlichen Guix-Projekt beisteuern 4077die Pakete nicht besser zum eigentlichen Guix-Projekt beisteuern (siehe
3931(@pxref{Mitwirken}). Das Guix-Projekt ist gegenüber allen Arten freier 4078@ref{Mitwirken}). Das Guix-Projekt ist gegenüber allen Arten freier
3932Software offen und zum eigentlichen Guix gehörende Pakete stehen allen 4079Software offen und zum eigentlichen Guix gehörende Pakete stehen allen
3933Guix-Nutzern zur Verfügung, außerdem profitieren sie von Guix’ 4080Guix-Nutzern zur Verfügung, außerdem profitieren sie von Guix’
3934Qualitätssicherungsprozess. 4081Qualitätssicherungsprozess.
@@ -3957,9 +4104,10 @@ entspricht. Bitte schicken Sie eine E-Mail an @email{guix-devel@@gnu.org},
3957wenn Sie dies diskutieren möchten. 4104wenn Sie dies diskutieren möchten.
3958@end quotation 4105@end quotation
3959 4106
3960To use a channel, write @code{~/.config/guix/channels.scm} to instruct 4107Um einen Kanal zu benutzen, tragen Sie ihn in
3961@command{guix pull} to pull from it @emph{in addition} to the default Guix 4108@code{~/.config/guix/channels.scm} ein, damit @command{guix pull} diesen
3962channel(s): 4109Kanal @emph{zusätzlich} zu den standardmäßigen Guix-Kanälen als Paketquelle
4110verwendet:
3963 4111
3964@vindex %default-channels 4112@vindex %default-channels
3965@lisp 4113@lisp
@@ -3971,13 +4119,14 @@ channel(s):
3971@end lisp 4119@end lisp
3972 4120
3973@noindent 4121@noindent
3974Note that the snippet above is (as always!)@: Scheme code; we use 4122Beachten Sie, dass der obige Schnipsel (wie immer!)@: Scheme-Code ist; mit
3975@code{cons} to add a channel the list of channels that the variable 4123@code{cons} fügen wir einen Kanal zur Liste der Kanäle hinzu, an die die
3976@code{%default-channels} is bound to (@pxref{Pairs, @code{cons} and lists,, 4124Variable @code{%default-channels} gebunden ist (siehe @ref{Pairs,
3977guile, GNU Guile Reference Manual}). With this file in place, @command{guix 4125@code{cons} and lists,, guile, GNU Guile Reference Manual}). Mit diesem
3978pull} builds not only Guix but also the package modules from your own 4126Dateiinhalt wird @command{guix pull} nun nicht mehr nur Guix, sondern auch
3979repository. The result in @file{~/.config/guix/current} is the union of 4127die Paketmodule aus Ihrem Repository erstellen. Das Ergebnis in
3980Guix with your own package modules: 4128@file{~/.config/guix/current} ist so die Vereinigung von Guix und Ihren
4129eigenen Paketmodulen.
3981 4130
3982@example 4131@example
3983$ guix pull --list-generations 4132$ guix pull --list-generations
@@ -4003,49 +4152,52 @@ vielleicht manche wie @code{mein-gimp} und
4003@code{mein-emacs-mit-coolen-features} aus @code{meine-persönlichen-pakete}, 4152@code{mein-emacs-mit-coolen-features} aus @code{meine-persönlichen-pakete},
4004während andere aus dem Standard-Guix-Kanal kommen. 4153während andere aus dem Standard-Guix-Kanal kommen.
4005 4154
4006To create a channel, create a Git repository containing your own package 4155Um einen Kanal zu erzeugen, müssen Sie ein Git-Repository mit Ihren eigenen
4007modules and make it available. The repository can contain anything, but a 4156Paketmodulen erzeugen und den Zugriff darauf ermöglichen. Das Repository
4008useful channel will contain Guile modules that export packages. Once you 4157kann beliebigen Inhalt haben, aber wenn es ein nützlicher Kanal sein soll,
4009start using a channel, Guix will behave as if the root directory of that 4158muss es Guile-Module enthalten, die Pakete exportieren. Sobald Sie anfangen,
4010channel's Git repository has been added to the Guile load path (@pxref{Load 4159einen Kanal zu benutzen, verhält sich Guix, als wäre das Wurzelverzeichnis
4011Paths,,, guile, GNU Guile Reference Manual}). For example, if your channel 4160des Git-Repositorys des Kanals in Guiles Ladepfad enthalten (siehe @ref{Load
4012contains a file at @file{my-packages/my-tools.scm} that defines a Guile 4161Paths,,, guile, GNU Guile Reference Manual}). Wenn Ihr Kanal also zum
4013module, then the module will be available under the name @code{(my-packages 4162Beispiel eine Datei als @file{my-packages/my-tools.scm} enthält, die ein
4014my-tools)}, and you will be able to use it like any other module 4163Guile-Modul definiert, dann wird das Modul unter dem Namen
4015(@pxref{Module,,, guile, GNU Guile Reference Manual}). 4164@code{(my-packages my-tools)} verfügbar sein und Sie werden es wie jedes
4165andere Modul benutzen können (siehe @ref{Module,,, guile, GNU Guile
4166Reference Manual}).
4016 4167
4017@cindex dependencies, channels 4168@cindex Abhängigkeiten, bei Kanälen
4018@cindex meta-data, channels 4169@cindex Metadaten, bei Kanälen
4019@subsection Declaring Channel Dependencies 4170@subsection Kanalabhängigkeiten deklarieren
4020 4171
4021Channel authors may decide to augment a package collection provided by other 4172Kanalautoren können auch beschließen, die Paketsammlung von anderen Kanälen
4022channels. They can declare their channel to be dependent on other channels 4173zu erweitern. Dazu können sie in einer Metadatendatei @file{.guix-channel}
4023in a meta-data file @file{.guix-channel}, which is to be placed in the root 4174deklarieren, dass ihr Kanal von anderen Kanälen abhängt. Diese Datei muss im
4024of the channel repository. 4175Wurzelverzeichnis des Kanal-Repositorys platziert werden.
4025 4176
4026The meta-data file should contain a simple S-expression like this: 4177Die Metadatendatei sollte einen einfachen S-Ausdruck wie diesen enthalten:
4027 4178
4028@lisp 4179@lisp
4029(channel 4180(channel
4030 (version 0) 4181 (version 0)
4031 (dependencies 4182 (dependencies
4032 (channel 4183 (channel
4033 (name some-collection) 4184 (name irgendeine-sammlung)
4034 (url "https://example.org/first-collection.git")) 4185 (url "https://example.org/erste-sammlung.git"))
4035 (channel 4186 (channel
4036 (name some-other-collection) 4187 (name eine-andere-sammlung)
4037 (url "https://example.org/second-collection.git") 4188 (url "https://example.org/zweite-sammlung.git")
4038 (branch "testing")))) 4189 (branch "testing"))))
4039@end lisp 4190@end lisp
4040 4191
4041In the above example this channel is declared to depend on two other 4192Im Beispiel oben wird deklariert, dass dieser Kanal von zwei anderen Kanälen
4042channels, which will both be fetched automatically. The modules provided by 4193abhängt, die beide automatisch geladen werden. Die vom Kanal angebotenen
4043the channel will be compiled in an environment where the modules of all 4194Module werden in einer Umgebung kompiliert, in der die Module all dieser
4044these declared channels are available. 4195deklarierten Kanäle verfügbar sind.
4045 4196
4046For the sake of reliability and maintainability, you should avoid 4197Um Verlässlichkeit und Wartbarkeit zu gewährleisten, sollen Sie darauf
4047dependencies on channels that you don't control, and you should aim to keep 4198verzichten, eine Abhängigkeit von Kanälen herzustellen, die Sie nicht
4048the number of dependencies to a minimum. 4199kontrollieren, außerdem sollten Sie sich auf eine möglichst kleine Anzahl
4200von Abhängigkeiten beschränken.
4049 4201
4050@subsection Guix nachbilden 4202@subsection Guix nachbilden
4051 4203
@@ -4071,7 +4223,7 @@ diese Commits »festgesetzt« ist.
4071@end lisp 4223@end lisp
4072 4224
4073Der Befehl @command{guix describe --format=channels} kann diese Kanalliste 4225Der Befehl @command{guix describe --format=channels} kann diese Kanalliste
4074sogar direkt erzeugen (@pxref{Aufruf von guix describe}). 4226sogar direkt erzeugen (siehe @ref{Aufruf von guix describe}).
4075 4227
4076Somit läuft auf beiden Maschinen @emph{genau dasselbe Guix} und es hat 4228Somit läuft auf beiden Maschinen @emph{genau dasselbe Guix} und es hat
4077Zugang zu @emph{genau denselben Paketen}. Die Ausgabe von @command{guix 4229Zugang zu @emph{genau denselben Paketen}. Die Ausgabe von @command{guix
@@ -4084,7 +4236,7 @@ Das verleiht Ihnen Superkräfte, mit denen Sie die Provenienz binärer
4084Artefakte sehr feinkörnig nachverfolgen können und Software-Umgebungen nach 4236Artefakte sehr feinkörnig nachverfolgen können und Software-Umgebungen nach
4085Belieben nachbilden können. Sie können es als eine Art Fähigkeit zur 4237Belieben nachbilden können. Sie können es als eine Art Fähigkeit zur
4086»Meta-Reproduzierbarkeit« auffassen, wenn Sie möchten. Der Abschnitt 4238»Meta-Reproduzierbarkeit« auffassen, wenn Sie möchten. Der Abschnitt
4087@xref{Untergeordnete} beschreibt eine weitere Möglichkeit, diese Superkräfte zu 4239@ref{Untergeordnete} beschreibt eine weitere Möglichkeit, diese Superkräfte zu
4088nutzen. 4240nutzen.
4089 4241
4090@node Untergeordnete 4242@node Untergeordnete
@@ -4106,23 +4258,25 @@ Guix-Versionen beliebig mischen können.
4106 4258
4107@cindex untergeordnete Pakete 4259@cindex untergeordnete Pakete
4108Aus technischer Sicht ist ein »Untergeordneter« im Kern ein separater 4260Aus technischer Sicht ist ein »Untergeordneter« im Kern ein separater
4109Guix-Prozess, der über eine REPL (@pxref{Aufruf von guix repl}) mit Ihrem 4261Guix-Prozess, der über eine REPL (siehe @ref{Aufruf von guix repl}) mit Ihrem
4110Haupt-Guix-Prozess verbunden ist. Das Modul @code{(guix inferior)} 4262Haupt-Guix-Prozess verbunden ist. Das Modul @code{(guix inferior)}
4111ermöglicht es Ihnen, Untergeordnete zu erstellen und mit ihnen zu 4263ermöglicht es Ihnen, Untergeordnete zu erstellen und mit ihnen zu
4112kommunizieren. Dadurch steht Ihnen auch eine hochsprachliche Schnittstelle 4264kommunizieren. Dadurch steht Ihnen auch eine hochsprachliche Schnittstelle
4113zur Verfügung, um die von einem Untergeordneten angebotenen Pakete zu 4265zur Verfügung, um die von einem Untergeordneten angebotenen Pakete zu
4114durchsuchen und zu verändern — @dfn{untergeordnete Pakete}. 4266durchsuchen und zu verändern — @dfn{untergeordnete Pakete}.
4115 4267
4116In Kombination mit Kanälen (@pxref{Kanäle}) bieten Untergeordnete eine 4268In Kombination mit Kanälen (siehe @ref{Kanäle}) bieten Untergeordnete eine
4117einfache Möglichkeit, mit einer anderen Version von Guix zu 4269einfache Möglichkeit, mit einer anderen Version von Guix zu
4118interagieren. Nehmen wir zum Beispiel an, Sie wollen das aktuelle 4270interagieren. Nehmen wir zum Beispiel an, Sie wollen das aktuelle
4119@code{guile}-Paket in Ihr Profil installieren, zusammen mit dem 4271@code{guile}-Paket in Ihr Profil installieren, zusammen mit dem
4120@code{guile-json}, wie es in einer früheren Guix-Version existiert hat — 4272@code{guile-json}, wie es in einer früheren Guix-Version existiert hat —
4121vielleicht weil das neuere @code{guile-json} eine inkompatible API hat und 4273vielleicht weil das neuere @code{guile-json} eine inkompatible API hat und
4122Sie daher Ihren Code mit der alten API benutzen möchten. Dazu könnten Sie 4274Sie daher Ihren Code mit der alten API benutzen möchten. Dazu könnten Sie
4123ein Manifest für @code{guix package --manifest} schreiben (@pxref{Aufruf von guix package}); in diesem Manifest würden Sie einen Untergeordneten für 4275ein Manifest für @code{guix package --manifest} schreiben (siehe
4124diese alte Guix-Version erzeugen, für die Sie sich interessieren, und aus 4276@ref{Aufruf von guix package}); in diesem Manifest würden Sie einen
4125diesem Untergeordneten das @code{guile-json}-Paket holen: 4277Untergeordneten für diese alte Guix-Version erzeugen, für die Sie sich
4278interessieren, und aus diesem Untergeordneten das @code{guile-json}-Paket
4279holen:
4126 4280
4127@lisp 4281@lisp
4128(use-modules (guix inferior) (guix channels) 4282(use-modules (guix inferior) (guix channels)
@@ -4208,21 +4362,21 @@ Liefert wahr, wenn das @var{obj} ein Untergeordneter ist.
4208@deffnx {Scheme-Prozedur} inferior-package-transitive-native-search-paths @var{Paket} 4362@deffnx {Scheme-Prozedur} inferior-package-transitive-native-search-paths @var{Paket}
4209@deffnx {Scheme-Prozedur} inferior-package-search-paths @var{Paket} 4363@deffnx {Scheme-Prozedur} inferior-package-search-paths @var{Paket}
4210Diese Prozeduren sind das Gegenstück zu den Zugriffsmethoden des Verbunds 4364Diese Prozeduren sind das Gegenstück zu den Zugriffsmethoden des Verbunds
4211»package« für Pakete (@pxref{»package«-Referenz}). Die meisten davon 4365»package« für Pakete (siehe @ref{»package«-Referenz}). Die meisten davon
4212funktionieren durch eine Abfrage auf dem Untergeordneten, von dem das 4366funktionieren durch eine Abfrage auf dem Untergeordneten, von dem das
4213@var{Paket} kommt, weshalb der Untergeordnete noch lebendig sein muss, wenn 4367@var{Paket} kommt, weshalb der Untergeordnete noch lebendig sein muss, wenn
4214Sie diese Prozeduren aufrufen. 4368Sie diese Prozeduren aufrufen.
4215@end deffn 4369@end deffn
4216 4370
4217Untergeordnete Pakete können transparent wie jedes andere Paket oder 4371Untergeordnete Pakete können transparent wie jedes andere Paket oder
4218dateiartige Objekt in G-Ausdrücken verwendet werden 4372dateiartige Objekt in G-Ausdrücken verwendet werden (siehe
4219(@pxref{G-Ausdrücke}). Sie werden auch transparent wie reguläre Pakete von 4373@ref{G-Ausdrücke}). Sie werden auch transparent wie reguläre Pakete von
4220der Prozedur @code{packages->manifest} behandelt, welche oft in Manifesten 4374der Prozedur @code{packages->manifest} behandelt, welche oft in Manifesten
4221benutzt wird (@pxref{Aufruf von guix package, siehe die Befehlszeilenoption 4375benutzt wird (siehe @ref{Aufruf von guix package, siehe die
4222@option{--manifest} von @command{guix package}}). Somit können Sie ein 4376Befehlszeilenoption @option{--manifest} von @command{guix package}}). Somit
4223untergeordnetes Paket ziemlich überall dort verwenden, wo Sie ein reguläres 4377können Sie ein untergeordnetes Paket ziemlich überall dort verwenden, wo Sie
4224Paket einfügen würden: in Manifesten, im Feld @code{packages} Ihrer 4378ein reguläres Paket einfügen würden: in Manifesten, im Feld @code{packages}
4225@code{operating-system}-Deklaration und so weiter. 4379Ihrer @code{operating-system}-Deklaration und so weiter.
4226 4380
4227@node Aufruf von guix describe 4381@node Aufruf von guix describe
4228@section @command{guix describe} aufrufen 4382@section @command{guix describe} aufrufen
@@ -4242,7 +4396,7 @@ gibt Ihnen Antwort auf diese Fragen.
4242Wenn Sie ihn aus einem mit @command{guix pull} bezogenen @command{guix} 4396Wenn Sie ihn aus einem mit @command{guix pull} bezogenen @command{guix}
4243heraus ausführen, zeigt Ihnen @command{guix describe} die Kanäle an, aus 4397heraus ausführen, zeigt Ihnen @command{guix describe} die Kanäle an, aus
4244denen es erstellt wurde, jeweils mitsamt ihrer Repository-URL und Commit-ID 4398denen es erstellt wurde, jeweils mitsamt ihrer Repository-URL und Commit-ID
4245(@pxref{Kanäle}): 4399(siehe @ref{Kanäle}):
4246 4400
4247@example 4401@example
4248$ guix describe 4402$ guix describe
@@ -4256,7 +4410,7 @@ Generation 10 Sep 03 2018 17:32:44 (current)
4256Wenn Sie mit dem Versionskontrollsystem Git vertraut sind, erkennen Sie 4410Wenn Sie mit dem Versionskontrollsystem Git vertraut sind, erkennen Sie
4257vielleicht die Ähnlichkeit zu @command{git describe}; die Ausgabe ähnelt 4411vielleicht die Ähnlichkeit zu @command{git describe}; die Ausgabe ähnelt
4258auch der von @command{guix pull --list-generations} eingeschränkt auf die 4412auch der von @command{guix pull --list-generations} eingeschränkt auf die
4259aktuelle Generation (@pxref{Aufruf von guix pull, die Befehlszeilenoption 4413aktuelle Generation (siehe @ref{Aufruf von guix pull, die Befehlszeilenoption
4260@option{--list-generations}}). Weil die oben gezeigte Git-Commit-ID 4414@option{--list-generations}}). Weil die oben gezeigte Git-Commit-ID
4261eindeutig eine bestimmte Version von Guix bezeichnet, genügt diese 4415eindeutig eine bestimmte Version von Guix bezeichnet, genügt diese
4262Information, um die von Ihnen benutzte Version von Guix zu beschreiben, und 4416Information, um die von Ihnen benutzte Version von Guix zu beschreiben, und
@@ -4279,7 +4433,7 @@ $ guix describe -f channels
4279Sie können die Ausgabe in einer Datei speichern, die Sie an @command{guix 4433Sie können die Ausgabe in einer Datei speichern, die Sie an @command{guix
4280pull -C} auf einer anderen Maschine oder zu einem späteren Zeitpunkt 4434pull -C} auf einer anderen Maschine oder zu einem späteren Zeitpunkt
4281übergeben, wodurch dann eine Instanz @emph{von genau derselben Guix-Version} 4435übergeben, wodurch dann eine Instanz @emph{von genau derselben Guix-Version}
4282installiert wird (@pxref{Aufruf von guix pull, die Befehlszeilenoption 4436installiert wird (siehe @ref{Aufruf von guix pull, die Befehlszeilenoption
4283@option{-C}}). Daraufhin können Sie, weil Sie jederzeit dieselbe Version von 4437@option{-C}}). Daraufhin können Sie, weil Sie jederzeit dieselbe Version von
4284Guix installieren können, auch gleich @emph{eine vollständige 4438Guix installieren können, auch gleich @emph{eine vollständige
4285Softwareumgebung genau nachbilden}. Wir halten das trotz aller 4439Softwareumgebung genau nachbilden}. Wir halten das trotz aller
@@ -4300,7 +4454,7 @@ für menschenlesbare Ausgabe,
4300@item Kanäle 4454@item Kanäle
4301eine Liste von Kanalspezifikationen erzeugen, die an @command{guix pull -C} 4455eine Liste von Kanalspezifikationen erzeugen, die an @command{guix pull -C}
4302übergeben werden oder als @file{~/.config/guix/channels.scm} eingesetzt 4456übergeben werden oder als @file{~/.config/guix/channels.scm} eingesetzt
4303werden können (@pxref{Aufruf von guix pull}), 4457werden können (siehe @ref{Aufruf von guix pull}),
4304@item json 4458@item json
4305@cindex JSON 4459@cindex JSON
4306generiert eine Liste von Kanalspezifikationen im JSON-Format, 4460generiert eine Liste von Kanalspezifikationen im JSON-Format,
@@ -4327,7 +4481,7 @@ Store-Objekte von einer Maschine in den Store einer anderen Maschine
4327@quotation Anmerkung 4481@quotation Anmerkung
4328Wenn Sie nach einer Möglichkeit suchen, Archivdateien für andere Werkzeuge 4482Wenn Sie nach einer Möglichkeit suchen, Archivdateien für andere Werkzeuge
4329als Guix zu erstellen, finden Sie Informationen dazu im Abschnitt 4483als Guix zu erstellen, finden Sie Informationen dazu im Abschnitt
4330@pxref{Aufruf von guix pack}. 4484@ref{Aufruf von guix pack}.
4331@end quotation 4485@end quotation
4332 4486
4333@cindex Store-Objekte exportieren 4487@cindex Store-Objekte exportieren
@@ -4339,7 +4493,7 @@ guix archive --export @var{Optionen} @var{Spezifikationen}...
4339@end example 4493@end example
4340 4494
4341@var{Spezifikationen} sind dabei entweder die Namen von Store-Dateien oder 4495@var{Spezifikationen} sind dabei entweder die Namen von Store-Dateien oder
4342Paketspezifikationen wie bei @command{guix package} (@pxref{Aufruf von guix package}). Zum Beispiel erzeugt der folgende Befehl ein Archiv der 4496Paketspezifikationen wie bei @command{guix package} (siehe @ref{Aufruf von guix package}). Zum Beispiel erzeugt der folgende Befehl ein Archiv der
4343@code{gui}-Ausgabe des Pakets @code{git} sowie die Hauptausgabe von 4497@code{gui}-Ausgabe des Pakets @code{git} sowie die Hauptausgabe von
4344@code{emacs}: 4498@code{emacs}:
4345 4499
@@ -4349,8 +4503,8 @@ guix archive --export git:gui /gnu/store/...-emacs-24.3 > groß.nar
4349 4503
4350Wenn die angegebenen Pakete noch nicht erstellt worden sind, werden sie 4504Wenn die angegebenen Pakete noch nicht erstellt worden sind, werden sie
4351durch @command{guix archive} automatisch erstellt. Der Erstellungsprozess 4505durch @command{guix archive} automatisch erstellt. Der Erstellungsprozess
4352kann durch die gemeinsamen Erstellungsoptionen gesteuert werden 4506kann durch die gemeinsamen Erstellungsoptionen gesteuert werden (siehe
4353(@pxref{Gemeinsame Erstellungsoptionen}). 4507@ref{Gemeinsame Erstellungsoptionen}).
4354 4508
4355Um das @code{emacs}-Paket auf eine über SSH verbundene Maschine zu 4509Um das @code{emacs}-Paket auf eine über SSH verbundene Maschine zu
4356übertragen, würde man dies ausführen: 4510übertragen, würde man dies ausführen:
@@ -4375,8 +4529,8 @@ Jedoch sollten Sie in beiden Beispielen beachten, dass alles, was zu
4375oder nicht. Mit der Befehlszeilenoption @code{--missing} lässt sich 4529oder nicht. Mit der Befehlszeilenoption @code{--missing} lässt sich
4376herausfinden, welche Objekte im Ziel-Store noch fehlen. Der Befehl 4530herausfinden, welche Objekte im Ziel-Store noch fehlen. Der Befehl
4377@command{guix copy} vereinfacht und optimiert diesen gesamten Prozess, ist 4531@command{guix copy} vereinfacht und optimiert diesen gesamten Prozess, ist
4378also, was Sie in diesem Fall wahrscheinlich eher benutzen wollten 4532also, was Sie in diesem Fall wahrscheinlich eher benutzen wollten (siehe
4379(@pxref{Aufruf von guix copy}). 4533@ref{Aufruf von guix copy}).
4380 4534
4381@cindex Nar, Archivformat 4535@cindex Nar, Archivformat
4382@cindex Normalisiertes Archiv (Nar) 4536@cindex Normalisiertes Archiv (Nar)
@@ -4394,10 +4548,10 @@ deterministisch.
4394 4548
4395@c FIXME: Add xref to daemon doc about signatures. 4549@c FIXME: Add xref to daemon doc about signatures.
4396Beim Exportieren versieht der Daemon den Inhalt des Archivs mit einer 4550Beim Exportieren versieht der Daemon den Inhalt des Archivs mit einer
4397digitalen Signatur. Diese digitale Signatur wird an das Archiv 4551digitalen Signatur, auch Beglaubigung genannt. Diese digitale Signatur wird
4398angehängt. Beim Importieren verifiziert der Daemon die Signatur und lehnt 4552an das Archiv angehängt. Beim Importieren verifiziert der Daemon die
4399den Import ab, falls die Signatur ungültig oder der signierende Schlüssel 4553Signatur und lehnt den Import ab, falls die Signatur ungültig oder der
4400nicht autorisiert ist. 4554signierende Schlüssel nicht autorisiert ist.
4401 4555
4402Die wichtigsten Befehlszeilenoptionen sind: 4556Die wichtigsten Befehlszeilenoptionen sind:
4403 4557
@@ -4442,14 +4596,14 @@ geheim gehalten werden muss). Wurden keine @var{Parameters} angegeben, wird
4442ein ECDSA-Schlüssel unter Verwendung der Kurve Ed25519 erzeugt, oder, falls 4596ein ECDSA-Schlüssel unter Verwendung der Kurve Ed25519 erzeugt, oder, falls
4443die Libgcrypt-Version älter als 1.6.0 ist, ein 4096-Bit-RSA-Schlüssel. Sonst 4597die Libgcrypt-Version älter als 1.6.0 ist, ein 4096-Bit-RSA-Schlüssel. Sonst
4444geben die @var{Parameter} für Libgcrypt geeignete Parameter für 4598geben die @var{Parameter} für Libgcrypt geeignete Parameter für
4445@code{genkey} an (@pxref{General public-key related Functions, 4599@code{genkey} an (siehe @ref{General public-key related Functions,
4446@code{gcry_pk_genkey},, gcrypt, The Libgcrypt Reference Manual}). 4600@code{gcry_pk_genkey},, gcrypt, The Libgcrypt Reference Manual}).
4447 4601
4448@item --authorize 4602@item --authorize
4449@cindex Autorisieren, von Archiven 4603@cindex Autorisieren, von Archiven
4450Mit dem auf der Standardeingabe übergebenen öffentlichen Schlüssel signierte 4604Mit dem auf der Standardeingabe übergebenen öffentlichen Schlüssel signierte
4451Importe autorisieren. Der öffentliche Schlüssel muss als 4605Importe autorisieren. Der öffentliche Schlüssel muss als
4452»advanced«-formatierter S-Ausdruck gespeichert sein, d.h. im selben Format 4606»advanced«-formatierter S-Ausdruck gespeichert sein, d.h.@: im selben Format
4453wie die Datei @file{signing-key.pub}. 4607wie die Datei @file{signing-key.pub}.
4454 4608
4455Die Liste autorisierter Schlüssel wird in der Datei @file{/etc/guix/acl} 4609Die Liste autorisierter Schlüssel wird in der Datei @file{/etc/guix/acl}
@@ -4462,12 +4616,12 @@ S-Ausdrücke} und ist als eine Access Control List für die
4462@item --extract=@var{Verzeichnis} 4616@item --extract=@var{Verzeichnis}
4463@itemx -x @var{Verzeichnis} 4617@itemx -x @var{Verzeichnis}
4464Ein Archiv mit einem einzelnen Objekt lesen, wie es von Substitutservern 4618Ein Archiv mit einem einzelnen Objekt lesen, wie es von Substitutservern
4465geliefert wird (@pxref{Substitute}) und ins @var{Verzeichnis} 4619geliefert wird (siehe @ref{Substitute}) und ins @var{Verzeichnis}
4466entpacken. Dies ist eine systemnahe Operation, die man nur selten direkt 4620entpacken. Dies ist eine systemnahe Operation, die man nur selten direkt
4467benutzt; siehe unten. 4621benutzt; siehe unten.
4468 4622
4469For example, the following command extracts the substitute for Emacs served 4623Zum Beispiel entpackt folgender Befehl das Substitut für Emacs, wie es von
4470by @code{@value{SUBSTITUTE-SERVER}} to @file{/tmp/emacs}: 4624@code{@value{SUBSTITUTE-SERVER}} geliefert wird, nach @file{/tmp/emacs}:
4471 4625
4472@example 4626@example
4473$ wget -O - \ 4627$ wget -O - \
@@ -4489,19 +4643,20 @@ unter Umständen nicht vertraut wird.
4489 4643
4490 4644
4491@c ********************************************************************* 4645@c *********************************************************************
4492@node Development 4646@node Entwicklung
4493@chapter Development 4647@chapter Entwicklung
4494 4648
4495@cindex software development 4649@cindex Softwareentwicklung
4496If you are a software developer, Guix provides tools that you should find 4650Wenn Sie ein Software-Entwickler sind, gibt Ihnen Guix Werkzeuge an die
4497helpful---independently of the language you're developing in. This is what 4651Hand, die Sie für hilfreich erachten dürften — ganz unabhängig davon, in
4498this chapter is about. 4652welcher Sprache Sie entwickeln. Darum soll es in diesem Kapitel gehen.
4499 4653
4500The @command{guix environment} command provides a convenient way to set up 4654Der Befehl @command{guix environment} stellt eine bequeme Möglichkeit dar,
4501@dfn{development environments} containing all the dependencies and tools 4655wie Sie eine @dfn{Entwicklungsumgebung} aufsetzen können, in der all die
4502necessary to work on the software package of your choice. The @command{guix 4656Abhängigkeiten und Werkzeuge enthalten sind, die Sie brauchen, wenn Sie an
4503pack} command allows you to create @dfn{application bundles} that can be 4657Ihrem Lieblingssoftwarepaket arbeiten. Der Befehl @command{guix pack} macht
4504easily distributed to users who do not run Guix. 4658es Ihnen möglich, @dfn{Anwendungsbündel} zu erstellen, die leicht an Nutzer
4659verteilt werden können, die kein Guix benutzen.
4505 4660
4506@menu 4661@menu
4507* Aufruf von guix environment:: Entwicklungsumgebungen einrichten. 4662* Aufruf von guix environment:: Entwicklungsumgebungen einrichten.
@@ -4549,16 +4704,16 @@ Bash startet, selbige @file{~/.bashrc} von Bash gelesen wird und die neuen
4549Umgebungen somit »verunreinigt«. Es ist ein Fehler, solche Umgebungsvariable 4704Umgebungen somit »verunreinigt«. Es ist ein Fehler, solche Umgebungsvariable
4550in @file{.bashrc} zu definieren, stattdessen sollten sie in 4705in @file{.bashrc} zu definieren, stattdessen sollten sie in
4551@file{.bash_profile} geschrieben werden, was nur von Login-Shells mit 4706@file{.bash_profile} geschrieben werden, was nur von Login-Shells mit
4552»source« geladen wird. @xref{Bash Startup Files,,, bash, The GNU Bash 4707»source« geladen wird. Siehe @ref{Bash Startup Files,,, bash, The GNU Bash
4553Reference Manual}, für Details über beim Starten von Bash gelesene Dateien}. 4708Reference Manual} für Details über beim Starten von Bash gelesene Dateien}.
4554 4709
4555@vindex GUIX_ENVIRONMENT 4710@vindex GUIX_ENVIRONMENT
4556@command{guix environment} definiert die Variable @code{GUIX_ENVIRONMENT} in 4711@command{guix environment} definiert die Variable @code{GUIX_ENVIRONMENT} in
4557der neu erzeugten Shell. Ihr Wert ist der Dateiname des Profils dieser neuen 4712der neu erzeugten Shell. Ihr Wert ist der Dateiname des Profils dieser neuen
4558Umgebung. Das könnten Nutzer verwenden, um zum Beispiel eine besondere 4713Umgebung. Das könnten Nutzer verwenden, um zum Beispiel eine besondere
4559Prompt als Eingabeaufforderung für Entwicklungsumgebungen in ihrer 4714Prompt als Eingabeaufforderung für Entwicklungsumgebungen in ihrer
4560@file{.bashrc} festzulegen (@pxref{Bash Startup Files,,, bash, The GNU Bash 4715@file{.bashrc} festzulegen (siehe @ref{Bash Startup Files,,, bash, The GNU
4561Reference Manual}): 4716Bash Reference Manual}):
4562 4717
4563@example 4718@example
4564if [ -n "$GUIX_ENVIRONMENT" ] 4719if [ -n "$GUIX_ENVIRONMENT" ]
@@ -4568,7 +4723,7 @@ fi
4568@end example 4723@end example
4569 4724
4570@noindent 4725@noindent
4571...@: or to browse the profile: 4726@: oder um ihr Profil durchzusehen:
4572 4727
4573@example 4728@example
4574$ ls "$GUIX_ENVIRONMENT/bin" 4729$ ls "$GUIX_ENVIRONMENT/bin"
@@ -4616,13 +4771,14 @@ umfasst:
4616guix environment guix --ad-hoc git strace 4771guix environment guix --ad-hoc git strace
4617@end example 4772@end example
4618 4773
4619Sometimes it is desirable to isolate the environment as much as possible, 4774Manchmal ist es wünschenswert, die Umgebung so viel wie möglich zu
4620for maximal purity and reproducibility. In particular, when using Guix on a 4775isolieren, um maximale Reinheit und Reproduzierbarkeit zu
4621host distro that is not Guix System, it is desirable to prevent access to 4776bekommen. Insbesondere ist es wünschenswert, den Zugriff auf @file{/usr/bin}
4622@file{/usr/bin} and other system-wide resources from the development 4777und andere Systemressourcen aus der Entwicklungsumgebung heraus zu
4623environment. For example, the following command spawns a Guile REPL in a 4778verhindern, wenn man Guix auf einer fremden Wirtsdistribution benutzt, die
4624``container'' where only the store and the current working directory are 4779nicht Guix System ist. Zum Beispiel startet der folgende Befehl eine
4625mounted: 4780Guile-REPL in einer isolierten Umgebung, einem sogenannten »Container«, in
4781der nur der Store und das aktuelle Arbeitsverzeichnis eingebunden sind:
4626 4782
4627@example 4783@example
4628guix environment --ad-hoc --container guile -- guile 4784guix environment --ad-hoc --container guile -- guile
@@ -4636,8 +4792,8 @@ Die Befehlszeilenoption @code{--container} funktioniert nur mit Linux-libre
4636Im Folgenden werden die verfügbaren Befehlszeilenoptionen zusammengefasst. 4792Im Folgenden werden die verfügbaren Befehlszeilenoptionen zusammengefasst.
4637 4793
4638@table @code 4794@table @code
4639@item --root=@var{file} 4795@item --root=@var{Datei}
4640@itemx -r @var{file} 4796@itemx -r @var{Datei}
4641@cindex persistente Umgebung 4797@cindex persistente Umgebung
4642@cindex Müllsammlerwurzel, für Umgebungen 4798@cindex Müllsammlerwurzel, für Umgebungen
4643Die @var{Datei} zu einer symbolischen Verknüpfung auf das Profil dieser 4799Die @var{Datei} zu einer symbolischen Verknüpfung auf das Profil dieser
@@ -4649,7 +4805,7 @@ Das ist nützlich, um seine Umgebung vor dem Müllsammler zu schützen und sie
4649Wird diese Option weggelassen, ist die Umgebung nur, solange die Sitzung von 4805Wird diese Option weggelassen, ist die Umgebung nur, solange die Sitzung von
4650@command{guix environment} besteht, vor dem Müllsammler sicher. Das 4806@command{guix environment} besteht, vor dem Müllsammler sicher. Das
4651bedeutet, wenn Sie das nächste Mal dieselbe Umgebung neu erzeugen, müssen 4807bedeutet, wenn Sie das nächste Mal dieselbe Umgebung neu erzeugen, müssen
4652Sie vielleicht Pakete neu erstellen oder neu herunterladen. @xref{Aufruf von guix gc} hat mehr Informationen über Müllsammlerwurzeln. 4808Sie vielleicht Pakete neu erstellen oder neu herunterladen. @ref{Aufruf von guix gc} hat mehr Informationen über Müllsammlerwurzeln.
4653 4809
4654@item --expression=@var{Ausdruck} 4810@item --expression=@var{Ausdruck}
4655@itemx -e @var{Ausdruck} 4811@itemx -e @var{Ausdruck}
@@ -4671,7 +4827,7 @@ Wenn man dies ausführt:
4671guix environment --ad-hoc -e '(@@ (gnu) %base-packages)' 4827guix environment --ad-hoc -e '(@@ (gnu) %base-packages)'
4672@end example 4828@end example
4673 4829
4674starts a shell with all the base system packages available. 4830bekommt man eine Shell, in der alle Basis-Pakete verfügbar sind.
4675 4831
4676Die obigen Befehle benutzen nur die Standard-Ausgabe des jeweiligen 4832Die obigen Befehle benutzen nur die Standard-Ausgabe des jeweiligen
4677Pakets. Um andere Ausgaben auszuwählen, können zweielementige Tupel 4833Pakets. Um andere Ausgaben auszuwählen, können zweielementige Tupel
@@ -4687,7 +4843,7 @@ Eine Umgebung erstellen für das Paket oder die Liste von Paketen, zu der der
4687Code in der @var{Datei} ausgewertet wird. 4843Code in der @var{Datei} ausgewertet wird.
4688 4844
4689Zum Beispiel könnte die @var{Datei} eine Definition wie diese enthalten 4845Zum Beispiel könnte die @var{Datei} eine Definition wie diese enthalten
4690(@pxref{Pakete definieren}): 4846(siehe @ref{Pakete definieren}):
4691 4847
4692@example 4848@example
4693@verbatiminclude environment-gdb.scm 4849@verbatiminclude environment-gdb.scm
@@ -4699,8 +4855,8 @@ Eine Umgebung für die Pakete erzeugen, die im Manifest-Objekt enthalten
4699sind, das vom Scheme-Code in der @var{Datei} geliefert wird. 4855sind, das vom Scheme-Code in der @var{Datei} geliefert wird.
4700 4856
4701Dies verhält sich ähnlich wie die gleichnamige Option des Befehls 4857Dies verhält sich ähnlich wie die gleichnamige Option des Befehls
4702@command{guix package} (@pxref{profile-manifest, @option{--manifest}}) und 4858@command{guix package} (siehe @ref{profile-manifest, @option{--manifest}})
4703benutzt auch dieselben Manifestdateien. 4859und benutzt auch dieselben Manifestdateien.
4704 4860
4705@item --ad-hoc 4861@item --ad-hoc
4706Alle angegebenen Pakete in der resultierenden Umgebung einschließen, als 4862Alle angegebenen Pakete in der resultierenden Umgebung einschließen, als
@@ -4720,8 +4876,8 @@ Guile-SDL zur Verfügung stehen.
4720 4876
4721Beachten Sie, dass in diesem Beispiel implizit die vorgegebene Ausgabe von 4877Beachten Sie, dass in diesem Beispiel implizit die vorgegebene Ausgabe von
4722@code{guile} und @code{guile-sdl} verwendet wird, es aber auch möglich ist, 4878@code{guile} und @code{guile-sdl} verwendet wird, es aber auch möglich ist,
4723eine bestimmte Ausgabe auszuwählen — z.B. wird mit @code{glib:bin} die 4879eine bestimmte Ausgabe auszuwählen — z.B.@: wird mit @code{glib:bin} die
4724Ausgabe @code{bin} von @code{glib} gewählt (@pxref{Pakete mit mehreren Ausgaben.}). 4880Ausgabe @code{bin} von @code{glib} gewählt (siehe @ref{Pakete mit mehreren Ausgaben.}).
4725 4881
4726Diese Befehlszeilenoption kann mit dem standardmäßigen Verhalten von 4882Diese Befehlszeilenoption kann mit dem standardmäßigen Verhalten von
4727@command{guix environment} verbunden werden. Pakete, die vor @code{--ad-hoc} 4883@command{guix environment} verbunden werden. Pakete, die vor @code{--ad-hoc}
@@ -4731,35 +4887,36 @@ entspricht. Pakete, die danach aufgeführt werden, werden selbst zur Umgebung
4731hinzugefügt. 4887hinzugefügt.
4732 4888
4733@item --pure 4889@item --pure
4734Unset existing environment variables when building the new environment, 4890Bestehende Umgebungsvariable deaktivieren, wenn die neue Umgebung erzeugt
4735except those specified with @option{--preserve} (see below.) This has the 4891wird, mit Ausnahme der mit @option{--preserve} angegebenen Variablen (siehe
4736effect of creating an environment in which search paths only contain package 4892unten). Dies bewirkt, dass eine Umgebung erzeugt wird, in der die Suchpfade
4737inputs. 4893nur Paketeingaben nennen und sonst nichts.
4738 4894
4739@item --preserve=@var{regexp} 4895@item --preserve=@var{Regexp}
4740@itemx -E @var{regexp} 4896@itemx -E @var{Regexp}
4741When used alongside @option{--pure}, preserve the environment variables 4897Wenn das hier zusammen mit @option{--pure} angegeben wird, bleiben die zum
4742matching @var{regexp}---in other words, put them on a ``white list'' of 4898regulären Ausdruck @var{Regexp} passenden Umgebungsvariablen erhalten — mit
4743environment variables that must be preserved. This option can be repeated 4899anderen Worten werden sie auf eine »weiße Liste« von Umgebungsvariablen
4744several times. 4900gesetzt, die erhalten bleiben müssen. Diese Befehlszeilenoption kann
4901mehrmals wiederholt werden.
4745 4902
4746@example 4903@example
4747guix environment --pure --preserve=^SLURM --ad-hoc openmpi @dots{} \ 4904guix environment --pure --preserve=^SLURM --ad-hoc openmpi @dots{} \
4748 -- mpirun @dots{} 4905 -- mpirun @dots{}
4749@end example 4906@end example
4750 4907
4751This example runs @command{mpirun} in a context where the only environment 4908In diesem Beispiel wird @command{mpirun} in einem Kontext ausgeführt, in dem
4752variables defined are @code{PATH}, environment variables whose name starts 4909die einzig definierten Umgebungsvariablen @code{PATH} und solche sind, deren
4753with @code{SLURM}, as well as the usual ``precious'' variables (@code{HOME}, 4910Name mit @code{SLURM} beginnt, sowie die üblichen besonders »kostbaren«
4754@code{USER}, etc.) 4911Variablen (@code{HOME}, @code{USER}, etc.).
4755 4912
4756@item --search-paths 4913@item --search-paths
4757Die Umgebungsvariablendefinitionen anzeigen, aus denen die Umgebung besteht. 4914Die Umgebungsvariablendefinitionen anzeigen, aus denen die Umgebung besteht.
4758 4915
4759@item --system=@var{System} 4916@item --system=@var{System}
4760@itemx -s @var{System} 4917@itemx -s @var{System}
4761Versuchen, für das angegebene @var{System} zu erstellen — 4918Versuchen, für das angegebene @var{System} zu erstellen — z.B.@:
4762z.B. @code{i686-linux}. 4919@code{i686-linux}.
4763 4920
4764@item --container 4921@item --container
4765@itemx -C 4922@itemx -C
@@ -4770,9 +4927,12 @@ Containers wird in den Container zugeordnet. Zusätzlich wird, wenn es mit
4770der Befehlszeilenoption @code{--user} nicht anders spezifiziert wurde, ein 4927der Befehlszeilenoption @code{--user} nicht anders spezifiziert wurde, ein
4771stellvertretendes persönliches Verzeichnis erzeugt, dessen Inhalt der des 4928stellvertretendes persönliches Verzeichnis erzeugt, dessen Inhalt der des
4772wirklichen persönlichen Verzeichnisses ist, sowie eine passend konfigurierte 4929wirklichen persönlichen Verzeichnisses ist, sowie eine passend konfigurierte
4773Datei @file{/etc/passwd}. Der erzeugte Prozess läuft außerhalb des 4930Datei @file{/etc/passwd}.
4774Containers als der momentane Nutzer, aber im Kontext des Containers hat er 4931
4775Administratorrechte. 4932Der erzeugte Prozess läuft außerhalb des Containers als der momentane
4933Nutzer. Innerhalb des Containers hat er dieselbe UID und GID wie der
4934momentane Nutzer, außer die Befehlszeilenoption @option{--user} wird
4935übergeben (siehe unten).
4776 4936
4777@item --network 4937@item --network
4778@itemx -N 4938@itemx -N
@@ -4805,8 +4965,9 @@ Bei isolierten Umgebungen (»Containern«) wird der Benutzername
4805Eintrag in @file{/etc/passwd} im Container wird also den Namen 4965Eintrag in @file{/etc/passwd} im Container wird also den Namen
4806@var{Benutzer} enthalten und das persönliche Verzeichnis wird den Namen 4966@var{Benutzer} enthalten und das persönliche Verzeichnis wird den Namen
4807@file{/home/BENUTZER} tragen; keine GECOS-Daten über den Nutzer werden in 4967@file{/home/BENUTZER} tragen; keine GECOS-Daten über den Nutzer werden in
4808die Umgebung übernommen. @var{Benutzer} muss auf dem System nicht 4968die Umgebung übernommen. Des Weiteren sind UID und GID innerhalb der
4809existieren. 4969isolierten Umgebung auf 1000 gesetzt. @var{Benutzer} muss auf dem System
4970nicht existieren.
4810 4971
4811Zusätzlich werden alle geteilten oder exponierten Pfade (siehe jeweils 4972Zusätzlich werden alle geteilten oder exponierten Pfade (siehe jeweils
4812@code{--share} und @code{--expose}), deren Ziel innerhalb des persönlichen 4973@code{--share} und @code{--expose}), deren Ziel innerhalb des persönlichen
@@ -4857,9 +5018,10 @@ guix environment --container --share=$HOME=/austausch --ad-hoc guile -- guile
4857@end example 5018@end example
4858@end table 5019@end table
4859 5020
4860@command{guix environment} also supports all of the common build options 5021@command{guix environment} unterstützt auch alle gemeinsamen
4861that @command{guix build} supports (@pxref{Gemeinsame Erstellungsoptionen}) as well as 5022Erstellungsoptionen, die von @command{guix build} unterstützt werden (siehe
4862package transformation options (@pxref{Paketumwandlungsoptionen}). 5023@ref{Gemeinsame Erstellungsoptionen}), und die Paketumwandlungsoptionen (siehe
5024@ref{Paketumwandlungsoptionen}).
4863 5025
4864@node Aufruf von guix pack 5026@node Aufruf von guix pack
4865@section @command{guix pack} aufrufen 5027@section @command{guix pack} aufrufen
@@ -4872,7 +5034,7 @@ muss es anders gehen. Hier kommt @command{guix pack} ins Spiel.
4872@quotation Anmerkung 5034@quotation Anmerkung
4873Wenn Sie aber nach einer Möglichkeit suchen, Binärdateien unter Maschinen 5035Wenn Sie aber nach einer Möglichkeit suchen, Binärdateien unter Maschinen
4874auszutauschen, auf denen Guix bereits läuft, sollten Sie einen Blick auf die 5036auszutauschen, auf denen Guix bereits läuft, sollten Sie einen Blick auf die
4875Abschnitte @pxref{Aufruf von guix copy}, @ref{Aufruf von guix publish} und 5037Abschnitte @ref{Aufruf von guix copy}, @ref{Aufruf von guix publish} und
4876@ref{Aufruf von guix archive} werfen. 5038@ref{Aufruf von guix archive} werfen.
4877@end quotation 5039@end quotation
4878 5040
@@ -4904,7 +5066,7 @@ Als Ergebnis erhalten Sie einen Tarball mit einem Verzeichnis
4904resultierende Tarball enthält auch ein @dfn{Profil} mit den drei angegebenen 5066resultierende Tarball enthält auch ein @dfn{Profil} mit den drei angegebenen
4905Paketen; es ist dieselbe Art von Profil, die auch @command{guix package -i} 5067Paketen; es ist dieselbe Art von Profil, die auch @command{guix package -i}
4906erzeugen würde. Mit diesem Mechanismus wird auch der binäre Tarball zur 5068erzeugen würde. Mit diesem Mechanismus wird auch der binäre Tarball zur
4907Installation von Guix erzeugt (@pxref{Aus Binärdatei installieren}). 5069Installation von Guix erzeugt (siehe @ref{Aus Binärdatei installieren}).
4908 5070
4909Benutzer des Bündels müssten dann aber zum Beispiel 5071Benutzer des Bündels müssten dann aber zum Beispiel
4910@file{/gnu/store/@dots{}-profile/bin/guile} eintippen, um Guile auszuführen, 5072@file{/gnu/store/@dots{}-profile/bin/guile} eintippen, um Guile auszuführen,
@@ -4979,7 +5141,7 @@ alle angegebenen Binärdateien und symbolischen Verknüpfungen enthält.
4979@item docker 5141@item docker
4980Generiert einen Tarball gemäß der 5142Generiert einen Tarball gemäß der
4981@uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, 5143@uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md,
4982Docker Image Specification}, d.h. der Spezifikation für Docker-Abbilder. 5144Docker Image Specification}, d.h.@: der Spezifikation für Docker-Abbilder.
4983 5145
4984@item squashfs 5146@item squashfs
4985Generiert ein SquashFS-Abbild, das alle angegebenen Binärdateien und 5147Generiert ein SquashFS-Abbild, das alle angegebenen Binärdateien und
@@ -4987,20 +5149,33 @@ symbolischen Verknüpfungen enthält, sowie leere Einhängepunkte für virtuelle
4987Dateisysteme wie procfs. 5149Dateisysteme wie procfs.
4988@end table 5150@end table
4989 5151
5152@cindex pfad-agnostische Binärdateien
4990@item --relocatable 5153@item --relocatable
4991@itemx -R 5154@itemx -R
4992Erzeugt @dfn{pfad-agnostische Binärdateien} — also »portable« Binärdateien, 5155Erzeugt @dfn{pfad-agnostische Binärdateien} — also »portable« Binärdateien,
4993die an einer beliebigen Stelle in der Dateisystemhierarchie platziert und 5156die an einer beliebigen Stelle in der Dateisystemhierarchie platziert und
4994von dort ausgeführt werden können. Zum Beispiel können Sie ein Bash 5157von dort ausgeführt werden können.
4995enthalltendes Bündel erzeugen mit: 5158
5159Wenn diese Befehlszeilenoption einmal übergeben wird, funktionieren die
5160erzeugten Binärdateien nur dann, wenn @dfn{Benutzernamensräume} des
5161Linux-Kernels unterstützt werden. Wenn sie @emph{zweimal}@footnote{Es gibt
5162einen Trick, wie Sie sich das merken können: @code{-RR}, womit
5163PRoot-Unterstützung hinzugefügt wird, kann man sich als Abkürzung für
5164»Rundum Relocatable« oder englisch »Really Relocatable« vorstellen. Ist das
5165nicht prima?} übergeben wird, laufen die Binärdateien notfalls mit PRoot,
5166wenn keine Benutzernamensräume zur Verfügung stehen, funktionieren also
5167ziemlich überall — siehe unten für die Auswirkungen.
5168
5169Zum Beispiel können Sie ein Bash enthalltendes Bündel erzeugen mit:
4996 5170
4997@example 5171@example
4998guix pack -R -S /meine-bin=bin bash 5172guix pack -RR -S /mybin=bin bash
4999@end example 5173@end example
5000 5174
5001@noindent 5175@noindent
5002...@: you can copy that pack to a machine that lacks Guix, and from your 5176…@: Sie können dieses dann auf eine Maschine ohne Guix kopieren und als
5003home directory as a normal user, run: 5177normaler Nutzer aus Ihrem Persönlichen Verzeichnis (auch »Home«-Verzeichnis
5178genannt) dann ausführen mit:
5004 5179
5005@example 5180@example
5006tar xf pack.tar.gz 5181tar xf pack.tar.gz
@@ -5014,22 +5189,35 @@ alle Abhängigkeiten von @code{bash}, obwohl auf der Maschine überhaupt kein
5014Verzeichnis @file{/gnu/store} existiert! Dies ist vermutlich die einfachste 5189Verzeichnis @file{/gnu/store} existiert! Dies ist vermutlich die einfachste
5015Art, mit Guix erstellte Software für eine Maschine ohne Guix auszuliefern. 5190Art, mit Guix erstellte Software für eine Maschine ohne Guix auszuliefern.
5016 5191
5017Die Sache hat nur einen Haken: Diese Technik funktioniert nur mit 5192@quotation Anmerkung
5018@dfn{Benutzernamensräumen} (englisch @dfn{User namespaces}), einer 5193Wenn die Voreinstellung verwendet wird, funktionieren pfad-agnostische
5019Funktionalität des Linux-Kernels, mit der Benutzer ohne besondere 5194Binärdateien nur mit @dfn{Benutzernamensräumen} (englisch @dfn{User
5020Berechtigungen Dateisysteme einbinden (englisch »mount«) oder die Wurzel des 5195namespaces}), einer Funktionalität des Linux-Kernels, mit der Benutzer ohne
5021Dateisystems wechseln können (»change root«, kurz »chroot«). Alte Versionen 5196besondere Berechtigungen Dateisysteme einbinden (englisch »mount«) oder die
5022von Linux haben es noch nicht unterstützt und manche Distributionen von 5197Wurzel des Dateisystems wechseln können (»change root«, kurz »chroot«). Alte
5023GNU/Linux schalten diese Funktionalität ab; auf diesen Systemen @emph{werden 5198Versionen von Linux haben diese Funktionalität noch nicht unterstützt und
5024Programme aus dem Bündel nicht funktionieren}, solange sie nicht in das 5199manche Distributionen von GNU/Linux schalten sie ab.
5025echte Wurzeldateisystem entpackt werden. 5200
5201Um pfad-agnostische Binärdateien zu erzeugen, die auch ohne
5202Benutzernamensräume funktionieren, können Sie die Befehlszeilenoption
5203@option{--relocatable} oder @option{-R} @emph{zweimal} angeben. In diesem
5204Fall werden die Binärdateien zuerst überprüfen, ob Benutzernamensräume
5205unterstützt werden, und sonst notfalls PRoot benutzen, um das Programm
5206auszuführen, wenn Benutzernamensräume nicht unterstützt werden.
5207
5208Das Programm @uref{https://proot-me.github.io/, PRoot} bietet auch
5209Unterstützung für Dateisystemvirtualisierung, indem der Systemaufruf
5210@code{ptrace} auf das laufende Programm angewendet wird. Dieser Ansatz
5211funktioniert auch ohne besondere Kernel-Unterstützung, aber das Programm
5212braucht mehr Zeit, um selbst Systemaufrufe durchzuführen.
5213@end quotation
5026 5214
5027@item --expression=@var{Ausdruck} 5215@item --expression=@var{Ausdruck}
5028@itemx -e @var{Ausdruck} 5216@itemx -e @var{Ausdruck}
5029Als Paket benutzen, wozu der @var{Ausdruck} ausgewertet wird. 5217Als Paket benutzen, wozu der @var{Ausdruck} ausgewertet wird.
5030 5218
5031Der Zweck hiervon ist derselbe wie bei der gleichnamigen Befehlszeilenoption 5219Der Zweck hiervon ist derselbe wie bei der gleichnamigen Befehlszeilenoption
5032in @command{guix build} (@pxref{Zusätzliche Erstellungsoptionen, 5220in @command{guix build} (siehe @ref{Zusätzliche Erstellungsoptionen,
5033@code{--expression} in @command{guix build}}). 5221@code{--expression} in @command{guix build}}).
5034 5222
5035@item --manifest=@var{Datei} 5223@item --manifest=@var{Datei}
@@ -5038,25 +5226,25 @@ Die Pakete benutzen, die im Manifest-Objekt aufgeführt sind, das vom
5038Scheme-Code in der angegebenen @var{Datei} geliefert wird. 5226Scheme-Code in der angegebenen @var{Datei} geliefert wird.
5039 5227
5040Dies hat einen ähnlichen Zweck wie die gleichnamige Befehlszeilenoption in 5228Dies hat einen ähnlichen Zweck wie die gleichnamige Befehlszeilenoption in
5041@command{guix package} (@pxref{profile-manifest, @option{--manifest}}) und 5229@command{guix package} (siehe @ref{profile-manifest, @option{--manifest}})
5042benutzt dieselben Regeln für Manifest-Dateien. Damit können Sie eine Reihe 5230und benutzt dieselben Regeln für Manifest-Dateien. Damit können Sie eine
5043von Paketen einmal definieren und dann sowohl zum Erzeugen von Profilesn als 5231Reihe von Paketen einmal definieren und dann sowohl zum Erzeugen von
5044auch zum Erzeugen von Archiven benutzen, letztere für Maschinen, auf denen 5232Profilesn als auch zum Erzeugen von Archiven benutzen, letztere für
5045Guix nicht installiert ist. Beachten Sie, dass Sie @emph{entweder} eine 5233Maschinen, auf denen Guix nicht installiert ist. Beachten Sie, dass Sie
5046Manifest-Datei @emph{oder} eine Liste von Paketen angeben können, aber nicht 5234@emph{entweder} eine Manifest-Datei @emph{oder} eine Liste von Paketen
5047beides. 5235angeben können, aber nicht beides.
5048 5236
5049@item --system=@var{System} 5237@item --system=@var{System}
5050@itemx -s @var{System} 5238@itemx -s @var{System}
5051Versuchen, für die angegebene Art von @var{System} geeignete Binärdateien zu 5239Versuchen, für die angegebene Art von @var{System} geeignete Binärdateien zu
5052erstellen — z.B. @code{i686-linux} — statt für die Art von System, das die 5240erstellen — z.B.@: @code{i686-linux} — statt für die Art von System, das die
5053Erstellung durchführt. 5241Erstellung durchführt.
5054 5242
5055@item --target=@var{Tripel} 5243@item --target=@var{Tripel}
5056@cindex Cross-Kompilieren 5244@cindex Cross-Kompilieren
5057Lässt für das angegebene @var{Tripel} cross-erstellen, dieses muss ein 5245Lässt für das angegebene @var{Tripel} cross-erstellen, dieses muss ein
5058gültiges GNU-Tripel wie z.B. @code{"mips64el-linux-gnu"} sein 5246gültiges GNU-Tripel wie z.B.@: @code{"mips64el-linux-gnu"} sein (siehe
5059(@pxref{Specifying target triplets, GNU configuration triplets,, autoconf, 5247@ref{Specifying target triplets, GNU configuration triplets,, autoconf,
5060Autoconf}). 5248Autoconf}).
5061 5249
5062@item --compression=@var{Werkzeug} 5250@item --compression=@var{Werkzeug}
@@ -5080,21 +5268,23 @@ Verknüpfung @file{/opt/gnu/bin} auf das Unterverzeichnis @file{bin} im
5080Profil erzeugt. 5268Profil erzeugt.
5081 5269
5082@item --save-provenance 5270@item --save-provenance
5083Save provenance information for the packages passed on the command line. 5271Provenienzinformationen für die auf der Befehlszeile übergebenen Pakete
5084Provenance information includes the URL and commit of the channels in use 5272speichern. Zu den Provenienzinformationen gehören die URL und der Commit
5085(@pxref{Kanäle}). 5273jedes benutzten Kanals (siehe @ref{Kanäle}).
5086 5274
5087Provenance information is saved in the 5275Provenienzinformationen werden in der Datei
5088@file{/gnu/store/@dots{}-profile/manifest} file in the pack, along with the 5276@file{/gnu/store/@dots{}-profile/manifest} im Bündel zusammen mit den
5089usual package metadata---the name and version of each package, their 5277üblichen Paketmetadaten abgespeichert — also Name und Version jedes Pakets,
5090propagated inputs, and so on. It is useful information to the recipient of 5278welche Eingaben dabei propagiert werden und so weiter. Die Informationen
5091the pack, who then knows how the pack was (supposedly) obtained. 5279nützen den Empfängern des Bündels, weil sie dann wissen, woraus das Bündel
5092 5280(angeblich) besteht.
5093This option is not enabled by default because, like timestamps, provenance 5281
5094information contributes nothing to the build process. In other words, there 5282Der Vorgabe nach wird diese Befehlszeilenoption @emph{nicht} verwendet, weil
5095is an infinity of channel URLs and commit IDs that can lead to the same 5283Provenienzinformationen genau wie Zeitstempel nichts zum Erstellungsprozess
5096pack. Recording such ``silent'' metadata in the output thus potentially 5284beitragen. Mit anderen Worten gibt es unendlich viele Kanal-URLs und
5097breaks the source-to-binary bitwise reproducibility property. 5285Commit-IDs, aus denen dasselbe Bündel stammen könnte. Wenn solche »stillen«
5286Metadaten Teil des Ausgabe sind, dann wird also die bitweise
5287Reproduzierbarkeit von Quellcode zu Binärdateien eingeschränkt.
5098 5288
5099@item --localstatedir 5289@item --localstatedir
5100@itemx --profile-name=@var{Name} 5290@itemx --profile-name=@var{Name}
@@ -5104,15 +5294,15 @@ aufnehmen, speziell auch das Profil
5104@var{Name} ist @code{guix-profile}, was @file{~root/.guix-profile} 5294@var{Name} ist @code{guix-profile}, was @file{~root/.guix-profile}
5105entspricht. 5295entspricht.
5106 5296
5107@file{/var/guix} enthält die Store-Datenbank (@pxref{Der Store}) sowie die 5297@file{/var/guix} enthält die Store-Datenbank (siehe @ref{Der Store}) sowie
5108Müllsammlerwurzeln (@pxref{Aufruf von guix gc}). Es ins Bündel aufzunehmen, 5298die Müllsammlerwurzeln (siehe @ref{Aufruf von guix gc}). Es ins Bündel
5109bedeutet, dass der enthaltene Store »vollständig« ist und von Guix verwaltet 5299aufzunehmen, bedeutet, dass der enthaltene Store »vollständig« ist und von
5110werden kann, andernfalls wäre der Store im Bündel »tot« und nach dem 5300Guix verwaltet werden kann, andernfalls wäre der Store im Bündel »tot« und
5111Auspacken des Bündels könnte Guix keine Objekte mehr dort hinzufügen oder 5301nach dem Auspacken des Bündels könnte Guix keine Objekte mehr dort
5112entfernen. 5302hinzufügen oder entfernen.
5113 5303
5114Ein Anwendungsfall hierfür ist der eigenständige, alle Komponenten 5304Ein Anwendungsfall hierfür ist der eigenständige, alle Komponenten
5115umfassende binäre Tarball von Guix (@pxref{Aus Binärdatei installieren}). 5305umfassende binäre Tarball von Guix (siehe @ref{Aus Binärdatei installieren}).
5116 5306
5117@item --bootstrap 5307@item --bootstrap
5118Mit den Bootstrap-Binärdateien das Bündel erstellen. Diese Option ist nur 5308Mit den Bootstrap-Binärdateien das Bündel erstellen. Diese Option ist nur
@@ -5120,8 +5310,8 @@ für Guix-Entwickler nützlich.
5120@end table 5310@end table
5121 5311
5122Außerdem unterstützt @command{guix pack} alle gemeinsamen 5312Außerdem unterstützt @command{guix pack} alle gemeinsamen
5123Erstellungsoptionen (@pxref{Gemeinsame Erstellungsoptionen}) und alle 5313Erstellungsoptionen (siehe @ref{Gemeinsame Erstellungsoptionen}) und alle
5124Paketumwandlungsoptionen (@pxref{Paketumwandlungsoptionen}). 5314Paketumwandlungsoptionen (siehe @ref{Paketumwandlungsoptionen}).
5125 5315
5126 5316
5127@c ********************************************************************* 5317@c *********************************************************************
@@ -5172,16 +5362,17 @@ Dieses Kapitel beschreibt der Reihe nach all diese Programmierschnittstellen
5172@node Paketmodule 5362@node Paketmodule
5173@section Paketmodule 5363@section Paketmodule
5174 5364
5175From a programming viewpoint, the package definitions of the GNU 5365Aus Programmierersicht werden die Paketdefinitionen der GNU-Distribution als
5176distribution are provided by Guile modules in the @code{(gnu packages 5366Guile-Module in Namensräumen wie @code{(gnu packages @dots{})} sichtbar
5177@dots{})} name space@footnote{Note that packages under the @code{(gnu 5367gemacht@footnote{Beachten Sie, dass Pakete unter dem Modulnamensraum
5178packages @dots{})} module name space are not necessarily ``GNU packages''. 5368@code{(gnu packages @dots{})} nicht notwendigerweise auch »GNU-Pakete«
5179This module naming scheme follows the usual Guile module naming convention: 5369sind. Dieses Schema für die Benennung von Modulen folgt lediglich den
5180@code{gnu} means that these modules are distributed as part of the GNU 5370üblichen Guile-Konventionen: @code{gnu} bedeutet, dass die Module als Teil
5181system, and @code{packages} identifies modules that define packages.} 5371des GNU-Systems ausgeliefert werden, und @code{packages} gruppiert Module
5182(@pxref{Module, Guile modules,, guile, GNU Guile Reference Manual}). For 5372mit Paketdefinitionen.} (siehe @ref{Module, Guile modules,, guile, GNU
5183instance, the @code{(gnu packages emacs)} module exports a variable named 5373Guile Reference Manual}). Zum Beispiel exportiert das Modul @code{(gnu
5184@code{emacs}, which is bound to a @code{<package>} object (@pxref{Pakete definieren}). 5374packages emacs)} eine Variable namens @code{emacs}, die an ein
5375@code{<package>}-Objekt gebunden ist (@pxref{Pakete definieren}).
5185 5376
5186The @code{(gnu packages @dots{})} module name space is automatically scanned 5377The @code{(gnu packages @dots{})} module name space is automatically scanned
5187for packages by the command-line tools. For instance, when running 5378for packages by the command-line tools. For instance, when running
@@ -5269,28 +5460,28 @@ GNU Hello so aus:
5269Auch ohne ein Experte in Scheme zu sein, könnten Leser erraten haben, was 5460Auch ohne ein Experte in Scheme zu sein, könnten Leser erraten haben, was
5270die verschiedenen Felder dabei bedeuten. Dieser Ausdruck bindet die Variable 5461die verschiedenen Felder dabei bedeuten. Dieser Ausdruck bindet die Variable
5271@code{hello} an ein @code{<package>}-Objekt, was an sich nur ein Verbund 5462@code{hello} an ein @code{<package>}-Objekt, was an sich nur ein Verbund
5272(Record) ist (@pxref{SRFI-9, Scheme records,, guile, GNU Guile Reference 5463(Record) ist (siehe @ref{SRFI-9, Scheme records,, guile, GNU Guile Reference
5273Manual}). Die Felder dieses Paket-Objekts lassen sich mit den Prozeduren aus 5464Manual}). Die Felder dieses Paket-Objekts lassen sich mit den Prozeduren aus
5274dem Modul @code{(guix packages)} auslesen, zum Beispiel liefert 5465dem Modul @code{(guix packages)} auslesen, zum Beispiel liefert
5275@code{(package-name hello)} — Überraschung! — @code{"hello"}. 5466@code{(package-name hello)} — Überraschung! — @code{"hello"}.
5276 5467
5277Mit etwas Glück können Sie die Definition vielleicht teilweise oder sogar 5468Mit etwas Glück können Sie die Definition vielleicht teilweise oder sogar
5278ganz aus einer anderen Paketsammlung importieren, indem Sie den Befehl 5469ganz aus einer anderen Paketsammlung importieren, indem Sie den Befehl
5279@code{guix import} verwenden (@pxref{Aufruf von guix import}). 5470@code{guix import} verwenden (siehe @ref{Aufruf von guix import}).
5280 5471
5281In obigem Beispiel wurde @var{hello} in einem eigenen Modul ganz für sich 5472In obigem Beispiel wurde @var{hello} in einem eigenen Modul ganz für sich
5282alleine definiert, und zwar @code{(gnu packages hello)}. Technisch gesehen 5473alleine definiert, und zwar @code{(gnu packages hello)}. Technisch gesehen
5283muss es nicht unbedingt in einem solchen Modul definiert werden, aber es ist 5474muss es nicht unbedingt in einem solchen Modul definiert werden, aber es ist
5284bequem, denn alle Module unter @code{(gnu packages @dots{})} werden 5475bequem, denn alle Module unter @code{(gnu packages @dots{})} werden
5285automatisch von den Befehlszeilenwerkzeugen gefunden (@pxref{Paketmodule}). 5476automatisch von den Befehlszeilenwerkzeugen gefunden (siehe @ref{Paketmodule}).
5286 5477
5287Ein paar Dinge sind noch erwähnenswert in der obigen Paketdefinition: 5478Ein paar Dinge sind noch erwähnenswert in der obigen Paketdefinition:
5288 5479
5289@itemize 5480@itemize
5290@item 5481@item
5291Das @code{source}-Feld für die Quelle des Pakets ist ein 5482Das @code{source}-Feld für die Quelle des Pakets ist ein
5292@code{<origin>}-Objekt, was den Paketursprung angibt (siehe @pxref{»origin«-Referenz}, für eine vollständige Referenz). Hier wird dafür die Methode 5483@code{<origin>}-Objekt, was den Paketursprung angibt (siehe @ref{»origin«-Referenz} für eine vollständige Referenz). Hier wird dafür die Methode
5293@code{url-fetch} aus dem Modul @code{(guix download)} benutzt, d.h. die 5484@code{url-fetch} aus dem Modul @code{(guix download)} benutzt, d.h.@: die
5294Quelle ist eine Datei, die über FTP oder HTTP heruntergeladen werden soll. 5485Quelle ist eine Datei, die über FTP oder HTTP heruntergeladen werden soll.
5295 5486
5296Das Präfix @code{mirror://gnu} lässt @code{url-fetch} einen der 5487Das Präfix @code{mirror://gnu} lässt @code{url-fetch} einen der
@@ -5300,8 +5491,8 @@ Das Feld @code{sha256} legt den erwarteten SHA256-Hashwert der
5300herunterzuladenden Datei fest. Ihn anzugeben ist Pflicht und er ermöglicht 5491herunterzuladenden Datei fest. Ihn anzugeben ist Pflicht und er ermöglicht
5301es Guix, die Integrität der Datei zu überprüfen. Die Form @code{(base32 5492es Guix, die Integrität der Datei zu überprüfen. Die Form @code{(base32
5302@dots{})} geht der base32-Darstellung des Hash-Wertes voraus. Sie finden die 5493@dots{})} geht der base32-Darstellung des Hash-Wertes voraus. Sie finden die
5303base32-Darstellung mit Hilfe der Befehle @code{guix download} 5494base32-Darstellung mit Hilfe der Befehle @code{guix download} (siehe
5304(@pxref{Aufruf von guix download}) und @code{guix hash} (@pxref{Aufruf von guix hash}). 5495@ref{Aufruf von guix download}) und @code{guix hash} (siehe @ref{Aufruf von guix hash}).
5305 5496
5306@cindex Patches 5497@cindex Patches
5307Wenn nötig kann in der @code{origin}-Form auch ein @code{patches}-Feld 5498Wenn nötig kann in der @code{origin}-Form auch ein @code{patches}-Feld
@@ -5312,14 +5503,14 @@ Quellcode zu modifizieren ist.
5312@item 5503@item
5313@cindex GNU-Erstellungssystem 5504@cindex GNU-Erstellungssystem
5314Das Feld @code{build-system} legt fest, mit welcher Prozedur das Paket 5505Das Feld @code{build-system} legt fest, mit welcher Prozedur das Paket
5315erstellt werden soll (@pxref{Erstellungssysteme}). In diesem Beispiel steht 5506erstellt werden soll (siehe @ref{Erstellungssysteme}). In diesem Beispiel steht
5316@var{gnu-build-system} für das wohlbekannte GNU-Erstellungssystem, wo Pakete 5507@var{gnu-build-system} für das wohlbekannte GNU-Erstellungssystem, wo Pakete
5317mit der üblichen Befehlsfolge @code{./configure && make && make check && 5508mit der üblichen Befehlsfolge @code{./configure && make && make check &&
5318make install} konfiguriert, erstellt und installiert werden. 5509make install} konfiguriert, erstellt und installiert werden.
5319 5510
5320@item 5511@item
5321Das Feld @code{arguments} gibt an, welche Optionen dem Erstellungssystem 5512Das Feld @code{arguments} gibt an, welche Optionen dem Erstellungssystem
5322mitgegeben werden sollen (@pxref{Erstellungssysteme}). In diesem Fall 5513mitgegeben werden sollen (siehe @ref{Erstellungssysteme}). In diesem Fall
5323interpretiert @var{gnu-build-system} diese als Auftrag, @file{configure} mit 5514interpretiert @var{gnu-build-system} diese als Auftrag, @file{configure} mit
5324der Befehlszeilenoption @code{--enable-silent-rules} auszuführen. 5515der Befehlszeilenoption @code{--enable-silent-rules} auszuführen.
5325 5516
@@ -5330,24 +5521,24 @@ der Befehlszeilenoption @code{--enable-silent-rules} auszuführen.
5330Was hat es mit diesen einfachen Anführungszeichen (@code{'}) auf sich? Sie 5521Was hat es mit diesen einfachen Anführungszeichen (@code{'}) auf sich? Sie
5331gehören zur Syntax von Scheme und führen eine wörtlich zu interpretierende 5522gehören zur Syntax von Scheme und führen eine wörtlich zu interpretierende
5332Datenlisten ein; dies nennt sich Maskierung oder Quotierung. @code{'} ist 5523Datenlisten ein; dies nennt sich Maskierung oder Quotierung. @code{'} ist
5333synonym mit @code{quote}. @xref{Expression Syntax, quoting,, guile, GNU 5524synonym mit @code{quote}. @ref{Expression Syntax, quoting,, guile, GNU Guile
5334Guile Reference Manual}, enthält weitere Details. Hierbei ist also der Wert 5525Reference Manual} enthält weitere Details. Hierbei ist also der Wert des
5335des @code{arguments}-Feldes eine Liste von Argumenten, die an das 5526@code{arguments}-Feldes eine Liste von Argumenten, die an das
5336Erstellungssystem weitergereicht werden, wie bei @code{apply} (@pxref{Fly 5527Erstellungssystem weitergereicht werden, wie bei @code{apply} (siehe
5337Evaluation, @code{apply},, guile, GNU Guile Reference Manual}). 5528@ref{Fly Evaluation, @code{apply},, guile, GNU Guile Reference Manual}).
5338 5529
5339Ein Doppelkreuz gefolgt von einem Doppelpunkt (@code{#:}) definiert ein 5530Ein Doppelkreuz gefolgt von einem Doppelpunkt (@code{#:}) definiert ein
5340Scheme-@dfn{Schlüsselwort} (@pxref{Keywords,,, guile, GNU Guile Reference 5531Scheme-@dfn{Schlüsselwort} (siehe @ref{Keywords,,, guile, GNU Guile
5341Manual}) und @code{#:configure-flags} ist ein Schlüsselwort, um eine 5532Reference Manual}) und @code{#:configure-flags} ist ein Schlüsselwort, um
5342Befehlszeilenoption an das Erstellungssystem mitzugeben (@pxref{Coding With 5533eine Befehlszeilenoption an das Erstellungssystem mitzugeben (siehe
5343Keywords,,, guile, GNU Guile Reference Manual}). 5534@ref{Coding With Keywords,,, guile, GNU Guile Reference Manual}).
5344 5535
5345@item 5536@item
5346Das Feld @code{inputs} legt Eingaben an den Erstellungsprozess fest — 5537Das Feld @code{inputs} legt Eingaben an den Erstellungsprozess fest — d.h.@:
5347d.h. Abhängigkeiten des Pakets zur Erstellungs- oder Laufzeit. Hier 5538Abhängigkeiten des Pakets zur Erstellungs- oder Laufzeit. Hier definieren
5348definieren wir eine Eingabe namens @code{"gawk"}, deren Wert wir auf den 5539wir eine Eingabe namens @code{"gawk"}, deren Wert wir auf den Wert der
5349Wert der @var{gawk}-Variablen festlegen; @var{gawk} ist auch selbst wiederum 5540@var{gawk}-Variablen festlegen; @var{gawk} ist auch selbst wiederum an ein
5350an ein @code{<package>}-Objekt als Variablenwert gebunden. 5541@code{<package>}-Objekt als Variablenwert gebunden.
5351 5542
5352@cindex Backquote (Quasimaskierung) 5543@cindex Backquote (Quasimaskierung)
5353@findex ` 5544@findex `
@@ -5362,12 +5553,13 @@ Synonym @code{quasiquote} schreiben) können wir eine wörtlich als Daten
5362interpretierte Liste im @code{inputs}-Feld einführen, aber bei dieser 5553interpretierte Liste im @code{inputs}-Feld einführen, aber bei dieser
5363»Quasimaskierung« kann @code{,} (ein Komma, oder dessen Synonym 5554»Quasimaskierung« kann @code{,} (ein Komma, oder dessen Synonym
5364@code{unquote}) benutzt werden, um den ausgewerteten Wert eines Ausdrucks in 5555@code{unquote}) benutzt werden, um den ausgewerteten Wert eines Ausdrucks in
5365diese Liste einzufügen (@pxref{Expression Syntax, unquote,, guile, GNU Guile 5556diese Liste einzufügen (siehe @ref{Expression Syntax, unquote,, guile, GNU
5366Reference Manual}). 5557Guile Reference Manual}).
5367 5558
5368Beachten Sie, dass GCC, Coreutils, Bash und andere essenzielle Werkzeuge 5559Beachten Sie, dass GCC, Coreutils, Bash und andere essenzielle Werkzeuge
5369hier nicht als Eingaben aufgeführt werden müssen. Stattdessen sorgt schon 5560hier nicht als Eingaben aufgeführt werden müssen. Stattdessen sorgt schon
5370@var{gnu-build-system} dafür, dass diese vorhanden sein müssen (@pxref{Erstellungssysteme}). 5561@var{gnu-build-system} dafür, dass diese vorhanden sein müssen (siehe
5562@ref{Erstellungssysteme}).
5371 5563
5372Sämtliche anderen Abhängigkeiten müssen aber im @code{inputs}-Feld 5564Sämtliche anderen Abhängigkeiten müssen aber im @code{inputs}-Feld
5373aufgezählt werden. Jede hier nicht angegebene Abhängigkeit wird während des 5565aufgezählt werden. Jede hier nicht angegebene Abhängigkeit wird während des
@@ -5375,41 +5567,43 @@ Erstellungsprozesses schlicht nicht verfügbar sein, woraus ein
5375Erstellungsfehler resultieren kann. 5567Erstellungsfehler resultieren kann.
5376@end itemize 5568@end itemize
5377 5569
5378Siehe @xref{»package«-Referenz} für eine umfassende Beschreibung aller 5570Siehe @ref{»package«-Referenz} für eine umfassende Beschreibung aller
5379erlaubten Felder. 5571erlaubten Felder.
5380 5572
5381Sobald eine Paketdefinition eingesetzt wurde, können Sie das Paket mit Hilfe 5573Sobald eine Paketdefinition eingesetzt wurde, können Sie das Paket mit Hilfe
5382des Befehlszeilenwerkzeugs @code{guix build} dann auch tatsächlich erstellen 5574des Befehlszeilenwerkzeugs @code{guix build} dann auch tatsächlich erstellen
5383(@pxref{Aufruf von guix build}) und dabei jegliche Erstellungsfehler, auf die 5575(siehe @ref{Aufruf von guix build}) und dabei jegliche Erstellungsfehler, auf
5384Sie stoßen, beseitigen (@pxref{Fehlschläge beim Erstellen untersuchen}). Sie können den 5576die Sie stoßen, beseitigen (siehe @ref{Fehlschläge beim Erstellen untersuchen}). Sie
5385Befehl @command{guix edit} benutzen, um leicht zur Paketdefinition 5577können den Befehl @command{guix edit} benutzen, um leicht zur
5386zurückzuspringen (@pxref{Aufruf von guix edit}). Unter @xref{Paketrichtlinien} finden Sie mehr Informationen darüber, wie Sie Paketdefinitionen 5578Paketdefinition zurückzuspringen (siehe @ref{Aufruf von guix edit}). Unter
5387testen, und unter @ref{Aufruf von guix lint} finden Sie Informationen, wie Sie 5579@ref{Paketrichtlinien} finden Sie mehr Informationen darüber, wie Sie
5388prüfen, ob eine Definition alle Stilkonventionen einhält. 5580Paketdefinitionen testen, und unter @ref{Aufruf von guix lint} finden Sie
5581Informationen, wie Sie prüfen, ob eine Definition alle Stilkonventionen
5582einhält.
5389@vindex GUIX_PACKAGE_PATH 5583@vindex GUIX_PACKAGE_PATH
5390Zuletzt finden Sie unter @pxref{Kanäle} Informationen, wie Sie die 5584Zuletzt finden Sie unter @ref{Kanäle} Informationen, wie Sie die
5391Distribution um Ihre eigenen Pakete in einem »Kanal« erweitern. 5585Distribution um Ihre eigenen Pakete in einem »Kanal« erweitern.
5392 5586
5393Zu all dem sei auch erwähnt, dass Sie das Aktualisieren einer 5587Zu all dem sei auch erwähnt, dass Sie das Aktualisieren einer
5394Paketdefinition auf eine vom Anbieter neu veröffentlichte Version mit dem 5588Paketdefinition auf eine vom Anbieter neu veröffentlichte Version mit dem
5395Befehl @command{guix refresh} teilweise automatisieren können 5589Befehl @command{guix refresh} teilweise automatisieren können (siehe
5396(@pxref{Aufruf von guix refresh}). 5590@ref{Aufruf von guix refresh}).
5397 5591
5398Hinter den Kulissen wird die einem @code{<package>}-Objekt entsprechende 5592Hinter den Kulissen wird die einem @code{<package>}-Objekt entsprechende
5399Ableitung zuerst durch @code{package-derivation} berechnet. Diese Ableitung 5593Ableitung zuerst durch @code{package-derivation} berechnet. Diese Ableitung
5400wird in der @code{.drv}-Datei unter @file{/gnu/store} gespeichert. Die von 5594wird in der @code{.drv}-Datei unter @file{/gnu/store} gespeichert. Die von
5401ihr vorgeschriebenen Erstellungsaktionen können dann durch die Prozedur 5595ihr vorgeschriebenen Erstellungsaktionen können dann durch die Prozedur
5402@code{build-derivations} umgesetzt werden (@pxref{Der Store}). 5596@code{build-derivations} umgesetzt werden (siehe @ref{Der Store}).
5403 5597
5404@deffn {Scheme-Prozedur} package-derivation @var{Store} @var{Paket} [@var{System}] 5598@deffn {Scheme-Prozedur} package-derivation @var{Store} @var{Paket} [@var{System}]
5405Das @code{<derivation>}-Objekt zum @var{Paket} für das angegebene 5599Das @code{<derivation>}-Objekt zum @var{Paket} für das angegebene
5406@var{System} liefern (@pxref{Ableitungen}). 5600@var{System} liefern (siehe @ref{Ableitungen}).
5407 5601
5408Als @var{Paket} muss ein gültiges @code{<package>}-Objekt angegeben werden 5602Als @var{Paket} muss ein gültiges @code{<package>}-Objekt angegeben werden
5409und das @var{System} muss eine Zeichenkette sein, die das Zielsystem angibt 5603und das @var{System} muss eine Zeichenkette sein, die das Zielsystem angibt
5410— z.B. @code{"x86_64-linux"} für ein auf x86_64 laufendes Linux-basiertes 5604— z.B.@: @code{"x86_64-linux"} für ein auf x86_64 laufendes, Linux-basiertes
5411GNU-System. @var{Store} muss eine Verbindung zum Daemon sein, der die 5605GNU-System. @var{Store} muss eine Verbindung zum Daemon sein, der die
5412Operationen auf dem Store durchführt (@pxref{Der Store}). 5606Operationen auf dem Store durchführt (siehe @ref{Der Store}).
5413@end deffn 5607@end deffn
5414 5608
5415@noindent 5609@noindent
@@ -5423,8 +5617,8 @@ ein anderes System cross-erstellt.
5423@var{System} aus für das @var{Ziel}-System. 5617@var{System} aus für das @var{Ziel}-System.
5424 5618
5425Als @var{Ziel} muss ein gültiges GNU-Tripel angegeben werden, was die 5619Als @var{Ziel} muss ein gültiges GNU-Tripel angegeben werden, was die
5426Ziel-Hardware und das zugehörige Betriebssystem beschreibt, wie 5620Ziel-Hardware und das zugehörige Betriebssystem beschreibt, wie z.B.@:
5427z.B. @code{"mips64el-linux-gnu"} (@pxref{Configuration Names, GNU 5621@code{"mips64el-linux-gnu"} (siehe @ref{Configuration Names, GNU
5428configuration triplets,, configure, GNU Configure and Build System}). 5622configuration triplets,, configure, GNU Configure and Build System}).
5429@end deffn 5623@end deffn
5430 5624
@@ -5466,8 +5660,31 @@ Betrachten Sie dieses Beispiel:
5466Hier definieren wir zuerst eine Umschreibeprozedur, die @var{openssl} durch 5660Hier definieren wir zuerst eine Umschreibeprozedur, die @var{openssl} durch
5467@var{libressl} ersetzt. Dann definieren wir damit eine @dfn{Variante} des 5661@var{libressl} ersetzt. Dann definieren wir damit eine @dfn{Variante} des
5468@var{git}-Pakets, die @var{libressl} statt @var{openssl} benutzt. Das ist 5662@var{git}-Pakets, die @var{libressl} statt @var{openssl} benutzt. Das ist
5469genau, was auch die Befehlszeilenoption @option{--with-input} tut 5663genau, was auch die Befehlszeilenoption @option{--with-input} tut (siehe
5470(@pxref{Paketumwandlungsoptionen, @option{--with-input}}). 5664@ref{Paketumwandlungsoptionen, @option{--with-input}}).
5665
5666The following variant of @code{package-input-rewriting} can match packages
5667to be replaced by name rather than by identity.
5668
5669@deffn {Scheme-Prozedur} package-input-rewriting/spec @var{Ersetzungen}
5670Return a procedure that, given a package, applies the given
5671@var{replacements} to all the package graph (excluding implicit inputs).
5672@var{replacements} is a list of spec/procedures pair; each spec is a package
5673specification such as @code{"gcc"} or @code{"guile@@2"}, and each procedure
5674takes a matching package and returns a replacement for that package.
5675@end deffn
5676
5677The example above could be rewritten this way:
5678
5679@example
5680(define libressl-statt-openssl
5681 ;; Rekursiv alle Pakete namens "openssl" durch LibreSSL ersetzen.
5682 (package-input-rewriting/spec `(("openssl" . ,(const libressl)))))
5683@end example
5684
5685The key difference here is that, this time, packages are matched by spec and
5686not by identity. In other words, any package in the graph that is called
5687@code{openssl} will be replaced.
5471 5688
5472Eine allgemeiner anwendbare Prozedur, um den Abhängigkeitsgraphen eines 5689Eine allgemeiner anwendbare Prozedur, um den Abhängigkeitsgraphen eines
5473Pakets umzuschreiben, ist @code{package-mapping}. Sie unterstützt beliebige 5690Pakets umzuschreiben, ist @code{package-mapping}. Sie unterstützt beliebige
@@ -5491,7 +5708,7 @@ findet kein rekursiver Abstieg in dessen Abhängigkeiten statt.
5491@subsection @code{package}-Referenz 5708@subsection @code{package}-Referenz
5492 5709
5493Dieser Abschnitt fasst alle in @code{package}-Deklarationen zur Verfügung 5710Dieser Abschnitt fasst alle in @code{package}-Deklarationen zur Verfügung
5494stehenden Optionen zusammen (@pxref{Pakete definieren}). 5711stehenden Optionen zusammen (siehe @ref{Pakete definieren}).
5495 5712
5496@deftp {Datentyp} package 5713@deftp {Datentyp} package
5497Dieser Datentyp steht für ein Paketrezept. 5714Dieser Datentyp steht für ein Paketrezept.
@@ -5506,13 +5723,14 @@ Die Version des Pakets als Zeichenkette.
5506@item @code{source} 5723@item @code{source}
5507Ein Objekt, das beschreibt, wie der Quellcode des Pakets bezogen werden 5724Ein Objekt, das beschreibt, wie der Quellcode des Pakets bezogen werden
5508soll. Meistens ist es ein @code{origin}-Objekt, welches für eine aus dem 5725soll. Meistens ist es ein @code{origin}-Objekt, welches für eine aus dem
5509Internet heruntergeladene Datei steht (@pxref{»origin«-Referenz}). Es kann 5726Internet heruntergeladene Datei steht (siehe @ref{»origin«-Referenz}). Es
5510aber auch ein beliebiges anderes »dateiähnliches« Objekt sein, wie z.B. ein 5727kann aber auch ein beliebiges anderes »dateiähnliches« Objekt sein, wie
5511@code{local-file}, was eine Datei im lokalen Dateisystem bezeichnet 5728z.B.@: ein @code{local-file}, was eine Datei im lokalen Dateisystem
5512(@pxref{G-Ausdrücke, @code{local-file}}). 5729bezeichnet (siehe @ref{G-Ausdrücke, @code{local-file}}).
5513 5730
5514@item @code{build-system} 5731@item @code{build-system}
5515Das Erstellungssystem, mit dem das Paket erstellt werden soll (@pxref{Erstellungssysteme}). 5732Das Erstellungssystem, mit dem das Paket erstellt werden soll (siehe
5733@ref{Erstellungssysteme}).
5516 5734
5517@item @code{arguments} (Vorgabe: @code{'()}) 5735@item @code{arguments} (Vorgabe: @code{'()})
5518Die Argumente, die an das Erstellungssystem übergeben werden sollen. Dies 5736Die Argumente, die an das Erstellungssystem übergeben werden sollen. Dies
@@ -5528,7 +5746,7 @@ Bezeichnung für die Eingabe (als Zeichenkette) als erstes Element, dann ein
5528»package«-, »origin«- oder »derivation«-Objekt (Paket, Ursprung oder 5746»package«-, »origin«- oder »derivation«-Objekt (Paket, Ursprung oder
5529Ableitung) als zweites Element und optional die Benennung der davon zu 5747Ableitung) als zweites Element und optional die Benennung der davon zu
5530benutzenden Ausgabe umfasst; letztere hat als Vorgabewert @code{"out"} 5748benutzenden Ausgabe umfasst; letztere hat als Vorgabewert @code{"out"}
5531(siehe @pxref{Pakete mit mehreren Ausgaben.} für mehr Informationen zu 5749(siehe @ref{Pakete mit mehreren Ausgaben.} für mehr Informationen zu
5532Paketausgaben). Im folgenden Beispiel etwa werden drei Eingaben festgelegt: 5750Paketausgaben). Im folgenden Beispiel etwa werden drei Eingaben festgelegt:
5533 5751
5534@example 5752@example
@@ -5549,13 +5767,13 @@ der erstellenden Maschine (@emph{build}) erstellt.
5549der Erstellung gebraucht werden, aber nicht zur Laufzeit des Programms 5767der Erstellung gebraucht werden, aber nicht zur Laufzeit des Programms
5550gebraucht werden. Beispiele sind Autoconf, Automake, pkg-config, Gettext 5768gebraucht werden. Beispiele sind Autoconf, Automake, pkg-config, Gettext
5551oder Bison. @command{guix lint} kann melden, ob wahrscheinlich Fehler in der 5769oder Bison. @command{guix lint} kann melden, ob wahrscheinlich Fehler in der
5552Auflistung sind (@pxref{Aufruf von guix lint}). 5770Auflistung sind (siehe @ref{Aufruf von guix lint}).
5553 5771
5554@anchor{package-propagated-inputs} 5772@anchor{package-propagated-inputs}
5555Schließlich ist @code{propagated-inputs} ähnlich wie @code{inputs}, aber die 5773Schließlich ist @code{propagated-inputs} ähnlich wie @code{inputs}, aber die
5556angegebenen Pakete werden automatisch mit ins Profil installiert, wenn das 5774angegebenen Pakete werden automatisch mit ins Profil installiert, wenn das
5557Paket installiert wird, zu dem sie gehören (siehe 5775Paket installiert wird, zu dem sie gehören (siehe
5558@pxref{package-cmd-propagated-inputs, @command{guix package}}, für 5776@ref{package-cmd-propagated-inputs, @command{guix package}} für
5559Informationen darüber, wie @command{guix package} mit propagierten Eingaben 5777Informationen darüber, wie @command{guix package} mit propagierten Eingaben
5560umgeht). 5778umgeht).
5561 5779
@@ -5572,13 +5790,9 @@ Bibliotheken zur Laufzeit den von ihnen benötigten Code finden können,
5572müssen deren Laufzeit-Abhängigkeiten in @code{propagated-inputs} statt in 5790müssen deren Laufzeit-Abhängigkeiten in @code{propagated-inputs} statt in
5573@code{inputs} aufgeführt werden. 5791@code{inputs} aufgeführt werden.
5574 5792
5575@item @code{self-native-input?} (Vorgabe: @code{#f})
5576Dieses boolesche Feld gibt an, ob das Paket sich selbst als eine native
5577Eingabe beim Cross-Kompilieren braucht.
5578
5579@item @code{outputs} (Vorgabe: @code{'("out")}) 5793@item @code{outputs} (Vorgabe: @code{'("out")})
5580Die Liste der Benennungen der Ausgaben des Pakets. Der Abschnitt 5794Die Liste der Benennungen der Ausgaben des Pakets. Der Abschnitt
5581@xref{Pakete mit mehreren Ausgaben.} beschreibt übliche Nutzungen 5795@ref{Pakete mit mehreren Ausgaben.} beschreibt übliche Nutzungen
5582zusätzlicher Ausgaben. 5796zusätzlicher Ausgaben.
5583 5797
5584@item @code{native-search-paths} (Vorgabe: @code{'()}) 5798@item @code{native-search-paths} (Vorgabe: @code{'()})
@@ -5590,7 +5804,7 @@ beschreiben.
5590@item @code{replacement} (Vorgabe: @code{#f}) 5804@item @code{replacement} (Vorgabe: @code{#f})
5591Dies muss entweder @code{#f} oder ein package-Objekt sein, das als Ersatz 5805Dies muss entweder @code{#f} oder ein package-Objekt sein, das als Ersatz
5592(@dfn{replacement}) dieses Pakets benutzt werden soll. Im Abschnitt 5806(@dfn{replacement}) dieses Pakets benutzt werden soll. Im Abschnitt
5593@xref{Sicherheitsaktualisierungen, grafts}, wird dies erklärt. 5807@ref{Sicherheitsaktualisierungen, grafts} wird dies erklärt.
5594 5808
5595@item @code{synopsis} 5809@item @code{synopsis}
5596Eine einzeilige Beschreibung des Pakets. 5810Eine einzeilige Beschreibung des Pakets.
@@ -5621,12 +5835,33 @@ dieses Feld nicht automatisch berichtigt wird.
5621@end table 5835@end table
5622@end deftp 5836@end deftp
5623 5837
5838@deffn {Scheme Syntax} this-package
5839When used in the @emph{lexical scope} of a package field definition, this
5840identifier resolves to the package being defined.
5841
5842The example below shows how to add a package as a native input of itself
5843when cross-compiling:
5844
5845@example
5846(package
5847 (name "guile")
5848 ;; ...
5849
5850 ;; When cross-compiled, Guile, for example, depends on
5851 ;; a native version of itself. Add it here.
5852 (native-inputs (if (%current-target-system)
5853 `(("self" ,this-package))
5854 '())))
5855@end example
5856
5857It is an error to refer to @code{this-package} outside a package definition.
5858@end deffn
5624 5859
5625@node »origin«-Referenz 5860@node »origin«-Referenz
5626@subsection @code{origin}-Referenz 5861@subsection @code{origin}-Referenz
5627 5862
5628Dieser Abschnitt fasst alle Optionen zusammen, die in 5863Dieser Abschnitt fasst alle Optionen zusammen, die in
5629@code{origin}-Deklarationen zur Verfügung stehen (@pxref{Pakete definieren}). 5864@code{origin}-Deklarationen zur Verfügung stehen (siehe @ref{Pakete definieren}).
5630 5865
5631@deftp {Datentyp} origin 5866@deftp {Datentyp} origin
5632Mit diesem Datentyp wird ein Ursprung, von dem Quellcode geladen werden 5867Mit diesem Datentyp wird ein Ursprung, von dem Quellcode geladen werden
@@ -5643,7 +5878,7 @@ eine Liste solcher URLs.
5643@item @code{method} 5878@item @code{method}
5644Eine Prozedur, die die URI verwertet. 5879Eine Prozedur, die die URI verwertet.
5645 5880
5646Beispiele sind unter Anderem: 5881Beispiele sind unter anderem:
5647 5882
5648@table @asis 5883@table @asis
5649@item @var{url-fetch} aus @code{(guix download)} 5884@item @var{url-fetch} aus @code{(guix download)}
@@ -5669,8 +5904,8 @@ Ein Bytevektor, der den SHA-256-Hash der Quelldateien
5669enthält. Typischerweise wird hier mit der @code{base32}-Form der Bytevektor 5904enthält. Typischerweise wird hier mit der @code{base32}-Form der Bytevektor
5670aus einer Base-32-Zeichenkette generiert. 5905aus einer Base-32-Zeichenkette generiert.
5671 5906
5672Diese Informationen liefert Ihnen der Befehl @code{guix download} 5907Diese Informationen liefert Ihnen der Befehl @code{guix download} (siehe
5673(@pxref{Aufruf von guix download}) oder @code{guix hash} (@pxref{Aufruf von guix hash}). 5908@ref{Aufruf von guix download}) oder @code{guix hash} (siehe @ref{Aufruf von guix hash}).
5674 5909
5675@item @code{file-name} (Vorgabe: @code{#f}) 5910@item @code{file-name} (Vorgabe: @code{#f})
5676Der Dateiname, unter dem der Quellcode abgespeichert werden sollte. Wenn er 5911Der Dateiname, unter dem der Quellcode abgespeichert werden sollte. Wenn er
@@ -5681,8 +5916,8 @@ empfiehlt es sich, den Dateinamen ausdrücklich anzugeben, weil dann keine
5681sprechende Benennung automatisch gefunden werden kann. 5916sprechende Benennung automatisch gefunden werden kann.
5682 5917
5683@item @code{patches} (Vorgabe: @code{'()}) 5918@item @code{patches} (Vorgabe: @code{'()})
5684Eine Liste von Dateinamen, Ursprüngen oder dateiähnlichen Objekten 5919Eine Liste von Dateinamen, Ursprüngen oder dateiähnlichen Objekten (siehe
5685(@pxref{G-Ausdrücke, file-like objects}) mit Patches, welche auf den 5920@ref{G-Ausdrücke, file-like objects}) mit Patches, welche auf den
5686Quellcode anzuwenden sind. 5921Quellcode anzuwenden sind.
5687 5922
5688Die Liste von Patches kann nicht von Parametern der Erstellung 5923Die Liste von Patches kann nicht von Parametern der Erstellung
@@ -5690,8 +5925,8 @@ abhängen. Insbesondere kann sie nicht vom Wert von @code{%current-system}
5690oder @code{%current-target-system} abḧängen. 5925oder @code{%current-target-system} abḧängen.
5691 5926
5692@item @code{snippet} (Vorgabe: @code{#f}) 5927@item @code{snippet} (Vorgabe: @code{#f})
5693Ein im Quellcode-Verzeichnis auszuführender G-Ausdruck 5928Ein im Quellcode-Verzeichnis auszuführender G-Ausdruck (siehe
5694(@pxref{G-Ausdrücke}) oder S-Ausdruck. Hiermit kann der Quellcode bequem 5929@ref{G-Ausdrücke}) oder S-Ausdruck. Hiermit kann der Quellcode bequem
5695modifiziert werden, manchmal ist dies bequemer als mit einem Patch. 5930modifiziert werden, manchmal ist dies bequemer als mit einem Patch.
5696 5931
5697@item @code{patch-flags} (Vorgabe: @code{'("-p1")}) 5932@item @code{patch-flags} (Vorgabe: @code{'("-p1")})
@@ -5718,7 +5953,7 @@ Welches Guile-Paket für den Patch-Prozess benutzt werden sollte. Bei
5718 5953
5719@cindex Erstellungssystem 5954@cindex Erstellungssystem
5720Jede Paketdefinition legt ein @dfn{Erstellungssystem} (»build system«) sowie 5955Jede Paketdefinition legt ein @dfn{Erstellungssystem} (»build system«) sowie
5721dessen Argumente fest (@pxref{Pakete definieren}). Das 5956dessen Argumente fest (siehe @ref{Pakete definieren}). Das
5722@code{build-system}-Feld steht für die Erstellungsprozedur des Pakets sowie 5957@code{build-system}-Feld steht für die Erstellungsprozedur des Pakets sowie
5723für weitere implizite Eingaben für die Erstellungsprozedur. 5958für weitere implizite Eingaben für die Erstellungsprozedur.
5724 5959
@@ -5733,16 +5968,17 @@ Intern funktionieren Erstellungssysteme, indem erst Paketobjekte zu
5733Paket, aber mit weniger Zierrat — anders gesagt ist eine Bag eine 5968Paket, aber mit weniger Zierrat — anders gesagt ist eine Bag eine
5734systemnähere Darstellung eines Pakets, die sämtliche Eingaben des Pakets 5969systemnähere Darstellung eines Pakets, die sämtliche Eingaben des Pakets
5735einschließlich vom Erstellungssystem hinzugefügter Eingaben enthält. Diese 5970einschließlich vom Erstellungssystem hinzugefügter Eingaben enthält. Diese
5736Zwischendarstellung wird dann zur eigentlichen Ableitung kompiliert 5971Zwischendarstellung wird dann zur eigentlichen Ableitung kompiliert (siehe
5737(@pxref{Ableitungen}). 5972@ref{Ableitungen}).
5738 5973
5739Erstellungssysteme akzeptieren optional eine Liste von @dfn{Argumenten}. In 5974Erstellungssysteme akzeptieren optional eine Liste von @dfn{Argumenten}. In
5740Paketdefinitionen werden diese über das @code{arguments}-Feld übergeben 5975Paketdefinitionen werden diese über das @code{arguments}-Feld übergeben
5741(@pxref{Pakete definieren}). Sie sind in der Regel Schlüsselwort-Argumente 5976(siehe @ref{Pakete definieren}). Sie sind in der Regel
5742(@pxref{Optional Arguments, keyword arguments in Guile,, guile, GNU Guile 5977Schlüsselwort-Argumente (siehe @ref{Optional Arguments, keyword arguments in
5743Reference Manual}). Der Wert dieser Argumente wird normalerweise vom 5978Guile,, guile, GNU Guile Reference Manual}). Der Wert dieser Argumente wird
5744Erstellungssystem in der @dfn{Erstellungsschicht} ausgewertet, d.h. von 5979normalerweise vom Erstellungssystem in der @dfn{Erstellungsschicht}
5745einem durch den Daemon gestarteten Guile-Prozess (@pxref{Ableitungen}). 5980ausgewertet, d.h.@: von einem durch den Daemon gestarteten Guile-Prozess
5981(siehe @ref{Ableitungen}).
5746 5982
5747Das häufigste Erstellungssystem ist @var{gnu-build-system}, was die übliche 5983Das häufigste Erstellungssystem ist @var{gnu-build-system}, was die übliche
5748Erstellungsprozedur für GNU-Pakete und viele andere Pakete darstellt. Es 5984Erstellungsprozedur für GNU-Pakete und viele andere Pakete darstellt. Es
@@ -5750,8 +5986,8 @@ wird vom Modul @code{(guix build-system gnu)} bereitgestellt.
5750 5986
5751@defvr {Scheme-Variable} gnu-build-system 5987@defvr {Scheme-Variable} gnu-build-system
5752@var{gnu-build-system} steht für das GNU-Erstellungssystem und Varianten 5988@var{gnu-build-system} steht für das GNU-Erstellungssystem und Varianten
5753desselben (@pxref{Configuration, configuration and makefile conventions,, 5989desselben (siehe @ref{Configuration, configuration and makefile
5754standards, GNU Coding Standards}). 5990conventions,, standards, GNU Coding Standards}).
5755 5991
5756@cindex Erstellungsphasen 5992@cindex Erstellungsphasen
5757Kurz gefasst werden Pakete, die es benutzen, konfiguriert, erstellt und 5993Kurz gefasst werden Pakete, die es benutzen, konfiguriert, erstellt und
@@ -5775,8 +6011,8 @@ Store-Dateipfade beziehen. Zum Beispiel könnte @code{#!/bin/sh} zu
5775 6011
5776@item configure 6012@item configure
5777Das Skript @file{configure} mit einigen vorgegebenen Befehlszeilenoptionen 6013Das Skript @file{configure} mit einigen vorgegebenen Befehlszeilenoptionen
5778ausführen, wie z.B. mit @code{--prefix=/gnu/store/@dots{}}, sowie mit den im 6014ausführen, wie z.B.@: mit @code{--prefix=/gnu/store/@dots{}}, sowie mit den
5779@code{#:configure-flags}-Argument angegebenen Optionen. 6015im @code{#:configure-flags}-Argument angegebenen Optionen.
5780 6016
5781@item build 6017@item build
5782@code{make} ausführen mit den Optionen aus der Liste in 6018@code{make} ausführen mit den Optionen aus der Liste in
@@ -5800,7 +6036,8 @@ Shebangs in den installierten ausführbaren Dateien beheben.
5800@item strip 6036@item strip
5801Symbole zur Fehlerbehebung aus ELF-Dateien entfernen (außer 6037Symbole zur Fehlerbehebung aus ELF-Dateien entfernen (außer
5802@code{#:strip-binaries?} ist auf falsch gesetzt) und in die 6038@code{#:strip-binaries?} ist auf falsch gesetzt) und in die
5803@code{debug}-Ausgabe kopieren, falls diese verfügbar ist (@pxref{Dateien zur Fehlersuche installieren}). 6039@code{debug}-Ausgabe kopieren, falls diese verfügbar ist (siehe
6040@ref{Dateien zur Fehlersuche installieren}).
5804@end table 6041@end table
5805 6042
5806@vindex %standard-phases 6043@vindex %standard-phases
@@ -5910,8 +6147,8 @@ erzeugen oder um Lisp-Abbilder mit einem vorab geladenen Satz von Paketen zu
5910erzeugen. 6147erzeugen.
5911 6148
5912Das Erstellungssystem benutzt gewisse Namenskonventionen. Bei Binärpaketen 6149Das Erstellungssystem benutzt gewisse Namenskonventionen. Bei Binärpaketen
5913sollte dem Paketnamen die Lispimplementierung als Präfix vorangehen, 6150sollte dem Paketnamen die Lispimplementierung als Präfix vorangehen, z.B.@:
5914z.B.@code{sbcl-} für @code{asdf-build-system/sbcl}. 6151@code{sbcl-} für @code{asdf-build-system/sbcl}.
5915 6152
5916Zudem sollte das entsprechende Quellcode-Paket mit der Konvention wie bei 6153Zudem sollte das entsprechende Quellcode-Paket mit der Konvention wie bei
5917Python-Paketen (siehe @ref{Python-Module}) ein @code{cl-} als Präfix 6154Python-Paketen (siehe @ref{Python-Module}) ein @code{cl-} als Präfix
@@ -6038,21 +6275,23 @@ Befehlszeilenoptionen aufgefasst, die an den Befehl @command{cmake}
6038übergeben werden. Der Parameter @code{#:build-type} abstrahiert, welche 6275übergeben werden. Der Parameter @code{#:build-type} abstrahiert, welche
6039Befehlszeilenoptionen dem Compiler übergeben werden; der Vorgabewert ist 6276Befehlszeilenoptionen dem Compiler übergeben werden; der Vorgabewert ist
6040@code{"RelWithDebInfo"} (kurz für »release mode with debugging 6277@code{"RelWithDebInfo"} (kurz für »release mode with debugging
6041information«), d.h. kompiliert wird für eine Produktionsumgebung und 6278information«), d.h.@: kompiliert wird für eine Produktionsumgebung und
6042Informationen zur Fehlerbehebung liegen bei, was ungefähr @code{-O2 -g} 6279Informationen zur Fehlerbehebung liegen bei, was ungefähr @code{-O2 -g}
6043entspricht, wie bei der Vorgabe für Autoconf-basierte Pakete. 6280entspricht, wie bei der Vorgabe für Autoconf-basierte Pakete.
6044@end defvr 6281@end defvr
6045 6282
6046@defvr {Scheme Variable} dune-build-system 6283@defvr {Scheme-Variable} dune-build-system
6047This variable is exported by @code{(guix build-system dune)}. It supports 6284Diese Variable wird vom Modul @code{(guix build-system dune)}
6048builds of packages using @uref{https://dune.build/, Dune}, a build tool for 6285exportiert. Sie unterstützt es, Pakete mit @uref{https://dune.build/, Dune}
6049the OCaml programming language. It is implemented as an extension of the 6286zu erstellen, einem Erstellungswerkzeug für die Programmiersprache OCaml,
6050@code{ocaml-build-system} which is described below. As such, the 6287und ist als Erweiterung des unten beschriebenen OCaml-Erstellungssystems
6051@code{#:ocaml} and @code{#:findlib} parameters can be passed to this build 6288@code{ocaml-build-system} implementiert. Als solche können auch die
6052system. 6289Parameter @code{#:ocaml} und @code{#:findlib} an dieses Erstellungssystem
6290übergeben werden.
6053 6291
6054It automatically adds the @code{dune} package to the set of inputs. Which 6292Das Erstellungssystem fügt automatisch das Paket @code{dune} zu den Eingaben
6055package is used can be specified with the @code{#:dune} parameter. 6293hinzu. Welches Paket benutzt wird, kann mit dem Parameter @code{#:dune}
6294geändert werden.
6056 6295
6057There is no @code{configure} phase because dune packages typically don't 6296There is no @code{configure} phase because dune packages typically don't
6058need to be configured. The @code{#:build-flags} parameter is taken as a 6297need to be configured. The @code{#:build-flags} parameter is taken as a
@@ -6061,6 +6300,11 @@ list of flags passed to the @code{dune} command during the build.
6061The @code{#:jbuild?} parameter can be passed to use the @code{jbuild} 6300The @code{#:jbuild?} parameter can be passed to use the @code{jbuild}
6062command instead of the more recent @code{dune} command while building a 6301command instead of the more recent @code{dune} command while building a
6063package. Its default value is @code{#f}. 6302package. Its default value is @code{#f}.
6303
6304The @code{#:package} parameter can be passed to specify a package name,
6305which is useful when a package contains multiple packages and you want to
6306build only one of them. This is equivalent to passing the @code{-p}
6307argument to @code{dune}.
6064@end defvr 6308@end defvr
6065 6309
6066@defvr {Scheme-Variable} go-build-system 6310@defvr {Scheme-Variable} go-build-system
@@ -6081,11 +6325,11 @@ zusammen. Manchmal ist es nötig, den Paketquellcode in ein anderes als das
6081vom »import path« bezeichnete Verzeichnis zu entpacken; diese andere 6325vom »import path« bezeichnete Verzeichnis zu entpacken; diese andere
6082Verzeichnisstruktur sollte dann als @code{#:unpack-path} angegeben werden. 6326Verzeichnisstruktur sollte dann als @code{#:unpack-path} angegeben werden.
6083 6327
6084Pakete, die Go-Bibliotheken zur Verfügung stellen, sollten zusammen mit 6328Pakete, die Go-Bibliotheken zur Verfügung stellen, sollten ihren Quellcode
6085ihrem Quellcode installiert werden. Der Schlüssel @code{#:install-source?}, 6329auch in die Erstellungsausgabe installieren. Der Schlüssel
6086sein Vorgabewert ist @code{#t}, steuert, ob Quellcode installiert wird. Bei 6330@code{#:install-source?}, sein Vorgabewert ist @code{#t}, steuert, ob
6087Paketen, die nur ausführbare Dateien liefern, kann der Wert auf @code{#f} 6331Quellcode installiert wird. Bei Paketen, die nur ausführbare Dateien
6088gesetzt werden. 6332liefern, kann der Wert auf @code{#f} gesetzt werden.
6089@end defvr 6333@end defvr
6090 6334
6091@defvr {Scheme-Variable} glib-or-gtk-build-system 6335@defvr {Scheme-Variable} glib-or-gtk-build-system
@@ -6128,10 +6372,10 @@ Beide Phasen finden nach der @code{install}-Phase statt.
6128Dieses Erstellungssystem ist für Guile-Pakete gedacht, die nur aus 6372Dieses Erstellungssystem ist für Guile-Pakete gedacht, die nur aus
6129Scheme-Code bestehen und so schlicht sind, dass sie nicht einmal ein 6373Scheme-Code bestehen und so schlicht sind, dass sie nicht einmal ein
6130Makefile und erst recht keinen @file{configure}-Skript enthalten. Hierzu 6374Makefile und erst recht keinen @file{configure}-Skript enthalten. Hierzu
6131wird Scheme-Code mit @command{guild compile} kompiliert 6375wird Scheme-Code mit @command{guild compile} kompiliert (siehe
6132(@pxref{Compilation,,, guile, GNU Guile Reference Manual}) und die 6376@ref{Compilation,,, guile, GNU Guile Reference Manual}) und die @file{.scm}-
6133@file{.scm}- und @file{.go}-Dateien an den richtigen Pfad installiert. Auch 6377und @file{.go}-Dateien an den richtigen Pfad installiert. Auch Dokumentation
6134Dokumentation wird installiert. 6378wird installiert.
6135 6379
6136Das Erstellungssystem unterstützt Cross-Kompilieren durch die 6380Das Erstellungssystem unterstützt Cross-Kompilieren durch die
6137Befehlszeilenoption @code{--target} für @command{guild compile}. 6381Befehlszeilenoption @code{--target} für @command{guild compile}.
@@ -6211,7 +6455,7 @@ zeigt auf @file{lib/ocaml/site-lib/stubslibs} und dorthin sollten
6211@defvr {Scheme-Variable} python-build-system 6455@defvr {Scheme-Variable} python-build-system
6212Diese Variable wird vom Modul @code{(guix build-system python)} 6456Diese Variable wird vom Modul @code{(guix build-system python)}
6213exportiert. Sie implementiert mehr oder weniger die konventionelle 6457exportiert. Sie implementiert mehr oder weniger die konventionelle
6214Erstellungsprozedur, wie sie für Python-Pakete üblich ist, d.h. erst wird 6458Erstellungsprozedur, wie sie für Python-Pakete üblich ist, d.h.@: erst wird
6215@code{python setup.py build} ausgeführt und dann @code{python setup.py 6459@code{python setup.py build} ausgeführt und dann @code{python setup.py
6216install --prefix=/gnu/store/@dots{}}. 6460install --prefix=/gnu/store/@dots{}}.
6217 6461
@@ -6266,6 +6510,23 @@ Paketeingaben enthält. Tests werden nach der Installation mit der R-Funktion
6266@code{tools::testInstalledPackage} ausgeführt. 6510@code{tools::testInstalledPackage} ausgeführt.
6267@end defvr 6511@end defvr
6268 6512
6513@defvr {Scheme-Variable} rakudo-build-system
6514This variable is exported by @code{(guix build-system rakudo)} It implements
6515the build procedure used by @uref{https://rakudo.org/, Rakudo} for
6516@uref{https://perl6.org/, Perl6} packages. It installs the package to
6517@code{/gnu/store/@dots{}/NAME-VERSION/share/perl6} and installs the
6518binaries, library files and the resources, as well as wrap the files under
6519the @code{bin/} directory. Tests can be skipped by passing @code{#f} to the
6520@code{tests?} parameter.
6521
6522Which rakudo package is used can be specified with @code{rakudo}. Which
6523perl6-tap-harness package used for the tests can be specified with
6524@code{#:prove6} or removed by passing @code{#f} to the @code{with-prove6?}
6525parameter. Which perl6-zef package used for tests and installing can be
6526specified with @code{#:zef} or removed by passing @code{#f} to the
6527@code{with-zef?} parameter.
6528@end defvr
6529
6269@defvr {Scheme-Variable} texlive-build-system 6530@defvr {Scheme-Variable} texlive-build-system
6270Diese Variable wird vom Modul @code{(guix build-system texlive)} 6531Diese Variable wird vom Modul @code{(guix build-system texlive)}
6271exportiert. Mit ihr werden TeX-Pakete in Stapelverarbeitung (»batch mode«) 6532exportiert. Mit ihr werden TeX-Pakete in Stapelverarbeitung (»batch mode«)
@@ -6370,8 +6631,8 @@ festgelegt werden, was als Vorgabewert @code{ldc} benutzt.
6370@defvr {Scheme-Variable} emacs-build-system 6631@defvr {Scheme-Variable} emacs-build-system
6371Diese Variable wird vom Modul @code{(guix build-system emacs)} 6632Diese Variable wird vom Modul @code{(guix build-system emacs)}
6372exportiert. Darin wird eine Installationsprozedur ähnlich der des 6633exportiert. Darin wird eine Installationsprozedur ähnlich der des
6373Paketsystems von Emacs selbst implementiert (@pxref{Packages,,, emacs, The 6634Paketsystems von Emacs selbst implementiert (siehe @ref{Packages,,, emacs,
6374GNU Emacs Manual}). 6635The GNU Emacs Manual}).
6375 6636
6376Zunächst wird eine Datei @code{@var{Paket}-autoloads.el} erzeugt, dann 6637Zunächst wird eine Datei @code{@var{Paket}-autoloads.el} erzeugt, dann
6377werden alle Emacs-Lisp-Dateien zu Bytecode kompiliert. Anders als beim 6638werden alle Emacs-Lisp-Dateien zu Bytecode kompiliert. Anders als beim
@@ -6382,11 +6643,12 @@ gelöscht. Jedes Paket wird in sein eigenes Verzeichnis unter
6382@end defvr 6643@end defvr
6383 6644
6384@defvr {Scheme-Variable} font-build-system 6645@defvr {Scheme-Variable} font-build-system
6385This variable is exported by @code{(guix build-system font)}. It implements 6646Diese Variable wird vom Modul @code{(guix build-system font)}
6386an installation procedure for font packages where upstream provides 6647exportiert. Mit ihr steht eine Installationsprozedur für Schriftarten-Pakete
6387pre-compiled TrueType, OpenType, etc.@: font files that merely need to be 6648zur Verfügung für vom Anbieter vorkompilierte TrueType-, OpenType- und
6388copied into place. It copies font files to standard locations in the output 6649andere Schriftartendateien, die nur an die richtige Stelle kopiert werden
6389directory. 6650müssen. Dieses Erstellungssystem kopiert die Schriftartendateien an den
6651Konventionen folgende Orte im Ausgabeverzeichnis.
6390@end defvr 6652@end defvr
6391 6653
6392@defvr {Scheme-Variable} meson-build-system 6654@defvr {Scheme-Variable} meson-build-system
@@ -6456,6 +6718,33 @@ durchlaufen. Wenn sie gebraucht wird, kann sie mit dem Parameter
6456@end table 6718@end table
6457@end defvr 6719@end defvr
6458 6720
6721@defvr {Scheme Variable} linux-module-build-system
6722@var{linux-module-build-system} allows building Linux kernel modules.
6723
6724@cindex Erstellungsphasen
6725This build system is an extension of @var{gnu-build-system}, but with the
6726following phases changed:
6727
6728@table @code
6729
6730@item configure
6731This phase configures the environment so that the Linux kernel's Makefile
6732can be used to build the external kernel module.
6733
6734@item build
6735This phase uses the Linux kernel's Makefile in order to build the external
6736kernel module.
6737
6738@item install
6739This phase uses the Linux kernel's Makefile in order to install the external
6740kernel module.
6741@end table
6742
6743It is possible and useful to specify the Linux kernel to use for building
6744the module (in the "arguments" form of a package using the
6745linux-module-build-system, use the key #:linux to specify it).
6746@end defvr
6747
6459Letztlich gibt es für die Pakete, die bei weitem nichts so komplexes 6748Letztlich gibt es für die Pakete, die bei weitem nichts so komplexes
6460brauchen, ein »triviales« Erstellungssystem. Es ist in dem Sinn trivial, 6749brauchen, ein »triviales« Erstellungssystem. Es ist in dem Sinn trivial,
6461dass es praktisch keine Hilfestellungen gibt: Es fügt keine impliziten 6750dass es praktisch keine Hilfestellungen gibt: Es fügt keine impliziten
@@ -6466,7 +6755,7 @@ Diese Variable wird vom Modul @code{(guix build-system trivial)} exportiert.
6466 6755
6467Diesem Erstellungssystem muss im Argument @code{#:builder} ein 6756Diesem Erstellungssystem muss im Argument @code{#:builder} ein
6468Scheme-Ausdruck übergeben werden, der die Paketausgabe(n) erstellt — wie bei 6757Scheme-Ausdruck übergeben werden, der die Paketausgabe(n) erstellt — wie bei
6469@code{build-expression->derivation} (@pxref{Ableitungen, 6758@code{build-expression->derivation} (siehe @ref{Ableitungen,
6470@code{build-expression->derivation}}). 6759@code{build-expression->derivation}}).
6471@end defvr 6760@end defvr
6472 6761
@@ -6490,7 +6779,7 @@ Ausführung von »configure« angegebene Zustandsverzeichnis ist, normalerweise
6490@file{/var}. 6779@file{/var}.
6491 6780
6492Auf den Store wird @emph{nur} durch den Daemon im Auftrag seiner Clients 6781Auf den Store wird @emph{nur} durch den Daemon im Auftrag seiner Clients
6493zugegriffen (@pxref{Aufruf des guix-daemon}). Um den Store zu verändern, 6782zugegriffen (siehe @ref{Aufruf des guix-daemon}). Um den Store zu verändern,
6494verbinden sich Clients über einen Unix-Socket mit dem Daemon, senden ihm 6783verbinden sich Clients über einen Unix-Socket mit dem Daemon, senden ihm
6495entsprechende Anfragen und lesen dann dessen Antwort — so etwas nennt sich 6784entsprechende Anfragen und lesen dann dessen Antwort — so etwas nennt sich
6496entfernter Prozeduraufruf (englisch »Remote Procedure Call« oder kurz RPC). 6785entfernter Prozeduraufruf (englisch »Remote Procedure Call« oder kurz RPC).
@@ -6499,11 +6788,11 @@ entfernter Prozeduraufruf (englisch »Remote Procedure Call« oder kurz RPC).
6499Benutzer dürfen @emph{niemals} Dateien in @file{/gnu/store} direkt 6788Benutzer dürfen @emph{niemals} Dateien in @file{/gnu/store} direkt
6500verändern, sonst wären diese nicht mehr konsistent und die Grundannahmen im 6789verändern, sonst wären diese nicht mehr konsistent und die Grundannahmen im
6501funktionalen Modell von Guix, dass die Objekte unveränderlich sind, wären 6790funktionalen Modell von Guix, dass die Objekte unveränderlich sind, wären
6502dahin (@pxref{Einführung}). 6791dahin (siehe @ref{Einführung}).
6503 6792
6504Siehe @xref{Aufruf von guix gc, @command{guix gc --verify}}, für 6793Siehe @ref{Aufruf von guix gc, @command{guix gc --verify}} für Informationen,
6505Informationen, wie die Integrität des Stores überprüft und nach 6794wie die Integrität des Stores überprüft und nach versehentlichen
6506versehentlichen Veränderungen unter Umständen wiederhergestellt werden kann. 6795Veränderungen unter Umständen wiederhergestellt werden kann.
6507@end quotation 6796@end quotation
6508 6797
6509Das Modul @code{(guix store)} bietet Prozeduren an, um sich mit dem Daemon 6798Das Modul @code{(guix store)} bietet Prozeduren an, um sich mit dem Daemon
@@ -6543,23 +6832,23 @@ guix://master.guix.example.org:1234
6543 6832
6544Diese Konfiguration ist für lokale Netzwerke wie etwa in Rechen-Clustern 6833Diese Konfiguration ist für lokale Netzwerke wie etwa in Rechen-Clustern
6545geeignet, wo sich nur vertrauenswürdige Knoten mit dem Erstellungs-Daemon 6834geeignet, wo sich nur vertrauenswürdige Knoten mit dem Erstellungs-Daemon
6546z.B. unter @code{master.guix.example.org} verbinden können. 6835z.B.@: unter @code{master.guix.example.org} verbinden können.
6547 6836
6548Die Befehlszeilenoption @code{--listen} von @command{guix-daemon} kann 6837Die Befehlszeilenoption @code{--listen} von @command{guix-daemon} kann
6549benutzt werden, damit er auf TCP-Verbindungen lauscht (@pxref{Aufruf des guix-daemon, @code{--listen}}). 6838benutzt werden, damit er auf TCP-Verbindungen lauscht (siehe @ref{Aufruf des guix-daemon, @code{--listen}}).
6550 6839
6551@item ssh 6840@item ssh
6552@cindex SSH-Zugriff auf Erstellungs-Daemons 6841@cindex SSH-Zugriff auf Erstellungs-Daemons
6553Mit solchen URIs kann eine Verbindung zu einem entfernten Daemon über SSH 6842Mit solchen URIs kann eine Verbindung zu einem entfernten Daemon über SSH
6554hergestellt werden@footnote{Diese Funktionalitäts setzt Guile-SSH voraus 6843hergestellt werden@footnote{Diese Funktionalitäts setzt Guile-SSH voraus
6555(@pxref{Voraussetzungen}).}. Eine typische URL sieht so aus: 6844(siehe @ref{Voraussetzungen}).}. Eine typische URL sieht so aus:
6556 6845
6557@example 6846@example
6558ssh://charlie@@guix.example.org:22 6847ssh://charlie@@guix.example.org:22
6559@end example 6848@end example
6560 6849
6561Was @command{guix copy} betrifft, richtet es sich nach den üblichen 6850Was @command{guix copy} betrifft, richtet es sich nach den üblichen
6562OpenSSH-Client-Konfigurationsdateien (@pxref{Aufruf von guix copy}). 6851OpenSSH-Client-Konfigurationsdateien (siehe @ref{Aufruf von guix copy}).
6563@end table 6852@end table
6564 6853
6565In Zukunft könnten weitere URI-Schemata unterstützt werden. 6854In Zukunft könnten weitere URI-Schemata unterstützt werden.
@@ -6569,8 +6858,8 @@ In Zukunft könnten weitere URI-Schemata unterstützt werden.
6569@quotation Anmerkung 6858@quotation Anmerkung
6570Die Fähigkeit, sich mit entfernten Erstellungs-Daemons zu verbinden, sehen 6859Die Fähigkeit, sich mit entfernten Erstellungs-Daemons zu verbinden, sehen
6571wir als experimentell an, Stand @value{VERSION}. Bitte diskutieren Sie mit 6860wir als experimentell an, Stand @value{VERSION}. Bitte diskutieren Sie mit
6572uns jegliche Probleme oder Vorschläge, die Sie haben könnten 6861uns jegliche Probleme oder Vorschläge, die Sie haben könnten (siehe
6573(@pxref{Mitwirken}). 6862@ref{Mitwirken}).
6574@end quotation 6863@end quotation
6575@end defvr 6864@end defvr
6576 6865
@@ -6607,8 +6896,9 @@ und sonst @code{#f} (ein ungültiges Objekt kann auf der Platte gespeichert
6607sein, tatsächlich aber ungültig sein, zum Beispiel weil es das Ergebnis 6896sein, tatsächlich aber ungültig sein, zum Beispiel weil es das Ergebnis
6608einer abgebrochenen oder fehlgeschlagenen Erstellung ist). 6897einer abgebrochenen oder fehlgeschlagenen Erstellung ist).
6609 6898
6610A @code{&store-protocol-error} condition is raised if @var{path} is not 6899Ein @code{&store-protocol-error}-Fehlerzustand wird ausgelöst, wenn der
6611prefixed by the store directory (@file{/gnu/store}). 6900@var{Pfad} nicht mit dem Store-Verzeichnis als Präfix beginnt
6901(@file{/gnu/store}).
6612@end deffn 6902@end deffn
6613 6903
6614@deffn {Scheme-Prozedur} add-text-to-store @var{Server} @var{Name} @var{Text} [@var{Referenzen}] 6904@deffn {Scheme-Prozedur} add-text-to-store @var{Server} @var{Name} @var{Text} [@var{Referenzen}]
@@ -6626,7 +6916,7 @@ Erstellung.
6626 6916
6627Es sei erwähnt, dass im Modul @code{(guix monads)} eine Monade sowie 6917Es sei erwähnt, dass im Modul @code{(guix monads)} eine Monade sowie
6628monadische Versionen obiger Prozeduren angeboten werden, damit an Code, der 6918monadische Versionen obiger Prozeduren angeboten werden, damit an Code, der
6629auf den Store zugreift, bequemer gearbeitet werden kann (@pxref{Die Store-Monade}). 6919auf den Store zugreift, bequemer gearbeitet werden kann (siehe @ref{Die Store-Monade}).
6630 6920
6631@c FIXME 6921@c FIXME
6632@i{Dieser Abschnitt ist im Moment noch unvollständig.} 6922@i{Dieser Abschnitt ist im Moment noch unvollständig.}
@@ -6645,15 +6935,15 @@ Die Ausgaben, die die Ableitung hat. Ableitungen erzeugen mindestens eine
6645Datei bzw. ein Verzeichnis im Store, können aber auch mehrere erzeugen. 6935Datei bzw. ein Verzeichnis im Store, können aber auch mehrere erzeugen.
6646 6936
6647@item 6937@item
6648@cindex build-time dependencies 6938@cindex Erstellungszeitabhängigkeiten
6649@cindex dependencies, build-time 6939@cindex Abhängigkeiten zur Erstellungszeit
6650The inputs of the derivations---i.e., its build-time dependencies---which 6940Die Eingaben der Ableitung, also Abhängigkeiten zur Zeit ihrer Erstellung,
6651may be other derivations or plain files in the store (patches, build 6941die entweder andere Ableitungen oder einfache Dateien im Store sind (wie
6652scripts, etc.) 6942Patches, Erstellungsskripts usw.).
6653 6943
6654@item 6944@item
6655Das System, wofür mit der Ableitung erstellt wird, also ihr Ziel — 6945Das System, wofür mit der Ableitung erstellt wird, also ihr Ziel — z.B.@:
6656z.B. @code{x86_64-linux}. 6946@code{x86_64-linux}.
6657 6947
6658@item 6948@item
6659Der Dateiname eines Erstellungsskripts im Store, zusammen mit den 6949Der Dateiname eines Erstellungsskripts im Store, zusammen mit den
@@ -6671,27 +6961,28 @@ sowohl Darstellungen im Arbeitsspeicher jeweils für Client und Daemon, als
6671auch Dateien im Store, deren Namen auf @code{.drv} enden — diese Dateien 6961auch Dateien im Store, deren Namen auf @code{.drv} enden — diese Dateien
6672werden als @dfn{Ableitungspfade} bezeichnet. Ableitungspfade können an die 6962werden als @dfn{Ableitungspfade} bezeichnet. Ableitungspfade können an die
6673Prozedur @code{build-derivations} übergeben werden, damit die darin 6963Prozedur @code{build-derivations} übergeben werden, damit die darin
6674niedergeschriebenen Erstellungsaktionen durchgeführt werden (@pxref{Der Store}). 6964niedergeschriebenen Erstellungsaktionen durchgeführt werden (siehe @ref{Der Store}).
6675 6965
6676@cindex Ableitungen mit fester Ausgabe 6966@cindex Ableitungen mit fester Ausgabe
6677Operationen wie das Herunterladen von Dateien und Checkouts von unter 6967Operationen wie das Herunterladen von Dateien und Checkouts von unter
6678Versionskontrolle stehenden Quelldateien, bei denen der Hash des Inhalts im 6968Versionskontrolle stehenden Quelldateien, bei denen der Hash des Inhalts im
6679Voraus bekannt ist, werden als @dfn{Ableitungen mit fester Ausgabe} 6969Voraus bekannt ist, werden als @dfn{Ableitungen mit fester Ausgabe}
6680modelliert. Anders als reguläre Ableitungen sind die Ausgaben von 6970modelliert. Anders als reguläre Ableitungen sind die Ausgaben von
6681Ableitungen mit fester Ausgabe unabhängig von ihren Eingaben — z.B. liefert 6971Ableitungen mit fester Ausgabe unabhängig von ihren Eingaben — z.B.@:
6682das Herunterladen desselben Quellcodes dasselbe Ergebnis unabhängig davon, 6972liefert das Herunterladen desselben Quellcodes dasselbe Ergebnis unabhängig
6683mit welcher Methode und welchen Werkzeugen er heruntergeladen wurde. 6973davon, mit welcher Methode und welchen Werkzeugen er heruntergeladen wurde.
6684 6974
6685@cindex references 6975@cindex references
6686@cindex run-time dependencies 6976@cindex Laufzeitabhängigkeiten
6687@cindex dependencies, run-time 6977@cindex Abhängigkeiten, zur Laufzeit
6688The outputs of derivations---i.e., the build results---have a set of 6978Den Ausgaben von Ableitungen — d.h.@: Erstellungergebnissen — ist eine Liste
6689@dfn{references}, as reported by the @code{references} RPC or the 6979von @dfn{Referenzen} zugeordnet, die auch der entfernte Prozeduraufruf
6690@command{guix gc --references} command (@pxref{Aufruf von guix gc}). 6980@code{references} oder der Befehl @command{guix gc --references} liefert
6691References are the set of run-time dependencies of the build results. 6981(siehe @ref{Aufruf von guix gc}). Referenzen sind die Menge der
6692References are a subset of the inputs of the derivation; this subset is 6982Laufzeitabhängigkeiten von Erstellungsergebnissen. Referenzen sind eine
6693automatically computed by the build daemon by scanning all the files in the 6983Teilmenge der Eingaben von Ableitungen; die Teilmenge wird automatisch
6694outputs. 6984ermittelt, indem der Erstellungsdaemon alle Dateien unter den Ausgaben nach
6985Referenzen durchsucht.
6695 6986
6696Das Modul @code{(guix derivations)} stellt eine Repräsentation von 6987Das Modul @code{(guix derivations)} stellt eine Repräsentation von
6697Ableitungen als Scheme-Objekte zur Verfügung, zusammen mit Prozeduren, um 6988Ableitungen als Scheme-Objekte zur Verfügung, zusammen mit Prozeduren, um
@@ -6708,9 +6999,9 @@ Methode, eine Ableitung zu erzeugen, ist mit der Prozedur @code{derivation}:
6708liefern. 6999liefern.
6709 7000
6710Wurden @var{hash} und @var{hash-algo} angegeben, wird eine @dfn{Ableitung 7001Wurden @var{hash} und @var{hash-algo} angegeben, wird eine @dfn{Ableitung
6711mit fester Ausgabe} erzeugt — d.h. eine, deren Ausgabe schon im Voraus 7002mit fester Ausgabe} erzeugt — d.h.@: eine, deren Ausgabe schon im Voraus
6712bekannt ist, wie z.B. beim Herunterladen einer Datei. Wenn des Weiteren auch 7003bekannt ist, wie z.B.@: beim Herunterladen einer Datei. Wenn des Weiteren
6713@var{recursive?} wahr ist, darf die Ableitung mit fester Ausgabe eine 7004auch @var{recursive?} wahr ist, darf die Ableitung mit fester Ausgabe eine
6714ausführbare Datei oder ein Verzeichnis sein und @var{hash} muss die 7005ausführbare Datei oder ein Verzeichnis sein und @var{hash} muss die
6715Prüfsumme eines Archivs mit dieser Ausgabe sein. 7006Prüfsumme eines Archivs mit dieser Ausgabe sein.
6716 7007
@@ -6734,14 +7025,14 @@ ist. So ein Leck kann zum Beispiel benutzt werden, um Variable wie
6734herunterladen. 7025herunterladen.
6735 7026
6736Ist @var{local-build?} wahr, wird die Ableitung als schlechter Kandidat für 7027Ist @var{local-build?} wahr, wird die Ableitung als schlechter Kandidat für
6737das Auslagern deklariert, der besser lokal erstellt werden sollte 7028das Auslagern deklariert, der besser lokal erstellt werden sollte (siehe
6738(@pxref{Auslagern des Daemons einrichten}). Dies betrifft kleine Ableitungen, wo das 7029@ref{Auslagern des Daemons einrichten}). Dies betrifft kleine Ableitungen, wo das
6739Übertragen der Daten aufwendiger als ihre Erstellung ist. 7030Übertragen der Daten aufwendiger als ihre Erstellung ist.
6740 7031
6741Ist @var{substitutable?} falsch, wird deklariert, dass für die Ausgabe der 7032Ist @var{substitutable?} falsch, wird deklariert, dass für die Ausgabe der
6742Ableitung keine Substitute benutzt werden sollen (@pxref{Substitute}). Das 7033Ableitung keine Substitute benutzt werden sollen (siehe
6743ist nützlich, wenn Pakete erstellt werden, die Details über den 7034@ref{Substitute}). Das ist nützlich, wenn Pakete erstellt werden, die
6744Prozessorbefehlssatz des Wirtssystems auslesen. 7035Details über den Prozessorbefehlssatz des Wirtssystems auslesen.
6745 7036
6746@var{properties} muss eine assoziative Liste enthalten, die »Eigenschaften« 7037@var{properties} muss eine assoziative Liste enthalten, die »Eigenschaften«
6747der Ableitungen beschreibt. Sie wird genau so, wie sie ist, in der Ableitung 7038der Ableitungen beschreibt. Sie wird genau so, wie sie ist, in der Ableitung
@@ -6772,7 +7063,7 @@ Wie man sehen kann, ist es umständlich, diese grundlegende Methode direkt zu
6772benutzen. Natürlich ist es besser, Erstellungsskripts in Scheme zu 7063benutzen. Natürlich ist es besser, Erstellungsskripts in Scheme zu
6773schreiben! Am besten schreibt man den Erstellungscode als »G-Ausdruck« und 7064schreiben! Am besten schreibt man den Erstellungscode als »G-Ausdruck« und
6774übergibt ihn an @code{gexp->derivation}. Mehr Informationen finden Sie im 7065übergibt ihn an @code{gexp->derivation}. Mehr Informationen finden Sie im
6775Abschnitt @pxref{G-Ausdrücke}. 7066Abschnitt @ref{G-Ausdrücke}.
6776 7067
6777Doch es gab einmal eine Zeit, zu der @code{gexp->derivation} noch nicht 7068Doch es gab einmal eine Zeit, zu der @code{gexp->derivation} noch nicht
6778existiert hatte und wo das Zusammenstellen von Ableitungen mit 7069existiert hatte und wo das Zusammenstellen von Ableitungen mit
@@ -6793,8 +7084,8 @@ jeweils als Tupel @code{(Name Ableitungspfad Unterableitung)}; wird keine
6793@var{Unterableitung} angegeben, wird @code{"out"} angenommen. @var{Module} 7084@var{Unterableitung} angegeben, wird @code{"out"} angenommen. @var{Module}
6794ist eine Liste der Namen von Guile-Modulen im momentanen Suchpfad, die in 7085ist eine Liste der Namen von Guile-Modulen im momentanen Suchpfad, die in
6795den Store kopiert, kompiliert und zur Verfügung gestellt werden, wenn der 7086den Store kopiert, kompiliert und zur Verfügung gestellt werden, wenn der
6796@var{Ausdruck} ausgeführt wird — z.B. @code{((guix build utils) (guix build 7087@var{Ausdruck} ausgeführt wird — z.B.@: @code{((guix build utils) (guix
6797gnu-build-system))}. 7088build gnu-build-system))}.
6798 7089
6799Der @var{Ausdruck} wird in einer Umgebung ausgewertet, in der 7090Der @var{Ausdruck} wird in einer Umgebung ausgewertet, in der
6800@code{%outputs} an eine Liste von Ausgabe-/Pfad-Paaren gebunden wurde und in 7091@code{%outputs} an eine Liste von Ausgabe-/Pfad-Paaren gebunden wurde und in
@@ -6897,7 +7188,7 @@ gelieferte monadische Wert wurde mit @code{mlet} statt einem einfachen
6897 7188
6898Wie sich herausstellt, muss man den Aufruf von @code{package->derivation} 7189Wie sich herausstellt, muss man den Aufruf von @code{package->derivation}
6899nicht einmal aufschreiben, weil er implizit geschieht, wie wir später sehen 7190nicht einmal aufschreiben, weil er implizit geschieht, wie wir später sehen
6900werden (siehe @pxref{G-Ausdrücke}): 7191werden (siehe @ref{G-Ausdrücke}):
6901 7192
6902@example 7193@example
6903(define (sh-symlink) 7194(define (sh-symlink)
@@ -6999,7 +7290,8 @@ Ausdruck sein und dessen Ergebnis wird das Ergebnis von @code{mlet} oder
6999@code{mlet*} werden, wenn es durch die @var{Monad} laufen gelassen wurde. 7290@code{mlet*} werden, wenn es durch die @var{Monad} laufen gelassen wurde.
7000 7291
7001@code{mlet*} verhält sich gegenüber @code{mlet} wie @code{let*} gegenüber 7292@code{mlet*} verhält sich gegenüber @code{mlet} wie @code{let*} gegenüber
7002@code{let} (@pxref{Local Bindings,,, guile, GNU Guile Reference Manual}). 7293@code{let} (siehe @ref{Local Bindings,,, guile, GNU Guile Reference
7294Manual}).
7003@end deffn 7295@end deffn
7004 7296
7005@deffn {Scheme-System} mbegin @var{Monade} @var{mAusdruck} ... 7297@deffn {Scheme-System} mbegin @var{Monade} @var{mAusdruck} ...
@@ -7159,7 +7451,7 @@ Zielsystem bezeichnendes Tripel zum Cross-Kompilieren benutzt.
7159@deffn {Monadische Prozedur} package->derivation @var{Paket} [@var{System}] 7451@deffn {Monadische Prozedur} package->derivation @var{Paket} [@var{System}]
7160@deffnx {Monadische Prozedur} package->cross-derivation @var{Paket} @ 7452@deffnx {Monadische Prozedur} package->cross-derivation @var{Paket} @
7161 @var{Ziel} [@var{System}] Monadische Version von @code{package-derivation} 7453 @var{Ziel} [@var{System}] Monadische Version von @code{package-derivation}
7162und @code{package-cross-derivation} (@pxref{Pakete definieren}). 7454und @code{package-cross-derivation} (siehe @ref{Pakete definieren}).
7163@end deffn 7455@end deffn
7164 7456
7165 7457
@@ -7170,10 +7462,10 @@ und @code{package-cross-derivation} (@pxref{Pakete definieren}).
7170@cindex Erstellungscode maskieren 7462@cindex Erstellungscode maskieren
7171Es gibt also »Ableitungen«, die eine Abfolge von Erstellungsaktionen 7463Es gibt also »Ableitungen«, die eine Abfolge von Erstellungsaktionen
7172repräsentieren, die durchgeführt werden müssen, um ein Objekt im Store zu 7464repräsentieren, die durchgeführt werden müssen, um ein Objekt im Store zu
7173erzeugen (@pxref{Ableitungen}). Diese Erstellungsaktionen werden 7465erzeugen (siehe @ref{Ableitungen}). Diese Erstellungsaktionen werden
7174durchgeführt, nachdem der Daemon gebeten wurde, die Ableitungen tatsächlich 7466durchgeführt, nachdem der Daemon gebeten wurde, die Ableitungen tatsächlich
7175zu erstellen; dann führt der Daemon sie in einer isolierten Umgebung (einem 7467zu erstellen; dann führt der Daemon sie in einer isolierten Umgebung (einem
7176sogenannten Container) aus (@pxref{Aufruf des guix-daemon}). 7468sogenannten Container) aus (siehe @ref{Aufruf des guix-daemon}).
7177 7469
7178@cindex Schichten von Code 7470@cindex Schichten von Code
7179Wenig überraschend ist, dass wir diese Erstellungsaktionen gerne in Scheme 7471Wenig überraschend ist, dass wir diese Erstellungsaktionen gerne in Scheme
@@ -7185,7 +7477,7 @@ an Hop geprägt. Oleg Kiselyov, der aufschlussreiche
7185diesem Thema} geschrieben hat, nennt diese Art der Code-Generierung 7477diesem Thema} geschrieben hat, nennt diese Art der Code-Generierung
7186@dfn{Staging}, deutsch etwa Inszenierung bzw.@: Aufführung.}: den 7478@dfn{Staging}, deutsch etwa Inszenierung bzw.@: Aufführung.}: den
7187»wirtsseitigen Code« (»host code«) — also Code, der Pakete definiert, mit 7479»wirtsseitigen Code« (»host code«) — also Code, der Pakete definiert, mit
7188dem Daemon kommuniziert etc. — und den »erstellungsseitigen Code« (»build 7480dem Daemon kommuniziert etc.@: — und den »erstellungsseitigen Code« (»build
7189code«) — also Code, der die Erstellungsaktionen auch wirklich umsetzt, indem 7481code«) — also Code, der die Erstellungsaktionen auch wirklich umsetzt, indem
7190Dateien erstellt werden, @command{make} aufgerufen wird etc. 7482Dateien erstellt werden, @command{make} aufgerufen wird etc.
7191 7483
@@ -7203,7 +7495,7 @@ S-Ausdrücken, die zu Erstellungsausdrücken angepasst wurden. G-Ausdrücke
7203drei syntaktischen Formen zusammen: @code{gexp}, @code{ungexp} und 7495drei syntaktischen Formen zusammen: @code{gexp}, @code{ungexp} und
7204@code{ungexp-splicing} (alternativ einfach: @code{#~}, @code{#$} und 7496@code{ungexp-splicing} (alternativ einfach: @code{#~}, @code{#$} und
7205@code{#$@@}), die jeweils mit @code{quasiquote}, @code{unquote} und 7497@code{#$@@}), die jeweils mit @code{quasiquote}, @code{unquote} und
7206@code{unquote-splicing} vergleichbar sind (@pxref{Expression Syntax, 7498@code{unquote-splicing} vergleichbar sind (siehe @ref{Expression Syntax,
7207@code{quasiquote},, guile, GNU Guile Reference Manual}). Es gibt aber auch 7499@code{quasiquote},, guile, GNU Guile Reference Manual}). Es gibt aber auch
7208erhebliche Unterschiede: 7500erhebliche Unterschiede:
7209 7501
@@ -7230,7 +7522,7 @@ Objekte auf Ableitungen oder Dateien im Store »herunterbrechen«, womit diese
7230Objekte dann auch in G-Ausdrücken eingefügt werden können. Zum Beispiel sind 7522Objekte dann auch in G-Ausdrücken eingefügt werden können. Zum Beispiel sind
7231»dateiartige Objekte« ein nützlicher Typ solcher abstrakter Objekte. Mit 7523»dateiartige Objekte« ein nützlicher Typ solcher abstrakter Objekte. Mit
7232ihnen können Dateien leicht in den Store eingefügt und von Ableitungen und 7524ihnen können Dateien leicht in den Store eingefügt und von Ableitungen und
7233Anderem referenziert werden (siehe unten @code{local-file} und 7525anderem referenziert werden (siehe unten @code{local-file} und
7234@code{plain-file}). 7526@code{plain-file}).
7235 7527
7236Zur Veranschaulichung dieser Idee soll uns dieses Beispiel eines G-Ausdrucks 7528Zur Veranschaulichung dieser Idee soll uns dieses Beispiel eines G-Ausdrucks
@@ -7363,7 +7655,7 @@ kann eine oder mehrere der folgenden Formen enthalten:
7363Eine Referenz auf das @var{Objekt} einführen. Das @var{Objekt} kann einen 7655Eine Referenz auf das @var{Objekt} einführen. Das @var{Objekt} kann einen
7364der unterstützten Typen haben, zum Beispiel ein Paket oder eine Ableitung, 7656der unterstützten Typen haben, zum Beispiel ein Paket oder eine Ableitung,
7365so dass die @code{ungexp}-Form durch deren Ausgabedateiname ersetzt wird — 7657so dass die @code{ungexp}-Form durch deren Ausgabedateiname ersetzt wird —
7366z.B. @code{"/gnu/store/@dots{}-coreutils-8.22}. 7658z.B.@: @code{"/gnu/store/@dots{}-coreutils-8.22}.
7367 7659
7368Wenn das @var{Objekt} eine Liste ist, wird diese durchlaufen und alle 7660Wenn das @var{Objekt} eine Liste ist, wird diese durchlaufen und alle
7369unterstützten Objekte darin auf diese Weise ersetzt. 7661unterstützten Objekte darin auf diese Weise ersetzt.
@@ -7378,7 +7670,7 @@ eingefügt.
7378@itemx (ungexp @var{Objekt} @var{Ausgabe}) 7670@itemx (ungexp @var{Objekt} @var{Ausgabe})
7379Dies verhält sich wie die Form oben, bezieht sich aber ausdrücklich auf die 7671Dies verhält sich wie die Form oben, bezieht sich aber ausdrücklich auf die
7380angegebene @var{Ausgabe} des @var{Objekt}s — dies ist nützlich, wenn das 7672angegebene @var{Ausgabe} des @var{Objekt}s — dies ist nützlich, wenn das
7381@var{Objekt} mehrere Ausgaben generiert (@pxref{Pakete mit mehreren Ausgaben.}). 7673@var{Objekt} mehrere Ausgaben generiert (siehe @ref{Pakete mit mehreren Ausgaben.}).
7382 7674
7383@item #+@var{Objekt} 7675@item #+@var{Objekt}
7384@itemx #+@var{Objekt}:@var{Ausgabe} 7676@itemx #+@var{Objekt}:@var{Ausgabe}
@@ -7456,7 +7748,8 @@ Liefert @code{#t}, wenn das @var{Objekt} ein G-Ausdruck ist.
7456 7748
7457G-Ausdrücke sind dazu gedacht, auf die Platte geschrieben zu werden, 7749G-Ausdrücke sind dazu gedacht, auf die Platte geschrieben zu werden,
7458entweder als Code, der eine Ableitung erstellt, oder als einfache Dateien im 7750entweder als Code, der eine Ableitung erstellt, oder als einfache Dateien im
7459Store. Die monadischen Prozeduren unten ermöglichen Ihnen das (@pxref{Die Store-Monade}, wenn Sie mehr Informationen über Monaden suchen). 7751Store. Die monadischen Prozeduren unten ermöglichen Ihnen das (siehe
7752@ref{Die Store-Monade}, wenn Sie mehr Informationen über Monaden suchen).
7460 7753
7461@deffn {Monadische Prozedur} gexp->derivation @var{Name} @var{Ausdruck} @ 7754@deffn {Monadische Prozedur} gexp->derivation @var{Name} @var{Ausdruck} @
7462 [#:system (%current-system)] [#:target #f] [#:graft? #t] @ [#:hash #f] 7755 [#:system (%current-system)] [#:target #f] [#:graft? #t] @ [#:hash #f]
@@ -7479,12 +7772,12 @@ bezeichnete Pakete benutzt.
7479werden; @var{modules} ist dabei eine Liste von Namen von Guile-Modulen, die 7772werden; @var{modules} ist dabei eine Liste von Namen von Guile-Modulen, die
7480im Modulpfad @var{module-path} gesucht werden, um sie in den Store zu 7773im Modulpfad @var{module-path} gesucht werden, um sie in den Store zu
7481kopieren, zu kompilieren und im Ladepfad während der Ausführung des 7774kopieren, zu kompilieren und im Ladepfad während der Ausführung des
7482@var{Ausdruck}s verfügbar zu machen — z.B. @code{((guix build utils) (guix 7775@var{Ausdruck}s verfügbar zu machen — z.B.@: @code{((guix build utils) (guix
7483build gnu-build-system))}. 7776build gnu-build-system))}.
7484 7777
7485@var{effective-version} bestimmt, unter welcher Zeichenkette die 7778@var{effective-version} bestimmt, unter welcher Zeichenkette die
7486Erweiterungen des @var{Ausdruck}s zum Suchpfad hinzugefügt werden (siehe 7779Erweiterungen des @var{Ausdruck}s zum Suchpfad hinzugefügt werden (siehe
7487@code{with-extensions}) — z.B. @code{"2.2"}. 7780@code{with-extensions}) — z.B.@: @code{"2.2"}.
7488 7781
7489@var{graft?} bestimmt, ob vom @var{Ausdruck} benannte Pakete veredelt werden 7782@var{graft?} bestimmt, ob vom @var{Ausdruck} benannte Pakete veredelt werden
7490sollen, falls Veredelungen zur Verfügung stehen. 7783sollen, falls Veredelungen zur Verfügung stehen.
@@ -7518,8 +7811,8 @@ Warnungen angezeigt werden sollen, wenn auf als veraltet markierten Code
7518zugegriffen wird (»deprecation warnings«). @var{deprecation-warnings} kann 7811zugegriffen wird (»deprecation warnings«). @var{deprecation-warnings} kann
7519@code{#f}, @code{#t} oder @code{'detailed} (detailliert) sein. 7812@code{#f}, @code{#t} oder @code{'detailed} (detailliert) sein.
7520 7813
7521Die anderen Argumente verhalten sich wie bei @code{derivation} 7814Die anderen Argumente verhalten sich wie bei @code{derivation} (siehe
7522(@pxref{Ableitungen}). 7815@ref{Ableitungen}).
7523@end deffn 7816@end deffn
7524 7817
7525@cindex dateiartige Objekte 7818@cindex dateiartige Objekte
@@ -7563,7 +7856,7 @@ absolute Dateiname und @var{Stat} das Ergebnis von @code{lstat} ist, außer
7563auf den Einträgen, wo @var{select?} keinen wahren Wert liefert. 7856auf den Einträgen, wo @var{select?} keinen wahren Wert liefert.
7564 7857
7565Dies ist das deklarative Gegenstück zur monadischen Prozedur 7858Dies ist das deklarative Gegenstück zur monadischen Prozedur
7566@code{interned-file} (@pxref{Die Store-Monade, @code{interned-file}}). 7859@code{interned-file} (siehe @ref{Die Store-Monade, @code{interned-file}}).
7567@end deffn 7860@end deffn
7568 7861
7569@deffn {Scheme-Prozedur} plain-file @var{Name} @var{Inhalt} 7862@deffn {Scheme-Prozedur} plain-file @var{Name} @var{Inhalt}
@@ -7601,7 +7894,7 @@ Folgendes Beispiel erstellt ein Skript, das einfach nur den Befehl
7601 "ls")) 7894 "ls"))
7602@end example 7895@end example
7603 7896
7604Lässt man es durch den Store »laufen« (siehe @pxref{Die Store-Monade, 7897Lässt man es durch den Store »laufen« (siehe @ref{Die Store-Monade,
7605@code{run-with-store}}), erhalten wir eine Ableitung, die eine ausführbare 7898@code{run-with-store}}), erhalten wir eine Ableitung, die eine ausführbare
7606Datei @file{/gnu/store/@dots{}-list-files} generiert, ungefähr so: 7899Datei @file{/gnu/store/@dots{}-list-files} generiert, ungefähr so:
7607 7900
@@ -7774,12 +8067,13 @@ zum Beispiel ein @code{<package>}.
7774@section @command{guix repl} aufrufen 8067@section @command{guix repl} aufrufen
7775 8068
7776@cindex REPL (Lese-Auswerten-Schreiben-Schleife) 8069@cindex REPL (Lese-Auswerten-Schreiben-Schleife)
7777The @command{guix repl} command spawns a Guile @dfn{read-eval-print loop} 8070Der Befehl @command{guix repl} startet eine Guile-REPL (@dfn{Read-Eval-Print
7778(REPL) for interactive programming (@pxref{Using Guile Interactively,,, 8071Loop}, kurz REPL, deutsch Lese-Auswerten-Schreiben-Schleife) zur
7779guile, GNU Guile Reference Manual}). Compared to just launching the 8072interaktiven Programmierung (siehe @ref{Using Guile Interactively,,, guile,
7780@command{guile} command, @command{guix repl} guarantees that all the Guix 8073GNU Guile Reference Manual}). Im Vergleich dazu, einfach den Befehl
7781modules and all its dependencies are available in the search path. You can 8074@command{guile} aufzurufen, garantiert @command{guix repl}, dass alle
7782use it this way: 8075Guix-Module und deren Abhängigkeiten im Suchpfad verfügbar sind. Sie können
8076die REPL so benutzen:
7783 8077
7784@example 8078@example
7785$ guix repl 8079$ guix repl
@@ -7789,37 +8083,40 @@ $1 = #<package coreutils@@8.29 gnu/packages/base.scm:327 3e28300>
7789@end example 8083@end example
7790 8084
7791@cindex Untergeordnete 8085@cindex Untergeordnete
7792In addition, @command{guix repl} implements a simple machine-readable REPL 8086@command{guix repl} implementiert zusätzlich ein einfaches maschinenlesbares
7793protocol for use by @code{(guix inferior)}, a facility to interact with 8087Protokoll für die REPL, das von @code{(guix inferior)} benutzt wird, um mit
7794@dfn{inferiors}, separate processes running a potentially different revision 8088@dfn{Untergeordneten} zu interagieren, also mit getrennten Prozessen einer
7795of Guix. 8089womöglich anderen Version von Guix.
7796 8090
7797Folgende @var{Optionen} gibt es: 8091Folgende @var{Optionen} gibt es:
7798 8092
7799@table @code 8093@table @code
7800@item --type=@var{type} 8094@item --type=@var{Typ}
7801@itemx -t @var{type} 8095@itemx -t @var{Typ}
7802Start a REPL of the given @var{TYPE}, which can be one of the following: 8096Startet eine REPL des angegebenen @var{Typ}s, der einer der Folgenden sein
8097darf:
7803 8098
7804@table @code 8099@table @code
7805@item guile 8100@item guile
7806This is default, and it spawns a standard full-featured Guile REPL. 8101Die Voreinstellung, mit der eine normale, voll funktionsfähige Guile-REPL
8102gestartet wird.
7807@item machine 8103@item machine
7808Spawn a REPL that uses the machine-readable protocol. This is the protocol 8104Startet eine REPL, die ein maschinenlesbares Protokoll benutzt. Dieses
7809that the @code{(guix inferior)} module speaks. 8105Protokoll wird vom Modul @code{(guix inferior)} gesprochen.
7810@end table 8106@end table
7811 8107
7812@item --listen=@var{Endpunkt} 8108@item --listen=@var{Endpunkt}
7813By default, @command{guix repl} reads from standard input and writes to 8109Der Vorgabe nach würde @command{guix repl} von der Standardeingabe lesen und
7814standard output. When this option is passed, it will instead listen for 8110auf die Standardausgabe schreiben. Wird diese Befehlszeilenoption angegeben,
7815connections on @var{endpoint}. Here are examples of valid options: 8111lauscht die REPL stattdessen auf dem @var{Endpunkt} auf Verbindungen. Hier
8112sind Beispiele gültiger Befehlszeilenoptionen:
7816 8113
7817@table @code 8114@table @code
7818@item --listen=tcp:37146 8115@item --listen=tcp:37146
7819Accept connections on localhost on port 37146. 8116Verbindungen mit dem »localhost« auf Port 37146 akzeptieren.
7820 8117
7821@item --listen=unix:/tmp/socket 8118@item --listen=unix:/tmp/socket
7822Accept connections on the Unix-domain socket @file{/tmp/socket}. 8119Verbindungen zum Unix-Socket @file{/tmp/socket} akzeptieren.
7823@end table 8120@end table
7824@end table 8121@end table
7825 8122
@@ -7838,12 +8135,12 @@ Befehle.
7838* Aufruf von guix edit:: Paketdefinitionen bearbeiten. 8135* Aufruf von guix edit:: Paketdefinitionen bearbeiten.
7839* Aufruf von guix download:: Herunterladen einer Datei und Ausgabe ihres 8136* Aufruf von guix download:: Herunterladen einer Datei und Ausgabe ihres
7840 Hashes. 8137 Hashes.
7841* Aufruf von guix hash:: Den kryptographischen Hash einer Datei 8138* Aufruf von guix hash:: Den kryptografischen Hash einer Datei
7842 berechnen. 8139 berechnen.
7843* Aufruf von guix import:: Paketdefinitionen importieren. 8140* Aufruf von guix import:: Paketdefinitionen importieren.
7844* Aufruf von guix refresh:: Paketdefinitionen aktualisieren. 8141* Aufruf von guix refresh:: Paketdefinitionen aktualisieren.
7845* Aufruf von guix lint:: Fehler in Paketdefinitionen finden. 8142* Aufruf von guix lint:: Fehler in Paketdefinitionen finden.
7846* Aufruf von guix size:: Plattenverbrauch profilieren. 8143* Aufruf von guix size:: Plattenplatzverbrauch profilieren.
7847* Aufruf von guix graph:: Den Paketgraphen visualisieren. 8144* Aufruf von guix graph:: Den Paketgraphen visualisieren.
7848* Aufruf von guix publish:: Substitute teilen. 8145* Aufruf von guix publish:: Substitute teilen.
7849* Aufruf von guix challenge:: Die Substitut-Server anfechten. 8146* Aufruf von guix challenge:: Die Substitut-Server anfechten.
@@ -7862,9 +8159,9 @@ Befehle.
7862Der Befehl @command{guix build} lässt Pakete oder Ableitungen samt ihrer 8159Der Befehl @command{guix build} lässt Pakete oder Ableitungen samt ihrer
7863Abhängigkeiten erstellen und gibt die resultierenden Pfade im Store 8160Abhängigkeiten erstellen und gibt die resultierenden Pfade im Store
7864aus. Beachten Sie, dass das Nutzerprofil dadurch nicht modifiziert wird — 8161aus. Beachten Sie, dass das Nutzerprofil dadurch nicht modifiziert wird —
7865eine solche Installation bewirkt der Befehl @command{guix package} 8162eine solche Installation bewirkt der Befehl @command{guix package} (siehe
7866(@pxref{Aufruf von guix package}). @command{guix build} wird also 8163@ref{Aufruf von guix package}). @command{guix build} wird also hauptsächlich
7867hauptsächlich von Entwicklern der Distribution benutzt. 8164von Entwicklern der Distribution benutzt.
7868 8165
7869Die allgemeine Syntax lautet: 8166Die allgemeine Syntax lautet:
7870 8167
@@ -7892,7 +8189,7 @@ Software-Distribution zu findenden Pakets, wie etwa @code{coreutils} oder
7892@code{coreutils@@8.20}, oder eine Ableitung wie 8189@code{coreutils@@8.20}, oder eine Ableitung wie
7893@file{/gnu/store/@dots{}-coreutils-8.19.drv} sein. Im ersten Fall wird nach 8190@file{/gnu/store/@dots{}-coreutils-8.19.drv} sein. Im ersten Fall wird nach
7894einem Paket mit entsprechendem Namen (und optional der entsprechenden 8191einem Paket mit entsprechendem Namen (und optional der entsprechenden
7895Version) in den Modulen der GNU-Distribution gesucht (@pxref{Paketmodule}). 8192Version) in den Modulen der GNU-Distribution gesucht (siehe @ref{Paketmodule}).
7896 8193
7897Alternativ kann die Befehlszeilenoption @code{--expression} benutzt werden, 8194Alternativ kann die Befehlszeilenoption @code{--expression} benutzt werden,
7898um einen Scheme-Ausdruck anzugeben, der zu einem Paket ausgewertet wird; 8195um einen Scheme-Ausdruck anzugeben, der zu einem Paket ausgewertet wird;
@@ -7924,8 +8221,8 @@ archive}, gemeinsam. Das sind folgende:
7924 8221
7925@item --load-path=@var{Verzeichnis} 8222@item --load-path=@var{Verzeichnis}
7926@itemx -L @var{Verzeichnis} 8223@itemx -L @var{Verzeichnis}
7927Das @var{Verzeichnis} vorne an den Suchpfad für Paketmodule anfügen 8224Das @var{Verzeichnis} vorne an den Suchpfad für Paketmodule anfügen (siehe
7928(@pxref{Paketmodule}). 8225@ref{Paketmodule}).
7929 8226
7930Damit können Nutzer dafür sorgen, dass ihre eigenen selbstdefinierten Pakete 8227Damit können Nutzer dafür sorgen, dass ihre eigenen selbstdefinierten Pakete
7931für die Befehlszeilenwerkzeuge sichtbar sind. 8228für die Befehlszeilenwerkzeuge sichtbar sind.
@@ -7936,12 +8233,13 @@ Den Verzeichnisbaum, in dem fehlgeschlagene Erstellungen durchgeführt
7936wurden, behalten. Wenn also eine Erstellung fehlschlägt, bleibt ihr 8233wurden, behalten. Wenn also eine Erstellung fehlschlägt, bleibt ihr
7937Erstellungsbaum in @file{/tmp} erhalten. Der Name dieses Unterverzeichnisses 8234Erstellungsbaum in @file{/tmp} erhalten. Der Name dieses Unterverzeichnisses
7938wird am Ende dem Erstellungsprotokolls ausgegeben. Dies hilft bei der Suche 8235wird am Ende dem Erstellungsprotokolls ausgegeben. Dies hilft bei der Suche
7939nach Fehlern in Erstellungen. Der Abschnitt @xref{Fehlschläge beim Erstellen untersuchen} 8236nach Fehlern in Erstellungen. Der Abschnitt @ref{Fehlschläge beim Erstellen untersuchen}
7940zeigt Ihnen Hinweise und Tricks, wie Erstellungsfehler untersucht werden 8237zeigt Ihnen Hinweise und Tricks, wie Erstellungsfehler untersucht werden
7941können. 8238können.
7942 8239
7943Diese Option hat keine Auswirkungen, wenn eine Verbindung zu einem 8240Diese Option hat keine Auswirkungen, wenn eine Verbindung zu einem
7944entfernten Daemon über eine @code{guix://}-URI verwendet wurde (@pxref{Der Store, the @code{GUIX_DAEMON_SOCKET} variable}). 8241entfernten Daemon über eine @code{guix://}-URI verwendet wurde (siehe
8242@ref{Der Store, the @code{GUIX_DAEMON_SOCKET} variable}).
7945 8243
7946@item --keep-going 8244@item --keep-going
7947@itemx -k 8245@itemx -k
@@ -7959,17 +8257,17 @@ Die Ableitungen nicht erstellen.
7959@anchor{fallback-option} 8257@anchor{fallback-option}
7960@item --fallback 8258@item --fallback
7961Wenn das Substituieren vorerstellter Binärdateien fehlschlägt, diese als 8259Wenn das Substituieren vorerstellter Binärdateien fehlschlägt, diese als
7962»Fallback« lokal selbst erstellen (@pxref{Fehler bei der Substitution}). 8260»Fallback« lokal selbst erstellen (siehe @ref{Fehler bei der Substitution}).
7963 8261
7964@item --substitute-urls=@var{URLs} 8262@item --substitute-urls=@var{URLs}
7965@anchor{client-substitute-urls} 8263@anchor{client-substitute-urls}
7966Die @var{urls} als durch Leerraumzeichen getrennte Liste von Quell-URLs für 8264Die @var{urls} als durch Leerraumzeichen getrennte Liste von Quell-URLs für
7967Substitute anstelle der vorgegebenen URL-Liste für den @command{guix-daemon} 8265Substitute anstelle der vorgegebenen URL-Liste für den @command{guix-daemon}
7968verwenden (@pxref{daemon-substitute-urls,, @command{guix-daemon} URLs}). 8266verwenden (siehe @ref{daemon-substitute-urls,, @command{guix-daemon} URLs}).
7969 8267
7970Das heißt, die Substitute dürfen von den @var{urls} heruntergeladen werden, 8268Das heißt, die Substitute dürfen von den @var{urls} heruntergeladen werden,
7971sofern sie mit einem durch den Systemadministrator autorisierten Schlüssel 8269sofern sie mit einem durch den Systemadministrator autorisierten Schlüssel
7972signiert worden sind (@pxref{Substitute}). 8270signiert worden sind (siehe @ref{Substitute}).
7973 8271
7974Wenn als @var{urls} eine leere Zeichenkette angegeben wurde, verhält es 8272Wenn als @var{urls} eine leere Zeichenkette angegeben wurde, verhält es
7975sich, als wären Substitute abgeschaltet. 8273sich, als wären Substitute abgeschaltet.
@@ -7977,12 +8275,12 @@ sich, als wären Substitute abgeschaltet.
7977@item --no-substitutes 8275@item --no-substitutes
7978Benutze keine Substitute für Erstellungsergebnisse. Das heißt, dass alle 8276Benutze keine Substitute für Erstellungsergebnisse. Das heißt, dass alle
7979Objekte lokal erstellt werden müssen, und kein Herunterladen von vorab 8277Objekte lokal erstellt werden müssen, und kein Herunterladen von vorab
7980erstellten Binärdateien erlaubt ist (@pxref{Substitute}). 8278erstellten Binärdateien erlaubt ist (siehe @ref{Substitute}).
7981 8279
7982@item --no-grafts 8280@item --no-grafts
7983Pakete nicht »veredeln« (engl. »graft«). Praktisch heißt das, dass als 8281Pakete nicht »veredeln« (engl. »graft«). Praktisch heißt das, dass als
7984Veredelungen verfügbare Paketaktualisierungen nicht angewandt werden. Der 8282Veredelungen verfügbare Paketaktualisierungen nicht angewandt werden. Der
7985Abschnitt @xref{Sicherheitsaktualisierungen} hat weitere Informationen zu Veredelungen. 8283Abschnitt @ref{Sicherheitsaktualisierungen} hat weitere Informationen zu Veredelungen.
7986 8284
7987@item --rounds=@var{n} 8285@item --rounds=@var{n}
7988Jede Ableitung @var{n}-mal nacheinander erstellen und einen Fehler melden, 8286Jede Ableitung @var{n}-mal nacheinander erstellen und einen Fehler melden,
@@ -7993,17 +8291,17 @@ Das ist eine nützliche Methode, um nicht-deterministische
7993Erstellungsprozesse zu erkennen. Nicht-deterministische Erstellungsprozesse 8291Erstellungsprozesse zu erkennen. Nicht-deterministische Erstellungsprozesse
7994sind ein Problem, weil Nutzer dadurch praktisch nicht @emph{verifizieren} 8292sind ein Problem, weil Nutzer dadurch praktisch nicht @emph{verifizieren}
7995können, ob von Drittanbietern bereitgestellte Binärdateien echt sind. Der 8293können, ob von Drittanbietern bereitgestellte Binärdateien echt sind. Der
7996Abschnitt @xref{Aufruf von guix challenge} erklärt dies genauer. 8294Abschnitt @ref{Aufruf von guix challenge} erklärt dies genauer.
7997 8295
7998Beachten Sie, dass die sich unterscheidenden Erstellungsergebnisse nicht 8296Beachten Sie, dass die sich unterscheidenden Erstellungsergebnisse nicht
7999erhalten bleiben, so dass Sie eventuelle Fehler manuell untersuchen müssen, 8297erhalten bleiben, so dass Sie eventuelle Fehler manuell untersuchen müssen,
8000z.B. indem Sie eines oder mehrere der Erstellungsergebnisse @code{guix 8298z.B.@: indem Sie eines oder mehrere der Erstellungsergebnisse @code{guix
8001archive --export} auslagern (@pxref{Aufruf von guix archive}), dann neu 8299archive --export} auslagern (siehe @ref{Aufruf von guix archive}), dann neu
8002erstellen und letztlich die beiden Erstellungsergebnisse vergleichen. 8300erstellen und letztlich die beiden Erstellungsergebnisse vergleichen.
8003 8301
8004@item --no-build-hook 8302@item --no-build-hook
8005Nicht versuchen, Erstellungen über den »Build-Hook« des Daemons auszulagern 8303Nicht versuchen, Erstellungen über den »Build-Hook« des Daemons auszulagern
8006(@pxref{Auslagern des Daemons einrichten}). Somit wird lokal erstellt, statt 8304(siehe @ref{Auslagern des Daemons einrichten}). Somit wird lokal erstellt, statt
8007Erstellungen auf entfernte Maschinen auszulagern. 8305Erstellungen auf entfernte Maschinen auszulagern.
8008 8306
8009@item --max-silent-time=@var{Sekunden} 8307@item --max-silent-time=@var{Sekunden}
@@ -8011,24 +8309,27 @@ Wenn der Erstellungs- oder Substitutionsprozess länger als
8011@var{Sekunden}-lang keine Ausgabe erzeugt, wird er abgebrochen und ein 8309@var{Sekunden}-lang keine Ausgabe erzeugt, wird er abgebrochen und ein
8012Fehler beim Erstellen gemeldet. 8310Fehler beim Erstellen gemeldet.
8013 8311
8014Standardmäßig wird die Einstellung für den Daemon benutzt (@pxref{Aufruf des guix-daemon, @code{--max-silent-time}}). 8312Standardmäßig wird die Einstellung für den Daemon benutzt (siehe
8313@ref{Aufruf des guix-daemon, @code{--max-silent-time}}).
8015 8314
8016@item --timeout=@var{Sekunden} 8315@item --timeout=@var{Sekunden}
8017Entsprechend wird hier der Erstellungs- oder Substitutionsprozess 8316Entsprechend wird hier der Erstellungs- oder Substitutionsprozess
8018abgebrochen und als Fehlschlag gemeldet, wenn er mehr als 8317abgebrochen und als Fehlschlag gemeldet, wenn er mehr als
8019@var{Sekunden}-lang dauert. 8318@var{Sekunden}-lang dauert.
8020 8319
8021Standardmäßig wird die Einstellung für den Daemon benutzt (@pxref{Aufruf des guix-daemon, @code{--timeout}}). 8320Standardmäßig wird die Einstellung für den Daemon benutzt (siehe
8321@ref{Aufruf des guix-daemon, @code{--timeout}}).
8022 8322
8023@c Note: This option is actually not part of %standard-build-options but 8323@c Note: This option is actually not part of %standard-build-options but
8024@c most programs honor it. 8324@c most programs honor it.
8025@cindex verbosity, of the command-line tools 8325@cindex Ausführlichkeit der Befehlszeilenwerkzeuge
8026@cindex build logs, verbosity 8326@cindex Erstellungsprotokolle, Ausführlichkeit
8027@item -v @var{level} 8327@item -v @var{Stufe}
8028@itemx --verbosity=@var{Stufe} 8328@itemx --verbosity=@var{Stufe}
8029Use the given verbosity @var{level}, an integer. Choosing 0 means that no 8329Die angegebene Ausführlichkeitsstufe verwenden. Als @var{Stufe} muss eine
8030output is produced, 1 is for quiet output, and 2 shows all the build log 8330ganze Zahl angegeben werden. Wird 0 gewählt, wird keine Ausgabe zur
8031output on standard error. 8331Fehlersuche angezeigt, 1 bedeutet eine knappe Ausgabe und 2 lässt alle
8332Erstellungsprotokollausgaben auf die Standardfehlerausgabe schreiben.
8032 8333
8033@item --cores=@var{n} 8334@item --cores=@var{n}
8034@itemx -c @var{n} 8335@itemx -c @var{n}
@@ -8039,14 +8340,15 @@ benutzt werden.
8039@item --max-jobs=@var{n} 8340@item --max-jobs=@var{n}
8040@itemx -M @var{n} 8341@itemx -M @var{n}
8041Höchstens @var{n} gleichzeitige Erstellungsaufträge erlauben. Im Abschnitt 8342Höchstens @var{n} gleichzeitige Erstellungsaufträge erlauben. Im Abschnitt
8042@xref{Aufruf des guix-daemon, @code{--max-jobs}}, finden Sie Details zu dieser 8343@ref{Aufruf des guix-daemon, @code{--max-jobs}} finden Sie Details zu dieser
8043Option und der äquivalenten Option des @command{guix-daemon}. 8344Option und der äquivalenten Option des @command{guix-daemon}.
8044 8345
8045@item --debug=@var{level} 8346@item --debug=@var{Stufe}
8046Produce debugging output coming from the build daemon. @var{level} must be 8347Ein Protokoll zur Fehlersuche ausgeben, das vom Erstellungsdaemon kommt. Als
8047an integer between 0 and 5; higher means more verbose output. Setting a 8348@var{Stufe} muss eine ganze Zahl zwischen 0 und 5 angegeben werden; höhere
8048level of 4 or more may be helpful when debugging setup issues with the build 8349Zahlen stehen für ausführlichere Ausgaben. Stufe 4 oder höher zu wählen,
8049daemon. 8350kann bei der Suche nach Fehlern, wie der Erstellungs-Daemon eingerichtet
8351ist, helfen.
8050 8352
8051@end table 8353@end table
8052 8354
@@ -8085,7 +8387,7 @@ auch @command{guix package} unterstützen, sind
8085@dfn{Paketvarianten} zu definieren — zum Beispiel können Pakete aus einem 8387@dfn{Paketvarianten} zu definieren — zum Beispiel können Pakete aus einem
8086anderen Quellcode als normalerweise erstellt werden. Damit ist es leicht, 8388anderen Quellcode als normalerweise erstellt werden. Damit ist es leicht,
8087angepasste Pakete schnell zu erstellen, ohne die vollständigen Definitionen 8389angepasste Pakete schnell zu erstellen, ohne die vollständigen Definitionen
8088von Paketvarianten einzutippen (@pxref{Pakete definieren}). 8390von Paketvarianten einzutippen (siehe @ref{Pakete definieren}).
8089 8391
8090@table @code 8392@table @code
8091 8393
@@ -8095,11 +8397,11 @@ von Paketvarianten einzutippen (@pxref{Pakete definieren}).
8095Den Paketquellcode für das @var{Paket} von der angegebenen @var{Quelle} 8397Den Paketquellcode für das @var{Paket} von der angegebenen @var{Quelle}
8096holen und die @var{Version} als seine Versionsnummer verwenden. Die 8398holen und die @var{Version} als seine Versionsnummer verwenden. Die
8097@var{Quelle} muss ein Dateiname oder eine URL sein wie bei @command{guix 8399@var{Quelle} muss ein Dateiname oder eine URL sein wie bei @command{guix
8098download} (@pxref{Aufruf von guix download}). 8400download} (siehe @ref{Aufruf von guix download}).
8099 8401
8100Wird kein @var{Paket} angegeben, wird als Paketname derjenige auf der 8402Wird kein @var{Paket} angegeben, wird als Paketname derjenige auf der
8101Befehlszeile angegebene Paketname angenommen, der zur Basis am Ende der 8403Befehlszeile angegebene Paketname angenommen, der zur Basis am Ende der
8102@var{Quelle} passt — wenn z.B. als @var{Quelle} die Datei 8404@var{Quelle} passt — wenn z.B.@: als @var{Quelle} die Datei
8103@code{/src/guile-2.0.10.tar.gz} angegeben wurde, entspricht das dem 8405@code{/src/guile-2.0.10.tar.gz} angegeben wurde, entspricht das dem
8104@code{guile}-Paket. 8406@code{guile}-Paket.
8105 8407
@@ -8150,7 +8452,7 @@ Die Ersetzung ist rekursiv und umfassend. In diesem Beispiel würde nicht nur
8150@code{guile} abhängt) für @code{guile@@2.0} neu erstellt. 8452@code{guile} abhängt) für @code{guile@@2.0} neu erstellt.
8151 8453
8152Implementiert wird das alles mit der Scheme-Prozedur 8454Implementiert wird das alles mit der Scheme-Prozedur
8153@code{package-input-rewriting} (@pxref{Pakete definieren, 8455@code{package-input-rewriting} (siehe @ref{Pakete definieren,
8154@code{package-input-rewriting}}). 8456@code{package-input-rewriting}}).
8155 8457
8156@item --with-graft=@var{Paket}=@var{Ersatz} 8458@item --with-graft=@var{Paket}=@var{Ersatz}
@@ -8158,7 +8460,7 @@ Dies verhält sich ähnlich wie mit @code{--with-input}, aber mit dem
8158wichtigen Unterschied, dass nicht die gesamte Abhängigkeitskette neu 8460wichtigen Unterschied, dass nicht die gesamte Abhängigkeitskette neu
8159erstellt wird, sondern das @var{Ersatz}-Paket erstellt und die 8461erstellt wird, sondern das @var{Ersatz}-Paket erstellt und die
8160ursprünglichen Binärdateien, die auf das @var{Paket} verwiesen haben, damit 8462ursprünglichen Binärdateien, die auf das @var{Paket} verwiesen haben, damit
8161@dfn{veredelt} werden. Im Abschnitt @xref{Sicherheitsaktualisierungen} finden Sie 8463@dfn{veredelt} werden. Im Abschnitt @ref{Sicherheitsaktualisierungen} finden Sie
8162weitere Informationen über Veredelungen. 8464weitere Informationen über Veredelungen.
8163 8465
8164Zum Beispiel veredelt folgender Befehl Wget und alle Abhängigkeiten davon 8466Zum Beispiel veredelt folgender Befehl Wget und alle Abhängigkeiten davon
@@ -8178,24 +8480,24 @@ kompatibel sein. Wenn das @var{Ersatz}-Paket auf irgendeine Art inkompatibel
8178mit dem @var{Paket} ist, könnte das Ergebnispaket unbrauchbar sein. Vorsicht 8480mit dem @var{Paket} ist, könnte das Ergebnispaket unbrauchbar sein. Vorsicht
8179ist also geboten! 8481ist also geboten!
8180 8482
8181@item --with-branch=@var{package}=@var{branch} 8483@item --with-git-url=@var{Paket}=@var{URL}
8182@cindex Git, using the latest commit 8484@cindex Git, den neuesten Commit benutzen
8183@cindex latest commit, building 8485@cindex latest commit, building
8184Build @var{package} from the latest commit of @var{branch}. The 8486Build @var{package} from the latest commit of the @code{master} branch of
8185@code{source} field of @var{package} must be an origin with the 8487the Git repository at @var{url}. Git sub-modules of the repository are
8186@code{git-fetch} method (@pxref{»origin«-Referenz}) or a @code{git-checkout} 8488fetched, recursively.
8187object; the repository URL is taken from that @code{source}. Git
8188sub-modules of the repository are fetched, recursively.
8189 8489
8190For instance, the following command builds @code{guile-sqlite3} from the 8490For example, the following command builds the NumPy Python library against
8191latest commit of its @code{master} branch, and then builds @code{guix} 8491the latest commit of the master branch of Python itself:
8192(which depends on it) and @code{cuirass} (which depends on @code{guix})
8193against this specific @code{guile-sqlite3} build:
8194 8492
8195@example 8493@example
8196guix build --with-branch=guile-sqlite3=master cuirass 8494guix build python-numpy \
8495 --with-git-url=python=https://github.com/python/cpython
8197@end example 8496@end example
8198 8497
8498This option can also be combined with @code{--with-branch} or
8499@code{--with-commit} (see below).
8500
8199@cindex continuous integration 8501@cindex continuous integration
8200Obviously, since it uses the latest commit of the given branch, the result 8502Obviously, since it uses the latest commit of the given branch, the result
8201of such a command varies over time. Nevertheless it is a convenient way to 8503of such a command varies over time. Nevertheless it is a convenient way to
@@ -8207,7 +8509,23 @@ Checkouts are kept in a cache under @file{~/.cache/guix/checkouts} to speed
8207up consecutive accesses to the same repository. You may want to clean it up 8509up consecutive accesses to the same repository. You may want to clean it up
8208once in a while to save disk space. 8510once in a while to save disk space.
8209 8511
8210@item --with-commit=@var{package}=@var{commit} 8512@item --with-branch=@var{Paket}=@var{Branch}
8513Build @var{package} from the latest commit of @var{branch}. If the
8514@code{source} field of @var{package} is an origin with the @code{git-fetch}
8515method (@pxref{»origin«-Referenz}) or a @code{git-checkout} object, the
8516repository URL is taken from that @code{source}. Otherwise you have to use
8517@code{--with-git-url} to specify the URL of the Git repository.
8518
8519For instance, the following command builds @code{guile-sqlite3} from the
8520latest commit of its @code{master} branch, and then builds @code{guix}
8521(which depends on it) and @code{cuirass} (which depends on @code{guix})
8522against this specific @code{guile-sqlite3} build:
8523
8524@example
8525guix build --with-branch=guile-sqlite3=master cuirass
8526@end example
8527
8528@item --with-commit=@var{Paket}=@var{Commit}
8211This is similar to @code{--with-branch}, except that it builds from 8529This is similar to @code{--with-branch}, except that it builds from
8212@var{commit} rather than the tip of a branch. @var{commit} must be a valid 8530@var{commit} rather than the tip of a branch. @var{commit} must be a valid
8213Git commit SHA1 identifier. 8531Git commit SHA1 identifier.
@@ -8223,19 +8541,19 @@ Die unten aufgeführten Befehlszeilenoptionen funktionieren nur mit
8223 8541
8224@item --quiet 8542@item --quiet
8225@itemx -q 8543@itemx -q
8226Build quietly, without displaying the build log; this is equivalent to 8544Schweigend erstellen, ohne das Erstellungsprotokoll anzuzeigen dies ist
8227@code{--verbosity=0}. Upon completion, the build log is kept in @file{/var} 8545äquivalent zu @code{--verbosity=0}. Nach Abschluss der Erstellung ist das
8228(or similar) and can always be retrieved using the @option{--log-file} 8546Protokoll in @file{/var} (oder einem entsprechenden Ort) einsehbar und kann
8229option. 8547jederzeit mit der Befehlszeilenoption @option{--log-file} gefunden werden.
8230 8548
8231@item --file=@var{Datei} 8549@item --file=@var{Datei}
8232@itemx -f @var{Datei} 8550@itemx -f @var{Datei}
8233Das Paket, die Ableitung oder das dateiähnliche Objekt erstellen, zu dem der 8551Das Paket, die Ableitung oder das dateiähnliche Objekt erstellen, zu dem der
8234Code in der @var{Datei} ausgewertet wird (@pxref{G-Ausdrücke, file-like 8552Code in der @var{Datei} ausgewertet wird (siehe @ref{G-Ausdrücke,
8235objects}). 8553file-like objects}).
8236 8554
8237Zum Beispiel könnte in der @var{Datei} so eine Paketdefinition stehen 8555Zum Beispiel könnte in der @var{Datei} so eine Paketdefinition stehen (siehe
8238(@pxref{Pakete definieren}): 8556@ref{Pakete definieren}):
8239 8557
8240@example 8558@example
8241@verbatiminclude package-hello.scm 8559@verbatiminclude package-hello.scm
@@ -8243,63 +8561,68 @@ Zum Beispiel könnte in der @var{Datei} so eine Paketdefinition stehen
8243 8561
8244@item --expression=@var{Ausdruck} 8562@item --expression=@var{Ausdruck}
8245@itemx -e @var{Ausdruck} 8563@itemx -e @var{Ausdruck}
8246Build the package or derivation @var{expr} evaluates to. 8564Das Paket oder die Ableitung erstellen, zu der der @var{Ausdruck}
8565ausgewertet wird.
8247 8566
8248For example, @var{expr} may be @code{(@@ (gnu packages guile) guile-1.8)}, 8567Zum Beispiel kann der @var{Ausdruck} @code{(@@ (gnu packages guile)
8249which unambiguously designates this specific variant of version 1.8 of 8568guile-1.8)} sein, was diese bestimmte Variante der Version 1.8 von Guile
8250Guile. 8569eindeutig bezeichnet.
8251 8570
8252Alternatively, @var{expr} may be a G-expression, in which case it is used as 8571Alternativ kann der @var{Ausdruck} ein G-Ausdruck sein. In diesem Fall wird
8253a build program passed to @code{gexp->derivation} (@pxref{G-Ausdrücke}). 8572er als Erstellungsprogramm an @code{gexp->derivation} übergeben (siehe
8573@ref{G-Ausdrücke}).
8254 8574
8255Lastly, @var{expr} may refer to a zero-argument monadic procedure 8575Zudem kann der @var{Ausdruck} eine monadische Prozedur mit null Argumenten
8256(@pxref{Die Store-Monade}). The procedure must return a derivation as a 8576bezeichnen (siehe @ref{Die Store-Monade}). Die Prozedur muss eine Ableitung
8257monadic value, which is then passed through @code{run-with-store}. 8577als monadischen Wert zurückliefern, die dann durch @code{run-with-store}
8578laufen gelassen wird.
8258 8579
8259@item --source 8580@item --source
8260@itemx -S 8581@itemx -S
8261Build the source derivations of the packages, rather than the packages 8582Die Quellcode-Ableitung der Pakete statt die Pakete selbst erstellen.
8262themselves.
8263 8583
8264For instance, @code{guix build -S gcc} returns something like 8584Zum Beispiel liefert @code{guix build -S gcc} etwas in der Art von
8265@file{/gnu/store/@dots{}-gcc-4.7.2.tar.bz2}, which is the GCC source 8585@file{/gnu/store/@dots{}-gcc-4.7.2.tar.bz2}, also den Tarball mit dem
8266tarball. 8586GCC-Quellcode.
8267 8587
8268The returned source tarball is the result of applying any patches and code 8588Der gelieferte Quell-Tarball ist das Ergebnis davon, alle Patches und
8269snippets specified in the package @code{origin} (@pxref{Pakete definieren}). 8589Code-Schnipsel aufzuspielen, die im @code{origin}-Objekt des Pakets
8590festgelegt wurden (siehe @ref{Pakete definieren}).
8270 8591
8271@item --sources 8592@item --sources
8272Fetch and return the source of @var{package-or-derivation} and all their 8593Den Quellcode für @var{Paket-oder-Ableitung} und alle Abhängigkeiten davon
8273dependencies, recursively. This is a handy way to obtain a local copy of 8594rekursiv herunterladen und zurückliefern. Dies ist eine praktische Methode,
8274all the source code needed to build @var{packages}, allowing you to 8595eine lokale Kopie des gesamten Quellcodes zu beziehen, der nötig ist, um die
8275eventually build them even without network access. It is an extension of 8596Pakete zu erstellen, damit Sie diese später auch ohne Netzwerkzugang
8276the @code{--source} option and can accept one of the following optional 8597erstellen lassen können. Es handelt sich um eine Erweiterung der
8277argument values: 8598Befehlszeilenoption @code{--source}, die jeden der folgenden Argumentwerte
8599akzeptiert:
8278 8600
8279@table @code 8601@table @code
8280@item package 8602@item package
8281This value causes the @code{--sources} option to behave in the same way as 8603Mit diesem Wert verhält sich die Befehlszeilenoption @code{--sources} auf
8282the @code{--source} option. 8604genau die gleiche Weise wie die Befehlszeilenoption @code{--source}.
8283 8605
8284@item all 8606@item all
8285Build the source derivations of all packages, including any source that 8607Erstellt die Quellcode-Ableitungen aller Pakete einschließlich allen
8286might be listed as @code{inputs}. This is the default value. 8608Quellcodes, der als Teil der Eingaben im @code{inputs}-Feld aufgelistet
8609ist. Dies ist der vorgegebene Wert, wenn sonst keiner angegeben wird.
8287 8610
8288@example 8611@example
8289$ guix build --sources tzdata 8612$ guix build --sources tzdata
8290The following derivations will be built: 8613Folgende Ableitungen werden erstellt:
8291 /gnu/store/@dots{}-tzdata2015b.tar.gz.drv 8614 /gnu/store/@dots{}-tzdata2015b.tar.gz.drv
8292 /gnu/store/@dots{}-tzcode2015b.tar.gz.drv 8615 /gnu/store/@dots{}-tzcode2015b.tar.gz.drv
8293@end example 8616@end example
8294 8617
8295@item transitive 8618@item transitive
8296Build the source derivations of all packages, as well of all transitive 8619Die Quellcode-Ableitungen aller Pakete sowie aller transitiven Eingaben der
8297inputs to the packages. This can be used e.g.@: to prefetch package source 8620Pakete erstellen. Damit kann z.B.@: Paket-Quellcode vorab heruntergeladen
8298for later offline building. 8621und später offline erstellt werden.
8299 8622
8300@example 8623@example
8301$ guix build --sources=transitive tzdata 8624$ guix build --sources=transitive tzdata
8302The following derivations will be built: 8625Folgende Ableitungen werden erstellt:
8303 /gnu/store/@dots{}-tzcode2015b.tar.gz.drv 8626 /gnu/store/@dots{}-tzcode2015b.tar.gz.drv
8304 /gnu/store/@dots{}-findutils-4.4.2.tar.xz.drv 8627 /gnu/store/@dots{}-findutils-4.4.2.tar.xz.drv
8305 /gnu/store/@dots{}-grep-2.21.tar.xz.drv 8628 /gnu/store/@dots{}-grep-2.21.tar.xz.drv
@@ -8314,54 +8637,55 @@ The following derivations will be built:
8314@item --system=@var{System} 8637@item --system=@var{System}
8315@itemx -s @var{System} 8638@itemx -s @var{System}
8316Versuchen, für die angegebene Art von @var{System} geeignete Binärdateien zu 8639Versuchen, für die angegebene Art von @var{System} geeignete Binärdateien zu
8317erstellen — z.B. @code{i686-linux} — statt für die Art von System, das die 8640erstellen — z.B.@: @code{i686-linux} — statt für die Art von System, das die
8318Erstellung durchführt. 8641Erstellung durchführt.
8319 8642
8320@quotation Anmerkung 8643@quotation Anmerkung
8321The @code{--system} flag is for @emph{native} compilation and must not be 8644Die Befehlszeilenoption @code{--system} dient der @emph{nativen}
8322confused with cross-compilation. See @code{--target} below for information 8645Kompilierung (nicht zu verwechseln mit Cross-Kompilierung). Siehe
8323on cross-compilation. 8646@code{--target} unten r Informationen zur Cross-Kompilierung.
8324@end quotation 8647@end quotation
8325 8648
8326An example use of this is on Linux-based systems, which can emulate 8649Ein Beispiel sind Linux-basierte Systeme, die verschiedene Persönlichkeiten
8327different personalities. For instance, passing @code{--system=i686-linux} 8650emulieren nnen. Zum Beispiel können Sie @code{--system=i686-linux} auf
8328on an @code{x86_64-linux} system or @code{--system=armhf-linux} on an 8651einem @code{x86_64-linux}-System oder @code{--system=armhf-linux} auf einem
8329@code{aarch64-linux} system allows you to build packages in a complete 8652@code{aarch64-linux}-System angeben, um Pakete in einer vollständigen
833032-bit environment. 865332-Bit-Umgebung zu erstellen.
8331 8654
8332@quotation Anmerkung 8655@quotation Anmerkung
8333Building for an @code{armhf-linux} system is unconditionally enabled on 8656Das Erstellen für ein @code{armhf-linux}-System ist ungeprüft auf allen
8334@code{aarch64-linux} machines, although certain aarch64 chipsets do not 8657@code{aarch64-linux}-Maschinen aktiviert, obwohl bestimmte aarch64-Chipsätze
8335allow for this functionality, notably the ThunderX. 8658diese Funktionalität nicht unterstützen, darunter auch ThunderX.
8336@end quotation 8659@end quotation
8337 8660
8338Similarly, when transparent emulation with QEMU and @code{binfmt_misc} is 8661Ebenso können Sie, wenn transparente Emulation mit QEMU und
8339enabled (@pxref{Virtualisierungsdienste, @code{qemu-binfmt-service-type}}), 8662@code{binfmt_misc} aktiviert sind (siehe @ref{Virtualisierungsdienste,
8340you can build for any system for which a QEMU @code{binfmt_misc} handler is 8663@code{qemu-binfmt-service-type}}), für jedes System Erstellungen
8341installed. 8664durchführen, für das ein QEMU-@code{binfmt_misc}-Handler installiert ist.
8342 8665
8343Builds for a system other than that of the machine you are using can also be 8666Erstellungen für ein anderes System, das nicht dem System der Maschine, die
8344offloaded to a remote machine of the right architecture. @xref{Auslagern des Daemons einrichten}, for more information on offloading. 8667Sie benutzen, entspricht, können auch auf eine entfernte Maschine mit der
8668richtigen Architektur ausgelagert werden. Siehe @ref{Auslagern des Daemons einrichten}
8669für mehr Informationen über das Auslagern.
8345 8670
8346@item --target=@var{Tripel} 8671@item --target=@var{Tripel}
8347@cindex Cross-Kompilieren 8672@cindex Cross-Kompilieren
8348Lässt für das angegebene @var{Tripel} cross-erstellen, dieses muss ein 8673Lässt für das angegebene @var{Tripel} cross-erstellen, dieses muss ein
8349gültiges GNU-Tripel wie z.B. @code{"mips64el-linux-gnu"} sein 8674gültiges GNU-Tripel wie z.B.@: @code{"mips64el-linux-gnu"} sein (siehe
8350(@pxref{Specifying target triplets, GNU configuration triplets,, autoconf, 8675@ref{Specifying target triplets, GNU configuration triplets,, autoconf,
8351Autoconf}). 8676Autoconf}).
8352 8677
8353@anchor{build-check} 8678@anchor{build-check}
8354@item --check 8679@item --check
8355@cindex determinism, checking 8680@cindex Determinismus, Überprüfung
8356@cindex reproducibility, checking 8681@cindex Reproduzierbarkeit, Überprüfung
8357Rebuild @var{package-or-derivation}, which are already available in the 8682@var{Paket-oder-Ableitung} erneut erstellen, wenn diese bereits im Store
8358store, and raise an error if the build results are not bit-for-bit 8683verfügbar ist, und einen Fehler melden, wenn die Erstellungsergebnisse nicht
8359identical. 8684Bit für Bit identisch sind.
8360 8685
8361This mechanism allows you to check whether previously installed substitutes 8686Mit diesem Mechanismus können Sie überprüfen, ob zuvor installierte
8362are genuine (@pxref{Substitute}), or whether the build result of a package 8687Substitute unverfälscht sind (siehe @ref{Substitute}) oder auch ob das
8363is deterministic. @xref{Aufruf von guix challenge}, for more background 8688Erstellungsergebnis eines Pakets deterministisch ist. Siehe @ref{Aufruf von guix challenge} für mehr Hintergrundinformationen und Werkzeuge.
8364information and tools.
8365 8689
8366Wenn dies zusammen mit @option{--keep-failed} benutzt wird, bleiben die sich 8690Wenn dies zusammen mit @option{--keep-failed} benutzt wird, bleiben die sich
8367unterscheidenden Ausgaben im Store unter dem Namen 8691unterscheidenden Ausgaben im Store unter dem Namen
@@ -8369,36 +8693,40 @@ unterscheidenden Ausgaben im Store unter dem Namen
8369beiden Ergebnissen leicht erkannt werden. 8693beiden Ergebnissen leicht erkannt werden.
8370 8694
8371@item --repair 8695@item --repair
8372@cindex repairing store items 8696@cindex Reparieren von Store-Objekten
8373@cindex Datenbeschädigung, Behebung 8697@cindex Datenbeschädigung, Behebung
8374Attempt to repair the specified store items, if they are corrupt, by 8698Versuchen, die angegebenen Store-Objekte zu reparieren, wenn sie beschädigt
8375re-downloading or rebuilding them. 8699sind, indem sie neu heruntergeladen oder neu erstellt werden.
8376 8700
8377This operation is not atomic and thus restricted to @code{root}. 8701Diese Operation ist nicht atomar und nur der Administratornutzer @code{root}
8702kann sie verwenden.
8378 8703
8379@item --derivations 8704@item --derivations
8380@itemx -d 8705@itemx -d
8381Return the derivation paths, not the output paths, of the given packages. 8706Liefert die Ableitungspfade und @emph{nicht} die Ausgabepfade für die
8382 8707angegebenen Pakete.
8383@item --root=@var{file} 8708
8384@itemx -r @var{file} 8709@item --root=@var{Datei}
8385@cindex GC roots, adding 8710@itemx -r @var{Datei}
8386@cindex garbage collector roots, adding 8711@cindex GC-Wurzeln, Hinzufügen
8387Make @var{file} a symlink to the result, and register it as a garbage 8712@cindex Müllsammlerwurzeln, Hinzufügen
8388collector root. 8713Die @var{Datei} zu einer symbolischen Verknüpfung auf das Ergebnis machen
8389 8714und als Müllsammlerwurzel registrieren.
8390Consequently, the results of this @command{guix build} invocation are 8715
8391protected from garbage collection until @var{file} is removed. When that 8716Dadurch wird das Ergebnis dieses Aufrufs von @command{guix build} vor dem
8392option is omitted, build results are eligible for garbage collection as soon 8717Müllsammler geschützt, bis die @var{Datei} gelöscht wird. Wird diese
8393as the build completes. @xref{Aufruf von guix gc}, for more on GC roots. 8718Befehlszeilenoption @emph{nicht} angegeben, können Erstellungsergebnisse vom
8719Müllsammler geholt werden, sobald die Erstellung abgeschlossen ist. Siehe
8720@ref{Aufruf von guix gc} für mehr Informationen zu Müllsammlerwurzeln.
8394 8721
8395@item --log-file 8722@item --log-file
8396@cindex build logs, access 8723@cindex Erstellungsprotokolle, Zugriff
8397Return the build log file names or URLs for the given 8724Liefert die Dateinamen oder URLs der Erstellungsprotokolle für das
8398@var{package-or-derivation}, or raise an error if build logs are missing. 8725angegebene @var{Paket-oder-Ableitung} oder meldet einen Fehler, falls
8726Protokolldateien fehlen.
8399 8727
8400This works regardless of how packages or derivations are specified. For 8728Dies funktioniert, egal wie die Pakete oder Ableitungen angegeben
8401instance, the following invocations are equivalent: 8729werden. Zum Beispiel sind folgende Aufrufe alle äquivalent:
8402 8730
8403@example 8731@example
8404guix build --log-file `guix build -d guile` 8732guix build --log-file `guix build -d guile`
@@ -8407,40 +8735,47 @@ guix build --log-file guile
8407guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)' 8735guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)'
8408@end example 8736@end example
8409 8737
8410If a log is unavailable locally, and unless @code{--no-substitutes} is 8738Wenn ein Protokoll lokal nicht verfügbar ist und sofern
8411passed, the command looks for a corresponding log on one of the substitute 8739@code{--no-substitutes} nicht übergeben wurde, sucht der Befehl nach einem
8412servers (as specified with @code{--substitute-urls}.) 8740entsprechenden Protokoll auf einem der Substitutserver (die mit
8741@code{--substitute-urls} angegeben werden können).
8413 8742
8414So for instance, imagine you want to see the build log of GDB on MIPS, but 8743Stellen Sie sich zum Beispiel vor, sie wollten das Erstellungsprotokoll von
8415you are actually on an @code{x86_64} machine: 8744GDB auf einem MIPS-System sehen, benutzen aber selbst eine
8745@code{x86_64}-Maschine:
8416 8746
8417@example 8747@example
8418$ guix build --log-file gdb -s mips64el-linux 8748$ guix build --log-file gdb -s mips64el-linux
8419https://@value{SUBSTITUTE-SERVER}/log/@dots{}-gdb-7.10 8749https://@value{SUBSTITUTE-SERVER}/log/@dots{}-gdb-7.10
8420@end example 8750@end example
8421 8751
8422You can freely access a huge library of build logs! 8752So haben Sie umsonst Zugriff auf eine riesige Bibliothek von
8753Erstellungsprotokollen!
8423@end table 8754@end table
8424 8755
8425@node Fehlschläge beim Erstellen untersuchen 8756@node Fehlschläge beim Erstellen untersuchen
8426@subsection Fehlschläge beim Erstellen untersuchen 8757@subsection Fehlschläge beim Erstellen untersuchen
8427 8758
8428@cindex build failures, debugging 8759@cindex Erstellungsfehler, Fehlersuche
8429When defining a new package (@pxref{Pakete definieren}), you will probably 8760Wenn Sie ein neues Paket definieren (siehe @ref{Pakete definieren}), werden
8430find yourself spending some time debugging and tweaking the build until it 8761Sie sich vermutlich einige Zeit mit der Fehlersuche beschäftigen und die
8431succeeds. To do that, you need to operate the build commands yourself in an 8762Erstellung so lange anpassen, bis sie funktioniert. Dazu müssen Sie die
8432environment as close as possible to the one the build daemon uses. 8763Erstellungsbefehle selbst in einer Umgebung benutzen, die der, die der
8764Erstellungsdaemon aufbaut, so ähnlich wie möglich ist.
8433 8765
8434To that end, the first thing to do is to use the @option{--keep-failed} or 8766Das Erste, was Sie dafür tun müssen, ist die Befehlszeilenoption
8435@option{-K} option of @command{guix build}, which will keep the failed build 8767@option{--keep-failed} oder @option{-K} von @command{guix build}
8436tree in @file{/tmp} or whatever directory you specified as @code{TMPDIR} 8768einzusetzen, wodurch Verzeichnisbäume fehlgeschlagener Erstellungen in
8437(@pxref{Aufruf von guix build, @code{--keep-failed}}). 8769@file{/tmp} oder dem von Ihnen als @code{TMPDIR} ausgewiesenen Verzeichnis
8770erhalten und nicht gelöscht werden (siehe @ref{Aufruf von guix build,
8771@code{--keep-failed}}).
8438 8772
8439From there on, you can @command{cd} to the failed build tree and source the 8773Im Anschluss können Sie mit @command{cd} in die Verzeichnisse dieses
8440@file{environment-variables} file, which contains all the environment 8774fehlgeschlagenen Erstellungsbaums wechseln und mit @command{source} dessen
8441variable definitions that were in place when the build failed. So let's say 8775@file{environment-variables}-Datei laden, die alle
8442you're debugging a build failure in package @code{foo}; a typical session 8776Umgebungsvariablendefinitionen enthält, die zum Zeitpunkt des Fehlschlags
8443would look like this: 8777der Erstellung galten. Sagen wir, Sie suchen Fehler in einem Paket
8778@code{foo}, dann würde eine typische Sitzung so aussehen:
8444 8779
8445@example 8780@example
8446$ guix build foo -K 8781$ guix build foo -K
@@ -8450,17 +8785,18 @@ $ source ./environment-variables
8450$ cd foo-1.2 8785$ cd foo-1.2
8451@end example 8786@end example
8452 8787
8453Now, you can invoke commands as if you were the daemon (almost) and 8788Nun nnen Sie Befehle (fast) so aufrufen, als wären Sie der Daemon, und
8454troubleshoot your build process. 8789Fehlerursachen in Ihrem Erstellungsprozess ermitteln.
8455 8790
8456Sometimes it happens that, for example, a package's tests pass when you run 8791Manchmal passiert es, dass zum Beispiel die Tests eines Pakets erfolgreich
8457them manually but they fail when the daemon runs them. This can happen 8792sind, wenn Sie sie manuell aufrufen, aber scheitern, wenn der Daemon sie
8458because the daemon runs builds in containers where, unlike in our 8793ausführt. Das kann passieren, weil der Daemon Erstellungen in isolierten
8459environment above, network access is missing, @file{/bin/sh} does not exist, 8794Umgebungen (»Containern«) durchführt, wo, anders als in der obigen Umgebung,
8460etc. (@pxref{Einrichten der Erstellungsumgebung}). 8795kein Netzwerkzugang möglich ist, @file{/bin/sh} nicht exisiert usw.@: (siehe
8796@ref{Einrichten der Erstellungsumgebung}).
8461 8797
8462In such cases, you may need to run inspect the build process from within a 8798In solchen Fällen müssen Sie den Erstellungsprozess womöglich aus einer zu
8463container similar to the one the build daemon creates: 8799der des Daemons ähnlichen isolierten Umgebung heraus ausprobieren:
8464 8800
8465@example 8801@example
8466$ guix build -K foo 8802$ guix build -K foo
@@ -8471,162 +8807,176 @@ $ guix environment --no-grafts -C foo --ad-hoc strace gdb
8471[env]# cd foo-1.2 8807[env]# cd foo-1.2
8472@end example 8808@end example
8473 8809
8474Here, @command{guix environment -C} creates a container and spawns a new 8810Hierbei erzeugt @command{guix environment -C} eine isolierte Umgebung und
8475shell in it (@pxref{Aufruf von guix environment}). The @command{--ad-hoc 8811öffnet darin eine Shell (siehe @ref{Aufruf von guix environment}). Der Teil
8476strace gdb} part adds the @command{strace} and @command{gdb} commands to the 8812mit @command{--ad-hoc strace gdb} fügt die Befehle @command{strace} und
8477container, which would may find handy while debugging. The 8813@command{gdb} zur isolierten Umgebung hinzu, die Sie gut gebrauchen könnten,
8478@option{--no-grafts} option makes sure we get the exact same environment, 8814während Sie Fehler suchen. Wegen der Befehlszeilenoption
8479with ungrafted packages (@pxref{Sicherheitsaktualisierungen}, for more info on grafts). 8815@option{--no-grafts} bekommen Sie haargenau dieselbe Umgebung ohne veredelte
8816Pakete (siehe @ref{Sicherheitsaktualisierungen} für mehr Informationen zu
8817Veredelungen).
8480 8818
8481To get closer to a container like that used by the build daemon, we can 8819Um der isolierten Umgebung des Erstellungsdaemons noch näher zu kommen,
8482remove @file{/bin/sh}: 8820können wir @file{/bin/sh} entfernen:
8483 8821
8484@example 8822@example
8485[env]# rm /bin/sh 8823[env]# rm /bin/sh
8486@end example 8824@end example
8487 8825
8488(Don't worry, this is harmless: this is all happening in the throw-away 8826(Keine Sorge, das ist harmlos: All dies passiert nur in der zuvor von
8489container created by @command{guix environment}.) 8827@command{guix environment} erzeugten Wegwerf-Umgebung.)
8490 8828
8491The @command{strace} command is probably not in the search path, but we can 8829Der Befehl @command{strace} befindet sich wahrscheinlich nicht in Ihrem
8492run: 8830Suchpfad, aber wir können ihn so benutzen:
8493 8831
8494@example 8832@example
8495[env]# $GUIX_ENVIRONMENT/bin/strace -f -o log make check 8833[env]# $GUIX_ENVIRONMENT/bin/strace -f -o log make check
8496@end example 8834@end example
8497 8835
8498In this way, not only you will have reproduced the environment variables the 8836Auf diese Weise haben Sie nicht nur die Umgebungsvariablen, die der Daemon
8499daemon uses, you will also be running the build process in a container 8837benutzt, nachgebildet, sondern lassen auch den Erstellungsprozess in einer
8500similar to the one the daemon uses. 8838isolierten Umgebung ähnlich der des Daemons laufen.
8501 8839
8502 8840
8503@node Aufruf von guix edit 8841@node Aufruf von guix edit
8504@section Invoking @command{guix edit} 8842@section @command{guix edit} aufrufen
8505 8843
8506@cindex @command{guix edit} 8844@cindex @command{guix edit}
8507@cindex package definition, editing 8845@cindex Paketdefinition, Bearbeiten
8508So many packages, so many source files! The @command{guix edit} command 8846So viele Pakete, so viele Quelldateien! Der Befehl @command{guix edit}
8509facilitates the life of users and packagers by pointing their editor at the 8847erleichtert das Leben von sowohl Nutzern als auch Paketentwicklern, indem er
8510source file containing the definition of the specified packages. For 8848Ihren Editor anweist, die Quelldatei mit der Definition des jeweiligen
8511instance: 8849Pakets zu bearbeiten. Zum Beispiel startet dies:
8512 8850
8513@example 8851@example
8514guix edit gcc@@4.9 vim 8852guix edit gcc@@4.9 vim
8515@end example 8853@end example
8516 8854
8517@noindent 8855@noindent
8518launches the program specified in the @code{VISUAL} or in the @code{EDITOR} 8856das mit der Umgebungsvariablen @code{VISUAL} ode @code{EDITOR} angegebene
8519environment variable to view the recipe of GCC@tie{}4.9.3 and that of Vim. 8857Programm und lässt es das Rezept von GCC@tie{}4.9.3 und von Vim anzeigen.
8520 8858
8521If you are using a Guix Git checkout (@pxref{Erstellung aus dem Git}), or have 8859Wenn Sie ein Git-Checkout von Guix benutzen (siehe @ref{Erstellung aus dem Git})
8522created your own packages on @code{GUIX_PACKAGE_PATH} (@pxref{Paketmodule}), you will be able to edit the package recipes. In other cases, 8860oder Ihre eigenen Pakete im @code{GUIX_PACKAGE_PATH} erstellt haben (siehe
8523you will be able to examine the read-only recipes for packages currently in 8861@ref{Paketmodule}), werden Sie damit die Paketrezepte auch bearbeiten
8524the store. 8862können. Andernfalls werden Sie zumindest in die Lage versetzt, die nur
8863lesbaren Rezepte für sich im Moment im Store befindliche Pakete zu
8864untersuchen.
8525 8865
8526 8866
8527@node Aufruf von guix download 8867@node Aufruf von guix download
8528@section Invoking @command{guix download} 8868@section @command{guix download} aufrufen
8529 8869
8530@cindex @command{guix download} 8870@cindex @command{guix download}
8531@cindex downloading package sources 8871@cindex Paketquellcode herunterladen
8532When writing a package definition, developers typically need to download a 8872Wenn Entwickler einer Paketdefinition selbige schreiben, müssen diese
8533source tarball, compute its SHA256 hash, and write that hash in the package 8873normalerweise einen Quellcode-Tarball herunterladen, seinen SHA256-Hash als
8534definition (@pxref{Pakete definieren}). The @command{guix download} tool 8874Prüfsumme berechnen und diese in der Paketdefinition eintragen (siehe
8535helps with this task: it downloads a file from the given URI, adds it to the 8875@ref{Pakete definieren}). Das Werkzeug @command{guix download} hilft bei
8536store, and prints both its file name in the store and its SHA256 hash. 8876dieser Aufgabe: Damit wird eine Datei von der angegebenen URI
8537 8877heruntergeladen, in den Store eingelagert und sowohl ihr Dateiname im Store
8538The fact that the downloaded file is added to the store saves bandwidth: 8878als auch ihr SHA256-Hash als Prüfsumme angezeigt.
8539when the developer eventually tries to build the newly defined package with 8879
8540@command{guix build}, the source tarball will not have to be downloaded 8880Dadurch, dass die heruntergeladene Datei in den Store eingefügt wird, wird
8541again because it is already in the store. It is also a convenient way to 8881Bandbreite gespart: Wenn der Entwickler schließlich versucht, das neu
8542temporarily stash files, which may be deleted eventually (@pxref{Aufruf von guix gc}). 8882definierte Paket mit @command{guix build} zu erstellen, muss der
8543 8883Quell-Tarball nicht erneut heruntergeladen werden, weil er sich bereits im
8544The @command{guix download} command supports the same URIs as used in 8884Store befindet. Es ist auch eine bequeme Methode, Dateien temporär
8545package definitions. In particular, it supports @code{mirror://} URIs. 8885aufzubewahren, die letztlich irgendwann gelöscht werden (siehe @ref{Aufruf von guix gc}).
8546@code{https} URIs (HTTP over TLS) are supported @emph{provided} the Guile 8886
8547bindings for GnuTLS are available in the user's environment; when they are 8887Der Befehl @command{guix download} unterstützt dieselben URIs, die in
8548not available, an error is raised. @xref{Guile Preparations, how to install 8888Paketdefinitionen verwendet werden. Insbesondere unterstützt er
8549the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile}, for more 8889@code{mirror://}-URIs. @code{https}-URIs (HTTP über TLS) werden unterstützt,
8550information. 8890@emph{vorausgesetzt} die Guile-Anbindungen für GnuTLS sind in der Umgebung
8551 8891des Benutzers verfügbar; wenn nicht, wird ein Fehler gemeldet. Siehe
8552@command{guix download} verifies HTTPS server certificates by loading the 8892@ref{Guile Preparations, how to install the GnuTLS bindings for Guile,,
8553certificates of X.509 authorities from the directory pointed to by the 8893gnutls-guile, GnuTLS-Guile}, hat mehr Informationen.
8554@code{SSL_CERT_DIR} environment variable (@pxref{X.509-Zertifikate}), 8894
8555unless @option{--no-check-certificate} is used. 8895Mit @command{guix download} werden HTTPS-Serverzertifikate verifiziert,
8556 8896indem die Zertifikate der X.509-Autoritäten in das durch die
8557The following options are available: 8897Umgebungsvariable @code{SSL_CERT_DIR} bezeichnete Verzeichnis
8898heruntergeladen werden (siehe @ref{X.509-Zertifikate}), außer
8899@option{--no-check-certificate} wird benutzt.
8900
8901Folgende Befehlszeilenoptionen stehen zur Verfügung:
8558 8902
8559@table @code 8903@table @code
8560@item --format=@var{fmt} 8904@item --format=@var{Format}
8561@itemx -f @var{fmt} 8905@itemx -f @var{Format}
8562Write the hash in the format specified by @var{fmt}. For more information 8906Die Hash-Prüfsumme im angegebenen @var{Format} ausgeben. Für weitere
8563on the valid values for @var{fmt}, @pxref{Aufruf von guix hash}. 8907Informationen, was gültige Werte für das @var{Format} sind, siehe
8908@ref{Aufruf von guix hash}.
8564 8909
8565@item --no-check-certificate 8910@item --no-check-certificate
8566Do not validate the X.509 certificates of HTTPS servers. 8911X.509-Zertifikate von HTTPS-Servern @emph{nicht} validieren.
8567 8912
8568When using this option, you have @emph{absolutely no guarantee} that you are 8913Wenn Sie diese Befehlszeilenoption benutzen, haben Sie @emph{keinerlei
8569communicating with the authentic server responsible for the given URL, which 8914Garantie}, dass Sie tatsächlich mit dem authentischen Server, der für die
8570makes you vulnerable to ``man-in-the-middle'' attacks. 8915angegebene URL verantwortlich ist, kommunizieren. Das macht Sie anfällig
8916gegen sogenannte »Man-in-the-Middle«-Angriffe.
8571 8917
8572@item --output=@var{file} 8918@item --output=@var{Datei}
8573@itemx -o @var{file} 8919@itemx -o @var{Datei}
8574Save the downloaded file to @var{file} instead of adding it to the store. 8920Die heruntergeladene Datei @emph{nicht} in den Store, sondern in die
8921angegebene @var{Datei} abspeichern.
8575@end table 8922@end table
8576 8923
8577@node Aufruf von guix hash 8924@node Aufruf von guix hash
8578@section Invoking @command{guix hash} 8925@section @command{guix hash} aufrufen
8579 8926
8580@cindex @command{guix hash} 8927@cindex @command{guix hash}
8581The @command{guix hash} command computes the SHA256 hash of a file. It is 8928Der Befehl @command{guix hash} berechnet den SHA256-Hash einer Datei. Er ist
8582primarily a convenience tool for anyone contributing to the distribution: it 8929primär ein Werkzeug, dass es bequemer macht, etwas zur Distribution
8583computes the cryptographic hash of a file, which can be used in the 8930beizusteuern: Damit wird die kryptografische Hash-Prüfsumme berechnet, die
8584definition of a package (@pxref{Pakete definieren}). 8931bei der Definition eines Pakets benutzt werden kann (siehe @ref{Pakete definieren}).
8585 8932
8586Die allgemeine Syntax lautet: 8933Die allgemeine Syntax lautet:
8587 8934
8588@example 8935@example
8589guix hash @var{option} @var{file} 8936guix hash @var{Option} @var{Datei}
8590@end example 8937@end example
8591 8938
8592When @var{file} is @code{-} (a hyphen), @command{guix hash} computes the 8939Wird als @var{Datei} ein Bindestrich @code{-} angegeben, berechnet
8593hash of data read from standard input. @command{guix hash} has the 8940@command{guix hash} den Hash der von der Standardeingabe gelesenen
8594following options: 8941Daten. @command{guix hash} unterstützt die folgenden Optionen:
8595 8942
8596@table @code 8943@table @code
8597 8944
8598@item --format=@var{fmt} 8945@item --format=@var{Format}
8599@itemx -f @var{fmt} 8946@itemx -f @var{Format}
8600Write the hash in the format specified by @var{fmt}. 8947Gibt die Prüfsumme im angegebenen @var{Format} aus.
8601 8948
8602Supported formats: @code{nix-base32}, @code{base32}, @code{base16} 8949Unterstützte Formate: @code{nix-base32}, @code{base32}, @code{base16}
8603(@code{hex} and @code{hexadecimal} can be used as well). 8950(@code{hex} und @code{hexadecimal} nnen auch benutzt werden).
8604 8951
8605If the @option{--format} option is not specified, @command{guix hash} will 8952Wird keine Befehlszeilenoption @option{--format} angegeben, wird
8606output the hash in @code{nix-base32}. This representation is used in the 8953@command{guix hash} die Prüfsumme im @code{nix-base32}-Format
8607definitions of packages. 8954ausgeben. Diese Darstellung wird bei der Definition von Paketen benutzt.
8608 8955
8609@item --recursive 8956@item --recursive
8610@itemx -r 8957@itemx -r
8611Compute the hash on @var{file} recursively. 8958Die Prüfsumme der @var{Datei} rekursiv berechnen.
8612 8959
8613@c FIXME: Replace xref above with xref to an ``Archive'' section when 8960@c FIXME: Replace xref above with xref to an ``Archive'' section when
8614@c it exists. 8961@c it exists.
8615In this case, the hash is computed on an archive containing @var{file}, 8962In diesem Fall wird die Prüfsumme eines Archivs berechnet, das die
8616including its children if it is a directory. Some of the metadata of 8963@var{Datei} enthält, und auch ihre Kinder, wenn es sich um ein Verzeichnis
8617@var{file} is part of the archive; for instance, when @var{file} is a 8964handelt. Einige der Metadaten der @var{Datei} sind Teil dieses Archivs. Zum
8618regular file, the hash is different depending on whether @var{file} is 8965Beispiel unterscheidet sich die berechnete Prüfsumme, wenn die @var{Datei}
8619executable or not. Metadata such as time stamps has no impact on the hash 8966eine reguläre Datei ist, je nachdem, ob die @var{Datei} ausführbar ist oder
8620(@pxref{Aufruf von guix archive}). 8967nicht. Metadaten wie der Zeitstempel haben keinen Einfluss auf die Prüfsumme
8968(siehe @ref{Aufruf von guix archive}).
8621 8969
8622@item --exclude-vcs 8970@item --exclude-vcs
8623@itemx -x 8971@itemx -x
8624When combined with @option{--recursive}, exclude version control system 8972Wenn dies zusammen mit der Befehlszeilenoption @option{--recursive}
8625directories (@file{.bzr}, @file{.git}, @file{.hg}, etc.) 8973angegeben wird, werden Verzeichnisse zur Versionskontrolle (@file{.bzr},
8974@file{.git}, @file{.hg}, etc.)@: vom Archiv ausgenommen.
8626 8975
8627@vindex git-fetch 8976@vindex git-fetch
8628As an example, here is how you would compute the hash of a Git checkout, 8977Zum Beispiel würden Sie auf diese Art die Prüfsumme eines Git-Checkouts
8629which is useful when using the @code{git-fetch} method (@pxref{»origin«-Referenz}): 8978berechnen, was nützlich ist, wenn Sie die Prüfsumme für die Methode
8979@code{git-fetch} benutzen (siehe @ref{»origin«-Referenz}):
8630 8980
8631@example 8981@example
8632$ git clone http://example.org/foo.git 8982$ git clone http://example.org/foo.git
@@ -8636,64 +8986,70 @@ $ guix hash -rx .
8636@end table 8986@end table
8637 8987
8638@node Aufruf von guix import 8988@node Aufruf von guix import
8639@section Invoking @command{guix import} 8989@section @command{guix import} aufrufen
8640 8990
8641@cindex importing packages 8991@cindex Pakete importieren
8642@cindex package import 8992@cindex Paketimport
8643@cindex package conversion 8993@cindex Pakete an Guix anpassen
8644@cindex Invoking @command{guix import} 8994@cindex @command{guix import} aufrufen
8645The @command{guix import} command is useful for people who would like to add 8995Der Befehl @command{guix import} ist für Leute hilfreich, die ein Paket
8646a package to the distribution with as little work as possible---a legitimate 8996gerne mit so wenig Arbeit wie möglich zur Distribution hinzufügen würden —
8647demand. The command knows of a few repositories from which it can 8997ein legitimer Anspruch. Der Befehl kennt ein paar Sammlungen, aus denen mit
8648``import'' package metadata. The result is a package definition, or a 8998ihm Paketmetadaten »importiert« werden können. Das Ergebnis ist eine
8649template thereof, in the format we know (@pxref{Pakete definieren}). 8999Paketdefinition oder eine Vorlage dafür in dem uns bekannten Format (siehe
9000@ref{Pakete definieren}).
8650 9001
8651Die allgemeine Syntax lautet: 9002Die allgemeine Syntax lautet:
8652 9003
8653@example 9004@example
8654guix import @var{importer} @var{options}@dots{} 9005guix import @var{Importer} @var{Optionen}@dots{}
8655@end example 9006@end example
8656 9007
8657@var{importer} specifies the source from which to import package metadata, 9008Der @var{Importer} gibt die Quelle an, aus der Paketmetadaten importiert
8658and @var{options} specifies a package identifier and other options specific 9009werden, und die @var{Optionen} geben eine Paketbezeichnung und andere vom
8659to @var{importer}. Currently, the available ``importers'' are: 9010@var{Importer} abhängige Daten an. Derzeit sind folgende »Importer«
9011verfügbar:
8660 9012
8661@table @code 9013@table @code
8662@item gnu 9014@item gnu
8663Import metadata for the given GNU package. This provides a template for the 9015Metadaten für das angegebene GNU-Paket importieren. Damit wird eine Vorlage
8664latest version of that GNU package, including the hash of its source 9016für die neueste Version dieses GNU-Pakets zur Verfügung gestellt,
8665tarball, and its canonical synopsis and description. 9017einschließlich der Prüfsumme seines Quellcode-Tarballs, seiner kanonischen
9018Zusammenfassung und seiner Beschreibung.
8666 9019
8667Additional information such as the package dependencies and its license 9020Zusätzliche Informationen wie Paketabhängigkeiten und seine Lizenz müssen
8668needs to be figured out manually. 9021noch manuell ermittelt werden.
8669 9022
8670For example, the following command returns a package definition for 9023Zum Beispiel liefert der folgende Befehl eine Paketdefinition für
8671GNU@tie{}Hello: 9024GNU@tie{}Hello:
8672 9025
8673@example 9026@example
8674guix import gnu hello 9027guix import gnu hello
8675@end example 9028@end example
8676 9029
8677Specific command-line options are: 9030Speziell für diesen Importer stehen noch folgende Befehlszeilenoptionen zur
9031Verfügung:
8678 9032
8679@table @code 9033@table @code
8680@item --key-download=@var{policy} 9034@item --key-download=@var{Richtlinie}
8681As for @code{guix refresh}, specify the policy to handle missing OpenPGP 9035Die Richtlinie zum Umgang mit fehlenden OpenPGP-Schlüsseln beim Verifizieren
8682keys when verifying the package signature. @xref{Aufruf von guix refresh, 9036der Paketsignatur (auch »Beglaubigung« genannt) festlegen, wie bei
9037@code{guix refresh}. Siehe @ref{Aufruf von guix refresh,
8683@code{--key-download}}. 9038@code{--key-download}}.
8684@end table 9039@end table
8685 9040
8686@item pypi 9041@item pypi
8687@cindex pypi 9042@cindex pypi
8688Import metadata from the @uref{https://pypi.python.org/, Python Package 9043Metadaten aus dem @uref{https://pypi.python.org/, Python Package Index}
8689Index}. Information is taken from the JSON-formatted description available 9044importieren. Informationen stammen aus der JSON-formatierten Beschreibung,
8690at @code{pypi.python.org} and usually includes all the relevant information, 9045die unter @code{pypi.python.org} verfügbar ist, und enthalten meistens alle
8691including package dependencies. For maximum efficiency, it is recommended 9046relevanten Informationen einschließlich der Abhängigkeiten des Pakets. Für
8692to install the @command{unzip} utility, so that the importer can unzip 9047maximale Effizienz wird empfohlen, das Hilfsprogramm @command{unzip} zu
8693Python wheels and gather data from them. 9048installieren, damit der Importer »Python Wheels« entpacken und daraus Daten
9049beziehen kann.
8694 9050
8695The command below imports metadata for the @code{itsdangerous} Python 9051Der folgende Befehl importiert Metadaten für das Python-Paket namens
8696package: 9052@code{itsdangerous}:
8697 9053
8698@example 9054@example
8699guix import pypi itsdangerous 9055guix import pypi itsdangerous
@@ -8702,22 +9058,25 @@ guix import pypi itsdangerous
8702@table @code 9058@table @code
8703@item --recursive 9059@item --recursive
8704@itemx -r 9060@itemx -r
8705Traverse the dependency graph of the given upstream package recursively and 9061Den Abhängigkeitsgraphen des angegebenen Pakets beim Anbieter rekursiv
8706generate package expressions for all those packages that are not yet in 9062durchlaufen und Paketausdrücke für alle solchen Pakete erzeugen, die es in
8707Guix. 9063Guix noch nicht gibt.
8708@end table 9064@end table
8709 9065
8710@item gem 9066@item gem
8711@cindex gem 9067@cindex gem
8712Import metadata from @uref{https://rubygems.org/, RubyGems}. Information is 9068Metadaten von @uref{https://rubygems.org/, RubyGems}
8713taken from the JSON-formatted description available at @code{rubygems.org} 9069importieren. Informationen kommen aus der JSON-formatierten Beschreibung,
8714and includes most relevant information, including runtime dependencies. 9070die auf @code{rubygems.org} verfügbar ist, und enthält die relevantesten
8715There are some caveats, however. The metadata doesn't distinguish between 9071Informationen einschließlich der Laufzeitabhängigkeiten. Dies hat aber auch
8716synopses and descriptions, so the same string is used for both fields. 9072Schattenseiten — die Metadaten unterscheiden nicht zwischen
8717Additionally, the details of non-Ruby dependencies required to build native 9073Zusammenfassungen und Beschreibungen, daher wird dieselbe Zeichenkette für
8718extensions is unavailable and left as an exercise to the packager. 9074beides eingesetzt. Zudem fehlen Informationen zu nicht in Ruby geschriebenen
9075Abhängigkeiten, die benötigt werden, um native Erweiterungen zu in Ruby
9076geschriebenem Code zu erstellen. Diese herauszufinden bleibt dem
9077Paketentwickler überlassen.
8719 9078
8720The command below imports metadata for the @code{rails} Ruby package: 9079Der folgende Befehl importiert Metadaten aus dem Ruby-Paket @code{rails}.
8721 9080
8722@example 9081@example
8723guix import gem rails 9082guix import gem rails
@@ -8726,23 +9085,24 @@ guix import gem rails
8726@table @code 9085@table @code
8727@item --recursive 9086@item --recursive
8728@itemx -r 9087@itemx -r
8729Traverse the dependency graph of the given upstream package recursively and 9088Den Abhängigkeitsgraphen des angegebenen Pakets beim Anbieter rekursiv
8730generate package expressions for all those packages that are not yet in 9089durchlaufen und Paketausdrücke für alle solchen Pakete erzeugen, die es in
8731Guix. 9090Guix noch nicht gibt.
8732@end table 9091@end table
8733 9092
8734@item cpan 9093@item cpan
8735@cindex CPAN 9094@cindex CPAN
8736Import metadata from @uref{https://www.metacpan.org/, MetaCPAN}. 9095Importiert Metadaten von @uref{https://www.metacpan.org/,
8737Information is taken from the JSON-formatted metadata provided through 9096MetaCPAN}. Informationen werden aus den JSON-formatierten Metadaten
8738@uref{https://fastapi.metacpan.org/, MetaCPAN's API} and includes most 9097genommen, die über die @uref{https://fastapi.metacpan.org/,
8739relevant information, such as module dependencies. License information 9098Programmierschnittstelle (»API«) von MetaCPAN} angeboten werden, und
8740should be checked closely. If Perl is available in the store, then the 9099enthalten die relevantesten Informationen wie zum Beispiel
8741@code{corelist} utility will be used to filter core modules out of the list 9100Modulabhängigkeiten. Lizenzinformationen sollten genau nachgeprüft
8742of dependencies. 9101werden. Wenn Perl im Store verfügbar ist, wird das Werkzeug @code{corelist}
9102benutzt, um Kernmodule in der Abhängigkeitsliste wegzulassen.
8743 9103
8744The command command below imports metadata for the @code{Acme::Boolean} Perl 9104Folgender Befehl importiert Metadaten für das Perl-Modul
8745module: 9105@code{Acme::Boolean}:
8746 9106
8747@example 9107@example
8748guix import cpan Acme::Boolean 9108guix import cpan Acme::Boolean
@@ -8751,31 +9111,35 @@ guix import cpan Acme::Boolean
8751@item cran 9111@item cran
8752@cindex CRAN 9112@cindex CRAN
8753@cindex Bioconductor 9113@cindex Bioconductor
8754Import metadata from @uref{https://cran.r-project.org/, CRAN}, the central 9114Metadaten aus dem @uref{https://cran.r-project.org/, CRAN} importieren, der
8755repository for the @uref{http://r-project.org, GNU@tie{}R statistical and 9115zentralen Sammlung für die @uref{http://r-project.org, statistische und
8756graphical environment}. 9116grafische Umgebung GNU@tie{}R}.
8757 9117
8758Information is extracted from the @code{DESCRIPTION} file of the package. 9118Informationen werden aus der Datei namens @code{DESCRIPTION} des Pakets
9119extrahiert.
8759 9120
8760The command command below imports metadata for the @code{Cairo} R package: 9121Der folgende Befehl importiert Metadaten für das @code{Cairo}-R-Paket:
8761 9122
8762@example 9123@example
8763guix import cran Cairo 9124guix import cran Cairo
8764@end example 9125@end example
8765 9126
8766When @code{--recursive} is added, the importer will traverse the dependency 9127Wird zudem @code{--recursive} angegeben, wird der Importer den
8767graph of the given upstream package recursively and generate package 9128Abhängigkeitsgraphen des angegebenen Pakets beim Anbieter rekursiv
8768expressions for all those packages that are not yet in Guix. 9129durchlaufen und Paketausdrücke für all die Pakete erzeugen, die noch nicht
9130Teil von Guix sind.
8769 9131
8770When @code{--archive=bioconductor} is added, metadata is imported from 9132Wird @code{--archive=bioconductor} angegeben, werden Metadaten vom
8771@uref{https://www.bioconductor.org/, Bioconductor}, a repository of R 9133@uref{https://www.bioconductor.org/, Bioconductor} importiert, einer
8772packages for for the analysis and comprehension of high-throughput genomic 9134Sammlung von R-Paketen zur Analyse und zum Versndnis von großen Mengen
8773data in bioinformatics. 9135genetischer Daten in der Bioinformatik.
8774 9136
8775Information is extracted from the @code{DESCRIPTION} file of a package 9137Informationen werden aus der @code{DESCRIPTION}-Datei im Paket extrahiert,
8776published on the web interface of the Bioconductor SVN repository. 9138das auf der Weboberfläche des Bioconductor-SVN-Repositorys veröffentlicht
9139wurde.
8777 9140
8778The command below imports metadata for the @code{GenomicRanges} R package: 9141Der folgende Befehl importiert Metadaten für das R-Paket
9142@code{GenomicRanges}:
8779 9143
8780@example 9144@example
8781guix import cran --archive=bioconductor GenomicRanges 9145guix import cran --archive=bioconductor GenomicRanges
@@ -8784,38 +9148,39 @@ guix import cran --archive=bioconductor GenomicRanges
8784@item texlive 9148@item texlive
8785@cindex TeX Live 9149@cindex TeX Live
8786@cindex CTAN 9150@cindex CTAN
8787Import metadata from @uref{http://www.ctan.org/, CTAN}, the comprehensive 9151Metadaten aus @uref{http://www.ctan.org/, CTAN}, dem umfassenden
8788TeX archive network for TeX packages that are part of the 9152TeX-Archivnetzwerk, herunterladen, was für TeX-Pakete benutzt wird, die Teil
8789@uref{https://www.tug.org/texlive/, TeX Live distribution}. 9153der @uref{https://www.tug.org/texlive/, TeX-Live-Distribution} sind.
8790 9154
8791Information about the package is obtained through the XML API provided by 9155Informationen über das Paket werden über die von CTAN angebotene
8792CTAN, while the source code is downloaded from the SVN repository of the Tex 9156XML-Programmierschnittstelle bezogen, wohingegen der Quellcode aus dem
8793Live project. This is done because the CTAN does not keep versioned 9157SVN-Repository des TeX-Live-Projekts heruntergeladen wird. Das wird so
8794archives. 9158gemacht, weil CTAN keine versionierten Archive vorhält.
8795 9159
8796The command command below imports metadata for the @code{fontspec} TeX 9160Der folgende Befehl importiert Metadaten für das TeX-Paket @code{fontspec}:
8797package:
8798 9161
8799@example 9162@example
8800guix import texlive fontspec 9163guix import texlive fontspec
8801@end example 9164@end example
8802 9165
8803When @code{--archive=DIRECTORY} is added, the source code is downloaded not 9166Wenn @code{--archive=VERZEICHNIS} angegeben wird, wird der Quellcode
8804from the @file{latex} sub-directory of the @file{texmf-dist/source} tree in 9167@emph{nicht} aus dem Unterverzeichnis @file{latex} des
8805the TeX Live SVN repository, but from the specified sibling directory under 9168@file{texmf-dist/source}-Baums im SVN-Repository von TeX Live
8806the same root. 9169heruntergeladen, sondern aus dem angegebenen Schwesterverzeichnis im selben
9170Wurzelverzeichnis.
8807 9171
8808The command below imports metadata for the @code{ifxetex} package from CTAN 9172Der folgende Befehl importiert Metadaten für das Paket @code{ifxetex} aus
8809while fetching the sources from the directory @file{texmf/source/generic}: 9173CTAN und lädt die Quelldateien aus dem Verzeichnis
9174@file{texmf/source/generic}:
8810 9175
8811@example 9176@example
8812guix import texlive --archive=generic ifxetex 9177guix import texlive --archive=generic ifxetex
8813@end example 9178@end example
8814 9179
8815@item json 9180@item json
8816@cindex JSON, import 9181@cindex JSON, Import
8817Import package metadata from a local JSON file. Consider the following 9182Paketmetadaten aus einer lokalen JSON-Datei importieren. Betrachten Sie
8818example package definition in JSON format: 9183folgende Beispiel-Paketdefinition im JSON-Format:
8819 9184
8820@example 9185@example
8821@{ 9186@{
@@ -8831,13 +9196,13 @@ example package definition in JSON format:
8831@} 9196@}
8832@end example 9197@end example
8833 9198
8834The field names are the same as for the @code{<package>} record 9199Die Felder sind genauso benannt wie bei einem @code{<package>}-Verbundstyp
8835(@xref{Pakete definieren}). References to other packages are provided as 9200(siehe @ref{Pakete definieren}). Referenzen zu anderen Paketen stehen darin
8836JSON lists of quoted package specification strings such as @code{guile} or 9201als JSON-Liste von mit Anführungszeichen quotierten Zeichenketten wie
8837@code{guile@@2.0}. 9202@code{guile} oder @code{guile@@2.0}.
8838 9203
8839The importer also supports a more explicit source definition using the 9204Der Importer unterstützt auch eine ausdrücklichere Definition der
8840common fields for @code{<origin>} records: 9205Quelldateien mit den üblichen Feldern eines @code{<origin>}-Verbunds:
8841 9206
8842@example 9207@example
8843@{ 9208@{
@@ -8853,37 +9218,38 @@ common fields for @code{<origin>} records:
8853@} 9218@}
8854@end example 9219@end example
8855 9220
8856The command below reads metadata from the JSON file @code{hello.json} and 9221Der folgende Befehl liest Metadaten aus der JSON-Datei @code{hello.json} und
8857outputs a package expression: 9222gibt einen Paketausdruck aus:
8858 9223
8859@example 9224@example
8860guix import json hello.json 9225guix import json hello.json
8861@end example 9226@end example
8862 9227
8863@item nix 9228@item nix
8864Import metadata from a local copy of the source of the 9229Metadaten aus einer lokalen Kopie des Quellcodes der
8865@uref{http://nixos.org/nixpkgs/, Nixpkgs distribution}@footnote{This relies 9230@uref{http://nixos.org/nixpkgs/, Nixpkgs-Distribution}
8866on the @command{nix-instantiate} command of @uref{http://nixos.org/nix/, 9231importieren@footnote{Dazu wird der Befehl @command{nix-instantiate} von
8867Nix}.}. Package definitions in Nixpkgs are typically written in a mixture 9232@uref{http://nixos.org/nix/, Nix} verwendet.}. Paketdefinitionen in Nixpkgs
8868of Nix-language and Bash code. This command only imports the high-level 9233werden typischerweise in einer Mischung aus der Sprache von Nix und aus
8869package structure that is written in the Nix language. It normally includes 9234Bash-Code geschrieben. Dieser Befehl wird nur die abstrakte Paketstruktur,
8870all the basic fields of a package definition. 9235die in der Nix-Sprache geschrieben ist, importieren. Dazu gehören
9236normalerweise alle grundlegenden Felder einer Paketdefinition.
8871 9237
8872When importing a GNU package, the synopsis and descriptions are replaced by 9238Beim Importieren eines GNU-Pakets werden Zusammenfassung und Beschreibung
8873their canonical upstream variant. 9239stattdessen durch deren kanonische Variante bei GNU ersetzt.
8874 9240
8875Usually, you will first need to do: 9241Normalerweise würden Sie zunächst dies ausführen:
8876 9242
8877@example 9243@example
8878export NIX_REMOTE=daemon 9244export NIX_REMOTE=daemon
8879@end example 9245@end example
8880 9246
8881@noindent 9247@noindent
8882so that @command{nix-instantiate} does not try to open the Nix database. 9248damit @command{nix-instantiate} nicht versucht, die Nix-Datenbank zu öffnen.
8883 9249
8884As an example, the command below imports the package definition of 9250Zum Beispiel importiert der Befehl unten die Paketdefinition von LibreOffice
8885LibreOffice (more precisely, it imports the definition of the package bound 9251(genauer gesagt importiert er die Definition des an das Attribut
8886to the @code{libreoffice} top-level attribute): 9252@code{libreoffice} auf oberster Ebene gebundenen Pakets):
8887 9253
8888@example 9254@example
8889guix import nix ~/path/to/nixpkgs libreoffice 9255guix import nix ~/path/to/nixpkgs libreoffice
@@ -8891,47 +9257,50 @@ guix import nix ~/path/to/nixpkgs libreoffice
8891 9257
8892@item hackage 9258@item hackage
8893@cindex hackage 9259@cindex hackage
8894Import metadata from the Haskell community's central package archive 9260Metadaten aus @uref{https://hackage.haskell.org/, Hackage}, dem zentralen
8895@uref{https://hackage.haskell.org/, Hackage}. Information is taken from 9261Paketarchiv der Haskell-Gemeinde, importieren. Informationen werden aus
8896Cabal files and includes all the relevant information, including package 9262Cabal-Dateien ausgelesen. Darin sind alle relevanten Informationen
8897dependencies. 9263einschließlich der Paketabhängigkeiten enthalten.
8898 9264
8899Specific command-line options are: 9265Speziell für diesen Importer stehen noch folgende Befehlszeilenoptionen zur
9266Verfügung:
8900 9267
8901@table @code 9268@table @code
8902@item --stdin 9269@item --stdin
8903@itemx -s 9270@itemx -s
8904Read a Cabal file from standard input. 9271Eine Cabal-Datei von der Standardeingabe lesen.
8905@item --no-test-dependencies 9272@item --no-test-dependencies
8906@itemx -t 9273@itemx -t
8907Do not include dependencies required only by the test suites. 9274Keine Abhängigkeiten übernehmen, die nur von Testkatalogen benötigt werden.
8908@item --cabal-environment=@var{alist} 9275@item --cabal-environment=@var{Aliste}
8909@itemx -e @var{alist} 9276@itemx -e @var{Aliste}
8910@var{alist} is a Scheme alist defining the environment in which the Cabal 9277@var{Aliste} muss eine assoziative Liste der Scheme-Programmiersprache sein,
8911conditionals are evaluated. The accepted keys are: @code{os}, @code{arch}, 9278die die Umgebung definiert, in der bedingte Ausdrücke von Cabal ausgewertet
8912@code{impl} and a string representing the name of a flag. The value 9279werden. Dabei werden folgende Schlüssel akzeptiert: @code{os}, @code{arch},
8913associated with a flag has to be either the symbol @code{true} or 9280@code{impl} und eine Zeichenkette, die dem Namen einer Option (einer »Flag«)
8914@code{false}. The value associated with other keys has to conform to the 9281entspricht. Der mit einer »Flag« assoziierte Wert muss entweder das Symbol
8915Cabal file format definition. The default value associated with the keys 9282@code{true} oder @code{false} sein. Der anderen Schlüsseln zugeordnete Wert
8916@code{os}, @code{arch} and @code{impl} is @samp{linux}, @samp{x86_64} and 9283muss mit der Definition des Cabal-Dateiformats konform sein. Der vorgegebene
8917@samp{ghc}, respectively. 9284Wert zu den Schlüsseln @code{os}, @code{arch} and @code{impl} ist jeweils
9285@samp{linux}, @samp{x86_64} bzw. @samp{ghc}.
8918@item --recursive 9286@item --recursive
8919@itemx -r 9287@itemx -r
8920Traverse the dependency graph of the given upstream package recursively and 9288Den Abhängigkeitsgraphen des angegebenen Pakets beim Anbieter rekursiv
8921generate package expressions for all those packages that are not yet in 9289durchlaufen und Paketausdrücke für alle solchen Pakete erzeugen, die es in
8922Guix. 9290Guix noch nicht gibt.
8923@end table 9291@end table
8924 9292
8925The command below imports metadata for the latest version of the @code{HTTP} 9293Der folgende Befehl importiert Metadaten für die neuste Version des
8926Haskell package without including test dependencies and specifying the value 9294Haskell-@code{HTTP}-Pakets, ohne Testabhängigkeiten zu übernehmen und bei
8927of the flag @samp{network-uri} as @code{false}: 9295Übergabe von @code{false} als Wert der Flag @samp{network-uri}:
8928 9296
8929@example 9297@example
8930guix import hackage -t -e "'((\"network-uri\" . false))" HTTP 9298guix import hackage -t -e "'((\"network-uri\" . false))" HTTP
8931@end example 9299@end example
8932 9300
8933A specific package version may optionally be specified by following the 9301Eine ganz bestimmte Paketversion kann optional ausgewählt werden, indem man
8934package name by an at-sign and a version number as in the following example: 9302nach dem Paketnamen anschließend ein At-Zeichen und eine Versionsnummer
9303angibt wie in folgendem Beispiel:
8935 9304
8936@example 9305@example
8937guix import hackage mtl@@2.1.3.1 9306guix import hackage mtl@@2.1.3.1
@@ -8939,31 +9308,36 @@ guix import hackage mtl@@2.1.3.1
8939 9308
8940@item stackage 9309@item stackage
8941@cindex stackage 9310@cindex stackage
8942The @code{stackage} importer is a wrapper around the @code{hackage} one. It 9311Der @code{stackage}-Importer ist ein Wrapper um den
8943takes a package name, looks up the package version included in a long-term 9312@code{hackage}-Importer. Er nimmt einen Paketnamen und schaut dafür die
8944support (LTS) @uref{https://www.stackage.org, Stackage} release and uses the 9313Paketversion nach, die Teil einer @uref{https://www.stackage.org,
8945@code{hackage} importer to retrieve its metadata. Note that it is up to you 9314Stackage}-Veröffentlichung mit Langzeitunterstützung (englisch »Long-Term
8946to select an LTS release compatible with the GHC compiler used by Guix. 9315Support«, kurz LTS) ist, deren Metadaten er dann mit dem
8947 9316@code{hackage}-Importer bezieht. Beachten Sie, dass es Ihre Aufgabe ist,
8948Specific command-line options are: 9317eine LTS-Veröffentlichung auszuwählen, die mit dem von Guix benutzten
9318GHC-Compiler kompatibel ist.
9319
9320Speziell für diesen Importer stehen noch folgende Befehlszeilenoptionen zur
9321Verfügung:
8949 9322
8950@table @code 9323@table @code
8951@item --no-test-dependencies 9324@item --no-test-dependencies
8952@itemx -t 9325@itemx -t
8953Do not include dependencies required only by the test suites. 9326Keine Abhängigkeiten übernehmen, die nur von Testkatalogen betigt werden.
8954@item --lts-version=@var{version} 9327@item --lts-version=@var{Version}
8955@itemx -l @var{Version} 9328@itemx -l @var{Version}
8956@var{version} is the desired LTS release version. If omitted the latest 9329@var{Version} ist die gewünschte Version der LTS-Veröffentlichung. Wird
8957release is used. 9330keine angegeben, wird die neueste benutzt.
8958@item --recursive 9331@item --recursive
8959@itemx -r 9332@itemx -r
8960Traverse the dependency graph of the given upstream package recursively and 9333Den Abhängigkeitsgraphen des angegebenen Pakets beim Anbieter rekursiv
8961generate package expressions for all those packages that are not yet in 9334durchlaufen und Paketausdrücke für alle solchen Pakete erzeugen, die es in
8962Guix. 9335Guix noch nicht gibt.
8963@end table 9336@end table
8964 9337
8965The command below imports metadata for the @code{HTTP} Haskell package 9338Der folgende Befehl importiert Metadaten für dasjenige
8966included in the LTS Stackage release version 7.18: 9339@code{HTTP}-Haskell-Paket, das in der LTS-Stackage-Veröffentlichung mit
9340Version 7.18 vorkommt:
8967 9341
8968@example 9342@example
8969guix import stackage --lts-version=7.18 HTTP 9343guix import stackage --lts-version=7.18 HTTP
@@ -8971,67 +9345,67 @@ guix import stackage --lts-version=7.18 HTTP
8971 9345
8972@item elpa 9346@item elpa
8973@cindex elpa 9347@cindex elpa
8974Import metadata from an Emacs Lisp Package Archive (ELPA) package repository 9348Metadaten aus der Paketsammlung »Emacs Lisp Package Archive« (ELPA)
8975(@pxref{Packages,,, emacs, The GNU Emacs Manual}). 9349importieren (siehe @ref{Packages,,, emacs, The GNU Emacs Manual}).
8976 9350
8977Specific command-line options are: 9351Speziell für diesen Importer stehen noch folgende Befehlszeilenoptionen zur
9352Verfügung:
8978 9353
8979@table @code 9354@table @code
8980@item --archive=@var{repo} 9355@item --archive=@var{Repo}
8981@itemx -a @var{repo} 9356@itemx -a @var{Repo}
8982@var{repo} identifies the archive repository from which to retrieve the 9357Mit @var{Repo} wird die Archiv-Sammlung (ein »Repository«) bezeichnet, von
8983information. Currently the supported repositories and their identifiers 9358dem die Informationen bezogen werden sollen. Derzeit sind die unterstützten
8984are: 9359Repositorys und ihre Bezeichnungen folgende:
8985@itemize - 9360@itemize -
8986@item 9361@item
8987@uref{http://elpa.gnu.org/packages, GNU}, selected by the @code{gnu} 9362@uref{http://elpa.gnu.org/packages, GNU}, bezeichnet mit @code{gnu}. Dies
8988identifier. This is the default. 9363ist die Vorgabe.
8989 9364
8990Packages from @code{elpa.gnu.org} are signed with one of the keys contained 9365Pakete aus @code{elpa.gnu.org} wurden mit einem der Schlüssel im
8991in the GnuPG keyring at @file{share/emacs/25.1/etc/package-keyring.gpg} (or 9366GnuPG-Schlüsselbund in @file{share/emacs/25.1/etc/package-keyring.gpg} (oder
8992similar) in the @code{emacs} package (@pxref{Package Installation, ELPA 9367einem ähnlichen Pfad) des @code{emacs}-Pakets signiert (siehe @ref{Package
8993package signatures,, emacs, The GNU Emacs Manual}). 9368Installation, ELPA package signatures,, emacs, The GNU Emacs Manual}).
8994 9369
8995@item 9370@item
8996@uref{http://stable.melpa.org/packages, MELPA-Stable}, selected by the 9371@uref{http://stable.melpa.org/packages, MELPA-Stable}, bezeichnet mit
8997@code{melpa-stable} identifier. 9372@code{melpa-stable}.
8998 9373
8999@item 9374@item
9000@uref{http://melpa.org/packages, MELPA}, selected by the @code{melpa} 9375@uref{http://melpa.org/packages, MELPA}, bezeichnet mit @code{melpa}.
9001identifier.
9002@end itemize 9376@end itemize
9003 9377
9004@item --recursive 9378@item --recursive
9005@itemx -r 9379@itemx -r
9006Traverse the dependency graph of the given upstream package recursively and 9380Den Abhängigkeitsgraphen des angegebenen Pakets beim Anbieter rekursiv
9007generate package expressions for all those packages that are not yet in 9381durchlaufen und Paketausdrücke für alle solchen Pakete erzeugen, die es in
9008Guix. 9382Guix noch nicht gibt.
9009@end table 9383@end table
9010 9384
9011@item crate 9385@item crate
9012@cindex crate 9386@cindex crate
9013Import metadata from the crates.io Rust package repository 9387Metadaten aus der Paketsammlung crates.io für Rust importieren
9014@uref{https://crates.io, crates.io}. 9388@uref{https://crates.io, crates.io}.
9015 9389
9016@item opam 9390@item opam
9017@cindex OPAM 9391@cindex OPAM
9018@cindex OCaml 9392@cindex OCaml
9019Import metadata from the @uref{https://opam.ocaml.org/, OPAM} package 9393Metadaten aus der Paketsammlung @uref{https://opam.ocaml.org/, OPAM} der
9020repository used by the OCaml community. 9394OCaml-Gemeinde importieren.
9021@end table 9395@end table
9022 9396
9023The structure of the @command{guix import} code is modular. It would be 9397@command{guix import} verfügt über eine modulare Code-Struktur. Mehr
9024useful to have more importers for other package formats, and your help is 9398Importer für andere Paketformate zu haben, re nützlich, und Ihre Hilfe ist
9025welcome here (@pxref{Mitwirken}). 9399hierbei gerne gesehen (siehe @ref{Mitwirken}).
9026 9400
9027@node Aufruf von guix refresh 9401@node Aufruf von guix refresh
9028@section Invoking @command{guix refresh} 9402@section @command{guix refresh} aufrufen
9029 9403
9030@cindex @command{guix refresh} 9404@cindex @command{guix refresh}
9031The primary audience of the @command{guix refresh} command is developers of 9405Die Zielgruppe des Befehls @command{guix refresh} zum Auffrischen von
9032the GNU software distribution. By default, it reports any packages provided 9406Paketen sind in erster Linie Entwickler der GNU-Software-Distribution. Nach
9033by the distribution that are outdated compared to the latest upstream 9407Vorgabe werden damit alle Pakete in der Distribution gemeldet, die nicht der
9034version, like this: 9408neuesten Version des Anbieters entsprechen, indem Sie dies ausführen:
9035 9409
9036@example 9410@example
9037$ guix refresh 9411$ guix refresh
@@ -9039,8 +9413,9 @@ gnu/packages/gettext.scm:29:13: gettext would be upgraded from 0.18.1.1 to 0.18.
9039gnu/packages/glib.scm:77:12: glib would be upgraded from 2.34.3 to 2.37.0 9413gnu/packages/glib.scm:77:12: glib would be upgraded from 2.34.3 to 2.37.0
9040@end example 9414@end example
9041 9415
9042Alternately, one can specify packages to consider, in which case a warning 9416Alternativ können die zu betrachtenden Pakete dabei angegeben werden, was
9043is emitted for packages that lack an updater: 9417zur Ausgabe einer Warnung führt, wenn es für Pakete kein
9418Aktualisierungsprogramm gibt:
9044 9419
9045@example 9420@example
9046$ guix refresh coreutils guile guile-ssh 9421$ guix refresh coreutils guile guile-ssh
@@ -9048,13 +9423,15 @@ gnu/packages/ssh.scm:205:2: warning: no updater for guile-ssh
9048gnu/packages/guile.scm:136:12: guile would be upgraded from 2.0.12 to 2.0.13 9423gnu/packages/guile.scm:136:12: guile would be upgraded from 2.0.12 to 2.0.13
9049@end example 9424@end example
9050 9425
9051@command{guix refresh} browses the upstream repository of each package and 9426@command{guix refresh} durchsucht die Paketsammlung beim Anbieter jedes
9052determines the highest version number of the releases therein. The command 9427Pakets und bestimmt, was die höchste Versionsnummer ist, zu der es dort eine
9053knows how to update specific types of packages: GNU packages, ELPA packages, 9428Veröffentlichung gibt. Zum Befehl gehören Aktualisierungsprogramme, mit
9054etc.---see the documentation for @option{--type} below. There are many 9429denen bestimmte Typen von Paketen automatisch aktualisiert werden können:
9055packages, though, for which it lacks a method to determine whether a new 9430GNU-Pakete, ELPA-Pakete usw.@: — siehe die Dokumentation von @option{--type}
9056upstream release is available. However, the mechanism is extensible, so 9431unten. Es gibt jedoch auch viele Pakete, für die noch keine Methode
9057feel free to get in touch with us to add a new method! 9432enthalten ist, um das Vorhandensein einer neuen Veröffentlichung zu
9433prüfen. Der Mechanismus ist aber erweiterbar, also können Sie gerne mit uns
9434in Kontakt treten, wenn Sie eine neue Methode hinzufügen möchten!
9058 9435
9059@table @code 9436@table @code
9060 9437
@@ -9073,10 +9450,11 @@ gnu/packages/multiprecision.scm:40:12: info: 6.1.2 is already the latest version
9073 9450
9074@end table 9451@end table
9075 9452
9076Sometimes the upstream name differs from the package name used in Guix, and 9453Manchmal unterscheidet sich der vom Anbieter benutzte Name von dem
9077@command{guix refresh} needs a little help. Most updaters honor the 9454Paketnamen, der in Guix verwendet wird, so dass @command{guix refresh} etwas
9078@code{upstream-name} property in package definitions, which can be used to 9455Unterstützung braucht. Die meisten Aktualisierungsprogramme folgen der
9079that effect: 9456Eigenschaft @code{upstream-name} in Paketdefinitionen, die diese
9457Unterstützung bieten kann.
9080 9458
9081@example 9459@example
9082(define-public network-manager 9460(define-public network-manager
@@ -9086,18 +9464,20 @@ that effect:
9086 (properties '((upstream-name . "NetworkManager"))))) 9464 (properties '((upstream-name . "NetworkManager")))))
9087@end example 9465@end example
9088 9466
9089When passed @code{--update}, it modifies distribution source files to update 9467Wenn @code{--update} übergeben wird, werden die Quelldateien der
9090the version numbers and source tarball hashes of those package recipes 9468Distribution verändert, so dass für diese Paketrezepte die aktuelle Version
9091(@pxref{Pakete definieren}). This is achieved by downloading each package's 9469und die aktuelle Hash-Prüfsumme des Quellcode-Tarballs eingetragen wird
9092latest source tarball and its associated OpenPGP signature, authenticating 9470(siehe @ref{Pakete definieren}). Dazu werden der neueste Quellcode-Tarball
9093the downloaded tarball against its signature using @command{gpg}, and 9471jedes Pakets sowie die jeweils zugehörige OpenPGP-Signatur heruntergeladen;
9094finally computing its hash. When the public key used to sign the tarball is 9472mit Letzterer wird der heruntergeladene Tarball gegen seine Signatur mit
9095missing from the user's keyring, an attempt is made to automatically 9473@command{gpg} authentifiziert und schließlich dessen Hash berechnet. Wenn
9096retrieve it from a public key server; when this is successful, the key is 9474der öffentliche Schlüssel, mit dem der Tarball signiert wurde, im
9097added to the user's keyring; otherwise, @command{guix refresh} reports an 9475Schlüsselbund des Benutzers fehlt, wird versucht, ihn automatisch von einem
9098error. 9476Schlüssel-Server zu holen; wenn das klappt, wird der Schlüssel zum
9477Schlüsselbund des Benutzers hinzugefügt, ansonsten meldet @command{guix
9478refresh} einen Fehler.
9099 9479
9100The following options are supported: 9480Die folgenden Befehlszeilenoptionen werden unterstützt:
9101 9481
9102@table @code 9482@table @code
9103 9483
@@ -9105,88 +9485,99 @@ The following options are supported:
9105@itemx -e @var{Ausdruck} 9485@itemx -e @var{Ausdruck}
9106Als Paket benutzen, wozu der @var{Ausdruck} ausgewertet wird. 9486Als Paket benutzen, wozu der @var{Ausdruck} ausgewertet wird.
9107 9487
9108This is useful to precisely refer to a package, as in this example: 9488Dies ist nützlich, um genau ein bestimmtes Paket zu referenzieren, wie in
9489diesem Beispiel:
9109 9490
9110@example 9491@example
9111guix refresh -l -e '(@@@@ (gnu packages commencement) glibc-final)' 9492guix refresh -l -e '(@@@@ (gnu packages commencement) glibc-final)'
9112@end example 9493@end example
9113 9494
9114This command lists the dependents of the ``final'' libc (essentially all the 9495Dieser Befehls listet auf, was alles von der »endgültigen« Erstellung von
9115packages.) 9496libc abhängt (praktisch alle Pakete).
9116 9497
9117@item --update 9498@item --update
9118@itemx -u 9499@itemx -u
9119Update distribution source files (package recipes) in place. This is 9500Die Quelldateien der Distribution (die Paketrezepte) werden direkt »in
9120usually run from a checkout of the Guix source tree (@pxref{Guix vor der Installation ausführen}): 9501place« verändert. Normalerweise führen Sie dies aus einem Checkout des
9502Guix-Quellbaums heraus aus (siehe @ref{Guix vor der Installation ausführen}):
9121 9503
9122@example 9504@example
9123$ ./pre-inst-env guix refresh -s non-core -u 9505$ ./pre-inst-env guix refresh -s non-core -u
9124@end example 9506@end example
9125 9507
9126@xref{Pakete definieren}, for more information on package definitions. 9508Siehe @ref{Pakete definieren} für mehr Informationen zu Paketdefinitionen.
9127 9509
9128@item --select=[@var{subset}] 9510@item --select=[@var{Teilmenge}]
9129@itemx -s @var{subset} 9511@itemx -s @var{Teilmenge}
9130Select all the packages in @var{subset}, one of @code{core} or 9512Wählt alle Pakete aus der @var{Teilmenge} aus, die entweder @code{core} oder
9131@code{non-core}. 9513@code{non-core} sein muss.
9132 9514
9133The @code{core} subset refers to all the packages at the core of the 9515Die @code{core}-Teilmenge bezieht sich auf alle Pakete, die den Kern der
9134distribution---i.e., packages that are used to build ``everything else''. 9516Distribution ausmachen, d.h.@: Pakete, aus denen heraus »alles andere«
9135This includes GCC, libc, Binutils, Bash, etc. Usually, changing one of 9517erstellt wird. Dazu gehören GCC, libc, Binutils, Bash und so weiter. In der
9136these packages in the distribution entails a rebuild of all the others. 9518Regel ist die Folge einer Änderung an einem dieser Pakete in der
9137Thus, such updates are an inconvenience to users in terms of build time or 9519Distribution, dass alle anderen neu erstellt werden müssen. Daher sind
9138bandwidth used to achieve the upgrade. 9520solche Änderungen unangenehm für Nutzer, weil sie einiges an Erstellungszeit
9521oder Bandbreite investieren müssen, um die Aktualisierung abzuschließen.
9139 9522
9140The @code{non-core} subset refers to the remaining packages. It is 9523Die @code{non-core}-Teilmenge bezieht sich auf die übrigen Pakete. Sie wird
9141typically useful in cases where an update of the core packages would be 9524typischerweise dann benutzt, wenn eine Aktualisierung der Kernpakete zu
9142inconvenient. 9525viele Umstände machen würde.
9143 9526
9144@item --manifest=@var{Datei} 9527@item --manifest=@var{Datei}
9145@itemx -m @var{Datei} 9528@itemx -m @var{Datei}
9146Select all the packages from the manifest in @var{file}. This is useful to 9529Wählt alle Pakete im in der @var{Datei} stehenden Manifest aus. Das ist
9147check if any packages of the user manifest can be updated. 9530nützlich, um zu überprüfen, welche Pakete aus dem Manifest des Nutzers
9148 9531aktualisiert werden können.
9149@item --type=@var{updater} 9532
9150@itemx -t @var{updater} 9533@item --type=@var{Aktualisierungsprogramm}
9151Select only packages handled by @var{updater} (may be a comma-separated list 9534@itemx -t @var{Aktualisierungsprogramm}
9152of updaters). Currently, @var{updater} may be one of: 9535Nur solche Pakete auswählen, die vom angegebenen
9536@var{Aktualisierungsprogramm} behandelt werden. Es darf auch eine
9537kommagetrennte Liste mehrerer Aktualisierungsprogramme angegeben werden. Zur
9538Zeit kann als @var{Aktualisierungsprogramm} eines der folgenden angegeben
9539werden:
9153 9540
9154@table @code 9541@table @code
9155@item gnu 9542@item gnu
9156the updater for GNU packages; 9543Aktualisierungsprogramm für GNU-Pakete,
9157@item gnome 9544@item gnome
9158the updater for GNOME packages; 9545Aktualisierungsprogramm für GNOME-Pakete,
9159@item kde 9546@item kde
9160the updater for KDE packages; 9547Aktualisierungsprogramm für KDE-Pakete,
9161@item xorg 9548@item xorg
9162the updater for X.org packages; 9549Aktualisierungsprogramm für X.org-Pakete,
9163@item kernel.org 9550@item kernel.org
9164the updater for packages hosted on kernel.org; 9551Aktualisierungsprogramm auf kernel.org angebotener Pakete,
9165@item elpa 9552@item elpa
9166the updater for @uref{http://elpa.gnu.org/, ELPA} packages; 9553Aktualisierungsprogramm für @uref{http://elpa.gnu.org/, ELPA-Pakete},
9167@item cran 9554@item cran
9168the updater for @uref{https://cran.r-project.org/, CRAN} packages; 9555Aktualisierungsprogramm für @uref{https://cran.r-project.org/, CRAN-Pakete},
9169@item bioconductor 9556@item bioconductor
9170the updater for @uref{https://www.bioconductor.org/, Bioconductor} R 9557Aktualisierungsprogramm r R-Pakete vom
9171packages; 9558@uref{https://www.bioconductor.org/, Bioconductor},
9172@item cpan 9559@item cpan
9173the updater for @uref{http://www.cpan.org/, CPAN} packages; 9560Aktualisierungsprogramm für @uref{http://www.cpan.org/, CPAN-Pakete},
9174@item pypi 9561@item pypi
9175the updater for @uref{https://pypi.python.org, PyPI} packages. 9562Aktualisierungsprogramm für @uref{https://pypi.python.org, PyPI-Pakete},
9176@item gem 9563@item gem
9177the updater for @uref{https://rubygems.org, RubyGems} packages. 9564Aktualisierungsprogramm für @uref{https://rubygems.org, RubyGems-Pakete}.
9178@item github 9565@item github
9179the updater for @uref{https://github.com, GitHub} packages. 9566Aktualisierungsprogramm für @uref{https://github.com, GitHub-Pakete}.
9180@item hackage 9567@item hackage
9181the updater for @uref{https://hackage.haskell.org, Hackage} packages. 9568Aktualisierungsprogramm für @uref{https://hackage.haskell.org,
9569Hackage-Pakete}.
9182@item stackage 9570@item stackage
9183the updater for @uref{https://www.stackage.org, Stackage} packages. 9571Aktualisierungsprogramm für @uref{https://www.stackage.org,
9572Stackage-Pakete}.
9184@item crate 9573@item crate
9185the updater for @uref{https://crates.io, Crates} packages. 9574Aktualisierungsprogramm für @uref{https://crates.io, Crates-Pakete}.
9575@item launchpad
9576Aktualisierungsprogramm für @uref{https://launchpad.net, Launchpad}.
9186@end table 9577@end table
9187 9578
9188For instance, the following command only checks for updates of Emacs 9579Zum Beispiel prüft folgender Befehl nur auf mögliche Aktualisierungen von
9189packages hosted at @code{elpa.gnu.org} and for updates of CRAN packages: 9580auf @code{elpa.gnu.org} angebotenen Emacs-Paketen und von CRAN-Paketen:
9190 9581
9191@example 9582@example
9192$ guix refresh --type=elpa,cran 9583$ guix refresh --type=elpa,cran
@@ -9196,45 +9587,50 @@ gnu/packages/emacs.scm:856:13: emacs-auctex would be upgraded from 11.88.6 to 11
9196 9587
9197@end table 9588@end table
9198 9589
9199In addition, @command{guix refresh} can be passed one or more package names, 9590An @command{guix refresh} nnen auch ein oder mehrere Paketnamen übergeben
9200as in this example: 9591werden wie in diesem Beispiel:
9201 9592
9202@example 9593@example
9203$ ./pre-inst-env guix refresh -u emacs idutils gcc@@4.8 9594$ ./pre-inst-env guix refresh -u emacs idutils gcc@@4.8
9204@end example 9595@end example
9205 9596
9206@noindent 9597@noindent
9207The command above specifically updates the @code{emacs} and @code{idutils} 9598Der Befehl oben aktualisiert speziell das @code{emacs}- und das
9208packages. The @code{--select} option would have no effect in this case. 9599@code{idutils}-Paket. Eine Befehlszeilenoption @code{--select} hätte dann
9600keine Wirkung.
9209 9601
9210When considering whether to upgrade a package, it is sometimes convenient to 9602Wenn Sie sich fragen, ob ein Paket aktualisiert werden sollte oder nicht,
9211know which packages would be affected by the upgrade and should be checked 9603kann es helfen, sich anzuschauen, welche Pakete von der Aktualisierung
9212for compatibility. For this the following option may be used when passing 9604betroffen wären und auf Kompatibilität hin geprüft werden sollten. Dazu kann
9213@command{guix refresh} one or more package names: 9605die folgende Befehlszeilenoption zusammen mit einem oder mehreren Paketnamen
9606an @command{guix refresh} übergeben werden:
9214 9607
9215@table @code 9608@table @code
9216 9609
9217@item --list-updaters 9610@item --list-updaters
9218@itemx -L 9611@itemx -L
9219List available updaters and exit (see @option{--type} above.) 9612Eine Liste verfügbarer Aktualisierungsprogramme anzeigen und terminieren
9613(siehe @option{--type} oben).
9220 9614
9221For each updater, display the fraction of packages it covers; at the end, 9615Für jedes Aktualisierungsprogramm den Anteil der davon betroffenen Pakete
9222display the fraction of packages covered by all these updaters. 9616anzeigen; zum Schluss wird der Gesamtanteil von irgendeinem
9617Aktualisierungsprogramm betroffener Pakete angezeigt.
9223 9618
9224@item --list-dependent 9619@item --list-dependent
9225@itemx -l 9620@itemx -l
9226List top-level dependent packages that would need to be rebuilt as a result 9621Auflisten, welche abhängigen Pakete auf oberster Ebene neu erstellt werden
9227of upgrading one or more packages. 9622müssten, wenn eines oder mehrere Pakete aktualisiert würden.
9228 9623
9229@xref{Aufruf von guix graph, the @code{reverse-package} type of @command{guix 9624Siehe @ref{Aufruf von guix graph, den @code{reverse-package}-Typ von
9230graph}}, for information on how to visualize the list of dependents of a 9625@command{guix graph}} für Informationen dazu, wie Sie die Liste der
9231package. 9626Abhängigen eines Pakets visualisieren können.
9232 9627
9233@end table 9628@end table
9234 9629
9235Be aware that the @code{--list-dependent} option only @emph{approximates} 9630Bedenken Sie, dass die Befehlszeilenoption @code{--list-dependent} das
9236the rebuilds that would be required as a result of an upgrade. More 9631Ausmaß der nach einer Aktualisierungen benötigten Neuerstellungen nur
9237rebuilds might be required under some circumstances. 9632@emph{annähert}. Es könnten auch unter Umständen mehr Neuerstellungen
9633anfallen.
9238 9634
9239@example 9635@example
9240$ guix refresh --list-dependent flex 9636$ guix refresh --list-dependent flex
@@ -9242,13 +9638,14 @@ Building the following 120 packages would ensure 213 dependent packages are rebu
9242hop@@2.4.0 geiser@@0.4 notmuch@@0.18 mu@@0.9.9.5 cflow@@1.4 idutils@@4.6 @dots{} 9638hop@@2.4.0 geiser@@0.4 notmuch@@0.18 mu@@0.9.9.5 cflow@@1.4 idutils@@4.6 @dots{}
9243@end example 9639@end example
9244 9640
9245The command above lists a set of packages that could be built to check for 9641Der oben stehende Befehl gibt einen Satz von Paketen aus, die Sie erstellen
9246compatibility with an upgraded @code{flex} package. 9642wollen könnten, um die Kompatibilität einer Aktualisierung des
9643@code{flex}-Pakets beurteilen zu können.
9247 9644
9248@table @code 9645@table @code
9249 9646
9250@item --list-transitive 9647@item --list-transitive
9251List all the packages which one or more packages depend upon. 9648Die Pakete auflisten, von denen eines oder mehrere Pakete abhängen.
9252 9649
9253@example 9650@example
9254$ guix refresh --list-transitive flex 9651$ guix refresh --list-transitive flex
@@ -9258,110 +9655,123 @@ bison@@3.0.5 indent@@2.2.10 tar@@1.30 gzip@@1.9 bzip2@@1.0.6 xz@@5.2.4 file@@5.3
9258 9655
9259@end table 9656@end table
9260 9657
9261The command above lists a set of packages which, when changed, would cause 9658Der oben stehende Befehl gibt einen Satz von Paketen aus, die, wenn sie
9262@code{flex} to be rebuilt. 9659geändert würden, eine Neuerstellung des @code{flex}-Pakets auslösen rden.
9263 9660
9264The following options can be used to customize GnuPG operation: 9661Mit den folgenden Befehlszeilenoptionen können Sie das Verhalten von GnuPG
9662anpassen:
9265 9663
9266@table @code 9664@table @code
9267 9665
9268@item --gpg=@var{command} 9666@item --gpg=@var{Befehl}
9269Use @var{command} as the GnuPG 2.x command. @var{command} is searched for 9667Den @var{Befehl} als GnuPG-2.x-Befehl einsetzen. Der @var{Befehl} wird im
9270in @code{$PATH}. 9668@code{$PATH} gesucht.
9271 9669
9272@item --keyring=@var{Datei} 9670@item --keyring=@var{Datei}
9273Use @var{file} as the keyring for upstream keys. @var{file} must be in the 9671Die @var{Datei} als Schlüsselbund mit Anbieterschlüsseln verwenden. Die
9274@dfn{keybox format}. Keybox files usually have a name ending in @file{.kbx} 9672@var{Datei} muss im @dfn{Keybox-Format} vorliegen. Keybox-Dateien haben
9275and the GNU@tie{}Privacy Guard (GPG) can manipulate these files 9673normalerweise einen Namen, der auf @file{.kbx} endet. Sie können mit Hilfe
9276(@pxref{kbxutil, @command{kbxutil},, gnupg, Using the GNU Privacy Guard}, 9674von GNU@tie{}Privacy Guard (GPG) bearbeitet werden (siehe @ref{kbxutil,
9277for information on a tool to manipulate keybox files). 9675@command{kbxutil},, gnupg, Using the GNU Privacy Guard} für Informationen
9676über ein Werkzeug zum Bearbeiten von Keybox-Dateien).
9278 9677
9279When this option is omitted, @command{guix refresh} uses 9678Wenn diese Befehlszeilenoption nicht angegeben wird, benutzt @command{guix
9280@file{~/.config/guix/upstream/trustedkeys.kbx} as the keyring for upstream 9679refresh} die Keybox-Datei @file{~/.config/guix/upstream/trustedkeys.kbx} als
9281signing keys. OpenPGP signatures are checked against keys from this 9680Schlüsselbund für Signierschlüssel von Anbietern. OpenPGP-Signaturen werden
9282keyring; missing keys are downloaded to this keyring as well (see 9681mit Schlüsseln aus diesem Schlüsselbund überprüft; fehlende Schlüssel werden
9283@option{--key-download} below.) 9682auch in diesen Schlüsselbund heruntergeladen (siehe @option{--key-download}
9683unten).
9284 9684
9285You can export keys from your default GPG keyring into a keybox file using 9685Sie nnen Schlüssel aus Ihrem normalerweise benutzten GPG-Schlüsselbund in
9286commands like this one: 9686eine Keybox-Datei exportieren, indem Sie Befehle wie diesen benutzen:
9287 9687
9288@example 9688@example
9289gpg --export rms@@gnu.org | kbxutil --import-openpgp >> mykeyring.kbx 9689gpg --export rms@@gnu.org | kbxutil --import-openpgp >> mykeyring.kbx
9290@end example 9690@end example
9291 9691
9292Likewise, you can fetch keys to a specific keybox file like this: 9692Ebenso können Sie wie folgt Schlüssel in eine bestimmte Keybox-Datei
9693herunterladen:
9293 9694
9294@example 9695@example
9295gpg --no-default-keyring --keyring mykeyring.kbx \ 9696gpg --no-default-keyring --keyring mykeyring.kbx \
9296 --recv-keys @value{OPENPGP-SIGNING-KEY-ID} 9697 --recv-keys @value{OPENPGP-SIGNING-KEY-ID}
9297@end example 9698@end example
9298 9699
9299@ref{GPG Configuration Options, @option{--keyring},, gnupg, Using the GNU 9700Siehe @ref{GPG Configuration Options, @option{--keyring},, gnupg, Using the
9300Privacy Guard}, for more information on GPG's @option{--keyring} option. 9701GNU Privacy Guard} für mehr Informationen zur Befehlszeilenoption
9702@option{--keyring} von GPG.
9301 9703
9302@item --key-download=@var{policy} 9704@item --key-download=@var{Richtlinie}
9303Handle missing OpenPGP keys according to @var{policy}, which may be one of: 9705Fehlende OpenPGP-Schlüssel gemäß dieser @var{Richtlinie} behandeln, für die
9706eine der Folgenden angegeben werden kann:
9304 9707
9305@table @code 9708@table @code
9306@item always 9709@item always
9307Always download missing OpenPGP keys from the key server, and add them to 9710Immer fehlende OpenPGP-Schlüssel herunterladen und zum GnuPG-Schlüsselbund
9308the user's GnuPG keyring. 9711des Nutzers hinzufügen.
9309 9712
9310@item never 9713@item never
9311Never try to download missing OpenPGP keys. Instead just bail out. 9714Niemals fehlende OpenPGP-Schlüssel herunterladen, sondern einfach abbrechen.
9312 9715
9313@item interactive 9716@item interactive
9314When a package signed with an unknown OpenPGP key is encountered, ask the 9717Ist ein Paket mit einem unbekannten OpenPGP-Schlüssel signiert, wird der
9315user whether to download it or not. This is the default behavior. 9718Nutzer gefragt, ob der Schlüssel heruntergeladen werden soll oder
9719nicht. Dies entspricht dem vorgegebenen Verhalten.
9316@end table 9720@end table
9317 9721
9318@item --key-server=@var{host} 9722@item --key-server=@var{Host}
9319Use @var{host} as the OpenPGP key server when importing a public key. 9723Den mit @var{Host} bezeichneten Rechner als Schlüsselserver für OpenPGP
9724benutzen, wenn ein öffentlicher Schlüssel importiert wird.
9320 9725
9321@end table 9726@end table
9322 9727
9323The @code{github} updater uses the @uref{https://developer.github.com/v3/, 9728Das @code{github}-Aktualisierungsprogramm benutzt die
9324GitHub API} to query for new releases. When used repeatedly e.g.@: when 9729@uref{https://developer.github.com/v3/, GitHub-Programmierschnittstelle}
9325refreshing all packages, GitHub will eventually refuse to answer any further 9730(die »Github-API«), um Informationen über neue Veröffentlichungen
9326API requests. By default 60 API requests per hour are allowed, and a full 9731einzuholen. Geschieht dies oft, z.B.@: beim Auffrischen aller Pakete, so
9327refresh on all GitHub packages in Guix requires more than this. 9732wird GitHub irgendwann aufhören, weitere API-Anfragen zu
9328Authentication with GitHub through the use of an API token alleviates these 9733beantworten. Normalerweise sind 60 API-Anfragen pro Stunde erlaubt, für eine
9329limits. To use an API token, set the environment variable 9734vollständige Auffrischung aller GitHub-Pakete in Guix werden aber mehr
9330@code{GUIX_GITHUB_TOKEN} to a token procured from 9735benötigt. Wenn Sie sich bei GitHub mit Ihrem eigenen API-Token
9331@uref{https://github.com/settings/tokens} or otherwise. 9736authentisieren, gelten weniger einschränkende Grenzwerte. Um einen API-Token
9737zu benutzen, setzen Sie die Umgebungsvariable @code{GUIX_GITHUB_TOKEN} auf
9738einen von @uref{https://github.com/settings/tokens} oder anderweitig
9739bezogenen API-Token.
9332 9740
9333 9741
9334@node Aufruf von guix lint 9742@node Aufruf von guix lint
9335@section Invoking @command{guix lint} 9743@section @command{guix lint} aufrufen
9336 9744
9337@cindex @command{guix lint} 9745@cindex @command{guix lint}
9338@cindex package, checking for errors 9746@cindex Pakete, auf Fehler prüfen
9339The @command{guix lint} command is meant to help package developers avoid 9747Den Befehl @command{guix lint} gibt es, um Paketentwicklern beim Vermeiden
9340common errors and use a consistent style. It runs a number of checks on a 9748häufiger Fehler und bei der Einhaltung eines konsistenten Code-Stils zu
9341given set of packages in order to find common mistakes in their 9749helfen. Er führt eine Reihe von Prüfungen auf einer angegebenen Menge von
9342definitions. Available @dfn{checkers} include (see @code{--list-checkers} 9750Paketen durch, um in deren Definition häufige Fehler aufzuspüren. Zu den
9343for a complete list): 9751verfügbaren @dfn{Prüfern} gehören (siehe @code{--list-checkers} für eine
9752vollständige Liste):
9344 9753
9345@table @code 9754@table @code
9346@item synopsis 9755@item synopsis
9347@itemx description 9756@itemx description
9348Validate certain typographical and stylistic rules about package 9757Überprüfen, ob bestimmte typografische und stilistische Regeln in
9349descriptions and synopses. 9758Paketbeschreibungen und -zusammenfassungen eingehalten wurden.
9350 9759
9351@item inputs-should-be-native 9760@item inputs-should-be-native
9352Identify inputs that should most likely be native inputs. 9761Eingaben identifizieren, die wahrscheinlich native Eingaben sein sollten.
9353 9762
9354@item source 9763@item source
9355@itemx home-page 9764@itemx home-page
9356@itemx mirror-url 9765@itemx mirror-url
9357@itemx github-url 9766@itemx github-url
9358@itemx source-file-name 9767@itemx source-file-name
9359Probe @code{home-page} and @code{source} URLs and report those that are 9768Die URLs für die Felder @code{home-page} und @code{source} anrufen und nicht
9360invalid. Suggest a @code{mirror://} URL when applicable. If the 9769erreichbare URLs melden. Wenn passend, wird eine @code{mirror://}-URL
9361@code{source} URL redirects to a GitHub URL, recommend usage of the GitHub 9770vorgeschlagen. Wenn die Quell-URL auf eine GitHub-URL weiterleitet, wird
9362URL. Check that the source file name is meaningful, e.g.@: is not just a 9771eine Empfehlung ausgegeben, direkt letztere zu verwenden. Es wird geprüft,
9363version number or ``git-checkout'', without a declared @code{file-name} 9772dass der Quell-Dateiname aussagekräftig ist, dass er also z.B.@: nicht nur
9364(@pxref{»origin«-Referenz}). 9773aus einer Versionsnummer besteht oder als »git-checkout« angegeben wurde,
9774ohne dass ein @code{Dateiname} deklariert wurde (siehe @ref{»origin«-Referenz}).
9365 9775
9366@item source-unstable-tarball 9776@item source-unstable-tarball
9367Parse the @code{source} URL to determine if a tarball from GitHub is 9777Parse the @code{source} URL to determine if a tarball from GitHub is
@@ -9369,13 +9779,15 @@ autogenerated or if it is a release tarball. Unfortunately GitHub's
9369autogenerated tarballs are sometimes regenerated. 9779autogenerated tarballs are sometimes regenerated.
9370 9780
9371@item cve 9781@item cve
9372@cindex security vulnerabilities 9782@cindex Sicherheitslücken
9373@cindex CVE, Common Vulnerabilities and Exposures 9783@cindex CVE, Common Vulnerabilities and Exposures
9374Report known vulnerabilities found in the Common Vulnerabilities and 9784Bekannte Sicherheitslücken melden, die in den Datenbanken der »Common
9375Exposures (CVE) databases of the current and past year 9785Vulnerabilities and Exposures« (CVE) aus diesem und dem letzten Jahr
9376@uref{https://nvd.nist.gov/download.cfm#CVE_FEED, published by the US NIST}. 9786vorkommen, @uref{https://nvd.nist.gov/download.cfm#CVE_FEED, wie sie von der
9787US-amerikanischen NIST veröffentlicht werden}.
9377 9788
9378To view information about a particular vulnerability, visit pages such as: 9789Um Informationen über eine bestimmte Sicherheitslücke angezeigt zu bekommen,
9790besuchen Sie Webseiten wie:
9379 9791
9380@itemize 9792@itemize
9381@item 9793@item
@@ -9385,87 +9797,90 @@ To view information about a particular vulnerability, visit pages such as:
9385@end itemize 9797@end itemize
9386 9798
9387@noindent 9799@noindent
9388where @code{CVE-YYYY-ABCD} is the CVE identifier---e.g., 9800wobei Sie statt @code{CVE-YYYY-ABCD} die CVE-Kennnummer angeben — z.B.@:
9389@code{CVE-2015-7554}. 9801@code{CVE-2015-7554}.
9390 9802
9391Package developers can specify in package recipes the 9803Paketentwickler nnen in ihren Paketrezepten den Namen und die Version des
9392@uref{https://nvd.nist.gov/cpe.cfm,Common Platform Enumeration (CPE)} name 9804Pakets in der @uref{https://nvd.nist.gov/cpe.cfm,Common Platform Enumeration
9393and version of the package when they differ from the name or version that 9805(CPE)} angeben, falls sich diese von dem in Guix benutzten Namen und der
9394Guix uses, as in this example: 9806Version unterscheiden, zum Beispiel so:
9395 9807
9396@example 9808@example
9397(package 9809(package
9398 (name "grub") 9810 (name "grub")
9399 ;; @dots{} 9811 ;; @dots{}
9400 ;; CPE calls this package "grub2". 9812 ;; CPE bezeichnet das Paket als "grub2".
9401 (properties '((cpe-name . "grub2") 9813 (properties '((cpe-name . "grub2")
9402 (cpe-version . "2.3"))) 9814 (cpe-version . "2.3")))
9403@end example 9815@end example
9404 9816
9405@c See <http://www.openwall.com/lists/oss-security/2017/03/15/3>. 9817@c See <http://www.openwall.com/lists/oss-security/2017/03/15/3>.
9406Some entries in the CVE database do not specify which version of a package 9818Manche Einträge in der CVE-Datenbank geben die Version des Pakets nicht an,
9407they apply to, and would thus ``stick around'' forever. Package developers 9819auf das sie sich beziehen, und würden daher bis in alle Ewigkeit Warnungen
9408who found CVE alerts and verified they can be ignored can declare them as in 9820auslösen. Paketentwickler, die CVE-Warnmeldungen gefunden und geprüft haben,
9409this example: 9821dass diese ignoriert werden können, können sie wie in diesem Beispiel
9822deklarieren:
9410 9823
9411@example 9824@example
9412(package 9825(package
9413 (name "t1lib") 9826 (name "t1lib")
9414 ;; @dots{} 9827 ;; @dots{}
9415 ;; These CVEs no longer apply and can be safely ignored. 9828 ;; Diese CVEs treffen nicht mehr zu und können bedenkenlos ignoriert
9829 ;; werden.
9416 (properties `((lint-hidden-cve . ("CVE-2011-0433" 9830 (properties `((lint-hidden-cve . ("CVE-2011-0433"
9417 "CVE-2011-1553" 9831 "CVE-2011-1553"
9418 "CVE-2011-1554" 9832 "CVE-2011-1554"
9419 "CVE-2011-5244"))))) 9833 "CVE-2011-5244")))))
9420@end example 9834@end example
9421 9835
9422@item formatting 9836@item Formatierung
9423Warn about obvious source code formatting issues: trailing white space, use 9837Offensichtliche Fehler bei der Formatierung von Quellcode melden, z.B.@:
9424of tabulations, etc. 9838Leerraum-Zeichen am Zeilenende oder Nutzung von Tabulatorzeichen.
9425@end table 9839@end table
9426 9840
9427Die allgemeine Syntax lautet: 9841Die allgemeine Syntax lautet:
9428 9842
9429@example 9843@example
9430guix lint @var{options} @var{package}@dots{} 9844guix lint @var{Optionen} @var{Pakete}@dots{}
9431@end example 9845@end example
9432 9846
9433If no package is given on the command line, then all packages are checked. 9847Wird kein Paket auf der Befehlszeile angegeben, dann werden alle Pakete
9434The @var{options} may be zero or more of the following: 9848geprüft, die es gibt. Als @var{Optionen} können null oder mehr der folgenden
9849Befehlszeilenoptionen übergeben werden:
9435 9850
9436@table @code 9851@table @code
9437@item --list-checkers 9852@item --list-checkers
9438@itemx -l 9853@itemx -l
9439List and describe all the available checkers that will be run on packages 9854Alle verfügbaren Prüfer für die Pakete auflisten und beschreiben.
9440and exit.
9441 9855
9442@item --checkers 9856@item --checkers
9443@itemx -c 9857@itemx -c
9444Only enable the checkers specified in a comma-separated list using the names 9858Nur die Prüfer aktivieren, die hiernach in einer kommagetrennten Liste aus
9445returned by @code{--list-checkers}. 9859von @code{--list-checkers} aufgeführten Prüfern vorkommen.
9446 9860
9447@end table 9861@end table
9448 9862
9449@node Aufruf von guix size 9863@node Aufruf von guix size
9450@section Invoking @command{guix size} 9864@section @command{guix size} aufrufen
9451 9865
9452@cindex size 9866@cindex Größe
9453@cindex package size 9867@cindex Paketgröße
9454@cindex Abschluss 9868@cindex Abschluss
9455@cindex @command{guix size} 9869@cindex @command{guix size}
9456The @command{guix size} command helps package developers profile the disk 9870Der Befehl @command{guix size} hilft Paketentwicklern dabei, den
9457usage of packages. It is easy to overlook the impact of an additional 9871Plattenplatzverbrauch von Paketen zu profilieren. Es ist leicht, die
9458dependency added to a package, or the impact of using a single output for a 9872Auswirkungen zu unterschätzen, die das Hinzufügen zusätzlicher
9459package that could easily be split (@pxref{Pakete mit mehreren Ausgaben.}). Such are the typical issues that @command{guix size} can 9873Abhängigkeiten zu einem Paket hat oder die das Verwenden einer einzelnen
9460highlight. 9874Ausgabe für ein leicht aufteilbares Paket ausmacht (siehe @ref{Pakete mit mehreren Ausgaben.}). Das sind typische Probleme, auf die @command{guix size}
9875aufmerksam machen kann.
9461 9876
9462The command can be passed one or more package specifications such as 9877Dem Befehl können eine oder mehrere Paketspezifikationen wie @code{gcc@@4.8}
9463@code{gcc@@4.8} or @code{guile:debug}, or a file name in the store. 9878oder @code{guile:debug} übergeben werden, oder ein Dateiname im
9464Consider this example: 9879Store. Betrachten Sie dieses Beispiel:
9465 9880
9466@example 9881@example
9467$ guix size coreutils 9882$ guix size coreutils
9468store item total self 9883Store-Objekt Gesamt Selbst
9469/gnu/store/@dots{}-gcc-5.5.0-lib 60.4 30.1 38.1% 9884/gnu/store/@dots{}-gcc-5.5.0-lib 60.4 30.1 38.1%
9470/gnu/store/@dots{}-glibc-2.27 30.3 28.8 36.6% 9885/gnu/store/@dots{}-glibc-2.27 30.3 28.8 36.6%
9471/gnu/store/@dots{}-coreutils-8.28 78.9 15.0 19.0% 9886/gnu/store/@dots{}-coreutils-8.28 78.9 15.0 19.0%
@@ -9474,270 +9889,303 @@ store item total self
9474/gnu/store/@dots{}-acl-2.2.52 61.1 0.4 0.5% 9889/gnu/store/@dots{}-acl-2.2.52 61.1 0.4 0.5%
9475/gnu/store/@dots{}-attr-2.4.47 60.6 0.2 0.3% 9890/gnu/store/@dots{}-attr-2.4.47 60.6 0.2 0.3%
9476/gnu/store/@dots{}-libcap-2.25 60.5 0.2 0.2% 9891/gnu/store/@dots{}-libcap-2.25 60.5 0.2 0.2%
9477total: 78.9 MiB 9892Gesamt: 78.9 MiB
9478@end example 9893@end example
9479 9894
9480@cindex Abschluss 9895@cindex Abschluss
9481The store items listed here constitute the @dfn{transitive closure} of 9896Die hier aufgelisteten Store-Objekte bilden den @dfn{transitiven Abschluss}
9482Coreutils---i.e., Coreutils and all its dependencies, recursively---as would 9897der Coreutils — d.h.@: die Coreutils und all ihre Abhängigkeiten und deren
9483be returned by: 9898Abhängigkeiten, rekursiv —, wie sie hiervon angezeigt würden:<f
9484 9899
9485@example 9900@example
9486$ guix gc -R /gnu/store/@dots{}-coreutils-8.23 9901$ guix gc -R /gnu/store/@dots{}-coreutils-8.23
9487@end example 9902@end example
9488 9903
9489Here the output shows three columns next to store items. The first column, 9904Hier zeigt die Ausgabe neben den Store-Objekten noch drei Spalten. Die erste
9490labeled ``total'', shows the size in mebibytes (MiB) of the closure of the 9905Spalte namens »Gesamt« gibt wieder, wieviele Mebibytes (MiB) der Abschluss
9491store item---that is, its own size plus the size of all its dependencies. 9906des Store-Objekts groß ist — das heißt, dessen eigene Größe plus die Größe
9492The next column, labeled ``self'', shows the size of the item itself. The 9907all seiner Abhängigkeiten. Die nächste Spalte, bezeichnet mit »Selbst«,
9493last column shows the ratio of the size of the item itself to the space 9908zeigt die Größe nur dieses Objekts an. Die letzte Spalte zeigt das
9494occupied by all the items listed here. 9909Verhältnis der Größe des Objekts zur Gesamtgröße aller hier aufgelisteten
9910Objekte an.
9495 9911
9496In this example, we see that the closure of Coreutils weighs in at 9912In diesem Beispiel sehen wir, dass der Abschluss der Coreutils 79@tie{}MiB
949779@tie{}MiB, most of which is taken by libc and GCC's run-time support 9913schwer ist, wovon das meiste durch libc und die Bibliotheken zur
9498libraries. (That libc and GCC's libraries represent a large fraction of the 9914Laufzeitunterstützung von GCC ausgemacht wird. (Dass libc und die
9499closure is not a problem @i{per se} because they are always available on the 9915Bibliotheken vom GCC einen großen Anteil am Abschluss ausmachen, ist aber an
9500system anyway.) 9916sich noch kein Problem, weil es Bibliotheken sind, die auf dem System
9917sowieso immer verfügbar sein müssen.)
9501 9918
9502When the package(s) passed to @command{guix size} are available in the 9919Wenn das oder die Paket(e), die an @command{guix size} übergeben wurden, im
9503store@footnote{More precisely, @command{guix size} looks for the 9920Store verfügbar sind@footnote{Genauer gesagt braucht @command{guix size} die
9504@emph{ungrafted} variant of the given package(s), as returned by @code{guix 9921@emph{nicht veredelte} Variante des angegebenen Pakets bzw. der Pakete, wie
9505build @var{package} --no-grafts}. @xref{Sicherheitsaktualisierungen}, for information 9922@code{guix build @var{Paket} --no-grafts} sie liefert. Siehe @ref{Sicherheitsaktualisierungen} für Informationen über Veredelungen.}, beauftragen Sie mit
9506on grafts.}, @command{guix size} queries the daemon to determine its 9923@command{guix size} den Daemon, die Abhängigkeiten davon zu bestimmen und
9507dependencies, and measures its size in the store, similar to @command{du -ms 9924deren Größe im Store zu messen, ähnlich wie es mit @command{du -ms
9508--apparent-size} (@pxref{du invocation,,, coreutils, GNU Coreutils}). 9925--apparent-size} geschehen würde (siehe @ref{du invocation,,, coreutils, GNU
9926Coreutils}).
9509 9927
9510When the given packages are @emph{not} in the store, @command{guix size} 9928Wenn die übergebenen Pakete @emph{nicht} im Store liegen, erstattet
9511reports information based on the available substitutes 9929@command{guix size} Bericht mit Informationen, die aus verfügbaren
9512(@pxref{Substitute}). This makes it possible it to profile disk usage of 9930Substituten herausgelesen werden (siehe @ref{Substitute}). Dadurch kann die
9513store items that are not even on disk, only available remotely. 9931Plattenausnutzung von Store-Objekten profiliert werden, die gar nicht auf
9932der Platte liegen und nur auf entfernten Rechnern vorhanden sind.
9514 9933
9515You can also specify several package names: 9934Sie nnen auch mehrere Paketnamen angeben:
9516 9935
9517@example 9936@example
9518$ guix size coreutils grep sed bash 9937$ guix size coreutils grep sed bash
9519store item total self 9938Store-Objekt Gesamt Selbst
9520/gnu/store/@dots{}-coreutils-8.24 77.8 13.8 13.4% 9939/gnu/store/@dots{}-coreutils-8.24 77.8 13.8 13.4%
9521/gnu/store/@dots{}-grep-2.22 73.1 0.8 0.8% 9940/gnu/store/@dots{}-grep-2.22 73.1 0.8 0.8%
9522/gnu/store/@dots{}-bash-4.3.42 72.3 4.7 4.6% 9941/gnu/store/@dots{}-bash-4.3.42 72.3 4.7 4.6%
9523/gnu/store/@dots{}-readline-6.3 67.6 1.2 1.2% 9942/gnu/store/@dots{}-readline-6.3 67.6 1.2 1.2%
9524@dots{} 9943@dots{}
9525total: 102.3 MiB 9944Gesamt: 102.3 MiB
9526@end example 9945@end example
9527 9946
9528@noindent 9947@noindent
9529In this example we see that the combination of the four packages takes 9948In diesem Beispiel sehen wir, dass die Kombination der vier Pakete insgesamt
9530102.3@tie{}MiB in total, which is much less than the sum of each closure 9949102,3@tie{}MiB Platz verbraucht, was wesentlich weniger als die Summe der
9531since they have a lot of dependencies in common. 9950einzelnen Abschlüsse ist, weil diese viele Abhängigkeiten gemeinsam
9951verwenden.
9532 9952
9533The available options are: 9953Die verfügbaren Befehlszeilenoptionen sind:
9534 9954
9535@table @option 9955@table @option
9536 9956
9537@item --substitute-urls=@var{URLs} 9957@item --substitute-urls=@var{URLs}
9538Use substitute information from @var{urls}. @xref{client-substitute-urls, 9958Substitutinformationen von den @var{URLs} benutzen. Siehe
9539the same option for @code{guix build}}. 9959@ref{client-substitute-urls, dieselbe Option bei @code{guix build}}.
9540 9960
9541@item --sort=@var{key} 9961@item --sort=@var{Schlüssel}
9542Sort lines according to @var{key}, one of the following options: 9962Zeilen anhand des @var{Schlüssel}s sortieren, der eine der folgenden
9963Alternativen sein muss:
9543 9964
9544@table @code 9965@table @code
9545@item self 9966@item self
9546the size of each item (the default); 9967die Größe jedes Objekts (die Vorgabe),
9547@item Abschluss 9968@item Abschluss
9548the total size of the item's closure. 9969die Gesamtgröße des Abschlusses des Objekts.
9549@end table 9970@end table
9550 9971
9551@item --map-file=@var{file} 9972@item --map-file=@var{Datei}
9552Write a graphical map of disk usage in PNG format to @var{file}. 9973Eine grafische Darstellung des Plattenplatzverbrauchs als eine
9974PNG-formatierte Karte in die @var{Datei} schreiben.
9553 9975
9554For the example above, the map looks like this: 9976Für das Beispiel oben sieht die Karte so aus:
9555 9977
9556@image{images/coreutils-size-map,5in,, map of Coreutils disk usage produced 9978@image{images/coreutils-size-map,5in,, Karte der Plattenausnutzung der
9557by @command{guix size}} 9979Coreutils, erzeugt mit @command{guix size}}
9558 9980
9559This option requires that 9981Diese Befehlszeilenoption setzt voraus, dass
9560@uref{http://wingolog.org/software/guile-charting/, Guile-Charting} be 9982@uref{http://wingolog.org/software/guile-charting/, Guile-Charting}
9561installed and visible in Guile's module search path. When that is not the 9983installiert und im Suchpfad für Guile-Module sichtbar ist. Falls nicht,
9562case, @command{guix size} fails as it tries to load it. 9984schlägt @command{guix size} beim Versuch fehl, dieses Modul zu laden.
9563 9985
9564@item --system=@var{System} 9986@item --system=@var{System}
9565@itemx -s @var{System} 9987@itemx -s @var{System}
9566Consider packages for @var{system}---e.g., @code{x86_64-linux}. 9988Pakete für dieses @var{System} betrachten — z.B.@: für @code{x86_64-linux}.
9567 9989
9568@end table 9990@end table
9569 9991
9570@node Aufruf von guix graph 9992@node Aufruf von guix graph
9571@section Invoking @command{guix graph} 9993@section @command{guix graph} aufrufen
9572 9994
9573@cindex DAG 9995@cindex DAG
9574@cindex @command{guix graph} 9996@cindex @command{guix graph}
9575@cindex Paketabhängigkeiten 9997@cindex Paketabhängigkeiten
9576Packages and their dependencies form a @dfn{graph}, specifically a directed 9998Pakete und ihre Abhängigkeiten bilden einen @dfn{Graphen}, genauer gesagt
9577acyclic graph (DAG). It can quickly become difficult to have a mental model 9999einen gerichteten azyklischen Graphen (englisch »Directed Acyclic Graph«,
9578of the package DAG, so the @command{guix graph} command provides a visual 10000kurz DAG). Es kann schnell schwierig werden, ein Modell eines Paket-DAGs vor
9579representation of the DAG. By default, @command{guix graph} emits a DAG 10001dem geistigen Auge zu behalten, weshalb der Befehl @command{guix graph} eine
9580representation in the input format of @uref{http://www.graphviz.org/, 10002visuelle Darstellung des DAGs bietet. Das vorgegebene Verhalten von
9581Graphviz}, so its output can be passed directly to the @command{dot} command 10003@command{guix graph} ist, eine DAG-Darstellung im Eingabeformat von
9582of Graphviz. It can also emit an HTML page with embedded JavaScript code to 10004@uref{http://www.graphviz.org/, Graphviz} auszugeben, damit die Ausgabe
9583display a ``chord diagram'' in a Web browser, using the 10005direkt an den Befehl @command{dot} aus Graphviz weitergeleitet werden
9584@uref{https://d3js.org/, d3.js} library, or emit Cypher queries to construct 10006kann. Es kann aber auch eine HTML-Seite mit eingebettetem JavaScript-Code
9585a graph in a graph database supporting the @uref{http://www.opencypher.org/, 10007ausgegeben werden, um ein »Sehnendiagramm« (englisch »Chord Diagram«) in
9586openCypher} query language. The general syntax is: 10008einem Web-Browser anzuzeigen, mit Hilfe der Bibliothek
10009@uref{https://d3js.org/, d3.js}, oder es können Cypher-Anfragen ausgegeben
10010werden, mit denen eine die Anfragesprache @uref{http://www.opencypher.org/,
10011openCypher} unterstützende Graph-Datenbank einen Graphen konstruieren
10012kann. Die allgemeine Syntax ist:
9587 10013
9588@example 10014@example
9589guix graph @var{options} @var{package}@dots{} 10015guix graph @var{Optionen} @var{Pakete}@dots{}
9590@end example 10016@end example
9591 10017
9592For example, the following command generates a PDF file representing the 10018Zum Beispiel erzeugt der folgende Befehl eine PDF-Datei, die den Paket-DAG
9593package DAG for the GNU@tie{}Core Utilities, showing its build-time 10019für die GNU@tie{}Core Utilities darstellt, welcher ihre Abhängigkeiten zur
9594dependencies: 10020Erstellungszeit anzeigt:
9595 10021
9596@example 10022@example
9597guix graph coreutils | dot -Tpdf > dag.pdf 10023guix graph coreutils | dot -Tpdf > dag.pdf
9598@end example 10024@end example
9599 10025
9600The output looks like this: 10026Die Ausgabe sieht so aus:
9601 10027
9602@image{images/coreutils-graph,2in,,Dependency graph of the GNU Coreutils} 10028@image{images/coreutils-graph,2in,,Abhängigkeitsgraph der GNU Coreutils}
9603 10029
9604Nice little graph, no? 10030Ein netter, kleiner Graph, oder?
9605 10031
9606But there is more than one graph! The one above is concise: it is the graph 10032Aber es gibt mehr als eine Art von Graph! Der Graph oben ist kurz und knapp:
9607of package objects, omitting implicit inputs such as GCC, libc, grep, etc. 10033Es ist der Graph der Paketobjekte, ohne implizite Eingaben wie GCC, libc,
9608It is often useful to have such a concise graph, but sometimes one may want 10034grep und so weiter. Oft chte man einen knappen Graphen sehen, aber
9609to see more details. @command{guix graph} supports several types of graphs, 10035manchmal will man auch mehr Details sehen. @command{guix graph} unterstützt
9610allowing you to choose the level of detail: 10036mehrere Typen von Graphen; Sie können den Detailgrad auswählen.
9611 10037
9612@table @code 10038@table @code
9613@item package 10039@item package
9614This is the default type used in the example above. It shows the DAG of 10040Der vorgegebene Typ aus dem Beispiel oben. Er zeigt den DAG der Paketobjekte
9615package objects, excluding implicit dependencies. It is concise, but 10041ohne implizite Abhängigkeiten. Er ist knapp, filtert aber viele Details
9616filters out many details. 10042heraus.
9617 10043
9618@item reverse-package 10044@item reverse-package
9619This shows the @emph{reverse} DAG of packages. For example: 10045Dies zeigt den @emph{umgekehrten} DAG der Pakete. Zum Beispiel:
9620 10046
9621@example 10047@example
9622guix graph --type=reverse-package ocaml 10048guix graph --type=reverse-package ocaml
9623@end example 10049@end example
9624 10050
9625...@: yields the graph of packages that depend on OCaml. 10051...@: yields the graph of packages that @emph{explicitly} depend on OCaml
10052(if you are also interested in cases where OCaml is an implicit dependency,
10053see @code{reverse-bag} below.)
9626 10054
9627Note that for core packages this can yield huge graphs. If all you want is 10055Beachten Sie, dass für Kernpakete damit gigantische Graphen entstehen
9628to know the number of packages that depend on a given package, use 10056können. Wenn Sie nur die Anzahl der Pakete wissen wollen, die von einem
9629@command{guix refresh --list-dependent} (@pxref{Aufruf von guix refresh, 10057gegebenen Paket abhängen, benutzen Sie @command{guix refresh
10058--list-dependent} (siehe @ref{Aufruf von guix refresh,
9630@option{--list-dependent}}). 10059@option{--list-dependent}}).
9631 10060
9632@item bag-emerged 10061@item bag-emerged
9633This is the package DAG, @emph{including} implicit inputs. 10062Dies ist der Paket-DAG @emph{einschließlich} impliziter Eingaben.
9634 10063
9635For instance, the following command: 10064Zum Beispiel liefert der folgende Befehl:
9636 10065
9637@example 10066@example
9638guix graph --type=bag-emerged coreutils | dot -Tpdf > dag.pdf 10067guix graph --type=bag-emerged coreutils | dot -Tpdf > dag.pdf
9639@end example 10068@end example
9640 10069
9641...@: yields this bigger graph: 10070@: diesen größeren Graphen:
9642 10071
9643@image{images/coreutils-bag-graph,,5in,Detailed dependency graph of the GNU 10072@image{images/coreutils-bag-graph,,5in,Detaillierter Abhängigkeitsgraph der
9644Coreutils} 10073GNU Coreutils}
9645 10074
9646At the bottom of the graph, we see all the implicit inputs of 10075Am unteren Rand des Graphen sehen wir alle impliziten Eingaben des
9647@var{gnu-build-system} (@pxref{Erstellungssysteme, @code{gnu-build-system}}). 10076@var{gnu-build-system} (siehe @ref{Erstellungssysteme, @code{gnu-build-system}}).
9648 10077
9649Now, note that the dependencies of these implicit inputs---that is, the 10078Beachten Sie dabei aber, dass auch hier die Abhängigkeiten dieser impliziten
9650@dfn{bootstrap dependencies} (@pxref{Bootstrapping})---are not shown here, 10079Eingabend.h.@: die @dfn{Bootstrap-Abhängigkeiten} (siehe
9651for conciseness. 10080@ref{Bootstrapping}) nicht gezeigt werden, damit der Graph knapper bleibt.
9652 10081
9653@item bag 10082@item bag
9654Similar to @code{bag-emerged}, but this time including all the bootstrap 10083Ähnlich wie @code{bag-emerged}, aber diesmal mit allen
9655dependencies. 10084Bootstrap-Abhängigkeiten.
9656 10085
9657@item bag-with-origins 10086@item bag-with-origins
9658Similar to @code{bag}, but also showing origins and their dependencies. 10087Ähnlich wie @code{bag}, aber auch mit den Ursprüngen und deren
10088Abhängigkeiten.
10089
10090@item reverse-bag
10091This shows the @emph{reverse} DAG of packages. Unlike
10092@code{reverse-package}, it also takes implicit dependencies into account.
10093For example:
10094
10095@example
10096guix graph -t reverse-bag dune
10097@end example
10098
10099@noindent
10100...@: yields the graph of all packages that depend on Dune, directly or
10101indirectly. Since Dune is an @emph{implicit} dependency of many packages
10102@i{via} @code{dune-build-system}, this shows a large number of packages,
10103whereas @code{reverse-package} would show very few if any.
9659 10104
9660@item Ableitung 10105@item Ableitung
9661This is the most detailed representation: It shows the DAG of derivations 10106Diese Darstellung ist am detailliertesten: Sie zeigt den DAG der Ableitungen
9662(@pxref{Ableitungen}) and plain store items. Compared to the above 10107(siehe @ref{Ableitungen}) und der einfachen Store-Objekte. Verglichen mit
9663representation, many additional nodes are visible, including build scripts, 10108obiger Darstellung sieht man viele zusätzliche Knoten einschlilich
9664patches, Guile modules, etc. 10109Erstellungs-Skripts, Patches, Guile-Module usw.
9665 10110
9666For this type of graph, it is also possible to pass a @file{.drv} file name 10111Für diesen Typ Graph kann auch der Name einer @file{.drv}-Datei anstelle
9667instead of a package name, as in: 10112eines Paketnamens angegeben werden, etwa so:
9668 10113
9669@example 10114@example
9670guix graph -t derivation `guix system build -d my-config.scm` 10115guix graph -t derivation `guix system build -d my-config.scm`
9671@end example 10116@end example
9672 10117
9673@item module 10118@item module
9674This is the graph of @dfn{package modules} (@pxref{Paketmodule}). For 10119Dies ist der Graph der @dfn{Paketmodule} (siehe @ref{Paketmodule}). Zum
9675example, the following command shows the graph for the package module that 10120Beispiel zeigt der folgende Befehl den Graph für das Paketmodul an, das das
9676defines the @code{guile} package: 10121@code{guile}-Paket definiert:
9677 10122
9678@example 10123@example
9679guix graph -t module guile | dot -Tpdf > module-graph.pdf 10124guix graph -t module guile | dot -Tpdf > modul-graph.pdf
9680@end example 10125@end example
9681@end table 10126@end table
9682 10127
9683All the types above correspond to @emph{build-time dependencies}. The 10128Alle oben genannten Typen entsprechen @emph{Abhängigkeiten zur
9684following graph type represents the @emph{run-time dependencies}: 10129Erstellungszeit}. Der folgende Graphtyp repräsentiert die
10130@emph{Abhängigkeiten zur Laufzeit}:
9685 10131
9686@table @code 10132@table @code
9687@item references 10133@item references
9688This is the graph of @dfn{references} of a package output, as returned by 10134Dies ist der Graph der @dfn{Referenzen} einer Paketausgabe, wie
9689@command{guix gc --references} (@pxref{Aufruf von guix gc}). 10135@command{guix gc --references} sie liefert (siehe @ref{Aufruf von guix gc}).
9690 10136
9691If the given package output is not available in the store, @command{guix 10137Wenn die angegebene Paketausgabe im Store nicht verfügbar ist, versucht
9692graph} attempts to obtain dependency information from substitutes. 10138@command{guix graph}, die Abhängigkeitsinformationen aus Substituten zu
10139holen.
9693 10140
9694Here you can also pass a store file name instead of a package name. For 10141Hierbei nnen Sie auch einen Store-Dateinamen statt eines Paketnamens
9695example, the command below produces the reference graph of your profile 10142angeben. Zum Beispiel generiert der Befehl unten den Referenzgraphen Ihres
9696(which can be big!): 10143Profils (der sehr groß werden kann!):
9697 10144
9698@example 10145@example
9699guix graph -t references `readlink -f ~/.guix-profile` 10146guix graph -t references `readlink -f ~/.guix-profile`
9700@end example 10147@end example
9701 10148
9702@item referrers 10149@item referrers
9703This is the graph of the @dfn{referrers} of a store item, as returned by 10150Dies ist der Graph der ein Store-Objekt @dfn{referenzierenden} Objekte, wie
9704@command{guix gc --referrers} (@pxref{Aufruf von guix gc}). 10151@command{guix gc --referrers} sie liefern würde (siehe @ref{Aufruf von guix gc}).
9705 10152
9706This relies exclusively on local information from your store. For instance, 10153Er basiert ausschließlich auf lokalen Informationen aus Ihrem Store. Nehmen
9707let us suppose that the current Inkscape is available in 10 profiles on your 10154wir zum Beispiel an, dass das aktuelle Inkscape in 10 Profilen verfügbar
9708machine; @command{guix graph -t referrers inkscape} will show a graph rooted 10155ist, dann wird @command{guix graph -t referrers inkscape} einen Graph
9709at Inkscape and with those 10 profiles linked to it. 10156zeigen, der bei Inkscape gewurzelt ist und Kanten zu diesen 10 Profilen hat.
9710 10157
9711It can help determine what is preventing a store item from being garbage 10158Ein solcher Graph kann dabei helfen, herauszufinden, weshalb ein
9712collected. 10159Store-Objekt nicht vom Müllsammler abgeholt werden kann.
9713 10160
9714@end table 10161@end table
9715 10162
9716The available options are the following: 10163Folgendes sind die verfügbaren Befehlszeilenoptionen:
9717 10164
9718@table @option 10165@table @option
9719@item --type=@var{type} 10166@item --type=@var{Typ}
9720@itemx -t @var{type} 10167@itemx -t @var{Typ}
9721Produce a graph output of @var{type}, where @var{type} must be one of the 10168Eine Graph-Ausgabe dieses @var{Typ}s generieren. Dieser @var{Typ} muss einer
9722values listed above. 10169der oben genannten Werte sein.
9723 10170
9724@item --list-types 10171@item --list-types
9725List the supported graph types. 10172Die unterstützten Graph-Typen auflisten.
9726 10173
9727@item --backend=@var{backend} 10174@item --backend=@var{Backend}
9728@itemx -b @var{backend} 10175@itemx -b @var{Backend}
9729Produce a graph using the selected @var{backend}. 10176Einen Graph mit Hilfe des ausgewählten @var{Backend}s generieren.
9730 10177
9731@item --list-backends 10178@item --list-backends
9732List the supported graph backends. 10179Die unterstützten Graph-Backends auflisten.
9733 10180
9734Currently, the available backends are Graphviz and d3.js. 10181Derzeit sind die verfügbaren Backends Graphviz und d3.js.
9735 10182
9736@item --expression=@var{Ausdruck} 10183@item --expression=@var{Ausdruck}
9737@itemx -e @var{Ausdruck} 10184@itemx -e @var{Ausdruck}
9738Als Paket benutzen, wozu der @var{Ausdruck} ausgewertet wird. 10185Als Paket benutzen, wozu der @var{Ausdruck} ausgewertet wird.
9739 10186
9740This is useful to precisely refer to a package, as in this example: 10187Dies ist nützlich, um genau ein bestimmtes Paket zu referenzieren, wie in
10188diesem Beispiel:
9741 10189
9742@example 10190@example
9743guix graph -e '(@@@@ (gnu packages commencement) gnu-make-final)' 10191guix graph -e '(@@@@ (gnu packages commencement) gnu-make-final)'
@@ -9745,11 +10193,11 @@ guix graph -e '(@@@@ (gnu packages commencement) gnu-make-final)'
9745 10193
9746@item --system=@var{System} 10194@item --system=@var{System}
9747@itemx -s @var{System} 10195@itemx -s @var{System}
9748Display the graph for @var{system}---e.g., @code{i686-linux}. 10196Den Graphen für das @var{System} anzeigen — z.B.@: @code{i686-linux}.
9749 10197
9750The package dependency graph is largely architecture-independent, but there 10198Der Abhängigkeitsgraph ist größtenteils von der Systemarchitektur
9751are some architecture-dependent bits that this option allows you to 10199unabhängig, aber ein paar architekturabhängige Teilennen Ihnen mit dieser
9752visualize. 10200Befehlszeilenoption visualisiert werden.
9753@end table 10201@end table
9754 10202
9755 10203
@@ -9760,17 +10208,18 @@ visualize.
9760@cindex @command{guix publish} 10208@cindex @command{guix publish}
9761Der Zweck von @command{guix publish} ist, es Nutzern zu ermöglichen, ihren 10209Der Zweck von @command{guix publish} ist, es Nutzern zu ermöglichen, ihren
9762Store auf einfache Weise mit anderen zu teilen, die ihn dann als 10210Store auf einfache Weise mit anderen zu teilen, die ihn dann als
9763Substitutserver einsetzen können (@pxref{Substitute}). 10211Substitutserver einsetzen können (siehe @ref{Substitute}).
9764 10212
9765When @command{guix publish} runs, it spawns an HTTP server which allows 10213Wenn @command{guix publish} ausgeführt wird, wird dadurch ein HTTP-Server
9766anyone with network access to obtain substitutes from it. This means that 10214gestartet, so dass jeder mit Netzwerkzugang davon Substitute beziehen
9767any machine running Guix can also act as if it were a build farm, since the 10215kann. Das bedeutet, dass jede Maschine, auf der Guix läuft, auch als
9768HTTP interface is compatible with Hydra, the software behind the 10216Build-Farm fungieren kann, weil die HTTP-Schnittstelle mit Hydra, der
9769@code{@value{SUBSTITUTE-SERVER}} build farm. 10217Software, mit der die offizielle Build-Farm @code{@value{SUBSTITUTE-SERVER}}
10218betrieben wird, kompatibel ist.
9770 10219
9771Um Sicherheit zu gewährleisten, wird jedes Substitut signiert, so dass 10220Um Sicherheit zu gewährleisten, wird jedes Substitut signiert, so dass
9772Empfänger dessen Authentizität und Integrität nachprüfen können (siehe 10221Empfänger dessen Authentizität und Integrität nachprüfen können (siehe
9773@pxref{Substitute}). Weil @command{guix publish} den Signierschlüssel des 10222@ref{Substitute}). Weil @command{guix publish} den Signierschlüssel des
9774Systems benutzt, der nur vom Systemadministrator gelesen werden kann, muss 10223Systems benutzt, der nur vom Systemadministrator gelesen werden kann, muss
9775es als der Administratornutzer »root« gestartet werden. Mit der 10224es als der Administratornutzer »root« gestartet werden. Mit der
9776Befehlszeilenoption @code{--user} werden Administratorrechte bald nach dem 10225Befehlszeilenoption @code{--user} werden Administratorrechte bald nach dem
@@ -9778,7 +10227,7 @@ Start wieder abgelegt.
9778 10227
9779Das Schlüsselpaar zum Signieren muss erzeugt werden, bevor @command{guix 10228Das Schlüsselpaar zum Signieren muss erzeugt werden, bevor @command{guix
9780publish} gestartet wird. Dazu können Sie @command{guix archive 10229publish} gestartet wird. Dazu können Sie @command{guix archive
9781--generate-key} ausführen (@pxref{Aufruf von guix archive}). 10230--generate-key} ausführen (siehe @ref{Aufruf von guix archive}).
9782 10231
9783Die allgemeine Syntax lautet: 10232Die allgemeine Syntax lautet:
9784 10233
@@ -9793,7 +10242,7 @@ ein HTTP-Server gestartet, der auf Port 8080 lauscht:
9793guix publish 10242guix publish
9794@end example 10243@end example
9795 10244
9796Sobald ein Server zum Veröffentlichen autorisiert wurde (@pxref{Aufruf von guix archive}), kann der Daemon davon Substitute herunterladen: 10245Sobald ein Server zum Veröffentlichen autorisiert wurde (siehe @ref{Aufruf von guix archive}), kann der Daemon davon Substitute herunterladen:
9797 10246
9798@example 10247@example
9799guix-daemon --substitute-urls=http://example.org:8080 10248guix-daemon --substitute-urls=http://example.org:8080
@@ -9807,15 +10256,15 @@ Sie die Befehlszeilenoption @option{--cache} benutzen, die das
9807Zwischenspeichern der komprimierten Archive aktiviert, bevor diese an die 10256Zwischenspeichern der komprimierten Archive aktiviert, bevor diese an die
9808Clients geschickt werden — siehe unten für Details. Mit dem Befehl 10257Clients geschickt werden — siehe unten für Details. Mit dem Befehl
9809@command{guix weather} haben Sie eine praktische Methode zur Hand, zu 10258@command{guix weather} haben Sie eine praktische Methode zur Hand, zu
9810überprüfen, was so ein Server anbietet (@pxref{Aufruf von guix weather}). 10259überprüfen, was so ein Server anbietet (siehe @ref{Aufruf von guix weather}).
9811 10260
9812Als Bonus dient @command{guix publish} auch als inhaltsadressierbarer 10261Als Bonus dient @command{guix publish} auch als inhaltsadressierbarer
9813Spiegelserver für Quelldateien, die in @code{origin}-Verbundsobjekten 10262Spiegelserver für Quelldateien, die in @code{origin}-Verbundsobjekten
9814eingetragen sind (@pxref{»origin«-Referenz}). Wenn wir zum Beispiel annehmen, 10263eingetragen sind (siehe @ref{»origin«-Referenz}). Wenn wir zum Beispiel
9815dass @command{guix publish} auf @code{example.org} läuft, liefert folgende 10264annehmen, dass @command{guix publish} auf @code{example.org} läuft, liefert
9816URL die rohe @file{hello-2.10.tar.gz}-Datei mit dem angegebenen SHA256-Hash 10265folgende URL die rohe @file{hello-2.10.tar.gz}-Datei mit dem angegebenen
9817als ihre Prüfsumme (dargestellt im @code{nix-base32}-Format, siehe 10266SHA256-Hash als ihre Prüfsumme (dargestellt im @code{nix-base32}-Format,
9818@pxref{Aufruf von guix hash}): 10267siehe @ref{Aufruf von guix hash}):
9819 10268
9820@example 10269@example
9821http://example.org/file/hello-2.10.tar.gz/sha256/0ssi1@dots{}ndq1i 10270http://example.org/file/hello-2.10.tar.gz/sha256/0ssi1@dots{}ndq1i
@@ -9834,14 +10283,14 @@ http://example.org/log/gwspk@dots{}-guile-2.2.3
9834 10283
9835@noindent 10284@noindent
9836Ist der @command{guix-daemon} so eingestellt, dass er Erstellungsprotokolle 10285Ist der @command{guix-daemon} so eingestellt, dass er Erstellungsprotokolle
9837komprimiert abspeichert, wie es voreingestellt ist (@pxref{Aufruf des guix-daemon}), liefern @code{/log}-URLs das unveränderte komprimierte 10286komprimiert abspeichert, wie es voreingestellt ist (siehe @ref{Aufruf des guix-daemon}), liefern @code{/log}-URLs das unveränderte komprimierte
9838Protokoll, mit einer entsprechenden @code{Content-Type}- und/oder 10287Protokoll, mit einer entsprechenden @code{Content-Type}- und/oder
9839@code{Content-Encoding}-Kopfzeile. Wir empfehlen dabei, dass Sie den 10288@code{Content-Encoding}-Kopfzeile. Wir empfehlen dabei, dass Sie den
9840@command{guix-daemon} mit @code{--log-compression=gzip} ausführen, weil 10289@command{guix-daemon} mit @code{--log-compression=gzip} ausführen, weil
9841Web-Browser dieses Format automatisch dekomprimieren können, was bei 10290Web-Browser dieses Format automatisch dekomprimieren können, was bei
9842bzip2-Kompression nicht der Fall ist. 10291bzip2-Kompression nicht der Fall ist.
9843 10292
9844The following options are available: 10293Folgende Befehlszeilenoptionen stehen zur Verfügung:
9845 10294
9846@table @code 10295@table @code
9847@item --port=@var{Port} 10296@item --port=@var{Port}
@@ -9856,7 +10305,7 @@ Schnittstelle zu akzeptieren.
9856@item --user=@var{Benutzer} 10305@item --user=@var{Benutzer}
9857@itemx -u @var{Benutzer} 10306@itemx -u @var{Benutzer}
9858So früh wie möglich alle über die Berechtigungen des @var{Benutzer}s 10307So früh wie möglich alle über die Berechtigungen des @var{Benutzer}s
9859hinausgehenden Berechtigungen ablegen — d.h. sobald der Server-Socket 10308hinausgehenden Berechtigungen ablegen — d.h.@: sobald der Server-Socket
9860geöffnet und der Signierschlüssel gelesen wurde. 10309geöffnet und der Signierschlüssel gelesen wurde.
9861 10310
9862@item --compression[=@var{Stufe}] 10311@item --compression[=@var{Stufe}]
@@ -9897,7 +10346,7 @@ Im Gegensatz dazu liefert, wenn @option{--cache} benutzt wird, die erste
9897Anfrage nach einem Store-Objekt (über dessen @code{.narinfo}-URL) den 10346Anfrage nach einem Store-Objekt (über dessen @code{.narinfo}-URL) den
9898Fehlercode 404, und im Hintergrund wird ein Prozess gestartet, der das 10347Fehlercode 404, und im Hintergrund wird ein Prozess gestartet, der das
9899Archiv in den Zwischenspeicher einlagert (auf Englisch sagen wir »@dfn{bake} 10348Archiv in den Zwischenspeicher einlagert (auf Englisch sagen wir »@dfn{bake}
9900the archive«), d.h. seine @code{.narinfo} wird berechnet und das Archiv, 10349the archive«), d.h.@: seine @code{.narinfo} wird berechnet und das Archiv,
9901falls nötig, komprimiert. Sobald das Archiv im @var{Verzeichnis} 10350falls nötig, komprimiert. Sobald das Archiv im @var{Verzeichnis}
9902zwischengespeichert wurde, werden nachfolgende Anfragen erfolgreich sein und 10351zwischengespeichert wurde, werden nachfolgende Anfragen erfolgreich sein und
9903direkt aus dem Zwischenspeicher bedient, der garantiert, dass Clients 10352direkt aus dem Zwischenspeicher bedient, der garantiert, dass Clients
@@ -9931,8 +10380,8 @@ nicht zugegriffen wurde und kein ihnen entsprechendes Objekt mehr im Store
9931existiert. 10380existiert.
9932 10381
9933@item --nar-path=@var{Pfad} 10382@item --nar-path=@var{Pfad}
9934Den @var{Pfad} als Präfix für die URLs von »nar«-Dateien benutzen 10383Den @var{Pfad} als Präfix für die URLs von »nar«-Dateien benutzen (siehe
9935(@pxref{Aufruf von guix archive, normalized archives}). 10384@ref{Aufruf von guix archive, normalized archives}).
9936 10385
9937Vorgegeben ist, dass Nars unter einer URL mit 10386Vorgegeben ist, dass Nars unter einer URL mit
9938@code{/nar/gzip/@dots{}-coreutils-8.25} angeboten werden. Mit dieser 10387@code{/nar/gzip/@dots{}-coreutils-8.25} angeboten werden. Mit dieser
@@ -9948,21 +10397,22 @@ Die Dateien müssen demselben Schlüsselpaar entsprechen (der private
9948Schlüssel wird zum Signieren benutzt, der öffentliche Schlüssel wird 10397Schlüssel wird zum Signieren benutzt, der öffentliche Schlüssel wird
9949lediglich in den Metadaten der Signatur aufgeführt). Die Dateien müssen 10398lediglich in den Metadaten der Signatur aufgeführt). Die Dateien müssen
9950Schlüssel im kanonischen (»canonical«) S-Ausdruck-Format enthalten, wie es 10399Schlüssel im kanonischen (»canonical«) S-Ausdruck-Format enthalten, wie es
9951von @command{guix archive --generate-key} erzeugt wird (@pxref{Aufruf von guix archive}). Vorgegeben ist, dass @file{/etc/guix/signing-key.pub} und 10400von @command{guix archive --generate-key} erzeugt wird (siehe @ref{Aufruf von guix archive}). Vorgegeben ist, dass @file{/etc/guix/signing-key.pub} und
9952@file{/etc/guix/signing-key.sec} benutzt werden. 10401@file{/etc/guix/signing-key.sec} benutzt werden.
9953 10402
9954@item --repl[=@var{Port}] 10403@item --repl[=@var{Port}]
9955@itemx -r [@var{Port}] 10404@itemx -r [@var{Port}]
9956Einen Guile-REPL-Server (@pxref{REPL Servers,,, guile, GNU Guile Reference 10405Einen Guile-REPL-Server (siehe @ref{REPL Servers,,, guile, GNU Guile
9957Manual}) auf diesem @var{Port} starten (37146 ist voreingestellt). Dies kann 10406Reference Manual}) auf diesem @var{Port} starten (37146 ist
9958zur Fehlersuche auf einem laufenden »@command{guix publish}«-Server benutzt 10407voreingestellt). Dies kann zur Fehlersuche auf einem laufenden
9959werden. 10408»@command{guix publish}«-Server benutzt werden.
9960@end table 10409@end table
9961 10410
9962Enabling @command{guix publish} on Guix System is a one-liner: just 10411@command{guix publish} auf einem »Guix System«-System zu aktivieren ist ein
9963instantiate a @code{guix-publish-service-type} service in the 10412Einzeiler: Instanziieren Sie einfach einen
9964@code{services} field of the @code{operating-system} declaration 10413@code{guix-publish-service-type}-Dienst im @code{services}-Feld Ihres
9965(@pxref{guix-publish-service-type, @code{guix-publish-service-type}}). 10414@code{operating-system}-Objekts zur Betriebssystemdeklaration (siehe
10415@ref{guix-publish-service-type, @code{guix-publish-service-type}}).
9966 10416
9967Falls Sie Guix aber auf einer »Fremddistribution« laufen lassen, folgen Sie 10417Falls Sie Guix aber auf einer »Fremddistribution« laufen lassen, folgen Sie
9968folgenden Anweisungen: 10418folgenden Anweisungen:
@@ -9991,79 +10441,86 @@ Ihre Distribution verwendet.
9991@end itemize 10441@end itemize
9992 10442
9993@node Aufruf von guix challenge 10443@node Aufruf von guix challenge
9994@section Invoking @command{guix challenge} 10444@section @command{guix challenge} aufrufen
9995 10445
9996@cindex Reproduzierbare Erstellungen 10446@cindex Reproduzierbare Erstellungen
9997@cindex verifiable builds 10447@cindex verifizierbare Erstellungen
9998@cindex @command{guix challenge} 10448@cindex @command{guix challenge}
9999@cindex challenge 10449@cindex Anfechten
10000Do the binaries provided by this server really correspond to the source code 10450Entsprechen die von diesem Server gelieferten Binärdateien tatsächlich dem
10001it claims to build? Is a package build process deterministic? These are the 10451Quellcode, aus dem sie angeblich erzeugt wurden? Ist ein
10002questions the @command{guix challenge} command attempts to answer. 10452Paketerstellungsprozess deterministisch? Diese Fragen versucht @command{guix
10003 10453challenge} zu beantworten.
10004The former is obviously an important question: Before using a substitute 10454
10005server (@pxref{Substitute}), one had better @emph{verify} that it provides 10455Die erste Frage ist offensichtlich wichtig: Bevor man einen Substitutserver
10006the right binaries, and thus @emph{challenge} it. The latter is what 10456benutzt (siehe @ref{Substitute}), @emph{verifiziert} man besser, dass er
10007enables the former: If package builds are deterministic, then independent 10457die richtigen Binärdateien liefert, d.h.@: man @emph{fechtet sie an}. Die
10008builds of the package should yield the exact same result, bit for bit; if a 10458letzte Frage macht die erste möglich: Wenn Paketerstellungen deterministisch
10009server provides a binary different from the one obtained locally, it may be 10459sind, müssten voneinander unabhängige Erstellungen genau dasselbe Ergebnis
10010either corrupt or malicious. 10460liefern, Bit für Bit; wenn ein Server mit einer anderen Binärdatei als der
10011 10461lokal erstellten Binärdatei antwortet, ist diese entweder beschädigt oder
10012We know that the hash that shows up in @file{/gnu/store} file names is the 10462bösartig.
10013hash of all the inputs of the process that built the file or 10463
10014directory---compilers, libraries, build scripts, 10464Wir wissen, dass die in @file{/gnu/store}-Dateinamen auftauchende
10015etc. (@pxref{Einführung}). Assuming deterministic build processes, one 10465Hash-Prüfsumme der Hash aller Eingaben des Prozesses ist, mit dem die Datei
10016store file name should map to exactly one build output. @command{guix 10466oder das Verzeichnis erstellt wurde — Compiler, Bibliotheken,
10017challenge} checks whether there is, indeed, a single mapping by comparing 10467Erstellungsskripts und so weiter (siehe @ref{Einführung}). Wenn wir von
10018the build outputs of several independent builds of any given store item. 10468deterministischen Erstellungen ausgehen, sollte ein Store-Dateiname also auf
10019 10469genau eine Erstellungsausgabe abgebildet werden. Mit @command{guix
10020The command output looks like this: 10470challenge} prüft man, ob es tatsächlich eine eindeutige Abbildung gibt,
10471indem die Erstellungsausgaben mehrerer unabhängiger Erstellungen jedes
10472angegebenen Store-Objekts verglichen werden.
10473
10474Die Ausgabe des Befehls sieht so aus:
10021 10475
10022@smallexample 10476@smallexample
10023$ guix challenge --substitute-urls="https://@value{SUBSTITUTE-SERVER} https://guix.example.org" 10477$ guix challenge --substitute-urls="https://@value{SUBSTITUTE-SERVER} https://guix.example.org"
10024updating list of substitutes from 'https://@value{SUBSTITUTE-SERVER}'... 100.0% 10478Liste der Substitute von »https://@value{SUBSTITUTE-SERVER}« wird aktualisiert … 100.0%
10025updating list of substitutes from 'https://guix.example.org'... 100.0% 10479Liste der Substitute von »https://guix.example.org« wird aktualisiert … 100.0%
10026/gnu/store/@dots{}-openssl-1.0.2d contents differ: 10480Inhalt von /gnu/store/@dots{}-openssl-1.0.2d verschieden:
10027 local hash: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q 10481 lokale Prüfsumme: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q
10028 https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-openssl-1.0.2d: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q 10482 https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-openssl-1.0.2d: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q
10029 https://guix.example.org/nar/@dots{}-openssl-1.0.2d: 1zy4fmaaqcnjrzzajkdn3f5gmjk754b43qkq47llbyak9z0qjyim 10483 https://guix.example.org/nar/@dots{}-openssl-1.0.2d: 1zy4fmaaqcnjrzzajkdn3f5gmjk754b43qkq47llbyak9z0qjyim
10030/gnu/store/@dots{}-git-2.5.0 contents differ: 10484Inhalt von /gnu/store/@dots{}-git-2.5.0 verschieden:
10031 local hash: 00p3bmryhjxrhpn2gxs2fy0a15lnip05l97205pgbk5ra395hyha 10485 lokale Prüfsumme: 00p3bmryhjxrhpn2gxs2fy0a15lnip05l97205pgbk5ra395hyha
10032 https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0: 069nb85bv4d4a6slrwjdy8v1cn4cwspm3kdbmyb81d6zckj3nq9f 10486 https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0: 069nb85bv4d4a6slrwjdy8v1cn4cwspm3kdbmyb81d6zckj3nq9f
10033 https://guix.example.org/nar/@dots{}-git-2.5.0: 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73 10487 https://guix.example.org/nar/@dots{}-git-2.5.0: 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73
10034/gnu/store/@dots{}-pius-2.1.1 contents differ: 10488Inhalt von /gnu/store/@dots{}-pius-2.1.1 verschieden:
10035 local hash: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax 10489 lokale Prüfsumme: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax
10036 https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-pius-2.1.1: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax 10490 https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-pius-2.1.1: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax
10037 https://guix.example.org/nar/@dots{}-pius-2.1.1: 1cy25x1a4fzq5rk0pmvc8xhwyffnqz95h2bpvqsz2mpvlbccy0gs 10491 https://guix.example.org/nar/@dots{}-pius-2.1.1: 1cy25x1a4fzq5rk0pmvc8xhwyffnqz95h2bpvqsz2mpvlbccy0gs
10038 10492
10039@dots{} 10493@dots{}
10040 10494
100416,406 store items were analyzed: 104956,406 Store-Objekte wurden analysiert:
10042 - 4,749 (74.1%) were identical 10496 4,749 (74.1%) waren identisch
10043 - 525 (8.2%) differed 10497 525 (8.2%) unterscheiden sich
10044 - 1,132 (17.7%) were inconclusive 10498 1,132 (17.7%) blieben ergebnislos
10045@end smallexample 10499@end smallexample
10046 10500
10047@noindent 10501@noindent
10048In this example, @command{guix challenge} first scans the store to determine 10502In diesem Beispiel wird mit @command{guix challenge} zuerst die Menge lokal
10049the set of locally-built derivations---as opposed to store items that were 10503erstellter Ableitungen im Store ermittelt — im Gegensatz zu von einem
10050downloaded from a substitute server---and then queries all the substitute 10504Substitserver heruntergeladenen Store-Objekten — und dann werden alle
10051servers. It then reports those store items for which the servers obtained a 10505Substitutserver angefragt. Diejenigen Store-Objekte, bei denen der Server
10052result different from the local build. 10506ein anderes Ergebnis berechnet hat als die lokale Erstellung, werden
10053 10507gemeldet.
10054@cindex non-determinism, in package builds 10508
10055As an example, @code{guix.example.org} always gets a different answer. 10509@cindex Nichtdeterminismus, in Paketerstellungen
10056Conversely, @code{@value{SUBSTITUTE-SERVER}} agrees with local builds, 10510Nehmen wir zum Beispiel an, @code{guix.example.org} gibt uns immer eine
10057except in the case of Git. This might indicate that the build process of 10511verschiedene Antwort, aber @code{@value{SUBSTITUTE-SERVER}} stimmt mit
10058Git is non-deterministic, meaning that its output varies as a function of 10512lokalen Erstellungen überein, @emph{außer} im Fall von Git. Das könnte ein
10059various things that Guix does not fully control, in spite of building 10513Hinweis sein, dass der Erstellungsprozess von Git nichtdeterministisch ist;
10060packages in isolated environments (@pxref{Funktionalitäten}). Most common sources 10514das bedeutet, seine Ausgabe variiert abhängig von verschiedenen Umständen,
10061of non-determinism include the addition of timestamps in build results, the 10515die Guix nicht vollends kontrollieren kann, obwohl es Pakete in isolierten
10062inclusion of random numbers, and directory listings sorted by inode number. 10516Umgebungen erstellt (siehe @ref{Funktionalitäten}). Zu den häufigsten Quellen von
10063See @uref{https://reproducible-builds.org/docs/}, for more information. 10517Nichtdeterminismus gehören das Einsetzen von Zeitstempeln innerhalb der
10064 10518Erstellungsgebnisse, das Einsetzen von Zufallszahlen und von Auflistungen
10065To find out what is wrong with this Git binary, we can do something along 10519eines Verzeichnisinhalts sortiert nach der Inode-Nummer. Siehe
10066these lines (@pxref{Aufruf von guix archive}): 10520@uref{https://reproducible-builds.org/docs/} für mehr Informationen.
10521
10522Um herauszufinden, was mit dieser Git-Binärdatei nicht stimmt, können wir so
10523etwas machen (siehe @ref{Aufruf von guix archive}):
10067 10524
10068@example 10525@example
10069$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0 \ 10526$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0 \
@@ -10071,269 +10528,288 @@ $ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0 \
10071$ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git 10528$ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git
10072@end example 10529@end example
10073 10530
10074This command shows the difference between the files resulting from the local 10531Dieser Befehl zeigt die Unterschiede zwischen den Dateien, die sich aus der
10075build, and the files resulting from the build on 10532lokalen Erstellung ergeben, und den Dateien, die sich aus der Erstellung auf
10076@code{@value{SUBSTITUTE-SERVER}} (@pxref{Overview, Comparing and Merging 10533@code{@value{SUBSTITUTE-SERVER}} ergeben (siehe @ref{Overview, Comparing and
10077Files,, diffutils, Comparing and Merging Files}). The @command{diff} 10534Merging Files,, diffutils, Comparing and Merging Files}). Der Befehl
10078command works great for text files. When binary files differ, a better 10535@command{diff} funktioniert großartig für Textdateien. Wenn sich
10079option is @uref{https://diffoscope.org/, Diffoscope}, a tool that helps 10536Binärdateien unterscheiden, ist @uref{https://diffoscope.org/, Diffoscope}
10080visualize differences for all kinds of files. 10537die bessere Wahl: Es ist ein hilfreiches Werkzeug, das Unterschiede in allen
10538Arten von Dateien visualisiert.
10081 10539
10082Once you have done that work, you can tell whether the differences are due 10540Sobald Sie mit dieser Arbeit fertig sind, können Sie erkennen, ob die
10083to a non-deterministic build process or to a malicious server. We try hard 10541Unterschiede aufgrund eines nichtdeterministischen Erstellungsprozesses oder
10084to remove sources of non-determinism in packages to make it easier to verify 10542wegen einem bösartigen Server zustande kommen. Wir geben uns Mühe, Quellen
10085substitutes, but of course, this is a process that involves not just Guix, 10543von Nichtdeterminismus in Paketen zu entfernen, damit Substitute leichter
10086but a large part of the free software community. In the meantime, 10544verifiziert werden können, aber natürlich ist an diesem Prozess nicht nur
10087@command{guix challenge} is one tool to help address the problem. 10545Guix, sondern ein großer Teil der Freie-Software-Gemeinschaft beteiligt. In
10546der Zwischenzeit ist @command{guix challenge} eines der Werkzeuge, die das
10547Problem anzugehen helfen.
10088 10548
10089If you are writing packages for Guix, you are encouraged to check whether 10549Wenn Sie ein Paket für Guix schreiben, ermutigen wir Sie, zu überprüfen, ob
10090@code{@value{SUBSTITUTE-SERVER}} and other substitute servers obtain the 10550@code{@value{SUBSTITUTE-SERVER}} und andere Substitutserver dasselbe
10091same build result as you did with: 10551Erstellungsergebnis bekommen, das Sie bekommen haben. Das geht so:
10092 10552
10093@example 10553@example
10094$ guix challenge @var{package} 10554$ guix challenge @var{Paket}
10095@end example 10555@end example
10096 10556
10097@noindent 10557@noindent
10098where @var{package} is a package specification such as @code{guile@@2.0} or 10558Dabei wird mit @var{Paket} eine Paketspezifikation wie @code{guile@@2.0}
10099@code{glibc:debug}. 10559oder @code{glibc:debug} bezeichnet.
10100 10560
10101Die allgemeine Syntax lautet: 10561Die allgemeine Syntax lautet:
10102 10562
10103@example 10563@example
10104guix challenge @var{options} [@var{packages}@dots{}] 10564guix challenge @var{Optionen} [@var{Pakete}@dots{}]
10105@end example 10565@end example
10106 10566
10107When a difference is found between the hash of a locally-built item and that 10567Wird ein Unterschied zwischen der Hash-Prüfsumme des lokal erstellten
10108of a server-provided substitute, or among substitutes provided by different 10568Objekts und dem vom Server gelieferten Substitut festgestellt, oder zwischen
10109servers, the command displays it as in the example above and its exit code 10569den Substituten von unterschiedlichen Servern, dann wird der Befehl dies wie
10110is 2 (other non-zero exit codes denote other kinds of errors.) 10570im obigen Beispiel anzeigen und mit dem Exit-Code 2 terminieren (andere
10571Exit-Codes außer null stehen für andere Arten von Fehlern).
10111 10572
10112The one option that matters is: 10573Die eine, wichtige Befehlszeilenoption ist:
10113 10574
10114@table @code 10575@table @code
10115 10576
10116@item --substitute-urls=@var{URLs} 10577@item --substitute-urls=@var{URLs}
10117Consider @var{urls} the whitespace-separated list of substitute source URLs 10578Die @var{URLs} als durch Leerraumzeichen getrennte Liste von
10118to compare to. 10579Substitut-Quell-URLs benutzen. mit denen verglichen wird.
10119 10580
10120@item --verbose 10581@item --verbose
10121@itemx -v 10582@itemx -v
10122Show details about matches (identical contents) in addition to information 10583Details auch zu Übereinstimmungen (deren Inhalt identisch ist) ausgeben,
10123about mismatches. 10584zutzlich zu Informationen über Unterschiede.
10124 10585
10125@end table 10586@end table
10126 10587
10127@node Aufruf von guix copy 10588@node Aufruf von guix copy
10128@section Invoking @command{guix copy} 10589@section @command{guix copy} aufrufen
10129 10590
10130@cindex copy, of store items, over SSH 10591@cindex Kopieren, von Store-Objekten, über SSH
10131@cindex SSH, copy of store items 10592@cindex SSH, Kopieren von Store-Objekten
10132@cindex sharing store items across machines 10593@cindex Store-Objekte zwischen Maschinen teilen
10133@cindex transferring store items across machines 10594@cindex Übertragen von Store-Objekten zwischen Maschinen
10134The @command{guix copy} command copies items from the store of one machine 10595Der Befehl @command{guix copy} kopiert Objekte aus dem Store einer Maschine
10135to that of another machine over a secure shell (SSH) 10596in den Store einer anderen Maschine mittels einer Secure-Shell-Verbindung
10136connection@footnote{This command is available only when Guile-SSH was 10597(kurz SSH-Verbindung)@footnote{Dieser Befehl steht nur dann zur Verfügung,
10137found. @xref{Voraussetzungen}, for details.}. For example, the following 10598wenn Guile-SSH gefunden werden kann. Siehe @ref{Voraussetzungen} für
10138command copies the @code{coreutils} package, the user's profile, and all 10599Details.}. Zum Beispiel kopiert der folgende Befehl das Paket
10139their dependencies over to @var{host}, logged in as @var{user}: 10600@code{coreutils}, das Profil des Benutzers und all deren Abhängigkeiten auf
10140 10601den anderen @var{Rechner}, dazu meldet sich Guix als @var{Benutzer} an:
10141@example 10602
10142guix copy --to=@var{user}@@@var{host} \ 10603@example
10604guix copy --to=@var{Benutzer}@@@var{Rechner} \
10143 coreutils `readlink -f ~/.guix-profile` 10605 coreutils `readlink -f ~/.guix-profile`
10144@end example 10606@end example
10145 10607
10146If some of the items to be copied are already present on @var{host}, they 10608Wenn manche der zu kopierenden Objekte schon auf dem anderen @var{Rechner}
10147are not actually sent. 10609vorliegen, werden sie tatsächlich @emph{nicht} übertragen.
10148 10610
10149The command below retrieves @code{libreoffice} and @code{gimp} from 10611Der folgende Befehl bezieht @code{libreoffice} und @code{gimp} von dem
10150@var{host}, assuming they are available there: 10612@var{Rechner}, vorausgesetzt sie sind dort verfügbar:
10151 10613
10152@example 10614@example
10153guix copy --from=@var{host} libreoffice gimp 10615guix copy --from=@var{host} libreoffice gimp
10154@end example 10616@end example
10155 10617
10156The SSH connection is established using the Guile-SSH client, which is 10618Die SSH-Verbindung wird mit dem Guile-SSH-Client hergestellt, der mit
10157compatible with OpenSSH: it honors @file{~/.ssh/known_hosts} and 10619OpenSSH kompatibel ist: Er berücksichtigt @file{~/.ssh/known_hosts} und
10158@file{~/.ssh/config}, and uses the SSH agent for authentication. 10620@file{~/.ssh/config} und verwendet den SSH-Agenten zur Authentifizierung.
10159 10621
10160The key used to sign items that are sent must be accepted by the remote 10622Der Schlüssel, mit dem gesendete Objekte signiert sind, muss von der
10161machine. Likewise, the key used by the remote machine to sign items you are 10623entfernten Maschine akzeptiert werden. Ebenso muss der Schlüssel, mit dem
10162retrieving must be in @file{/etc/guix/acl} so it is accepted by your own 10624die Objekte signiert sind, die Sie von der entfernten Maschine empfangen, in
10163daemon. @xref{Aufruf von guix archive}, for more information about store item 10625Ihrer Datei @file{/etc/guix/acl} eingetragen sein, damit Ihr Daemon sie
10164authentication. 10626akzeptiert. Siehe @ref{Aufruf von guix archive} für mehr Informationen über
10627die Authentifizierung von Store-Objekten.
10165 10628
10166Die allgemeine Syntax lautet: 10629Die allgemeine Syntax lautet:
10167 10630
10168@example 10631@example
10169guix copy [--to=@var{spec}|--from=@var{spec}] @var{items}@dots{} 10632guix copy [--to=@var{Spezifikation}|--from=@var{Spezifikation}] @var{Objekte}@dots{}
10170@end example 10633@end example
10171 10634
10172You must always specify one of the following options: 10635Sie müssen immer eine der folgenden Befehlszeilenoptionen angeben:
10173 10636
10174@table @code 10637@table @code
10175@item --to=@var{spec} 10638@item --to=@var{Spezifikation}
10176@itemx --from=@var{spec} 10639@itemx --from=@var{Spezifikation}
10177Specify the host to send to or receive from. @var{spec} must be an SSH spec 10640Gibt den Rechner (den »Host«) an, an den oder von dem gesendet
10178such as @code{example.org}, @code{charlie@@example.org}, or 10641bzw. empfangen wird. Die @var{Spezifikation} muss eine SSH-Spezifikation
10642sein wie @code{example.org}, @code{charlie@@example.org} oder
10179@code{charlie@@example.org:2222}. 10643@code{charlie@@example.org:2222}.
10180@end table 10644@end table
10181 10645
10182The @var{items} can be either package names, such as @code{gimp}, or store 10646Die @var{Objekte} nnen entweder Paketnamen wie @code{gimp} oder
10183items, such as @file{/gnu/store/@dots{}-idutils-4.6}. 10647Store-Objekte wie @file{/gnu/store/@dots{}-idutils-4.6} sein.
10184 10648
10185When specifying the name of a package to send, it is first built if needed, 10649Wenn ein zu sendendes Paket mit Namen angegeben wird, wird es erst erstellt,
10186unless @option{--dry-run} was specified. Common build options are supported 10650falls es nicht im Store vorliegt, außer @option{--dry-run} wurde angegeben
10187(@pxref{Gemeinsame Erstellungsoptionen}). 10651wurde. Alle gemeinsamen Erstellungsoptionen werden unterstützt (siehe
10652@ref{Gemeinsame Erstellungsoptionen}).
10188 10653
10189 10654
10190@node Aufruf von guix container 10655@node Aufruf von guix container
10191@section Invoking @command{guix container} 10656@section @command{guix container} aufrufen
10192@cindex container 10657@cindex container
10193@cindex @command{guix container} 10658@cindex @command{guix container}
10194@quotation Anmerkung 10659@quotation Anmerkung
10195As of version @value{VERSION}, this tool is experimental. The interface is 10660Dieses Werkzeug ist noch experimentell, Stand Version @value{VERSION}. Die
10196subject to radical change in the future. 10661Schnittstelle wird sich in Zukunft grundlegend verändern.
10197@end quotation 10662@end quotation
10198 10663
10199The purpose of @command{guix container} is to manipulate processes running 10664Der Zweck von @command{guix container} ist, in einer isolierten Umgebung
10200within an isolated environment, commonly known as a ``container'', typically 10665(gemeinhin als »Container« bezeichnet) laufende Prozesse zu manipulieren,
10201created by the @command{guix environment} (@pxref{Aufruf von guix environment}) and @command{guix system container} (@pxref{Aufruf von guix system}) commands. 10666die typischerweise durch die Befehle @command{guix environment} (siehe
10667@ref{Aufruf von guix environment}) und @command{guix system container} (siehe
10668@ref{Aufruf von guix system}) erzeugt werden.
10202 10669
10203Die allgemeine Syntax lautet: 10670Die allgemeine Syntax lautet:
10204 10671
10205@example 10672@example
10206guix container @var{action} @var{options}@dots{} 10673guix container @var{Aktion} @var{Optionen}@dots{}
10207@end example 10674@end example
10208 10675
10209@var{action} specifies the operation to perform with a container, and 10676Mit @var{Aktion} wird die Operation angegeben, die in der isolierten
10210@var{options} specifies the context-specific arguments for the action. 10677Umgebung durchgeführt werden soll, und mit @var{Optionen} werden die
10678kontextabhängigen Argumente an die Aktion angegeben.
10211 10679
10212The following actions are available: 10680Folgende Aktionen sind verfügbar:
10213 10681
10214@table @code 10682@table @code
10215@item exec 10683@item exec
10216Execute a command within the context of a running container. 10684Führt einen Befehl im Kontext der laufenden isolierten Umgebung aus.
10217 10685
10218The syntax is: 10686Die Syntax ist:
10219 10687
10220@example 10688@example
10221guix container exec @var{pid} @var{program} @var{arguments}@dots{} 10689guix container exec @var{PID} @var{Programm} @var{Argumente}@dots{}
10222@end example 10690@end example
10223 10691
10224@var{pid} specifies the process ID of the running container. @var{program} 10692@var{PID} gibt die Prozess-ID der laufenden isolierten Umgebung an. Als
10225specifies an executable file name within the root file system of the 10693@var{Programm} muss eine ausführbare Datei im Wurzeldateisystem der
10226container. @var{arguments} are the additional options that will be passed 10694isolierten Umgebung angegeben werden. Die @var{Argumente} sind die
10227to @var{program}. 10695zusätzlichen Befehlszeilenoptionen, die an das @var{Programm} übergeben
10696werden.
10228 10697
10229The following command launches an interactive login shell inside a Guix 10698Der folgende Befehl startet eine interaktive Anmelde-Shell innerhalb einer
10230system container, started by @command{guix system container}, and whose 10699isolierten Guix-Systemumgebung, gestartet durch @command{guix system
10231process ID is 9001: 10700container}, dessen Prozess-ID 9001 ist:
10232 10701
10233@example 10702@example
10234guix container exec 9001 /run/current-system/profile/bin/bash --login 10703guix container exec 9001 /run/current-system/profile/bin/bash --login
10235@end example 10704@end example
10236 10705
10237Note that the @var{pid} cannot be the parent process of a container. It 10706Beachten Sie, dass die @var{PID} nicht der Elternprozess der isolierten
10238must be PID 1 of the container or one of its child processes. 10707Umgebung sein darf, sondern PID 1 in der isolierten Umgebung oder einer
10708seiner Kindprozesse sein muss.
10239 10709
10240@end table 10710@end table
10241 10711
10242@node Aufruf von guix weather 10712@node Aufruf von guix weather
10243@section Invoking @command{guix weather} 10713@section @command{guix weather} aufrufen
10244 10714
10245Occasionally you're grumpy because substitutes are lacking and you end up 10715Manchmal werden Sie schlecht gelaunt sein, weil es zu wenige Substitute gibt
10246building packages by yourself (@pxref{Substitute}). The @command{guix 10716und die Pakete bei Ihnen selbst erstellt werden müssen (siehe
10247weather} command reports on substitute availability on the specified servers 10717@ref{Substitute}). Der Befehl @command{guix weather} zeigt einen Bericht
10248so you can have an idea of whether you'll be grumpy today. It can sometimes 10718über die Verfügbarkeit von Substituten auf den angegebenen Servern an, damit
10249be useful info as a user, but it is primarily useful to people running 10719Sie sich eine Vorstellung davon machen können, wie es heute um Ihre Laune
10250@command{guix publish} (@pxref{Aufruf von guix publish}). 10720bestellt sein wird. Manchmal bekommt man als Nutzer so hilfreiche
10721Informationen, aber in erster Linie nützt der Befehl den Leuten, die
10722@command{guix publish} benutzen (siehe @ref{Aufruf von guix publish}).
10251 10723
10252@cindex statistics, for substitutes 10724@cindex Statistik, für Substitute
10253@cindex availability of substitutes 10725@cindex Verfügbarkeit von Substituten
10254@cindex substitute availability 10726@cindex Substitutverfügbarkeit
10255@cindex weather, substitute availability 10727@cindex Wetter, Substitutverfügbarkeit
10256Here's a sample run: 10728Hier ist ein Beispiel für einen Aufruf davon:
10257 10729
10258@example 10730@example
10259$ guix weather --substitute-urls=https://guix.example.org 10731$ guix weather --substitute-urls=https://guix.example.org
10260computing 5,872 package derivations for x86_64-linux... 107325.872 Paketableitungen für x86_64-linux berechnen …
10261looking for 6,128 store items on https://guix.example.org.. 10733Nach 6.128 Store-Objekten von https://guix.example.org suchen …
10262updating list of substitutes from 'https://guix.example.org'... 100.0% 10734updating list of substitutes from 'https://guix.example.org'... 100.0%
10263https://guix.example.org 10735https://guix.example.org
10264 43.4% substitutes available (2,658 out of 6,128) 10736 43,4% Substitute verfügbar (2.658 von 6.128)
10265 7,032.5 MiB of nars (compressed) 10737 7.032,5 MiB an Nars (komprimiert)
10266 19,824.2 MiB on disk (uncompressed) 10738 19.824,2 MiB auf der Platte (unkomprimiert)
10267 0.030 seconds per request (182.9 seconds in total) 10739 0,030 Sekunden pro Anfrage (182,9 Sekunden insgesamt)
10268 33.5 requests per second 10740 33,5 Anfragen pro Sekunde
10269 10741
10270 9.8% (342 out of 3,470) of the missing items are queued 10742 9,8% (342 von 3.470) der fehlenden Objekte sind in der Warteschlange
10271 867 queued builds 10743 Mindestens 867 Erstellungen in der Warteschlange
10272 x86_64-linux: 518 (59.7%) 10744 x86_64-linux: 518 (59,7%)
10273 i686-linux: 221 (25.5%) 10745 i686-linux: 221 (25,5%)
10274 aarch64-linux: 128 (14.8%) 10746 aarch64-linux: 128 (14,8%)
10275 build rate: 23.41 builds per hour 10747 Erstellungsgeschwindigkeit: 23,41 Erstellungen pro Stunde
10276 x86_64-linux: 11.16 builds per hour 10748 x86_64-linux: 11,16 Erstellungen pro Stunde
10277 i686-linux: 6.03 builds per hour 10749 i686-linux: 6,03 Erstellungen pro Stunde
10278 aarch64-linux: 6.41 builds per hour 10750 aarch64-linux: 6,41 Erstellungen pro Stunde
10279@end example 10751@end example
10280 10752
10281@cindex continuous integration, statistics 10753@cindex Kontinuierliche Integration, Statistik
10282As you can see, it reports the fraction of all the packages for which 10754Wie Sie sehen können, wird der Anteil unter allen Paketen angezeigt, für die
10283substitutes are available on the server---regardless of whether substitutes 10755auf dem Server Substitute verfügbar sind — unabhängig davon, ob Substitute
10284are enabled, and regardless of whether this server's signing key is 10756aktiviert sind, und unabhängig davon, ob der signierende Schlüssel des
10285authorized. It also reports the size of the compressed archives (``nars'') 10757Servers autorisiert ist. Es wird auch über die Größe der komprimierten
10286provided by the server, the size the corresponding store items occupy in the 10758Archive (die »Nars«) berichtet, die vom Server angeboten werden, sowie über
10287store (assuming deduplication is turned off), and the server's throughput. 10759die Größe, die die zugehörigen Store-Objekte im Store belegen würden (unter
10288The second part gives continuous integration (CI) statistics, if the server 10760der Annahme, dass Deduplizierung abgeschaltet ist) und über den Durchsatz
10289supports it. In addition, using the @option{--coverage} option, 10761des Servers. Der zweite Teil sind Statistiken zur Kontinuierlichen
10290@command{guix weather} can list ``important'' package substitutes missing on 10762Integration (englisch »Continuous Integration«, kurz CI), wenn der Server
10291the server (see below). 10763dies unterstützt. Des Weiteren kann @command{guix weather}, wenn es mit der
10292 10764Befehlszeilenoption @option{--coverage} aufgerufen wird, »wichtige«
10293To achieve that, @command{guix weather} queries over HTTP(S) meta-data 10765Paketsubstitute, die auf dem Server fehlen, auflisten (siehe unten).
10294(@dfn{narinfos}) for all the relevant store items. Like @command{guix 10766
10295challenge}, it ignores signatures on those substitutes, which is innocuous 10767Dazu werden mit @command{guix weather} Anfragen über HTTP(S) zu Metadaten
10296since the command only gathers statistics and cannot install those 10768(@dfn{Narinfos}) für alle relevanten Store-Objekte gestellt. Wie
10297substitutes. 10769@command{guix challenge} werden die Signaturen auf den Substituten
10298 10770ignoriert, was harmlos ist, weil der Befehl nur Statistiken sammelt und
10299Among other things, it is possible to query specific system types and 10771keine Substitute installieren kann.
10300specific package sets. The available options are listed below. 10772
10773Neben anderen Dingen ist es möglich, bestimmte Systemtypen und bestimmte
10774Paketmengen anzufragen. Die verfügbaren Befehlszeilenoptionen sind folgende:
10301 10775
10302@table @code 10776@table @code
10303@item --substitute-urls=@var{URLs} 10777@item --substitute-urls=@var{URLs}
10304@var{urls} is the space-separated list of substitute server URLs to query. 10778@var{URLs} ist eine leerzeichengetrennte Liste anzufragender
10305When this option is omitted, the default set of substitute servers is 10779Substitutserver-URLs. Wird diese Befehlszeilenoption weggelassen, wird die
10306queried. 10780vorgegebene Menge an Substitutservern angefragt.
10307 10781
10308@item --system=@var{System} 10782@item --system=@var{System}
10309@itemx -s @var{System} 10783@itemx -s @var{System}
10310Query substitutes for @var{system}---e.g., @code{aarch64-linux}. This 10784Substitute für das @var{System} anfragen — z.B.@: für
10311option can be repeated, in which case @command{guix weather} will query 10785@code{aarch64-linux}. Diese Befehlszeilenoption kann mehrmals angegeben
10312substitutes for several system types. 10786werden, wodurch @command{guix weather} die Substitute für mehrere
10787Systemtypen anfragt.
10313 10788
10314@item --manifest=@var{Datei} 10789@item --manifest=@var{Datei}
10315Instead of querying substitutes for all the packages, only ask for those 10790Anstatt die Substitute für alle Pakete anzufragen, werden nur die in der
10316specified in @var{file}. @var{file} must contain a @dfn{manifest}, as with 10791@var{Datei} angegebenen Pakete erfragt. Die @var{Datei} muss ein
10317the @code{-m} option of @command{guix package} (@pxref{Aufruf von guix package}). 10792@dfn{Manifest} enthalten, wie bei der Befehlszeilenoption @code{-m} von
10318 10793@command{guix package} (siehe @ref{Aufruf von guix package}).
10319@item --coverage[=@var{count}] 10794
10320@itemx -c [@var{count}] 10795@item --coverage[=@var{Anzahl}]
10321Report on substitute coverage for packages: list packages with at least 10796@itemx -c [@var{Anzahl}]
10322@var{count} dependents (zero by default) for which substitutes are 10797Einen Bericht über die Substitutabdeckung für Pakete ausgeben, d.h.@: Pakete
10323unavailable. Dependent packages themselves are not listed: if @var{b} 10798mit mindestens @var{Anzahl}-vielen Abhängigen (voreingestellt mindestens
10324depends on @var{a} and @var{a} has no substitutes, only @var{a} is listed, 10799null) anzeigen, für die keine Substitute verfügbar sind. Die abhängigen
10325even though @var{b} usually lacks substitutes as well. The result looks 10800Pakete werden selbst nicht aufgeführt: Wenn @var{b} von @var{a} abhängt und
10326like this: 10801Substitute für @var{a} fehlen, wird nur @var{a} aufgeführt, obwohl dann in
10802der Regel auch die Substitute für @var{b} fehlen. Das Ergebnis sieht so aus:
10327 10803
10328@example 10804@example
10329$ guix weather --substitute-urls=https://ci.guix.de.info -c 10 10805$ guix weather --substitute-urls=https://ci.guix.de.info -c 10
10330computing 8,983 package derivations for x86_64-linux... 108068.983 Paketableitungen für x86_64-linux berechnen …
10331looking for 9,343 store items on https://ci.guix.de.info... 10807Nach 9.343 Store-Objekten von https://ci.guix.de.info suchen …
10332updating substitutes from 'https://ci.guix.de.info'... 100.0% 10808Liste der Substitute von »https://ci.guix.de.info« wird aktualisiert … 100.0%
10333https://ci.guix.de.info 10809https://ci.guix.de.info
10334 64.7% substitutes available (6,047 out of 9,343) 10810 64.7% Substitute verfügbar (6.047 von 9.343)
10335@dots{} 10811@dots{}
103362502 packages are missing from 'https://ci.guix.de.info' for 'x86_64-linux', among which: 108122502 Pakete fehlen auf »https://ci.guix.de.info« für »x86_64-linux«, darunter sind:
10337 58 kcoreaddons@@5.49.0 /gnu/store/@dots{}-kcoreaddons-5.49.0 10813 58 kcoreaddons@@5.49.0 /gnu/store/@dots{}-kcoreaddons-5.49.0
10338 46 qgpgme@@1.11.1 /gnu/store/@dots{}-qgpgme-1.11.1 10814 46 qgpgme@@1.11.1 /gnu/store/@dots{}-qgpgme-1.11.1
10339 37 perl-http-cookiejar@@0.008 /gnu/store/@dots{}-perl-http-cookiejar-0.008 10815 37 perl-http-cookiejar@@0.008 /gnu/store/@dots{}-perl-http-cookiejar-0.008
@@ -10352,13 +10828,14 @@ simply fail to build.
10352@node Aufruf von guix processes 10828@node Aufruf von guix processes
10353@section @command{guix processes} aufrufen 10829@section @command{guix processes} aufrufen
10354 10830
10355The @command{guix processes} command can be useful to developers and system 10831Der Befehl @command{guix processes} kann sich für Entwickler und
10356administrators, especially on multi-user machines and on build farms: it 10832Systemadministratoren als nützlich erweisen, besonders auf Maschinen mit
10357lists the current sessions (connections to the daemon), as well as 10833mehreren Nutzern und auf Build-Farms. Damit werden die aktuellen Sitzungen
10358information about the processes involved@footnote{Remote sessions, when 10834(also Verbindungen zum Daemon) sowie Informationen über die beteiligten
10359@command{guix-daemon} is started with @option{--listen} specifying a TCP 10835Prozesse aufgelistet@footnote{Entfernte Sitzungen, wenn
10360endpoint, are @emph{not} listed.}. Here's an example of the information it 10836@command{guix-daemon} mit @option{--listen} unter Angabe eines TCP-Endpunkts
10361returns: 10837gestartet wurde, werden @emph{nicht} aufgelistet.}. Hier ist ein Beispiel
10838für die davon gelieferten Informationen:
10362 10839
10363@example 10840@example
10364$ sudo guix processes 10841$ sudo guix processes
@@ -10381,23 +10858,25 @@ ChildProcess: 27733: guix offload x86_64-linux 7200 1 28800
10381ChildProcess: 27793: guix offload x86_64-linux 7200 1 28800 10858ChildProcess: 27793: guix offload x86_64-linux 7200 1 28800
10382@end example 10859@end example
10383 10860
10384In this example we see that @command{guix-daemon} has three clients: 10861In diesem Beispiel sehen wir, dass @command{guix-daemon} drei Clients hat:
10385@command{guix environment}, @command{guix publish}, and the Cuirass 10862@command{guix environment}, @command{guix publish} und das Werkzeug Cuirass
10386continuous integration tool; their process identifier (PID) is given by the 10863zur Kontinuierlichen Integration. Deren Prozesskennung (PID) ist jeweils im
10387@code{ClientPID} field. The @code{SessionPID} field gives the PID of the 10864@code{ClientPID}-Feld zu sehen. Das Feld @code{SessionPID} zeigt die PID des
10388@command{guix-daemon} sub-process of this particular session. 10865@command{guix-daemon}-Unterprozesses dieser bestimmten Sitzung.
10389 10866
10390The @code{LockHeld} fields show which store items are currently locked by 10867Das Feld @code{LockHeld} zeigt an, welche Store-Objekte derzeit durch die
10391this session, which corresponds to store items being built or substituted 10868Sitzung gesperrt sind, d.h.@: welche Store-Objekte zur Zeit erstellt oder
10392(the @code{LockHeld} field is not displayed when @command{guix processes} is 10869substituiert werden (das @code{LockHeld}-Feld wird nicht angezeigt, wenn
10393not running as root.) Last, by looking at the @code{ChildProcess} field, we 10870@command{guix processes} nicht als Administratornutzer root ausgeführt
10394understand that these three builds are being offloaded (@pxref{Auslagern des Daemons einrichten}). 10871wird). Letztlich sehen wir am @code{ChildProcess}-Feld oben, dass diese drei
10872Erstellungen hier ausgelagert (englisch »offloaded«) werden (siehe
10873@ref{Auslagern des Daemons einrichten}).
10395 10874
10396The output is in Recutils format so we can use the handy @command{recsel} 10875Die Ausgabe ist im Recutils-Format, damit wir den praktischen
10397command to select sessions of interest (@pxref{Selection Expressions,,, 10876@command{recsel}-Befehl benutzen können, um uns interessierende Sitzungen
10398recutils, GNU recutils manual}). As an example, the command shows the 10877auszuwählen (siehe @ref{Selection Expressions,,, recutils, GNU recutils
10399command line and PID of the client that triggered the build of a Perl 10878manual}). Zum Beispiel zeigt dieser Befehl die Befehlszeile und PID des
10400package: 10879Clients an, der die Erstellung des Perl-Pakets ausgelöst hat:
10401 10880
10402@example 10881@example
10403$ sudo guix processes | \ 10882$ sudo guix processes | \
@@ -10411,11 +10890,11 @@ ClientCommand: cuirass --cache-directory /var/cache/cuirass @dots{}
10411@chapter Systemkonfiguration 10890@chapter Systemkonfiguration
10412 10891
10413@cindex Systemkonfiguration 10892@cindex Systemkonfiguration
10414Die Guix-Systemdistribution unterstützt einen Mechanismus zur konsistenten 10893Die »Guix System«-Distribution unterstützt einen Mechanismus zur
10415Konfiguration des gesamten Systems. Damit meinen wir, dass alle Aspekte der 10894konsistenten Konfiguration des gesamten Systems. Damit meinen wir, dass alle
10416globalen Systemkonfiguration an einem Ort stehen, d.h. die zur Verfügung 10895Aspekte der globalen Systemkonfiguration an einem Ort stehen, d.h.@: die zur
10417gestellten Systemdienste, die Zeitzone und Einstellungen zur Locale (also 10896Verfügung gestellten Systemdienste, die Zeitzone und Einstellungen zur
10418die Anpassung an regionale Gepflogenheiten und Sprachen) sowie 10897Locale (also die Anpassung an regionale Gepflogenheiten und Sprachen) sowie
10419Benutzerkonten. Sie alle werden an derselben Stelle deklariert. So eine 10898Benutzerkonten. Sie alle werden an derselben Stelle deklariert. So eine
10420@dfn{Systemkonfiguration} kann @dfn{instanziiert}, also umgesetzt, werden. 10899@dfn{Systemkonfiguration} kann @dfn{instanziiert}, also umgesetzt, werden.
10421 10900
@@ -10423,7 +10902,7 @@ Benutzerkonten. Sie alle werden an derselben Stelle deklariert. So eine
10423Einer der Vorteile, die ganze Systemkonfiguration unter die Kontrolle von 10902Einer der Vorteile, die ganze Systemkonfiguration unter die Kontrolle von
10424Guix zu stellen, ist, dass so transaktionelle Systemaktualisierungen möglich 10903Guix zu stellen, ist, dass so transaktionelle Systemaktualisierungen möglich
10425werden und dass diese rückgängig gemacht werden können, wenn das 10904werden und dass diese rückgängig gemacht werden können, wenn das
10426aktualisierte System nicht richtig funktioniert (@pxref{Funktionalitäten}). Ein 10905aktualisierte System nicht richtig funktioniert (siehe @ref{Funktionalitäten}). Ein
10427anderer Vorteil ist, dass dieselbe Systemkonfiguration leicht auf einer 10906anderer Vorteil ist, dass dieselbe Systemkonfiguration leicht auf einer
10428anderen Maschine oder zu einem späteren Zeitpunkt benutzt werden kann, ohne 10907anderen Maschine oder zu einem späteren Zeitpunkt benutzt werden kann, ohne
10429dazu eine weitere Schicht administrativer Werkzeuge über den systemeigenen 10908dazu eine weitere Schicht administrativer Werkzeuge über den systemeigenen
@@ -10441,6 +10920,7 @@ Systemdienste zu unterstützen.
10441* Dateisysteme:: Die Dateisystemeinbindungen konfigurieren. 10920* Dateisysteme:: Die Dateisystemeinbindungen konfigurieren.
10442* Zugeordnete Geräte:: Näheres zu blockorientierten Speichermedien. 10921* Zugeordnete Geräte:: Näheres zu blockorientierten Speichermedien.
10443* Benutzerkonten:: Benutzerkonten festlegen. 10922* Benutzerkonten:: Benutzerkonten festlegen.
10923* Tastaturbelegung:: Wie das System Tastendrücke interpretiert.
10444* Locales:: Sprache und kulturelle Konventionen. 10924* Locales:: Sprache und kulturelle Konventionen.
10445* Dienste:: Systemdienste festlegen. 10925* Dienste:: Systemdienste festlegen.
10446* Setuid-Programme:: Mit Administratorrechten startende Programme. 10926* Setuid-Programme:: Mit Administratorrechten startende Programme.
@@ -10449,7 +10929,8 @@ Systemdienste zu unterstützen.
10449* Initiale RAM-Disk:: Linux-libre hochfahren. 10929* Initiale RAM-Disk:: Linux-libre hochfahren.
10450* Bootloader-Konfiguration:: Den Bootloader konfigurieren. 10930* Bootloader-Konfiguration:: Den Bootloader konfigurieren.
10451* Aufruf von guix system:: Instanziierung einer Systemkonfiguration. 10931* Aufruf von guix system:: Instanziierung einer Systemkonfiguration.
10452* Running Guix in a VM:: How to run Guix System in a virtual machine. 10932* Guix in einer VM starten:: Wie man »Guix System« in einer virtuellen
10933 Maschine startet.
10453* Dienste definieren:: Neue Dienstdefinitionen hinzufügen. 10934* Dienste definieren:: Neue Dienstdefinitionen hinzufügen.
10454@end menu 10935@end menu
10455 10936
@@ -10458,7 +10939,7 @@ Systemdienste zu unterstützen.
10458 10939
10459Das Betriebssystem können Sie konfigurieren, indem Sie eine 10940Das Betriebssystem können Sie konfigurieren, indem Sie eine
10460@code{operating-system}-Deklaration in einer Datei speichern, die Sie dann 10941@code{operating-system}-Deklaration in einer Datei speichern, die Sie dann
10461dem Befehl @command{guix system} übergeben (@pxref{Aufruf von guix system}). Eine einfache Konfiguration mit den vorgegebenen Systemdiensten 10942dem Befehl @command{guix system} übergeben (siehe @ref{Aufruf von guix system}). Eine einfache Konfiguration mit den vorgegebenen Systemdiensten
10462und dem vorgegebenen Linux-Libre als Kernel und mit einer initialen RAM-Disk 10943und dem vorgegebenen Linux-Libre als Kernel und mit einer initialen RAM-Disk
10463und einem Bootloader, sieht so aus: 10944und einem Bootloader, sieht so aus:
10464 10945
@@ -10473,7 +10954,7 @@ sind optional, wie etwa @code{packages} und @code{services}, sind optional;
10473werden sie nicht angegeben, nehmen sie einen Vorgabewert an. 10954werden sie nicht angegeben, nehmen sie einen Vorgabewert an.
10474 10955
10475Im Folgenden werden die Effekte von einigen der wichtigsten Feldern 10956Im Folgenden werden die Effekte von einigen der wichtigsten Feldern
10476erläutert (@pxref{»operating-system«-Referenz}, für Details zu allen 10957erläutert (siehe @ref{»operating-system«-Referenz} für Details zu allen
10477verfügbaren Feldern), dann wird beschrieben, wie man das Betriebssystem mit 10958verfügbaren Feldern), dann wird beschrieben, wie man das Betriebssystem mit
10478@command{guix system} @dfn{instanziieren} kann. 10959@command{guix system} @dfn{instanziieren} kann.
10479 10960
@@ -10496,24 +10977,23 @@ Fall sollte das @code{bootloader}-Feld in etwa so aussehen:
10496 (target "/boot/efi")) 10977 (target "/boot/efi"))
10497@end example 10978@end example
10498 10979
10499Siehe den Abschnitt @xref{Bootloader-Konfiguration} für weitere 10980Siehe den Abschnitt @ref{Bootloader-Konfiguration} für weitere Informationen
10500Informationen zu den verfügbaren Konfigurationsoptionen. 10981zu den verfügbaren Konfigurationsoptionen.
10501 10982
10502@unnumberedsubsec global sichtbare Pakete 10983@unnumberedsubsec global sichtbare Pakete
10503 10984
10504@vindex %base-packages 10985@vindex %base-packages
10505Im Feld @code{packages} werden Pakete aufgeführt, die auf dem System für 10986Im Feld @code{packages} werden Pakete aufgeführt, die auf dem System für
10506alle Benutzerkonten global sichtbar sein sollen, d.h. in der 10987alle Benutzerkonten global sichtbar sein sollen, d.h.@: in der
10507@code{PATH}-Umgebungsvariablen jedes Nutzers, zusätzlich zu den 10988@code{PATH}-Umgebungsvariablen jedes Nutzers, zusätzlich zu den
10508nutzereigenen Profilen (@pxref{Aufruf von guix package}). Die Variable 10989nutzereigenen Profilen (siehe @ref{Aufruf von guix package}). Die Variable
10509@var{%base-packages} bietet alle Werkzeuge, die man für grundlegende Nutzer- 10990@var{%base-packages} bietet alle Werkzeuge, die man für grundlegende Nutzer-
10510und Administratortätigkeiten erwarten würde, einschließlich der GNU Core 10991und Administratortätigkeiten erwarten würde, einschließlich der GNU Core
10511Utilities, der GNU Networking Utilities, des leichtgewichtigen Texteditors 10992Utilities, der GNU Networking Utilities, des leichtgewichtigen Texteditors
10512GNU Zile, @command{find}, @command{grep} und so weiter. Obiges Beispiel fügt 10993GNU Zile, @command{find}, @command{grep} und so weiter. Obiges Beispiel fügt
10513zu diesen noch das Programm GNU@tie{}Screen hinzu, welches aus dem Modul 10994zu diesen noch das Programm GNU@tie{}Screen hinzu, welches aus dem Modul
10514@code{(gnu packages screen)} genommen wird (@pxref{Paketmodule}). Die 10995@code{(gnu packages screen)} genommen wird (siehe @ref{Paketmodule}). Die Syntax @code{(list package output)} kann benutzt werden, um
10515Syntax @code{(list package output)} kann benutzt werden, um eine bestimmte 10996eine bestimmte Ausgabe eines Pakets auszuwählen:
10516Ausgabe eines Pakets auszuwählen:
10517 10997
10518@lisp 10998@lisp
10519(use-modules (gnu packages)) 10999(use-modules (gnu packages))
@@ -10549,24 +11029,26 @@ Name-Versions-Paar zu Grunde liegende Paket liefert:
10549 11029
10550@cindex services 11030@cindex services
10551@vindex %base-services 11031@vindex %base-services
10552The @code{services} field lists @dfn{system services} to be made available 11032Das Feld @code{services} listet @dfn{Systemdienste} auf, die zur Verfügung
10553when the system starts (@pxref{Dienste}). The @code{operating-system} 11033stehen sollen, wenn das System startet (siehe @ref{Dienste}). Die
10554declaration above specifies that, in addition to the basic services, we want 11034@code{operating-system}-Deklaration oben legt fest, dass wir neben den
10555the OpenSSH secure shell daemon listening on port 2222 (@pxref{Netzwerkdienste, @code{openssh-service-type}}). Under the hood, 11035grundlegenden Basis-Diensten auch wollen, dass der
10556@code{openssh-service-type} arranges so that @command{sshd} is started with 11036OpenSSH-Secure-Shell-Daemon auf Port 2222 lauscht (siehe @ref{Netzwerkdienste, @code{openssh-service-type}}). Intern sorgt der
10557the right command-line options, possibly with supporting configuration files 11037@code{openssh-service-type} dafür, dass @code{sshd} mit den richtigen
10558generated as needed (@pxref{Dienste definieren}). 11038Befehlszeilenoptionen aufgerufen wird, je nach Systemkonfiguration werden
11039auch für dessen Betrieb nötige Konfigurationsdateien erstellt (siehe
11040@ref{Dienste definieren}).
10559 11041
10560@cindex Anpassung, von Diensten 11042@cindex Anpassung, von Diensten
10561@findex modify-services 11043@findex modify-services
10562Gelegentlich werden Sie die Basis-Dienste nicht einfach so, wie sie sind, 11044Gelegentlich werden Sie die Basis-Dienste nicht einfach so, wie sie sind,
10563benutzen, sondern anpassen wollen. Benutzen Sie @code{modify-services} 11045benutzen, sondern anpassen wollen. Benutzen Sie @code{modify-services}
10564(@pxref{Service-Referenz, @code{modify-services}}), um die Liste der 11046(siehe @ref{Service-Referenz, @code{modify-services}}), um die Liste der
10565Basis-Dienste zu modifizieren. 11047Basis-Dienste zu modifizieren.
10566 11048
10567Wenn Sie zum Beispiel @code{guix-daemon} und Mingetty (das Programm, womit 11049Wenn Sie zum Beispiel @code{guix-daemon} und Mingetty (das Programm, womit
10568Sie sich auf der Konsole anmelden) in der @var{%base-services}-Liste 11050Sie sich auf der Konsole anmelden) in der @var{%base-services}-Liste
10569modifizieren möchten (@pxref{Basisdienste, @code{%base-services}}), 11051modifizieren möchten (siehe @ref{Basisdienste, @code{%base-services}}),
10570schreiben Sie das Folgende in Ihre Betriebssystemdeklaration: 11052schreiben Sie das Folgende in Ihre Betriebssystemdeklaration:
10571 11053
10572@lisp 11054@lisp
@@ -10587,7 +11069,7 @@ schreiben Sie das Folgende in Ihre Betriebssystemdeklaration:
10587 (services %my-services)) 11069 (services %my-services))
10588@end lisp 11070@end lisp
10589 11071
10590Dadurch ändert sich die Konfiguration — d.h. die Dienst-Parameter — der 11072Dadurch ändert sich die Konfiguration — d.h.@: die Dienst-Parameter — der
10591@code{guix-service-type}-Instanz und die aller 11073@code{guix-service-type}-Instanz und die aller
10592@code{mingetty-service-type}-Instanzen in der 11074@code{mingetty-service-type}-Instanzen in der
10593@var{%base-services}-Liste. Das funktioniert so: Zunächst arrangieren wir, 11075@var{%base-services}-Liste. Das funktioniert so: Zunächst arrangieren wir,
@@ -10621,14 +11103,14 @@ Dieses Beispiel bezieht sich auf das Dateisystem hinter @file{/boot/efi}
10621über dessen UUID, @code{1234-ABCD}. Schreiben Sie statt dieser UUID die 11103über dessen UUID, @code{1234-ABCD}. Schreiben Sie statt dieser UUID die
10622richtige UUID für Ihr System, wie sie der Befehl @command{blkid} liefert. 11104richtige UUID für Ihr System, wie sie der Befehl @command{blkid} liefert.
10623 11105
10624Im Abschnitt @xref{Desktop-Dienste} finden Sie eine genaue Liste der unter 11106Im Abschnitt @ref{Desktop-Dienste} finden Sie eine genaue Liste der unter
10625@var{%desktop-services} angebotenen Dienste. Der Abschnitt @xref{X.509-Zertifikate} hat Hintergrundinformationen über das @code{nss-certs}-Paket, 11107@var{%desktop-services} angebotenen Dienste. Der Abschnitt @ref{X.509-Zertifikate} hat Hintergrundinformationen über das @code{nss-certs}-Paket,
10626das hier benutzt wird. 11108das hier benutzt wird.
10627 11109
10628Beachten Sie, dass @var{%desktop-services} nur eine Liste von die Dienste 11110Beachten Sie, dass @var{%desktop-services} nur eine Liste von die Dienste
10629repräsentierenden service-Objekten ist. Wenn Sie Dienste daraus entfernen 11111repräsentierenden service-Objekten ist. Wenn Sie Dienste daraus entfernen
10630möchten, können Sie dazu die Prozeduren zum Filtern von Listen benutzen 11112möchten, können Sie dazu die Prozeduren zum Filtern von Listen benutzen
10631(@pxref{SRFI-1 Filtering and Partitioning,,, guile, GNU Guile Reference 11113(siehe @ref{SRFI-1 Filtering and Partitioning,,, guile, GNU Guile Reference
10632Manual}). Beispielsweise liefert der folgende Ausdruck eine Liste mit allen 11114Manual}). Beispielsweise liefert der folgende Ausdruck eine Liste mit allen
10633Diensten von @var{%desktop-services} außer dem Avahi-Dienst. 11115Diensten von @var{%desktop-services} außer dem Avahi-Dienst.
10634 11116
@@ -10643,7 +11125,7 @@ Diensten von @var{%desktop-services} außer dem Avahi-Dienst.
10643Angenommen, Sie haben die @code{operating-system}-Deklaration in einer Datei 11125Angenommen, Sie haben die @code{operating-system}-Deklaration in einer Datei
10644@file{my-system-config.scm} gespeichert, dann instanziiert der Befehl 11126@file{my-system-config.scm} gespeichert, dann instanziiert der Befehl
10645@command{guix system reconfigure my-system-config.scm} diese Konfiguration 11127@command{guix system reconfigure my-system-config.scm} diese Konfiguration
10646und macht sie zum voreingestellten GRUB-Boot-Eintrag (@pxref{Aufruf von guix system}). 11128und macht sie zum voreingestellten GRUB-Boot-Eintrag (siehe @ref{Aufruf von guix system}).
10647 11129
10648Der normale Weg, die Systemkonfiguration nachträglich zu ändern, ist, die 11130Der normale Weg, die Systemkonfiguration nachträglich zu ändern, ist, die
10649Datei zu aktualisieren und @command{guix system reconfigure} erneut 11131Datei zu aktualisieren und @command{guix system reconfigure} erneut
@@ -10658,7 +11140,7 @@ Zurücksetzen bezieht sich hierbei darauf, dass jedes Mal, wenn Sie
10658@command{guix system reconfigure} ausführen, eine neue @dfn{Generation} des 11140@command{guix system reconfigure} ausführen, eine neue @dfn{Generation} des
10659Systems erzeugt wird — ohne vorherige Generationen zu verändern. Alte 11141Systems erzeugt wird — ohne vorherige Generationen zu verändern. Alte
10660Systemgenerationen bekommen einen Eintrag im Boot-Menü des Bootloaders, 11142Systemgenerationen bekommen einen Eintrag im Boot-Menü des Bootloaders,
10661womit Sie alte Generationen beim Booten des Rechners auswählen können, wenn 11143womit Sie alte Generationen beim Starten des Rechners auswählen können, wenn
10662mit der neuesten Generation etwas nicht stimmt. Eine beruhigende 11144mit der neuesten Generation etwas nicht stimmt. Eine beruhigende
10663Vorstellung, oder? Der Befehl @command{guix system list-generations} führt 11145Vorstellung, oder? Der Befehl @command{guix system list-generations} führt
10664die auf der Platte verfügbaren Systemgenerationen auf. Es ist auch möglich, 11146die auf der Platte verfügbaren Systemgenerationen auf. Es ist auch möglich,
@@ -10667,40 +11149,40 @@ das System mit den Befehlen @command{guix system roll-back} und
10667 11149
10668Obwohl der Befehl @command{guix system reconfigure} vorherige Generationen 11150Obwohl der Befehl @command{guix system reconfigure} vorherige Generationen
10669nicht verändern wird, müssen Sie Acht geben, dass wenn die momentan aktuelle 11151nicht verändern wird, müssen Sie Acht geben, dass wenn die momentan aktuelle
10670Generation nicht die neueste ist (z.B. nach einem Aufruf von @command{guix 11152Generation nicht die neueste ist (z.B.@: nach einem Aufruf von @command{guix
10671system roll-back}), weil @command{guix system reconfigure} alle neueren 11153system roll-back}), weil @command{guix system reconfigure} alle neueren
10672Generationen überschreibt (@pxref{Aufruf von guix system}). 11154Generationen überschreibt (siehe @ref{Aufruf von guix system}).
10673 11155
10674@unnumberedsubsec Die Programmierschnittstelle 11156@unnumberedsubsec Die Programmierschnittstelle
10675 11157
10676Auf der Ebene von Scheme wird der Großteil der 11158Auf der Ebene von Scheme wird der Großteil der
10677@code{operating-system}-Deklaration mit der folgenden monadischen Prozedur 11159@code{operating-system}-Deklaration mit der folgenden monadischen Prozedur
10678instanziiert (@pxref{Die Store-Monade}): 11160instanziiert (siehe @ref{Die Store-Monade}):
10679 11161
10680@deffn {Monadische Prozedur} operating-system-derivation os 11162@deffn {Monadische Prozedur} operating-system-derivation os
10681Liefert eine Ableitung, mit der ein @code{operating-system}-Objekt @var{os} 11163Liefert eine Ableitung, mit der ein @code{operating-system}-Objekt @var{os}
10682erstellt wird (@pxref{Ableitungen}). 11164erstellt wird (siehe @ref{Ableitungen}).
10683 11165
10684Die Ausgabe der Ableitung ist ein einzelnes Verzeichnis mit Verweisen auf 11166Die Ausgabe der Ableitung ist ein einzelnes Verzeichnis mit Verweisen auf
10685alle Pakete, Konfigurationsdateien und andere unterstützenden Dateien, die 11167alle Pakete, Konfigurationsdateien und andere unterstützenden Dateien, die
10686nötig sind, um @var{os} zu instanziieren. 11168nötig sind, um @var{os} zu instanziieren.
10687@end deffn 11169@end deffn
10688 11170
10689This procedure is provided by the @code{(gnu system)} module. Along with 11171Diese Prozedur wird vom Modul @code{(gnu system)} angeboten. Zusammen mit
10690@code{(gnu services)} (@pxref{Dienste}), this module contains the guts of 11172@code{(gnu services)} (siehe @ref{Dienste}) deckt dieses Modul den Kern von
10691Guix System. Make sure to visit it! 11173»Guix System« ab. Schauen Sie es sich mal an!
10692 11174
10693 11175
10694@node »operating-system«-Referenz 11176@node »operating-system«-Referenz
10695@section @code{operating-system}-Referenz 11177@section @code{operating-system}-Referenz
10696 11178
10697Dieser Abschnitt fasst alle Optionen zusammen, die für 11179Dieser Abschnitt fasst alle Optionen zusammen, die für
10698@code{operating-system}-Deklarationen zur Verfügung stehen (@pxref{Das Konfigurationssystem nutzen}). 11180@code{operating-system}-Deklarationen zur Verfügung stehen (siehe @ref{Das Konfigurationssystem nutzen}).
10699 11181
10700@deftp {Datentyp} operating-system 11182@deftp {Datentyp} operating-system
10701Der die Betriebssystemkonfiguration repräsentierende Datentyp. Damit meinen 11183Der die Betriebssystemkonfiguration repräsentierende Datentyp. Damit meinen
10702wir die globale Konfiguration des Systems und nicht die, die sich nur auf 11184wir die globale Konfiguration des Systems und nicht die, die sich nur auf
10703einzelne Nutzer bezieht (@pxref{Das Konfigurationssystem nutzen}). 11185einzelne Nutzer bezieht (siehe @ref{Das Konfigurationssystem nutzen}).
10704 11186
10705@table @asis 11187@table @asis
10706@item @code{kernel} (Vorgabe: @var{linux-libre}) 11188@item @code{kernel} (Vorgabe: @var{linux-libre})
@@ -10711,23 +11193,46 @@ unterstützt. In der Zukunft wird man auch GNU@tie{}Hurd benutzen können.}.
10711@item @code{kernel-arguments} (Vorgabe: @code{'()}) 11193@item @code{kernel-arguments} (Vorgabe: @code{'()})
10712Eine Liste aus Zeichenketten oder G-Ausdrücken, die für zusätzliche 11194Eine Liste aus Zeichenketten oder G-Ausdrücken, die für zusätzliche
10713Argumente an den Kernel stehen, die ihm auf seiner Befehlszeile übergeben 11195Argumente an den Kernel stehen, die ihm auf seiner Befehlszeile übergeben
10714werden — wie z.B. @code{("console=ttyS0")}. 11196werden — wie z.B.@: @code{("console=ttyS0")}.
10715 11197
10716@item @code{bootloader} 11198@item @code{bootloader}
10717Das Konfigurationsobjekt für den Bootloader, mit dem das System gestartet 11199Das Konfigurationsobjekt für den Bootloader, mit dem das System gestartet
10718wird. Siehe @xref{Bootloader-Konfiguration}. 11200wird. Siehe @ref{Bootloader-Konfiguration}.
11201
11202@item @code{label}
11203This is the label (a string) as it appears in the bootloader's menu entry.
11204The default label includes the kernel name and version.
11205
11206@item @code{keyboard-layout} (Vorgabe: @code{#f})
11207Dieses Feld gibt an, welche Tastaturbelegung auf der Konsole benutzt werden
11208soll. Es kann entweder auf @code{#f} gesetzt sein, damit die voreingestellte
11209Tastaturbelegung benutzt wird (in der Regel ist diese »US English«), oder
11210ein @code{<keyboard-layout>}-Verbundsobjekt sein.
11211
11212Diese Tastaturbelegung wird benutzt, sobald der Kernel gebootet wurde. Diese
11213Tastaturbelegung wird zum Beispiel auch verwendet, wenn Sie eine Passphrase
11214eintippen, falls sich Ihr Wurzeldateisystem auf einem mit
11215@code{luks-device-mapping} zugeordneten Gerät befindet (siehe @ref{Zugeordnete Geräte}).
11216
11217@quotation Anmerkung
11218Damit wird @emph{nicht} angegeben, welche Tastaturbelegung der Bootloader
11219benutzt, und auch nicht, welche der grafische Display-Server
11220verwendet. Siehe @ref{Bootloader-Konfiguration} für Informationen darüber,
11221wie Sie die Tastaturbelegung des Bootloaders angeben können. Siehe @ref{X Window} für Informationen darüber, wie Sie die Tastaturbelegung angeben
11222können, die das X-Fenstersystem verwendet.
11223@end quotation
10719 11224
10720@item @code{initrd-modules} (Vorgabe: @code{%base-initrd-modules}) 11225@item @code{initrd-modules} (Vorgabe: @code{%base-initrd-modules})
10721@cindex initrd 11226@cindex initrd
10722@cindex initiale RAM-Disk 11227@cindex initiale RAM-Disk
10723Die Liste der Linux-Kernel-Module, die in der initialen RAM-Disk zur 11228Die Liste der Linux-Kernel-Module, die in der initialen RAM-Disk zur
10724Verfügung stehen sollen @xref{Initiale RAM-Disk}. 11229Verfügung stehen sollen. Siehe @ref{Initiale RAM-Disk}.
10725 11230
10726@item @code{initrd} (Vorgabe: @code{base-initrd}) 11231@item @code{initrd} (Vorgabe: @code{base-initrd})
10727Eine Prozedur, die eine initiale RAM-Disk für den Linux-Kernel 11232Eine Prozedur, die eine initiale RAM-Disk für den Linux-Kernel
10728liefert. Dieses Feld gibt es, damit auch sehr systemnahe Anpassungen 11233liefert. Dieses Feld gibt es, damit auch sehr systemnahe Anpassungen
10729vorgenommen werden können, aber für die normale Nutzung sollte man es kaum 11234vorgenommen werden können, aber für die normale Nutzung sollte man es kaum
10730brauchen. Siehe @xref{Initiale RAM-Disk}. 11235brauchen. Siehe @ref{Initiale RAM-Disk}.
10731 11236
10732@item @code{firmware} (Vorgabe: @var{%base-firmware}) 11237@item @code{firmware} (Vorgabe: @var{%base-firmware})
10733@cindex Firmware 11238@cindex Firmware
@@ -10736,37 +11241,37 @@ können.
10736 11241
10737Vorgegeben ist, dass für Atheros- und Broadcom-basierte WLAN-Geräte nötige 11242Vorgegeben ist, dass für Atheros- und Broadcom-basierte WLAN-Geräte nötige
10738Firmware geladen werden kann (genauer jeweils die Linux-libre-Module 11243Firmware geladen werden kann (genauer jeweils die Linux-libre-Module
10739@code{ath9k} und @code{b43-open}). Siehe den Abschnitt @xref{Hardware-Überlegungen}, für mehr Informationen zu unterstützter Hardware. 11244@code{ath9k} und @code{b43-open}). Siehe den Abschnitt @ref{Hardware-Überlegungen} für mehr Informationen zu unterstützter Hardware.
10740 11245
10741@item @code{host-name} 11246@item @code{host-name}
10742Der Hostname 11247Der Hostname
10743 11248
10744@item @code{hosts-file} 11249@item @code{hosts-file}
10745@cindex hosts-Datei 11250@cindex hosts-Datei
10746Ein dateiartiges Objekt (@pxref{G-Ausdrücke, file-like objects}), das für 11251Ein dateiartiges Objekt (siehe @ref{G-Ausdrücke, file-like objects}), das
10747@file{/etc/hosts} benutzt werden soll (@pxref{Host Names,,, libc, The GNU C 11252für @file{/etc/hosts} benutzt werden soll (siehe @ref{Host Names,,, libc,
10748Library Reference Manual}). Der Vorgabewert ist eine Datei mit Einträgen für 11253The GNU C Library Reference Manual}). Der Vorgabewert ist eine Datei mit
10749@code{localhost} und @var{host-name}. 11254Einträgen für @code{localhost} und @var{host-name}.
10750 11255
10751@item @code{mapped-devices} (Vorgabe: @code{'()}) 11256@item @code{mapped-devices} (Vorgabe: @code{'()})
10752Eine Liste zugeordneter Geräte (»mapped devices«). Siehe @xref{Zugeordnete Geräte}. 11257Eine Liste zugeordneter Geräte (»mapped devices«). Siehe @ref{Zugeordnete Geräte}.
10753 11258
10754@item @code{file-systems} 11259@item @code{file-systems}
10755Eine Liste von Dateisystemen. Siehe @xref{Dateisysteme}. 11260Eine Liste von Dateisystemen. Siehe @ref{Dateisysteme}.
10756 11261
10757@item @code{swap-devices} (Vorgabe: @code{'()}) 11262@item @code{swap-devices} (Vorgabe: @code{'()})
10758@cindex Swap-Geräte 11263@cindex Swap-Geräte
10759Eine Liste von Zeichenketten, die Geräte identifizieren oder als 11264Eine Liste von Zeichenketten, die Geräte identifizieren oder als
10760»Swap-Speicher« genutzte Dateien identifizieren (@pxref{Memory Concepts,,, 11265»Swap-Speicher« genutzte Dateien identifizieren (siehe @ref{Memory
10761libc, The GNU C Library Reference Manual}). Beispiele wären etwa 11266Concepts,,, libc, The GNU C Library Reference Manual}). Beispiele wären etwa
10762@code{'("/dev/sda3")} oder @code{'("/swapdatei")}. Es ist möglich, eine 11267@code{'("/dev/sda3")} oder @code{'("/swapdatei")}. Es ist möglich, eine
10763Swap-Datei auf dem Dateisystem eines zugeordneten Geräts anzugeben, sofern 11268Swap-Datei auf dem Dateisystem eines zugeordneten Geräts anzugeben, sofern
10764auch die Gerätezuordnung und das Dateisystem mit angegeben werden. Siehe 11269auch die Gerätezuordnung und das Dateisystem mit angegeben werden. Siehe
10765@xref{Zugeordnete Geräte} und @ref{Dateisysteme}. 11270@ref{Zugeordnete Geräte} und @ref{Dateisysteme}.
10766 11271
10767@item @code{users} (Vorgabe: @code{%base-user-accounts}) 11272@item @code{users} (Vorgabe: @code{%base-user-accounts})
10768@itemx @code{groups} (Vorgabe: @var{%base-groups}) 11273@itemx @code{groups} (Vorgabe: @var{%base-groups})
10769Liste der Benutzerkonten und Benutzergruppen. Siehe @xref{Benutzerkonten}. 11274Liste der Benutzerkonten und Benutzergruppen. Siehe @ref{Benutzerkonten}.
10770 11275
10771Wenn in der @code{users}-Liste kein Benutzerkonto mit der UID-Kennung@tie{}0 11276Wenn in der @code{users}-Liste kein Benutzerkonto mit der UID-Kennung@tie{}0
10772aufgeführt wird, wird automatisch für den Administrator ein 11277aufgeführt wird, wird automatisch für den Administrator ein
@@ -10774,8 +11279,8 @@ aufgeführt wird, wird automatisch für den Administrator ein
10774 11279
10775@item @code{skeletons} (Vorgabe: @code{(default-skeletons)}) 11280@item @code{skeletons} (Vorgabe: @code{(default-skeletons)})
10776Eine Liste von Tupeln aus je einem Ziel-Dateinamen und einem dateiähnlichen 11281Eine Liste von Tupeln aus je einem Ziel-Dateinamen und einem dateiähnlichen
10777Objekt (@pxref{G-Ausdrücke, file-like objects}). Diese Objekte werden als 11282Objekt (siehe @ref{G-Ausdrücke, file-like objects}). Diese Objekte werden
10778Skeleton-Dateien im Persönlichen Verzeichnis (»Home«-Verzeichnis) jedes 11283als Skeleton-Dateien im Persönlichen Verzeichnis (»Home«-Verzeichnis) jedes
10779neuen Benutzerkontos angelegt. 11284neuen Benutzerkontos angelegt.
10780 11285
10781Ein gültiger Wert könnte zum Beispiel so aussehen: 11286Ein gültiger Wert könnte zum Beispiel so aussehen:
@@ -10798,55 +11303,61 @@ welches unter @file{/run/current-system/profile} zu finden ist.
10798 11303
10799Die vorgegebene Paketmenge umfasst zum Kern des Systems gehörende Werkzeuge 11304Die vorgegebene Paketmenge umfasst zum Kern des Systems gehörende Werkzeuge
10800(»core utilities«). Es ist empfehlenswert, nicht zum Kern gehörende 11305(»core utilities«). Es ist empfehlenswert, nicht zum Kern gehörende
10801Werkzeuge (»non-core«) stattdessen in Nutzerprofile zu installieren 11306Werkzeuge (»non-core«) stattdessen in Nutzerprofile zu installieren (siehe
10802(@pxref{Aufruf von guix package}). 11307@ref{Aufruf von guix package}).
10803 11308
10804@item @code{timezone} 11309@item @code{timezone}
10805Eine Zeichenkette, die die Zeitzone bezeichnet, wie 11310Eine Zeichenkette, die die Zeitzone bezeichnet, wie z.B.@:
10806z.B. @code{"Europe/Berlin"}. 11311@code{"Europe/Berlin"}.
10807 11312
10808Mit dem Befehl @command{tzselect} können Sie herausfinden, welche 11313Mit dem Befehl @command{tzselect} können Sie herausfinden, welche
10809Zeichenkette der Zeitzone Ihrer Region entspricht. Wenn Sie eine ungültige 11314Zeichenkette der Zeitzone Ihrer Region entspricht. Wenn Sie eine ungültige
10810Zeichenkette angeben, schlägt @command{guix system} fehl. 11315Zeichenkette angeben, schlägt @command{guix system} fehl.
10811 11316
10812@item @code{locale} (Vorgabe: @code{"en_US.utf8"}) 11317@item @code{locale} (Vorgabe: @code{"en_US.utf8"})
10813Der Name der als Voreinstellung zu verwendenden Locale (@pxref{Locale 11318Der Name der als Voreinstellung zu verwendenden Locale (siehe @ref{Locale
10814Names,,, libc, The GNU C Library Reference Manual}). Siehe @xref{Locales} 11319Names,,, libc, The GNU C Library Reference Manual}). Siehe @ref{Locales} für
10815für weitere Informationen. 11320weitere Informationen.
10816 11321
10817@item @code{locale-definitions} (Vorgabe: @var{%default-locale-definitions}) 11322@item @code{locale-definitions} (Vorgabe: @var{%default-locale-definitions})
10818Die Liste der Locale-Definitionen, die kompiliert werden sollen und dann im 11323Die Liste der Locale-Definitionen, die kompiliert werden sollen und dann im
10819laufenden System benutzt werden können. Siehe @xref{Locales}. 11324laufenden System benutzt werden können. Siehe @ref{Locales}.
10820 11325
10821@item @code{locale-libcs} (Vorgabe: @code{(list @var{glibc})}) 11326@item @code{locale-libcs} (Vorgabe: @code{(list @var{glibc})})
10822Die Liste der GNU-libc-Pakete, deren Locale-Daten und -Werkzeuge zum 11327Die Liste der GNU-libc-Pakete, deren Locale-Daten und -Werkzeuge zum
10823Erzeugen der Locale-Definitionen verwendet werden sollen. Siehe 11328Erzeugen der Locale-Definitionen verwendet werden sollen. Siehe
10824@xref{Locales} für eine Erläuterung der Kompatibilitätsauswirkungen, 11329@ref{Locales} für eine Erläuterung der Kompatibilitätsauswirkungen,
10825deretwegen man diese Option benutzen wollen könnte. 11330deretwegen man diese Option benutzen wollen könnte.
10826 11331
10827@item @code{name-service-switch} (Vorgabe: @var{%default-nss}) 11332@item @code{name-service-switch} (Vorgabe: @var{%default-nss})
10828Die Konfiguration des Name Service Switch (NSS) der libc — ein 11333Die Konfiguration des Name Service Switch (NSS) der libc — ein
10829@code{<name-service-switch>}-Objekt. Siehe @xref{Name Service Switch}, für 11334@code{<name-service-switch>}-Objekt. Siehe @ref{Name Service Switch} für
10830Details. 11335Details.
10831 11336
10832@item @code{services} (Vorgabe: @var{%base-services}) 11337@item @code{services} (Vorgabe: @var{%base-services})
10833Eine Liste von »service«-Objekten, die die Systemdienste 11338Eine Liste von »service«-Objekten, die die Systemdienste
10834repräsentieren. Siehe @xref{Dienste}. 11339repräsentieren. Siehe @ref{Dienste}.
11340
11341@cindex essenzielle Dienste
11342@item @code{essential-services} (Vorgabe: …)
11343The list of ``essential services''---i.e., things like instances of
11344@code{system-service-type} and @code{host-name-service-type} (@pxref{Service-Referenz}), which are derived from the operating system definition itself.
11345As a user you should @emph{never} need to touch this field.
10835 11346
10836@item @code{pam-services} (Vorgabe: @code{(base-pam-services)}) 11347@item @code{pam-services} (Vorgabe: @code{(base-pam-services)})
10837@cindex PAM 11348@cindex PAM
10838@cindex Pluggable Authentication Modules 11349@cindex Pluggable Authentication Modules
10839@c FIXME: Add xref to PAM services section. 11350@c FIXME: Add xref to PAM services section.
10840Dienste für »@dfn{Pluggable Authentication Modules}« (PAM) von Linux. 11351Dienste für @dfn{Pluggable Authentication Modules} (PAM) von Linux.
10841 11352
10842@item @code{setuid-programs} (Vorgabe: @var{%setuid-programs}) 11353@item @code{setuid-programs} (Vorgabe: @var{%setuid-programs})
10843Eine Liste von Zeichenketten liefernden G-Ausdrücken, die setuid-Programme 11354Eine Liste von Zeichenketten liefernden G-Ausdrücken, die setuid-Programme
10844bezeichnen. Siehe @xref{Setuid-Programme}. 11355bezeichnen. Siehe @ref{Setuid-Programme}.
10845 11356
10846@item @code{sudoers-file} (Vorgabe: @var{%sudoers-specification}) 11357@item @code{sudoers-file} (Vorgabe: @var{%sudoers-specification})
10847@cindex sudoers-Datei 11358@cindex sudoers-Datei
10848Der Inhalt der Datei @file{/etc/sudoers} als ein dateiähnliches Objekt 11359Der Inhalt der Datei @file{/etc/sudoers} als ein dateiähnliches Objekt
10849(@pxref{G-Ausdrücke, @code{local-file} und @code{plain-file}}). 11360(siehe @ref{G-Ausdrücke, @code{local-file} und @code{plain-file}}).
10850 11361
10851Diese Datei gibt an, welche Nutzer den Befehl @command{sudo} benutzen 11362Diese Datei gibt an, welche Nutzer den Befehl @command{sudo} benutzen
10852dürfen, was sie damit tun und welche Berechtigungen sie so erhalten 11363dürfen, was sie damit tun und welche Berechtigungen sie so erhalten
@@ -10855,13 +11366,34 @@ Mitglieder der Benutzergruppe @code{wheel} den @code{sudo}-Befehl verwenden
10855dürfen. 11366dürfen.
10856 11367
10857@end table 11368@end table
11369
11370@deffn {Scheme Syntax} this-operating-system
11371When used in the @emph{lexical scope} of an operating system field
11372definition, this identifier resolves to the operating system being defined.
11373
11374The example below shows how to refer to the operating system being defined
11375in the definition of the @code{label} field:
11376
11377@example
11378(use-modules (gnu) (guix))
11379
11380(operating-system
11381 ;; ...
11382 (label (package-full-name
11383 (operating-system-kernel this-operating-system))))
11384@end example
11385
11386It is an error to refer to @code{this-operating-system} outside an operating
11387system definition.
11388@end deffn
11389
10858@end deftp 11390@end deftp
10859 11391
10860@node Dateisysteme 11392@node Dateisysteme
10861@section Dateisysteme 11393@section Dateisysteme
10862 11394
10863Die Liste der Dateisysteme, die eingebunden werden sollen, steht im 11395Die Liste der Dateisysteme, die eingebunden werden sollen, steht im
10864@code{file-systems}-Feld der Betriebssystemdeklaration (@pxref{Das Konfigurationssystem nutzen}). Jedes Dateisystem wird mit der 11396@code{file-systems}-Feld der Betriebssystemdeklaration (siehe @ref{Das Konfigurationssystem nutzen}). Jedes Dateisystem wird mit der
10865@code{file-system}-Form deklariert, etwa so: 11397@code{file-system}-Form deklariert, etwa so:
10866 11398
10867@example 11399@example
@@ -10880,12 +11412,12 @@ folgende Komponenten auf:
10880 11412
10881@table @asis 11413@table @asis
10882@item @code{type} 11414@item @code{type}
10883Eine Zeichenkette, die den Typ des Dateisystems spezifiziert, 11415Eine Zeichenkette, die den Typ des Dateisystems spezifiziert, z.B.@:
10884z.B. @code{"ext4"}. 11416@code{"ext4"}.
10885 11417
10886@item @code{mount-point} 11418@item @code{mount-point}
10887Der Einhängepunkt, d.h. der Pfad, an dem das Dateisystem eingebunden werden 11419Der Einhängepunkt, d.h.@: der Pfad, an dem das Dateisystem eingebunden
10888soll. 11420werden soll.
10889 11421
10890@item @code{device} 11422@item @code{device}
10891Hiermit wird die »Quelle« des Dateisystems bezeichnet. Sie kann eines von 11423Hiermit wird die »Quelle« des Dateisystems bezeichnet. Sie kann eines von
@@ -10918,7 +11450,7 @@ UUID-Kennungen werden mit der @code{uuid}-Form von ihrer Darstellung als
10918Zeichenkette (wie sie vom Befehl @command{tune2fs -l} angezeigt wird) 11450Zeichenkette (wie sie vom Befehl @command{tune2fs -l} angezeigt wird)
10919konvertiert@footnote{Die @code{uuid}-Form nimmt 16-Byte-UUIDs entgegen, wie 11451konvertiert@footnote{Die @code{uuid}-Form nimmt 16-Byte-UUIDs entgegen, wie
10920sie in @uref{https://tools.ietf.org/html/rfc4122, RFC@tie{}4122} definiert 11452sie in @uref{https://tools.ietf.org/html/rfc4122, RFC@tie{}4122} definiert
10921sind. Diese Form der UUID wird unter Anderem von der ext2-Familie von 11453sind. Diese Form der UUID wird unter anderem von der ext2-Familie von
10922Dateisystemen verwendet, sie unterscheidet sich jedoch zum Beispiel von den 11454Dateisystemen verwendet, sie unterscheidet sich jedoch zum Beispiel von den
10923»UUID« genannten Kennungen, wie man sie bei FAT-Dateisystemen findet.} wie 11455»UUID« genannten Kennungen, wie man sie bei FAT-Dateisystemen findet.} wie
10924hier: 11456hier:
@@ -10930,14 +11462,14 @@ hier:
10930 (device (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb"))) 11462 (device (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb")))
10931@end example 11463@end example
10932 11464
10933Wenn die Quelle eines Dateisystems ein zugeordnetes Gerät (@pxref{Zugeordnete Geräte}) ist, @emph{muss} sich das @code{device}-Feld auf den zugeordneten 11465Wenn die Quelle eines Dateisystems ein zugeordnetes Gerät (siehe @ref{Zugeordnete Geräte}) ist, @emph{muss} sich das @code{device}-Feld auf den zugeordneten
10934Gerätenamen beziehen — z.B. @file{"/dev/mapper/root-partition"}. Das ist 11466Gerätenamen beziehen — z.B.@: @file{"/dev/mapper/root-partition"}. Das ist
10935nötig, damit das System weiß, dass das Einbinden des Dateisystems davon 11467nötig, damit das System weiß, dass das Einbinden des Dateisystems davon
10936abhängt, die entsprechende Gerätezuordnung hergestellt zu haben. 11468abhängt, die entsprechende Gerätezuordnung hergestellt zu haben.
10937 11469
10938@item @code{flags} (Vorgabe: @code{'()}) 11470@item @code{flags} (Vorgabe: @code{'()})
10939Eine Liste von Symbolen, die Einbinde-Flags (»mount flags«) 11471Eine Liste von Symbolen, die Einbinde-Flags (»mount flags«)
10940bezeichnen. Erkannt werden unter Anderem @code{read-only}, 11472bezeichnen. Erkannt werden unter anderem @code{read-only},
10941@code{bind-mount}, @code{no-dev} (Zugang zu besonderen Dateien verweigern), 11473@code{bind-mount}, @code{no-dev} (Zugang zu besonderen Dateien verweigern),
10942@code{no-suid} (setuid- und setgid-Bits ignorieren) und @code{no-exec} 11474@code{no-suid} (setuid- und setgid-Bits ignorieren) und @code{no-exec}
10943(Programmausführungen verweigern). 11475(Programmausführungen verweigern).
@@ -10978,7 +11510,7 @@ Betrachten Sie zum Beispiel eine Hierarchie von Einbindungen:
10978und @file{/sys/fs/cgroup/memory}. 11510und @file{/sys/fs/cgroup/memory}.
10979 11511
10980Ein weiteres Beispiel ist ein Dateisystem, was von einem zugeordneten Gerät 11512Ein weiteres Beispiel ist ein Dateisystem, was von einem zugeordneten Gerät
10981abhängt, zum Beispiel zur Verschlüsselung einer Partition (@pxref{Zugeordnete Geräte}). 11513abhängt, zum Beispiel zur Verschlüsselung einer Partition (siehe @ref{Zugeordnete Geräte}).
10982@end table 11514@end table
10983@end deftp 11515@end deftp
10984 11516
@@ -10995,21 +11527,21 @@ jeden Fall mindestens diese enthalten.
10995@defvr {Scheme-Variable} %pseudo-terminal-file-system 11527@defvr {Scheme-Variable} %pseudo-terminal-file-system
10996Das als @file{/dev/pts} einzubindende Dateisystem. Es unterstützt über 11528Das als @file{/dev/pts} einzubindende Dateisystem. Es unterstützt über
10997@code{openpty} und ähnliche Funktionen erstellte @dfn{Pseudo-Terminals} 11529@code{openpty} und ähnliche Funktionen erstellte @dfn{Pseudo-Terminals}
10998(@pxref{Pseudo-Terminals,,, libc, The GNU C Library Reference 11530(siehe @ref{Pseudo-Terminals,,, libc, The GNU C Library Reference
10999Manual}). Pseudo-Terminals werden von Terminal-Emulatoren wie 11531Manual}). Pseudo-Terminals werden von Terminal-Emulatoren wie
11000@command{xterm} benutzt. 11532@command{xterm} benutzt.
11001@end defvr 11533@end defvr
11002 11534
11003@defvr {Scheme-Variable} %shared-memory-file-system 11535@defvr {Scheme-Variable} %shared-memory-file-system
11004Dieses Dateisystem wird als @file{/dev/shm} eingebunden, um Speicher 11536Dieses Dateisystem wird als @file{/dev/shm} eingebunden, um Speicher
11005zwischen Prozessen teilen zu können (@pxref{Memory-mapped I/O, 11537zwischen Prozessen teilen zu können (siehe @ref{Memory-mapped I/O,
11006@code{shm_open},, libc, The GNU C Library Reference Manual}). 11538@code{shm_open},, libc, The GNU C Library Reference Manual}).
11007@end defvr 11539@end defvr
11008 11540
11009@defvr {Scheme-Variable} %immutable-store 11541@defvr {Scheme-Variable} %immutable-store
11010Dieses Dateisystem vollzieht einen »bind mount« des @file{/gnu/store}, um 11542Dieses Dateisystem vollzieht einen »bind mount« des @file{/gnu/store}, um
11011ihn für alle Nutzer einschließlich des Administratornutzers @code{root} nur 11543ihn für alle Nutzer einschließlich des Administratornutzers @code{root} nur
11012lesbar zu machen, d.h. Schreibrechte zu entziehen. Dadurch kann als 11544lesbar zu machen, d.h.@: Schreibrechte zu entziehen. Dadurch kann als
11013@code{root} ausgeführte Software, oder der Systemadministrator, nicht aus 11545@code{root} ausgeführte Software, oder der Systemadministrator, nicht aus
11014Versehen den Store modifizieren. 11546Versehen den Store modifizieren.
11015 11547
@@ -11044,7 +11576,7 @@ zwischen dem Konzept eines »zugeordneten Geräts« und dem eines Dateisystems
11044besteht: Dort werden bei beiden Ein- und Ausgabeoperationen auf eine Datei 11576besteht: Dort werden bei beiden Ein- und Ausgabeoperationen auf eine Datei
11045in Operationen auf dessen Hintergrundspeicher @emph{übersetzt}. Hurd 11577in Operationen auf dessen Hintergrundspeicher @emph{übersetzt}. Hurd
11046implementiert zugeordnete Geräte genau wie Dateisysteme mit dem generischen 11578implementiert zugeordnete Geräte genau wie Dateisysteme mit dem generischen
11047@dfn{Übersetzer}-Mechanismus (@pxref{Translators,,, hurd, The GNU Hurd 11579@dfn{Übersetzer}-Mechanismus (siehe @ref{Translators,,, hurd, The GNU Hurd
11048Reference Manual}).}. Ein typisches Beispiel ist eine Gerätezuordnung zur 11580Reference Manual}).}. Ein typisches Beispiel ist eine Gerätezuordnung zur
11049Verschlüsselung: Jeder Schreibzugriff auf das zugeordnete Gerät wird 11581Verschlüsselung: Jeder Schreibzugriff auf das zugeordnete Gerät wird
11050transparent verschlüsselt und jeder Lesezugriff ebenso entschlüsselt. Guix 11582transparent verschlüsselt und jeder Lesezugriff ebenso entschlüsselt. Guix
@@ -11093,8 +11625,8 @@ Linux-Kernel-Modul @code{dm-crypt} vorausgesetzt.
11093@defvr {Scheme-Variable} raid-device-mapping 11625@defvr {Scheme-Variable} raid-device-mapping
11094Dies definiert ein RAID-Gerät, das mit dem Befehl @code{mdadm} aus dem 11626Dies definiert ein RAID-Gerät, das mit dem Befehl @code{mdadm} aus dem
11095gleichnamigen Paket als Verbund zusammengestellt wird. Es setzt voraus, dass 11627gleichnamigen Paket als Verbund zusammengestellt wird. Es setzt voraus, dass
11096das Linux-Kernel-Modul für das entsprechende RAID-Level geladen ist, 11628das Linux-Kernel-Modul für das entsprechende RAID-Level geladen ist, z.B.@:
11097z.B. @code{raid456} für RAID-4, RAID-5 oder RAID-6, oder @code{raid10} für 11629@code{raid456} für RAID-4, RAID-5 oder RAID-6, oder @code{raid10} für
11098RAID-10. 11630RAID-10.
11099@end defvr 11631@end defvr
11100 11632
@@ -11105,7 +11637,7 @@ Das folgende Beispiel gibt eine Zuordnung von @file{/dev/sda3} auf
11105@url{https://gitlab.com/cryptsetup/cryptsetup,Linux Unified Key Setup}, 11637@url{https://gitlab.com/cryptsetup/cryptsetup,Linux Unified Key Setup},
11106einem Standardmechanismus zur Plattenverschlüsselung. Das Gerät 11638einem Standardmechanismus zur Plattenverschlüsselung. Das Gerät
11107@file{/dev/mapper/home} kann dann als @code{device} einer 11639@file{/dev/mapper/home} kann dann als @code{device} einer
11108@code{file-system}-Deklaration benutzt werden (@pxref{Dateisysteme}). 11640@code{file-system}-Deklaration benutzt werden (siehe @ref{Dateisysteme}).
11109 11641
11110@example 11642@example
11111(mapped-device 11643(mapped-device
@@ -11115,7 +11647,7 @@ einem Standardmechanismus zur Plattenverschlüsselung. Das Gerät
11115@end example 11647@end example
11116 11648
11117Um nicht davon abhängig zu sein, wie Ihre Geräte nummeriert werden, können 11649Um nicht davon abhängig zu sein, wie Ihre Geräte nummeriert werden, können
11118Sie auch die LUKS-UUID (@dfn{unique identifier}, d.h. den eindeutigen 11650Sie auch die LUKS-UUID (@dfn{unique identifier}, d.h.@: den eindeutigen
11119Bezeichner) des Quellgeräts auf der Befehlszeile ermitteln: 11651Bezeichner) des Quellgeräts auf der Befehlszeile ermitteln:
11120 11652
11121@example 11653@example
@@ -11137,7 +11669,7 @@ Swap-Speicher sensible Daten ausgelagert werden können. Eine Möglichkeit
11137ist, eine Swap-Datei auf einem mit LUKS-Verschlüsselung zugeordneten 11669ist, eine Swap-Datei auf einem mit LUKS-Verschlüsselung zugeordneten
11138Dateisystem zu verwenden. Dann wird die Swap-Datei verschlüsselt, weil das 11670Dateisystem zu verwenden. Dann wird die Swap-Datei verschlüsselt, weil das
11139ganze Gerät verschlüsselt wird. Ein Beispiel finden Sie im Abschnitt 11671ganze Gerät verschlüsselt wird. Ein Beispiel finden Sie im Abschnitt
11140@xref{Vor der Installation,,Disk Partitioning}. 11672@ref{Vor der Installation,,Disk Partitioning}.
11141 11673
11142Ein RAID-Gerät als Verbund der Partitionen @file{/dev/sda1} und 11674Ein RAID-Gerät als Verbund der Partitionen @file{/dev/sda1} und
11143@file{/dev/sdb1} kann wie folgt deklariert werden: 11675@file{/dev/sdb1} kann wie folgt deklariert werden:
@@ -11150,10 +11682,10 @@ Ein RAID-Gerät als Verbund der Partitionen @file{/dev/sda1} und
11150@end example 11682@end example
11151 11683
11152Das Gerät @file{/dev/md0} kann als @code{device} in einer 11684Das Gerät @file{/dev/md0} kann als @code{device} in einer
11153@code{file-system}-Deklaration dienen (@pxref{Dateisysteme}). Beachten Sie, 11685@code{file-system}-Deklaration dienen (siehe @ref{Dateisysteme}). Beachten
11154dass das RAID-Level dabei nicht angegeben werden muss; es wird während der 11686Sie, dass das RAID-Level dabei nicht angegeben werden muss; es wird während
11155initialen Erstellung und Formatierung des RAID-Geräts festgelegt und später 11687der initialen Erstellung und Formatierung des RAID-Geräts festgelegt und
11156automatisch bestimmt. 11688später automatisch bestimmt.
11157 11689
11158 11690
11159@node Benutzerkonten 11691@node Benutzerkonten
@@ -11223,15 +11755,15 @@ werden soll, falls es noch nicht existiert.
11223 11755
11224@item @code{shell} (Vorgabe: Bash) 11756@item @code{shell} (Vorgabe: Bash)
11225Ein G-Ausdruck, der den Dateinamen des Programms angibt, das dem Benutzer 11757Ein G-Ausdruck, der den Dateinamen des Programms angibt, das dem Benutzer
11226als Shell dienen soll (@pxref{G-Ausdrücke}). 11758als Shell dienen soll (siehe @ref{G-Ausdrücke}).
11227 11759
11228@item @code{system?} (Vorgabe: @code{#f}) 11760@item @code{system?} (Vorgabe: @code{#f})
11229Dieser boolesche Wert zeigt an, ob das Konto ein »System«-Benutzerkonto 11761Dieser boolesche Wert zeigt an, ob das Konto ein »System«-Benutzerkonto
11230ist. Systemkonten werden manchmal anders behandelt, zum Beispiel werden sie 11762ist. Systemkonten werden manchmal anders behandelt, zum Beispiel werden sie
11231auf graphischen Anmeldebildschirmen nicht aufgeführt. 11763auf grafischen Anmeldebildschirmen nicht aufgeführt.
11232 11764
11233@anchor{user-account-password} 11765@anchor{user-account-password}
11234@cindex password, for user accounts 11766@cindex Passwort, für Benutzerkonten
11235@item @code{password} (Vorgabe: @code{#f}) 11767@item @code{password} (Vorgabe: @code{#f})
11236Normalerweise lassen Sie dieses Feld auf @code{#f} und initialisieren 11768Normalerweise lassen Sie dieses Feld auf @code{#f} und initialisieren
11237Benutzerpasswörter als @code{root} mit dem @command{passwd}-Befehl. Die 11769Benutzerpasswörter als @code{root} mit dem @command{passwd}-Befehl. Die
@@ -11239,14 +11771,13 @@ Benutzer lässt man ihr eigenes Passwort dann mit @command{passwd}
11239ändern. Mit @command{passwd} festgelegte Passwörter bleiben natürlich beim 11771ändern. Mit @command{passwd} festgelegte Passwörter bleiben natürlich beim
11240Neustarten und beim Rekonfigurieren erhalten. 11772Neustarten und beim Rekonfigurieren erhalten.
11241 11773
11242If you @emph{do} want to set an initial password for an account, then this 11774Wenn Sie aber @emph{doch} ein anngliches Passwort für ein Konto
11243field must contain the encrypted password, as a string. You can use the 11775voreinstellen möchten, muss dieses Feld hier das verschlüsselte Passwort als
11244@code{crypt} procedure for this purpose: 11776Zeichenkette enthalten. Sie können dazu die Prozedur @code{crypt} benutzen.
11245 11777
11246@example 11778@example
11247(user-account 11779(user-account
11248 (name "charlie") 11780 (name "charlie")
11249 (home-directory "/home/charlie")
11250 (group "users") 11781 (group "users")
11251 11782
11252 ;; Specify a SHA-512-hashed initial password. 11783 ;; Specify a SHA-512-hashed initial password.
@@ -11259,9 +11790,10 @@ The hash of this initial password will be available in a file in
11259with care. 11790with care.
11260@end quotation 11791@end quotation
11261 11792
11262@xref{Passphrase Storage,,, libc, The GNU C Library Reference Manual}, for 11793Siehe @ref{Passphrase Storage,,, libc, The GNU C Library Reference Manual}
11263more information on password encryption, and @ref{Encryption,,, guile, GNU 11794für weitere Informationen über Passwortverschlüsselung und
11264Guile Reference Manual}, for information on Guile's @code{crypt} procedure. 11795@ref{Encryption,,, guile, GNU Guile Reference Manual} für Informationen über
11796die Prozedur @code{crypt} in Guile.
11265 11797
11266@end table 11798@end table
11267@end deftp 11799@end deftp
@@ -11317,29 +11849,162 @@ dazugehört. Es ist ein Sonderfall und wird automatisch erzeugt, egal ob es
11317spezifiziert wurde oder nicht. 11849spezifiziert wurde oder nicht.
11318@end defvr 11850@end defvr
11319 11851
11852@node Tastaturbelegung
11853@section Tastaturbelegung
11854
11855@cindex Tastaturbelegung
11856@cindex Keymap
11857To specify what each key of your keyboard does, you need to tell the
11858operating system what @dfn{keyboard layout} you want to use. The default,
11859when nothing is specified, is the US English QWERTY layout for 105-key PC
11860keyboards. However, German speakers will usually prefer the German QWERTZ
11861layout, French speakers will want the AZERTY layout, and so on; hackers
11862might prefer Dvorak or bépo, and they might even want to further customize
11863the effect of some of the keys. This section explains how to get that done.
11864
11865@cindex Tastaturbelegung, Definition
11866There are three components that will want to know about your keyboard
11867layout:
11868
11869@itemize
11870@item
11871The @emph{bootloader} may want to know what keyboard layout you want to use
11872(@pxref{Bootloader-Konfiguration, @code{keyboard-layout}}). This is useful
11873if you want, for instance, to make sure that you can type the passphrase of
11874your encrypted root partition using the right layout.
11875
11876@item
11877The @emph{operating system kernel}, Linux, will need that so that the
11878console is properly configured (@pxref{»operating-system«-Referenz,
11879@code{keyboard-layout}}).
11880
11881@item
11882The @emph{graphical display server}, usually Xorg, also has its own idea of
11883the keyboard layout (@pxref{X Window, @code{keyboard-layout}}).
11884@end itemize
11885
11886Guix allows you to configure all three separately but, fortunately, it
11887allows you to share the same keyboard layout for all three components.
11888
11889@cindex XKB, Tastaturbelegungen
11890Keyboard layouts are represented by records created by the
11891@code{keyboard-layout} procedure of @code{(gnu system keyboard)}. Following
11892the X Keyboard extension (XKB), each layout has four attributes: a name
11893(often a language code such as ``fi'' for Finnish or ``jp'' for Japanese),
11894an optional variant name, an optional keyboard model name, and a possibly
11895empty list of additional options. In most cases the layout name is all you
11896care about. Here are a few example:
11897
11898@example
11899;; The German QWERTZ layout. Here we assume a standard
11900;; "pc105" keyboard model.
11901(keyboard-layout "de")
11902
11903;; The bépo variant of the French layout.
11904(keyboard-layout "fr" "bepo")
11905
11906;; The Catalan layout.
11907(keyboard-layout "es" "cat")
11908
11909;; The Latin American Spanish layout. In addition, the
11910;; "Caps Lock" key is used as an additional "Ctrl" key,
11911;; and the "Menu" key is used as a "Compose" key to enter
11912;; accented letters.
11913(keyboard-layout "latam"
11914 #:options '("ctrl:nocaps" "compose:menu"))
11915
11916;; The Russian layout for a ThinkPad keyboard.
11917(keyboard-layout "ru" #:model "thinkpad")
11918
11919;; The "US international" layout, which is the US layout plus
11920;; dead keys to enter accented characters. This is for an
11921;; Apple MacBook keyboard.
11922(keyboard-layout "us" "intl" #:model "macbook78")
11923@end example
11924
11925See the @file{share/X11/xkb} directory of the @code{xkeyboard-config}
11926package for a complete list of supported layouts, variants, and models.
11927
11928@cindex Tastaturbelegung, Konfiguration
11929Let's say you want your system to use the Turkish keyboard layout throughout
11930your system---bootloader, console, and Xorg. Here's what your system
11931configuration would look like:
11932
11933@findex set-xorg-configuration
11934@lisp
11935;; Using the Turkish layout for the bootloader, the console,
11936;; and for Xorg.
11937
11938(operating-system
11939 ;; ...
11940 (keyboard-layout (keyboard-layout "tr")) ;for the console
11941 (bootloader (bootloader-configuration
11942 (bootloader grub-efi-bootloader)
11943 (target "/boot/efi")
11944 (keyboard-layout keyboard-layout))) ;for GRUB
11945 (services (cons (set-xorg-configuration
11946 (xorg-configuration ;for Xorg
11947 (keyboard-layout keyboard-layout)))
11948 %desktop-services)))
11949@end lisp
11950
11951In the example above, for GRUB and for Xorg, we just refer to the
11952@code{keyboard-layout} field defined above, but we could just as well refer
11953to a different layout. The @code{set-xorg-configuration} procedure
11954communicates the desired Xorg configuration to the graphical log-in manager,
11955by default GDM.
11956
11957We've discussed how to specify the @emph{default} keyboard layout of your
11958system when it starts, but you can also adjust it at run time:
11959
11960@itemize
11961@item
11962If you're using GNOME, its settings panel has a ``Region & Language'' entry
11963where you can select one or more keyboard layouts.
11964
11965@item
11966Under Xorg, the @command{setxkbmap} command (from the same-named package)
11967allows you to change the current layout. For example, this is how you would
11968change the layout to US Dvorak:
11969
11970@example
11971setxkbmap us dvorak
11972@end example
11973
11974@item
11975The @code{loadkeys} command changes the keyboard layout in effect in the
11976Linux console. However, note that @code{loadkeys} does @emph{not} use the
11977XKB keyboard layout categorization described above. The command below loads
11978the French bépo layout:
11979
11980@example
11981loadkeys fr-bepo
11982@end example
11983@end itemize
11984
11320@node Locales 11985@node Locales
11321@section Locales 11986@section Locales
11322 11987
11323@cindex Locale 11988@cindex Locale
11324Eine @dfn{Locale} legt die kulturellen Konventionen einer bestimmten Sprache 11989Eine @dfn{Locale} legt die kulturellen Konventionen einer bestimmten Sprache
11325und Region auf der Welt fest (@pxref{Locales,,, libc, The GNU C Library 11990und Region auf der Welt fest (siehe @ref{Locales,,, libc, The GNU C Library
11326Reference Manual}). Jede Locale hat einen Namen, der typischerweise von der 11991Reference Manual}). Jede Locale hat einen Namen, der typischerweise von der
11327Form @code{@var{Sprache}_@var{Territorium}.@var{Kodierung}} — z.B. benennt 11992Form @code{@var{Sprache}_@var{Gebiet}.@var{Kodierung}} — z.B.@: benennt
11328@code{fr_LU.utf8} die Locale für französische Sprache mit den kulturellen 11993@code{fr_LU.utf8} die Locale für französische Sprache mit den kulturellen
11329Konventionen aus Luxemburg unter Verwendung der UTF-8-Kodierung. 11994Konventionen aus Luxemburg unter Verwendung der UTF-8-Kodierung.
11330 11995
11331@cindex Locale-Definition 11996@cindex Locale-Definition
11332Normalerweise werden Sie eine standardmäßig zu verwendende Locale für die 11997Normalerweise werden Sie eine standardmäßig zu verwendende Locale für die
11333Maschine vorgeben wollen, indem Sie das @code{locale}-Feld der 11998Maschine vorgeben wollen, indem Sie das @code{locale}-Feld der
11334@code{operating-system}-Deklaration verwenden (@pxref{»operating-system«-Referenz, @code{locale}}). 11999@code{operating-system}-Deklaration verwenden (siehe @ref{»operating-system«-Referenz, @code{locale}}).
11335 12000
11336Die ausgewählte Locale wird automatisch zu den dem System bekannten 12001Die ausgewählte Locale wird automatisch zu den dem System bekannten
11337@dfn{Locale-Definitionen} hinzugefügt, falls nötig, und ihre Kodierung wird 12002@dfn{Locale-Definitionen} hinzugefügt, falls nötig, und ihre Kodierung wird
11338aus dem Namen hergeleitet — z.B. wird angenommen, dass @code{bo_CN.utf8} als 12003aus dem Namen hergeleitet — z.B.@: wird angenommen, dass @code{bo_CN.utf8}
11339Kodierung @code{UTF-8} verwendet. Zusätzliche Locale-Definitionen können im 12004als Kodierung @code{UTF-8} verwendet. Zusätzliche Locale-Definitionen können
11340Feld @code{locale-definitions} vom @code{operating-system} festgelegt werden 12005im Feld @code{locale-definitions} vom @code{operating-system} festgelegt
11341— das ist zum Beispiel dann nützlich, wenn die Kodierung nicht aus dem 12006werden — das ist zum Beispiel dann nützlich, wenn die Kodierung nicht aus
11342Locale-Namen hergeleitet werden konnte. Die vorgegebene Menge an 12007dem Locale-Namen hergeleitet werden konnte. Die vorgegebene Menge an
11343Locale-Definitionen enthält manche weit verbreiteten Locales, aber um Platz 12008Locale-Definitionen enthält manche weit verbreiteten Locales, aber um Platz
11344zu sparen, nicht alle verfügbaren Locales. 12009zu sparen, nicht alle verfügbaren Locales.
11345 12010
@@ -11366,8 +12031,8 @@ Die kompilierten Locale-Definitionen sind unter
11366@file{/run/current-system/locale/X.Y} verfügbar, wobei @code{X.Y} die 12031@file{/run/current-system/locale/X.Y} verfügbar, wobei @code{X.Y} die
11367Version von libc bezeichnet. Dies entspricht dem Pfad, an dem eine von Guix 12032Version von libc bezeichnet. Dies entspricht dem Pfad, an dem eine von Guix
11368ausgelieferte GNU@tie{}libc standardmäßig nach Locale-Daten sucht. Er kann 12033ausgelieferte GNU@tie{}libc standardmäßig nach Locale-Daten sucht. Er kann
11369überschrieben werden durch die Umgebungsvariable @code{LOCPATH} 12034überschrieben werden durch die Umgebungsvariable @code{LOCPATH} (siehe
11370(@pxref{locales-and-locpath, @code{LOCPATH} und Locale-Pakete}). 12035@ref{locales-and-locpath, @code{LOCPATH} und Locale-Pakete}).
11371 12036
11372Die @code{locale-definition}-Form wird vom Modul @code{(gnu system locale)} 12037Die @code{locale-definition}-Form wird vom Modul @code{(gnu system locale)}
11373zur Verfügung gestellt. Details folgen unten. 12038zur Verfügung gestellt. Details folgen unten.
@@ -11378,15 +12043,15 @@ Dies ist der Datentyp einer Locale-Definition.
11378@table @asis 12043@table @asis
11379 12044
11380@item @code{name} 12045@item @code{name}
11381Der Name der Locale. Siehe @xref{Locale Names,,, libc, The GNU C Library 12046Der Name der Locale. Siehe @ref{Locale Names,,, libc, The GNU C Library
11382Reference Manual} für mehr Informationen zu Locale-Namen. 12047Reference Manual} für mehr Informationen zu Locale-Namen.
11383 12048
11384@item @code{source} 12049@item @code{source}
11385Der Name der Quelle der Locale. Typischerweise ist das der Teil aus 12050Der Name der Quelle der Locale. Typischerweise ist das der Teil
11386@code{@var{Sprache}_@var{Territorium}} des Locale-Namens. 12051@code{@var{Sprache}_@var{Gebiet}} des Locale-Namens.
11387 12052
11388@item @code{charset} (Vorgabe: @code{"UTF-8"}) 12053@item @code{charset} (Vorgabe: @code{"UTF-8"})
11389Der »Zeichensatz« oder das »Code set«, d.h. die Kodierung dieser Locale, 12054Der »Zeichensatz« oder das »Code set«, d.h.@: die Kodierung dieser Locale,
11390@uref{http://www.iana.org/assignments/character-sets, wie die IANA sie 12055@uref{http://www.iana.org/assignments/character-sets, wie die IANA sie
11391definiert}. 12056definiert}.
11392 12057
@@ -11401,7 +12066,7 @@ benutzt wird.
11401@cindex Locale-Name 12066@cindex Locale-Name
11402@cindex Normalisiertes Codeset in Locale-Namen 12067@cindex Normalisiertes Codeset in Locale-Namen
11403Diese Locale-Definitionen benutzen das @dfn{normalisierte Codeset} für den 12068Diese Locale-Definitionen benutzen das @dfn{normalisierte Codeset} für den
11404Teil des Namens, der nach dem Punkt steht (@pxref{Using gettextized 12069Teil des Namens, der nach dem Punkt steht (siehe @ref{Using gettextized
11405software, normalized codeset,, libc, The GNU C Library Reference 12070software, normalized codeset,, libc, The GNU C Library Reference
11406Manual}). Zum Beispiel ist @code{uk_UA.utf8} enthalten, dagegen ist etwa 12071Manual}). Zum Beispiel ist @code{uk_UA.utf8} enthalten, dagegen ist etwa
11407@code{uk_UA.UTF-8} darin @emph{nicht} enthalten. 12072@code{uk_UA.UTF-8} darin @emph{nicht} enthalten.
@@ -11412,9 +12077,9 @@ Manual}). Zum Beispiel ist @code{uk_UA.utf8} enthalten, dagegen ist etwa
11412@cindex Inkompatibilität, von Locale-Daten 12077@cindex Inkompatibilität, von Locale-Daten
11413@code{operating-system}-Deklarationen verfügen über ein 12078@code{operating-system}-Deklarationen verfügen über ein
11414@code{locale-libcs}-Feld, um die GNU@tie{}libc-Pakete anzugeben, die zum 12079@code{locale-libcs}-Feld, um die GNU@tie{}libc-Pakete anzugeben, die zum
11415Kompilieren von Locale-Deklarationen verwendet werden sollen 12080Kompilieren von Locale-Deklarationen verwendet werden sollen (siehe
11416(@pxref{»operating-system«-Referenz}). »Was interessiert mich das?«, könnten 12081@ref{»operating-system«-Referenz}). »Was interessiert mich das?«, könnten Sie
11417Sie fragen. Naja, leider ist das binäre Format der Locale-Daten von einer 12082fragen. Naja, leider ist das binäre Format der Locale-Daten von einer
11418libc-Version auf die nächste manchmal nicht miteinander kompatibel. 12083libc-Version auf die nächste manchmal nicht miteinander kompatibel.
11419 12084
11420@c See <https://sourceware.org/ml/libc-alpha/2015-09/msg00575.html> 12085@c See <https://sourceware.org/ml/libc-alpha/2015-09/msg00575.html>
@@ -11430,14 +12095,14 @@ meisten, aber nicht alle, Locale-Daten von libc 2.21 lesen (Daten zu
11430Aufrufe von @code{setlocale} vielleicht fehl, aber das Programm läuft 12095Aufrufe von @code{setlocale} vielleicht fehl, aber das Programm läuft
11431weiter. 12096weiter.
11432 12097
11433The ``problem'' with Guix is that users have a lot of freedom: They can 12098Das »Problem« mit Guix ist, dass Nutzer viel Freiheit genießen: Sie nnen
11434choose whether and when to upgrade software in their profiles, and might be 12099wählen, ob und wann sie die Software in ihren Profilen aktualisieren und
11435using a libc version different from the one the system administrator used to 12100benutzen vielleicht eine andere libc-Version als sie der Systemadministrator
11436build the system-wide locale data. 12101benutzt hat, um die systemweiten Locale-Daten zu erstellen.
11437 12102
11438Glücklicherweise können »unprivilegierte« Nutzer ohne zusätzliche 12103Glücklicherweise können »unprivilegierte« Nutzer ohne zusätzliche
11439Berechtigungen dann zumindest ihre eigenen Locale-Daten installieren und 12104Berechtigungen dann zumindest ihre eigenen Locale-Daten installieren und
11440@var{GUIX_LOCPATH} entsprechend definieren (@pxref{locales-and-locpath, 12105@var{GUIX_LOCPATH} entsprechend definieren (siehe @ref{locales-and-locpath,
11441@code{GUIX_LOCPATH} und Locale-Pakete}). 12106@code{GUIX_LOCPATH} und Locale-Pakete}).
11442 12107
11443Trotzdem ist es am besten, wenn die systemweiten Locale-Daten unter 12108Trotzdem ist es am besten, wenn die systemweiten Locale-Daten unter
@@ -11466,16 +12131,18 @@ für libc 2.21 als auch die aktuelle Version von libc in
11466@cindex Systemdienste 12131@cindex Systemdienste
11467Ein wichtiger Bestandteil des Schreibens einer 12132Ein wichtiger Bestandteil des Schreibens einer
11468@code{operating-system}-Deklaration ist das Auflisten der 12133@code{operating-system}-Deklaration ist das Auflisten der
11469@dfn{Systemdienste} und ihrer Konfiguration (@pxref{Das Konfigurationssystem nutzen}). Systemdienste sind typischerweise im Hintergrund laufende 12134@dfn{Systemdienste} und ihrer Konfiguration (siehe @ref{Das Konfigurationssystem nutzen}). Systemdienste sind typischerweise im Hintergrund
11470Daemon-Programme, die beim Hochfahren des Systems gestartet werden, oder 12135laufende Daemon-Programme, die beim Hochfahren des Systems gestartet werden,
11471andere Aktionen, die zu dieser Zeit durchgeführt werden müssen — wie das 12136oder andere Aktionen, die zu dieser Zeit durchgeführt werden müssen — wie
11472Konfigurieren des Netzwerkzugangs. 12137das Konfigurieren des Netzwerkzugangs.
11473 12138
11474Guix has a broad definition of ``service'' (@pxref{Dienstkompositionen}), 12139Guix hat eine weit gefasste Definition, was ein »Dienst« ist (siehe
11475but many services are managed by the GNU@tie{}Shepherd (@pxref{Shepherd-Dienste}). On a running system, the @command{herd} command allows you to 12140@ref{Dienstkompositionen}), aber viele Dienste sind solche, die von
11476list the available services, show their status, start and stop them, or do 12141GNU@tie{}Shepherd verwaltet werden (siehe @ref{Shepherd-Dienste}). Auf
11477other specific operations (@pxref{Jump Start,,, shepherd, The GNU Shepherd 12142einem laufenden System kann der @command{herd}-Befehl benutzt werden, um
11478Manual}). For example: 12143verfügbare Dienste aufzulisten, ihren Status anzuzeigen, sie zu starten und
12144zu stoppen oder andere angebotene Operationen durchzuführen (siehe @ref{Jump
12145Start,,, shepherd, The GNU Shepherd Manual}). Zum Beispiel:
11479 12146
11480@example 12147@example
11481# herd status 12148# herd status
@@ -11526,6 +12193,7 @@ den Diensten im Kern des Systems (»core services«)
11526* Telefondienste:: Telefoniedienste. 12193* Telefondienste:: Telefoniedienste.
11527* Überwachungsdienste:: Dienste zur Systemüberwachung. 12194* Überwachungsdienste:: Dienste zur Systemüberwachung.
11528* Kerberos-Dienste:: Kerberos-Dienste. 12195* Kerberos-Dienste:: Kerberos-Dienste.
12196* LDAP-Dienste:: LDAP-Dienste.
11529* Web-Dienste:: Web-Server. 12197* Web-Dienste:: Web-Server.
11530* Zertifikatsdienste:: TLS-Zertifikate via Let’s Encrypt. 12198* Zertifikatsdienste:: TLS-Zertifikate via Let’s Encrypt.
11531* DNS-Dienste:: DNS-Daemons. 12199* DNS-Dienste:: DNS-Daemons.
@@ -11549,7 +12217,7 @@ Folgenden sind die von diesem Modul exportierten Dienste aufgeführt.
11549 12217
11550@defvr {Scheme-Variable} %base-services 12218@defvr {Scheme-Variable} %base-services
11551Diese Variable enthält eine Liste von Basis-Diensten, die man auf einem 12219Diese Variable enthält eine Liste von Basis-Diensten, die man auf einem
11552System vorzufinden erwartet (siehe @pxref{Diensttypen und Dienste} für 12220System vorzufinden erwartet (siehe @ref{Diensttypen und Dienste} für
11553weitere Informationen zu Dienstobjekten): ein Anmeldungsdienst (mingetty) 12221weitere Informationen zu Dienstobjekten): ein Anmeldungsdienst (mingetty)
11554auf jeder Konsole (jedem »tty«), syslogd, den Name Service Cache Daemon 12222auf jeder Konsole (jedem »tty«), syslogd, den Name Service Cache Daemon
11555(nscd) von libc, die udev-Geräteverwaltung und weitere. 12223(nscd) von libc, die udev-Geräteverwaltung und weitere.
@@ -11592,7 +12260,7 @@ möchten, können Sie den Wert ändern auf:
11592 12260
11593Da dieser Dienst Teil der @code{%base-services} ist, können Sie 12261Da dieser Dienst Teil der @code{%base-services} ist, können Sie
11594@code{modify-services} benutzen, um die Liste besonderer Dateien abzuändern 12262@code{modify-services} benutzen, um die Liste besonderer Dateien abzuändern
11595(@pxref{Service-Referenz, @code{modify-services}}). Die leichte 12263(siehe @ref{Service-Referenz, @code{modify-services}}). Die leichte
11596Alternative, um eine besondere Datei hinzuzufügen, ist über die Prozedur 12264Alternative, um eine besondere Datei hinzuzufügen, ist über die Prozedur
11597@code{extra-special-file} (siehe unten). 12265@code{extra-special-file} (siehe unten).
11598@end defvr 12266@end defvr
@@ -11618,7 +12286,7 @@ als @var{Name} festlegt.
11618@deffn {Scheme-Prozedur} login-service @var{Konfiguration} 12286@deffn {Scheme-Prozedur} login-service @var{Konfiguration}
11619Liefert einen Dienst, der die Benutzeranmeldung möglich macht. Dazu 12287Liefert einen Dienst, der die Benutzeranmeldung möglich macht. Dazu
11620verwendet er die angegebene @var{Konfiguration}, ein 12288verwendet er die angegebene @var{Konfiguration}, ein
11621@code{<login-configuration>}-Objekt, das unter Anderem die beim Anmelden 12289@code{<login-configuration>}-Objekt, das unter anderem die beim Anmelden
11622angezeigte Mitteilung des Tages (englisch »Message of the Day«) festlegt. 12290angezeigte Mitteilung des Tages (englisch »Message of the Day«) festlegt.
11623@end deffn 12291@end deffn
11624 12292
@@ -11641,7 +12309,7 @@ angelegt wurde.
11641 12309
11642@deffn {Scheme-Prozedur} mingetty-service @var{Konfiguration} 12310@deffn {Scheme-Prozedur} mingetty-service @var{Konfiguration}
11643Liefert einen Dienst, der mingetty nach den Vorgaben der @var{Konfiguration} 12311Liefert einen Dienst, der mingetty nach den Vorgaben der @var{Konfiguration}
11644ausführt, einem @code{<mingetty-configuration>}-Objekt, das unter Anderem 12312ausführt, einem @code{<mingetty-configuration>}-Objekt, das unter anderem
11645die Konsole (das »tty«) festlegt, auf der mingetty laufen soll. 12313die Konsole (das »tty«) festlegt, auf der mingetty laufen soll.
11646@end deffn 12314@end deffn
11647 12315
@@ -11652,8 +12320,8 @@ vorgegebenen Implementierung zur Anmeldung auf einer virtuellen Konsole.
11652@table @asis 12320@table @asis
11653 12321
11654@item @code{tty} 12322@item @code{tty}
11655Der Name der Konsole, auf der diese Mingetty-Instanz läuft — 12323Der Name der Konsole, auf der diese Mingetty-Instanz läuft — z.B.@:
11656z.B. @code{"tty1"}. 12324@code{"tty1"}.
11657 12325
11658@item @code{auto-login} (Vorgabe: @code{#f}) 12326@item @code{auto-login} (Vorgabe: @code{#f})
11659Steht dieses Feld auf wahr, muss es eine Zeichenkette sein, die den 12327Steht dieses Feld auf wahr, muss es eine Zeichenkette sein, die den
@@ -11680,7 +12348,7 @@ Welches Mingetty-Paket benutzt werden soll.
11680@deffn {Scheme-Prozedur} agetty-service @var{Konfiguration} 12348@deffn {Scheme-Prozedur} agetty-service @var{Konfiguration}
11681Liefert einen Dienst, um agetty entsprechend der @var{Konfiguration} 12349Liefert einen Dienst, um agetty entsprechend der @var{Konfiguration}
11682auszuführen, welche ein @code{<agetty-configuration>}-Objekt sein muss, das 12350auszuführen, welche ein @code{<agetty-configuration>}-Objekt sein muss, das
11683unter Anderem festlegt, auf welchem tty es laufen soll. 12351unter anderem festlegt, auf welchem tty es laufen soll.
11684@end deffn 12352@end deffn
11685 12353
11686@deftp {Datentyp} agetty-configuration 12354@deftp {Datentyp} agetty-configuration
@@ -11692,7 +12360,7 @@ die Handbuchseite @code{agetty(8)} für mehr Informationen.
11692 12360
11693@item @code{tty} 12361@item @code{tty}
11694Der Name der Konsole, auf der diese Instanz von agetty läuft, als 12362Der Name der Konsole, auf der diese Instanz von agetty läuft, als
11695Zeichenkette — z.B. @code{"ttyS0"}. Dieses Argument ist optional, sein 12363Zeichenkette — z.B.@: @code{"ttyS0"}. Dieses Argument ist optional, sein
11696Vorgabewert ist eine vernünftige Wahl unter den seriellen Schnittstellen, 12364Vorgabewert ist eine vernünftige Wahl unter den seriellen Schnittstellen,
11697auf deren Benutzung der Linux-Kernel eingestellt ist. 12365auf deren Benutzung der Linux-Kernel eingestellt ist.
11698 12366
@@ -11704,8 +12372,9 @@ Andernfalls wird agetty, falls auf der Kernel-Befehlszeile eine Option
11704@code{console} mit einem tty vorkommt, den daraus extrahierten Gerätenamen 12372@code{console} mit einem tty vorkommt, den daraus extrahierten Gerätenamen
11705der seriellen Schnittstelle benutzen. 12373der seriellen Schnittstelle benutzen.
11706 12374
11707In both cases, agetty will leave the other serial device settings (baud rate 12375In beiden Fällen wird agetty nichts an den anderen Einstellungen für
11708etc.)@: alone---in the hope that Linux pinned them to the correct values. 12376serielle Geräte verändern (Baud-Rate etc.), in der Hoffnung, dass Linux sie
12377auf die korrekten Werte festgelegt hat.
11709 12378
11710@item @code{baud-rate} (Vorgabe: @code{#f}) 12379@item @code{baud-rate} (Vorgabe: @code{#f})
11711Eine Zeichenkette, die aus einer kommagetrennten Liste von einer oder 12380Eine Zeichenkette, die aus einer kommagetrennten Liste von einer oder
@@ -11725,7 +12394,7 @@ angegebene Nutzer automatisch angemeldet, ohne nach einem Anmeldenamen oder
11725Passwort zu fragen. 12394Passwort zu fragen.
11726 12395
11727@item @code{no-reset?} (Vorgabe: @code{#f}) 12396@item @code{no-reset?} (Vorgabe: @code{#f})
11728Steht dies auf @code{#t}, werden die Cflags des Terminals (d.h. dessen 12397Steht dies auf @code{#t}, werden die Cflags des Terminals (d.h.@: dessen
11729Steuermodi) nicht zurückgesetzt. 12398Steuermodi) nicht zurückgesetzt.
11730 12399
11731@item @code{host} (Vorgabe: @code{#f}) 12400@item @code{host} (Vorgabe: @code{#f})
@@ -11749,7 +12418,7 @@ Ist dies auf @code{#t} gesetzt, wird der Inhalt der Datei @file{/etc/issue}
11749 12418
11750@item @code{init-string} (Vorgabe: @code{#f}) 12419@item @code{init-string} (Vorgabe: @code{#f})
11751Dies akzeptiert eine Zeichenkette, die zum tty oder zum Modem zuerst vor 12420Dies akzeptiert eine Zeichenkette, die zum tty oder zum Modem zuerst vor
11752allem Anderen gesendet wird. Es kann benutzt werden, um ein Modem zu 12421allem anderen gesendet wird. Es kann benutzt werden, um ein Modem zu
11753initialisieren. 12422initialisieren.
11754 12423
11755@item @code{no-clear?} (Vorgabe: @code{#f}) 12424@item @code{no-clear?} (Vorgabe: @code{#f})
@@ -11877,7 +12546,7 @@ müssen hier als eine Liste von Zeichenketten angegeben werden.
11877Liefert einen Dienst, um 12546Liefert einen Dienst, um
11878@uref{https://www.freedesktop.org/wiki/Software/kmscon,kmscon} entsprechend 12547@uref{https://www.freedesktop.org/wiki/Software/kmscon,kmscon} entsprechend
11879der @var{Konfiguration} auszuführen. Diese ist ein 12548der @var{Konfiguration} auszuführen. Diese ist ein
11880@code{<kmscon-configuration>}-Objekt, das unter Anderem angibt, auf welchem 12549@code{<kmscon-configuration>}-Objekt, das unter anderem angibt, auf welchem
11881tty es ausgeführt werden soll. 12550tty es ausgeführt werden soll.
11882@end deffn 12551@end deffn
11883 12552
@@ -11888,7 +12557,7 @@ auf virtuellen Konsolen ermöglicht.
11888@table @asis 12557@table @asis
11889 12558
11890@item @code{virtual-terminal} 12559@item @code{virtual-terminal}
11891Der Name der Konsole, auf der diese Kmscon läuft — z.B. @code{"tty1"}. 12560Der Name der Konsole, auf der diese Kmscon läuft — z.B.@: @code{"tty1"}.
11892 12561
11893@item @code{login-program} (Vorgabe: @code{#~(string-append #$shadow "/bin/login")}) 12562@item @code{login-program} (Vorgabe: @code{#~(string-append #$shadow "/bin/login")})
11894Ein G-Ausdruck, der den Namen des Anmeldeprogramms angibt. Als Vorgabe wird 12563Ein G-Ausdruck, der den Namen des Anmeldeprogramms angibt. Als Vorgabe wird
@@ -11916,7 +12585,7 @@ Das Kmscon-Paket, das benutzt werden soll.
11916@deffn {Scheme-Prozedur} nscd-service [@var{Konfiguration}] [#:glibc glibc] @ 12585@deffn {Scheme-Prozedur} nscd-service [@var{Konfiguration}] [#:glibc glibc] @
11917 [#:name-services '()] Liefert einen Dienst, der den Name Service Cache 12586 [#:name-services '()] Liefert einen Dienst, der den Name Service Cache
11918Daemon (nscd) von libc mit der angegebenen @var{Konfiguration} ausführt — 12587Daemon (nscd) von libc mit der angegebenen @var{Konfiguration} ausführt —
11919diese muss ein @code{<nscd-configuration>}-Objekt sein. Siehe @xref{Name Service Switch} für ein Beispiel. 12588diese muss ein @code{<nscd-configuration>}-Objekt sein. Siehe @ref{Name Service Switch} für ein Beispiel.
11920 12589
11921Der Einfachheit halber bietet der Shepherd-Dienst für nscd die folgenden 12590Der Einfachheit halber bietet der Shepherd-Dienst für nscd die folgenden
11922Aktionen an: 12591Aktionen an:
@@ -11958,7 +12627,7 @@ Daemon (kurz »nscd«).
11958 12627
11959@item @code{name-services} (Vorgabe: @code{'()}) 12628@item @code{name-services} (Vorgabe: @code{'()})
11960Liste von Paketen, die @dfn{Namensdienste} bezeichnen, die für den nscd 12629Liste von Paketen, die @dfn{Namensdienste} bezeichnen, die für den nscd
11961sichtbar sein müssen, z.B. @code{(list @var{nss-mdns})}. 12630sichtbar sein müssen, z.B.@: @code{(list @var{nss-mdns})}.
11962 12631
11963@item @code{glibc} (Vorgabe: @var{glibc}) 12632@item @code{glibc} (Vorgabe: @var{glibc})
11964Ein Paket-Objekt, das die GNU-C-Bibliothek angibt, woraus der 12633Ein Paket-Objekt, das die GNU-C-Bibliothek angibt, woraus der
@@ -11989,8 +12658,8 @@ Parametern definiert.
11989Dies ist ein Symbol, was den Namen der Datenbank repräsentiert, die 12658Dies ist ein Symbol, was den Namen der Datenbank repräsentiert, die
11990zwischengespeichert werden soll. Gültige Werte sind @code{passwd}, 12659zwischengespeichert werden soll. Gültige Werte sind @code{passwd},
11991@code{group}, @code{hosts} und @code{services}, womit jeweils die 12660@code{group}, @code{hosts} und @code{services}, womit jeweils die
11992entsprechende NSS-Datenbank bezeichnet wird (@pxref{NSS Basics,,, libc, The 12661entsprechende NSS-Datenbank bezeichnet wird (siehe @ref{NSS Basics,,, libc,
11993GNU C Library Reference Manual}). 12662The GNU C Library Reference Manual}).
11994 12663
11995@item @code{positive-time-to-live} 12664@item @code{positive-time-to-live}
11996@itemx @code{negative-time-to-live} (Vorgabe: @code{20}) 12665@itemx @code{negative-time-to-live} (Vorgabe: @code{20})
@@ -12057,21 +12726,21 @@ Die zu benutzende syslog-Konfigurationsdatei.
12057Liefert einen Dienst, der einen syslog-Daemon entsprechend der 12726Liefert einen Dienst, der einen syslog-Daemon entsprechend der
12058@var{Konfiguration} ausführt. 12727@var{Konfiguration} ausführt.
12059 12728
12060@xref{syslogd invocation,,, inetutils, GNU Inetutils}, für weitere 12729Siehe @ref{syslogd invocation,,, inetutils, GNU Inetutils} für weitere
12061Informationen über die Syntax der Konfiguration. 12730Informationen über die Syntax der Konfiguration.
12062@end deffn 12731@end deffn
12063 12732
12064@defvr {Scheme-Variable} guix-service-type 12733@defvr {Scheme-Variable} guix-service-type
12065Dies ist der Typ für den Dienst, der den Erstellungs-Daemon 12734Dies ist der Typ für den Dienst, der den Erstellungs-Daemon
12066@command{guix-daemon} ausführt (@pxref{Aufruf des guix-daemon}). Als Wert muss 12735@command{guix-daemon} ausführt (siehe @ref{Aufruf des guix-daemon}). Als Wert
12067ein @code{guix-configuration}-Verbundsobjekt verwendet werden, wie unten 12736muss ein @code{guix-configuration}-Verbundsobjekt verwendet werden, wie
12068beschrieben. 12737unten beschrieben.
12069@end defvr 12738@end defvr
12070 12739
12071@anchor{guix-configuration-type} 12740@anchor{guix-configuration-type}
12072@deftp {Datentyp} guix-configuration 12741@deftp {Datentyp} guix-configuration
12073Dieser Datentyp repräsentiert die Konfiguration des Erstellungs-Daemons von 12742Dieser Datentyp repräsentiert die Konfiguration des Erstellungs-Daemons von
12074Guix. Siehe @xref{Aufruf des guix-daemon} für weitere Informationen. 12743Guix. Siehe @ref{Aufruf des guix-daemon} für weitere Informationen.
12075 12744
12076@table @asis 12745@table @asis
12077@item @code{guix} (Vorgabe: @var{guix}) 12746@item @code{guix} (Vorgabe: @var{guix})
@@ -12085,15 +12754,16 @@ Die Anzahl zu erzeugender Erstellungs-Benutzerkonten.
12085 12754
12086@item @code{authorize-key?} (Vorgabe: @code{#t}) 12755@item @code{authorize-key?} (Vorgabe: @code{#t})
12087@cindex Substitute, deren Autorisierung 12756@cindex Substitute, deren Autorisierung
12088Whether to authorize the substitute keys listed in 12757Ob die unter @code{authorized-keys} aufgelisteten Substitutschlüssel
12089@code{authorized-keys}---by default that of @code{@value{SUBSTITUTE-SERVER}} 12758autorisiert werden sollen vorgegeben ist, den von
12090(@pxref{Substitute}). 12759@code{@value{SUBSTITUTE-SERVER}} zu autorisieren (siehe @ref{Substitute}).
12091 12760
12092@vindex %default-authorized-guix-keys 12761@vindex %default-authorized-guix-keys
12093@item @code{authorized-keys} (Vorgabe: @var{%default-authorized-guix-keys}) 12762@item @code{authorized-keys} (Vorgabe: @var{%default-authorized-guix-keys})
12094The list of authorized key files for archive imports, as a list of 12763Die Liste der Dateien mit autorisierten Schlüsseln, d.h.@: eine Liste von
12095string-valued gexps (@pxref{Aufruf von guix archive}). By default, it 12764Zeichenketten als G-Ausdrücke (siehe @ref{Aufruf von guix archive}). Der
12096contains that of @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substitute}). 12765vorgegebene Inhalt ist der Schlüssel von @code{@value{SUBSTITUTE-SERVER}}
12766(siehe @ref{Substitute}).
12097 12767
12098@item @code{use-substitutes?} (Vorgabe: @code{#t}) 12768@item @code{use-substitutes?} (Vorgabe: @code{#t})
12099Ob Substitute benutzt werden sollen. 12769Ob Substitute benutzt werden sollen.
@@ -12259,35 +12929,11 @@ von dort als Startwert für @file{/dev/urandom} auslesen zu können. Als
12259Vorgabe wird @file{/var/lib/random-seed} verwendet. 12929Vorgabe wird @file{/var/lib/random-seed} verwendet.
12260@end defvr 12930@end defvr
12261 12931
12262@cindex Keymap
12263@cindex Tastatur
12264@deffn {Scheme-Prozedur} console-keymap-service @var{Dateien} ...
12265@cindex Tastaturbelegung
12266Liefert einen Dienst, um Tastenzuordnungen (»Keymaps«) für die Konsole aus
12267den @var{Dateien} laden zu können. Dazu wird der Befehl @command{loadkeys}
12268aufgerufen. Wahrscheinlich möchten Sie irgendeine vorgefertigte Keymap
12269laden, etwa so:
12270
12271@example
12272(console-keymap-service "dvorak")
12273@end example
12274
12275Oder um zum Beispiel eine schwedische Tastaturbelegung zu bekommen, könnten
12276Sie die folgenden Keymaps kombinieren müssen:
12277@example
12278(console-keymap-service "se-lat6" "se-fi-lat6")
12279@end example
12280
12281Sie können alternativ auch den oder die vollständigen Dateinamen Ihrer
12282Keymap(s) angeben. Siehe @code{man loadkeys} für Details.
12283
12284@end deffn
12285
12286@cindex Maus 12932@cindex Maus
12287@cindex gpm 12933@cindex gpm
12288@defvr {Scheme-Variable} gpm-service-type 12934@defvr {Scheme-Variable} gpm-service-type
12289Dieser Typ wird für den Dienst verwendet, der GPM ausführt, den 12935Dieser Typ wird für den Dienst verwendet, der GPM ausführt, den
12290»@dfn{General-Purpose Mouse Daemon}«, welcher zur Linux-Konsole 12936@dfn{General-Purpose Mouse Daemon}, welcher zur Linux-Konsole
12291Mausunterstützung hinzufügt. GPM ermöglicht es seinen Benutzern, auch in der 12937Mausunterstützung hinzufügt. GPM ermöglicht es seinen Benutzern, auch in der
12292Konsole die Maus zu benutzen und damit etwa Text auszuwählen, zu kopieren 12938Konsole die Maus zu benutzen und damit etwa Text auszuwählen, zu kopieren
12293und einzufügen. 12939und einzufügen.
@@ -12304,7 +12950,7 @@ Repräsentiert die Konfiguration von GPM.
12304@item @code{options} (Vorgabe: @code{%default-gpm-options}) 12950@item @code{options} (Vorgabe: @code{%default-gpm-options})
12305Befehlszeilenoptionen, die an @command{gpm} übergeben werden. Die 12951Befehlszeilenoptionen, die an @command{gpm} übergeben werden. Die
12306vorgegebenen Optionen weisen @command{gpm} an, auf Maus-Ereignisse auf der 12952vorgegebenen Optionen weisen @command{gpm} an, auf Maus-Ereignisse auf der
12307Datei @file{/dev/input/mice} zu lauschen. Siehe @xref{Command Line,,, gpm, 12953Datei @file{/dev/input/mice} zu lauschen. Siehe @ref{Command Line,,, gpm,
12308gpm manual} für weitere Informationen. 12954gpm manual} für weitere Informationen.
12309 12955
12310@item @code{gpm} (Vorgabe: @code{gpm}) 12956@item @code{gpm} (Vorgabe: @code{gpm})
@@ -12315,12 +12961,12 @@ Das GPM-Paket, was benutzt werden soll.
12315 12961
12316@anchor{guix-publish-service-type} 12962@anchor{guix-publish-service-type}
12317@deffn {Scheme-Variable} guix-publish-service-type 12963@deffn {Scheme-Variable} guix-publish-service-type
12318Dies ist der Diensttyp für @command{guix publish} (@pxref{Aufruf von guix publish}). Sein Wert muss ein @code{guix-publish-configuration}-Objekt sein, 12964Dies ist der Diensttyp für @command{guix publish} (siehe @ref{Aufruf von guix publish}). Sein Wert muss ein @code{guix-publish-configuration}-Objekt sein,
12319wie im Folgenden beschrieben. 12965wie im Folgenden beschrieben.
12320 12966
12321Hierbei wird angenommen, dass @file{/etc/guix} bereits ein mit @command{guix 12967Hierbei wird angenommen, dass @file{/etc/guix} bereits ein mit @command{guix
12322archive --generate-key} erzeugtes Schlüsselpaar zum Signieren enthält 12968archive --generate-key} erzeugtes Schlüsselpaar zum Signieren enthält (siehe
12323(@pxref{Aufruf von guix archive}). Falls nicht, wird der Dienst beim Starten 12969@ref{Aufruf von guix archive}). Falls nicht, wird der Dienst beim Starten
12324fehlschlagen. 12970fehlschlagen.
12325@end deffn 12971@end deffn
12326 12972
@@ -12349,27 +12995,27 @@ Prozessorauslastung.
12349 12995
12350@item @code{nar-path} (Vorgabe: @code{"nar"}) 12996@item @code{nar-path} (Vorgabe: @code{"nar"})
12351Der URL-Pfad, unter dem »Nars« zum Herunterladen angeboten werden. Siehe 12997Der URL-Pfad, unter dem »Nars« zum Herunterladen angeboten werden. Siehe
12352@xref{Aufruf von guix publish, @code{--nar-path}}, für Details. 12998@ref{Aufruf von guix publish, @code{--nar-path}} für Details.
12353 12999
12354@item @code{cache} (Vorgabe: @code{#f}) 13000@item @code{cache} (Vorgabe: @code{#f})
12355Wenn dies @code{#f} ist, werden Archive nicht zwischengespeichert, sondern 13001Wenn dies @code{#f} ist, werden Archive nicht zwischengespeichert, sondern
12356erst bei einer Anfrage erzeugt. Andernfalls sollte dies der Name eines 13002erst bei einer Anfrage erzeugt. Andernfalls sollte dies der Name eines
12357Verzeichnisses sein — z.B. @code{"/var/cache/guix/publish"} —, in das 13003Verzeichnisses sein — z.B.@: @code{"/var/cache/guix/publish"} —, in das
12358@command{guix publish} fertige Archive und Metadaten zwischenspeichern 13004@command{guix publish} fertige Archive und Metadaten zwischenspeichern
12359soll. Siehe @xref{Aufruf von guix publish, @option{--cache}}, für weitere 13005soll. Siehe @ref{Aufruf von guix publish, @option{--cache}} für weitere
12360Informationen über die jeweiligen Vor- und Nachteile. 13006Informationen über die jeweiligen Vor- und Nachteile.
12361 13007
12362@item @code{workers} (Vorgabe: @code{#f}) 13008@item @code{workers} (Vorgabe: @code{#f})
12363Ist dies eine ganze Zahl, gibt es die Anzahl der Worker-Threads an, die zum 13009Ist dies eine ganze Zahl, gibt es die Anzahl der Worker-Threads an, die zum
12364Zwischenspeichern benutzt werden; ist es @code{#f}, werden so viele benutzt, 13010Zwischenspeichern benutzt werden; ist es @code{#f}, werden so viele benutzt,
12365wie es Prozessoren gibt. Siehe @xref{Aufruf von guix publish, 13011wie es Prozessoren gibt. Siehe @ref{Aufruf von guix publish,
12366@option{--workers}}, für mehr Informationen. 13012@option{--workers}} für mehr Informationen.
12367 13013
12368@item @code{ttl} (Vorgabe: @code{#f}) 13014@item @code{ttl} (Vorgabe: @code{#f})
12369Wenn dies eine ganze Zahl ist, bezeichnet sie die @dfn{Time-to-live} als die 13015Wenn dies eine ganze Zahl ist, bezeichnet sie die @dfn{Time-to-live} als die
12370Anzahl der Sekunden, die heruntergeladene veröffentlichte Archive 13016Anzahl der Sekunden, die heruntergeladene veröffentlichte Archive
12371zwischengespeichert werden dürfen. Siehe @xref{Aufruf von guix publish, 13017zwischengespeichert werden dürfen. Siehe @ref{Aufruf von guix publish,
12372@option{--ttl}}, für mehr Informationen. 13018@option{--ttl}} für mehr Informationen.
12373@end table 13019@end table
12374@end deftp 13020@end deftp
12375 13021
@@ -12419,28 +13065,31 @@ Echtzeit-Audio-Systeme verwendet.
12419 13065
12420@cindex cron 13066@cindex cron
12421@cindex mcron 13067@cindex mcron
12422@cindex scheduling jobs 13068@cindex Planen von Aufträgen
12423The @code{(gnu services mcron)} module provides an interface to 13069Das Modul @code{(gnu services mcron)} enthält eine Schnittstelle zu
12424GNU@tie{}mcron, a daemon to run jobs at scheduled times (@pxref{Top,,, 13070GNU@tie{}mcron, einem Daemon, der gemäß einem vorher festgelegten Zeitplan
12425mcron, GNU@tie{}mcron}). GNU@tie{}mcron is similar to the traditional Unix 13071Aufträge (sogenannte »Jobs«) ausführt (siehe @ref{Top,,, mcron,
12426@command{cron} daemon; the main difference is that it is implemented in 13072GNU@tie{}mcron}). GNU@tie{}mcron ist ähnlich zum traditionellen
12427Guile Scheme, which provides a lot of flexibility when specifying the 13073@command{cron}-Daemon aus Unix; der größte Unterschied ist, dass mcron in
12428scheduling of jobs and their actions. 13074Guile Scheme implementiert ist, wodurch einem viel Flexibilität bei der
12429 13075Spezifikation von Aufträgen und ihren Aktionen offen steht.
12430The example below defines an operating system that runs the 13076
12431@command{updatedb} (@pxref{Invoking updatedb,,, find, Finding Files}) and 13077Das folgende Beispiel definiert ein Betriebssystem, das täglich die Befehle
12432the @command{guix gc} commands (@pxref{Aufruf von guix gc}) daily, as well as 13078@command{updatedb} (siehe @ref{Invoking updatedb,,, find, Finding Files})
12433the @command{mkid} command on behalf of an unprivileged user (@pxref{mkid 13079und @command{guix gc} (siehe @ref{Aufruf von guix gc}) ausführt sowie den
12434invocation,,, idutils, ID Database Utilities}). It uses gexps to introduce 13080Befehl @command{mkid} im Namen eines »unprivilegierten« Nutzers ohne
12435job definitions that are passed to mcron (@pxref{G-Ausdrücke}). 13081besondere Berechtigungen laufen lässt (siehe @ref{mkid invocation,,,
13082idutils, ID Database Utilities}). Zum Anlegen von Auftragsdefinitionen
13083benutzt es G-Ausdrücke, die dann an mcron übergeben werden (siehe
13084@ref{G-Ausdrücke}).
12436 13085
12437@lisp 13086@lisp
12438(use-modules (guix) (gnu) (gnu services mcron)) 13087(use-modules (guix) (gnu) (gnu services mcron))
12439(use-package-modules base idutils) 13088(use-package-modules base idutils)
12440 13089
12441(define updatedb-job 13090(define updatedb-job
12442 ;; Run 'updatedb' at 3AM every day. Here we write the 13091 ;; 'updatedb' jeden Tag um 3 Uhr morgens ausführen. Hier schreiben wir
12443 ;; job's action as a Scheme procedure. 13092 ;; die vom Auftrag durchzuführende Aktion als eine Scheme-Prozedur.
12444 #~(job '(next-hour '(3)) 13093 #~(job '(next-hour '(3))
12445 (lambda () 13094 (lambda ()
12446 (execl (string-append #$findutils "/bin/updatedb") 13095 (execl (string-append #$findutils "/bin/updatedb")
@@ -12448,14 +13097,15 @@ job definitions that are passed to mcron (@pxref{G-Ausdrücke}).
12448 "--prunepaths=/tmp /var/tmp /gnu/store")))) 13097 "--prunepaths=/tmp /var/tmp /gnu/store"))))
12449 13098
12450(define garbage-collector-job 13099(define garbage-collector-job
12451 ;; Collect garbage 5 minutes after midnight every day. 13100 ;; Jeden Tag 5 Minuten nach Mitternacht Müll sammeln gehen.
12452 ;; The job's action is a shell command. 13101 ;; Die Aktions des Auftrags ist ein Shell-Befehl.
12453 #~(job "5 0 * * *" ;Vixie cron syntax 13102 #~(job "5 0 * * *" ;Vixie-cron-Syntax
12454 "guix gc -F 1G")) 13103 "guix gc -F 1G"))
12455 13104
12456(define idutils-job 13105(define idutils-job
12457 ;; Update the index database as user "charlie" at 12:15PM 13106 ;; Die Index-Datenbank des Benutzers "charlie" um 12:15 Uhr und
12458 ;; and 19:15PM. This runs from the user's home directory. 13107 ;; 19:15 Uhr aktualisieren. Dies wird aus seinem Persönlichen
13108 ;; Ordner heraus ausgeführt.
12459 #~(job '(next-minute-from (next-hour '(12 19)) '(15)) 13109 #~(job '(next-minute-from (next-hour '(12 19)) '(15))
12460 (string-append #$idutils "/bin/mkid src") 13110 (string-append #$idutils "/bin/mkid src")
12461 #:user "charlie")) 13111 #:user "charlie"))
@@ -12470,9 +13120,9 @@ job definitions that are passed to mcron (@pxref{G-Ausdrücke}).
12470 %base-services))) 13120 %base-services)))
12471@end lisp 13121@end lisp
12472 13122
12473@xref{Guile Syntax, mcron job specifications,, mcron, GNU@tie{}mcron}, for 13123Siehe @ref{Guile Syntax, mcron job specifications,, mcron, GNU@tie{}mcron}
12474more information on mcron job specifications. Below is the reference of the 13124r weitere Informationen zu mcron-Auftragsspezifikationen. Nun folgt die
12475mcron service. 13125Referenz des mcron-Dienstes.
12476 13126
12477On a running system, you can use the @code{schedule} action of the service 13127On a running system, you can use the @code{schedule} action of the service
12478to visualize the mcron jobs that will be executed next: 13128to visualize the mcron jobs that will be executed next:
@@ -13484,7 +14134,7 @@ from accessing Facebook.
13484 14134
13485The @code{(gnu services avahi)} provides the following definition. 14135The @code{(gnu services avahi)} provides the following definition.
13486 14136
13487@defvr {Scheme Variable} avahi-service-type 14137@defvr {Scheme-Variable} avahi-service-type
13488This is the service that runs @command{avahi-daemon}, a system-wide 14138This is the service that runs @command{avahi-daemon}, a system-wide
13489mDNS/DNS-SD responder that allows for service discovery and 14139mDNS/DNS-SD responder that allows for service discovery and
13490``zero-configuration'' host name lookups (see @uref{http://avahi.org/}). 14140``zero-configuration'' host name lookups (see @uref{http://avahi.org/}).
@@ -13498,20 +14148,20 @@ Additionally, add the @var{avahi} package to the system profile so that
13498commands such as @command{avahi-browse} are directly usable. 14148commands such as @command{avahi-browse} are directly usable.
13499@end defvr 14149@end defvr
13500 14150
13501@deftp {Data Type} avahi-configuration 14151@deftp {Datentyp} avahi-configuration
13502Data type representation the configuration for Avahi. 14152Dieser Datentyp repräsentiert die Konfiguration von Avahi.
13503 14153
13504@table @asis 14154@table @asis
13505 14155
13506@item @code{host-name} (default: @code{#f}) 14156@item @code{host-name} (Vorgabe: @code{#f})
13507If different from @code{#f}, use that as the host name to publish for this 14157If different from @code{#f}, use that as the host name to publish for this
13508machine; otherwise, use the machine's actual host name. 14158machine; otherwise, use the machine's actual host name.
13509 14159
13510@item @code{publish?} (default: @code{#t}) 14160@item @code{publish?} (Vorgabe: @code{#t})
13511When true, allow host names and services to be published (broadcast) over 14161When true, allow host names and services to be published (broadcast) over
13512the network. 14162the network.
13513 14163
13514@item @code{publish-workstation?} (default: @code{#t}) 14164@item @code{publish-workstation?} (Vorgabe: @code{#t})
13515When true, @command{avahi-daemon} publishes the machine's host name and IP 14165When true, @command{avahi-daemon} publishes the machine's host name and IP
13516address via mDNS on the local network. To view the host names published on 14166address via mDNS on the local network. To view the host names published on
13517your local network, you can run: 14167your local network, you can run:
@@ -13520,14 +14170,14 @@ your local network, you can run:
13520avahi-browse _workstation._tcp 14170avahi-browse _workstation._tcp
13521@end example 14171@end example
13522 14172
13523@item @code{wide-area?} (default: @code{#f}) 14173@item @code{wide-area?} (Vorgabe: @code{#f})
13524When true, DNS-SD over unicast DNS is enabled. 14174When true, DNS-SD over unicast DNS is enabled.
13525 14175
13526@item @code{ipv4?} (default: @code{#t}) 14176@item @code{ipv4?} (Vorgabe: @code{#t})
13527@itemx @code{ipv6?} (default: @code{#t}) 14177@itemx @code{ipv6?} (Vorgabe: @code{#t})
13528These fields determine whether to use IPv4/IPv6 sockets. 14178These fields determine whether to use IPv4/IPv6 sockets.
13529 14179
13530@item @code{domains-to-browse} (default: @code{'()}) 14180@item @code{domains-to-browse} (Vorgabe: @code{'()})
13531This is a list of domains to browse. 14181This is a list of domains to browse.
13532@end table 14182@end table
13533@end deftp 14183@end deftp
@@ -13558,7 +14208,13 @@ Package object of the Open vSwitch.
13558Support for the X Window graphical display system---specifically Xorg---is 14208Support for the X Window graphical display system---specifically Xorg---is
13559provided by the @code{(gnu services xorg)} module. Note that there is no 14209provided by the @code{(gnu services xorg)} module. Note that there is no
13560@code{xorg-service} procedure. Instead, the X server is started by the 14210@code{xorg-service} procedure. Instead, the X server is started by the
13561@dfn{login manager}, by default SLiM. 14211@dfn{login manager}, by default the GNOME Display Manager (GDM).
14212
14213@cindex GDM
14214@cindex GNOME, login manager
14215GDM of course allows users to log in into window managers and desktop
14216environments other than GNOME; for those using GNOME, GDM is required for
14217features such as automatic screen locking.
13562 14218
13563@cindex window manager 14219@cindex window manager
13564To use X11, you must install at least one @dfn{window manager}---for example 14220To use X11, you must install at least one @dfn{window manager}---for example
@@ -13566,23 +14222,60 @@ the @code{windowmaker} or @code{openbox} packages---preferably by adding it
13566to the @code{packages} field of your operating system definition 14222to the @code{packages} field of your operating system definition
13567(@pxref{»operating-system«-Referenz, system-wide packages}). 14223(@pxref{»operating-system«-Referenz, system-wide packages}).
13568 14224
13569@defvr {Scheme Variable} slim-service-type 14225@defvr {Scheme-Variable} gdm-service-type
13570This is the type for the SLiM graphical login manager for X11. 14226This is the type for the @uref{https://wiki.gnome.org/Projects/GDM/, GNOME
14227Desktop Manager} (GDM), a program that manages graphical display servers and
14228handles graphical user logins. Its value must be a @code{gdm-configuration}
14229(see below.)
13571 14230
13572@cindex session types (X11) 14231@cindex session types (X11)
13573@cindex X11 session types 14232@cindex X11 session types
13574SLiM looks for @dfn{session types} described by the @file{.desktop} files in 14233GDM looks for @dfn{session types} described by the @file{.desktop} files in
13575@file{/run/current-system/profile/share/xsessions} and allows users to 14234@file{/run/current-system/profile/share/xsessions} and allows users to
13576choose a session from the log-in screen using @kbd{F1}. Packages such as 14235choose a session from the log-in screen. Packages such as @code{gnome},
13577@code{xfce}, @code{sawfish}, and @code{ratpoison} provide @file{.desktop} 14236@code{xfce}, and @code{i3} provide @file{.desktop} files; adding them to the
13578files; adding them to the system-wide set of packages automatically makes 14237system-wide set of packages automatically makes them available at the log-in
13579them available at the log-in screen. 14238screen.
13580 14239
13581In addition, @file{~/.xsession} files are honored. When available, 14240In addition, @file{~/.xsession} files are honored. When available,
13582@file{~/.xsession} must be an executable that starts a window manager and/or 14241@file{~/.xsession} must be an executable that starts a window manager and/or
13583other X clients. 14242other X clients.
13584@end defvr 14243@end defvr
13585 14244
14245@deftp {Datentyp} gdm-configuration
14246@table @asis
14247@item @code{auto-login?} (default: @code{#f})
14248@itemx @code{default-user} (Vorgabe: @code{#f})
14249When @code{auto-login?} is false, GDM presents a log-in screen.
14250
14251When @code{auto-login?} is true, GDM logs in directly as
14252@code{default-user}.
14253
14254@item @code{gnome-shell-assets} (Vorgabe: …)
14255List of GNOME Shell assets needed by GDM: icon theme, fonts, etc.
14256
14257@item @code{xorg-configuration} (Vorgabe: @code{(xorg-configuration)})
14258Xorg-Server für grafische Oberflächen konfigurieren.
14259
14260@item @code{xsession} (Vorgabe: @code{(xinitrc)})
14261Script to run before starting a X session.
14262
14263@item @code{dbus-daemon} (Vorgabe: @code{dbus-daemon-wrapper})
14264File name of the @code{dbus-daemon} executable.
14265
14266@item @code{gdm} (Vorgabe: @code{gdm})
14267Das GDM-Paket, was benutzt werden soll.
14268@end table
14269@end deftp
14270
14271@defvr {Scheme Variable} slim-service-type
14272This is the type for the SLiM graphical login manager for X11.
14273
14274Like GDM, SLiM looks for session types described by @file{.desktop} files
14275and allows users to choose a session from the log-in screen using @kbd{F1}.
14276It also honors @file{~/.xsession} files.
14277@end defvr
14278
13586@deftp {Data Type} slim-configuration 14279@deftp {Data Type} slim-configuration
13587Data type representing the configuration of @code{slim-service-type}. 14280Data type representing the configuration of @code{slim-service-type}.
13588 14281
@@ -13615,8 +14308,8 @@ your user profile. Failing to do that, if @code{auto-login-session} is
13615false, you will be unable to log in. 14308false, you will be unable to log in.
13616@end quotation 14309@end quotation
13617 14310
13618@item @code{startx} (default: @code{(xorg-start-command)}) 14311@item @code{xorg-configuration} (Vorgabe: @code{(xorg-configuration)})
13619The command used to start the X11 graphical server. 14312Xorg-Server für grafische Oberflächen konfigurieren.
13620 14313
13621@item @code{xauth} (default: @code{xauth}) 14314@item @code{xauth} (default: @code{xauth})
13622The XAuth package to use. 14315The XAuth package to use.
@@ -13691,8 +14384,8 @@ Script to run before starting a wayland session.
13691@item @code{sessions-directory} (default "/run/current-system/profile/share/wayland-sessions") 14384@item @code{sessions-directory} (default "/run/current-system/profile/share/wayland-sessions")
13692Directory to look for desktop files starting wayland sessions. 14385Directory to look for desktop files starting wayland sessions.
13693 14386
13694@item @code{xorg-server-path} (default @code{xorg-start-command}) 14387@item @code{xorg-configuration} (Vorgabe: @code{(xorg-configuration)})
13695Path to xorg-server. 14388Xorg-Server für grafische Oberflächen konfigurieren.
13696 14389
13697@item @code{xauth-path} (default @code{#~(string-append #$xauth "/bin/xauth")}) 14390@item @code{xauth-path} (default @code{#~(string-append #$xauth "/bin/xauth")})
13698Path to xauth. 14391Path to xauth.
@@ -13715,9 +14408,6 @@ Directory to look for desktop files starting X sessions.
13715@item @code{minimum-vt} (default: 7) 14408@item @code{minimum-vt} (default: 7)
13716Minimum VT to use. 14409Minimum VT to use.
13717 14410
13718@item @code{xserver-arguments} (default "-nolisten tcp")
13719Arguments to pass to xorg-server.
13720
13721@item @code{auto-login-user} (default "") 14411@item @code{auto-login-user} (default "")
13722User to use for auto-login. 14412User to use for auto-login.
13723 14413
@@ -13743,96 +14433,74 @@ type @code{<sddm-configuration>}.
13743@end example 14433@end example
13744@end deffn 14434@end deffn
13745 14435
13746@deffn {Scheme Procedure} xorg-start-command [#:guile] @ 14436@cindex Xorg, Konfiguration
13747 [#:modules %default-xorg-modules] @ [#:fonts %default-xorg-fonts] @ 14437@deftp {Datentyp} xorg-configuration
13748[#:configuration-file (xorg-configuration-file @dots{})] @ [#:xorg-server 14438This data type represents the configuration of the Xorg graphical display
13749@var{xorg-server}] [#:xserver-arguments '("-nolisten" "tcp")] Return a 14439server. Note that there is not Xorg service; instead, the X server is
13750@code{startx} script in which @var{modules}, a list of X module packages, 14440started by a ``display manager'' such as GDM, SDDM, and SLiM. Thus, the
13751and @var{fonts}, a list of X font directories, are available. See 14441configuration of these display managers aggregates an
13752@code{xorg-wrapper} for more details on the arguments. The result should be 14442@code{xorg-configuration} record.
13753used in place of @code{startx}.
13754
13755Usually the X server is started by a login manager.
13756@end deffn
13757
13758@cindex @code{-listen tcp}, for X11.
13759This procedure is useful to override command line options for the X server,
13760such as having it listen to over TCP:
13761
13762@example
13763(operating-system
13764 ...
13765 (services
13766 (modify-services %desktop-services
13767 (slim-service-type config =>
13768 (slim-configuration
13769 (inherit config)
13770 (startx (xorg-start-command
13771 #:xserver-arguments '("-listen" "tcp"))))))))
13772@end example
13773 14443
13774@deffn {Scheme Procedure} xorg-configuration-file @ 14444@table @asis
13775 [#:modules %default-xorg-modules] @ [#:fonts %default-xorg-fonts] @ 14445@item @code{modules} (Vorgabe: @code{%default-xorg-modules})
13776[#:drivers '()] [#:resolutions '()] [#:extra-config '()] Return a 14446This is a list of @dfn{module packages} loaded by the Xorg server---e.g.,
13777configuration file for the Xorg server containing search paths for all the 14447@code{xf86-video-vesa}, @code{xf86-input-keyboard}, and so on.
13778common drivers. 14448
13779 14449@item @code{fonts} (Vorgabe: @code{%default-xorg-fonts})
13780@var{modules} must be a list of @dfn{module packages} loaded by the Xorg 14450This is a list of font directories to add to the server's @dfn{font path}.
13781server---e.g., @code{xf86-video-vesa}, @code{xf86-input-keyboard}, and so 14451
13782on. @var{fonts} must be a list of font directories to add to the server's 14452@item @code{drivers} (Vorgabe: @code{'()})
13783@dfn{font path}. 14453This must be either the empty list, in which case Xorg chooses a graphics
13784 14454driver automatically, or a list of driver names that will be tried in this
13785@var{drivers} must be either the empty list, in which case Xorg chooses a 14455order---e.g., @code{("modesetting" "vesa")}.
13786graphics driver automatically, or a list of driver names that will be tried 14456
13787in this order---e.g., @code{("modesetting" "vesa")}. 14457@item @code{resolutions} (Vorgabe: @code{'()})
13788 14458When @code{resolutions} is the empty list, Xorg chooses an appropriate
13789Likewise, when @var{resolutions} is the empty list, Xorg chooses an 14459screen resolution. Otherwise, it must be a list of resolutions---e.g.,
13790appropriate screen resolution; otherwise, it must be a list of 14460@code{((1024 768) (640 480))}.
13791resolutions---e.g., @code{((1024 768) (640 480))}. 14461
14462@cindex Tastaturbelegung, für Xorg
14463@cindex keymap, for Xorg
14464@item @code{keyboard-layout} (Vorgabe: @code{#f})
14465If this is @code{#f}, Xorg uses the default keyboard layout---usually US
14466English (``qwerty'') for a 105-key PC keyboard.
14467
14468Otherwise this must be a @code{keyboard-layout} object specifying the
14469keyboard layout in use when Xorg is running. @xref{Tastaturbelegung}, for
14470more information on how to specify the keyboard layout.
14471
14472@item @code{extra-config} (Vorgabe: @code{'()})
14473This is a list of strings or objects appended to the configuration file. It
14474is used to pass extra text to be added verbatim to the configuration file.
14475
14476@item @code{server} (Vorgabe: @code{xorg-server})
14477This is the package providing the Xorg server.
14478
14479@item @code{server-arguments} (Vorgabe: @code{%default-xorg-server-arguments})
14480This is the list of command-line arguments to pass to the X server. The
14481default is @code{-nolisten tcp}.
14482@end table
14483@end deftp
13792 14484
13793Last, @var{extra-config} is a list of strings or objects appended to the 14485@deffn {Scheme-Prozedur} set-xorg-configuration @var{Konfiguration} @
13794configuration file. It is used to pass extra text to be added verbatim to 14486 [@var{login-manager-service-type}] Tell the log-in manager (of type
13795the configuration file. 14487@var{login-manager-service-type}) to use @var{config}, an
14488<xorg-configuration> record.
13796 14489
13797@cindex Keymap 14490Since the Xorg configuration is embedded in the log-in manager's
13798@cindex Tastaturbelegung 14491configuration---e.g., @code{gdm-configuration}---this procedure provides a
13799This procedure is especially useful to configure a different keyboard layout 14492shorthand to set the Xorg configuration.
13800than the default US keymap. For instance, to use the ``bépo'' keymap by 14493@end deffn
13801default on the display manager:
13802 14494
13803@example 14495@deffn {Scheme-Prozedur} xorg-start-command [@var{Konfiguration}]
13804(define bepo-evdev 14496Return a @code{startx} script in which the modules, fonts, etc. specified in
13805 "Section \"InputClass\" 14497@var{config}, are available. The result should be used in place of
13806 Identifier \"evdev keyboard catchall\" 14498@code{startx}.
13807 Driver \"evdev\"
13808 MatchIsKeyboard \"on\"
13809 Option \"xkb_layout\" \"fr\"
13810 Option \"xkb_variant\" \"bepo\"
13811EndSection")
13812 14499
13813(operating-system 14500Usually the X server is started by a login manager.
13814 ...
13815 (services
13816 (modify-services %desktop-services
13817 (slim-service-type config =>
13818 (slim-configuration
13819 (inherit config)
13820 (startx (xorg-start-command
13821 #:configuration-file
13822 (xorg-configuration-file
13823 #:extra-config
13824 (list bepo-evdev)))))))))
13825@end example
13826
13827The @code{MatchIsKeyboard} line specifies that we only apply the
13828configuration to keyboards. Without this line, other devices such as
13829touchpad may not work correctly because they will be attached to the wrong
13830driver. In this example, the user typically used @code{setxkbmap fr bepo}
13831to set their favorite keymap once logged in. The first argument corresponds
13832to the layout, while the second argument corresponds to the variant. The
13833@code{xkb_variant} line can be omitted to select the default variant.
13834@end deffn 14501@end deffn
13835 14502
14503
13836@deffn {Scheme Procedure} screen-locker-service @var{package} [@var{program}] 14504@deffn {Scheme Procedure} screen-locker-service @var{package} [@var{program}]
13837Add @var{package}, a package for a screen locker or screen saver whose 14505Add @var{package}, a package for a screen locker or screen saver whose
13838command is @var{program}, to the set of setuid programs and add a PAM entry 14506command is @var{program}, to the set of setuid programs and add a PAM entry
@@ -13850,9 +14518,10 @@ makes the good ol' XlockMore usable.
13850@subsection Druckdienste 14518@subsection Druckdienste
13851 14519
13852@cindex printer support with CUPS 14520@cindex printer support with CUPS
13853The @code{(gnu services cups)} module provides a Guix service definition for 14521Das Modul @code{(gnu services cups)} stellt eine Guix-Dienstdefinition für
13854the CUPS printing service. To add printer support to a Guix system, add a 14522den CUPS-Druckdienst zur Verfügung. Wenn Sie Druckerunterstützung zu einem
13855@code{cups-service} to the operating system definition: 14523Guix-System hinzufügen möchten, dann fügen Sie einen
14524@code{cups-service}-Dienst in die Betriebssystemdefinition ein.
13856 14525
13857@deffn {Scheme Variable} cups-service-type 14526@deffn {Scheme Variable} cups-service-type
13858The service type for the CUPS print server. Its value should be a valid 14527The service type for the CUPS print server. Its value should be a valid
@@ -14683,7 +15352,7 @@ The @code{(gnu services desktop)} module provides services that are usually
14683useful in the context of a ``desktop'' setup---that is, on a machine running 15352useful in the context of a ``desktop'' setup---that is, on a machine running
14684a graphical display server, possibly with graphical user interfaces, etc. 15353a graphical display server, possibly with graphical user interfaces, etc.
14685It also defines services that provide specific desktop environments like 15354It also defines services that provide specific desktop environments like
14686GNOME, XFCE or MATE. 15355GNOME, Xfce or MATE.
14687 15356
14688To simplify things, the module defines a variable containing the set of 15357To simplify things, the module defines a variable containing the set of
14689services that users typically expect on a machine with a graphical 15358services that users typically expect on a machine with a graphical
@@ -14694,7 +15363,7 @@ This is a list of services that builds upon @var{%base-services} and adds or
14694adjusts services for a typical ``desktop'' setup. 15363adjusts services for a typical ``desktop'' setup.
14695 15364
14696In particular, it adds a graphical login manager (@pxref{X Window, 15365In particular, it adds a graphical login manager (@pxref{X Window,
14697@code{slim-service}}), screen lockers, a network management tool 15366@code{gdm-service-type}}), screen lockers, a network management tool
14698(@pxref{Netzwerkdienste, @code{network-manager-service-type}}), energy 15367(@pxref{Netzwerkdienste, @code{network-manager-service-type}}), energy
14699and color management services, the @code{elogind} login and seat manager, 15368and color management services, the @code{elogind} login and seat manager,
14700the Polkit privilege service, the GeoClue location service, the 15369the Polkit privilege service, the GeoClue location service, the
@@ -14707,19 +15376,19 @@ name service switch service configured to be able to use @code{nss-mdns}
14707The @var{%desktop-services} variable can be used as the @code{services} 15376The @var{%desktop-services} variable can be used as the @code{services}
14708field of an @code{operating-system} declaration (@pxref{»operating-system«-Referenz, @code{services}}). 15377field of an @code{operating-system} declaration (@pxref{»operating-system«-Referenz, @code{services}}).
14709 15378
14710Additionally, the @code{gnome-desktop-service}, @code{xfce-desktop-service}, 15379Additionally, the @code{gnome-desktop-service-type},
14711@code{mate-desktop-service-type} and 15380@code{xfce-desktop-service}, @code{mate-desktop-service-type} and
14712@code{enlightenment-desktop-service-type} procedures can add GNOME, XFCE, 15381@code{enlightenment-desktop-service-type} procedures can add GNOME, Xfce,
14713MATE and/or Enlightenment to a system. To ``add GNOME'' means that 15382MATE and/or Enlightenment to a system. To ``add GNOME'' means that
14714system-level services like the backlight adjustment helpers and the power 15383system-level services like the backlight adjustment helpers and the power
14715management utilities are added to the system, extending @code{polkit} and 15384management utilities are added to the system, extending @code{polkit} and
14716@code{dbus} appropriately, allowing GNOME to operate with elevated 15385@code{dbus} appropriately, allowing GNOME to operate with elevated
14717privileges on a limited number of special-purpose system interfaces. 15386privileges on a limited number of special-purpose system interfaces.
14718Additionally, adding a service made by @code{gnome-desktop-service} adds the 15387Additionally, adding a service made by @code{gnome-desktop-service-type}
14719GNOME metapackage to the system profile. Likewise, adding the XFCE service 15388adds the GNOME metapackage to the system profile. Likewise, adding the Xfce
14720not only adds the @code{xfce} metapackage to the system profile, but it also 15389service not only adds the @code{xfce} metapackage to the system profile, but
14721gives the Thunar file manager the ability to open a ``root-mode'' file 15390it also gives the Thunar file manager the ability to open a ``root-mode''
14722management window, if the user authenticates using the administrator's 15391file management window, if the user authenticates using the administrator's
14723password via the standard polkit graphical interface. To ``add MATE'' means 15392password via the standard polkit graphical interface. To ``add MATE'' means
14724that @code{polkit} and @code{dbus} are extended appropriately, allowing MATE 15393that @code{polkit} and @code{dbus} are extended appropriately, allowing MATE
14725to operate with elevated privileges on a limited number of special-purpose 15394to operate with elevated privileges on a limited number of special-purpose
@@ -14732,44 +15401,69 @@ expetected.
14732 15401
14733The desktop environments in Guix use the Xorg display server by default. If 15402The desktop environments in Guix use the Xorg display server by default. If
14734you'd like to use the newer display server protocol called Wayland, you need 15403you'd like to use the newer display server protocol called Wayland, you need
14735to use the @code{sddm-service} instead of the @code{slim-service} for the 15404to use the @code{sddm-service} instead of GDM as the graphical login
14736graphical login manager. You should then select the ``GNOME (Wayland)'' 15405manager. You should then select the ``GNOME (Wayland)'' session in SDDM.
14737session in SDDM. Alternatively you can also try starting GNOME on Wayland 15406Alternatively you can also try starting GNOME on Wayland manually from a TTY
14738manually from a TTY with the command ``XDG_SESSION_TYPE=wayland exec 15407with the command ``XDG_SESSION_TYPE=wayland exec dbus-run-session
14739dbus-run-session gnome-session``. Currently only GNOME has support for 15408gnome-session``. Currently only GNOME has support for Wayland.
14740Wayland. 15409
14741 15410@defvr {Scheme-Variable} gnome-desktop-service-type
14742@deffn {Scheme Procedure} gnome-desktop-service 15411Dies ist der Typ des Dienstes, der die @uref{https://www.gnome.org,
14743Return a service that adds the @code{gnome} package to the system profile, 15412GNOME}-Arbeitsumgebung bereitstellt. Sein Wert ist ein
14744and extends polkit with the actions from @code{gnome-settings-daemon}. 15413@code{gnome-desktop-configuration}-Objekt (siehe unten).
14745@end deffn 15414
15415This service adds the @code{gnome} package to the system profile, and
15416extends polkit with the actions from @code{gnome-settings-daemon}.
15417@end defvr
15418
15419@deftp {Datentyp} gnome-desktop-configuration
15420Configuration record for the GNOME desktop environment.
15421
15422@table @asis
15423@item @code{gnome} (Vorgabe: @code{gnome})
15424Welches GNOME-Paket benutzt werden soll.
15425@end table
15426@end deftp
14746 15427
14747@deffn {Scheme Procedure} xfce-desktop-service 15428@defvr {Scheme-Variable} xfce-desktop-service-type
14748Return a service that adds the @code{xfce} package to the system profile, 15429Der Typ des Dienstes, um die @uref{Xfce, https://xfce.org/}-Arbeitsumgebung
14749and extends polkit with the ability for @code{thunar} to manipulate the file 15430auszuführen. Sein Wert ist ein @code{xfce-desktop-configuration}-Objekt
15431(siehe unten).
15432
15433This service that adds the @code{xfce} package to the system profile, and
15434extends polkit with the ability for @code{thunar} to manipulate the file
14750system as root from within a user session, after the user has authenticated 15435system as root from within a user session, after the user has authenticated
14751with the administrator's password. 15436with the administrator's password.
14752@end deffn 15437@end defvr
14753 15438
14754@deffn {Scheme Variable} mate-desktop-service-type 15439@deftp {Datentyp} xfce-desktop-configuration
14755This is the type of the service that runs the 15440Verbundstyp für Einstellungen zur Xfce-Arbeitsumgebung.
14756@uref{https://mate-desktop.org/, MATE desktop environment}. Its value is a 15441
14757@code{mate-desktop-configuration} object (see below.) 15442@table @asis
15443@item @code{xfce} (Vorgabe: @code{xfce})
15444Das Xfce-Paket, was benutzt werden soll.
15445@end table
15446@end deftp
15447
15448@deffn {Scheme-Variable} mate-desktop-service-type
15449Dies ist der Typ des Dienstes, um die @uref{https://mate-desktop.org/,
15450MATE-Arbeitsumgebung} auszuführen. Sein Wert ist ein
15451@code{mate-desktop-configuration}-Objekt (siehe unten).
14758 15452
14759This service adds the @code{mate} package to the system profile, and extends 15453This service adds the @code{mate} package to the system profile, and extends
14760polkit with the actions from @code{mate-settings-daemon}. 15454polkit with the actions from @code{mate-settings-daemon}.
14761@end deffn 15455@end deffn
14762 15456
14763@deftp {Data Type} mate-desktop-configuration 15457@deftp {Datentyp} mate-desktop-configuration
14764Configuration record for the MATE desktop environment. 15458Verbundstyp für die Einstellungen der MATE-Arbeitsumgebung.
14765 15459
14766@table @asis 15460@table @asis
14767@item @code{mate} (default @code{mate}) 15461@item @code{mate} (Vorgabe: @code{mate})
14768The MATE package to use. 15462Das MATE-Paket, was benutzt werden soll.
14769@end table 15463@end table
14770@end deftp 15464@end deftp
14771 15465
14772@deffn {Scheme Variable} enlightenment-desktop-service-type 15466@deffn {Scheme-Variable} enlightenment-desktop-service-type
14773Return a service that adds the @code{enlightenment} package to the system 15467Return a service that adds the @code{enlightenment} package to the system
14774profile, and extends dbus with actions from @code{efl}. 15468profile, and extends dbus with actions from @code{efl}.
14775@end deffn 15469@end deffn
@@ -14781,9 +15475,9 @@ Das Enlightenment-Paket, was benutzt werden soll.
14781@end table 15475@end table
14782@end deftp 15476@end deftp
14783 15477
14784Because the GNOME, XFCE and MATE desktop services pull in so many packages, 15478Because the GNOME, Xfce and MATE desktop services pull in so many packages,
14785the default @code{%desktop-services} variable doesn't include any of them by 15479the default @code{%desktop-services} variable doesn't include any of them by
14786default. To add GNOME, XFCE or MATE, just @code{cons} them onto 15480default. To add GNOME, Xfce or MATE, just @code{cons} them onto
14787@code{%desktop-services} in the @code{services} field of your 15481@code{%desktop-services} in the @code{services} field of your
14788@code{operating-system}: 15482@code{operating-system}:
14789 15483
@@ -14793,8 +15487,8 @@ default. To add GNOME, XFCE or MATE, just @code{cons} them onto
14793(operating-system 15487(operating-system
14794 ... 15488 ...
14795 ;; cons* adds items to the list given as its last argument. 15489 ;; cons* adds items to the list given as its last argument.
14796 (services (cons* (gnome-desktop-service) 15490 (services (cons* (service gnome-desktop-service-type)
14797 (xfce-desktop-service) 15491 (service xfce-desktop-service)
14798 %desktop-services)) 15492 %desktop-services))
14799 ...) 15493 ...)
14800@end example 15494@end example
@@ -14914,7 +15608,7 @@ granted the capability to suspend the system if the user is logged in
14914locally. 15608locally.
14915@end deffn 15609@end deffn
14916 15610
14917@defvr {Scheme Variable} upower-service-type 15611@defvr {Scheme-Variable} upower-service-type
14918Service that runs @uref{http://upower.freedesktop.org/, @command{upowerd}}, 15612Service that runs @uref{http://upower.freedesktop.org/, @command{upowerd}},
14919a system-wide monitor for power consumption and battery levels, with the 15613a system-wide monitor for power consumption and battery levels, with the
14920given configuration settings. 15614given configuration settings.
@@ -14923,52 +15617,52 @@ It implements the @code{org.freedesktop.UPower} D-Bus interface, and is
14923notably used by GNOME. 15617notably used by GNOME.
14924@end defvr 15618@end defvr
14925 15619
14926@deftp {Data Type} upower-configuration 15620@deftp {Datentyp} upower-configuration
14927Data type representation the configuration for UPower. 15621Repräsentiert die Konfiguration von UPower.
14928 15622
14929@table @asis 15623@table @asis
14930 15624
14931@item @code{upower} (default: @var{upower}) 15625@item @code{upower} (Vorgabe: @var{upower})
14932Package to use for @code{upower}. 15626Package to use for @code{upower}.
14933 15627
14934@item @code{watts-up-pro?} (default: @code{#f}) 15628@item @code{watts-up-pro?} (Vorgabe: @code{#f})
14935Enable the Watts Up Pro device. 15629Enable the Watts Up Pro device.
14936 15630
14937@item @code{poll-batteries?} (default: @code{#t}) 15631@item @code{poll-batteries?} (Vorgabe: @code{#t})
14938Enable polling the kernel for battery level changes. 15632Enable polling the kernel for battery level changes.
14939 15633
14940@item @code{ignore-lid?} (default: @code{#f}) 15634@item @code{ignore-lid?} (Vorgabe: @code{#f})
14941Ignore the lid state, this can be useful if it's incorrect on a device. 15635Ignore the lid state, this can be useful if it's incorrect on a device.
14942 15636
14943@item @code{use-percentage-for-policy?} (default: @code{#f}) 15637@item @code{use-percentage-for-policy?} (Vorgabe: @code{#f})
14944Whether battery percentage based policy should be used. The default is to 15638Whether battery percentage based policy should be used. The default is to
14945use the time left, change to @code{#t} to use the percentage. 15639use the time left, change to @code{#t} to use the percentage.
14946 15640
14947@item @code{percentage-low} (default: @code{10}) 15641@item @code{percentage-low} (Vorgabe: @code{10})
14948When @code{use-percentage-for-policy?} is @code{#t}, this sets the 15642When @code{use-percentage-for-policy?} is @code{#t}, this sets the
14949percentage at which the battery is considered low. 15643percentage at which the battery is considered low.
14950 15644
14951@item @code{percentage-critical} (default: @code{3}) 15645@item @code{percentage-critical} (Vorgabe: @code{3})
14952When @code{use-percentage-for-policy?} is @code{#t}, this sets the 15646When @code{use-percentage-for-policy?} is @code{#t}, this sets the
14953percentage at which the battery is considered critical. 15647percentage at which the battery is considered critical.
14954 15648
14955@item @code{percentage-action} (default: @code{2}) 15649@item @code{percentage-action} (Vorgabe: @code{2})
14956When @code{use-percentage-for-policy?} is @code{#t}, this sets the 15650When @code{use-percentage-for-policy?} is @code{#t}, this sets the
14957percentage at which action will be taken. 15651percentage at which action will be taken.
14958 15652
14959@item @code{time-low} (default: @code{1200}) 15653@item @code{time-low} (Vorgabe: @code{1200})
14960When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining 15654When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining
14961in seconds at which the battery is considered low. 15655in seconds at which the battery is considered low.
14962 15656
14963@item @code{time-critical} (default: @code{300}) 15657@item @code{time-critical} (Vorgabe: @code{300})
14964When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining 15658When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining
14965in seconds at which the battery is considered critical. 15659in seconds at which the battery is considered critical.
14966 15660
14967@item @code{time-action} (default: @code{120}) 15661@item @code{time-action} (Vorgabe: @code{120})
14968When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining 15662When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining
14969in seconds at which action will be taken. 15663in seconds at which action will be taken.
14970 15664
14971@item @code{critical-power-action} (default: @code{'hybrid-sleep}) 15665@item @code{critical-power-action} (Vorgabe: @code{'hybrid-sleep})
14972The action taken when @code{percentage-action} or @code{time-action} is 15666The action taken when @code{percentage-action} or @code{time-action} is
14973reached (depending on the configuration of 15667reached (depending on the configuration of
14974@code{use-percentage-for-policy?}). 15668@code{use-percentage-for-policy?}).
@@ -15156,9 +15850,9 @@ extension, a user can configure the postgresql-service as in this example:
15156(use-package-modules databases geo) 15850(use-package-modules databases geo)
15157 15851
15158(operating-system 15852(operating-system
15159 ... 15853
15160 ;; postgresql is required to run `psql' but postgis is not required for 15854 ;; postgresql wird benötigt, um »psql« auszuführen, aber postgis ist
15161 ;; proper operation. 15855 ;; r den Betrieb nicht unbedingt notwendig.
15162 (packages (cons* postgresql %base-packages)) 15856 (packages (cons* postgresql %base-packages))
15163 (services 15857 (services
15164 (cons* 15858 (cons*
@@ -16642,6 +17336,36 @@ above example, there doesn't need to be a @code{postmaster} entry in the
16642@code{postmaster} mail to @code{bob} (which subsequently would deliver mail 17336@code{postmaster} mail to @code{bob} (which subsequently would deliver mail
16643to @code{bob@@example.com} and @code{bob@@example2.com}). 17337to @code{bob@@example.com} and @code{bob@@example2.com}).
16644 17338
17339@subsubheading GNU Mailutils IMAP4 Daemon
17340@cindex GNU Mailutils IMAP4 Daemon
17341
17342@deffn {Scheme-Variable} imap4d-service-type
17343This is the type of the GNU Mailutils IMAP4 Daemon (@pxref{imap4d,,,
17344mailutils, GNU Mailutils Manual}), whose value should be an
17345@code{imap4d-configuration} object as in this example:
17346
17347@example
17348(service imap4d-service-type
17349 (imap4d-configuration
17350 (config-file (local-file "imap4d.conf"))))
17351@end example
17352@end deffn
17353
17354@deftp {Datentyp} imap4d-configuration
17355Datentyp, der die Konfiguration von @command{imap4d} repräsentiert.
17356
17357@table @asis
17358@item @code{package} (Vorgabe: @code{mailutils})
17359The package that provides @command{imap4d}.
17360
17361@item @code{config-file} (Vorgabe: @code{%default-imap4d-config-file})
17362File-like object of the configuration file to use, by default it will listen
17363on TCP port 143 of @code{localhost}. @xref{Conf-imap4d,,, mailutils, GNU
17364Mailutils Manual}, for details.
17365
17366@end table
17367@end deftp
17368
16645@node Kurznachrichtendienste 17369@node Kurznachrichtendienste
16646@subsection Kurznachrichtendienste 17370@subsection Kurznachrichtendienste
16647 17371
@@ -16899,8 +17623,8 @@ information about using the hashed backend. See also
16899 17623
16900@deftypevr {@code{prosody-configuration} parameter} maybe-string log 17624@deftypevr {@code{prosody-configuration} parameter} maybe-string log
16901Set logging options. Advanced logging configuration is not yet supported by 17625Set logging options. Advanced logging configuration is not yet supported by
16902the Guix Prosody Service. See @url{https://prosody.im/doc/logging}. 17626the Prosody service. See @url{https://prosody.im/doc/logging}. Defaults to
16903Defaults to @samp{"*syslog"}. 17627@samp{"*syslog"}.
16904@end deftypevr 17628@end deftypevr
16905 17629
16906@deftypevr {@code{prosody-configuration} parameter} file-name pidfile 17630@deftypevr {@code{prosody-configuration} parameter} file-name pidfile
@@ -17123,30 +17847,30 @@ Configuration snippet added as-is to the BitlBee configuration file.
17123@end table 17847@end table
17124@end deftp 17848@end deftp
17125 17849
17126@subsubheading Quassel Service 17850@subsubheading Quassel-Dienst
17127 17851
17128@cindex IRC (Internet Relay Chat) 17852@cindex IRC (Internet Relay Chat)
17129@url{https://quassel-irc.org/,Quassel} is a distributed IRC client, meaning 17853@url{https://quassel-irc.org/,Quassel} is a distributed IRC client, meaning
17130that one or more clients can attach to and detach from the central core. 17854that one or more clients can attach to and detach from the central core.
17131 17855
17132@defvr {Scheme Variable} quassel-service-type 17856@defvr {Scheme-Variable} quassel-service-type
17133This is the service type for the @url{https://quassel-irc.org/,Quassel} IRC 17857This is the service type for the @url{https://quassel-irc.org/,Quassel} IRC
17134backend daemon. Its value is a @code{quassel-configuration} (see below). 17858backend daemon. Its value is a @code{quassel-configuration} (see below).
17135@end defvr 17859@end defvr
17136 17860
17137@deftp {Data Type} quassel-configuration 17861@deftp {Datentyp} quassel-configuration
17138This is the configuration for Quassel, with the following fields: 17862This is the configuration for Quassel, with the following fields:
17139 17863
17140@table @asis 17864@table @asis
17141@item @code{quassel} (default: @code{quassel}) 17865@item @code{quassel} (Vorgabe: @code{quassel})
17142The Quassel package to use. 17866Das zu verwendende Quassel-Paket.
17143 17867
17144@item @code{interface} (default: @code{"::,0.0.0.0"}) 17868@item @code{interface} (Vorgabe: @code{"::,0.0.0.0"})
17145@item @code{port} (default: @code{4242}) 17869@item @code{port} (Vorgabe: @code{4242})
17146Listen on the network interface(s) corresponding to the IPv4 or IPv6 17870Listen on the network interface(s) corresponding to the IPv4 or IPv6
17147interfaces specified in the comma delimited @var{interface}, on @var{port}. 17871interfaces specified in the comma delimited @var{interface}, on @var{port}.
17148 17872
17149@item @code{loglevel} (default: @code{"Info"}) 17873@item @code{loglevel} (Vorgabe: @code{"Info"})
17150The level of logging desired. Accepted values are Debug, Info, Warning and 17874The level of logging desired. Accepted values are Debug, Info, Warning and
17151Error. 17875Error.
17152@end table 17876@end table
@@ -17544,7 +18268,7 @@ Bind the web interface to the specified address.
17544@end table 18268@end table
17545@end deftp 18269@end deftp
17546 18270
17547@subsubheading Zabbix server 18271@subsubheading Zabbix-Server
17548@cindex zabbix zabbix-server 18272@cindex zabbix zabbix-server
17549Zabbix provides monitoring metrics, among others network utilization, CPU 18273Zabbix provides monitoring metrics, among others network utilization, CPU
17550load and disk space consumption: 18274load and disk space consumption:
@@ -17565,7 +18289,7 @@ load and disk space consumption:
17565Available @code{zabbix-server-configuration} fields are: 18289Available @code{zabbix-server-configuration} fields are:
17566 18290
17567@deftypevr {@code{zabbix-server-configuration} parameter} package zabbix-server 18291@deftypevr {@code{zabbix-server-configuration} parameter} package zabbix-server
17568The zabbix-server package. 18292Das zabbix-server-Paket.
17569 18293
17570@end deftypevr 18294@end deftypevr
17571 18295
@@ -17584,21 +18308,21 @@ Defaults to @samp{"zabbix"}.
17584@end deftypevr 18308@end deftypevr
17585 18309
17586@deftypevr {@code{zabbix-server-configuration} parameter} string db-host 18310@deftypevr {@code{zabbix-server-configuration} parameter} string db-host
17587Database host name. 18311Rechnername der Datenbank.
17588 18312
17589Defaults to @samp{"127.0.0.1"}. 18313Defaults to @samp{"127.0.0.1"}.
17590 18314
17591@end deftypevr 18315@end deftypevr
17592 18316
17593@deftypevr {@code{zabbix-server-configuration} parameter} string db-name 18317@deftypevr {@code{zabbix-server-configuration} parameter} string db-name
17594Database name. 18318Datenbankname.
17595 18319
17596Defaults to @samp{"zabbix"}. 18320Defaults to @samp{"zabbix"}.
17597 18321
17598@end deftypevr 18322@end deftypevr
17599 18323
17600@deftypevr {@code{zabbix-server-configuration} parameter} string db-user 18324@deftypevr {@code{zabbix-server-configuration} parameter} string db-user
17601Database user. 18325Benutzerkonto der Datenbank.
17602 18326
17603Defaults to @samp{"zabbix"}. 18327Defaults to @samp{"zabbix"}.
17604 18328
@@ -17613,7 +18337,7 @@ Defaults to @samp{""}.
17613@end deftypevr 18337@end deftypevr
17614 18338
17615@deftypevr {@code{zabbix-server-configuration} parameter} number db-port 18339@deftypevr {@code{zabbix-server-configuration} parameter} number db-port
17616Database port. 18340Datenbank-Portnummer.
17617 18341
17618Defaults to @samp{5432}. 18342Defaults to @samp{5432}.
17619 18343
@@ -17646,7 +18370,7 @@ Defaults to @samp{"/var/log/zabbix/server.log"}.
17646@end deftypevr 18370@end deftypevr
17647 18371
17648@deftypevr {@code{zabbix-server-configuration} parameter} string pid-file 18372@deftypevr {@code{zabbix-server-configuration} parameter} string pid-file
17649Name of PID file. 18373Name der PID-Datei.
17650 18374
17651Defaults to @samp{"/var/run/zabbix/zabbix_server.pid"}. 18375Defaults to @samp{"/var/run/zabbix/zabbix_server.pid"}.
17652 18376
@@ -17694,7 +18418,7 @@ Zabbix agent gathers information for Zabbix server.
17694Available @code{zabbix-agent-configuration} fields are: 18418Available @code{zabbix-agent-configuration} fields are:
17695 18419
17696@deftypevr {@code{zabbix-agent-configuration} parameter} package zabbix-agent 18420@deftypevr {@code{zabbix-agent-configuration} parameter} package zabbix-agent
17697The zabbix-agent package. 18421Das zabbix-agent-Paket.
17698 18422
17699@end deftypevr 18423@end deftypevr
17700 18424
@@ -17747,7 +18471,7 @@ Defaults to @samp{"/var/log/zabbix/agent.log"}.
17747@end deftypevr 18471@end deftypevr
17748 18472
17749@deftypevr {@code{zabbix-agent-configuration} parameter} string pid-file 18473@deftypevr {@code{zabbix-agent-configuration} parameter} string pid-file
17750Name of PID file. 18474Name der PID-Datei.
17751 18475
17752Defaults to @samp{"/var/run/zabbix/zabbix_agent.pid"}. 18476Defaults to @samp{"/var/run/zabbix/zabbix_agent.pid"}.
17753 18477
@@ -17803,28 +18527,28 @@ NGINX configuration.
17803@end deftypevr 18527@end deftypevr
17804 18528
17805@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-host 18529@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-host
17806Database host name. 18530Rechnername der Datenbank.
17807 18531
17808Defaults to @samp{"localhost"}. 18532Defaults to @samp{"localhost"}.
17809 18533
17810@end deftypevr 18534@end deftypevr
17811 18535
17812@deftypevr {@code{zabbix-front-end-configuration} parameter} number db-port 18536@deftypevr {@code{zabbix-front-end-configuration} parameter} number db-port
17813Database port. 18537Datenbank-Portnummer.
17814 18538
17815Defaults to @samp{5432}. 18539Defaults to @samp{5432}.
17816 18540
17817@end deftypevr 18541@end deftypevr
17818 18542
17819@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-name 18543@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-name
17820Database name. 18544Datenbankname.
17821 18545
17822Defaults to @samp{"zabbix"}. 18546Defaults to @samp{"zabbix"}.
17823 18547
17824@end deftypevr 18548@end deftypevr
17825 18549
17826@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-user 18550@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-user
17827Database user. 18551Benutzerkonto der Datenbank.
17828 18552
17829Defaults to @samp{"zabbix"}. 18553Defaults to @samp{"zabbix"}.
17830 18554
@@ -17985,23 +18709,497 @@ authenticate.
17985@end deftp 18709@end deftp
17986 18710
17987 18711
18712@node LDAP-Dienste
18713@subsection LDAP-Dienste
18714@cindex LDAP
18715@cindex nslcd, LDAP service
18716
18717The @code{(gnu services authentication)} module provides the
18718@code{nslcd-service-type}, which can be used to authenticate against an LDAP
18719server. In addition to configuring the service itself, you may want to add
18720@code{ldap} as a name service to the Name Service Switch. @xref{Name Service Switch} for detailed information.
18721
18722Here is a simple operating system declaration with a default configuration
18723of the @code{nslcd-service-type} and a Name Service Switch configuration
18724that consults the @code{ldap} name service last:
18725
18726@example
18727(use-service-modules authentication)
18728(use-modules (gnu system nss))
18729...
18730(operating-system
18731 ...
18732 (services
18733 (cons*
18734 (service nslcd-service-type)
18735 (service dhcp-client-service-type)
18736 %base-services))
18737 (name-service-switch
18738 (let ((services (list (name-service (name "db"))
18739 (name-service (name "files"))
18740 (name-service (name "ldap")))))
18741 (name-service-switch
18742 (inherit %mdns-host-lookup-nss)
18743 (password services)
18744 (shadow services)
18745 (group services)
18746 (netgroup services)
18747 (gshadow services)))))
18748@end example
18749
18750@c %start of generated documentation for nslcd-configuration
18751
18752Available @code{nslcd-configuration} fields are:
18753
18754@deftypevr {@code{nslcd-configuration} parameter} package nss-pam-ldapd
18755Das @code{nss-pam-ldapd}-Paket, was benutzt werden soll.
18756
18757@end deftypevr
18758
18759@deftypevr {@code{nslcd-configuration} parameter} maybe-number threads
18760The number of threads to start that can handle requests and perform LDAP
18761queries. Each thread opens a separate connection to the LDAP server. The
18762default is to start 5 threads.
18763
18764Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
18765
18766@end deftypevr
18767
18768@deftypevr {@code{nslcd-configuration} parameter} string uid
18769This specifies the user id with which the daemon should be run.
18770
18771Defaults to @samp{"nslcd"}.
18772
18773@end deftypevr
18774
18775@deftypevr {@code{nslcd-configuration} parameter} string gid
18776This specifies the group id with which the daemon should be run.
18777
18778Defaults to @samp{"nslcd"}.
18779
18780@end deftypevr
18781
18782@deftypevr {@code{nslcd-configuration} parameter} log-option log
18783This option controls the way logging is done via a list containing SCHEME
18784and LEVEL. The SCHEME argument may either be the symbols "none" or
18785"syslog", or an absolute file name. The LEVEL argument is optional and
18786specifies the log level. The log level may be one of the following symbols:
18787"crit", "error", "warning", "notice", "info" or "debug". All messages with
18788the specified log level or higher are logged.
18789
18790Defaults to @samp{("/var/log/nslcd" info)}.
18791
18792@end deftypevr
18793
18794@deftypevr {@code{nslcd-configuration} parameter} list uri
18795The list of LDAP server URIs. Normally, only the first server will be used
18796with the following servers as fall-back.
18797
18798Defaults to @samp{("ldap://localhost:389/")}.
18799
18800@end deftypevr
18801
18802@deftypevr {@code{nslcd-configuration} parameter} maybe-string ldap-version
18803The version of the LDAP protocol to use. The default is to use the maximum
18804version supported by the LDAP library.
18805
18806Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
18807
18808@end deftypevr
18809
18810@deftypevr {@code{nslcd-configuration} parameter} maybe-string binddn
18811Specifies the distinguished name with which to bind to the directory server
18812for lookups. The default is to bind anonymously.
18813
18814Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
18815
18816@end deftypevr
18817
18818@deftypevr {@code{nslcd-configuration} parameter} maybe-string bindpw
18819Specifies the credentials with which to bind. This option is only
18820applicable when used with binddn.
18821
18822Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
18823
18824@end deftypevr
18825
18826@deftypevr {@code{nslcd-configuration} parameter} maybe-string rootpwmoddn
18827Specifies the distinguished name to use when the root user tries to modify a
18828user's password using the PAM module.
18829
18830Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
18831
18832@end deftypevr
18833
18834@deftypevr {@code{nslcd-configuration} parameter} maybe-string rootpwmodpw
18835Specifies the credentials with which to bind if the root user tries to
18836change a user's password. This option is only applicable when used with
18837rootpwmoddn
18838
18839Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
18840
18841@end deftypevr
18842
18843@deftypevr {@code{nslcd-configuration} parameter} maybe-string sasl-mech
18844Specifies the SASL mechanism to be used when performing SASL authentication.
18845
18846Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
18847
18848@end deftypevr
18849
18850@deftypevr {@code{nslcd-configuration} parameter} maybe-string sasl-realm
18851Specifies the SASL realm to be used when performing SASL authentication.
18852
18853Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
18854
18855@end deftypevr
18856
18857@deftypevr {@code{nslcd-configuration} parameter} maybe-string sasl-authcid
18858Specifies the authentication identity to be used when performing SASL
18859authentication.
18860
18861Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
18862
18863@end deftypevr
18864
18865@deftypevr {@code{nslcd-configuration} parameter} maybe-string sasl-authzid
18866Specifies the authorization identity to be used when performing SASL
18867authentication.
18868
18869Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
18870
18871@end deftypevr
18872
18873@deftypevr {@code{nslcd-configuration} parameter} maybe-boolean sasl-canonicalize?
18874Determines whether the LDAP server host name should be canonicalised. If
18875this is enabled the LDAP library will do a reverse host name lookup. By
18876default, it is left up to the LDAP library whether this check is performed
18877or not.
18878
18879Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
18880
18881@end deftypevr
18882
18883@deftypevr {@code{nslcd-configuration} parameter} maybe-string krb5-ccname
18884Set the name for the GSS-API Kerberos credentials cache.
18885
18886Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
18887
18888@end deftypevr
18889
18890@deftypevr {@code{nslcd-configuration} parameter} string base
18891Basis für die Verzeichnissuche.
18892
18893Vorgegeben ist @samp{"dc=example,dc=com"}.
18894
18895@end deftypevr
18896
18897@deftypevr {@code{nslcd-configuration} parameter} scope-option scope
18898Specifies the search scope (subtree, onelevel, base or children). The
18899default scope is subtree; base scope is almost never useful for name service
18900lookups; children scope is not supported on all servers.
18901
18902Defaults to @samp{(subtree)}.
18903
18904@end deftypevr
18905
18906@deftypevr {@code{nslcd-configuration} parameter} maybe-deref-option deref
18907Specifies the policy for dereferencing aliases. The default policy is to
18908never dereference aliases.
18909
18910Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
18911
18912@end deftypevr
18913
18914@deftypevr {@code{nslcd-configuration} parameter} maybe-boolean referrals
18915Specifies whether automatic referral chasing should be enabled. The default
18916behaviour is to chase referrals.
18917
18918Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
18919
18920@end deftypevr
18921
18922@deftypevr {@code{nslcd-configuration} parameter} list-of-map-entries maps
18923This option allows for custom attributes to be looked up instead of the
18924default RFC 2307 attributes. It is a list of maps, each consisting of the
18925name of a map, the RFC 2307 attribute to match and the query expression for
18926the attribute as it is available in the directory.
18927
18928Defaults to @samp{()}.
18929
18930@end deftypevr
18931
18932@deftypevr {@code{nslcd-configuration} parameter} list-of-filter-entries filters
18933A list of filters consisting of the name of a map to which the filter
18934applies and an LDAP search filter expression.
18935
18936Defaults to @samp{()}.
18937
18938@end deftypevr
18939
18940@deftypevr {@code{nslcd-configuration} parameter} maybe-number bind-timelimit
18941Specifies the time limit in seconds to use when connecting to the directory
18942server. The default value is 10 seconds.
18943
18944Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
18945
18946@end deftypevr
18947
18948@deftypevr {@code{nslcd-configuration} parameter} maybe-number timelimit
18949Specifies the time limit (in seconds) to wait for a response from the LDAP
18950server. A value of zero, which is the default, is to wait indefinitely for
18951searches to be completed.
18952
18953Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
18954
18955@end deftypevr
18956
18957@deftypevr {@code{nslcd-configuration} parameter} maybe-number idle-timelimit
18958Specifies the period if inactivity (in seconds) after which the con‐ nection
18959to the LDAP server will be closed. The default is not to time out
18960connections.
18961
18962Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
18963
18964@end deftypevr
18965
18966@deftypevr {@code{nslcd-configuration} parameter} maybe-number reconnect-sleeptime
18967Specifies the number of seconds to sleep when connecting to all LDAP servers
18968fails. By default one second is waited between the first failure and the
18969first retry.
18970
18971Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
18972
18973@end deftypevr
18974
18975@deftypevr {@code{nslcd-configuration} parameter} maybe-number reconnect-retrytime
18976Specifies the time after which the LDAP server is considered to be
18977permanently unavailable. Once this time is reached retries will be done
18978only once per this time period. The default value is 10 seconds.
18979
18980Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
18981
18982@end deftypevr
18983
18984@deftypevr {@code{nslcd-configuration} parameter} maybe-ssl-option ssl
18985Specifies whether to use SSL/TLS or not (the default is not to). If
18986'start-tls is specified then StartTLS is used rather than raw LDAP over SSL.
18987
18988Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
18989
18990@end deftypevr
18991
18992@deftypevr {@code{nslcd-configuration} parameter} maybe-tls-reqcert-option tls-reqcert
18993Specifies what checks to perform on a server-supplied certificate. The
18994meaning of the values is described in the ldap.conf(5) manual page.
18995
18996Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
18997
18998@end deftypevr
18999
19000@deftypevr {@code{nslcd-configuration} parameter} maybe-string tls-cacertdir
19001Specifies the directory containing X.509 certificates for peer authen‐
19002tication. This parameter is ignored when using GnuTLS.
19003
19004Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
19005
19006@end deftypevr
19007
19008@deftypevr {@code{nslcd-configuration} parameter} maybe-string tls-cacertfile
19009Specifies the path to the X.509 certificate for peer authentication.
19010
19011Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
19012
19013@end deftypevr
19014
19015@deftypevr {@code{nslcd-configuration} parameter} maybe-string tls-randfile
19016Specifies the path to an entropy source. This parameter is ignored when
19017using GnuTLS.
19018
19019Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
19020
19021@end deftypevr
19022
19023@deftypevr {@code{nslcd-configuration} parameter} maybe-string tls-ciphers
19024Specifies the ciphers to use for TLS as a string.
19025
19026Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
19027
19028@end deftypevr
19029
19030@deftypevr {@code{nslcd-configuration} parameter} maybe-string tls-cert
19031Specifies the path to the file containing the local certificate for client
19032TLS authentication.
19033
19034Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
19035
19036@end deftypevr
19037
19038@deftypevr {@code{nslcd-configuration} parameter} maybe-string tls-key
19039Specifies the path to the file containing the private key for client TLS
19040authentication.
19041
19042Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
19043
19044@end deftypevr
19045
19046@deftypevr {@code{nslcd-configuration} parameter} maybe-number pagesize
19047Set this to a number greater than 0 to request paged results from the LDAP
19048server in accordance with RFC2696. The default (0) is to not request paged
19049results.
19050
19051Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
19052
19053@end deftypevr
19054
19055@deftypevr {@code{nslcd-configuration} parameter} maybe-ignore-users-option nss-initgroups-ignoreusers
19056This option prevents group membership lookups through LDAP for the specified
19057users. Alternatively, the value 'all-local may be used. With that value
19058nslcd builds a full list of non-LDAP users on startup.
19059
19060Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
19061
19062@end deftypevr
19063
19064@deftypevr {@code{nslcd-configuration} parameter} maybe-number nss-min-uid
19065This option ensures that LDAP users with a numeric user id lower than the
19066specified value are ignored.
19067
19068Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
19069
19070@end deftypevr
19071
19072@deftypevr {@code{nslcd-configuration} parameter} maybe-number nss-uid-offset
19073This option specifies an offset that is added to all LDAP numeric user ids.
19074This can be used to avoid user id collisions with local users.
19075
19076Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
19077
19078@end deftypevr
19079
19080@deftypevr {@code{nslcd-configuration} parameter} maybe-number nss-gid-offset
19081This option specifies an offset that is added to all LDAP numeric group
19082ids. This can be used to avoid user id collisions with local groups.
19083
19084Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
19085
19086@end deftypevr
19087
19088@deftypevr {@code{nslcd-configuration} parameter} maybe-boolean nss-nested-groups
19089If this option is set, the member attribute of a group may point to another
19090group. Members of nested groups are also returned in the higher level group
19091and parent groups are returned when finding groups for a specific user. The
19092default is not to perform extra searches for nested groups.
19093
19094Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
19095
19096@end deftypevr
19097
19098@deftypevr {@code{nslcd-configuration} parameter} maybe-boolean nss-getgrent-skipmembers
19099If this option is set, the group member list is not retrieved when looking
19100up groups. Lookups for finding which groups a user belongs to will remain
19101functional so the user will likely still get the correct groups assigned on
19102login.
19103
19104Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
19105
19106@end deftypevr
19107
19108@deftypevr {@code{nslcd-configuration} parameter} maybe-boolean nss-disable-enumeration
19109If this option is set, functions which cause all user/group entries to be
19110loaded from the directory will not succeed in doing so. This can
19111dramatically reduce LDAP server load in situations where there are a great
19112number of users and/or groups. This option is not recommended for most
19113configurations.
19114
19115Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
19116
19117@end deftypevr
19118
19119@deftypevr {@code{nslcd-configuration} parameter} maybe-string validnames
19120This option can be used to specify how user and group names are verified
19121within the system. This pattern is used to check all user and group names
19122that are requested and returned from LDAP.
19123
19124Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
19125
19126@end deftypevr
19127
19128@deftypevr {@code{nslcd-configuration} parameter} maybe-boolean ignorecase
19129This specifies whether or not to perform searches using case-insensitive
19130matching. Enabling this could open up the system to authorization bypass
19131vulnerabilities and introduce nscd cache poisoning vulnerabilities which
19132allow denial of service.
19133
19134Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
19135
19136@end deftypevr
19137
19138@deftypevr {@code{nslcd-configuration} parameter} maybe-boolean pam-authc-ppolicy
19139This option specifies whether password policy controls are requested and
19140handled from the LDAP server when performing user authentication.
19141
19142Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
19143
19144@end deftypevr
19145
19146@deftypevr {@code{nslcd-configuration} parameter} maybe-string pam-authc-search
19147By default nslcd performs an LDAP search with the user's credentials after
19148BIND (authentication) to ensure that the BIND operation was successful. The
19149default search is a simple check to see if the user's DN exists. A search
19150filter can be specified that will be used instead. It should return at
19151least one entry.
19152
19153Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
19154
19155@end deftypevr
19156
19157@deftypevr {@code{nslcd-configuration} parameter} maybe-string pam-authz-search
19158This option allows flexible fine tuning of the authorisation check that
19159should be performed. The search filter specified is executed and if any
19160entries match, access is granted, otherwise access is denied.
19161
19162Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
19163
19164@end deftypevr
19165
19166@deftypevr {@code{nslcd-configuration} parameter} maybe-string pam-password-prohibit-message
19167If this option is set password modification using pam_ldap will be denied
19168and the specified message will be presented to the user instead. The
19169message can be used to direct the user to an alternative means of changing
19170their password.
19171
19172Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
19173
19174@end deftypevr
19175
19176@deftypevr {@code{nslcd-configuration} parameter} list pam-services
19177List of pam service names for which LDAP authentication should suffice.
19178
19179Defaults to @samp{()}.
19180
19181@end deftypevr
19182
19183@c %end of generated documentation for nslcd-configuration
19184
19185
17988@node Web-Dienste 19186@node Web-Dienste
17989@subsection Web-Dienste 19187@subsection Web-Dienste
17990 19188
17991@cindex web 19189@cindex Web
17992@cindex www 19190@cindex WWW
17993@cindex HTTP 19191@cindex HTTP
17994The @code{(gnu services web)} module provides the Apache HTTP Server, the 19192Das Modul @code{(gnu services web)} stellt den Apache-HTTP-Server, den
17995nginx web server, and also a fastcgi wrapper daemon. 19193nginx-Webserver und auch einen fastcgi-Wrapperdienst bereit.
17996 19194
17997@subsubheading Apache HTTP Server 19195@subsubheading Apache-HTTP-Server
17998 19196
17999@deffn {Scheme Variable} httpd-service-type 19197@deffn {Scheme-Variable} httpd-service-type
18000Service type for the @uref{https://httpd.apache.org/,Apache HTTP} server 19198Diensttyp für den @uref{https://httpd.apache.org/,Apache-HTTP-Server}
18001(@dfn{httpd}). The value for this service type is a 19199(@dfn{httpd}). Der Wert dieses Diensttyps ist ein
18002@code{httpd-configuration} record. 19200@code{httpd-configuration}-Verbund.
18003 19201
18004A simple example configuration is given below. 19202Es folgt ein einfaches Beispiel der Konfiguration.
18005 19203
18006@example 19204@example
18007(service httpd-service-type 19205(service httpd-service-type
@@ -18012,8 +19210,8 @@ A simple example configuration is given below.
18012 (document-root "/srv/http/www.example.com"))))) 19210 (document-root "/srv/http/www.example.com")))))
18013@end example 19211@end example
18014 19212
18015Other services can also extend the @code{httpd-service-type} to add to the 19213Andere Dienstennen den @code{httpd-service-type} auch erweitern, um etwas
18016configuration. 19214zur Konfiguration hinzuzufügen.
18017 19215
18018@example 19216@example
18019(simple-service 'my-extra-server httpd-service-type 19217(simple-service 'my-extra-server httpd-service-type
@@ -18026,58 +19224,61 @@ configuration.
18026@end example 19224@end example
18027@end deffn 19225@end deffn
18028 19226
18029The details for the @code{httpd-configuration}, @code{httpd-module}, 19227Nun folgt eine Beschreibung der Verbundstypen @code{httpd-configuration},
18030@code{httpd-config-file} and @code{httpd-virtualhost} record types are given 19228@code{httpd-module}, @code{httpd-config-file} und @code{httpd-virtualhost}.
18031below.
18032 19229
18033@deffn {Data Type} httpd-configuration 19230@deffn {Datentyp} httpd-configuration
18034This data type represents the configuration for the httpd service. 19231Dieser Datentyp repräsentiert die Konfiguration des httpd-Dienstes.
18035 19232
18036@table @asis 19233@table @asis
18037@item @code{package} (default: @code{httpd}) 19234@item @code{package} (Vorgabe: @code{httpd})
18038The httpd package to use. 19235Das zu benutzende httpd-Paket.
18039 19236
18040@item @code{pid-file} (default: @code{"/var/run/httpd"}) 19237@item @code{pid-file} (Vorgabe: @code{"/var/run/httpd"})
18041The pid file used by the shepherd-service. 19238Die vom Shepherd-Dienst benutzte PID-Datei.
18042 19239
18043@item @code{config} (default: @code{(httpd-config-file)}) 19240@item @code{config} (Vorgabe: @code{(httpd-config-file)})
18044The configuration file to use with the httpd service. The default value is a 19241Die vom httpd-Dienst zu benutzende Konfigurationsdatei. Vorgegeben ist ein
18045@code{httpd-config-file} record, but this can also be a different 19242@code{httpd-config-file}-Verbundsobjekt, aber als Wert kann auch ein anderer
18046G-expression that generates a file, for example a @code{plain-file}. A file 19243G-Ausdruck benutzt werden, der eine Datei erzeugt, zum Beispiel ein
18047outside of the store can also be specified through a string. 19244@code{plain-file}. Es kann auch eine Datei außerhalb des Stores mit einer
19245Zeichenkette angegeben werden.
18048 19246
18049@end table 19247@end table
18050@end deffn 19248@end deffn
18051 19249
18052@deffn {Data Type} httpd-module 19250@deffn {Datentyp} httpd-module
18053This data type represents a module for the httpd service. 19251Dieser Datentyp steht für ein Modul des httpd-Dienstes.
18054 19252
18055@table @asis 19253@table @asis
18056@item @code{name} 19254@item @code{name}
18057The name of the module. 19255Der Name des Moduls.
18058 19256
18059@item @code{file} 19257@item @code{file}
18060The file for the module. This can be relative to the httpd package being 19258Die Datei, in der das Modul steht. Sie kann relativ zum benutzten
18061used, the absolute location of a file, or a G-expression for a file within 19259httpd-Paket oder als absoluter Pfad einer Datei oder als ein G-Ausdruck für
18062the store, for example @code{(file-append mod-wsgi "/modules/mod_wsgi.so")}. 19260eine Datei im Store angegeben werden, zum Beispiel @code{(file-append
19261mod-wsgi "/modules/mod_wsgi.so")}.
18063 19262
18064@end table 19263@end table
18065@end deffn 19264@end deffn
18066 19265
18067@defvr {Scheme Variable} %default-httpd-modules 19266@defvr {Scheme-Variable} %default-httpd-modules
18068A default list of @code{httpd-module} objects. 19267Eine vorgegebene Liste von @code{httpd-module}-Objekten.
18069@end defvr 19268@end defvr
18070 19269
18071@deffn {Data Type} httpd-config-file 19270@deffn {Datentyp} httpd-config-file
18072This data type represents a configuration file for the httpd service. 19271Dieser Datentyp repräsentiert eine Konfigurationsdatei für den httpd-Dienst.
18073 19272
18074@table @asis 19273@table @asis
18075@item @code{modules} (default: @code{%default-httpd-modules}) 19274@item @code{modules} (Vorgabe: @code{%default-httpd-modules})
18076The modules to load. Additional modules can be added here, or loaded by 19275Welche Module geladen werden sollen. Zusätzliche Module können hier
18077additional configuration. 19276eingetragen werden oder durch eine zusätzliche Konfigurationsangabe geladen
19277werden.
18078 19278
18079For example, in order to handle requests for PHP files, you can use Apache’s 19279Um zum Beispiel Anfragen nach PHP-Dateien zu behandeln, können Sie das Modul
18080@code{mod_proxy_fcgi} module along with @code{php-fpm-service-type}: 19280@code{mod_proxy_fcgi} von Apache zusammen mit @code{php-fpm-service-type}
19281benutzen:
18081 19282
18082@example 19283@example
18083(service httpd-service-type 19284(service httpd-service-type
@@ -18102,54 +19303,64 @@ For example, in order to handle requests for PHP files, you can use Apache’s
18102 (socket-group "httpd"))) 19303 (socket-group "httpd")))
18103@end example 19304@end example
18104 19305
18105@item @code{server-root} (default: @code{httpd}) 19306@item @code{server-root} (Vorgabe: @code{httpd})
18106The @code{ServerRoot} in the configuration file, defaults to the httpd 19307Die @code{ServerRoot} in der Konfigurationsdatei, vorgegeben ist das
18107package. Directives including @code{Include} and @code{LoadModule} are taken 19308httpd-Paket. Direktiven wie @code{Include} und @code{LoadModule} werden
18108as relative to the server root. 19309relativ zur ServerRoot interpretiert.
18109 19310
18110@item @code{server-name} (default: @code{#f}) 19311@item @code{server-name} (Vorgabe: @code{#f})
18111The @code{ServerName} in the configuration file, used to specify the request 19312Der @code{ServerName} in der Konfigurationsdatei, mit dem das Anfrageschema
18112scheme, hostname and port that the server uses to identify itself. 19313(Request Scheme), der Rechnername (Hostname) und Port angegeben wird, mit
19314denen sich der Server identifiziert.
18113 19315
18114This doesn't need to be set in the server config, and can be specifyed in 19316Es muss nicht als Teil der Server-Konfiguration festgelegt werden, sondern
18115virtual hosts. The default is @code{#f} to not specify a @code{ServerName}. 19317kann auch in virtuellen Rechnern (Virtual Hosts) festgelegt
19318werden. Vorgegeben ist @code{#f}, wodurch kein @code{ServerName} festgelegt
19319wird.
18116 19320
18117@item @code{document-root} (default: @code{"/srv/http"}) 19321@item @code{document-root} (Vorgabe: @code{"/srv/http"})
18118The @code{DocumentRoot} from which files will be served. 19322Das @code{DocumentRoot}-Verzeichnis, in dem sich die Dateien befinden, die
19323man vom Server abrufen kann.
18119 19324
18120@item @code{listen} (default: @code{'("80")}) 19325@item @code{listen} (Vorgabe: @code{'("80")})
18121The list of values for the @code{Listen} directives in the config file. The 19326Die Liste der Werte für die @code{Listen}-Direktive in der
18122value should be a list of strings, when each string can specify the port 19327Konfigurationsdatei. Als Wert sollte eine Liste von Zeichenketten angegeben
18123number to listen on, and optionally the IP address and protocol to use. 19328werden, die jeweils die Portnummer, auf der gelauscht wird, und optional
19329auch die zu benutzende IP-Adresse und das Protokoll angeben.
18124 19330
18125@item @code{pid-file} (default: @code{"/var/run/httpd"}) 19331@item @code{pid-file} (Vorgabe: @code{"/var/run/httpd"})
18126The @code{PidFile} to use. This should match the @code{pid-file} set in the 19332Hiermit wird die PID-Datei als @code{PidFile}-Direktive angegeben. Der Wert
18127@code{httpd-configuration} so that the Shepherd service is configured 19333sollte mit der @code{pid-file}-Datei in der @code{httpd-configuration}
18128correctly. 19334übereinstimmen, damit der Shepherd-Dienst richtig konfiguriert ist.
18129 19335
18130@item @code{error-log} (default: @code{"/var/log/httpd/error_log"}) 19336@item @code{error-log} (Vorgabe: @code{"/var/log/httpd/error_log"})
18131The @code{ErrorLog} to which the server will log errors. 19337Der Ort, an den der Server mit der @code{ErrorLog}-Direktive
19338Fehlerprotokolle schreibt.
18132 19339
18133@item @code{user} (default: @code{"httpd"}) 19340@item @code{user} (Vorgabe: @code{"httpd"})
18134The @code{User} which the server will answer requests as. 19341Der Benutzer, als der der Server durch die @code{User}-Direktive Anfragen
19342beantwortet.
18135 19343
18136@item @code{group} (default: @code{"httpd"}) 19344@item @code{group} (Vorgabe: @code{"httpd"})
18137The @code{Group} which the server will answer requests as. 19345Die Gruppe, mit der der Server durch die @code{Group}-Direktive Anfragen
19346beantwortet.
18138 19347
18139@item @code{extra-config} (default: @code{(list "TypesConfig etc/httpd/mime.types")}) 19348@item @code{extra-config} (Vorgabe: @code{(list "TypesConfig etc/httpd/mime.types")})
18140A flat list of strings and G-expressions which will be added to the end of 19349Eine flache Liste von Zeichenketten und G-Ausdrücken, die am Ende der
18141the configuration file. 19350Konfigurationsdatei hinzugefügt werden.
18142 19351
18143Any values which the service is extended with will be appended to this list. 19352Alle Werte, mit denen dieser Dienst erweitert wird, werden an die Liste
19353angehängt.
18144 19354
18145@end table 19355@end table
18146@end deffn 19356@end deffn
18147 19357
18148@deffn {Data Type} httpd-virtualhost 19358@deffn {Datentyp} httpd-virtualhost
18149This data type represents a virtualhost configuration block for the httpd 19359Dieser Datentyp repräsentiert einen Konfigurationsblock für einen virtuellen
18150service. 19360Rechner (Virtual Host) des httpd-Dienstes.
18151 19361
18152These should be added to the extra-config for the httpd-service. 19362Sie sollten zur zusätzlichen Konfiguration extra-config des httpd-Dienstes
19363hinzugefügt werden.
18153 19364
18154@example 19365@example
18155(simple-service 'my-extra-server httpd-service-type 19366(simple-service 'my-extra-server httpd-service-type
@@ -18163,22 +19374,22 @@ These should be added to the extra-config for the httpd-service.
18163 19374
18164@table @asis 19375@table @asis
18165@item @code{addresses-and-ports} 19376@item @code{addresses-and-ports}
18166The addresses and ports for the @code{VirtualHost} directive. 19377Adressen und Ports für die @code{VirtualHost}-Direktive.
18167 19378
18168@item @code{contents} 19379@item @code{contents}
18169The contents of the @code{VirtualHost} directive, this should be a list of 19380Der Inhalt der @code{VirtualHost}-Direktive. Er sollte als Liste von
18170strings and G-expressions. 19381Zeichenketten und G-Ausdrücken angegeben werden.
18171 19382
18172@end table 19383@end table
18173@end deffn 19384@end deffn
18174 19385
18175@subsubheading NGINX 19386@subsubheading NGINX
18176 19387
18177@deffn {Scheme Variable} nginx-service-type 19388@deffn {Scheme-Variable} nginx-service-type
18178Service type for the @uref{https://nginx.org/,NGinx} web server. The value 19389Diensttyp für den @uref{https://nginx.org/,NGinx}-Webserver. Der Wert des
18179for this service type is a @code{<nginx-configuration>} record. 19390Dienstes ist ein @code{<nginx-configuration>}-Verbundsobjekt.
18180 19391
18181A simple example configuration is given below. 19392Es folgt ein einfaches Beispiel der Konfiguration.
18182 19393
18183@example 19394@example
18184(service nginx-service-type 19395(service nginx-service-type
@@ -18189,9 +19400,9 @@ A simple example configuration is given below.
18189 (root "/srv/http/www.example.com")))))) 19400 (root "/srv/http/www.example.com"))))))
18190@end example 19401@end example
18191 19402
18192In addition to adding server blocks to the service configuration directly, 19403Außer durch direktes Hinzufügen von Server-Blöcken zur Dienstkonfiguration
18193this service can be extended by other services to add server blocks, as in 19404kann der Dienst auch durch andere Dienste erweitert werden, um Server-Blöcke
18194this example: 19405hinzuzufügen, wie man im folgenden Beispiel sieht:
18195 19406
18196@example 19407@example
18197(simple-service 'my-extra-server nginx-service-type 19408(simple-service 'my-extra-server nginx-service-type
@@ -18201,37 +19412,42 @@ this example:
18201@end example 19412@end example
18202@end deffn 19413@end deffn
18203 19414
18204At startup, @command{nginx} has not yet read its configuration file, so it 19415Beim Starten hat @command{nginx} seine Konfigurationsdatei noch nicht
18205uses a default file to log error messages. If it fails to load its 19416gelesen und benutzt eine vorgegebene Datei, um Fehlermeldungen zu
18206configuration file, that is where error messages are logged. After the 19417protokollieren. Wenn er seine Konfigurationsdatei nicht laden kann, landen
18207configuration file is loaded, the default error log file changes as per 19418Fehlermeldungen also dort. Nachdem die Konfigurationsdatei geladen ist,
18208configuration. In our case, startup error messages can be found in 19419werden Fehlerprotokolle nach Voreinstellung in die Datei geschrieben, die in
18209@file{/var/run/nginx/logs/error.log}, and after configuration in 19420der Konfiguration angegeben ist. In unserem Fall können Sie Fehlermeldungen
18210@file{/var/log/nginx/error.log}. The second location can be changed with 19421beim Starten in @file{/var/run/nginx/logs/error.log} finden und nachdem die
18211the @var{log-directory} configuration option. 19422Konfiguration eingelesen wurde, finden Sie sie in
18212 19423@file{/var/log/nginx/error.log}. Letzterer Ort kann mit der
18213@deffn {Data Type} nginx-configuration 19424Konfigurationsoption @var{log-directory} geändert werden.
18214This data type represents the configuration for NGinx. Some configuration 19425
18215can be done through this and the other provided record types, or 19426@deffn {Datentyp} nginx-configuration
18216alternatively, a config file can be provided. 19427Dieser Datentyp repräsentiert die Konfiguration von NGinx. Ein Teil der
19428Konfiguration kann hierüber und über die anderen zu Ihrer Verfügung
19429stehenden Verbundstypen geschehen, alternativ können Sie eine
19430Konfigurationsdatei mitgeben.
18217 19431
18218@table @asis 19432@table @asis
18219@item @code{nginx} (default: @code{nginx}) 19433@item @code{nginx} (Vorgabe: @code{nginx})
18220The nginx package to use. 19434Das zu benutzende nginx-Paket.
18221 19435
18222@item @code{log-directory} (default: @code{"/var/log/nginx"}) 19436@item @code{log-directory} (Vorgabe: @code{"/var/log/nginx"})
18223The directory to which NGinx will write log files. 19437In welches Verzeichnis NGinx Protokolldateien schreiben wird.
18224 19438
18225@item @code{run-directory} (default: @code{"/var/run/nginx"}) 19439@item @code{run-directory} (Vorgabe: @code{"/var/run/nginx"})
18226The directory in which NGinx will create a pid file, and write temporary 19440In welchem Verzeichnis NGinx eine PID-Datei anlegen und temporäre Dateien
18227files. 19441ablegen wird.
18228 19442
18229@item @code{server-blocks} (default: @code{'()}) 19443@item @code{server-blocks} (Vorgabe: @code{'()})
18230A list of @dfn{server blocks} to create in the generated configuration file, 19444Eine Liste von @dfn{Server-Blöcken}, die in der erzeugten
18231the elements should be of type @code{<nginx-server-configuration>}. 19445Konfigurationsdatei stehen sollen. Die Elemente davon sollten den Typ
19446@code{<nginx-server-configuration>} haben.
18232 19447
18233The following example would setup NGinx to serve @code{www.example.com} from 19448Im folgenden Beispiel wäre NGinx so eingerichtet, dass Anfragen an
18234the @code{/srv/http/www.example.com} directory, without using HTTPS. 19449@code{www.example.com} mit Dateien aus dem Verzeichnis
19450@code{/srv/http/www.example.com} beantwortet werden, ohne HTTPS zu benutzen.
18235@example 19451@example
18236(service nginx-service-type 19452(service nginx-service-type
18237 (nginx-configuration 19453 (nginx-configuration
@@ -18241,15 +19457,17 @@ the @code{/srv/http/www.example.com} directory, without using HTTPS.
18241 (root "/srv/http/www.example.com")))))) 19457 (root "/srv/http/www.example.com"))))))
18242@end example 19458@end example
18243 19459
18244@item @code{upstream-blocks} (default: @code{'()}) 19460@item @code{upstream-blocks} (Vorgabe: @code{'()})
18245A list of @dfn{upstream blocks} to create in the generated configuration 19461Eine Liste von @dfn{Upstream-Blöcken}, die in der erzeugten
18246file, the elements should be of type @code{<nginx-upstream-configuration>}. 19462Konfigurationsdatei stehen sollen. Ihre Elemente sollten den Typ
19463@code{<nginx-upstream-configuration>} haben.
18247 19464
18248Configuring upstreams through the @code{upstream-blocks} can be useful when 19465Upstreams als @code{upstream-blocks} zu konfigurieren, kann hilfreich sein,
18249combined with @code{locations} in the @code{<nginx-server-configuration>} 19466wenn es mit @code{locations} in @code{<nginx-server-configuration>}
18250records. The following example creates a server configuration with one 19467verbunden wird. Das folgende Beispiel erzeugt eine Server-Konfiguration mit
18251location configuration, that will proxy requests to a upstream 19468einer Location-Konfiguration, bei der Anfragen als Proxy entsprechend einer
18252configuration, which will handle requests with two servers. 19469Upstream-Konfiguration weitergeleitet werden, wodurch zwei Server diese
19470beantworten können.
18253 19471
18254@example 19472@example
18255(service 19473(service
@@ -18272,133 +19490,146 @@ configuration, which will handle requests with two servers.
18272@end example 19490@end example
18273 19491
18274@item @code{file} (default: @code{#f}) 19492@item @code{file} (default: @code{#f})
18275If a configuration @var{file} is provided, this will be used, rather than 19493Wenn eine Konfigurationsdatei als @var{file} angegeben wird, dann wird diese
18276generating a configuration file from the provided @code{log-directory}, 19494benutzt und @emph{keine} Konfigurationsdatei anhand der angegebenen
18277@code{run-directory}, @code{server-blocks} and @code{upstream-blocks}. For 19495@code{log-directory}, @code{run-directory}, @code{server-blocks} und
18278proper operation, these arguments should match what is in @var{file} to 19496@code{upstream-blocks} erzeugt. Trotzdem sollten diese Argumente bei einer
18279ensure that the directories are created when the service is activated. 19497richtigen Konfiguration mit denen in der Datei @var{file} übereinstimmen,
18280 19498damit die Verzeichnisse bei Aktivierung des Dienstes erzeugt werden.
18281This can be useful if you have an existing configuration file, or it's not 19499
18282possible to do what is required through the other parts of the 19500Das kann nützlich sein, wenn Sie schon eine bestehende Konfigurationsdatei
18283nginx-configuration record. 19501haben oder das, was Sie brauchen, nicht mit anderen Teilen eines
18284 19502nginx-configuration-Verbundsobjekts umgesetzt werden kann.
18285@item @code{server-names-hash-bucket-size} (default: @code{#f}) 19503
18286Bucket size for the server names hash tables, defaults to @code{#f} to use 19504@item @code{server-names-hash-bucket-size} (Vorgabe: @code{#f})
18287the size of the processors cache line. 19505Größe der Behälter (englisch »Buckets«) für die Hashtabelle der Servernamen;
19506vorgegeben ist @code{#f}, wodurch die Größe der Cache-Lines des Prozessors
19507verwendet wird.
18288 19508
18289@item @code{server-names-hash-bucket-max-size} (default: @code{#f}) 19509@item @code{server-names-hash-bucket-max-size} (Vorgabe: @code{#f})
18290Maximum bucket size for the server names hash tables. 19510Maximale Behältergröße für die Hashtabelle der Servernamen.
18291 19511
18292@item @code{extra-content} (Vorgabe: @code{""}) 19512@item @code{extra-content} (Vorgabe: @code{""})
18293Extra content for the @code{http} block. Should be string or a string 19513Zusätzlicher Inhalt des @code{http}-Blocks. Er sollte eine Zeichenkette oder
18294valued G-expression. 19514ein zeichenkettenwertiger G-Ausdruck.
18295 19515
18296@end table 19516@end table
18297@end deffn 19517@end deffn
18298 19518
18299@deftp {Data Type} nginx-server-configuration 19519@deftp {Datentyp} nginx-server-configuration
18300Data type representing the configuration of an nginx server block. This 19520Der Datentyp, der die Konfiguration eines nginx-Serverblocks
18301type has the following parameters: 19521repräsentiert. Dieser Typ hat die folgenden Parameter:
18302 19522
18303@table @asis 19523@table @asis
18304@item @code{listen} (default: @code{'("80" "443 ssl")}) 19524@item @code{listen} (Vorgabe: @code{'("80" "443 ssl")})
18305Each @code{listen} directive sets the address and port for IP, or the path 19525Jede @code{listen}-Direktive legt Adresse und Port für eine IP fest oder
18306for a UNIX-domain socket on which the server will accept requests. Both 19526gibt einen Unix-Socket an, auf dem der Server Anfragen beantwortet. Es
18307address and port, or only address or only port can be specified. An address 19527können entweder sowohl Adresse als auch Port oder nur die Adresse oder nur
18308may also be a hostname, for example: 19528der Port angegeben werden. Als Adresse kann auch ein Rechnername
19529(»Hostname«) angegeben werden, zum Beispiel:
18309 19530
18310@example 19531@example
18311'("127.0.0.1:8000" "127.0.0.1" "8000" "*:8000" "localhost:8000") 19532'("127.0.0.1:8000" "127.0.0.1" "8000" "*:8000" "localhost:8000")
18312@end example 19533@end example
18313 19534
18314@item @code{server-name} (default: @code{(list 'default)}) 19535@item @code{server-name} (Vorgabe: @code{(list 'default)})
18315A list of server names this server represents. @code{'default} represents 19536Eine Liste von Servernamen, die dieser Server repräsentiert. @code{'default}
18316the default server for connections matching no other server. 19537repräsentiert den voreingestellten Server, der für Verbindungen verwendet
19538wird, die zu keinem anderen Server passen.
18317 19539
18318@item @code{root} (default: @code{"/srv/http"}) 19540@item @code{root} (Vorgabe: @code{"/srv/http"})
18319Root of the website nginx will serve. 19541Wurzelverzeichnis der Webpräsenz, die über nginx abgerufen werden kann.
18320 19542
18321@item @code{locations} (default: @code{'()}) 19543@item @code{locations} (Vorgabe: @code{'()})
18322A list of @dfn{nginx-location-configuration} or 19544Eine Liste von @dfn{nginx-location-configuration}- oder
18323@dfn{nginx-named-location-configuration} records to use within this server 19545@dfn{nginx-named-location-configuration}-Verbundsobjekten, die innerhalb des
18324block. 19546Serverblocks benutzt werden.
18325 19547
18326@item @code{index} (default: @code{(list "index.html")}) 19548@item @code{index} (Vorgabe: @code{(list "index.html")})
18327Index files to look for when clients ask for a directory. If it cannot be 19549Index-Dateien, mit denen Anfragen nach einem Verzeichnis beantwortet
18328found, Nginx will send the list of files in the directory. 19550werden. Wenn @emph{keine} davon gefunden wird, antwortet Nginx mit der Liste
19551der Dateien im Verzeichnis.
18329 19552
18330@item @code{try-files} (default: @code{'()}) 19553@item @code{try-files} (Vorgabe: @code{'()})
18331A list of files whose existence is checked in the specified order. 19554Eine Liste der Dateien, bei denen in der angegebenen Reihenfolge geprüft
18332@code{nginx} will use the first file it finds to process the request. 19555wird, ob sie existieren. @code{nginx} beantwortet die Anfrage mit der ersten
19556Datei, die es findet.
18333 19557
18334@item @code{ssl-certificate} (default: @code{#f}) 19558@item @code{ssl-certificate} (Vorgabe: @code{#f})
18335Where to find the certificate for secure connections. Set it to @code{#f} 19559Wo das Zertifikat für sichere Verbindungen gespeichert ist. Sie sollten es
18336if you don't have a certificate or you don't want to use HTTPS. 19560auf @code{#f} setzen, wenn Sie kein Zertifikat haben oder kein HTTPS
19561benutzen möchten.
18337 19562
18338@item @code{ssl-certificate-key} (default: @code{#f}) 19563@item @code{ssl-certificate-key} (Vorgabe: @code{#f})
18339Where to find the private key for secure connections. Set it to @code{#f} 19564Wo der private Schlüssel für sichere Verbindungen gespeichert ist. Sie
18340if you don't have a key or you don't want to use HTTPS. 19565sollten ihn auf @code{#f} setzen, wenn Sie keinen Schlüssel haben oder kein
19566HTTPS benutzen möchten.
18341 19567
18342@item @code{server-tokens?} (default: @code{#f}) 19568@item @code{server-tokens?} (Vorgabe: @code{#f})
18343Whether the server should add its configuration to response. 19569Ob der Server Informationen über seine Konfiguration bei Antworten beilegen
19570soll.
18344 19571
18345@item @code{raw-content} (default: @code{'()}) 19572@item @code{raw-content} (Vorgabe: @code{'()})
18346A list of raw lines added to the server block. 19573Eine Liste von Zeilen, die unverändert in den Serverblock eingefügt werden.
18347 19574
18348@end table 19575@end table
18349@end deftp 19576@end deftp
18350 19577
18351@deftp {Data Type} nginx-upstream-configuration 19578@deftp {Datentyp} nginx-upstream-configuration
18352Data type representing the configuration of an nginx @code{upstream} block. 19579Der Datentyp, der die Konfiguration eines nginx-@code{upstream}-Blocks
18353This type has the following parameters: 19580repräsentiert. Dieser Typ hat folgende Parameter:
18354 19581
18355@table @asis 19582@table @asis
18356@item @code{name} 19583@item @code{name}
18357Name for this group of servers. 19584Der Name dieser Servergruppe.
18358 19585
18359@item @code{servers} 19586@item @code{servers}
18360Specify the addresses of the servers in the group. The address can be 19587Gibt die Adressen der Server in der Gruppe an. Die Adresse kann als
18361specified as a IP address (e.g.@: @samp{127.0.0.1}), domain name (e.g.@: 19588IP-Adresse (z.B.@: @samp{127.0.0.1}), Domänenname (z.B.@:
18362@samp{backend1.example.com}) or a path to a UNIX socket using the prefix 19589@samp{backend1.example.com}) oder als Pfad eines Unix-Sockets mit dem
18363@samp{unix:}. For addresses using an IP address or domain name, the default 19590vorangestellten Präfix @samp{unix:} angegeben werden. Wenn Adressen eine
18364port is 80, and a different port can be specified explicitly. 19591IP-Adresse oder einen Domänennamen benutzen, ist der voreingestellte Port
1959280, aber ein abweichender Port kann auch explizit angegeben werden.
18365 19593
18366@end table 19594@end table
18367@end deftp 19595@end deftp
18368 19596
18369@deftp {Data Type} nginx-location-configuration 19597@deftp {Datentyp} nginx-location-configuration
18370Data type representing the configuration of an nginx @code{location} block. 19598Der Datentyp, der die Konfiguration eines nginx-@code{location}-Blocks
18371This type has the following parameters: 19599angibt. Der Typ hat die folgenden Parameter:
18372 19600
18373@table @asis 19601@table @asis
18374@item @code{uri} 19602@item @code{uri}
18375URI which this location block matches. 19603Die URI, die auf diesen Block passt.
18376 19604
18377@anchor{nginx-location-configuration body} 19605@anchor{nginx-location-configuration body}
18378@item @code{body} 19606@item @code{body}
18379Body of the location block, specified as a list of strings. This can contain 19607Der Rumpf des location-Blocks, der als eine Liste von Zeichenketten
18380many configuration directives. For example, to pass requests to a upstream 19608angegeben werden muss. Er kann viele Konfigurationsdirektiven enthalten, zum
18381server group defined using an @code{nginx-upstream-configuration} block, the 19609Beispiel können Anfragen an eine Upstream-Servergruppe weitergeleitet
18382following directive would be specified in the body @samp{(list "proxy_pass 19610werden, die mit einem @code{nginx-upstream-configuration}-Block angegeben
18383http://upstream-name;")}. 19611wurde, indem diese Direktive im Rumpf angegeben wird: @samp{(list
19612"proxy_pass http://upstream-name;")}.
18384 19613
18385@end table 19614@end table
18386@end deftp 19615@end deftp
18387 19616
18388@deftp {Data Type} nginx-named-location-configuration 19617@deftp {Datentyp} nginx-named-location-configuration
18389Data type representing the configuration of an nginx named location block. 19618Der Datentyp repräsentiert die Konfiguration eines mit Namen versehenen
18390Named location blocks are used for request redirection, and not used for 19619nginx-location-Blocks (»Named Location Block«). Ein mit Namen versehener
18391regular request processing. This type has the following parameters: 19620location-Block wird zur Umleitung von Anfragen benutzt und nicht für die
19621normale Anfrageverarbeitung. Dieser Typ hat die folgenden Parameter:
18392 19622
18393@table @asis 19623@table @asis
18394@item @code{name} 19624@item @code{name}
18395Name to identify this location block. 19625Der Name, mit dem dieser location-Block identifiziert wird.
18396 19626
18397@item @code{body} 19627@item @code{body}
18398@xref{nginx-location-configuration body}, as the body for named location 19628Siehe @ref{nginx-location-configuration body}, weil der Rumpf (»Body«) eines
18399blocks can be used in a similar way to the 19629mit Namen versehenen location-Blocks wie ein
18400@code{nginx-location-configuration body}. One restriction is that the body 19630@code{nginx-location-configuration body} benutzt werden kann. Eine
18401of a named location block cannot contain location blocks. 19631Einschränkung ist, dass der Rumpf eines mit Namen versehenen location-Blocks
19632keine location-Blöcke enthalten kann.
18402 19633
18403@end table 19634@end table
18404@end deftp 19635@end deftp
@@ -18503,8 +19734,8 @@ A service type for the @code{fcgiwrap} FastCGI proxy.
18503@end defvr 19734@end defvr
18504 19735
18505@deftp {Data Type} fcgiwrap-configuration 19736@deftp {Data Type} fcgiwrap-configuration
18506Data type representing the configuration of the @code{fcgiwrap} service. 19737Der Datentyp, der die Konfiguration des @code{fcgiwrap}-Dienstes
18507This type has the following parameters: 19738repräsentiert. Dieser Typ hat die folgenden Parameter:
18508@table @asis 19739@table @asis
18509@item @code{package} (default: @code{fcgiwrap}) 19740@item @code{package} (default: @code{fcgiwrap})
18510The fcgiwrap package to use. 19741The fcgiwrap package to use.
@@ -18597,7 +19828,7 @@ Determines whether php errors and warning should be sent to clients and
18597displayed in their browsers. This is useful for local php development, but 19828displayed in their browsers. This is useful for local php development, but
18598a security risk for public sites, as error messages can reveal passwords and 19829a security risk for public sites, as error messages can reveal passwords and
18599personal data. 19830personal data.
18600@item @code{timezone} (default @code{#f}) 19831@item @code{timezone} (Vorgabe: @code{#f})
18601Specifies @code{php_admin_value[date.timezone]} parameter. 19832Specifies @code{php_admin_value[date.timezone]} parameter.
18602@item @code{workers-logfile} (default @code{(string-append "/var/log/php" (version-major (package-version php)) "-fpm.www.log")}) 19833@item @code{workers-logfile} (default @code{(string-append "/var/log/php" (version-major (package-version php)) "-fpm.www.log")})
18603This file will log the @code{stderr} outputs of php worker processes. Can 19834This file will log the @code{stderr} outputs of php worker processes. Can
@@ -18674,7 +19905,7 @@ The cat avatar generator is a simple service to demonstrate the use of
18674php-fpm in @code{Nginx}. It is used to generate cat avatar from a seed, for 19905php-fpm in @code{Nginx}. It is used to generate cat avatar from a seed, for
18675instance the hash of a user's email address. 19906instance the hash of a user's email address.
18676 19907
18677@deffn {Scheme Procedure} cat-avatar-generator-service @ 19908@deffn {Scheme-Prozedur} cat-avatar-generator-service @
18678 [#:cache-dir "/var/cache/cat-avatar-generator"] @ [#:package 19909 [#:cache-dir "/var/cache/cat-avatar-generator"] @ [#:package
18679cat-avatar-generator] @ [#:configuration (nginx-server-configuration)] 19910cat-avatar-generator] @ [#:configuration (nginx-server-configuration)]
18680Returns an nginx-server-configuration that inherits @code{configuration}. 19911Returns an nginx-server-configuration that inherits @code{configuration}.
@@ -20162,42 +21393,42 @@ CPU frequency scaling governor on AC mode. With intel_pstate driver,
20162alternatives are powersave and performance. With acpi-cpufreq driver, 21393alternatives are powersave and performance. With acpi-cpufreq driver,
20163alternatives are ondemand, powersave, performance and conservative. 21394alternatives are ondemand, powersave, performance and conservative.
20164 21395
20165Defaults to @samp{disabled}. 21396Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
20166 21397
20167@end deftypevr 21398@end deftypevr
20168 21399
20169@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-bat 21400@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-bat
20170Same as @code{cpu-scaling-governor-on-ac} but on BAT mode. 21401Same as @code{cpu-scaling-governor-on-ac} but on BAT mode.
20171 21402
20172Defaults to @samp{disabled}. 21403Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
20173 21404
20174@end deftypevr 21405@end deftypevr
20175 21406
20176@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-ac 21407@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-ac
20177Set the min available frequency for the scaling governor on AC. 21408Set the min available frequency for the scaling governor on AC.
20178 21409
20179Defaults to @samp{disabled}. 21410Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
20180 21411
20181@end deftypevr 21412@end deftypevr
20182 21413
20183@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-ac 21414@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-ac
20184Set the max available frequency for the scaling governor on AC. 21415Set the max available frequency for the scaling governor on AC.
20185 21416
20186Defaults to @samp{disabled}. 21417Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
20187 21418
20188@end deftypevr 21419@end deftypevr
20189 21420
20190@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-bat 21421@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-bat
20191Set the min available frequency for the scaling governor on BAT. 21422Set the min available frequency for the scaling governor on BAT.
20192 21423
20193Defaults to @samp{disabled}. 21424Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
20194 21425
20195@end deftypevr 21426@end deftypevr
20196 21427
20197@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-bat 21428@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-bat
20198Set the max available frequency for the scaling governor on BAT. 21429Set the max available frequency for the scaling governor on BAT.
20199 21430
20200Defaults to @samp{disabled}. 21431Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
20201 21432
20202@end deftypevr 21433@end deftypevr
20203 21434
@@ -20205,7 +21436,7 @@ Defaults to @samp{disabled}.
20205Limit the min P-state to control the power dissipation of the CPU, in AC 21436Limit the min P-state to control the power dissipation of the CPU, in AC
20206mode. Values are stated as a percentage of the available performance. 21437mode. Values are stated as a percentage of the available performance.
20207 21438
20208Defaults to @samp{disabled}. 21439Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
20209 21440
20210@end deftypevr 21441@end deftypevr
20211 21442
@@ -20213,35 +21444,35 @@ Defaults to @samp{disabled}.
20213Limit the max P-state to control the power dissipation of the CPU, in AC 21444Limit the max P-state to control the power dissipation of the CPU, in AC
20214mode. Values are stated as a percentage of the available performance. 21445mode. Values are stated as a percentage of the available performance.
20215 21446
20216Defaults to @samp{disabled}. 21447Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
20217 21448
20218@end deftypevr 21449@end deftypevr
20219 21450
20220@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-bat 21451@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-bat
20221Same as @code{cpu-min-perf-on-ac} on BAT mode. 21452Same as @code{cpu-min-perf-on-ac} on BAT mode.
20222 21453
20223Defaults to @samp{disabled}. 21454Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
20224 21455
20225@end deftypevr 21456@end deftypevr
20226 21457
20227@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-bat 21458@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-bat
20228Same as @code{cpu-max-perf-on-ac} on BAT mode. 21459Same as @code{cpu-max-perf-on-ac} on BAT mode.
20229 21460
20230Defaults to @samp{disabled}. 21461Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
20231 21462
20232@end deftypevr 21463@end deftypevr
20233 21464
20234@deftypevr {@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-ac? 21465@deftypevr {@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-ac?
20235Enable CPU turbo boost feature on AC mode. 21466Enable CPU turbo boost feature on AC mode.
20236 21467
20237Defaults to @samp{disabled}. 21468Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
20238 21469
20239@end deftypevr 21470@end deftypevr
20240 21471
20241@deftypevr {@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-bat? 21472@deftypevr {@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-bat?
20242Same as @code{cpu-boost-on-ac?} on BAT mode. 21473Same as @code{cpu-boost-on-ac?} on BAT mode.
20243 21474
20244Defaults to @samp{disabled}. 21475Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
20245 21476
20246@end deftypevr 21477@end deftypevr
20247 21478
@@ -20271,7 +21502,7 @@ Defaults to @samp{#f}.
20271For Linux kernels with PHC patch applied, change CPU voltages. An example 21502For Linux kernels with PHC patch applied, change CPU voltages. An example
20272value would be @samp{"F:V F:V F:V F:V"}. 21503value would be @samp{"F:V F:V F:V F:V"}.
20273 21504
20274Defaults to @samp{disabled}. 21505Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
20275 21506
20276@end deftypevr 21507@end deftypevr
20277 21508
@@ -20309,14 +21540,14 @@ Same as @code{disk-apm-bat} but on BAT mode.
20309Hard disk spin down timeout. One value has to be specified for each 21540Hard disk spin down timeout. One value has to be specified for each
20310declared hard disk. 21541declared hard disk.
20311 21542
20312Defaults to @samp{disabled}. 21543Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
20313 21544
20314@end deftypevr 21545@end deftypevr
20315 21546
20316@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-bat 21547@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-bat
20317Same as @code{disk-spindown-timeout-on-ac} but on BAT mode. 21548Same as @code{disk-spindown-timeout-on-ac} but on BAT mode.
20318 21549
20319Defaults to @samp{disabled}. 21550Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
20320 21551
20321@end deftypevr 21552@end deftypevr
20322 21553
@@ -20324,7 +21555,7 @@ Defaults to @samp{disabled}.
20324Select IO scheduler for disk devices. One value has to be specified for 21555Select IO scheduler for disk devices. One value has to be specified for
20325each declared hard disk. Example alternatives are cfq, deadline and noop. 21556each declared hard disk. Example alternatives are cfq, deadline and noop.
20326 21557
20327Defaults to @samp{disabled}. 21558Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
20328 21559
20329@end deftypevr 21560@end deftypevr
20330 21561
@@ -20346,21 +21577,21 @@ Defaults to @samp{"min_power"}.
20346@deftypevr {@code{tlp-configuration} parameter} maybe-string sata-linkpwr-blacklist 21577@deftypevr {@code{tlp-configuration} parameter} maybe-string sata-linkpwr-blacklist
20347Exclude specified SATA host devices for link power management. 21578Exclude specified SATA host devices for link power management.
20348 21579
20349Defaults to @samp{disabled}. 21580Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
20350 21581
20351@end deftypevr 21582@end deftypevr
20352 21583
20353@deftypevr {@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-ac? 21584@deftypevr {@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-ac?
20354Enable Runtime Power Management for AHCI controller and disks on AC mode. 21585Enable Runtime Power Management for AHCI controller and disks on AC mode.
20355 21586
20356Defaults to @samp{disabled}. 21587Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
20357 21588
20358@end deftypevr 21589@end deftypevr
20359 21590
20360@deftypevr {@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-bat? 21591@deftypevr {@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-bat?
20361Same as @code{ahci-runtime-pm-on-ac} on BAT mode. 21592Same as @code{ahci-runtime-pm-on-ac} on BAT mode.
20362 21593
20363Defaults to @samp{disabled}. 21594Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
20364 21595
20365@end deftypevr 21596@end deftypevr
20366 21597
@@ -20515,7 +21746,7 @@ Defaults to @samp{#t}.
20515@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list runtime-pm-blacklist 21746@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list runtime-pm-blacklist
20516Exclude specified PCI(e) device addresses from Runtime Power Management. 21747Exclude specified PCI(e) device addresses from Runtime Power Management.
20517 21748
20518Defaults to @samp{disabled}. 21749Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
20519 21750
20520@end deftypevr 21751@end deftypevr
20521 21752
@@ -20535,7 +21766,7 @@ Defaults to @samp{#t}.
20535@deftypevr {@code{tlp-configuration} parameter} maybe-string usb-blacklist 21766@deftypevr {@code{tlp-configuration} parameter} maybe-string usb-blacklist
20536Exclude specified devices from USB autosuspend. 21767Exclude specified devices from USB autosuspend.
20537 21768
20538Defaults to @samp{disabled}. 21769Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
20539 21770
20540@end deftypevr 21771@end deftypevr
20541 21772
@@ -20550,14 +21781,14 @@ Defaults to @samp{#t}.
20550Include specified devices into USB autosuspend, even if they are already 21781Include specified devices into USB autosuspend, even if they are already
20551excluded by the driver or via @code{usb-blacklist-wwan?}. 21782excluded by the driver or via @code{usb-blacklist-wwan?}.
20552 21783
20553Defaults to @samp{disabled}. 21784Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
20554 21785
20555@end deftypevr 21786@end deftypevr
20556 21787
20557@deftypevr {@code{tlp-configuration} parameter} maybe-boolean usb-autosuspend-disable-on-shutdown? 21788@deftypevr {@code{tlp-configuration} parameter} maybe-boolean usb-autosuspend-disable-on-shutdown?
20558Enable USB autosuspend before shutdown. 21789Enable USB autosuspend before shutdown.
20559 21790
20560Defaults to @samp{disabled}. 21791Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
20561 21792
20562@end deftypevr 21793@end deftypevr
20563 21794
@@ -20635,6 +21866,15 @@ The directory to scan for music files.
20635@item @code{playlist-dir} (default: @code{"~/.mpd/playlists"}) 21866@item @code{playlist-dir} (default: @code{"~/.mpd/playlists"})
20636The directory to store playlists. 21867The directory to store playlists.
20637 21868
21869@item @code{db-file} (Vorgabe: @code{"~/.mpd/tag_cache"})
21870Der Ort, an dem die Musikdatenbank gespeichert wird.
21871
21872@item @code{state-file} (Vorgabe: @code{"~/.mpd/state"})
21873The location of the file that stores current MPD's state.
21874
21875@item @code{sticker-file} (Vorgabe: @code{"~/.mpd/sticker.sql"})
21876Der Ort, an dem die Sticker-Datenbank gespeichert wird.
21877
20638@item @code{port} (default: @code{"6600"}) 21878@item @code{port} (default: @code{"6600"})
20639The port to run mpd on. 21879The port to run mpd on.
20640 21880
@@ -21367,7 +22607,7 @@ QEMU package to use as well as the architecture we want to emulated:
21367@example 22607@example
21368(service qemu-binfmt-service-type 22608(service qemu-binfmt-service-type
21369 (qemu-binfmt-configuration 22609 (qemu-binfmt-configuration
21370 (platforms (lookup-qemu-platforms "arm" "aarch64" "ppc")))) 22610 (platforms (lookup-qemu-platforms "arm" "aarch64" "mips64el"))))
21371@end example 22611@end example
21372 22612
21373In this example, we enable transparent emulation for the ARM and aarch64 22613In this example, we enable transparent emulation for the ARM and aarch64
@@ -22327,7 +23567,7 @@ Defaults to @samp{""}.
22327A flag which can be used to disable the global setting 23567A flag which can be used to disable the global setting
22328@code{enable-commit-graph?}. 23568@code{enable-commit-graph?}.
22329 23569
22330Defaults to @samp{disabled}. 23570Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
22331 23571
22332@end deftypevr 23572@end deftypevr
22333 23573
@@ -22335,7 +23575,7 @@ Defaults to @samp{disabled}.
22335A flag which can be used to disable the global setting 23575A flag which can be used to disable the global setting
22336@code{enable-log-filecount?}. 23576@code{enable-log-filecount?}.
22337 23577
22338Defaults to @samp{disabled}. 23578Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
22339 23579
22340@end deftypevr 23580@end deftypevr
22341 23581
@@ -22343,7 +23583,7 @@ Defaults to @samp{disabled}.
22343A flag which can be used to disable the global setting 23583A flag which can be used to disable the global setting
22344@code{enable-log-linecount?}. 23584@code{enable-log-linecount?}.
22345 23585
22346Defaults to @samp{disabled}. 23586Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
22347 23587
22348@end deftypevr 23588@end deftypevr
22349 23589
@@ -22351,7 +23591,7 @@ Defaults to @samp{disabled}.
22351Flag which, when set to @code{#t}, will make cgit display remote branches in 23591Flag which, when set to @code{#t}, will make cgit display remote branches in
22352the summary and refs views. 23592the summary and refs views.
22353 23593
22354Defaults to @samp{disabled}. 23594Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
22355 23595
22356@end deftypevr 23596@end deftypevr
22357 23597
@@ -22359,7 +23599,7 @@ Defaults to @samp{disabled}.
22359A flag which can be used to override the global setting 23599A flag which can be used to override the global setting
22360@code{enable-subject-links?}. 23600@code{enable-subject-links?}.
22361 23601
22362Defaults to @samp{disabled}. 23602Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
22363 23603
22364@end deftypevr 23604@end deftypevr
22365 23605
@@ -22367,7 +23607,7 @@ Defaults to @samp{disabled}.
22367A flag which can be used to override the global setting 23607A flag which can be used to override the global setting
22368@code{enable-html-serving?}. 23608@code{enable-html-serving?}.
22369 23609
22370Defaults to @samp{disabled}. 23610Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert).
22371 23611
22372@end deftypevr 23612@end deftypevr
22373 23613
@@ -22644,8 +23884,8 @@ The port to bind the server to.
22644@cindex fingerprint 23884@cindex fingerprint
22645@subsubheading Fingerabdrucklese-Dienst 23885@subsubheading Fingerabdrucklese-Dienst
22646 23886
22647The @code{(gnu services fingerprint)} module provides a DBus service to read 23887The @code{(gnu services authentication)} module provides a DBus service to
22648and identify fingerprints via a fingerprint sensor. 23888read and identify fingerprints via a fingerprint sensor.
22649 23889
22650@defvr {Scheme Variable} fprintd-service-type 23890@defvr {Scheme Variable} fprintd-service-type
22651The service type for @command{fprintd}, which provides the fingerprint 23891The service type for @command{fprintd}, which provides the fingerprint
@@ -22746,6 +23986,34 @@ daemon that enables sharing the clipboard with a vm and setting the guest
22746display resolution when the graphical console window resizes. 23986display resolution when the graphical console window resizes.
22747@end deffn 23987@end deffn
22748 23988
23989@cindex inputattach
23990@subsubheading inputattach-Dienst
23991
23992@cindex tablet input, for Xorg
23993@cindex touchscreen input, for Xorg
23994The @uref{https://linuxwacom.github.io/, inputattach} service allows you to
23995use input devices such as Wacom tablets, touchscreens, or joysticks with the
23996Xorg display server.
23997
23998@deffn {Scheme-Variable} inputattach-service-type
23999Type of a service that runs @command{inputattach} on a device and dispatches
24000events from it.
24001@end deffn
24002
24003@deftp {Datentyp} inputattach-configuration
24004@table @asis
24005@item @code{device-type} (Vorgabe: @code{"wacom"})
24006The type of device to connect to. Run @command{inputattach --help}, from
24007the @code{inputattach} package, to see the list of supported device types.
24008
24009@item @code{device} (Vorgabe: @code{"/dev/ttyS0"})
24010The device file to connect to the device.
24011
24012@item @code{log-file} (Vorgabe: @code{#f})
24013If true, this must be the name of a file to log messages to.
24014@end table
24015@end deftp
24016
22749@subsection Dictionary Services 24017@subsection Dictionary Services
22750@cindex dictionary 24018@cindex dictionary
22751The @code{(gnu services dict)} module provides the following service: 24019The @code{(gnu services dict)} module provides the following service:
@@ -22845,11 +24113,12 @@ The following is an example @code{dicod-service} configuration.
22845@end example 24113@end example
22846 24114
22847@cindex Docker 24115@cindex Docker
22848@subsubheading Docker Service 24116@subsubheading Docker-Dienst
22849 24117
22850The @code{(gnu services docker)} module provides the following service. 24118Das Modul @code{(gnu services docker)} stellt den folgenden Dienst zur
24119Verfügung.
22851 24120
22852@defvr {Scheme Variable} docker-service-type 24121@defvr {Scheme-Variable} docker-service-type
22853 24122
22854This is the type of the service that runs 24123This is the type of the service that runs
22855@url{http://www.docker.com,Docker}, a daemon that can execute application 24124@url{http://www.docker.com,Docker}, a daemon that can execute application
@@ -22857,17 +24126,17 @@ bundles (sometimes referred to as ``containers'') in isolated environments.
22857 24126
22858@end defvr 24127@end defvr
22859 24128
22860@deftp {Data Type} docker-configuration 24129@deftp {Datentyp} docker-configuration
22861This is the data type representing the configuration of Docker and 24130Dies ist der Datentyp, der die Konfiguration von Docker und Containerd
22862Containerd. 24131repräsentiert.
22863 24132
22864@table @asis 24133@table @asis
22865 24134
22866@item @code{package} (default: @code{docker}) 24135@item @code{package} (Vorgabe: @code{docker})
22867The Docker package to use. 24136Das Docker-Paket, was benutzt werden soll.
22868 24137
22869@item @code{containerd} (default: @var{containerd}) 24138@item @code{containerd} (Vorgabe: @var{containerd})
22870The Containerd package to use. 24139Das Containerd-Paket, was benutzt werden soll.
22871 24140
22872@end table 24141@end table
22873@end deftp 24142@end deftp
@@ -22875,46 +24144,51 @@ The Containerd package to use.
22875@node Setuid-Programme 24144@node Setuid-Programme
22876@section Setuid-Programme 24145@section Setuid-Programme
22877 24146
22878@cindex setuid programs 24147@cindex setuid-Programme
22879Some programs need to run with ``root'' privileges, even when they are 24148Manche Programme müssen mit Administratorrechten (also den Berechtigungen
22880launched by unprivileged users. A notorious example is the @command{passwd} 24149des »root«-Benutzers) ausgeführt werden, selbst wenn Nutzer ohne besondere
22881program, which users can run to change their password, and which needs to 24150Berechtigungen sie starten. Ein bekanntes Beispiel ist das Programm
22882access the @file{/etc/passwd} and @file{/etc/shadow} files---something 24151@command{passwd}, womit Nutzer ihr Passwort ändern können, wozu das Programm
22883normally restricted to root, for obvious security reasons. To address that, 24152auf die Dateien @file{/etc/passwd} und @file{/etc/shadow} zugreifen muss —
22884these executables are @dfn{setuid-root}, meaning that they always run with 24153was normalerweise nur der »root«-Nutzer darf, aus offensichtlichen Gründen
22885root privileges (@pxref{How Change Persona,,, libc, The GNU C Library 24154der Informationssicherheit. Deswegen sind diese ausführbaren Programmdateien
22886Reference Manual}, for more info about the setuid mechanism.) 24155@dfn{setuid-root}, d.h.@: sie laufen immer mit den Administratorrechten des
22887 24156root-Nutzers, egal wer sie startet (siehe @ref{How Change Persona,,, libc,
22888The store itself @emph{cannot} contain setuid programs: that would be a 24157The GNU C Library Reference Manual} für mehr Informationen über den
22889security issue since any user on the system can write derivations that 24158setuid-Mechanismus).
22890populate the store (@pxref{Der Store}). Thus, a different mechanism is 24159
22891used: instead of changing the setuid bit directly on files that are in the 24160Der Store selbst kann @emph{keine} setuid-Programme enthalten: Das wäre eine
22892store, we let the system administrator @emph{declare} which programs should 24161Sicherheitslücke, weil dann jeder Nutzer auf dem System Ableitungen
22893be setuid root. 24162schreiben könnte, die in den Store solche Dateien einfügen würden (siehe
22894 24163@ref{Der Store}). Wir benutzen also einen anderen Mechanismus: Statt auf den
22895The @code{setuid-programs} field of an @code{operating-system} declaration 24164ausführbaren Dateien im Store selbst deren setuid-Bit zu setzen, lassen wir
22896contains a list of G-expressions denoting the names of programs to be 24165den Systemadministrator @emph{deklarieren}, welche Programme mit setuid-root
22897setuid-root (@pxref{Das Konfigurationssystem nutzen}). For instance, the 24166gestartet werden.
22898@command{passwd} program, which is part of the Shadow package, can be 24167
22899designated by this G-expression (@pxref{G-Ausdrücke}): 24168Das Feld @code{setuid-programs} einer @code{operating-system}-Deklaration
24169enthält eine Liste von G-Ausdrücken, die die Namen der Programme angeben,
24170die setuid-root sein sollen (siehe @ref{Das Konfigurationssystem nutzen}). Zum Beispiel kann das Programm @command{passwd}, was Teil des
24171Shadow-Pakets ist, durch diesen G-Ausdruck bezeichnet werden (siehe
24172@ref{G-Ausdrücke}):
22900 24173
22901@example 24174@example
22902#~(string-append #$shadow "/bin/passwd") 24175#~(string-append #$shadow "/bin/passwd")
22903@end example 24176@end example
22904 24177
22905A default set of setuid programs is defined by the @code{%setuid-programs} 24178Eine vorgegebene Menge von setuid-Programmen wird durch die Variable
22906variable of the @code{(gnu system)} module. 24179@code{%setuid-programs} aus dem Modul @code{(gnu system)} definiert.
22907 24180
22908@defvr {Scheme Variable} %setuid-programs 24181@defvr {Scheme-Variable} %setuid-programs
22909A list of G-expressions denoting common programs that are setuid-root. 24182Eine Liste von G-Ausdrücken, die übliche Programme angeben, die setuid-root
24183sein müssen.
22910 24184
22911The list includes commands such as @command{passwd}, @command{ping}, 24185Die Liste enthält Befehle wie @command{passwd}, @command{ping}, @command{su}
22912@command{su}, and @command{sudo}. 24186und @command{sudo}.
22913@end defvr 24187@end defvr
22914 24188
22915Under the hood, the actual setuid programs are created in the 24189Intern erzeugt Guix die eigentlichen setuid-Programme im Verzeichnis
22916@file{/run/setuid-programs} directory at system activation time. The files 24190@file{/run/setuid-programs}, wenn das System aktiviert wird. Die Dateien in
22917in this directory refer to the ``real'' binaries, which are in the store. 24191diesem Verzeichnis verweisen auf die »echte Binärdateien im Store.
22918 24192
22919@node X.509-Zertifikate 24193@node X.509-Zertifikate
22920@section X.509-Zertifikate 24194@section X.509-Zertifikate
@@ -22935,15 +24209,15 @@ Web-Browser wie GNU@tie{}IceCat liefern ihre eigenen CA-Zertifikate mit,
22935damit sie von Haus aus Zertifikate verifizieren können. 24209damit sie von Haus aus Zertifikate verifizieren können.
22936 24210
22937Den meisten anderen Programmen, die HTTPS sprechen können — @command{wget}, 24211Den meisten anderen Programmen, die HTTPS sprechen können — @command{wget},
22938@command{git}, @command{w3m} etc. — muss allerdings erst mitgeteilt werden, 24212@command{git}, @command{w3m} etc.@: — muss allerdings erst mitgeteilt
22939wo die CA-Zertifikate installiert sind. 24213werden, wo die CA-Zertifikate installiert sind.
22940 24214
22941@cindex @code{nss-certs} 24215@cindex @code{nss-certs}
22942In Guix, this is done by adding a package that provides certificates to the 24216In Guix ssen Sie dazu ein Paket, das Zertifikate enthält, in das
22943@code{packages} field of the @code{operating-system} declaration 24217@code{packages}-Feld der @code{operating-system}-Deklaration des
22944(@pxref{»operating-system«-Referenz}). Guix includes one such package, 24218Betriebssystems hinzufügen (siehe @ref{»operating-system«-Referenz}). Guix
22945@code{nss-certs}, which is a set of CA certificates provided as part of 24219liefert ein solches Paket mit, @code{nss-certs}, was als Teil von Mozillas
22946Mozilla's Network Security Services. 24220»Network Security Services« angeboten wird.
22947 24221
22948Beachten Sie, dass es @emph{nicht} zu den @var{%base-packages} gehört, Sie 24222Beachten Sie, dass es @emph{nicht} zu den @var{%base-packages} gehört, Sie
22949es also ausdrücklich hinzufügen müssen. Das Verzeichnis 24223es also ausdrücklich hinzufügen müssen. Das Verzeichnis
@@ -22987,89 +24261,98 @@ Umgebungsvariablen vielleicht in deren Dokumentation nachschlagen.
22987 24261
22988@cindex Name Service Switch 24262@cindex Name Service Switch
22989@cindex NSS 24263@cindex NSS
22990The @code{(gnu system nss)} module provides bindings to the configuration 24264Das Modul @code{(gnu system nss)} enthält Anbindungen für die Konfiguration
22991file of the libc @dfn{name service switch} or @dfn{NSS} (@pxref{NSS 24265des @dfn{Name Service Switch} (NSS) der libc (siehe @ref{NSS Configuration
22992Configuration File,,, libc, The GNU C Library Reference Manual}). In a 24266File,,, libc, The GNU C Library Reference Manual}). Kurz gesagt ist der NSS
22993nutshell, the NSS is a mechanism that allows libc to be extended with new 24267ein Mechanismus, mit dem die libc um neue »Namens«-Auflösungsmethoden für
22994``name'' lookup methods for system databases, which includes host names, 24268Systemdatenbanken erweitert werden kann; dazu gehören Rechnernamen (auch
22995service names, user accounts, and more (@pxref{Name Service Switch, System 24269bekannt als »Host«-Namen), Dienstnamen, Benutzerkonten und mehr (siehe
22996Databases and Name Service Switch,, libc, The GNU C Library Reference 24270@ref{Name Service Switch, System Databases and Name Service Switch,, libc,
22997Manual}). 24271The GNU C Library Reference Manual}).
22998 24272
22999The NSS configuration specifies, for each system database, which lookup 24273Die NSS-Konfiguration legt für jede Systemdatenbank fest, mit welcher
23000method is to be used, and how the various methods are chained together---for 24274Methode der Name nachgeschlagen (»aufgelöst«) werden kann und welche
23001instance, under which circumstances NSS should try the next method in the 24275Methoden zusammenhängen — z.B.@: unter welchen Umständen der NSS es mit der
23002list. The NSS configuration is given in the @code{name-service-switch} 24276nächsten Methode auf seiner Liste versuchen sollte. Die NSS-Konfiguration
23003field of @code{operating-system} declarations (@pxref{»operating-system«-Referenz, @code{name-service-switch}}). 24277wird im Feld @code{name-service-switch} von
24278@code{operating-system}-Deklarationen angegeben (siehe @ref{»operating-system«-Referenz, @code{name-service-switch}}).
23004 24279
23005@cindex nss-mdns 24280@cindex nss-mdns
23006@cindex .local, host name lookup 24281@cindex .local, Rechnernamensauflösung
23007As an example, the declaration below configures the NSS to use the 24282Zum Beispiel konfigurieren die folgenden Deklarationen den NSS so, dass er
23008@uref{http://0pointer.de/lennart/projects/nss-mdns/, @code{nss-mdns} 24283das @uref{http://0pointer.de/lennart/projects/nss-mdns/,
23009back-end}, which supports host name lookups over multicast DNS (mDNS) for 24284@code{nss-mdns}-Backend} benutzt, wodurch er auf @code{.local} endende
23010host names ending in @code{.local}: 24285Rechnernamen über Multicast-DNS (mDNS) auflöst:
23011 24286
23012@example 24287@example
23013(name-service-switch 24288(name-service-switch
23014 (hosts (list %files ;first, check /etc/hosts 24289 (hosts (list %files ;zuerst in /etc/hosts nachschlagen
23015 24290
23016 ;; If the above did not succeed, try 24291 ;; Wenn das keinen Erfolg hatte, es
23017 ;; with 'mdns_minimal'. 24292 ;; mit 'mdns_minimal' versuchen.
23018 (name-service 24293 (name-service
23019 (name "mdns_minimal") 24294 (name "mdns_minimal")
23020 24295
23021 ;; 'mdns_minimal' is authoritative for 24296 ;; 'mdns_minimal' ist die Autorität für
23022 ;; '.local'. When it returns "not found", 24297 ;; '.local'. Gibt es not-found ("nicht
23023 ;; no need to try the next methods. 24298 ;; gefunden") zurück, müssen wir die
24299 ;; nächsten Methoden gar nicht erst
24300 ;; versuchen.
23024 (reaction (lookup-specification 24301 (reaction (lookup-specification
23025 (not-found => return)))) 24302 (not-found => return))))
23026 24303
23027 ;; Then fall back to DNS. 24304 ;; Ansonsten benutzen wir DNS.
23028 (name-service 24305 (name-service
23029 (name "dns")) 24306 (name "dns"))
23030 24307
23031 ;; Finally, try with the "full" 'mdns'. 24308 ;; Ein letzter Versuch mit dem
24309 ;; "vollständigen" 'mdns'.
23032 (name-service 24310 (name-service
23033 (name "mdns"))))) 24311 (name "mdns")))))
23034@end example 24312@end example
23035 24313
23036Do not worry: the @code{%mdns-host-lookup-nss} variable (see below) 24314Keine Sorge: Die Variable @code{%mdns-host-lookup-nss} (siehe unten) enthält
23037contains this configuration, so you will not have to type it if all you want 24315diese Konfiguration bereits. Statt das alles selst einzutippen, können Sie
23038is to have @code{.local} host lookup working. 24316sie benutzen, wenn alles, was Sie möchten, eine funktionierende
24317Namensauflösung für @code{.local}-Rechner ist.
23039 24318
23040Note that, in this case, in addition to setting the 24319Beachten Sie dabei, dass es zusätzlich zum Festlegen des
23041@code{name-service-switch} of the @code{operating-system} declaration, you 24320@code{name-service-switch} in der @code{operating-system}-Deklaration auch
23042also need to use @code{avahi-service-type} (@pxref{Netzwerkdienste, 24321erforderlich ist, den @code{avahi-service-type} zu benutzen (siehe
23043@code{avahi-service-type}}), or @var{%desktop-services}, which includes it 24322@ref{Netzwerkdienste, @code{avahi-service-type}}). Es genügt auch, wenn
23044(@pxref{Desktop-Dienste}). Doing this makes @code{nss-mdns} accessible to 24323Sie die @var{%desktop-services} benutzen, weil er darin enthalten ist (siehe
23045the name service cache daemon (@pxref{Basisdienste, @code{nscd-service}}). 24324@ref{Desktop-Dienste}). Dadurch wird @code{nss-mdns} für den Name Service
24325Cache Daemon nutzbar (siehe @ref{Basisdienste, @code{nscd-service}}).
23046 24326
23047For convenience, the following variables provide typical NSS configurations. 24327Um sich eine lange Konfiguration zu ersparen, können Sie auch einfach die
24328folgenden Variablen für typische NSS-Konfigurationen benutzen.
23048 24329
23049@defvr {Scheme Variable} %default-nss 24330@defvr {Scheme-Variable} %default-nss
23050This is the default name service switch configuration, a 24331Die vorgegebene Konfiguration des Name Service Switch als ein
23051@code{name-service-switch} object. 24332@code{name-service-switch}-Objekt.
23052@end defvr 24333@end defvr
23053 24334
23054@defvr {Scheme Variable} %mdns-host-lookup-nss 24335@defvr {Scheme-Variable} %mdns-host-lookup-nss
23055This is the name service switch configuration with support for host name 24336Die Name-Service-Switch-Konfiguration mit Unterstützung für
23056lookup over multicast DNS (mDNS) for host names ending in @code{.local}. 24337Rechnernamensauflösung über »Multicast DNS« (mDNS) für auf @code{.local}
24338endende Rechnernamen.
23057@end defvr 24339@end defvr
23058 24340
23059The reference for name service switch configuration is given below. It is a 24341Im Folgenden finden Sie eine Referenz, wie eine
23060direct mapping of the configuration file format of the C library , so please 24342Name-Service-Switch-Konfiguration aussehen muss. Sie hat eine direkte
23061refer to the C library manual for more information (@pxref{NSS Configuration 24343Entsprechung zum Konfigurationsdateiformat der C-Bibliothek, lesen Sie
23062File,,, libc, The GNU C Library Reference Manual}). Compared to the 24344weitere Informationen also bitte im Handbuch der C-Bibliothek nach (siehe
23063configuration file format of libc NSS, it has the advantage not only of 24345@ref{NSS Configuration File,,, libc, The GNU C Library Reference
23064adding this warm parenthetic feel that we like, but also static checks: you 24346Manual}). Gegenüber dem Konfigurationsdateiformat des libc-NSS bekommen Sie
23065will know about syntax errors and typos as soon as you run @command{guix 24347mit unserer Syntax nicht nur ein warm umklammerndes Gefühl, sondern auch
23066system}. 24348eine statische Analyse: Wenn Sie Syntax- und Schreibfehler machen, werden
24349Sie darüber benachrichtigt, sobald Sie @command{guix system} aufrufen.
23067 24350
23068@deftp {Data Type} name-service-switch 24351@deftp {Datentyp} name-service-switch
23069 24352
23070This is the data type representation the configuration of libc's name 24353Der Datentyp, der die Konfiguration des Name Service Switch (NSS) der libc
23071service switch (NSS). Each field below represents one of the supported 24354repräsentiert. Jedes im Folgenden aufgeführte Feld repräsentiert eine der
23072system databases. 24355unterstützten Systemdatenbanken.
23073 24356
23074@table @code 24357@table @code
23075@item aliases 24358@item aliases
@@ -23085,30 +24368,31 @@ system databases.
23085@itemx rpc 24368@itemx rpc
23086@itemx services 24369@itemx services
23087@itemx shadow 24370@itemx shadow
23088The system databases handled by the NSS. Each of these fields must be a 24371Das sind die Systemdatenbanken, um die sich NSS kümmern kann. Jedes dieser
23089list of @code{<name-service>} objects (see below). 24372Felder muss eine Liste aus @code{<name-service>}-Objekten sein (siehe
24373unten).
23090@end table 24374@end table
23091@end deftp 24375@end deftp
23092 24376
23093@deftp {Data Type} name-service 24377@deftp {Datentyp} name-service
23094 24378
23095This is the data type representing an actual name service and the associated 24379Der einen eigentlichen Namensdienst repräsentierende Datentyp zusammen mit
23096lookup action. 24380der zugehörigen Auflösungsaktion.
23097 24381
23098@table @code 24382@table @code
23099@item name 24383@item name
23100A string denoting the name service (@pxref{Services in the NSS 24384Eine Zeichenkette, die den Namensdienst bezeichnet (siehe @ref{Services in
23101configuration,,, libc, The GNU C Library Reference Manual}). 24385the NSS configuration,,, libc, The GNU C Library Reference Manual}).
23102 24386
23103Note that name services listed here must be visible to nscd. This is 24387Beachten Sie, dass hier aufgeführte Namensdienste für den nscd sichtbar sein
23104achieved by passing the @code{#:name-services} argument to 24388müssen. Dazu übergeben Sie im Argument @code{#:name-services} des
23105@code{nscd-service} the list of packages providing the needed name services 24389@code{nscd-service} die Liste der Pakete, die die entsprechenden
23106(@pxref{Basisdienste, @code{nscd-service}}). 24390Namensdienste anbieten (siehe @ref{Basisdienste, @code{nscd-service}}).
23107 24391
23108@item reaction 24392@item reaction
23109An action specified using the @code{lookup-specification} macro 24393Eine mit Hilfe des Makros @code{lookup-specification} angegebene Aktion
23110(@pxref{Actions in the NSS configuration,,, libc, The GNU C Library 24394(siehe @ref{Actions in the NSS configuration,,, libc, The GNU C Library
23111Reference Manual}). For example: 24395Reference Manual}). Zum Beispiel:
23112 24396
23113@example 24397@example
23114(lookup-specification (unavailable => continue) 24398(lookup-specification (unavailable => continue)
@@ -23122,19 +24406,20 @@ Reference Manual}). For example:
23122 24406
23123@cindex initrd 24407@cindex initrd
23124@cindex initiale RAM-Disk 24408@cindex initiale RAM-Disk
23125For bootstrapping purposes, the Linux-Libre kernel is passed an @dfn{initial 24409Um ihn zu initialisieren (zu »bootstrappen«), wird für den Kernel
23126RAM disk}, or @dfn{initrd}. An initrd contains a temporary root file system 24410Linux-Libre eine @dfn{initiale RAM-Disk} angegeben (kurz @dfn{initrd}). Eine
23127as well as an initialization script. The latter is responsible for mounting 24411initrd enthält ein temporäres Wurzeldateisystem sowie ein Skript zur
23128the real root file system, and for loading any kernel modules that may be 24412Initialisierung. Letzteres ist dafür zuständig, das echte Wurzeldateisystem
23129needed to achieve that. 24413einzubinden und alle Kernel-Module zu laden, die dafür nötig sein könnten.
23130 24414
23131The @code{initrd-modules} field of an @code{operating-system} declaration 24415Mit dem Feld @code{initrd-modules} einer @code{operating-system}-Deklaration
23132allows you to specify Linux-libre kernel modules that must be available in 24416können Sie angeben, welche Kernel-Module für Linux-libre in der initrd
23133the initrd. In particular, this is where you would list modules needed to 24417verfügbar sein müssen. Insbesondere müssen hier die Module aufgeführt
23134actually drive the hard disk where your root partition is---although the 24418werden, um die Festplatte zu betreiben, auf der sich Ihre Wurzelpartition
23135default value of @code{initrd-modules} should cover most use cases. For 24419befindet — allerdings sollte der vorgegebene Wert der @code{initrd-modules}
23136example, assuming you need the @code{megaraid_sas} module in addition to the 24420in dem meisten Fällen genügen. Wenn Sie aber zum Beispiel das Kernel-Modul
23137default modules to be able to access your root file system, you would write: 24421@code{megaraid_sas} zusätzlich zu den vorgegebenen Modulen brauchen, um auf
24422Ihr Wurzeldateisystem zugreifen zu können, würden Sie das so schreiben:
23138 24423
23139@example 24424@example
23140(operating-system 24425(operating-system
@@ -23142,314 +24427,370 @@ default modules to be able to access your root file system, you would write:
23142 (initrd-modules (cons "megaraid_sas" %base-initrd-modules))) 24427 (initrd-modules (cons "megaraid_sas" %base-initrd-modules)))
23143@end example 24428@end example
23144 24429
23145@defvr {Scheme Variable} %base-initrd-modules 24430@defvr {Scheme-Variable} %base-initrd-modules
23146This is the list of kernel modules included in the initrd by default. 24431Der Vorgabewert für die Liste der Kernel-Module, die in der initrd enthalten
24432sein sollen.
23147@end defvr 24433@end defvr
23148 24434
23149Furthermore, if you need lower-level customization, the @code{initrd} field 24435Wenn Sie noch systemnähere Anpassungen durchführen wollen, können Sie im
23150of an @code{operating-system} declaration allows you to specify which initrd 24436Feld @code{initrd} einer @code{operating-system}-Deklaration angeben, was
23151you would like to use. The @code{(gnu system linux-initrd)} module provides 24437für eine Art von initrd Sie benutzen möchten. Das Modul @code{(gnu system
23152three ways to build an initrd: the high-level @code{base-initrd} procedure 24438linux-initrd)} enthält drei Arten, eine initrd zu erstellen: die abstrakte
23153and the low-level @code{raw-initrd} and @code{expression->initrd} 24439Prozedur @code{base-initrd} und die systemnahen Prozeduren @code{raw-initrd}
23154procedures. 24440und @code{expression->initrd}.
23155 24441
23156The @code{base-initrd} procedure is intended to cover most common uses. For 24442Mit der Prozedur @code{base-initrd} sollten Sie die ufigsten
23157example, if you want to add a bunch of kernel modules to be loaded at boot 24443Anwendungszwecke abdecken können. Wenn Sie zum Beispiel ein paar
23158time, you can define the @code{initrd} field of the operating system 24444Kernel-Module zur Boot-Zeit laden lassen möchten, können Sie das
23159declaration like this: 24445@code{initrd}-Feld auf diese Art definieren:
23160 24446
23161@example 24447@example
23162(initrd (lambda (file-systems . rest) 24448(initrd (lambda (file-systems . rest)
23163 ;; Create a standard initrd but set up networking 24449 ;; Eine gewöhnliche initrd, aber das Netzwerk wird
23164 ;; with the parameters QEMU expects by default. 24450 ;; mit den Parametern initialisiert, die QEMU
24451 ;; standardmäßig erwartet.
23165 (apply base-initrd file-systems 24452 (apply base-initrd file-systems
23166 #:qemu-networking? #t 24453 #:qemu-networking? #t
23167 rest))) 24454 rest)))
23168@end example 24455@end example
23169 24456
23170The @code{base-initrd} procedure also handles common use cases that involves 24457Die Prozedur @code{base-initrd} kann auch mit üblichen Anwendungszwecken
23171using the system as a QEMU guest, or as a ``live'' system with volatile root 24458umgehen, um das System als QEMU-Gastsystem zu betreiben oder als ein
23172file system. 24459»Live«-System ohne ein dauerhaft gespeichertes Wurzeldateisystem.
23173 24460
23174The @code{base-initrd} procedure is built from @code{raw-initrd} procedure. 24461Die Prozedur @code{base-initrd} baut auf der Prozedur @code{raw-initrd}
23175Unlike @code{base-initrd}, @code{raw-initrd} doesn't do anything high-level, 24462auf. Anders als @code{base-initrd} hat @code{raw-initrd} keinerlei
23176such as trying to guess which kernel modules and packages should be included 24463Zusatzfunktionalitäten: Es wird kein Versuch unternommen, für die initrd
23177to the initrd. An example use of @code{raw-initrd} is when a user has a 24464notwendige Kernel-Module und Pakete automatisch
23178custom Linux kernel configuration and default kernel modules included by 24465hinzuzunehmen. @code{raw-initrd} kann zum Beispiel benutzt werden, wenn ein
23179@code{base-initrd} are not available. 24466Nutzer eine eigene Konfiguration des Linux-Kernels verwendet und die
24467Standard-Kernel-Module, die mit @code{base-initrd} hinzugenommen würden,
24468nicht verfügbar sind.
23180 24469
23181The initial RAM disk produced by @code{base-initrd} or @code{raw-initrd} 24470Die initiale RAM-Disk, wie sie von @code{base-initrd} oder @code{raw-initrd}
23182honors several options passed on the Linux kernel command line (that is, 24471erzeugt wird, richtet sich nach verschiedenen Optionen, die auf der
23183arguments passed @i{via} the @code{linux} command of GRUB, or the 24472Kernel-Befehlszeile übergeben werden (also über GRUBs @code{linux}-Befehl
23184@code{-append} option of QEMU), notably: 24473oder die @code{-append}-Befehlszeilenoption von QEMU). Erwähnt werden
24474sollten:
23185 24475
23186@table @code 24476@table @code
23187@item --load=@var{boot} 24477@item --load=@var{boot}
23188Tell the initial RAM disk to load @var{boot}, a file containing a Scheme 24478Die initiale RAM-Disk eine Datei @var{boot}, in der ein Scheme-Programm
23189program, once it has mounted the root file system. 24479steht, laden lassen, nachdem das Wurzeldateisystem eingebunden wurde.
23190 24480
23191Guix uses this option to yield control to a boot program that runs the 24481Guix übergibt mit dieser Befehlszeilenoption die Kontrolle an ein
23192service activation programs and then spawns the GNU@tie{}Shepherd, the 24482Boot-Programm, das die Dienstaktivierungsprogramme ausführt und anschließend
23193initialization system. 24483den GNU@tie{}Shepherd startet, das Initialisierungssystem (»init«-System)
24484von Guix System.
23194 24485
23195@item --root=@var{root} 24486@item --root=@var{Wurzel}
23196Mount @var{root} as the root file system. @var{root} can be a device name 24487Das mit @var{Wurzel} bezeichnete Dateisystem als Wurzeldateisystem
23197like @code{/dev/sda1}, a file system label, or a file system UUID. 24488einbinden. @var{Wurzel} kann ein Geratename wie @code{/dev/sda1}, eine
24489Dateisystembezeichnung (d.h.@: ein Dateisystem-»Label«) oder eine
24490Dateisystem-UUID sein.
23198 24491
23199@item --system=@var{System} 24492@item --system=@var{System}
23200Have @file{/run/booted-system} and @file{/run/current-system} point to 24493@file{/run/booted-system} und @file{/run/current-system} auf das
23201@var{system}. 24494@var{System} zeigen lassen.
23202 24495
23203@item modprobe.blacklist=@var{modules}@dots{} 24496@item modprobe.blacklist=@var{Module}@dots{}
23204@cindex module, black-listing 24497@cindex Kernel-Module, Sperrliste
23205@cindex black list, of kernel modules 24498@cindex Sperrliste, von Kernel-Modulen
23206Instruct the initial RAM disk as well as the @command{modprobe} command 24499Die initiale RAM-Disk sowie den Befehl @command{modprobe} (aus dem
23207(from the kmod package) to refuse to load @var{modules}. @var{modules} must 24500kmod-Paket) anweisen, das Laden der angegebenen @var{Module} zu
23208be a comma-separated list of module names---e.g., @code{usbkbd,9pnet}. 24501verweigern. Als @var{Module} muss eine kommagetrennte Liste von
24502Kernel-Modul-Namen angegeben werden — z.B.@: @code{usbkbd,9pnet}.
23209 24503
23210@item --repl 24504@item --repl
23211Start a read-eval-print loop (REPL) from the initial RAM disk before it 24505Eine Lese-Auswerten-Schreiben-Schleife (englisch »Read-Eval-Print Loop«,
23212tries to load kernel modules and to mount the root file system. Our 24506kurz REPL) von der initialen RAM-Disk starten, bevor diese die Kernel-Module
23213marketing team calls it @dfn{boot-to-Guile}. The Schemer in you will love 24507zu laden versucht und das Wurzeldateisystem einbindet. Unsere
23214it. @xref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}, 24508Marketingabteilung nennt das @dfn{boot-to-Guile}. Der Schemer in Ihnen wird
23215for more information on Guile's REPL. 24509das lieben. Siehe @ref{Using Guile Interactively,,, guile, GNU Guile
24510Reference Manual} für mehr Informationen über die REPL von Guile.
23216 24511
23217@end table 24512@end table
23218 24513
23219Now that you know all the features that initial RAM disks produced by 24514Jetzt wo Sie wissen, was für Funktionalitäten eine durch @code{base-initrd}
23220@code{base-initrd} and @code{raw-initrd} provide, here is how to use it and 24515und @code{raw-initrd} erzeugte initiale RAM-Disk so haben kann, möchten Sie
23221customize it further. 24516vielleicht auch wissen, wie man Sie benutzt und weiter anpasst:
23222 24517
23223@cindex initrd 24518@cindex initrd
23224@cindex initiale RAM-Disk 24519@cindex initiale RAM-Disk
23225@deffn {Scheme Procedure} raw-initrd @var{file-systems} @ 24520@deffn {Scheme-Prozedur} raw-initrd @var{Dateisysteme} @
23226 [#:linux-modules '()] [#:mapped-devices '()] @ [#:helper-packages '()] 24521 [#:linux-modules '()] [#:mapped-devices '()] @ [#:keyboard-layout #f] @
23227[#:qemu-networking? #f] [#:volatile-root? #f] Return a derivation that 24522[#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f]
23228builds a raw initrd. @var{file-systems} is a list of file systems to be 24523Liefert eine Ableitung, die eine rohe (»raw«) initrd
23229mounted by the initrd, possibly in addition to the root file system 24524erstellt. @var{Dateisysteme} bezeichnet eine Liste von durch die initrd
23230specified on the kernel command line via @code{--root}. @var{linux-modules} 24525einzubindenden Dateisystemen, unter Umständen zusätzlich zum auf der
23231is a list of kernel modules to be loaded at boot time. @var{mapped-devices} 24526Kernel-Befehlszeile mit @code{--root} angegebenen
23232is a list of device mappings to realize before @var{file-systems} are 24527Wurzeldateisystem. @var{linux-modules} ist eine Liste von Kernel-Modulen,
23233mounted (@pxref{Zugeordnete Geräte}). @var{helper-packages} is a list of 24528die zur Boot-Zeit geladen werden sollen. @var{mapped-devices} ist eine Liste
23234packages to be copied in the initrd. It may include @code{e2fsck/static} or 24529von Gerätezuordnungen, die hergestellt sein müssen, bevor die unter
23235other packages needed by the initrd to check the root file system. 24530@var{file-systems} aufgeführten Dateisysteme eingebunden werden (siehe
23236 24531@ref{Zugeordnete Geräte}). @var{helper-packages} ist eine Liste von Paketen, die
23237When @var{qemu-networking?} is true, set up networking with the standard 24532in die initrd kopiert werden. Darunter kann @code{e2fsck/static} oder andere
23238QEMU parameters. When @var{virtio?} is true, load additional modules so 24533Pakete aufgeführt werden, mit denen durch die initrd das Wurzeldateisystem
23239that the initrd can be used as a QEMU guest with para-virtualized I/O 24534auf Fehler hin geprüft werden kann.
23240drivers. 24535
23241 24536When true, @var{keyboard-layout} is a @code{<keyboard-layout>} record
23242When @var{volatile-root?} is true, the root file system is writable but any 24537denoting the desired console keyboard layout. This is done before
23243changes to it are lost. 24538@var{mapped-devices} are set up and before @var{file-systems} are mounted
24539such that, should the user need to enter a passphrase or use the REPL, this
24540happens using the intended keyboard layout.
24541
24542Wenn @var{qemu-networking?} wahr ist, wird eine Netzwerkverbindung mit den
24543Standard-QEMU-Parametern hergestellt. Wenn @var{virtio?} wahr ist, werden
24544zusätzliche Kernel-Module geladen, damit die initrd als ein QEMU-Gast
24545paravirtualisierte Ein-/Ausgabetreiber benutzen kann.
24546
24547Wenn @var{volatile-root?} wahr ist, ist Schreiben auf das Wurzeldateisystem
24548möglich, aber Änderungen daran bleiben nicht erhalten.
23244@end deffn 24549@end deffn
23245 24550
23246@deffn {Scheme Procedure} base-initrd @var{file-systems} @ 24551@deffn {Scheme-Prozedur} base-initrd @var{Dateisysteme} @
23247 [#:mapped-devices '()] [#:qemu-networking? #f] [#:volatile-root? #f]@ 24552 [#:mapped-devices '()] [#:keyboard-layout #f] @ [#:qemu-networking? #f]
23248[#:linux-modules '()] Return as a file-like object a generic initrd, with 24553[#:volatile-root? #f] @ [#:linux-modules '()] Liefert eine allgemein
23249kernel modules taken from @var{linux}. @var{file-systems} is a list of 24554anwendbare, generische initrd als dateiartiges Objekt mit den Kernel-Modulen
23250file-systems to be mounted by the initrd, possibly in addition to the root 24555aus @var{linux}. Die @var{file-systems} sind eine Liste von durch die initrd
23251file system specified on the kernel command line via @code{--root}. 24556einzubindenden Dateisystemen, unter Umständen zusätzlich zum
23252@var{mapped-devices} is a list of device mappings to realize before 24557Wurzeldateisystem, das auf der Kernel-Befehlszeile mit @code{--root}
23253@var{file-systems} are mounted. 24558angegeben wurde. Die @var{mapped-devices} sind eine Liste von
23254 24559Gerätezuordnungen, die hergestellt sein müssen, bevor die @var{file-systems}
23255@var{qemu-networking?} and @var{volatile-root?} behaves as in 24560eingebunden werden.
24561
24562When true, @var{keyboard-layout} is a @code{<keyboard-layout>} record
24563denoting the desired console keyboard layout. This is done before
24564@var{mapped-devices} are set up and before @var{file-systems} are mounted
24565such that, should the user need to enter a passphrase or use the REPL, this
24566happens using the intended keyboard layout.
24567
24568@var{qemu-networking?} und @var{volatile-root?} verhalten sich wie bei
23256@code{raw-initrd}. 24569@code{raw-initrd}.
23257 24570
23258The initrd is automatically populated with all the kernel modules necessary 24571In die initrd werden automatisch alle Kernel-Module eingefügt, die für die
23259for @var{file-systems} and for the given options. Additional kernel modules 24572unter @var{file-systems} angegebenen Dateisysteme und die angegebenen
23260can be listed in @var{linux-modules}. They will be added to the initrd, and 24573Optionen nötig sind. Zusätzliche Kernel-Module können unter den
23261loaded at boot time in the order in which they appear. 24574@var{linux-modules} aufgeführt werden. Diese werden zur initrd hinzugefügt
24575und zur Boot-Zeit in der Reihenfolge geladen, in der sie angegeben wurden.
23262@end deffn 24576@end deffn
23263 24577
23264Needless to say, the initrds we produce and use embed a statically-linked 24578Selbstverständlich betten die hier erzeugten und benutzten initrds ein
23265Guile, and the initialization program is a Guile program. That gives a lot 24579statisch gebundenes Guile ein und das Initialisierungsprogramm ist ein
23266of flexibility. The @code{expression->initrd} procedure builds such an 24580Guile-Programm. Dadurch haben wir viel Flexibilität. Die Prozedur
23267initrd, given the program to run in that initrd. 24581@code{expression->initrd} erstellt eine solche initrd für ein an sie
23268 24582übergebenes Programm.
23269@deffn {Scheme Procedure} expression->initrd @var{exp} @ 24583
23270 [#:guile %guile-static-stripped] [#:name "guile-initrd"] Return as a 24584@deffn {Scheme-Prozedur} expression->initrd @var{G-Ausdruck} @
23271file-like object a Linux initrd (a gzipped cpio archive) containing 24585 [#:guile %guile-static-stripped] [#:name "guile-initrd"] Liefert eine
23272@var{guile} and that evaluates @var{exp}, a G-expression, upon booting. All 24586Linux-initrd (d.h.@: ein gzip-komprimiertes cpio-Archiv) als dateiartiges
23273the derivations referenced by @var{exp} are automatically copied to the 24587Objekt, in dem @var{guile} enthalten ist, womit der @var{G-Ausdruck} nach
23274initrd. 24588dem Booten ausgewertet wird. Alle vom @var{G-Ausdruck} referenzierten
24589Ableitungen werden automatisch in die initrd kopiert.
23275@end deffn 24590@end deffn
23276 24591
23277@node Bootloader-Konfiguration 24592@node Bootloader-Konfiguration
23278@section Bootloader-Konfiguration 24593@section Bootloader-Konfiguration
23279 24594
23280@cindex bootloader 24595@cindex bootloader
23281@cindex boot loader 24596@cindex Bootloader
23282 24597
23283The operating system supports multiple bootloaders. The bootloader is 24598Das Betriebssystem unterstützt mehrere Bootloader. Der gewünschte Bootloader
23284configured using @code{bootloader-configuration} declaration. All the 24599wird mit der @code{bootloader-configuration}-Deklaration konfiguriert. Alle
23285fields of this structure are bootloader agnostic except for one field, 24600Felder dieser Struktur sind für alle Bootloader gleich außer dem einen Feld
23286@code{bootloader} that indicates the bootloader to be configured and 24601@code{bootloader}, das angibt, welcher Bootloader konfiguriert und
23287installed. 24602installiert werden soll.
23288 24603
23289Some of the bootloaders do not honor every field of 24604Manche der Bootloader setzen nicht alle Felder einer
23290@code{bootloader-configuration}. For instance, the extlinux bootloader does 24605@code{bootloader-configuration} um. Zum Beispiel ignoriert der
23291not support themes and thus ignores the @code{theme} field. 24606extlinux-Bootloader das @code{theme}-Feld, weil er keine eigenen Themen
24607unterstützt.
23292 24608
23293@deftp {Data Type} bootloader-configuration 24609@deftp {Datentyp} bootloader-configuration
23294The type of a bootloader configuration declaration. 24610Der Typ der Deklaration einer Bootloader-Konfiguration.
23295 24611
23296@table @asis 24612@table @asis
23297 24613
23298@item @code{bootloader} 24614@item @code{bootloader}
23299@cindex EFI, bootloader 24615@cindex EFI, Bootloader
23300@cindex UEFI, bootloader 24616@cindex UEFI, Bootloader
23301@cindex BIOS, bootloader 24617@cindex BIOS, Bootloader
23302The bootloader to use, as a @code{bootloader} object. For now 24618Der zu benutzende Bootloader als ein @code{bootloader}-Objekt. Zur Zeit
23303@code{grub-bootloader}, @code{grub-efi-bootloader}, 24619werden @code{grub-bootloader}, @code{grub-efi-bootloader},
23304@code{extlinux-bootloader} and @code{u-boot-bootloader} are supported. 24620@code{extlinux-bootloader} und @code{u-boot-bootloader} unterstützt.
23305 24621
23306@vindex grub-efi-bootloader 24622@vindex grub-efi-bootloader
23307@code{grub-efi-bootloader} allows to boot on modern systems using the 24623@code{grub-efi-bootloader} macht es möglich, auf modernen Systemen mit
23308@dfn{Unified Extensible Firmware Interface} (UEFI). This is what you should 24624@dfn{Unified Extensible Firmware Interface} (UEFI) zu booten. Sie sollten
23309use if the installation image contains a @file{/sys/firmware/efi} directory 24625das hier benutzen, wenn im Installationsabbild ein Verzeichnis
23310when you boot it on your system. 24626@file{/sys/firmware/efi} vorhanden ist, wenn Sie davon auf Ihrem System
24627booten.
23311 24628
23312@vindex grub-bootloader 24629@vindex grub-bootloader
23313@code{grub-bootloader} allows you to boot in particular Intel-based machines 24630Mit @code{grub-bootloader} können Sie vor allem auf Intel-basierten
23314in ``legacy'' BIOS mode. 24631Maschinen im alten »Legacy«-BIOS-Modus booten.
23315 24632
23316@cindex ARM, bootloaders 24633@cindex ARM, Bootloader
23317@cindex AArch64, bootloaders 24634@cindex AArch64, Bootloader
23318Available bootloaders are described in @code{(gnu bootloader @dots{})} 24635Verfügbare Bootloader werden in den Modulen @code{(gnu bootloader @dots{})}
23319modules. In particular, @code{(gnu bootloader u-boot)} contains definitions 24636beschrieben. Insbesondere entlt @code{(gnu bootloader u-boot)}
23320of bootloaders for a wide range of ARM and AArch64 systems, using the 24637Definitionen für eine Vielzahl von ARM- und AArch64-Systemen, die den
23321@uref{http://www.denx.de/wiki/U-Boot/, U-Boot bootloader}. 24638@uref{http://www.denx.de/wiki/U-Boot/, U-Boot-Bootloader} benutzen.
23322 24639
23323@item @code{target} 24640@item @code{target}
23324This is a string denoting the target onto which to install the bootloader. 24641Eine Zeichenkette, die angibt, auf welches Ziel der Bootloader installiert
23325 24642werden soll.
23326The interpretation depends on the bootloader in question. For 24643
23327@code{grub-bootloader}, for example, it should be a device name understood 24644Was das bedeutet, hängt vom jeweiligen Bootloader ab. Für
23328by the bootloader @command{installer} command, such as @code{/dev/sda} or 24645@code{grub-bootloader} sollte hier zum Beispiel ein Gerätename angegeben
23329@code{(hd0)} (@pxref{Invoking grub-install,,, grub, GNU GRUB Manual}). For 24646werden, der vom @command{installer}-Befehl des Bootloaders verstanden wird,
23330@code{grub-efi-bootloader}, it should be the mount point of the EFI file 24647etwa @code{/dev/sda} oder @code{(hd0)} (siehe @ref{Invoking grub-install,,,
23331system, usually @file{/boot/efi}. 24648grub, GNU GRUB Manual}). Für @code{grub-efi-bootloader} sollte der
23332 24649Einhängepunkt des EFI-Dateisystems angegeben werden, in der Regel
23333@item @code{menu-entries} (default: @code{()}) 24650@file{/boot/efi}.
23334A possibly empty list of @code{menu-entry} objects (see below), denoting 24651
23335entries to appear in the bootloader menu, in addition to the current system 24652@item @code{menu-entries} (Vorgabe: @code{()})
23336entry and the entry pointing to previous system generations. 24653Eine möglicherweise leere Liste von @code{menu-entry}-Objekten (siehe
23337 24654unten), die für Menüeinträge stehen, die im Bootloader-Menü auftauchen
23338@item @code{default-entry} (default: @code{0}) 24655sollen, zusätzlich zum aktuellen Systemeintrag und dem auf vorherige
23339The index of the default boot menu entry. Index 0 is for the entry of the 24656Systemgenerationen verweisenden Eintrag.
23340current system. 24657
23341 24658@item @code{default-entry} (Vorgabe: @code{0})
23342@item @code{timeout} (default: @code{5}) 24659Die Position des standardmäßig ausgewählten Bootmenü-Eintrags. An Position 0
23343The number of seconds to wait for keyboard input before booting. Set to 0 24660steht der Eintrag der aktuellen Systemgeneration.
23344to boot immediately, and to -1 to wait indefinitely. 24661
23345 24662@item @code{timeout} (Vorgabe: @code{5})
23346@item @code{theme} (default: @var{#f}) 24663Wieviele Sekunden lang im Menü auf eine Tastatureingabe gewartet wird, bevor
23347The bootloader theme object describing the theme to use. If no theme is 24664gebootet wird. 0 steht für sofortiges Booten, für -1 wird ohne
23348provided, some bootloaders might use a default theme, that's true for GRUB. 24665Zeitbeschränkung gewartet.
23349 24666
23350@item @code{terminal-outputs} (default: @code{'gfxterm}) 24667@cindex Tastaturbelegung, beim Bootloader
23351The output terminals used for the bootloader boot menu, as a list of 24668@item @code{keyboard-layout} (Vorgabe: @code{#f})
23352symbols. GRUB accepts the values: @code{console}, @code{serial}, 24669Wenn dies auf @code{#f} gesetzt ist, verwendet das Menü des Bootloaders
23353@code{serial_@{0-3@}}, @code{gfxterm}, @code{vga_text}, @code{mda_text}, 24670(falls vorhanden) die Vorgabe-Tastaturbelegung, normalerweise
23354@code{morse}, and @code{pkmodem}. This field corresponds to the GRUB 24671US@tie{}English (»qwerty«).
23355variable @code{GRUB_TERMINAL_OUTPUT} (@pxref{Simple configuration,,, 24672
23356grub,GNU GRUB manual}). 24673Andernfalls muss es ein @code{keyboard-layout}-Objekt sein (siehe
23357 24674@ref{Tastaturbelegung}).
23358@item @code{terminal-inputs} (default: @code{'()}) 24675
23359The input terminals used for the bootloader boot menu, as a list of 24676@quotation Anmerkung
23360symbols. For GRUB, the default is the native platform terminal as 24677Dieses Feld wird derzeit von Bootloadern außer @code{grub} und
23361determined at run-time. GRUB accepts the values: @code{console}, 24678@code{grub-efi} ignoriert.
23362@code{serial}, @code{serial_@{0-3@}}, @code{at_keyboard}, and 24679@end quotation
23363@code{usb_keyboard}. This field corresponds to the GRUB variable 24680
23364@code{GRUB_TERMINAL_INPUT} (@pxref{Simple configuration,,, grub,GNU GRUB 24681@item @code{theme} (Vorgabe: @var{#f})
24682Ein Objekt für das im Bootloader anzuzeigende Thema. Wird kein Thema
24683angegeben, benutzen manche Bootloader vielleicht ein voreingestelltes Thema;
24684GRUB zumindest macht es so.
24685
24686@item @code{terminal-outputs} (Vorgabe: @code{'gfxterm})
24687Die Ausgabeterminals, die für das Boot-Menü des Bootloaders benutzt werden,
24688als eine Liste von Symbolen. GRUB akzeptiert hier diese Werte:
24689@code{console}, @code{serial}, @code{serial_@{0–3@}}, @code{gfxterm},
24690@code{vga_text}, @code{mda_text}, @code{morse} und @code{pkmodem}. Dieses
24691Feld entspricht der GRUB-Variablen @code{GRUB_TERMINAL_OUTPUT} (siehe
24692@ref{Simple configuration,,, grub,GNU GRUB manual}).
24693
24694@item @code{terminal-inputs} (Vorgabe: @code{'()})
24695Die Eingabeterminals, die für das Boot-Menü des Bootloaders benutzt werden,
24696als eine Liste von Symbolen. GRUB verwendet hier das zur Laufzeit bestimmte
24697Standardterminal. GRUB akzeptiert sonst diese Werte: @code{console},
24698@code{serial}, @code{serial_@{0-3@}}, @code{at_keyboard} und
24699@code{usb_keyboard}. Dieses Feld entspricht der GRUB-Variablen
24700@code{GRUB_TERMINAL_INPUT} (siehe @ref{Simple configuration,,, grub,GNU GRUB
23365manual}). 24701manual}).
23366 24702
23367@item @code{serial-unit} (default: @code{#f}) 24703@item @code{serial-unit} (Vorgabe: @code{#f})
23368The serial unit used by the bootloader, as an integer from 0 to 3. For 24704Die serielle Einheit, die der Bootloader benutzt, als eine ganze Zahl
23369GRUB, it is chosen at run-time; currently GRUB chooses 0, which corresponds 24705zwischen 0 und 3, einschließlich. Für GRUB wird sie automatisch zur Laufzeit
23370to COM1 (@pxref{Serial terminal,,, grub,GNU GRUB manual}). 24706ausgewählt; derzeit wählt GRUB die 0 aus, die COM1 entspricht (siehe
24707@ref{Serial terminal,,, grub,GNU GRUB manual}).
23371 24708
23372@item @code{serial-speed} (default: @code{#f}) 24709@item @code{serial-speed} (Vorgabe: @code{#f})
23373The speed of the serial interface, as an integer. For GRUB, the default 24710Die Geschwindigkeit der seriellen Schnittstelle als eine ganze Zahl. GRUB
23374value is chosen at run-time; currently GRUB chooses 9600@tie{}bps 24711bestimmt den Wert standardmäßig zur Laufzeit; derzeit wählt GRUB
23375(@pxref{Serial terminal,,, grub,GNU GRUB manual}). 247129600@tie{}bps (siehe @ref{Serial terminal,,, grub,GNU GRUB manual}).
23376@end table 24713@end table
23377 24714
23378@end deftp 24715@end deftp
23379 24716
23380@cindex dual boot 24717@cindex Dual-Boot
23381@cindex boot menu 24718@cindex Bootmenü
23382Should you want to list additional boot menu entries @i{via} the 24719Sollten Sie zusätzliche Bootmenü-Einträge über das oben beschriebene
23383@code{menu-entries} field above, you will need to create them with the 24720@code{menu-entries}-Feld hinzufügen möchten, müssen Sie diese mit der
23384@code{menu-entry} form. For example, imagine you want to be able to boot 24721@code{menu-entry}-Form erzeugen. Stellen Sie sich zum Beispiel vor, Sie
23385another distro (hard to imagine!), you can define a menu entry along these 24722wollten noch eine andere Distribution booten nnen (schwer vorstellbar!),
23386lines: 24723dann könnten Sie einen Menüeintrag wie den Folgenden definieren:
23387 24724
23388@example 24725@example
23389(menu-entry 24726(menu-entry
23390 (label "The Other Distro") 24727 (label "Die _andere_ Distribution")
23391 (linux "/boot/old/vmlinux-2.6.32") 24728 (linux "/boot/old/vmlinux-2.6.32")
23392 (linux-arguments '("root=/dev/sda2")) 24729 (linux-arguments '("root=/dev/sda2"))
23393 (initrd "/boot/old/initrd")) 24730 (initrd "/boot/old/initrd"))
23394@end example 24731@end example
23395 24732
23396Details below. 24733Details finden Sie unten.
23397 24734
23398@deftp {Data Type} menu-entry 24735@deftp {Datentyp} menu-entry
23399The type of an entry in the bootloader menu. 24736Der Typ eines Eintrags im Bootloadermenü.
23400 24737
23401@table @asis 24738@table @asis
23402 24739
23403@item @code{label} 24740@item @code{label}
23404The label to show in the menu---e.g., @code{"GNU"}. 24741Die Beschriftung, die im Menü gezeigt werden soll — z.B.@: @code{"GNU"}.
23405 24742
23406@item @code{linux} 24743@item @code{linux}
23407The Linux kernel image to boot, for example: 24744Das Linux-Kernel-Abbild, was gebootet werden soll, zum Beispiel:
23408 24745
23409@example 24746@example
23410(file-append linux-libre "/bzImage") 24747(file-append linux-libre "/bzImage")
23411@end example 24748@end example
23412 24749
23413For GRUB, it is also possible to specify a device explicitly in the file 24750Für GRUB kann hier auch ein Gerät ausdcklich zum Dateipfad angegeben
23414path using GRUB's device naming convention (@pxref{Naming convention,,, 24751werden, unter Verwendung von GRUBs Konventionen zur Gerätebenennung (siehe
23415grub, GNU GRUB manual}), for example: 24752@ref{Naming convention,,, grub, GNU GRUB manual}), zum Beispiel:
23416 24753
23417@example 24754@example
23418"(hd0,msdos1)/boot/vmlinuz" 24755"(hd0,msdos1)/boot/vmlinuz"
23419@end example 24756@end example
23420 24757
23421If the device is specified explicitly as above, then the @code{device} field 24758Wenn das Gerät auf diese Weise ausdrücklich angegeben wird, wird das
23422is ignored entirely. 24759@code{device}-Feld gänzlich ignoriert.
23423 24760
23424@item @code{linux-arguments} (default: @code{()}) 24761@item @code{linux-arguments} (Vorgabe: @code{()})
23425The list of extra Linux kernel command-line arguments---e.g., 24762Die Liste zusätzlicher Linux-Kernel-Befehlszeilenargumente — z.B.@:
23426@code{("console=ttyS0")}. 24763@code{("console=ttyS0")}.
23427 24764
23428@item @code{initrd} 24765@item @code{initrd}
23429A G-Expression or string denoting the file name of the initial RAM disk to 24766Ein G-Ausdruck oder eine Zeichenkette, die den Dateinamen der initialen
23430use (@pxref{G-Ausdrücke}). 24767RAM-Disk angibt, die benutzt werden soll (siehe @ref{G-Ausdrücke}).
23431@item @code{device} (default: @code{#f}) 24768@item @code{device} (Vorgabe: @code{#f})
23432The device where the kernel and initrd are to be found---i.e., for GRUB, 24769Das Gerät, auf dem Kernel und initrd zu finden sind — d.h.@: bei GRUB die
23433@dfn{root} for this menu entry (@pxref{root,,, grub, GNU GRUB manual}). 24770Wurzel (@dfn{root}) dieses Menüeintrags (siehe @ref{root,,, grub, GNU GRUB
23434 24771manual}).
23435This may be a file system label (a string), a file system UUID (a 24772
23436bytevector, @pxref{Dateisysteme}), or @code{#f}, in which case the 24773Dies kann eine Dateisystembezeichnung (als Zeichenkette), eine
23437bootloader will search the device containing the file specified by the 24774Dateisystem-UUID (als Bytevektor, siehe @ref{Dateisysteme}) oder @code{#f}
23438@code{linux} field (@pxref{search,,, grub, GNU GRUB manual}). It must 24775sein, im letzten Fall wird der Bootloader auf dem Gerät suchen, das die vom
23439@emph{not} be an OS device name such as @file{/dev/sda1}. 24776@code{linux}-Feld benannte Datei enthält (siehe @ref{search,,, grub, GNU
24777GRUB manual}). Ein vom Betriebssystem vergebener Gerätename wie
24778@file{/dev/sda1} ist aber @emph{nicht} erlaubt.
23440 24779
23441@end table 24780@end table
23442@end deftp 24781@end deftp
23443 24782
23444@c FIXME: Write documentation once it's stable. 24783@c FIXME: Write documentation once it's stable.
23445Fow now only GRUB has theme support. GRUB themes are created using the 24784For now only GRUB has theme support. GRUB themes are created using the
23446@code{grub-theme} form, which is not documented yet. 24785@code{grub-theme} form, which is not documented yet.
23447 24786
23448@defvr {Scheme Variable} %default-theme 24787@defvr {Scheme Variable} %default-theme
23449This is the default GRUB theme used by the operating system if no 24788Das vorgegebene GRUB-Thema, das vom Betriebssystem benutzt wird, wenn kein
23450@code{theme} field is specified in @code{bootloader-configuration} record. 24789@code{theme}-Feld im @code{bootloader-configuration}-Verbundsobjekt
24790angegeben wurde.
23451 24791
23452It comes with a fancy background image displaying the GNU and Guix logos. 24792Es wird von einem feschen Hintergrundbild begleitet, das die Logos von GNU
24793und Guix zeigt.
23453@end defvr 24794@end defvr
23454 24795
23455 24796
@@ -23505,27 +24846,28 @@ relevance: 2
23505 24846
23506Wie auch bei @command{guix package --search} wird das Ergebnis im 24847Wie auch bei @command{guix package --search} wird das Ergebnis im
23507@code{recutils}-Format geliefert, so dass es leicht ist, die Ausgabe zu 24848@code{recutils}-Format geliefert, so dass es leicht ist, die Ausgabe zu
23508filtern (@pxref{Top, GNU recutils databases,, recutils, GNU recutils 24849filtern (siehe @ref{Top, GNU recutils databases,, recutils, GNU recutils
23509manual}). 24850manual}).
23510 24851
23511@item reconfigure 24852@item reconfigure
23512Build the operating system described in @var{file}, activate it, and switch 24853Das in der @var{Datei} beschriebene Betriebssystem erstellen, aktivieren und
23513to it@footnote{This action (and the related actions @code{switch-generation} 24854zu ihm wechseln@footnote{Diese Aktion (und die dazu ähnlichen Aktionen
23514and @code{roll-back}) are usable only on systems already running Guix 24855@code{switch-generation} und @code{roll-back}) sind nur auf Systemen
23515System.}. 24856nutzbar, auf denen »Guix System« bereits läuft.}.
23516 24857
23517This effects all the configuration specified in @var{file}: user accounts, 24858Dieser Befehl setzt die in der @var{Datei} festgelegte Konfiguration
23518system services, global package list, setuid programs, etc. The command 24859vollständig um: Benutzerkonten, Systemdienste, die Liste globaler Pakete,
23519starts system services specified in @var{file} that are not currently 24860setuid-Programme und so weiter. Der Befehl startet die in der @var{Datei}
23520running; if a service is currently running this command will arrange for it 24861angegebenen Systemdienste, die aktuell nicht laufen; bei aktuell laufenden
23521to be upgraded the next time it is stopped (e.g.@: by @code{herd stop X} or 24862Diensten wird sichergestellt, dass sie aktualisiert werden, sobald sie das
24863nächste Mal angehalten wurden (z.B.@: durch @code{herd stop X} oder
23522@code{herd restart X}). 24864@code{herd restart X}).
23523 24865
23524Dieser Befehl erzeugt eine neue Generation, deren Nummer (wie @command{guix 24866Dieser Befehl erzeugt eine neue Generation, deren Nummer (wie @command{guix
23525system list-generations} sie anzeigt) um eins größer als die der aktuellen 24867system list-generations} sie anzeigt) um eins größer als die der aktuellen
23526Generation ist. Wenn die so nummerierte Generation bereits existiert, wird 24868Generation ist. Wenn die so nummerierte Generation bereits existiert, wird
23527sie überschrieben. Dieses Verhalten entspricht dem von @command{guix 24869sie überschrieben. Dieses Verhalten entspricht dem von @command{guix
23528package} (@pxref{Aufruf von guix package}). 24870package} (siehe @ref{Aufruf von guix package}).
23529 24871
23530Des Weiteren wird für den Bootloader ein Menüeintrag für die neue 24872Des Weiteren wird für den Bootloader ein Menüeintrag für die neue
23531Betriebssystemkonfiguration hinzugefügt, außer die Befehlszeilenoption 24873Betriebssystemkonfiguration hinzugefügt, außer die Befehlszeilenoption
@@ -23538,9 +24880,10 @@ notwendig wird.
23538@c The paragraph below refers to the problem discussed at 24880@c The paragraph below refers to the problem discussed at
23539@c <http://lists.gnu.org/archive/html/guix-devel/2014-08/msg00057.html>. 24881@c <http://lists.gnu.org/archive/html/guix-devel/2014-08/msg00057.html>.
23540Es ist sehr zu empfehlen, @command{guix pull} einmal auszuführen, bevor Sie 24882Es ist sehr zu empfehlen, @command{guix pull} einmal auszuführen, bevor Sie
23541@command{guix system reconfigure} zum ersten Mal aufrufen (@pxref{Aufruf von guix pull}). Wenn Sie das nicht tun, könnten Sie nach dem Abschluss von 24883@command{guix system reconfigure} zum ersten Mal aufrufen (siehe
23542@command{reconfigure} eine ältere Version von Guix vorfinden, als Sie vorher 24884@ref{Aufruf von guix pull}). Wenn Sie das nicht tun, könnten Sie nach dem
23543hatten. 24885Abschluss von @command{reconfigure} eine ältere Version von Guix vorfinden,
24886als Sie vorher hatten.
23544@end quotation 24887@end quotation
23545 24888
23546@item switch-generation 24889@item switch-generation
@@ -23600,30 +24943,33 @@ diese Aktion aufgerufen haben, Ihr System neu starten, um die vorhergehende
23600Systemgeneration auch tatsächlich zu benutzen. 24943Systemgeneration auch tatsächlich zu benutzen.
23601 24944
23602@item delete-generations 24945@item delete-generations
23603@cindex deleting system generations 24946@cindex Löschen von Systemgenerationen
23604@cindex saving space 24947@cindex Platz sparen
23605Delete system generations, making them candidates for garbage collection 24948Systemgenerationen löschen, wodurch diese zu Kandidaten für den llsammler
23606(@pxref{Aufruf von guix gc}, for information on how to run the ``garbage 24949werden (siehe @ref{Aufruf von guix gc} für Informationen, wie Sie den
23607collector''). 24950»Müllsammler« laufen lassen).
23608 24951
23609This works in the same way as @command{guix package --delete-generations} 24952Es funktioniert auf die gleiche Weise wie @command{guix package
23610(@pxref{Aufruf von guix package, @code{--delete-generations}}). With no 24953--delete-generations} (siehe @ref{Aufruf von guix package,
23611arguments, all system generations but the current one are deleted: 24954@code{--delete-generations}}). Wenn keine Argumente angegeben werden, werden
24955alle Systemgenerationen außer der aktuellen gelöscht:
23612 24956
23613@example 24957@example
23614guix system delete-generations 24958guix system delete-generations
23615@end example 24959@end example
23616 24960
23617You can also select the generations you want to delete. The example below 24961Sie können auch eine Auswahl treffen, welche Generationen Sie löschen
23618deletes all the system generations that are more than two month old: 24962möchten. Das folgende Beispiel hat die Löschung aller Systemgenerationen zur
24963Folge, die älter als zwei Monate sind:
23619 24964
23620@example 24965@example
23621guix system delete-generations 2m 24966guix system delete-generations 2m
23622@end example 24967@end example
23623 24968
23624Running this command automatically reinstalls the bootloader with an updated 24969Wenn Sie diesen Befehl ausführen, wird automatisch der Bootloader mit einer
23625list of menu entries---e.g., the ``old generations'' sub-menu in GRUB no 24970aktualisierten Liste von Menüeinträgen neu erstellt — z.B.@: werden im
23626longer lists the generations that have been deleted. 24971Untermenü für die »alten Generationen« in GRUB die gelöschten Generationen
24972nicht mehr aufgeführt.
23627 24973
23628@item build 24974@item build
23629Die Ableitung des Betriebssystems erstellen, einschließlich aller 24975Die Ableitung des Betriebssystems erstellen, einschließlich aller
@@ -23631,9 +24977,9 @@ Konfigurationsdateien und Programme, die zum Booten und Starten benötigt
23631werden. Diese Aktion installiert jedoch nichts davon. 24977werden. Diese Aktion installiert jedoch nichts davon.
23632 24978
23633@item init 24979@item init
23634Populate the given directory with all the files necessary to run the 24980In das angegebene Verzeichnis alle Dateien einfügen, um das in der
23635operating system specified in @var{file}. This is useful for first-time 24981@var{Datei} angegebene Betriebssystem starten zu können. Dies isttzlich
23636installations of Guix System. For instance: 24982bei erstmaligen Installationen von »Guix System«. Zum Beispiel:
23637 24983
23638@example 24984@example
23639guix system init my-os-config.scm /mnt 24985guix system init my-os-config.scm /mnt
@@ -23643,7 +24989,7 @@ Hiermit werden alle Store-Objekte nach @file{/mnt} kopiert, die von der in
23643@file{my-os-config.scm} angegebenen Konfiguration vorausgesetzt werden. Dazu 24989@file{my-os-config.scm} angegebenen Konfiguration vorausgesetzt werden. Dazu
23644gehören Konfigurationsdateien, Pakete und so weiter. Auch andere essenzielle 24990gehören Konfigurationsdateien, Pakete und so weiter. Auch andere essenzielle
23645Dateien, die auf dem System vorhanden sein müssen, damit es richtig 24991Dateien, die auf dem System vorhanden sein müssen, damit es richtig
23646funktioniert, werden erzeugt — z.B. die Verzeichnisse @file{/etc}, 24992funktioniert, werden erzeugt — z.B.@: die Verzeichnisse @file{/etc},
23647@file{/var} und @file{/run} und die Datei @file{/bin/sh}. 24993@file{/var} und @file{/run} und die Datei @file{/bin/sh}.
23648 24994
23649Dieser Befehl installiert auch den Bootloader auf dem in @file{my-os-config} 24995Dieser Befehl installiert auch den Bootloader auf dem in @file{my-os-config}
@@ -23654,20 +25000,23 @@ wurde übergeben.
23654@cindex virtuelle Maschine 25000@cindex virtuelle Maschine
23655@cindex VM 25001@cindex VM
23656@anchor{guix system vm} 25002@anchor{guix system vm}
23657Build a virtual machine that contains the operating system declared in 25003Eine virtuelle Maschine (VM) erstellen, die das in der @var{Datei}
23658@var{file}, and return a script to run that virtual machine (VM). 25004deklarierte Betriebssystem enthält, und ein Skript liefern, das diese
25005virtuelle Maschine startet.
23659 25006
23660@quotation Anmerkung 25007@quotation Anmerkung
23661The @code{vm} action and others below can use KVM support in the Linux-libre 25008Die Aktion @code{vm} sowie solche, die weiter unten genannt werden, können
23662kernel. Specifically, if the machine has hardware virtualization support, 25009KVM-Unterstützung im Kernel Linux-libre ausnutzen. Insbesondere sollte, wenn
23663the corresponding KVM kernel module should be loaded, and the 25010die Maschine Hardware-Virtualisierung unterstützt, das entsprechende
23664@file{/dev/kvm} device node must exist and be readable and writable by the 25011KVM-Kernelmodul geladen sein und das Gerät @file{/dev/kvm} muss dann
23665user and by the build users of the daemon (@pxref{Einrichten der Erstellungsumgebung}). 25012existieren und dem Benutzer und den Erstellungsbenutzern des Daemons müssen
25013Berechtigungen zum Lesen und Schreiben darauf gegeben werden (siehe
25014@ref{Einrichten der Erstellungsumgebung}).
23666@end quotation 25015@end quotation
23667 25016
23668Arguments given to the script are passed to QEMU as in the example below, 25017An das Skript übergebene Argumente werden an QEMU weitergereicht, wie Sie am
23669which enables networking and requests 1@tie{}GiB of RAM for the emulated 25018folgenden Beispiel sehen können. Damit rde eine Netzwerkverbindung
23670machine: 25019aktiviert und 1@tie{}GiB an RAM für die emulierte Maschine angefragt:
23671 25020
23672@example 25021@example
23673$ /gnu/store/@dots{}-run-vm.sh -m 1024 -net user 25022$ /gnu/store/@dots{}-run-vm.sh -m 1024 -net user
@@ -23722,9 +25071,10 @@ Sie können den Dateisystemtyp für das Wurzeldateisystem mit der
23722Befehlszeilenoption @option{--file-system-type} festlegen. Vorgegeben ist, 25071Befehlszeilenoption @option{--file-system-type} festlegen. Vorgegeben ist,
23723@code{ext4} zu verwenden. 25072@code{ext4} zu verwenden.
23724 25073
23725When using @code{vm-image}, the returned image is in qcow2 format, which the 25074Wenn Sie ein @code{vm-image} anfordern, ist das gelieferte Disk-Image im
23726QEMU emulator can efficiently use. @xref{Running Guix in a VM}, for more 25075qcow2-Format, was vom QEMU-Emulator effizient benutzt werden kann. Im
23727information on how to run the image in a virtual machine. 25076Abschnitt @ref{Guix in einer VM starten} finden Sie mehr Informationen, wie Sie
25077das Disk-Image in einer virtuellen Maschine laufen lassen.
23728 25078
23729Wenn Sie ein @code{disk-image} anfordern, wird ein rohes Disk-Image 25079Wenn Sie ein @code{disk-image} anfordern, wird ein rohes Disk-Image
23730hergestellt; es kann zum Beispiel auf einen USB-Stick kopiert 25080hergestellt; es kann zum Beispiel auf einen USB-Stick kopiert
@@ -23744,19 +25094,20 @@ haben. Sie können das Abbild dann wie folgt laden und einen Docker-Container
23744damit erzeugen: 25094damit erzeugen:
23745 25095
23746@example 25096@example
23747image_id="$(docker load < guixsd-docker-image.tar.gz)" 25097image_id="$(docker load < guix-system-docker-image.tar.gz)"
23748docker run -e GUIX_NEW_SYSTEM=/var/guix/profiles/system \\ 25098docker run -e GUIX_NEW_SYSTEM=/var/guix/profiles/system \\
23749 --entrypoint /var/guix/profiles/system/profile/bin/guile \\ 25099 --entrypoint /var/guix/profiles/system/profile/bin/guile \\
23750 $image_id /var/guix/profiles/system/boot 25100 $image_id /var/guix/profiles/system/boot
23751@end example 25101@end example
23752 25102
23753This command starts a new Docker container from the specified image. It 25103Dieser Befehl startet einen neuen Docker-Container aus dem angegebenen
23754will boot the Guix system in the usual manner, which means it will start any 25104Abbild. Damit wird das Guix-System auf die normale Weise hochgefahren,
23755services you have defined in the operating system configuration. Depending 25105d.h.@: zunächst werden alle Dienste gestartet, die Sie in der Konfiguration
23756on what you run in the Docker container, it may be necessary to give the 25106des Betriebssystems angegeben haben. Je nachdem, was Sie im Docker-Container
23757container additional permissions. For example, if you intend to build 25107ausführen, kann es nötig sein, dass Sie ihn mit weitergehenden
23758software using Guix inside of the Docker container, you may need to pass the 25108Berechtigungen ausstatten. Wenn Sie zum Beispiel Software mit Guix innerhalb
23759@option{--privileged} option to @code{docker run}. 25109des Docker-Containers erstellen wollen, müssen Sie an @code{docker run} die
25110Befehlszeilenoption @option{--privileged} übergeben.
23760 25111
23761@item container 25112@item container
23762Liefert ein Skript, um das in der @var{Datei} deklarierte Betriebssystem in 25113Liefert ein Skript, um das in der @var{Datei} deklarierte Betriebssystem in
@@ -23772,7 +25123,7 @@ Zur Zeit muss das Skript als Administratornutzer »root« ausgeführt werden,
23772damit darin mehr als nur ein einzelner Benutzer und eine Benutzergruppe 25123damit darin mehr als nur ein einzelner Benutzer und eine Benutzergruppe
23773unterstützt wird. Der Container teilt seinen Store mit dem Wirtssystem. 25124unterstützt wird. Der Container teilt seinen Store mit dem Wirtssystem.
23774 25125
23775Wie bei der Aktion @code{vm} (@pxref{guix system vm}) können zusätzlich 25126Wie bei der Aktion @code{vm} (siehe @ref{guix system vm}) können zusätzlich
23776weitere Dateisysteme zwischen Wirt und Container geteilt werden, indem man 25127weitere Dateisysteme zwischen Wirt und Container geteilt werden, indem man
23777die Befehlszeilenoptionen @option{--share} und @option{--expose} verwendet: 25128die Befehlszeilenoptionen @option{--share} und @option{--expose} verwendet:
23778 25129
@@ -23788,21 +25139,22 @@ Diese Befehlszeilenoption funktioniert nur mit Linux-libre 3.19 oder neuer.
23788@end table 25139@end table
23789 25140
23790Unter den @var{Optionen} können beliebige gemeinsame Erstellungsoptionen 25141Unter den @var{Optionen} können beliebige gemeinsame Erstellungsoptionen
23791aufgeführt werden (siehe @pxref{Gemeinsame Erstellungsoptionen}). Des Weiteren kann 25142aufgeführt werden (siehe @ref{Gemeinsame Erstellungsoptionen}). Des Weiteren kann als
23792als @var{Optionen} Folgendes angegeben werden: 25143@var{Optionen} Folgendes angegeben werden:
23793 25144
23794@table @option 25145@table @option
23795@item --expression=@var{Ausdruck} 25146@item --expression=@var{Ausdruck}
23796@itemx -e @var{Ausdruck} 25147@itemx -e @var{Ausdruck}
23797Consider the operating-system @var{expr} evaluates to. This is an 25148Als Konfiguration des Betriebssystems das »operating-system« betrachten, zu
23798alternative to specifying a file which evaluates to an operating system. 25149dem der @var{Ausdruck} ausgewertet wird. Dies ist eine Alternative dazu, die
23799This is used to generate the Guix system installer @pxref{Ein Abbild zur Installation erstellen}). 25150Konfiguration in einer Datei festzulegen. Hiermit wird auch das
25151Installationsabbild des Guix-Systems erstellt, siehe @ref{Ein Abbild zur Installation erstellen}).
23800 25152
23801@item --system=@var{System} 25153@item --system=@var{System}
23802@itemx -s @var{System} 25154@itemx -s @var{System}
23803Versuche, für das angegebene @var{System} statt für denselben Systemtyp wie 25155Versuche, für das angegebene @var{System} statt für denselben Systemtyp wie
23804auf dem Wirtssystem zu erstellen. Dies funktioniert wie bei @command{guix 25156auf dem Wirtssystem zu erstellen. Dies funktioniert wie bei @command{guix
23805build} (@pxref{Aufruf von guix build}). 25157build} (siehe @ref{Aufruf von guix build}).
23806 25158
23807@item --derivation 25159@item --derivation
23808@itemx -d 25160@itemx -d
@@ -23810,7 +25162,7 @@ Liefert den Namen der Ableitungsdatei für das angegebene Betriebssystem,
23810ohne dazu etwas zu erstellen. 25162ohne dazu etwas zu erstellen.
23811 25163
23812@item --file-system-type=@var{Typ} 25164@item --file-system-type=@var{Typ}
23813@itemx -t @var{type} 25165@itemx -t @var{Typ}
23814Für die Aktion @code{disk-image} wird hiermit ein Dateisystem des 25166Für die Aktion @code{disk-image} wird hiermit ein Dateisystem des
23815angegebenen @var{Typ}s im Abbild bzw. Disk-Image erzeugt. 25167angegebenen @var{Typ}s im Abbild bzw. Disk-Image erzeugt.
23816 25168
@@ -23827,17 +25179,17 @@ für das Brennen auf CDs und DVDs geeignet ist.
23827Für die Aktionen @code{vm-image} und @code{disk-image} wird hiermit 25179Für die Aktionen @code{vm-image} und @code{disk-image} wird hiermit
23828festgelegt, dass ein Abbild der angegebenen @var{Größe} erstellt werden 25180festgelegt, dass ein Abbild der angegebenen @var{Größe} erstellt werden
23829soll. Die @var{Größe} kann als Zahl die Anzahl Bytes angeben oder mit einer 25181soll. Die @var{Größe} kann als Zahl die Anzahl Bytes angeben oder mit einer
23830Einheit als Suffix versehen werden (siehe @pxref{Block size, size 25182Einheit als Suffix versehen werden (siehe @ref{Block size, size
23831specifications,, coreutils, GNU Coreutils}). 25183specifications,, coreutils, GNU Coreutils}).
23832 25184
23833Wird keine solche Befehlszeilenoption angegeben, berechnet @command{guix 25185Wird keine solche Befehlszeilenoption angegeben, berechnet @command{guix
23834system} eine Schätzung der Abbildgröße anhand der Größe des in der 25186system} eine Schätzung der Abbildgröße anhand der Größe des in der
23835@var{Datei} deklarierten Systems. 25187@var{Datei} deklarierten Systems.
23836 25188
23837@item --root=@var{file} 25189@item --root=@var{Datei}
23838@itemx -r @var{file} 25190@itemx -r @var{Datei}
23839Make @var{file} a symlink to the result, and register it as a garbage 25191Die @var{Datei} zu einer symbolischen Verknüpfung auf das Ergebnis machen
23840collector root. 25192und als Müllsammlerwurzel registrieren.
23841 25193
23842@item --skip-checks 25194@item --skip-checks
23843Die Konfiguration @emph{nicht} vor der Installation zur Sicherheit auf 25195Die Konfiguration @emph{nicht} vor der Installation zur Sicherheit auf
@@ -23847,14 +25199,14 @@ Das vorgegebene Verhalten von @command{guix system init} und @command{guix
23847system reconfigure} sieht vor, die Konfiguration zur Sicherheit auf Fehler 25199system reconfigure} sieht vor, die Konfiguration zur Sicherheit auf Fehler
23848hin zu überprüfen, die ihr Autor übersehen haben könnte: Es wird 25200hin zu überprüfen, die ihr Autor übersehen haben könnte: Es wird
23849sichergestellt, dass die in der @code{operating-system}-Deklaration 25201sichergestellt, dass die in der @code{operating-system}-Deklaration
23850erwähnten Dateisysteme tatsächlich existieren (@pxref{Dateisysteme}) und 25202erwähnten Dateisysteme tatsächlich existieren (siehe @ref{Dateisysteme}) und
23851dass alle Linux-Kernelmodule, die beim Booten benötigt werden könnten, auch 25203dass alle Linux-Kernelmodule, die beim Booten benötigt werden könnten, auch
23852im @code{initrd-modules}-Feld aufgeführt sind (@pxref{Initiale RAM-Disk}). Mit dieser Befehlszeilenoption werden diese Tests allesamt 25204im @code{initrd-modules}-Feld aufgeführt sind (siehe @ref{Initiale RAM-Disk}). Mit dieser Befehlszeilenoption werden diese Tests allesamt
23853übersprungen. 25205übersprungen.
23854 25206
23855@cindex on-error 25207@cindex on-error
23856@cindex on-error strategy 25208@cindex on-error-Strategie
23857@cindex error strategy 25209@cindex Fehlerstrategie
23858@item --on-error=@var{Strategie} 25210@item --on-error=@var{Strategie}
23859Beim Auftreten eines Fehlers beim Einlesen der @var{Datei} die angegebene 25211Beim Auftreten eines Fehlers beim Einlesen der @var{Datei} die angegebene
23860@var{Strategie} verfolgen. Als @var{Strategie} dient eine der Folgenden: 25212@var{Strategie} verfolgen. Als @var{Strategie} dient eine der Folgenden:
@@ -23874,15 +25226,15 @@ gestartet. Von dort können Sie Befehle ausführen, zum Beispiel können Sie
23874sich mit @code{,bt} eine Rückverfolgung (»Backtrace«) anzeigen lassen und 25226sich mit @code{,bt} eine Rückverfolgung (»Backtrace«) anzeigen lassen und
23875mit @code{,locals} die Werte lokaler Variabler anzeigen lassen. Im 25227mit @code{,locals} die Werte lokaler Variabler anzeigen lassen. Im
23876Allgemeinen können Sie mit Befehlen den Zustand des Programms 25228Allgemeinen können Sie mit Befehlen den Zustand des Programms
23877inspizieren. Siehe @xref{Debug Commands,,, guile, GNU Guile Reference 25229inspizieren. Siehe @ref{Debug Commands,,, guile, GNU Guile Reference Manual}
23878Manual} für eine Liste verfügbarer Befehle zur Fehlersuche. 25230für eine Liste verfügbarer Befehle zur Fehlersuche.
23879@end table 25231@end table
23880@end table 25232@end table
23881 25233
23882Once you have built, configured, re-configured, and re-re-configured your 25234Sobald Sie Ihre Guix-Installation erstellt, konfiguriert, neu konfiguriert
23883Guix installation, you may find it useful to list the operating system 25235und nochmals neu konfiguriert haben, finden Sie es vielleicht hilfreich,
23884generations available on disk---and that you can choose from the bootloader 25236sich die auf der Platte verfügbaren und im Bootmenü des Bootloaders
23885boot menu: 25237auswählbaren — Systemgenerationen auflisten zu lassen:
23886 25238
23887@table @code 25239@table @code
23888 25240
@@ -23890,7 +25242,7 @@ boot menu:
23890Eine für Menschen verständliche Zusammenfassung jeder auf der Platte 25242Eine für Menschen verständliche Zusammenfassung jeder auf der Platte
23891verfügbaren Generation des Betriebssystems ausgeben. Dies ähnelt der 25243verfügbaren Generation des Betriebssystems ausgeben. Dies ähnelt der
23892Befehlszeilenoption @option{--list-generations} von @command{guix package} 25244Befehlszeilenoption @option{--list-generations} von @command{guix package}
23893(@pxref{Aufruf von guix package}). 25245(siehe @ref{Aufruf von guix package}).
23894 25246
23895Optional kann ein Muster angegeben werden, was dieselbe Syntax wie 25247Optional kann ein Muster angegeben werden, was dieselbe Syntax wie
23896@command{guix package --list-generations} benutzt, um damit die Liste 25248@command{guix package --list-generations} benutzt, um damit die Liste
@@ -23913,7 +25265,7 @@ voneinander abhängen:
23913@item extension-graph 25265@item extension-graph
23914Im Dot-/Graphviz-Format auf die Standardausgabe den 25266Im Dot-/Graphviz-Format auf die Standardausgabe den
23915@dfn{Diensterweiterungsgraphen} des in der @var{Datei} definierten 25267@dfn{Diensterweiterungsgraphen} des in der @var{Datei} definierten
23916Betriebssystems ausgeben (@pxref{Dienstkompositionen}, für mehr 25268Betriebssystems ausgeben (siehe @ref{Dienstkompositionen} für mehr
23917Informationen zu Diensterweiterungen). 25269Informationen zu Diensterweiterungen).
23918 25270
23919Der Befehl: 25271Der Befehl:
@@ -23929,28 +25281,30 @@ angezeigt wird.
23929@item shepherd-graph 25281@item shepherd-graph
23930Im Dot-/Graphviz-Format auf die Standardausgabe den 25282Im Dot-/Graphviz-Format auf die Standardausgabe den
23931@dfn{Abhängigkeitsgraphen} der Shepherd-Dienste des in der @var{Datei} 25283@dfn{Abhängigkeitsgraphen} der Shepherd-Dienste des in der @var{Datei}
23932definierten Betriebssystems ausgeben. Siehe @xref{Shepherd-Dienste} für 25284definierten Betriebssystems ausgeben. Siehe @ref{Shepherd-Dienste} für mehr
23933mehr Informationen sowie einen Beispielgraphen. 25285Informationen sowie einen Beispielgraphen.
23934 25286
23935@end table 25287@end table
23936 25288
23937@node Running Guix in a VM 25289@node Guix in einer VM starten
23938@section Running Guix in a Virtual Machine 25290@section Guix in einer virtuellen Maschine betreiben
23939 25291
23940@cindex virtuelle Maschine 25292@cindex virtuelle Maschine
23941To run Guix in a virtual machine (VM), one can either use the pre-built Guix 25293Um Guix in einer virtuellen Maschine (VM) auszuführen, nnen Sie entweder
23942VM image distributed at 25294das vorerstellte Guix-VM-Abbild benutzen, das auf
23943@indicateurl{https://alpha.gnu.org/gnu/guix/guixsd-vm-image-@value{VERSION}.@var{system}.xz} 25295@indicateurl{https://alpha.gnu.org/gnu/guix/guix-system-vm-image-@value{VERSION}.@var{System}.xz}
23944, or build their own virtual machine image using @command{guix system 25296angeboten wird, oder Ihr eigenes Abbild erstellen, indem Sie @command{guix
23945vm-image} (@pxref{Aufruf von guix system}). The returned image is in qcow2 25297system vm-image} benutzen (siehe @ref{Aufruf von guix system}). Das Abbild
23946format, which the @uref{http://qemu.org/, QEMU emulator} can efficiently 25298wird im qcow2-Format zurückgeliefert, das der @uref{http://qemu.org/,
23947use. 25299QEMU-Emulator} effizient benutzen kann.
23948 25300
23949@cindex QEMU 25301@cindex QEMU
23950If you built your own image, you must copy it out of the store (@pxref{Der Store}) and give yourself permission to write to the copy before you can use 25302Wenn Sie Ihr eigenes Abbild erstellen haben lassen, müssen Sie es aus dem
23951it. When invoking QEMU, you must choose a system emulator that is suitable 25303Store herauskopieren (siehe @ref{Der Store}) und sich darauf
23952for your hardware platform. Here is a minimal QEMU invocation that will 25304Schreibberechtigung geben, um die Kopie benutzen zu können. Wenn Sie QEMU
23953boot the result of @command{guix system vm-image} on x86_64 hardware: 25305aufrufen, müssen Sie einen Systememulator angeben, der für Ihre
25306Hardware-Plattform passend ist. Hier ist ein minimaler QEMU-Aufruf, der das
25307Ergebnis von @command{guix system vm-image} auf x86_64-Hardware bootet:
23954 25308
23955@example 25309@example
23956$ qemu-system-x86_64 \ 25310$ qemu-system-x86_64 \
@@ -23958,84 +25312,99 @@ $ qemu-system-x86_64 \
23958 -enable-kvm -m 256 /tmp/qemu-image 25312 -enable-kvm -m 256 /tmp/qemu-image
23959@end example 25313@end example
23960 25314
23961Here is what each of these options means: 25315Die Bedeutung jeder dieser Befehlszeilenoptionen ist folgende:
23962 25316
23963@table @code 25317@table @code
23964@item qemu-system-x86_64 25318@item qemu-system-x86_64
23965This specifies the hardware platform to emulate. This should match the 25319Hiermit wird die zu emulierende Hardware-Plattform angegeben. Sie sollte zum
23966host. 25320Wirtsrechner passen.
23967 25321
23968@item -net user 25322@item -net user
23969Enable the unprivileged user-mode network stack. The guest OS can access 25323Den als Nutzer ausgeführten Netzwerkstapel (»User-Mode Network Stack«) ohne
23970the host but not vice versa. This is the simplest way to get the guest OS 25324besondere Berechtigungen benutzen. Mit dieser Art von Netzwerkanbindung kann
23971online. 25325das Gast-Betriebssystem eine Verbindung zum Wirt aufbauen, aber nicht
25326andersherum. Es ist die einfachste Art, das Gast-Betriebssystem mit dem
25327Internet zu verbinden.
23972 25328
23973@item -net nic,model=virtio 25329@item -net nic,model=virtio
23974You must create a network interface of a given model. If you do not create 25330Sie müssen ein Modell einer zu emulierenden Netzwerkschnittstelle
23975a NIC, the boot will fail. Assuming your hardware platform is x86_64, you 25331angeben. Wenn Sie keine Netzwerkkarte (englisch »Network Interface Card«,
23976can get a list of available NIC models by running 25332kurz NIC) erzeugen lassen, wird das Booten fehlschlagen. Falls Ihre
23977@command{qemu-system-x86_64 -net nic,model=help}. 25333Hardware-Plattform x86_64 ist, können Sie eine Liste verfügbarer NIC-Modelle
25334einsehen, indem Sie @command{qemu-system-x86_64 -net nic,model=help}
25335ausführen.
23978 25336
23979@item -enable-kvm 25337@item -enable-kvm
23980If your system has hardware virtualization extensions, enabling the virtual 25338Wenn Ihr System über Erweiterungen zur Hardware-Virtualisierung verfügt,
23981machine support (KVM) of the Linux kernel will make things run faster. 25339beschleunigt es die Dinge, wenn Sie die Virtualisierungsunterstützung »KVM«
25340des Linux-Kernels benutzen lassen.
23982 25341
23983@item -m 256 25342@item -m 256
23984RAM available to the guest OS, in mebibytes. Defaults to 128@tie{}MiB, 25343Die Menge an Arbeitsspeicher (RAM), die dem Gastbetriebssystem zur Verfügung
23985which may be insufficient for some operations. 25344stehen soll, in Mebibytes. Vorgegeben wären 128@tie{}MiB, was für einige
25345Operationen zu wenig sein könnte.
23986 25346
23987@item /tmp/qemu-image 25347@item /tmp/qemu-image
23988The file name of the qcow2 image. 25348Der Dateiname des qcow2-Abbilds.
23989@end table 25349@end table
23990 25350
23991The default @command{run-vm.sh} script that is returned by an invocation of 25351Das voreingestellte @command{run-vm.sh}-Skript, das durch einen Aufruf von
23992@command{guix system vm} does not add a @command{-net user} flag by 25352@command{guix system vm} erzeugt wird, fügt keine Befehlszeilenoption
23993default. To get network access from within the vm add the 25353@command{-net user} an. Um innerhalb der virtuellen Maschine Netzwerkzugang
23994@code{(dhcp-client-service)} to your system definition and start the VM 25354zu haben, fügen Sie den @code{(dhcp-client-service)} zu Ihrer
23995using @command{`guix system vm config.scm` -net user}. An important caveat 25355Systemdefinition hinzu und starten Sie die VM mit @command{`guix system vm
23996of using @command{-net user} for networking is that @command{ping} will not 25356config.scm` -net user}. Erwähnt werden sollte der Nachteil, dass bei
23997work, because it uses the ICMP protocol. You'll have to use a different 25357Verwendung von @command{-net user} zur Netzanbindung der
23998command to check for network connectivity, for example @command{guix 25358@command{ping}-Befehl @emph{nicht} funktionieren wird, weil dieser das
23999download}. 25359ICMP-Protokoll braucht. Sie werden also einen anderen Befehl benutzen
25360müssen, um auszuprobieren, ob Sie mit dem Netzwerk verbunden sind, zum
25361Beispiel @command{guix download}.
24000 25362
24001@subsection Connecting Through SSH 25363@subsection Verbinden über SSH
24002 25364
24003@cindex SSH 25365@cindex SSH
24004@cindex SSH server 25366@cindex SSH server
24005To enable SSH inside a VM you need to add a SSH server like 25367Um SSH in der virtuellen Maschine zu aktivieren, müssen Sie einen SSH-Server
24006@code{(dropbear-service)} or @code{(lsh-service)} to your VM. The 25368wie den @code{(dropbear-service)} oder den @code{(lsh-service)} zu ihr
24007@code{(lsh-service}) doesn't currently boot unsupervised. It requires you 25369hinzufügen. Der @code{(lsh-service}) kann derzeit nicht ohne
24008to type some characters to initialize the randomness generator. In addition 25370Benutzerinteraktion starten, weil der Benutzer erst ein paar Zeichen
24009you need to forward the SSH port, 22 by default, to the host. You can do 25371eintippen muss, um den Zufallsgenerator zu initialisieren. Des Weiteren
24010this with 25372müssen Sie den SSH-Port für das Wirtssystem freigeben (standardmäßig hat er
25373die Portnummer 22). Das geht zum Beispiel so:
24011 25374
24012@example 25375@example
24013`guix system vm config.scm` -net user,hostfwd=tcp::10022-:22 25376`guix system vm config.scm` -net user,hostfwd=tcp::10022-:22
24014@end example 25377@end example
24015 25378
24016To connect to the VM you can run 25379Um sich mit der virtuellen Maschine zu verbinden, benutzen Sie diesen
25380Befehl:
24017 25381
24018@example 25382@example
24019ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022 25383ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022
24020@end example 25384@end example
24021 25385
24022The @command{-p} tells @command{ssh} the port you want to connect to. 25386Mit @command{-p} wird @command{ssh} der Port mitgeteilt, über den eine
24023@command{-o UserKnownHostsFile=/dev/null} prevents @command{ssh} from 25387Verbindung hergestellt werden soll. @command{-o
24024complaining every time you modify your @command{config.scm} file and the 25388UserKnownHostsFile=/dev/null} verhindert, dass @command{ssh} sich bei jeder
24025@command{-o StrictHostKeyChecking=no} prevents you from having to allow a 25389Modifikation Ihrer @command{config.scm}-Datei beschwert, ein anderer
24026connection to an unknown host every time you connect. 25390bekannter Rechner sei erwartet worden, und @command{-o
25391StrictHostKeyChecking=no} verhindert, dass Sie die Verbindung zu unbekannten
25392Rechnern jedes Mal bestätigen müssen, wenn Sie sich verbinden.
24027 25393
24028@subsection Using @command{virt-viewer} with Spice 25394@subsection @command{virt-viewer} mit Spice benutzen
24029 25395
24030As an alternative to the default @command{qemu} graphical client you can use 25396Eine Alternative zur grafischen Schnittstelle des standardmäßigen
24031the @command{remote-viewer} from the @command{virt-viewer} package. To 25397@command{qemu} ist, sich mit Hilfe des @command{remote-viewer} aus dem Paket
24032connect pass the @command{-spice port=5930,disable-ticketing} flag to 25398@command{virt-viewer} zu verbinden. Um eine Verbindung herzustellen,
24033@command{qemu}. See previous section for further information on how to do 25399übergeben Sie die Befehlszeilenoption @command{-spice
24034this. 25400port=5930,disable-ticketing} an @command{qemu}. Siehe den vorherigen
25401Abschnitt für weitere Informationen, wie Sie das übergeben.
24035 25402
24036Spice also allows you to do some nice stuff like share your clipboard with 25403Spice macht es auch möglich, ein paar nette Hilfestellungen zu benutzen, zum
24037your VM. To enable that you'll also have to pass the following flags to 25404Beispiel können Sie Ihren Zwischenspeicher zum Kopieren und Einfügen (Ihr
24038@command{qemu}: 25405»Clipboard«) mit Ihrer virtuellen Maschine teilen. Um das zu aktivieren,
25406werden Sie die folgenden Befehlszeilennoptionen zusätzlich an @command{qemu}
25407übergeben müssen:
24039 25408
24040@example 25409@example
24041-device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5 25410-device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5
@@ -24044,14 +25413,15 @@ your VM. To enable that you'll also have to pass the following flags to
24044name=com.redhat.spice.0 25413name=com.redhat.spice.0
24045@end example 25414@end example
24046 25415
24047You'll also need to add the @pxref{Verschiedene Dienste, Spice service}. 25416Sie werden auch den @ref{Verschiedene Dienste, Spice-Dienst} hinzufügen
25417müssen.
24048 25418
24049@node Dienste definieren 25419@node Dienste definieren
24050@section Dienste definieren 25420@section Dienste definieren
24051 25421
24052The previous sections show the available services and how one can combine 25422Der vorhergehende Abschnitt präsentiert die verfügbaren Dienste und wie man
24053them in an @code{operating-system} declaration. But how do we define them 25423sie in einer @code{operating-system}-Deklaration kombiniert. Aber wie
24054in the first place? And what is a service anyway? 25424definieren wir solche Dienste eigentlich? Und was ist überhaupt ein Dienst?
24055 25425
24056@menu 25426@menu
24057* Dienstkompositionen:: Wie Dienste zusammengestellt werden. 25427* Dienstkompositionen:: Wie Dienste zusammengestellt werden.
@@ -24064,62 +25434,67 @@ in the first place? And what is a service anyway?
24064@subsection Dienstkompositionen 25434@subsection Dienstkompositionen
24065 25435
24066@cindex services 25436@cindex services
24067@cindex daemons 25437@cindex Daemons
24068Here we define a @dfn{service} as, broadly, something that extends the 25438Wir definieren hier einen @dfn{Dienst} (englisch »Service«) als, grob
24069functionality of the operating system. Often a service is a process---a 25439gesagt, etwas, das die Funktionalität des Betriebssystems erweitert. Oft ist
24070@dfn{daemon}---started when the system boots: a secure shell server, a Web 25440ein Dienst ein Prozess — ein sogenannter @dfn{Daemon} —, der beim Hochfahren
24071server, the Guix build daemon, etc. Sometimes a service is a daemon whose 25441des Systems gestartet wird: ein Secure-Shell-Server, ein Web-Server, der
24072execution can be triggered by another daemon---e.g., an FTP server started 25442Guix-Erstellungsdaemon usw. Manchmal ist ein Dienst ein Daemon, dessen
24073by @command{inetd} or a D-Bus service activated by @command{dbus-daemon}. 25443Ausführung von einem anderen Daemon ausgelöst wird — zum Beispiel wird ein
24074Occasionally, a service does not map to a daemon. For instance, the 25444FTP-Server von @command{inetd} gestartet oder ein D-Bus-Dienst durch
24075``account'' service collects user accounts and makes sure they exist when 25445@command{dbus-daemon} aktiviert. Manchmal entspricht ein Dienst aber auch
24076the system runs; the ``udev'' service collects device management rules and 25446keinem Daemon. Zum Beispiel nimmt sich der Benutzerkonten-Dienst (»account
24077makes them available to the eudev daemon; the @file{/etc} service populates 25447service«) die Benutzerkonten und sorgt dafür, dass sie existieren, wenn das
24078the @file{/etc} directory of the system. 25448System läuft. Der »udev«-Dienst sammelt die Regeln zur Geräteverwaltung an
24079 25449und macht diese für den eudev-Daemon verfügbar. Der @file{/etc}-Dienst fügt
24080@cindex service extensions 25450Dateien in das Verzeichnis @file{/etc} des Systems ein.
24081Guix system services are connected by @dfn{extensions}. For instance, the 25451
24082secure shell service @emph{extends} the Shepherd---the initialization 25452@cindex Diensterweiterungen
24083system, running as PID@tie{}1---by giving it the command lines to start and 25453Dienste des Guix-Systems werden durch @dfn{Erweiterungen} (»Extensions«)
24084stop the secure shell daemon (@pxref{Netzwerkdienste, 25454miteinander verbunden. Zum Beispiel @emph{erweitert} der Secure-Shell-Dienst
24085@code{openssh-service-type}}); the UPower service extends the D-Bus service 25455den Shepherd — Shepherd ist das Initialisierungssystem (auch »init«-System
24086by passing it its @file{.service} specification, and extends the udev 25456genannt), was als PID@tie{}1 läuft —, indem es ihm die Befehlszeilen zum
24087service by passing it device management rules (@pxref{Desktop-Dienste, 25457Starten und Stoppen des Secure-Shell-Daemons übergibt (siehe @ref{Netzwerkdienste, @code{openssh-service-type}}). Der UPower-Dienst erweitert den
24088@code{upower-service}}); the Guix daemon service extends the Shepherd by 25458D-Bus-Dienst, indem es ihm seine @file{.service}-Spezifikation übergibt, und
24089passing it the command lines to start and stop the daemon, and extends the 25459erweitert den udev-Dienst, indem es ihm Geräteverwaltungsregeln übergibt
24090account service by passing it a list of required build user accounts 25460(siehe @ref{Desktop-Dienste, @code{upower-service}}). Der
24091(@pxref{Basisdienste}). 25461Guix-Daemon-Dienst erweitert den Shepherd, indem er ihm die Befehlszeilen
24092 25462zum Starten und Stoppen des Daemons übergibt, und er erweitert den
24093All in all, services and their ``extends'' relations form a directed acyclic 25463Benutzerkontendienst (»account service«), indem er ihm eine Liste der
24094graph (DAG). If we represent services as boxes and extensions as arrows, a 25464benötigten Erstellungsbenutzerkonten übergibt (siehe @ref{Basisdienste}).
24095typical system might provide something like this: 25465
24096 25466Alles in allem bilden Dienste und ihre »Erweitert«-Relationen einen
24097@image{images/service-graph,,5in,Typical service extension graph.} 25467gerichteten azyklischen Graphen (englisch »Directed Acyclic Graph«, kurz
24098 25468DAG). Wenn wir Dienste als Kästen und Erweiterungen als Pfeile darstellen,
24099@cindex system service 25469könnte ein typisches System so etwas hier anbieten:
24100At the bottom, we see the @dfn{system service}, which produces the directory 25470
24101containing everything to run and boot the system, as returned by the 25471@image{images/service-graph,,5in,Typischer Diensterweiterungsgraph}
24102@command{guix system build} command. @xref{Service-Referenz}, to learn 25472
24103about the other service types shown here. @xref{system-extension-graph, the 25473@cindex Systemdienst
24104@command{guix system extension-graph} command}, for information on how to 25474Ganz unten sehen wir den @dfn{Systemdienst}, der das Verzeichnis erzeugt, in
24105generate this representation for a particular operating system definition. 25475dem alles zum Ausführen und Hochfahren enthalten ist, so wie es der Befehl
24106 25476@command{guix system build} liefert. Siehe @ref{Service-Referenz}, um mehr
24107@cindex service types 25477über die anderen hier gezeigten Diensttypen zu erfahren. Beim
24108Technically, developers can define @dfn{service types} to express these 25478@ref{system-extension-graph, Befehl @command{guix system extension-graph}}
24109relations. There can be any number of services of a given type on the 25479finden Sie Informationen darüber, wie Sie diese Darstellung für eine
24110system---for instance, a system running two instances of the GNU secure 25480Betriebssystemdefinition Ihrer Wahl generieren lassen.
24111shell server (lsh) has two instances of @code{lsh-service-type}, with 25481
24112different parameters. 25482@cindex Diensttypen
24113 25483Technisch funktioniert es so, dass Entwickler @dfn{Diensttypen} definieren
24114The following section describes the programming interface for service types 25484können, um diese Beziehungen auszudrücken. Im System kann es beliebig viele
24115and services. 25485Dienste zu jedem Typ geben — zum Beispiel können auf einem System zwei
25486Instanzen des GNU-Secure-Shell-Servers (lsh) laufen, mit zwei Instanzen des
25487Diensttyps @code{lsh-service-type} mit je unterschiedlichen Parametern.
25488
25489Der folgende Abschnitt beschreibt die Programmierschnittstelle für
25490Diensttypen und Dienste.
24116 25491
24117@node Diensttypen und Dienste 25492@node Diensttypen und Dienste
24118@subsection Diensttypen und Dienste 25493@subsection Diensttypen und Dienste
24119 25494
24120A @dfn{service type} is a node in the DAG described above. Let us start 25495Ein @dfn{Diensttyp} (»service type«) ist ein Knoten im oben beschriebenen
24121with a simple example, the service type for the Guix build daemon 25496ungerichteten azyklischen Graphen (DAG). Fangen wir an mit einem einfachen
24122(@pxref{Aufruf des guix-daemon}): 25497Beispiel: dem Diensttyp für den Guix-Erstellungsdaemon (siehe @ref{Aufruf des guix-daemon}):
24123 25498
24124@example 25499@example
24125(define guix-service-type 25500(define guix-service-type
@@ -24133,44 +25508,47 @@ with a simple example, the service type for the Guix build daemon
24133@end example 25508@end example
24134 25509
24135@noindent 25510@noindent
24136It defines three things: 25511Damit sind drei Dinge definiert:
24137 25512
24138@enumerate 25513@enumerate
24139@item 25514@item
24140A name, whose sole purpose is to make inspection and debugging easier. 25515Ein Name, der nur dazu da ist, dass man leichter die Abläufe verstehen und
25516Fehler suchen kann.
24141 25517
24142@item 25518@item
24143A list of @dfn{service extensions}, where each extension designates the 25519Eine Liste von @dfn{Diensterweiterungen} (»service extensions«). Jede
24144target service type and a procedure that, given the parameters of the 25520Erweiterung gibt den Ziel-Diensttyp an sowie eine Prozedur, die für gegebene
24145service, returns a list of objects to extend the service of that type. 25521Parameter für den Dienst eine Liste von Objekten zurückliefert, um den
25522Dienst dieses Typs zu erweitern.
24146 25523
24147Every service type has at least one service extension. The only exception 25524Jeder Diensttyp benutzt mindestens eine Diensterweiterung. Die einzige
24148is the @dfn{boot service type}, which is the ultimate service. 25525Ausnahme ist der @dfn{boot service type}, der die Grundlage aller Dienste
25526ist.
24149 25527
24150@item 25528@item
24151Optionally, a default value for instances of this type. 25529Optional kann ein Vorgabewert für Instanzen dieses Typs angegeben werden.
24152@end enumerate 25530@end enumerate
24153 25531
24154In this example, @var{guix-service-type} extends three services: 25532In this example, @code{guix-service-type} extends three services:
24155 25533
24156@table @var 25534@table @code
24157@item shepherd-root-service-type 25535@item shepherd-root-service-type
24158The @var{guix-shepherd-service} procedure defines how the Shepherd service 25536The @code{guix-shepherd-service} procedure defines how the Shepherd service
24159is extended. Namely, it returns a @code{<shepherd-service>} object that 25537is extended. Namely, it returns a @code{<shepherd-service>} object that
24160defines how @command{guix-daemon} is started and stopped (@pxref{Shepherd-Dienste}). 25538defines how @command{guix-daemon} is started and stopped (@pxref{Shepherd-Dienste}).
24161 25539
24162@item account-service-type 25540@item account-service-type
24163This extension for this service is computed by @var{guix-accounts}, which 25541This extension for this service is computed by @code{guix-accounts}, which
24164returns a list of @code{user-group} and @code{user-account} objects 25542returns a list of @code{user-group} and @code{user-account} objects
24165representing the build user accounts (@pxref{Aufruf des guix-daemon}). 25543representing the build user accounts (@pxref{Aufruf des guix-daemon}).
24166 25544
24167@item activation-service-type 25545@item activation-service-type
24168Here @var{guix-activation} is a procedure that returns a gexp, which is a 25546Here @code{guix-activation} is a procedure that returns a gexp, which is a
24169code snippet to run at ``activation time''---e.g., when the service is 25547code snippet to run at ``activation time''---e.g., when the service is
24170booted. 25548booted.
24171@end table 25549@end table
24172 25550
24173A service of this type is instantiated like this: 25551Ein Dienst dieses Typs wird dann so instanziiert:
24174 25552
24175@example 25553@example
24176(service guix-service-type 25554(service guix-service-type
@@ -24179,22 +25557,22 @@ A service of this type is instantiated like this:
24179 (use-substitutes? #f))) 25557 (use-substitutes? #f)))
24180@end example 25558@end example
24181 25559
24182The second argument to the @code{service} form is a value representing the 25560Das zweite Argument an die @code{service}-Form ist ein Wert, der die
24183parameters of this specific service instance. 25561Parameter dieser bestimmten Dienstinstanz repräsentiert. Siehe
24184@xref{guix-configuration-type, @code{guix-configuration}}, for information 25562@ref{guix-configuration-type, @code{guix-configuration}} für Informationen
24185about the @code{guix-configuration} data type. When the value is omitted, 25563über den @code{guix-configuration}-Datentyp. Wird kein Wert angegeben, wird
24186the default value specified by @code{guix-service-type} is used: 25564die Vorgabe verwendet, die im @code{guix-service-type} angegeben wurde:
24187 25565
24188@example 25566@example
24189(service guix-service-type) 25567(service guix-service-type)
24190@end example 25568@end example
24191 25569
24192@var{guix-service-type} is quite simple because it extends other services 25570@code{guix-service-type} is quite simple because it extends other services
24193but is not extensible itself. 25571but is not extensible itself.
24194 25572
24195@c @subsubsubsection Extensible Service Types 25573@c @subsubsubsection Extensible Service Types
24196 25574
24197The service type for an @emph{extensible} service looks like this: 25575Der Diensttyp eines @emph{erweiterbaren} Dienstes sieht ungefähr so aus:
24198 25576
24199@example 25577@example
24200(define udev-service-type 25578(define udev-service-type
@@ -24203,107 +25581,114 @@ The service type for an @emph{extensible} service looks like this:
24203 (list (service-extension shepherd-root-service-type 25581 (list (service-extension shepherd-root-service-type
24204 udev-shepherd-service))) 25582 udev-shepherd-service)))
24205 25583
24206 (compose concatenate) ;concatenate the list of rules 25584 (compose concatenate) ;Liste der Regeln zusammenfügen
24207 (extend (lambda (config rules) 25585 (extend (lambda (config rules) ;Konfiguration und Regeln
24208 (match config 25586 (match config
24209 (($ <udev-configuration> udev initial-rules) 25587 (($ <udev-configuration> udev initial-rules)
24210 (udev-configuration 25588 (udev-configuration
24211 (udev udev) ;the udev package to use 25589 (udev udev) ;zu benutzendes udev-Paket
24212 (rules (append initial-rules rules))))))))) 25590 (rules (append initial-rules rules)))))))))
24213@end example 25591@end example
24214 25592
24215This is the service type for the 25593This is the service type for the
24216@uref{https://wiki.gentoo.org/wiki/Project:Eudev, eudev device management 25594@uref{https://wiki.gentoo.org/wiki/Project:Eudev, eudev device management
24217daemon}. Compared to the previous example, in addition to an extension of 25595daemon}. Compared to the previous example, in addition to an extension of
24218@var{shepherd-root-service-type}, we see two new fields: 25596@code{shepherd-root-service-type}, we see two new fields:
24219 25597
24220@table @code 25598@table @code
24221@item compose 25599@item compose
24222This is the procedure to @dfn{compose} the list of extensions to services of 25600Die Prozedur, um die Liste der jeweiligen Erweiterungen für den Dienst
24223this type. 25601dieses Typs zu einem Objekt zusammenzustellen (zu »komponieren«, englisch
25602@dfn{compose}).
24224 25603
24225Services can extend the udev service by passing it lists of rules; we 25604Dienste können den udev-Dienst erweitern, indem sie eine Liste von Regeln
24226compose those extensions simply by concatenating them. 25605(»Rules«) an ihn übergeben; wir komponieren mehrere solche Erweiterungen,
25606indem wir die Listen einfach zusammenfügen.
24227 25607
24228@item extend 25608@item extend
24229This procedure defines how the value of the service is @dfn{extended} with 25609Diese Prozedur definiert, wie der Wert des Dienstes um die Komposition mit
24230the composition of the extensions. 25610Erweiterungen erweitert extended«) werden kann.
24231 25611
24232Udev extensions are composed into a list of rules, but the udev service 25612Udev-Erweiterungen werden zu einer einzigen Liste von Regeln komponiert,
24233value is itself a @code{<udev-configuration>} record. So here, we extend 25613aber der Wert des udev-Dienstes ist ein
24234that record by appending the list of rules it contains to the list of 25614@code{<udev-configuration>}-Verbundsobjekt. Deshalb erweitern wir diesen
24235contributed rules. 25615Verbund, indem wir die Liste der von Erweiterungen beigetragenen Regeln an
25616die im Verbund gespeicherte Liste der Regeln anhängen.
24236 25617
24237@item description 25618@item description
24238This is a string giving an overview of the service type. The string can 25619Diese Zeichenkette gibt einen Überblick über den Systemtyp. Die Zeichenkette
24239contain Texinfo markup (@pxref{Overview,,, texinfo, GNU Texinfo}). The 25620darf mit Texinfo ausgezeichnet werden (siehe @ref{Overview,,, texinfo, GNU
24240@command{guix system search} command searches these strings and displays 25621Texinfo}). Der Befehl @command{guix system search} durchsucht diese
24241them (@pxref{Aufruf von guix system}). 25622Zeichenketten und zeigt sie an (siehe @ref{Aufruf von guix system}).
24242@end table 25623@end table
24243 25624
24244There can be only one instance of an extensible service type such as 25625There can be only one instance of an extensible service type such as
24245@var{udev-service-type}. If there were more, the @code{service-extension} 25626@code{udev-service-type}. If there were more, the @code{service-extension}
24246specifications would be ambiguous. 25627specifications would be ambiguous.
24247 25628
24248Still here? The next section provides a reference of the programming 25629Sind Sie noch da? Der nächste Abschnitt gibt Ihnen eine Referenz der
24249interface for services. 25630Programmierschnittstelle für Dienste.
24250 25631
24251@node Service-Referenz 25632@node Service-Referenz
24252@subsection Service-Referenz 25633@subsection Service-Referenz
24253 25634
24254We have seen an overview of service types (@pxref{Diensttypen und Dienste}). This section provides a reference on how to manipulate services 25635Wir haben bereits einen Überblick über Diensttypen gesehen (siehe
24255and service types. This interface is provided by the @code{(gnu services)} 25636@ref{Diensttypen und Dienste}). Dieser Abschnitt hier stellt eine
24256module. 25637Referenz dar, wie Dienste und Diensttypen manipuliert werden können. Diese
25638Schnittstelle wird vom Modul @code{(gnu services)} angeboten.
24257 25639
24258@deffn {Scheme Procedure} service @var{type} [@var{value}] 25640@deffn {Scheme-Prozedur} service @var{Typ} [@var{Wert}]
24259Return a new service of @var{type}, a @code{<service-type>} object (see 25641Liefert einen neuen Dienst des angegebenen @var{Typ}s. Der @var{Typ} muss
24260below.) @var{value} can be any object; it represents the parameters of this 25642als @code{<service-type>}-Objekt angegeben werden (siehe unten). Als
24261particular service instance. 25643@var{Wert} kann ein beliebiges Objekt angegeben werden, das die Parameter
25644dieser bestimmten Instanz dieses Dienstes repräsentiert.
24262 25645
24263When @var{value} is omitted, the default value specified by @var{type} is 25646Wenn kein @var{Wert} angegeben wird, wird der vom @var{Typ} festgelegte
24264used; if @var{type} does not specify a default value, an error is raised. 25647Vorgabewert verwendet; verfügt der @var{Typ} über keinen Vorgabewert, dann
25648wird ein Fehler gemeldet.
24265 25649
24266For instance, this: 25650Zum Beispiel bewirken Sie hiermit:
24267 25651
24268@example 25652@example
24269(service openssh-service-type) 25653(service openssh-service-type)
24270@end example 25654@end example
24271 25655
24272@noindent 25656@noindent
24273is equivalent to this: 25657dasselbe wie mit:
24274 25658
24275@example 25659@example
24276(service openssh-service-type 25660(service openssh-service-type
24277 (openssh-configuration)) 25661 (openssh-configuration))
24278@end example 25662@end example
24279 25663
24280In both cases the result is an instance of @code{openssh-service-type} with 25664In beiden llen ist das Ergebnis eine Instanz von
24281the default configuration. 25665@code{openssh-service-type} mit der vorgegebenen Konfiguration.
24282@end deffn 25666@end deffn
24283 25667
24284@deffn {Scheme Procedure} service? @var{obj} 25668@deffn {Scheme-Prozedur} service? @var{Objekt}
24285Return true if @var{obj} is a service. 25669Liefert wahr zurück, wenn das @var{Objekt} ein Dienst ist.
24286@end deffn 25670@end deffn
24287 25671
24288@deffn {Scheme Procedure} service-kind @var{service} 25672@deffn {Scheme-Prozedur} service-kind @var{Dienst}
24289Return the type of @var{service}---i.e., a @code{<service-type>} object. 25673Liefert den Typ des @var{Dienst}es — d.h.@: ein
25674@code{<service-type>}-Objekt.
24290@end deffn 25675@end deffn
24291 25676
24292@deffn {Scheme Procedure} service-value @var{service} 25677@deffn {Scheme-Prozedur} service-value @var{Dienst}
24293Return the value associated with @var{service}. It represents its 25678Liefert den Wert, der mit dem @var{Dienst} assoziiert wurde. Er
24294parameters. 25679repräsentiert die Parameter des @var{Dienst}es.
24295@end deffn 25680@end deffn
24296 25681
24297Here is an example of how a service is created and manipulated: 25682Hier ist ein Beispiel, wie ein Dienst erzeugt und manipuliert werden kann:
24298 25683
24299@example 25684@example
24300(define s 25685(define s
24301 (service nginx-service-type 25686 (service nginx-service-type
24302 (nginx-configuration 25687 (nginx-configuration
24303 (nginx nginx) 25688 (nginx nginx)
24304 (log-directory log-directory) 25689 (log-directory log-Verzeichnis)
24305 (run-directory run-directory) 25690 (run-directory run-Verzeichnis)
24306 (file config-file)))) 25691 (file config-Datei))))
24307 25692
24308(service? s) 25693(service? s)
24309@result{} #t 25694@result{} #t
@@ -24313,7 +25698,7 @@ Here is an example of how a service is created and manipulated:
24313@end example 25698@end example
24314 25699
24315The @code{modify-services} form provides a handy way to change the 25700The @code{modify-services} form provides a handy way to change the
24316parameters of some of the services of a list such as @var{%base-services} 25701parameters of some of the services of a list such as @code{%base-services}
24317(@pxref{Basisdienste, @code{%base-services}}). It evaluates to a list of 25702(@pxref{Basisdienste, @code{%base-services}}). It evaluates to a list of
24318services. Of course, you could always use standard list combinators such as 25703services. Of course, you could always use standard list combinators such as
24319@code{map} and @code{fold} to do that (@pxref{SRFI-1, List Library,, guile, 25704@code{map} and @code{fold} to do that (@pxref{SRFI-1, List Library,, guile,
@@ -24332,7 +25717,7 @@ angegebenen Klauseln an. Jede Klausel hat die Form:
24332 25717
24333wobei @var{Typ} einen Diensttyp (»service type«) bezeichnet — wie zum 25718wobei @var{Typ} einen Diensttyp (»service type«) bezeichnet — wie zum
24334Beispiel @code{guix-service-type} — und @var{Variable} ein Bezeichner ist, 25719Beispiel @code{guix-service-type} — und @var{Variable} ein Bezeichner ist,
24335der im @var{Rumpf} an die Dienst-Parameter — z.B. eine 25720der im @var{Rumpf} an die Dienst-Parameter — z.B.@: eine
24336@code{guix-configuration}-Instanz — des ursprünglichen Dienstes mit diesem 25721@code{guix-configuration}-Instanz — des ursprünglichen Dienstes mit diesem
24337@var{Typ} gebunden wird. 25722@var{Typ} gebunden wird.
24338 25723
@@ -24345,72 +25730,79 @@ Dienstparametern ausgewertet wird, indem Sie die Funktionalität namens
24345@code{inherit} benutzen, die von @code{define-record-type*} bereitgestellt 25730@code{inherit} benutzen, die von @code{define-record-type*} bereitgestellt
24346wird. 25731wird.
24347 25732
24348Siehe @xref{Das Konfigurationssystem nutzen} für ein Anwendungsbeispiel. 25733Siehe @ref{Das Konfigurationssystem nutzen} für ein Anwendungsbeispiel.
24349 25734
24350@end deffn 25735@end deffn
24351 25736
24352Next comes the programming interface for service types. This is something 25737Als Nächstes ist die Programmierschnittstelle für Diensttypen an der
24353you want to know when writing new service definitions, but not necessarily 25738Reihe. Sie ist etwas, was Sie kennen werden wollen, wenn Sie neue
24354when simply looking for ways to customize your @code{operating-system} 25739Dienstdefinitionen schreiben, aber wenn Sie nur Ihre
24355declaration. 25740@code{operating-system}-Deklaration anpassen möchten, brauchen Sie diese
25741Schnittstelle wahrscheinlich nicht.
24356 25742
24357@deftp {Data Type} service-type 25743@deftp {Datentyp} service-type
24358@cindex service type 25744@cindex Diensttyp
24359This is the representation of a @dfn{service type} (@pxref{Diensttypen und Dienste}). 25745Die Repräsentation eines @dfn{Diensttypen} (siehe @ref{Diensttypen und Dienste}).
24360 25746
24361@table @asis 25747@table @asis
24362@item @code{name} 25748@item @code{name}
24363This is a symbol, used only to simplify inspection and debugging. 25749Dieses Symbol wird nur verwendet, um die Abläufe im System anzuzeigen und
25750die Fehlersuche zu erleichtern.
24364 25751
24365@item @code{extensions} 25752@item @code{extensions}
24366A non-empty list of @code{<service-extension>} objects (see below). 25753Eine nicht-leere Liste von @code{<service-extension>}-Objekten (siehe
24367 25754unten).
24368@item @code{compose} (default: @code{#f}) 25755
24369If this is @code{#f}, then the service type denotes services that cannot be 25756@item @code{compose} (Vorgabe: @code{#f})
24370extended---i.e., services that do not receive ``values'' from other 25757Wenn es auf @code{#f} gesetzt ist, dann definiert der Diensttyp Dienste, die
24371services. 25758nicht erweitert werden können — d.h.@: diese Dienste erhalten ihren Wert
24372 25759nicht von anderen Diensten.
24373Otherwise, it must be a one-argument procedure. The procedure is called by 25760
24374@code{fold-services} and is passed a list of values collected from 25761Andernfalls muss es eine Prozedur sein, die ein einziges Argument
24375extensions. It may return any single value. 25762entgegennimmt. Die Prozedur wird durch @code{fold-services} aufgerufen und
24376 25763ihr wird die Liste von aus den Erweiterungen angesammelten Werten
24377@item @code{extend} (default: @code{#f}) 25764übergeben. Sie gibt daraufhin einen einzelnen Wert zurück.
24378If this is @code{#f}, services of this type cannot be extended. 25765
24379 25766@item @code{extend} (Vorgabe: @code{#f})
24380Otherwise, it must be a two-argument procedure: @code{fold-services} calls 25767Ist dies auf @code{#f} gesetzt, dann können Dienste dieses Typs nicht
24381it, passing it the initial value of the service as the first argument and 25768erweitert werden.
24382the result of applying @code{compose} to the extension values as the second 25769
24383argument. It must return a value that is a valid parameter value for the 25770Andernfalls muss es eine zwei Argumente nehmende Prozedur sein, die von
24384service instance. 25771@code{fold-services} mit dem anfänglichen Wert für den Dienst als erstes
25772Argument und dem durch Anwendung von @code{compose} gelieferten Wert als
25773zweites Argument aufgerufen wird. Als Ergebnis muss ein Wert geliefert
25774werden, der einen zulässigen neuen Parameterwert für die Dienstinstanz
25775darstellt.
24385@end table 25776@end table
24386 25777
24387@xref{Diensttypen und Dienste}, for examples. 25778Siehe den Abschnitt @ref{Diensttypen und Dienste} für Beispiele.
24388@end deftp 25779@end deftp
24389 25780
24390@deffn {Scheme Procedure} service-extension @var{target-type} @ 25781@deffn {Scheme-Prozedur} service-extension @var{Zieltyp} @
24391 @var{compute} Return a new extension for services of type 25782 @var{Berechner} Liefert eine neue Erweiterung für den Dienst mit dem
24392@var{target-type}. @var{compute} must be a one-argument procedure: 25783@var{Zieltyp}. Als @var{Berechner} muss eine Prozedur angegeben werden, die
24393@code{fold-services} calls it, passing it the value associated with the 25784ein einzelnes Argument nimmt: @code{fold-services} ruft sie auf und übergibt
24394service that provides the extension; it must return a valid value for the 25785an sie den Wert des erweiternden Dienstes, sie muss dafür einen zulässigen
24395target service. 25786Wert für den @var{Zieltyp} liefern.
24396@end deffn 25787@end deffn
24397 25788
24398@deffn {Scheme Procedure} service-extension? @var{obj} 25789@deffn {Scheme-Prozedur} service-extension? @var{Objekt}
24399Return true if @var{obj} is a service extension. 25790Liefert wahr zurück, wenn das @var{Objekt} eine Diensterweiterung ist.
24400@end deffn 25791@end deffn
24401 25792
24402Occasionally, you might want to simply extend an existing service. This 25793Manchmal wollen Sie vielleicht einfach nur einen bestehenden Dienst
24403involves creating a new service type and specifying the extension of 25794erweitern. Dazu müssten Sie einen neuen Diensttyp definieren und die
24404interest, which can be verbose; the @code{simple-service} procedure provides 25795Erweiterung definieren, für die Sie sich interessieren, was ganz schön
24405a shorthand for this. 25796wortreich werden kann. Mit der Prozedur @code{simple-service} können Sie es
25797kürzer fassen.
24406 25798
24407@deffn {Scheme Procedure} simple-service @var{name} @var{target} @var{value} 25799@deffn {Scheme-Prozedur} simple-service @var{Name} @var{Zieltyp} @var{Wert}
24408Return a service that extends @var{target} with @var{value}. This works by 25800Liefert einen Dienst, der den Dienst mit dem @var{Zieltyp} um den @var{Wert}
24409creating a singleton service type @var{name}, of which the returned service 25801erweitert. Dazu wird ein Diensttyp mit dem @var{Name}n für den einmaligen
24410is an instance. 25802Gebrauch erzeugt, den der zurückgelieferte Dienst instanziiert.
24411 25803
24412For example, this extends mcron (@pxref{Geplante Auftragsausführung}) with an 25804Zum Beispiel kann mcron (siehe @ref{Geplante Auftragsausführung}) so um einen
24413additional job: 25805zusätzlichen Auftrag erweitert werden:
24414 25806
24415@example 25807@example
24416(simple-service 'my-mcron-job mcron-service-type 25808(simple-service 'my-mcron-job mcron-service-type
@@ -24418,198 +25810,213 @@ additional job:
24418@end example 25810@end example
24419@end deffn 25811@end deffn
24420 25812
24421At the core of the service abstraction lies the @code{fold-services} 25813Den Kern dieses abstrakten Modells für Dienste bildet die Prozedur
24422procedure, which is responsible for ``compiling'' a list of services down to 25814@code{fold-services}, die für das »Kompilieren« einer Liste von Diensten hin
24423a single directory that contains everything needed to boot and run the 25815zu einem einzelnen Verzeichnis verantwortlich ist, in welchem alles
24424system---the directory shown by the @command{guix system build} command 25816enthalten ist, was Sie zum Booten und Hochfahren des Systems brauchen —
24425(@pxref{Aufruf von guix system}). In essence, it propagates service 25817d.h.@: das Verzeichnis, das der Befehl @command{guix system build} anzeigt
24426extensions down the service graph, updating each node parameters on the way, 25818(siehe @ref{Aufruf von guix system}). Einfach ausgedrückt propagiert
24427until it reaches the root node. 25819@code{fold-services} Diensterweiterungen durch den Dienstgraphen nach unten
24428 25820und aktualisiert dabei in jedem Knoten des Graphen dessen Parameter, bis nur
24429@deffn {Scheme Procedure} fold-services @var{services} @ 25821noch der Wurzelknoten übrig bleibt.
24430 [#:target-type @var{system-service-type}] Fold @var{services} by propagating 25822
24431their extensions down to the root of type @var{target-type}; return the root 25823@deffn {Scheme-Prozedur} fold-services @var{Dienste} @
24432service adjusted accordingly. 25824 [#:target-type @var{system-service-type}] Faltet die @var{Dienste} wie die
25825funktionale Prozedur @code{fold} zu einem einzigen zusammen, indem ihre
25826Erweiterungen nach unten propagiert werden, bis eine Wurzel vom
25827@var{target-type} als Diensttyp erreicht wird; dieser so angepasste
25828Wurzeldienst wird zurückgeliefert.
24433@end deffn 25829@end deffn
24434 25830
24435Lastly, the @code{(gnu services)} module also defines several essential 25831Als Letztes definiert das Modul @code{(gnu services)} noch mehrere
24436service types, some of which are listed below. 25832essenzielle Diensttypen, von denen manche im Folgenden aufgelistet sind:
24437 25833
24438@defvr {Scheme Variable} system-service-type 25834@defvr {Scheme-Variable} system-service-type
24439This is the root of the service graph. It produces the system directory as 25835Die Wurzel des Dienstgraphen. Davon wird das Systemverzeichnis erzeugt, wie
24440returned by the @command{guix system build} command. 25836es vom Befehl @command{guix system build} zurückgeliefert wird.
24441@end defvr 25837@end defvr
24442 25838
24443@defvr {Scheme Variable} boot-service-type 25839@defvr {Scheme-Variable} boot-service-type
24444The type of the ``boot service'', which produces the @dfn{boot script}. The 25840Der Typ des »Boot-Dienstes«, der das @dfn{Boot-Skript} erzeugt. Das
24445boot script is what the initial RAM disk runs when booting. 25841Boot-Skript ist das, was beim Booten durch die initiale RAM-Disk ausgeführt
25842wird.
24446@end defvr 25843@end defvr
24447 25844
24448@defvr {Scheme Variable} etc-service-type 25845@defvr {Scheme-Variable} etc-service-type
24449The type of the @file{/etc} service. This service is used to create files 25846Der Typ des @file{/etc}-Dienstes. Dieser Dienst wird benutzt, um im
24450under @file{/etc} and can be extended by passing it name/file tuples such 25847@file{/etc}-Verzeichnis Dateien zu platzieren. Er kann erweitert werden,
24451as: 25848indem man Name-/Datei-Tupel an ihn übergibt wie in diesem Beispiel:
24452 25849
24453@example 25850@example
24454(list `("issue" ,(plain-file "issue" "Welcome!\n"))) 25851(list `("issue" ,(plain-file "issue" "Willkommen!\n")))
24455@end example 25852@end example
24456 25853
24457In this example, the effect would be to add an @file{/etc/issue} file 25854Dieses Beispiel würde bewirken, dass eine Datei @file{/etc/issue} auf die
24458pointing to the given file. 25855angegebene Datei verweist.
24459@end defvr 25856@end defvr
24460 25857
24461@defvr {Scheme Variable} setuid-program-service-type 25858@defvr {Scheme-Variable} setuid-program-service-type
24462Type for the ``setuid-program service''. This service collects lists of 25859Der Typ des Dienstes für setuid-Programme, der eine Liste von ausführbaren
24463executable file names, passed as gexps, and adds them to the set of 25860Dateien ansammelt, die jeweils als G-Ausdrücke übergeben werden und dann zur
24464setuid-root programs on the system (@pxref{Setuid-Programme}). 25861Menge der setuid-gesetzten Programme auf dem System hinzugefügt werden
25862(siehe @ref{Setuid-Programme}).
24465@end defvr 25863@end defvr
24466 25864
24467@defvr {Scheme Variable} profile-service-type 25865@defvr {Scheme-Variable} profile-service-type
24468Type of the service that populates the @dfn{system profile}---i.e., the 25866Der Typ des Dienstes zum Einfügen von Dateien ins @dfn{Systemprofil} —
24469programs under @file{/run/current-system/profile}. Other services can 25867d.h.@: die Programme unter @file{/run/current-system/profile}. Andere
24470extend it by passing it lists of packages to add to the system profile. 25868Dienste können ihn erweitern, indem sie ihm Listen von ins Systemprofil zu
25869installierenden Paketen übergeben.
24471@end defvr 25870@end defvr
24472 25871
24473 25872
24474@node Shepherd-Dienste 25873@node Shepherd-Dienste
24475@subsection Shepherd-Dienste 25874@subsection Shepherd-Dienste
24476 25875
24477@cindex shepherd services 25876@cindex Shepherd-Dienste
24478@cindex PID 1 25877@cindex PID 1
24479@cindex init system 25878@cindex init-System
24480The @code{(gnu services shepherd)} module provides a way to define services 25879Das Modul @code{(gnu services shepherd)} gibt eine Methode an, mit der
24481managed by the GNU@tie{}Shepherd, which is the initialization system---the 25880Dienste definiert werden können, die von GNU@tie{}Shepherd verwaltet werden,
24482first process that is started when the system boots, also known as 25881was das Initialisierungssystem (das »init«-System) ist — es ist der erste
24483PID@tie{}1 (@pxref{Einführung,,, shepherd, The GNU Shepherd Manual}). 25882Prozess, der gestartet wird, wenn das System gebootet wird, auch bekannt als
24484 25883PID@tie{}1 (siehe @ref{Einführung,,, shepherd, The GNU Shepherd Manual}).
24485Services in the Shepherd can depend on each other. For instance, the SSH 25884
24486daemon may need to be started after the syslog daemon has been started, 25885Dienste unter dem Shepherd können voneinander abhängen. Zum Beispiel kann es
24487which in turn can only happen once all the file systems have been mounted. 25886sein, dass der SSH-Daemon erst gestartet werden darf, nachdem der
24488The simple operating system defined earlier (@pxref{Das Konfigurationssystem nutzen}) results in a service graph like this: 25887Syslog-Daemon gestartet wurde, welcher wiederum erst gestartet werden kann,
24489 25888sobald alle Dateisysteme eingebunden wurden. Das einfache Betriebssystem,
24490@image{images/shepherd-graph,,5in,Typical shepherd service graph.} 25889dessen Definition wir zuvor gesehen haben (siehe @ref{Das Konfigurationssystem nutzen}), ergibt folgenden Dienstgraphen:
24491 25890
24492You can actually generate such a graph for any operating system definition 25891@image{images/shepherd-graph,,5in,Typischer Shepherd-Dienstgraph}
24493using the @command{guix system shepherd-graph} command 25892
24494(@pxref{system-shepherd-graph, @command{guix system shepherd-graph}}). 25893Sie können so einen Graphen tatsächlich für jedes Betriebssystem erzeugen
24495 25894lassen, indem Sie den Befehl @command{guix system shepherd-graph} benutzen
24496The @var{%shepherd-root-service} is a service object representing 25895(siehe @ref{system-shepherd-graph, @command{guix system shepherd-graph}}).
24497PID@tie{}1, of type @var{shepherd-root-service-type}; it can be extended by 25896
25897The @code{%shepherd-root-service} is a service object representing
25898PID@tie{}1, of type @code{shepherd-root-service-type}; it can be extended by
24498passing it lists of @code{<shepherd-service>} objects. 25899passing it lists of @code{<shepherd-service>} objects.
24499 25900
24500@deftp {Data Type} shepherd-service 25901@deftp {Datentyp} shepherd-service
24501The data type representing a service managed by the Shepherd. 25902Der Datentyp, der einen von Shepherd verwalteten Dienst repräsentiert.
24502 25903
24503@table @asis 25904@table @asis
24504@item @code{provision} 25905@item @code{provision}
24505This is a list of symbols denoting what the service provides. 25906Diese Liste von Symbolen gibt an, was vom Dienst angeboten wird.
24506 25907
24507These are the names that may be passed to @command{herd start}, 25908Das bedeutet, es sind die Namen, die an @command{herd start}, @command{herd
24508@command{herd status}, and similar commands (@pxref{Invoking herd,,, 25909status} und ähnliche Befehle übergeben werden können (siehe @ref{Invoking
24509shepherd, The GNU Shepherd Manual}). @xref{Slots of services, the 25910herd,,, shepherd, The GNU Shepherd Manual}). Siehe @ref{Slots of services,
24510@code{provides} slot,, shepherd, The GNU Shepherd Manual}, for details. 25911the @code{provides} slot,, shepherd, The GNU Shepherd Manual} für Details.
24511 25912
24512@item @code{requirements} (default: @code{'()}) 25913@item @code{requirements} (Vorgabe: @code{'()})
24513List of symbols denoting the Shepherd services this one depends on. 25914Eine Liste von Symbolen, die angegeben, von welchen anderen
25915Shepherd-Diensten dieser hier abhängt.
24514 25916
24515@item @code{respawn?} (default: @code{#t}) 25917@item @code{respawn?} (Vorgabe: @code{#t})
24516Whether to restart the service when it stops, for instance when the 25918Ob der Dienst neu gestartet werden soll, nachdem er gestoppt wurde, zum
24517underlying process dies. 25919Beispiel wenn der ihm zu Grunde liegende Prozess terminiert wird.
24518 25920
24519@item @code{start} 25921@item @code{start}
24520@itemx @code{stop} (default: @code{#~(const #f)}) 25922@itemx @code{stop} (Vorgabe: @code{#~(const #f)})
24521The @code{start} and @code{stop} fields refer to the Shepherd's facilities 25923Die Felder @code{start} und @code{stop} beziehen sich auf Shepherds
24522to start and stop processes (@pxref{Service De- and Constructors,,, 25924Funktionen zum Starten und Stoppen von Prozessen (siehe @ref{Service De- and
24523shepherd, The GNU Shepherd Manual}). They are given as G-expressions that 25925Constructors,,, shepherd, The GNU Shepherd Manual}). Sie enthalten
24524get expanded in the Shepherd configuration file (@pxref{G-Ausdrücke}). 25926G-Ausdrücke, die in eine Shepherd-Konfigurationdatei umgeschrieben werden
25927(siehe @ref{G-Ausdrücke}).
24525 25928
24526@item @code{actions} (Vorgabe: @code{'()}) 25929@item @code{actions} (Vorgabe: @code{'()})
24527@cindex Aktionen, bei Shepherd-Diensten 25930@cindex Aktionen, bei Shepherd-Diensten
24528This is a list of @code{shepherd-action} objects (see below) defining 25931Dies ist eine Liste von @code{shepherd-action}-Objekten (siehe unten), die
24529@dfn{actions} supported by the service, in addition to the standard 25932vom Dienst zusätzlich unterstützte @dfn{Aktionen} neben den Standardaktionen
24530@code{start} and @code{stop} actions. Actions listed here become available 25933@code{start} und @code{stop} angeben. Hier aufgeführte Aktionen werden als
24531as @command{herd} sub-commands: 25934@command{herd}-Unterbefehle verfügbar gemacht:
24532 25935
24533@example 25936@example
24534herd @var{action} @var{service} [@var{arguments}@dots{}] 25937herd @var{Aktion} @var{Dienst} [@var{Argumente}@dots{}]
24535@end example 25938@end example
24536 25939
24537@item @code{Dokumentation} 25940@item @code{Dokumentation}
24538A documentation string, as shown when running: 25941Eine Zeichenkette zur Dokumentation, die angezeigt wird, wenn man dies
25942ausführt:
24539 25943
24540@example 25944@example
24541herd doc @var{service-name} 25945herd doc @var{Dienstname}
24542@end example 25946@end example
24543 25947
24544where @var{service-name} is one of the symbols in @var{provision} 25948where @var{service-name} is one of the symbols in @code{provision}
24545(@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual}). 25949(@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual}).
24546 25950
24547@item @code{modules} (default: @var{%default-modules}) 25951@item @code{modules} (default: @code{%default-modules})
24548This is the list of modules that must be in scope when @code{start} and 25952Dies ist die Liste der Module, die in den Sichtbarkeitsbereich geladen sein
24549@code{stop} are evaluated. 25953müssen, wenn @code{start} und @code{stop} ausgewertet werden.
24550 25954
24551@end table 25955@end table
24552@end deftp 25956@end deftp
24553 25957
24554@deftp {Datentyp} shepherd-action 25958@deftp {Datentyp} shepherd-action
24555This is the data type that defines additional actions implemented by a 25959Dieser Datentyp definiert zusätzliche Aktionen, die ein Shepherd-Dienst
24556Shepherd service (see above). 25960implementiert (siehe oben).
24557 25961
24558@table @code 25962@table @code
24559@item name 25963@item name
24560Die Aktion bezeichnendes Symbol. 25964Die Aktion bezeichnendes Symbol.
24561 25965
24562@item Dokumentation 25966@item Dokumentation
24563This is a documentation string for the action. It can be viewed by running: 25967Diese Zeichenkette ist die Dokumentation für die Aktion. Sie können sie
25968sehen, wenn Sie dies ausführen:
24564 25969
24565@example 25970@example
24566herd doc @var{service} action @var{action} 25971herd doc @var{Dienst} action @var{Aktion}
24567@end example 25972@end example
24568 25973
24569@item procedure 25974@item procedure
24570This should be a gexp that evaluates to a procedure of at least one 25975Dies sollte ein G-Ausdruck sein, der zu einer mindestens ein Argument
24571argument, which is the ``running value'' of the service (@pxref{Slots of 25976nehmenden Prozedur ausgewertet wird. Das Argument ist der »running«-Wert des
24572services,,, shepherd, The GNU Shepherd Manual}). 25977Dienstes (siehe @ref{Slots of services,,, shepherd, The GNU Shepherd
25978Manual}).
24573@end table 25979@end table
24574 25980
24575The following example defines an action called @code{say-hello} that kindly 25981Das folgende Beispiel definiert eine Aktion namens @code{sag-hallo}, die den
24576greets the user: 25982Benutzer freundlich begrüßt:
24577 25983
24578@example 25984@example
24579(shepherd-action 25985(shepherd-action
24580 (name 'say-hello) 25986 (name 'sag-hallo)
24581 (documentation "Say hi!") 25987 (documentation "Sag Hallo!")
24582 (procedure #~(lambda (running . args) 25988 (procedure #~(lambda (running . args)
24583 (format #t "Hello, friend! arguments: ~s\n" 25989 (format #t "Hallo, Freund! Argumente: ~s\n"
24584 args) 25990 args)
24585 #t))) 25991 #t)))
24586@end example 25992@end example
24587 25993
24588Assuming this action is added to the @code{example} service, then you can 25994Wenn wir annehmen, dass wir die Aktion zum Dienst @code{beispiel}
24589do: 25995hinzufügen, können Sie Folgendes ausführen:
24590 25996
24591@example 25997@example
24592# herd say-hello example 25998# herd sag-hallo beispiel
24593Hello, friend! arguments: () 25999Hallo, Freund! Argumente: ()
24594# herd say-hello example a b c 26000# herd sag-hallo beispiel a b c
24595Hello, friend! arguments: ("a" "b" "c") 26001Hallo, Freund! Argumente: ("a" "b" "c")
24596@end example 26002@end example
24597 26003
24598This, as you can see, is a fairly sophisticated way to say hello. 26004Wie Sie sehen können, ist das eine sehr ausgeklügelte Art, Hallo zu
24599@xref{Service Convenience,,, shepherd, The GNU Shepherd Manual}, for more 26005sagen. Siehe @ref{Service Convenience,,, shepherd, The GNU Shepherd Manual}
24600info on actions. 26006für mehr Informationen zu Aktionen.
24601@end deftp 26007@end deftp
24602 26008
24603@defvr {Scheme Variable} shepherd-root-service-type 26009@defvr {Scheme-Variable} shepherd-root-service-type
24604The service type for the Shepherd ``root service''---i.e., PID@tie{}1. 26010Der Diensttyp für den Shepherd-»Wurzeldienst« — also für PID@tie{}1.
24605 26011
24606This is the service type that extensions target when they want to create 26012Dieser Diensttyp stellt das Ziel für Diensterweiterungen dar, die
24607shepherd services (@pxref{Diensttypen und Dienste}, for an example). 26013Shepherd-Dienste erzeugen sollen (siehe @ref{Diensttypen und Dienste} für
24608Each extension must pass a list of @code{<shepherd-service>}. 26014ein Beispiel). Jede Erweiterung muss eine Liste von
26015@code{<shepherd-service>}-Objekten übergeben.
24609@end defvr 26016@end defvr
24610 26017
24611@defvr {Scheme Variable} %shepherd-root-service 26018@defvr {Scheme-Variable} %shepherd-root-service
24612This service represents PID@tie{}1. 26019Dieser Dienst repräsentiert PID@tie{}1.
24613@end defvr 26020@end defvr
24614 26021
24615 26022
@@ -24742,7 +26149,7 @@ check whether a package has a @code{debug} output, use @command{guix package
24742@chapter Sicherheitsaktualisierungen 26149@chapter Sicherheitsaktualisierungen
24743 26150
24744@cindex security updates 26151@cindex security updates
24745@cindex security vulnerabilities 26152@cindex Sicherheitslücken
24746Occasionally, important security vulnerabilities are discovered in software 26153Occasionally, important security vulnerabilities are discovered in software
24747packages and must be patched. Guix developers try hard to keep track of 26154packages and must be patched. Guix developers try hard to keep track of
24748known vulnerabilities and to apply fixes as soon as possible in the 26155known vulnerabilities and to apply fixes as soon as possible in the
@@ -24786,7 +26193,7 @@ magnitudes lower than a full rebuild of the dependency chain.
24786@cindex replacements of packages, for grafts 26193@cindex replacements of packages, for grafts
24787For instance, suppose a security update needs to be applied to Bash. Guix 26194For instance, suppose a security update needs to be applied to Bash. Guix
24788developers will provide a package definition for the ``fixed'' Bash, say 26195developers will provide a package definition for the ``fixed'' Bash, say
24789@var{bash-fixed}, in the usual way (@pxref{Pakete definieren}). Then, the 26196@code{bash-fixed}, in the usual way (@pxref{Pakete definieren}). Then, the
24790original package definition is augmented with a @code{replacement} field 26197original package definition is augmented with a @code{replacement} field
24791pointing to the package containing the bug fix: 26198pointing to the package containing the bug fix:
24792 26199
@@ -24800,15 +26207,15 @@ pointing to the package containing the bug fix:
24800 26207
24801From there on, any package depending directly or indirectly on Bash---as 26208From there on, any package depending directly or indirectly on Bash---as
24802reported by @command{guix gc --requisites} (@pxref{Aufruf von guix gc})---that 26209reported by @command{guix gc --requisites} (@pxref{Aufruf von guix gc})---that
24803is installed is automatically ``rewritten'' to refer to @var{bash-fixed} 26210is installed is automatically ``rewritten'' to refer to @code{bash-fixed}
24804instead of @var{bash}. This grafting process takes time proportional to the 26211instead of @code{bash}. This grafting process takes time proportional to
24805size of the package, usually less than a minute for an ``average'' package 26212the size of the package, usually less than a minute for an ``average''
24806on a recent machine. Grafting is recursive: when an indirect dependency 26213package on a recent machine. Grafting is recursive: when an indirect
24807requires grafting, then grafting ``propagates'' up to the package that the 26214dependency requires grafting, then grafting ``propagates'' up to the package
24808user is installing. 26215that the user is installing.
24809 26216
24810Currently, the length of the name and version of the graft and that of the 26217Currently, the length of the name and version of the graft and that of the
24811package it replaces (@var{bash-fixed} and @var{bash} in the example above) 26218package it replaces (@code{bash-fixed} and @code{bash} in the example above)
24812must be equal. This restriction mostly comes from the fact that grafting 26219must be equal. This restriction mostly comes from the fact that grafting
24813works by patching files, including binary files, directly. Other 26220works by patching files, including binary files, directly. Other
24814restrictions may apply: for instance, when adding a graft to a package 26221restrictions may apply: for instance, when adding a graft to a package
@@ -25084,28 +26491,31 @@ generated binaries could be broken for some reason.
25084@node Danksagungen 26491@node Danksagungen
25085@chapter Danksagungen 26492@chapter Danksagungen
25086 26493
25087Guix is based on the @uref{http://nixos.org/nix/, Nix package manager}, 26494Guix baut auf dem @uref{http://nixos.org/nix/, Nix-Paketverwaltungsprogramm}
25088which was designed and implemented by Eelco Dolstra, with contributions from 26495auf, das von Eelco Dolstra entworfen und entwickelt wurde, mit Beiträgen von
25089other people (see the @file{nix/AUTHORS} file in Guix.) Nix pioneered 26496anderen Leuten (siehe die Datei @file{nix/AUTHORS} in Guix). Nix hat für die
25090functional package management, and promoted unprecedented features, such as 26497funktionale Paketverwaltung die Pionierarbeit geleistet und noch nie
25091transactional package upgrades and rollbacks, per-user profiles, and 26498dagewesene Funktionalitäten vorangetrieben wie transaktionsbasierte
25092referentially transparent build processes. Without this work, Guix would 26499Paketaktualisierungen und die Rücksetzbarkeit selbiger, eigene Paketprofile
25093not exist. 26500für jeden Nutzer und referenziell transparente Erstellungsprozesse. Ohne
26501diese Arbeit gäbe es Guix nicht.
25094 26502
25095The Nix-based software distributions, Nixpkgs and NixOS, have also been an 26503Die Nix-basierten Software-Distributionen Nixpkgs und NixOS waren auch eine
25096inspiration for Guix. 26504Inspiration für Guix.
25097 26505
25098GNU@tie{}Guix itself is a collective work with contributions from a number 26506GNU@tie{}Guix ist selbst das Produkt kollektiver Arbeit mit Beiträgen durch
25099of people. See the @file{AUTHORS} file in Guix for more information on 26507eine Vielzahl von Leuten. Siehe die Datei @file{AUTHORS} in Guix für mehr
25100these fine people. The @file{THANKS} file lists people who have helped by 26508Informationen, wer diese wunderbaren Menschen sind. In der Datei
25101reporting bugs, taking care of the infrastructure, providing artwork and 26509@file{THANKS} finden Sie eine Liste der Leute, die uns geholfen haben, indem
25102themes, making suggestions, and more---thank you! 26510Sie Fehler gemeldet, sich um unsere Infrastruktur gekümmert, künstlerische
26511Arbeit und schön gestaltete Themen beigesteuert, Vorschläge gemacht und noch
26512vieles mehr getan haben — vielen Dank!
25103 26513
25104 26514
25105@c ********************************************************************* 26515@c *********************************************************************
25106@node GNU-Lizenz für freie Dokumentation 26516@node GNU-Lizenz für freie Dokumentation
25107@appendix GNU-Lizenz für freie Dokumentation 26517@appendix GNU-Lizenz für freie Dokumentation
25108@cindex license, GNU Free Documentation License 26518@cindex Lizenz, GNU-Lizenz r freie Dokumentation
25109@include fdl-1.3.texi 26519@include fdl-1.3.texi
25110 26520
25111@c ********************************************************************* 26521@c *********************************************************************