# German translations for the Guix Cookbook. # Copyright (C) 2019, 2020 the authors of Guix (msgids) and the following authors (msgstr) # This file is distributed under the same license as the guix manual package. # Florian Pelz <pelzflorian@pelzflorian.de>, 2020, 2021, 2022, 2023, 2024. # Jens Maucher <jensmaucher@gmail.com>, 2023. msgid "" msgstr "" "Project-Id-Version: guix 1.0.1.4876-09145-dirty\n" "Report-Msgid-Bugs-To: bug-guix@gnu.org\n" "POT-Creation-Date: 2024-09-10 03:18+0000\n" "PO-Revision-Date: 2024-10-23 23:55+0000\n" "Last-Translator: Florian Pelz <pelzflorian@pelzflorian.de>\n" "Language-Team: German <https://translate.fedoraproject.org/projects/guix/documentation-cookbook/de/>\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.7.2\n" #. type: Plain text #: guix-git/doc/guix-cookbook.texi:7 msgid "@documentencoding UTF-8" msgstr "" "@documentencoding UTF-8\n" "@documentlanguage de\n" "@frenchspacing on" #. type: top #: guix-git/doc/guix-cookbook.texi:7 guix-git/doc/guix-cookbook.texi:43 #: guix-git/doc/guix-cookbook.texi:57 #, no-wrap msgid "GNU Guix Cookbook" msgstr "GNU-Guix-Kochbuch" #. type: copying #: guix-git/doc/guix-cookbook.texi:28 msgid "Copyright @copyright{} 2019, 2022 Ricardo Wurmus@* Copyright @copyright{} 2019 Efraim Flashner@* Copyright @copyright{} 2019 Pierre Neidhardt@* Copyright @copyright{} 2020 Oleg Pykhalov@* Copyright @copyright{} 2020 Matthew Brooks@* Copyright @copyright{} 2020 Marcin Karpezo@* Copyright @copyright{} 2020 Brice Waegeneire@* Copyright @copyright{} 2020 André Batista@* Copyright @copyright{} 2020 Christine Lemmer-Webber@* Copyright @copyright{} 2021 Joshua Branson@* Copyright @copyright{} 2022, 2023 Maxim Cournoyer@* Copyright @copyright{} 2023-2024 Ludovic Courtès@* Copyright @copyright{} 2023 Thomas Ieong@* Copyright @copyright{} 2024 Florian Pelz@*" msgstr "Copyright @copyright{} 2019, 2022 Ricardo Wurmus@* Copyright @copyright{} 2019 Efraim Flashner@* Copyright @copyright{} 2019 Pierre Neidhardt@* Copyright @copyright{} 2020 Oleg Pykhalov@* Copyright @copyright{} 2020 Matthew Brooks@* Copyright @copyright{} 2020 Marcin Karpezo@* Copyright @copyright{} 2020 Brice Waegeneire@* Copyright @copyright{} 2020 André Batista@* Copyright @copyright{} 2020 Christine Lemmer-Webber@* Copyright @copyright{} 2021 Joshua Branson@* Copyright @copyright{} 2022, 2023 Maxim Cournoyer@* Copyright @copyright{} 2023-2024 Ludovic Courtès@* Copyright @copyright{} 2023 Thomas Ieong@* Copyright @copyright{} 2024 Florian Pelz@*" #. type: copying #: guix-git/doc/guix-cookbook.texi:35 msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''." msgstr "Es ist Ihnen gestattet, dieses Dokument zu vervielfältigen, weiterzugeben und/oder zu verändern, unter den Bedingungen der GNU Free Documentation License, entweder gemäß Version 1.3 der Lizenz oder (nach Ihrer Option) einer späteren Version, die von der Free Software Foundation veröffentlicht wurde, ohne unveränderliche Abschnitte, ohne vorderen Umschlagtext und ohne hinteren Umschlagtext. Eine Kopie der Lizenz finden Sie im Abschnitt mit dem Titel „GNU-Lizenz für freie Dokumentation“." #. type: dircategory #: guix-git/doc/guix-cookbook.texi:37 #, no-wrap msgid "System administration" msgstr "Systemadministration" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:40 msgid "Guix cookbook: (guix-cookbook)" msgstr "Guix-Kochbuch: (guix-cookbook.de)" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:40 msgid "Tutorials and examples for GNU Guix." msgstr "Anleitungen und Beispiele für GNU Guix." #. type: subtitle #: guix-git/doc/guix-cookbook.texi:44 #, no-wrap msgid "Tutorials and examples for using the GNU Guix Functional Package Manager" msgstr "Anleitungen und Beispiele, wie man den funktionalen Paketmanager GNU Guix benutzt" #. type: author #: guix-git/doc/guix-cookbook.texi:45 #, no-wrap msgid "The GNU Guix Developers" msgstr "Die Entwickler von GNU Guix" #. type: node #: guix-git/doc/guix-cookbook.texi:56 #, no-wrap msgid "Top" msgstr "Top" #. type: Plain text #: guix-git/doc/guix-cookbook.texi:63 msgid "This document presents tutorials and detailed examples for GNU@tie{}Guix, a functional package management tool written for the GNU system. Please @pxref{Top,,, guix, GNU Guix reference manual} for details about the system, its API, and related concepts." msgstr "Dieses Dokument stellt Anleitungen und detaillierte Beispiele vor, wie man GNU@tie{}Guix benutzt, ein Werkzeug zur funktionalen Paketverwaltung, das für das GNU-System geschrieben wurde. Bitte lesen Sie Details zum System, seinen Programmierschnittstellen und ähnlichen Konzepten im @ref{Top,,, guix.de, Referenzhandbuch zu GNU Guix} nach." #. You can replace the following paragraph with information on #. type: Plain text #: guix-git/doc/guix-cookbook.texi:78 msgid "This manual is also available in French (@pxref{Top,,, guix-cookbook.fr, Livre de recettes de GNU Guix}), German (@pxref{Top,,, guix-cookbook.de, GNU-Guix-Kochbuch}), Korean (@pxref{Top,,, guix-cookbook.ko, GNU Guix 쿡북}), Brazilian Portuguese (@pxref{Top,,, guix-cookbook.pt_BR, Livro de receitas do GNU Guix}), Slovak (@pxref{Top,,, guix-cookbook.sk, Receptár GNU Guix}), and Swedish (@pxref{Top,,, guix-cookbook.sv, Kokbok för GNU Guix}). If you would like to translate this document in your native language, consider joining @uref{https://translate.fedoraproject.org/projects/guix/documentation-cookbook, Weblate} (@pxref{Translating Guix,,, guix, GNU Guix reference manual})." msgstr "Dieses Handbuch ist auch auf Englisch (siehe @ref{Top,,, guix-cookbook, GNU Guix Cookbook}), auf Französisch (siehe @ref{Top,,, guix-cookbook.fr, Livre de recettes de GNU Guix}), auf Koreanisch (siehe @ref{Top,,, guix-cookbook.ko, GNU Guix 쿡북}), auf Brasilianischem Portugiesisch (siehe @ref{Top,,, guix-cookbook.pt_BR, Livro de receitas do GNU Guix}), auf Slowakisch (siehe @ref{Top,,, guix-cookbook.sk, Receptár GNU Guix}) und auf Schwedisch (@pxref{Top,,, guix-cookbook.sv, Kokbok för GNU Guix}) verfügbar. Wenn Sie dieses Dokument in Ihre eigene Sprache übersetzen möchten, dann sind Sie bei @uref{https://translate.fedoraproject.org/projects/guix/documentation-cookbook, Weblate} herzlich willkommen." #. type: chapter #: guix-git/doc/guix-cookbook.texi:89 guix-git/doc/guix-cookbook.texi:98 #: guix-git/doc/guix-cookbook.texi:206 guix-git/doc/guix-cookbook.texi:207 #, no-wrap msgid "Scheme tutorials" msgstr "Anleitungen zu Scheme" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:89 msgid "Meet your new favorite language!" msgstr "Lernen Sie Ihre neue Lieblingssprache kennen!" #. type: chapter #: guix-git/doc/guix-cookbook.texi:89 guix-git/doc/guix-cookbook.texi:102 #: guix-git/doc/guix-cookbook.texi:499 guix-git/doc/guix-cookbook.texi:500 #, no-wrap msgid "Packaging" msgstr "Pakete schreiben" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:89 msgid "Packaging tutorials" msgstr "Wie man eigene Pakete verfasst." #. type: chapter #: guix-git/doc/guix-cookbook.texi:89 guix-git/doc/guix-cookbook.texi:129 #: guix-git/doc/guix-cookbook.texi:1582 guix-git/doc/guix-cookbook.texi:1583 #, no-wrap msgid "System Configuration" msgstr "Systemkonfiguration" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:89 msgid "Customizing the GNU System" msgstr "Das GNU-System anpassen." #. type: chapter #: guix-git/doc/guix-cookbook.texi:89 guix-git/doc/guix-cookbook.texi:154 #: guix-git/doc/guix-cookbook.texi:3322 guix-git/doc/guix-cookbook.texi:3323 #, no-wrap msgid "Containers" msgstr "Container" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:89 msgid "Isolated environments and nested systems" msgstr "Isolierte Umgebungen und verschachtelte Systeme." #. type: chapter #: guix-git/doc/guix-cookbook.texi:89 guix-git/doc/guix-cookbook.texi:164 #: guix-git/doc/guix-cookbook.texi:3725 guix-git/doc/guix-cookbook.texi:3726 #, no-wrap msgid "Virtual Machines" msgstr "Virtuelle Maschinen" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:89 msgid "Virtual machines usage and configuration" msgstr "Bedienung und Konfiguration von VM." #. type: chapter #: guix-git/doc/guix-cookbook.texi:89 guix-git/doc/guix-cookbook.texi:169 #: guix-git/doc/guix-cookbook.texi:3958 guix-git/doc/guix-cookbook.texi:3959 #, no-wrap msgid "Advanced package management" msgstr "Fortgeschrittene Paketverwaltung" # angelehnt an Alle Macht dem Volke in Übersetzung von Die Mutter #. type: menuentry #: guix-git/doc/guix-cookbook.texi:89 msgid "Power to the users!" msgstr "Alle Macht den Nutzern!" #. type: chapter #: guix-git/doc/guix-cookbook.texi:89 guix-git/doc/guix-cookbook.texi:181 #: guix-git/doc/guix-cookbook.texi:4366 guix-git/doc/guix-cookbook.texi:4367 #, no-wrap msgid "Software Development" msgstr "Software-Entwicklung" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:89 msgid "Environments, continuous integration, etc." msgstr "Umgebungen, kontinuierliche Integration usw." #. type: chapter #: guix-git/doc/guix-cookbook.texi:89 guix-git/doc/guix-cookbook.texi:191 #: guix-git/doc/guix-cookbook.texi:5015 guix-git/doc/guix-cookbook.texi:5016 #, no-wrap msgid "Environment management" msgstr "Umgebungen verwalten" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:89 msgid "Control environment" msgstr "Umgebungen festlegen." #. type: chapter #: guix-git/doc/guix-cookbook.texi:89 guix-git/doc/guix-cookbook.texi:195 #: guix-git/doc/guix-cookbook.texi:5141 guix-git/doc/guix-cookbook.texi:5142 #, no-wrap msgid "Installing Guix on a Cluster" msgstr "Auf einem Rechencluster installieren" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:89 msgid "High-performance computing." msgstr "Hochleistungsrechnen mit Guix." #. type: chapter #: guix-git/doc/guix-cookbook.texi:93 guix-git/doc/guix-cookbook.texi:5529 #: guix-git/doc/guix-cookbook.texi:5530 #, no-wrap msgid "Acknowledgments" msgstr "Danksagungen" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:93 msgid "Thanks!" msgstr "Danke!" #. type: appendix #: guix-git/doc/guix-cookbook.texi:93 guix-git/doc/guix-cookbook.texi:5556 #: guix-git/doc/guix-cookbook.texi:5557 #, no-wrap msgid "GNU Free Documentation License" msgstr "GNU-Lizenz für freie Dokumentation" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:93 msgid "The license of this document." msgstr "Die Lizenz dieses Dokuments." #. type: unnumbered #: guix-git/doc/guix-cookbook.texi:93 guix-git/doc/guix-cookbook.texi:5562 #: guix-git/doc/guix-cookbook.texi:5563 #, no-wrap msgid "Concept Index" msgstr "Konzeptverzeichnis" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:93 msgid "Concepts." msgstr "Konzepte." #. type: menuentry #: guix-git/doc/guix-cookbook.texi:96 msgid "--- The Detailed Node Listing ---" msgstr "--- Detaillierte Liste der Knoten ---" #. type: section #: guix-git/doc/guix-cookbook.texi:100 guix-git/doc/guix-cookbook.texi:222 #: guix-git/doc/guix-cookbook.texi:224 guix-git/doc/guix-cookbook.texi:225 #, no-wrap msgid "A Scheme Crash Course" msgstr "Ein Schnellkurs in Scheme" #. type: section #: guix-git/doc/guix-cookbook.texi:104 guix-git/doc/guix-cookbook.texi:106 #: guix-git/doc/guix-cookbook.texi:511 guix-git/doc/guix-cookbook.texi:513 #: guix-git/doc/guix-cookbook.texi:514 #, no-wrap msgid "Packaging Tutorial" msgstr "Anleitung zum Paketeschreiben" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:104 guix-git/doc/guix-cookbook.texi:511 msgid "A tutorial on how to add packages to Guix." msgstr "Eine Anleitung, wie Sie Pakete zu Guix hinzufügen." #. type: subsection #: guix-git/doc/guix-cookbook.texi:115 guix-git/doc/guix-cookbook.texi:561 #: guix-git/doc/guix-cookbook.texi:563 guix-git/doc/guix-cookbook.texi:564 #, no-wrap msgid "A ``Hello World'' package" msgstr "Ein Hallo-Welt-Paket" #. type: subsection #: guix-git/doc/guix-cookbook.texi:115 guix-git/doc/guix-cookbook.texi:117 #: guix-git/doc/guix-cookbook.texi:561 guix-git/doc/guix-cookbook.texi:754 #: guix-git/doc/guix-cookbook.texi:755 #, no-wrap msgid "Setup" msgstr "Herangehensweisen" #. type: subsection #: guix-git/doc/guix-cookbook.texi:115 guix-git/doc/guix-cookbook.texi:561 #: guix-git/doc/guix-cookbook.texi:994 guix-git/doc/guix-cookbook.texi:995 #, no-wrap msgid "Extended example" msgstr "Erweitertes Beispiel" #. type: subsection #: guix-git/doc/guix-cookbook.texi:115 guix-git/doc/guix-cookbook.texi:561 #: guix-git/doc/guix-cookbook.texi:1398 guix-git/doc/guix-cookbook.texi:1399 #, no-wrap msgid "Other build systems" msgstr "Andere Erstellungssysteme" #. type: subsection #: guix-git/doc/guix-cookbook.texi:115 guix-git/doc/guix-cookbook.texi:123 #: guix-git/doc/guix-cookbook.texi:561 guix-git/doc/guix-cookbook.texi:1416 #: guix-git/doc/guix-cookbook.texi:1417 #, no-wrap msgid "Programmable and automated package definition" msgstr "Programmierbare und automatisierte Paketdefinition" #. type: subsection #: guix-git/doc/guix-cookbook.texi:115 guix-git/doc/guix-cookbook.texi:561 #: guix-git/doc/guix-cookbook.texi:1533 guix-git/doc/guix-cookbook.texi:1534 #, no-wrap msgid "Getting help" msgstr "Hilfe bekommen" #. type: subsection #: guix-git/doc/guix-cookbook.texi:115 guix-git/doc/guix-cookbook.texi:561 #: guix-git/doc/guix-cookbook.texi:1546 guix-git/doc/guix-cookbook.texi:1547 #, no-wrap msgid "Conclusion" msgstr "Schlusswort" #. type: subsection #: guix-git/doc/guix-cookbook.texi:115 guix-git/doc/guix-cookbook.texi:561 #: guix-git/doc/guix-cookbook.texi:1567 guix-git/doc/guix-cookbook.texi:1568 #, no-wrap msgid "References" msgstr "Literaturverzeichnis" #. type: subsubsection #: guix-git/doc/guix-cookbook.texi:121 guix-git/doc/guix-cookbook.texi:772 #: guix-git/doc/guix-cookbook.texi:774 guix-git/doc/guix-cookbook.texi:775 #, no-wrap msgid "Local file" msgstr "Lokale Datei" #. type: subsubsection #: guix-git/doc/guix-cookbook.texi:121 guix-git/doc/guix-cookbook.texi:772 #: guix-git/doc/guix-cookbook.texi:794 guix-git/doc/guix-cookbook.texi:795 #, no-wrap msgid "Channels" msgstr "Kanäle" #. type: subsubsection #: guix-git/doc/guix-cookbook.texi:121 guix-git/doc/guix-cookbook.texi:772 #: guix-git/doc/guix-cookbook.texi:908 guix-git/doc/guix-cookbook.texi:909 #, no-wrap msgid "Direct checkout hacking" msgstr "Direkt am Checkout hacken" #. type: subsubsection #: guix-git/doc/guix-cookbook.texi:127 guix-git/doc/guix-cookbook.texi:1428 #: guix-git/doc/guix-cookbook.texi:1430 guix-git/doc/guix-cookbook.texi:1431 #, no-wrap msgid "Recursive importers" msgstr "Rekursive Importer" #. type: subsubsection #: guix-git/doc/guix-cookbook.texi:127 guix-git/doc/guix-cookbook.texi:1428 #: guix-git/doc/guix-cookbook.texi:1489 guix-git/doc/guix-cookbook.texi:1490 #, no-wrap msgid "Automatic update" msgstr "Automatisch aktualisieren" #. type: subsubsection #: guix-git/doc/guix-cookbook.texi:127 guix-git/doc/guix-cookbook.texi:1428 #: guix-git/doc/guix-cookbook.texi:1507 guix-git/doc/guix-cookbook.texi:1508 #, no-wrap msgid "Inheritance" msgstr "Vererbung" #. type: section #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 #: guix-git/doc/guix-cookbook.texi:1608 guix-git/doc/guix-cookbook.texi:1609 #, no-wrap msgid "Auto-Login to a Specific TTY" msgstr "Automatisch an virtueller Konsole anmelden" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 msgid "Automatically Login a User to a Specific TTY" msgstr "Benutzer an einem bestimmten TTY automatisch anmelden." #. type: section #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 #: guix-git/doc/guix-cookbook.texi:1653 guix-git/doc/guix-cookbook.texi:1654 #, no-wrap msgid "Customizing the Kernel" msgstr "Den Kernel anpassen" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 msgid "Creating and using a custom Linux kernel on Guix System." msgstr "Einen eigenen Linux-Kernel auf Guix System erzeugen und benutzen." #. type: section #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 #: guix-git/doc/guix-cookbook.texi:1893 guix-git/doc/guix-cookbook.texi:1894 #, no-wrap msgid "Guix System Image API" msgstr "Die Image-Schnittstelle von Guix System" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 msgid "Customizing images to target specific platforms." msgstr "Abbilder für bestimmte Plattformen anpassen." #. type: section #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 #: guix-git/doc/guix-cookbook.texi:2110 guix-git/doc/guix-cookbook.texi:2111 #, no-wrap msgid "Using security keys" msgstr "Sicherheitsschlüssel verwenden" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 msgid "How to use security keys with Guix System." msgstr "Ihre Sicherheitsschlüssel mit Guix System gebrauchen." #. type: section #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 #: guix-git/doc/guix-cookbook.texi:2232 guix-git/doc/guix-cookbook.texi:2233 #, no-wrap msgid "Dynamic DNS mcron job" msgstr "Dynamisches DNS als mcron-Auftrag" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 msgid "Job to update the IP address behind a DuckDNS host name." msgstr "Mit diesem Auftrag bleibt Ihre IP-Adresse bei DuckDNS aktuell." #. type: section #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 #: guix-git/doc/guix-cookbook.texi:2285 guix-git/doc/guix-cookbook.texi:2286 #, no-wrap msgid "Connecting to Wireguard VPN" msgstr "Verbinden mit Wireguard VPN" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 msgid "Connecting to a Wireguard VPN." msgstr "Wie man sich mit einem Wireguard-VPN verbindet." #. type: section #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:145 #: guix-git/doc/guix-cookbook.texi:1606 guix-git/doc/guix-cookbook.texi:2362 #: guix-git/doc/guix-cookbook.texi:2363 #, no-wrap msgid "Customizing a Window Manager" msgstr "Fensterverwalter (Window Manager) anpassen" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 msgid "Handle customization of a Window manager on Guix System." msgstr "Wie man einen Fensterverwalter auf Guix System anpassen kann." #. type: section #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 #: guix-git/doc/guix-cookbook.texi:2467 guix-git/doc/guix-cookbook.texi:2468 #, no-wrap msgid "Running Guix on a Linode Server" msgstr "Guix auf einem Linode-Server nutzen" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 msgid "Running Guix on a Linode Server." msgstr "Guix auf einem Linode-Server nutzen." #. type: section #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 #: guix-git/doc/guix-cookbook.texi:2708 guix-git/doc/guix-cookbook.texi:2709 #, no-wrap msgid "Running Guix on a Kimsufi Server" msgstr "Guix auf einem Kimsufi-Server nutzen" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 msgid "Running Guix on a Kimsufi Server." msgstr "Guix auf einem Kimsufi-Server nutzen." #. type: section #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 #: guix-git/doc/guix-cookbook.texi:2955 guix-git/doc/guix-cookbook.texi:2956 #, no-wrap msgid "Setting up a bind mount" msgstr "Bind-Mounts anlegen" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 msgid "Setting up a bind mount in the file-systems definition." msgstr "Bind-Mounts als Dateisystemdefinition einrichten." #. type: section #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 #: guix-git/doc/guix-cookbook.texi:3009 guix-git/doc/guix-cookbook.texi:3010 #, no-wrap msgid "Getting substitutes from Tor" msgstr "Substitute über Tor beziehen" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 msgid "Configuring Guix daemon to get substitutes through Tor." msgstr "Den Guix-Daemon konfigurieren, damit er Substitute über Tor lädt." #. type: section #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 #: guix-git/doc/guix-cookbook.texi:3073 guix-git/doc/guix-cookbook.texi:3074 #, no-wrap msgid "Setting up NGINX with Lua" msgstr "NGINX mit Lua konfigurieren" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 msgid "Configuring NGINX web-server to load Lua modules." msgstr "Den NGINX-Web-Server so einrichten, dass Lua-Module geladen werden." #. type: section #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 #: guix-git/doc/guix-cookbook.texi:3130 guix-git/doc/guix-cookbook.texi:3131 #, no-wrap msgid "Music Server with Bluetooth Audio" msgstr "Musik-Server mit Bluetooth-Audio" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:1606 msgid "Headless music player with Bluetooth output." msgstr "Musikzentrale ohne Bildschirm mit Bluetooth-Ausgabe." #. type: subsection #: guix-git/doc/guix-cookbook.texi:148 guix-git/doc/guix-cookbook.texi:2369 #: guix-git/doc/guix-cookbook.texi:2371 guix-git/doc/guix-cookbook.texi:2372 #, no-wrap msgid "StumpWM" msgstr "StumpWM" #. type: subsection #: guix-git/doc/guix-cookbook.texi:148 guix-git/doc/guix-cookbook.texi:150 #: guix-git/doc/guix-cookbook.texi:2369 guix-git/doc/guix-cookbook.texi:2419 #: guix-git/doc/guix-cookbook.texi:2420 #, no-wrap msgid "Session lock" msgstr "Sitzungen sperren" #. type: subsubsection #: guix-git/doc/guix-cookbook.texi:152 guix-git/doc/guix-cookbook.texi:2430 #: guix-git/doc/guix-cookbook.texi:2432 guix-git/doc/guix-cookbook.texi:2433 #, no-wrap msgid "Xorg" msgstr "Xorg" #. type: section #: guix-git/doc/guix-cookbook.texi:157 guix-git/doc/guix-cookbook.texi:3349 #: guix-git/doc/guix-cookbook.texi:3351 guix-git/doc/guix-cookbook.texi:3352 #, no-wrap msgid "Guix Containers" msgstr "Guix-Container" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:157 guix-git/doc/guix-cookbook.texi:3349 msgid "Perfectly isolated environments" msgstr "Völlig isolierte Umgebungen." #. type: section #: guix-git/doc/guix-cookbook.texi:157 guix-git/doc/guix-cookbook.texi:159 #: guix-git/doc/guix-cookbook.texi:3349 guix-git/doc/guix-cookbook.texi:3500 #: guix-git/doc/guix-cookbook.texi:3501 #, no-wrap msgid "Guix System Containers" msgstr "Container mit Guix System" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:157 guix-git/doc/guix-cookbook.texi:3349 msgid "A system inside your system" msgstr "Ein System in Ihrem System." #. type: subsection #: guix-git/doc/guix-cookbook.texi:162 guix-git/doc/guix-cookbook.texi:3535 #: guix-git/doc/guix-cookbook.texi:3537 guix-git/doc/guix-cookbook.texi:3538 #, no-wrap msgid "A Database Container" msgstr "Ein Datenbank-Container" #. type: subsection #: guix-git/doc/guix-cookbook.texi:162 guix-git/doc/guix-cookbook.texi:3535 #: guix-git/doc/guix-cookbook.texi:3649 guix-git/doc/guix-cookbook.texi:3650 #, no-wrap msgid "Container Networking" msgstr "Netzwerkverbindungen im Container" #. type: section #: guix-git/doc/guix-cookbook.texi:167 guix-git/doc/guix-cookbook.texi:3738 #: guix-git/doc/guix-cookbook.texi:3740 guix-git/doc/guix-cookbook.texi:3741 #, no-wrap msgid "Network bridge for QEMU" msgstr "Netzwerkbrücke für QEMU" #. type: section #: guix-git/doc/guix-cookbook.texi:167 guix-git/doc/guix-cookbook.texi:3738 #: guix-git/doc/guix-cookbook.texi:3863 guix-git/doc/guix-cookbook.texi:3864 #, no-wrap msgid "Routed network for libvirt" msgstr "Netzwerk-Routing anschalten in libvirt" #. type: section #: guix-git/doc/guix-cookbook.texi:171 guix-git/doc/guix-cookbook.texi:173 #: guix-git/doc/guix-cookbook.texi:3972 guix-git/doc/guix-cookbook.texi:3974 #: guix-git/doc/guix-cookbook.texi:3975 #, no-wrap msgid "Guix Profiles in Practice" msgstr "Guix-Profile in der Praxis" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:171 guix-git/doc/guix-cookbook.texi:3972 msgid "Strategies for multiple profiles and manifests." msgstr "Strategien für mehrere Profile und Manifeste." #. type: subsection #: guix-git/doc/guix-cookbook.texi:179 guix-git/doc/guix-cookbook.texi:4066 #: guix-git/doc/guix-cookbook.texi:4068 guix-git/doc/guix-cookbook.texi:4069 #, no-wrap msgid "Basic setup with manifests" msgstr "Grundlegende Einrichtung über Manifeste" #. type: subsection #: guix-git/doc/guix-cookbook.texi:179 guix-git/doc/guix-cookbook.texi:4066 #: guix-git/doc/guix-cookbook.texi:4204 guix-git/doc/guix-cookbook.texi:4205 #, no-wrap msgid "Required packages" msgstr "Die nötigen Pakete" #. type: subsection #: guix-git/doc/guix-cookbook.texi:179 guix-git/doc/guix-cookbook.texi:4066 #: guix-git/doc/guix-cookbook.texi:4232 guix-git/doc/guix-cookbook.texi:4233 #, no-wrap msgid "Default profile" msgstr "Vorgabeprofil" #. type: subsection #: guix-git/doc/guix-cookbook.texi:179 guix-git/doc/guix-cookbook.texi:4066 #: guix-git/doc/guix-cookbook.texi:4251 guix-git/doc/guix-cookbook.texi:4252 #, no-wrap msgid "The benefits of manifests" msgstr "Der Vorteil von Manifesten" #. type: subsection #: guix-git/doc/guix-cookbook.texi:179 guix-git/doc/guix-cookbook.texi:4066 #: guix-git/doc/guix-cookbook.texi:4326 guix-git/doc/guix-cookbook.texi:4327 #, no-wrap msgid "Reproducible profiles" msgstr "Reproduzierbare Profile" #. type: section #: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399 #: guix-git/doc/guix-cookbook.texi:4401 guix-git/doc/guix-cookbook.texi:4402 #, no-wrap msgid "Getting Started" msgstr "Einstieg" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399 msgid "Step 0: using `guix shell'." msgstr "Schritt 0: „guix shell“ benutzen." #. type: node #: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399 #: guix-git/doc/guix-cookbook.texi:4521 #, no-wrap msgid "Building with Guix" msgstr "Erstellen mit Guix" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399 msgid "Step 1: building your code." msgstr "Schritt 1: Ihren Code kompilieren." #. type: node #: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399 #: guix-git/doc/guix-cookbook.texi:4611 #, no-wrap msgid "The Repository as a Channel" msgstr "Das Repository als Kanal" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399 msgid "Step 2: turning the repo in a channel." msgstr "Schritt 2: Ein Repo in einen Kanal verwandeln." #. type: node #: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399 #: guix-git/doc/guix-cookbook.texi:4747 #, no-wrap msgid "Package Variants" msgstr "Paketvarianten" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399 msgid "Bonus: Defining variants." msgstr "Bonus: Varianten definieren." #. type: node #: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399 #: guix-git/doc/guix-cookbook.texi:4799 #, no-wrap msgid "Setting Up Continuous Integration" msgstr "Kontinuierliche Integration einrichten" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399 msgid "Step 3: continuous integration." msgstr "Schritt 3: Kontinuierliche Integration." #. type: node #: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399 #: guix-git/doc/guix-cookbook.texi:4874 #, no-wrap msgid "Build Manifest" msgstr "Erstellungs-Manifest" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399 msgid "Bonus: Manifest." msgstr "Bonus: Manifest." #. type: section #: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399 #: guix-git/doc/guix-cookbook.texi:4967 guix-git/doc/guix-cookbook.texi:4968 #, no-wrap msgid "Wrapping Up" msgstr "Zusammenfassung" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:189 guix-git/doc/guix-cookbook.texi:4399 msgid "Recap." msgstr "Resümee." #. type: section #: guix-git/doc/guix-cookbook.texi:193 guix-git/doc/guix-cookbook.texi:5023 #: guix-git/doc/guix-cookbook.texi:5025 guix-git/doc/guix-cookbook.texi:5026 #, no-wrap msgid "Guix environment via direnv" msgstr "Guix-Umgebung mit direnv" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:193 guix-git/doc/guix-cookbook.texi:5023 msgid "Setup Guix environment with direnv" msgstr "Mit direnv Guix-Umgebungen einrichten." #. type: section #: guix-git/doc/guix-cookbook.texi:201 guix-git/doc/guix-cookbook.texi:5170 #: guix-git/doc/guix-cookbook.texi:5172 guix-git/doc/guix-cookbook.texi:5173 #, no-wrap msgid "Setting Up a Head Node" msgstr "Den Zentralrechner konfigurieren" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:201 guix-git/doc/guix-cookbook.texi:5170 msgid "The node that runs the daemon." msgstr "Auf diesem Rechner läuft der Daemon." #. type: section #: guix-git/doc/guix-cookbook.texi:201 guix-git/doc/guix-cookbook.texi:5170 #: guix-git/doc/guix-cookbook.texi:5280 guix-git/doc/guix-cookbook.texi:5281 #, no-wrap msgid "Setting Up Compute Nodes" msgstr "Die Arbeitsrechner konfigurieren" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:201 guix-git/doc/guix-cookbook.texi:5170 msgid "Client nodes." msgstr "Die Client-Knoten." #. type: node #: guix-git/doc/guix-cookbook.texi:201 guix-git/doc/guix-cookbook.texi:5170 #: guix-git/doc/guix-cookbook.texi:5369 #, no-wrap msgid "Cluster Network Access" msgstr "Netzwerkzugriff im Cluster" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:201 guix-git/doc/guix-cookbook.texi:5170 msgid "Dealing with network access restrictions." msgstr "Der Umgang mit eingeschränktem Netzwerkzugriff." #. type: node #: guix-git/doc/guix-cookbook.texi:201 guix-git/doc/guix-cookbook.texi:5170 #: guix-git/doc/guix-cookbook.texi:5455 #, no-wrap msgid "Cluster Disk Usage" msgstr "Speicherplatz im Cluster" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:201 guix-git/doc/guix-cookbook.texi:5170 msgid "Disk usage considerations." msgstr "Mit dem Plattenplatz haushalten." #. type: node #: guix-git/doc/guix-cookbook.texi:201 guix-git/doc/guix-cookbook.texi:5170 #: guix-git/doc/guix-cookbook.texi:5500 #, no-wrap msgid "Cluster Security Considerations" msgstr "Sicherheit im Cluster" #. type: menuentry #: guix-git/doc/guix-cookbook.texi:201 guix-git/doc/guix-cookbook.texi:5170 msgid "Keeping the cluster secure." msgstr "Sicherheit gewährleisten." #. type: Plain text #: guix-git/doc/guix-cookbook.texi:213 msgid "GNU@tie{}Guix is written in the general purpose programming language Scheme, and many of its features can be accessed and manipulated programmatically. You can use Scheme to generate package definitions, to modify them, to build them, to deploy whole operating systems, etc." msgstr "GNU@tie{}Guix ist in Scheme geschrieben, einer für alle Anwendungszwecke geeigneten Programmiersprache, und viele Funktionalitäten von Guix können programmatisch angesteuert und verändert werden. Sie können Scheme benutzen, um Paketdefinitionen zu erzeugen, abzuändern, ganze Betriebssysteme einzuspielen etc." #. type: Plain text #: guix-git/doc/guix-cookbook.texi:217 msgid "Knowing the basics of how to program in Scheme will unlock many of the advanced features Guix provides --- and you don't even need to be an experienced programmer to use them!" msgstr "Wenn man die Grundzüge kennt, wie man in Scheme programmiert, bekommt man Zugang zu vielen der fortgeschrittenen Funktionen von Guix@tie{}– und Sie müssen dazu nicht einmal ein erfahrener Programmierer sein!" #. type: Plain text #: guix-git/doc/guix-cookbook.texi:219 msgid "Let's get started!" msgstr "Legen wir los!" #. type: cindex #: guix-git/doc/guix-cookbook.texi:227 #, no-wrap msgid "Scheme, crash course" msgstr "Scheme, Schnellkurs" #. type: Plain text #: guix-git/doc/guix-cookbook.texi:233 msgid "Guix uses the Guile implementation of Scheme. To start playing with the language, install it with @code{guix install guile} and start a @dfn{REPL}---short for @uref{https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop, @dfn{read-eval-print loop}}---by running @code{guile} from the command line." msgstr "Die von Guix benutzte Scheme-Implementierung nennt sich Guile. Um mit der Sprache herumspielen zu können, installieren Sie Guile mit @code{guix install guile} und starten eine interaktive Programmierumgebung (englisch @uref{https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop, Read-Eval-Print-Loop}, kurz REPL), indem Sie @code{guile} auf der Befehlszeile ausführen." #. type: Plain text #: guix-git/doc/guix-cookbook.texi:236 msgid "Alternatively you can also run @code{guix shell guile -- guile} if you'd rather not have Guile installed in your user profile." msgstr "Alternativ können Sie auch den Befehl @code{guix shell -- guile} ausführen, wenn Sie Guile lieber @emph{nicht} in Ihr Nutzerprofil installieren wollen." #. type: Plain text #: guix-git/doc/guix-cookbook.texi:242 msgid "In the following examples, lines show what you would type at the REPL; lines starting with ``@result{}'' show evaluation results, while lines starting with ``@print{}'' show things that get printed. @xref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}, for more details on the REPL." msgstr "In den folgenden Beispielen stehen die Zeilen dafür, was Sie auf der REPL eintippen; wenn eine Zeile mit „@result{}“ beginnt, zeigt sie das Ergebnis einer Auswertung, während Zeilen, die mit „@print{}“ beginnen, für eine angezeigte Ausgabe stehen. Siehe @ref{Using Guile Interactively,,, guile, das Referenzhandbuch zu GNU Guile} für mehr Details zur REPL." #. type: itemize #: guix-git/doc/guix-cookbook.texi:250 msgid "Scheme syntax boils down to a tree of expressions (or @emph{s-expression} in Lisp lingo). An expression can be a literal such as numbers and strings, or a compound which is a parenthesized list of compounds and literals. @code{#true} and @code{#false} (abbreviated @code{#t} and @code{#f}) stand for the Booleans ``true'' and ``false'', respectively." msgstr "Die Scheme-Syntax ist an sich ein Baum von Ausdrücken (Lisp-Programmierer nennen sie @emph{symbolische Ausdrücke}, kurz @emph{S-Ausdrücke} bzw.@: englisch @emph{s-expression}). Ein solcher Ausdruck kann ein Literal sein, wie z.B.@: Zahlen oder Zeichenketten, oder er kann ein zusammengesetzter Ausdruck sein, d.h.@: eine geklammerte Liste von zusammengesetzten und literalen Ausdrücken. Dabei stehen @code{#true} und @code{#false} (abgekürzt auch @code{#t} und @code{#f}) jeweils für die Booleschen Werte „wahr“ und „falsch“." #. type: itemize #: guix-git/doc/guix-cookbook.texi:252 msgid "Examples of valid expressions:" msgstr "Beispiele für gültige Ausdrücke" #. type: lisp #: guix-git/doc/guix-cookbook.texi:256 #, no-wrap msgid "" "\"Hello World!\"\n" "@result{} \"Hello World!\"\n" "\n" msgstr "" "\"Hallo Welt!\"\n" "@result{} \"Hallo Welt!\"\n" "\n" #. type: lisp #: guix-git/doc/guix-cookbook.texi:259 #, no-wrap msgid "" "17\n" "@result{} 17\n" "\n" msgstr "" "17\n" "@result{} 17\n" "\n" #. type: lisp #: guix-git/doc/guix-cookbook.texi:263 #, no-wrap msgid "" "(display (string-append \"Hello \" \"Guix\" \"\\n\"))\n" "@print{} Hello Guix!\n" "@result{} #<unspecified>\n" msgstr "" "(display (string-append \"Hallo \" \"Guix\" \"\\n\"))\n" "@print{} Hallo Guix!\n" "@result{} #<unspecified>\n" #. type: itemize #: guix-git/doc/guix-cookbook.texi:270 msgid "This last example is a function call nested in another function call. When a parenthesized expression is evaluated, the first term is the function and the rest are the arguments passed to the function. Every function returns the last evaluated expression as its return value." msgstr "Das letzte Beispiel eben ist der Aufruf einer Funktion innerhalb eines anderen Funktionsaufrufs. Wenn ein geklammerter Ausdruck ausgewertet wird, ist der erste Term die Funktion und der Rest sind die Argumente, die an die Funktion übergeben werden. Jede Funktion liefert ihren zuletzt ausgewerteten Ausdruck als ihren Rückgabewert." #. type: itemize #: guix-git/doc/guix-cookbook.texi:274 msgid "Anonymous functions---@dfn{procedures} in Scheme parlance---are declared with the @code{lambda} term:" msgstr "Anonyme Funktionen@tie{}– bzw.@: Prozeduren, wie man in Scheme sagt@tie{}– werden mit dem @code{lambda}-Term deklariert:" #. type: lisp #: guix-git/doc/guix-cookbook.texi:278 #, no-wrap msgid "" "(lambda (x) (* x x))\n" "@result{} #<procedure 120e348 at <unknown port>:24:0 (x)>\n" msgstr "" "(lambda (x) (* x x))\n" "@result{} #<procedure 120e348 at <unknown port>:24:0 (x)>\n" #. type: itemize #: guix-git/doc/guix-cookbook.texi:283 msgid "The above procedure returns the square of its argument. Since everything is an expression, the @code{lambda} expression returns an anonymous procedure, which can in turn be applied to an argument:" msgstr "Die obige Prozedur liefert das Quadrat ihres Arguments. Weil alles ein Ausdruck ist, liefert der Ausdruck @code{lambda} eine anonyme Prozedur, die wiederum auf ein Argument angewandt werden kann:" #. type: lisp #: guix-git/doc/guix-cookbook.texi:287 #, no-wrap msgid "" "((lambda (x) (* x x)) 3)\n" "@result{} 9\n" msgstr "" "((lambda (x) (* x x)) 3)\n" "@result{} 9\n" #. type: itemize #: guix-git/doc/guix-cookbook.texi:291 msgid "Procedures are regular values just like numbers, strings, Booleans, and so on." msgstr "Prozeduren sind normale Werte wie Zahlen, Zeichenketten, Boolesche Ausdrücke und dererlei auch." #. type: itemize #: guix-git/doc/guix-cookbook.texi:294 msgid "Anything can be assigned a global name with @code{define}:" msgstr "Allem kann mit @code{define} ein globaler Name zugewiesen werden:" #. type: lisp #: guix-git/doc/guix-cookbook.texi:300 #, no-wrap msgid "" "(define a 3)\n" "(define square (lambda (x) (* x x)))\n" "(square a)\n" "@result{} 9\n" msgstr "" "(define a 3)\n" "(define quadrat (lambda (x) (* x x)))\n" "(quadrat a)\n" "@result{} 9\n" #. type: itemize #: guix-git/doc/guix-cookbook.texi:304 msgid "Procedures can be defined more concisely with the following syntax:" msgstr "Prozeduren können auch kürzer mit der folgenden Syntax definiert werden:" #. type: lisp #: guix-git/doc/guix-cookbook.texi:307 #, no-wrap msgid "(define (square x) (* x x))\n" msgstr "(define (quadrat x) (* x x))\n" #. type: itemize #: guix-git/doc/guix-cookbook.texi:311 msgid "A list structure can be created with the @code{list} procedure:" msgstr "Eine Listenstruktur kann mit der @code{list}-Prozedur erzeugt werden:" #. type: lisp #: guix-git/doc/guix-cookbook.texi:315 #, no-wrap msgid "" "(list 2 a 5 7)\n" "@result{} (2 3 5 7)\n" msgstr "" "(list 2 a 5 7)\n" "@result{} (2 3 5 7)\n" #. type: itemize #: guix-git/doc/guix-cookbook.texi:322 msgid "Standard procedures are provided by the @code{(srfi srfi-1)} module to create and process lists (@pxref{SRFI-1, list processing,, guile, GNU Guile Reference Manual}). Here are some of the most useful ones in action:" msgstr "Für die Erzeugung und Verarbeitung von Listen stehen im Modul @code{(srfi srfi-1)} Standardprozeduren zur Verfügung (siehe @ref{SRFI-1, Listenverarbeitung,, guile, Referenzhandbuch zu GNU Guile}). Hier ein kurzer Überblick:" #. type: lisp #: guix-git/doc/guix-cookbook.texi:325 #, no-wrap msgid "" "(use-modules (srfi srfi-1)) ;import list processing procedures\n" "\n" msgstr "" "(use-modules (srfi srfi-1)) ;Prozeduren zur Listenverarbeitung importieren\n" "\n" #. type: lisp #: guix-git/doc/guix-cookbook.texi:328 #, no-wrap msgid "" "(append (list 1 2) (list 3 4))\n" "@result{} (1 2 3 4)\n" "\n" msgstr "" "(append (list 1 2) (list 3 4))\n" "@result{} (1 2 3 4)\n" "\n" #. type: lisp #: guix-git/doc/guix-cookbook.texi:331 #, no-wrap msgid "" "(map (lambda (x) (* x x)) (list 1 2 3 4))\n" "@result{} (1 4 9 16)\n" "\n" msgstr "" "(map (lambda (x) (* x x)) (list 1 2 3 4))\n" "@result{} (1 4 9 16)\n" "\n" #. type: lisp #: guix-git/doc/guix-cookbook.texi:336 #, no-wrap msgid "" "(delete 3 (list 1 2 3 4)) @result{} (1 2 4)\n" "(filter odd? (list 1 2 3 4)) @result{} (1 3)\n" "(remove even? (list 1 2 3 4)) @result{} (1 3)\n" "(find number? (list \"a\" 42 \"b\")) @result{} 42\n" msgstr "" "(delete 3 (list 1 2 3 4)) @result{} (1 2 4)\n" "(filter odd? (list 1 2 3 4)) @result{} (1 3)\n" "(remove even? (list 1 2 3 4)) @result{} (1 3)\n" "(find number? (list \"a\" 42 \"b\")) @result{} 42\n" #. type: itemize #: guix-git/doc/guix-cookbook.texi:340 msgid "Notice how the first argument to @code{map}, @code{filter}, @code{remove}, and @code{find} is a procedure!" msgstr "Beachten Sie, dass das erste Argument an @code{map}, @code{filter}, @code{remove} und @code{find} eine Prozedur ist!" #. type: cindex #: guix-git/doc/guix-cookbook.texi:342 #, no-wrap msgid "S-expression" msgstr "symbolischer Ausdruck (S-expression)" #. type: itemize #: guix-git/doc/guix-cookbook.texi:347 msgid "The @dfn{quote} disables evaluation of a parenthesized expression, also called an S-expression or ``s-exp'': the first term is not called over the other terms (@pxref{Expression Syntax, quote,, guile, GNU Guile Reference Manual}). Thus it effectively returns a list of terms." msgstr "Mit dem @dfn{quote}-Zeichen wird das Auswerten eines geklammerten Ausdrucks abgeschaltet (man spricht dann von einem symbolischen Ausdruck, engl.@: „S-Expression“ bzw. „S-exp“): Der erste Term wird @emph{nicht} auf den anderen Termen aufgerufen (siehe @ref{Expression Syntax, quote,, guile, Referenzhandbuch zu GNU Guile}). Folglich liefert es quasi eine Liste von Termen." #. type: lisp #: guix-git/doc/guix-cookbook.texi:351 #, no-wrap msgid "" "'(display (string-append \"Hello \" \"Guix\" \"\\n\"))\n" "@result{} (display (string-append \"Hello \" \"Guix\" \"\\n\"))\n" "\n" msgstr "" "'(display (string-append \"Hallo \" \"Guix\" \"\\n\"))\n" "@result{} (display (string-append \"Hallo \" \"Guix\" \"\\n\"))\n" "\n" #. type: lisp #: guix-git/doc/guix-cookbook.texi:354 #, no-wrap msgid "" "'(2 a 5 7)\n" "@result{} (2 a 5 7)\n" msgstr "" "'(2 a 5 7)\n" "@result{} (2 a 5 7)\n" #. type: itemize #: guix-git/doc/guix-cookbook.texi:361 msgid "The @code{quasiquote} (@code{`}, a backquote) disables evaluation of a parenthesized expression until @code{unquote} (@code{,}, a comma) re-enables it. Thus it provides us with fine-grained control over what is evaluated and what is not." msgstr "Mit einem @code{quasiquote}-Zeichen (@code{`}) wird die Auswertung eines geklammerten Ausdrucks so lange abgeschaltet, bis ein @code{unquote} (ein Komma) sie wieder aktiviert. Wir können damit genau steuern, was ausgewertet wird und was nicht." #. type: lisp #: guix-git/doc/guix-cookbook.texi:365 #, no-wrap msgid "" "`(2 a 5 7 (2 ,a 5 ,(+ a 4)))\n" "@result{} (2 a 5 7 (2 3 5 7))\n" msgstr "" "`(2 a 5 7 (2 ,a 5 ,(+ a 4)))\n" "@result{} (2 a 5 7 (2 3 5 7))\n" #. type: itemize #: guix-git/doc/guix-cookbook.texi:369 msgid "Note that the above result is a list of mixed elements: numbers, symbols (here @code{a}) and the last element is a list itself." msgstr "Beachten Sie, dass obiges Ergebnis eine Liste verschiedenartiger Elemente ist: Zahlen, Symbole (in diesem Fall @code{a}) und als letztes Element selbst wieder eine Liste." #. type: cindex #: guix-git/doc/guix-cookbook.texi:371 #, no-wrap msgid "G-expressions, syntax" msgstr "G-Ausdrücke, Syntax" #. type: cindex #: guix-git/doc/guix-cookbook.texi:372 #, no-wrap msgid "gexps, syntax" msgstr "Gexps, Syntax" #. type: findex #: guix-git/doc/guix-cookbook.texi:373 #, no-wrap msgid "#~" msgstr "#~" #. type: findex #: guix-git/doc/guix-cookbook.texi:374 #, no-wrap msgid "#$" msgstr "#$" #. type: findex #: guix-git/doc/guix-cookbook.texi:375 #, no-wrap msgid "gexp" msgstr "gexp" #. type: findex #: guix-git/doc/guix-cookbook.texi:376 #, no-wrap msgid "ungexp" msgstr "ungexp" #. type: itemize #: guix-git/doc/guix-cookbook.texi:382 msgid "Guix defines a variant of S-expressions on steroids called @dfn{G-expressions} or ``gexps'', which come with a variant of @code{quasiquote} and @code{unquote}: @code{#~} (or @code{gexp}) and @code{#$} (or @code{ungexp}). They let you @emph{stage code for later execution}." msgstr "In Guix gibt es außerdem eine aufgeputschte Form von S-Ausdrücken: die @dfn{G-Ausdrücke} oder „Gexps“, die ihre eigene Art von @code{quasiquote} und @code{unquote} haben: @code{#~} (oder @code{gexp}) und @code{#$} (oder @code{ungexp}). Mit Ihnen kennzeichnen Sie, welcher Code @emph{erst später ausgeführt} werden soll („Code-Staging“)." #. type: itemize #: guix-git/doc/guix-cookbook.texi:386 msgid "For example, you'll encounter gexps in some package definitions where they provide code to be executed during the package build process. They look like this:" msgstr "G-Ausdrücke begegnen Ihnen etwa in manchen Paketdefinitionen, wo sie eingesetzt werden, damit Code erst bei der Erstellung des Pakets abläuft. Das sieht so aus:" #. type: lisp #: guix-git/doc/guix-cookbook.texi:390 #, no-wrap msgid "" "(use-modules (guix gexp) ;so we can write gexps\n" " (gnu packages base)) ;for 'coreutils'\n" "\n" msgstr "" "(use-modules (guix gexp) ;für’s Schreiben von G-Ausdrücken\n" " (gnu packages base)) ;für 'coreutils'\n" "\n" #. type: lisp #: guix-git/doc/guix-cookbook.texi:396 #, no-wrap msgid "" ";; Below is a G-expression representing staged code.\n" "#~(begin\n" " ;; Invoke 'ls' from the package defined by the 'coreutils'\n" " ;; variable.\n" " (system* #$(file-append coreutils \"/bin/ls\") \"-l\")\n" "\n" msgstr "" ";; Folgender G-Ausdruck enthält später ausgeführten Code.\n" "#~(begin\n" " ;; 'ls' aufrufen aus dem Paket, das in der Variablen 'coreutils'\n" " ;; definiert ist.\n" " (system* #$(file-append coreutils \"/bin/ls\") \"-l\")\n" "\n" #. type: lisp #: guix-git/doc/guix-cookbook.texi:399 #, no-wrap msgid "" " ;; Create this package's output directory.\n" " (mkdir #$output))\n" msgstr "" " ;; Das Ausgabeverzeichnis des aktuell definierten Pakets anlegen.\n" " (mkdir #$output))\n" #. type: itemize #: guix-git/doc/guix-cookbook.texi:403 msgid "@xref{G-Expressions,,, guix, GNU Guix Reference Manual}, for more on gexps." msgstr "Siehe @ref{G-Ausdrücke,,, guix.de, Referenzhandbuch zu GNU Guix} für Details zu G-Ausdrücken." #. type: itemize #: guix-git/doc/guix-cookbook.texi:407 msgid "Multiple variables can be named locally with @code{let} (@pxref{Local Bindings,,, guile, GNU Guile Reference Manual}):" msgstr "Mehrere Variable können in einer lokalen Umgebung mit Bezeichnern versehen werden, indem Sie @code{let} benutzen (siehe @ref{Local Bindings,,, guile, Referenzhandbuch zu GNU Guile}):" #. type: lisp #: guix-git/doc/guix-cookbook.texi:414 #, no-wrap msgid "" "(define x 10)\n" "(let ((x 2)\n" " (y 3))\n" " (list x y))\n" "@result{} (2 3)\n" "\n" msgstr "" "(define x 10)\n" "(let ((x 2)\n" " (y 3))\n" " (list x y))\n" "@result{} (2 3)\n" "\n" #. type: lisp #: guix-git/doc/guix-cookbook.texi:417 #, no-wrap msgid "" "x\n" "@result{} 10\n" "\n" msgstr "" "x\n" "@result{} 10\n" "\n" #. type: lisp #: guix-git/doc/guix-cookbook.texi:420 #, no-wrap msgid "" "y\n" "@error{} In procedure module-lookup: Unbound variable: y\n" msgstr "" "y\n" "@error{} In procedure module-lookup: Unbound variable: y\n" #. type: itemize #: guix-git/doc/guix-cookbook.texi:424 msgid "Use @code{let*} to allow later variable declarations to refer to earlier definitions." msgstr "Benutzen Sie @code{let*}, damit spätere Variablendeklarationen auf frühere verweisen können." #. type: lisp #: guix-git/doc/guix-cookbook.texi:430 #, no-wrap msgid "" "(let* ((x 2)\n" " (y (* x 3)))\n" " (list x y))\n" "@result{} (2 6)\n" msgstr "" "(let* ((x 2)\n" " (y (* x 3)))\n" " (list x y))\n" "@result{} (2 6)\n" #. type: itemize #: guix-git/doc/guix-cookbook.texi:437 msgid "@dfn{Keywords} are typically used to identify the named parameters of a procedure. They are prefixed by @code{#:} (hash, colon) followed by alphanumeric characters: @code{#:like-this}. @xref{Keywords,,, guile, GNU Guile Reference Manual}." msgstr "Mit @dfn{Schlüsselwörtern} bestimmen wir normalerweise diejenigen Parameter einer Prozedur, die einen Namen haben sollen. Ihnen wird @code{#:} (Doppelkreuz und Doppelpunkt) vorangestellt, gefolgt von alphanumerischen Zeichen: @code{#:etwa-so}. Siehe @ref{Keywords,,, guile, Referenzhandbuch zu GNU Guile}." #. type: itemize #: guix-git/doc/guix-cookbook.texi:442 msgid "The percentage @code{%} is typically used for read-only global variables in the build stage. Note that it is merely a convention, like @code{_} in C. Scheme treats @code{%} exactly the same as any other letter." msgstr "Das Prozentzeichen @code{%} wird in der Regel für globale Variable auf Erstellungsebene benutzt, auf die nur lesend zugegriffen werden soll. Beachten Sie, dass es sich dabei nur um eine Konvention handelt, ähnlich wie @code{_} in C@. Scheme behandelt @code{%} genau wie jedes andere Zeichen." #. type: itemize #: guix-git/doc/guix-cookbook.texi:446 msgid "Modules are created with @code{define-module} (@pxref{Creating Guile Modules,,, guile, GNU Guile Reference Manual}). For instance" msgstr "Module werden mit Hilfe von @code{define-module} erzeugt (siehe @ref{Creating Guile Modules,,, guile, Referenzhandbuch zu GNU Guile}). Zum Beispiel definiert man mit" #. type: lisp #: guix-git/doc/guix-cookbook.texi:452 #, no-wrap msgid "" "(define-module (guix build-system ruby)\n" " #:use-module (guix store)\n" " #:export (ruby-build\n" " ruby-build-system))\n" msgstr "" "(define-module (guix build-system ruby)\n" " #:use-module (guix store)\n" " #:export (ruby-build\n" " ruby-build-system))\n" #. type: itemize #: guix-git/doc/guix-cookbook.texi:458 msgid "defines the module @code{guix build-system ruby} which must be located in @file{guix/build-system/ruby.scm} somewhere in the Guile load path. It depends on the @code{(guix store)} module and it exports two variables, @code{ruby-build} and @code{ruby-build-system}." msgstr "das Modul @code{guix build-system ruby}, das sich unter dem Pfad @file{guix/build-system/ruby.scm} innerhalb irgendeines Verzeichnisses im Guile-Ladepfad befinden muss. Es hat eine Abhängigkeit auf das Modul @code{(guix store)} und exportiert zwei seiner Variablen, @code{ruby-build} und @code{ruby-build-system}." #. type: itemize #: guix-git/doc/guix-cookbook.texi:461 msgid "@xref{Package Modules,,, guix, GNU Guix Reference Manual}, for info on modules that define packages." msgstr "Siehe @ref{Paketmodule,,, guix.de, Referenzhandbuch zu GNU Guix} für Informationen zu Modulen, in denen Pakete definiert werden." #. type: quotation #: guix-git/doc/guix-cookbook.texi:463 #, no-wrap msgid "Going further" msgstr "Vertiefung" #. type: quotation #: guix-git/doc/guix-cookbook.texi:467 msgid "Scheme is a language that has been widely used to teach programming and you'll find plenty of material using it as a vehicle. Here's a selection of documents to learn more about Scheme:" msgstr "Die Sprache Scheme wurde oft eingesetzt, um Programmieren beizubringen, daher gibt es ein breites Angebot an Lehrmaterialien, die sie als Transportmittel einsetzen. Hier sehen Sie eine Auswahl solcher Dokumente, mit denen Sie mehr über Scheme erfahren können:" #. type: itemize #: guix-git/doc/guix-cookbook.texi:472 msgid "@uref{https://spritely.institute/static/papers/scheme-primer.html, @i{A Scheme Primer}}, by Christine Lemmer-Webber and the Spritely Institute." msgstr "@uref{https://spritely.institute/news/ein-scheme-primer.html, @i{Ein Scheme-Primer}}, von Christine Lemmer-Webber und dem Spritely Institute, auf Deutsch übersetzt von Florian Pelz." #. type: itemize #: guix-git/doc/guix-cookbook.texi:476 msgid "@uref{http://www.troubleshooters.com/codecorn/scheme_guile/hello.htm, @i{Scheme at a Glance}}, by Steve Litt." msgstr "@uref{http://www.troubleshooters.com/codecorn/scheme_guile/hello.htm, @i{Scheme at a Glance}} von Steve Litt." #. type: itemize #: guix-git/doc/guix-cookbook.texi:483 msgid "@uref{https://sarabander.github.io/sicp/, @i{Structure and Interpretation of Computer Programs}}, by Harold Abelson and Gerald Jay Sussman, with Julie Sussman. Colloquially known as ``SICP'', this book is a reference." msgstr "Eines der Referenzbücher zu Scheme ist das einflussreiche „Structure and Interpretation of Computer Programs“, von Harold Abelson und Gerald Jay Sussman, mit Julie Sussman. Eine deutsche Übersetzung „Struktur und Interpretation von Computerprogrammen“ hat Susanne Daniels-Herold verfasst. Vom englischen Original finden Sie eine @uref{https://sarabander.github.io/sicp/, kostenlose Ausgabe online}. Viele kennen es unter dem Akronym SICP." #. type: itemize #: guix-git/doc/guix-cookbook.texi:485 msgid "You can also install it and read it from your computer:" msgstr "Das Buch können Sie auch installieren und von Ihrem Rechner aus lesen:" #. type: example #: guix-git/doc/guix-cookbook.texi:489 #, no-wrap msgid "" "guix install sicp info-reader\n" "info sicp\n" msgstr "" "guix install sicp info-reader\n" "info sicp\n" #. type: quotation #: guix-git/doc/guix-cookbook.texi:495 msgid "You'll find more books, tutorials and other resources at @url{https://schemers.org/}." msgstr "Sie finden noch mehr Bücher, Anleitungen und andere Ressourcen auf @url{https://schemers.org/}." #. type: cindex #: guix-git/doc/guix-cookbook.texi:502 #, no-wrap msgid "packaging" msgstr "Pakete schreiben" #. type: Plain text #: guix-git/doc/guix-cookbook.texi:508 msgid "This chapter is dedicated to teaching you how to add packages to the collection of packages that come with GNU Guix. This involves writing package definitions in Guile Scheme, organizing them in package modules, and building them." msgstr "In diesem Kapitel bringen wir Ihnen bei, wie Sie Pakete zur mit GNU Guix ausgelieferten Paketsammlung beitragen. Dazu gehört, Paketdefinitionen in Guile Scheme zu schreiben, sie in Paketmodulen zu organisieren und sie zu erstellen." #. type: Plain text #: guix-git/doc/guix-cookbook.texi:522 msgid "GNU Guix stands out as the @emph{hackable} package manager, mostly because it uses @uref{https://www.gnu.org/software/guile/, GNU Guile}, a powerful high-level programming language, one of the @uref{https://en.wikipedia.org/wiki/Scheme_%28programming_language%29, Scheme} dialects from the @uref{https://en.wikipedia.org/wiki/Lisp_%28programming_language%29, Lisp family}." msgstr "GNU Guix zeichnet sich in erster Linie deswegen als das @emph{hackbare} Paketverwaltungswerkzeug aus, weil es mit @uref{https://www.gnu.org/software/guile/, GNU Guile} arbeitet, einer mächtigen, hochsprachlichen Programmiersprache, die einen der Dialekte von @uref{https://de.wikipedia.org/wiki/Scheme, Scheme} darstellt. Scheme wiederum gehört zur @uref{https://de.wikipedia.org/wiki/Lisp, Lisp-Familie von Programmiersprachen}." #. type: Plain text #: guix-git/doc/guix-cookbook.texi:526 msgid "Package definitions are also written in Scheme, which empowers Guix in some very unique ways, unlike most other package managers that use shell scripts or simple languages." msgstr "Paketdefinitionen werden ebenso in Scheme geschrieben, wodurch Guix auf sehr einzigartige Weise mächtiger wird als die meisten anderen Paketverwaltungssysteme, die Shell-Skripte oder einfache Sprachen benutzen." #. type: itemize #: guix-git/doc/guix-cookbook.texi:531 msgid "Use functions, structures, macros and all of Scheme expressiveness for your package definitions." msgstr "Sie können sich Funktionen, Strukturen, Makros und all die Ausdrucksstärke von Scheme für Ihre Paketdefinitionen zu Nutze machen." #. type: itemize #: guix-git/doc/guix-cookbook.texi:535 msgid "Inheritance makes it easy to customize a package by inheriting from it and modifying only what is needed." msgstr "Durch Vererbung können Sie ohne viel Aufwand ein Paket anpassen, indem Sie von ihm erben lassen und nur das Nötige abändern." #. type: itemize #: guix-git/doc/guix-cookbook.texi:545 msgid "Batch processing: the whole package collection can be parsed, filtered and processed. Building a headless server with all graphical interfaces stripped out? It's possible. Want to rebuild everything from source using specific compiler optimization flags? Pass the @code{#:make-flags \"...\"} argument to the list of packages. It wouldn't be a stretch to think @uref{https://wiki.gentoo.org/wiki/USE_flag, Gentoo USE flags} here, but this goes even further: the changes don't have to be thought out beforehand by the packager, they can be @emph{programmed} by the user!" msgstr "Stapelverarbeitung („batch mode“) wird möglich; die ganze Paketsammlung kann analysiert, gefiltert und verarbeitet werden. Versuchen Sie, ein Serversystem ohne Bildschirm („headless“) auch tatsächlich von allen Grafikschnittstellen zu befreien? Das ist möglich. Möchten Sie alles von Neuem aus seinem Quellcode erstellen, aber mit eingeschalteten besonderen Compileroptimierungen? Übergeben Sie einfach das passende @code{#:make-flags \"...\"}-Argument an die Paketliste. Es wäre nicht übertrieben, hier an die @uref{https://wiki.gentoo.org/wiki/USE_flag, USE-Optionen von Gentoo} zu denken, aber das hier übertrifft sie: Der Paketautor muss vorher gar nicht darüber nachgedacht haben, der Nutzer kann sie selbst @emph{programmieren}!" #. type: Plain text #: guix-git/doc/guix-cookbook.texi:551 msgid "The following tutorial covers all the basics around package creation with Guix. It does not assume much knowledge of the Guix system nor of the Lisp language. The reader is only expected to be familiar with the command line and to have some basic programming knowledge." msgstr "Die folgende Anleitung erklärt alles Grundlegende über das Schreiben von Paketen mit Guix. Dabei setzen wir kein großes Wissen über das Guix-System oder die Lisp-Sprache voraus. Vom Leser wird nur erwartet, dass er mit der Befehlszeile vertraut ist und über grundlegende Programmierkenntnisse verfügt." #. type: Plain text #: guix-git/doc/guix-cookbook.texi:569 msgid "The ``Defining Packages'' section of the manual introduces the basics of Guix packaging (@pxref{Defining Packages,,, guix, GNU Guix Reference Manual}). In the following section, we will partly go over those basics again." msgstr "Der Abschnitt „Pakete definieren“ im Handbuch führt in die Grundlagen des Paketschreibens für Guix ein (siehe @ref{Pakete definieren,,, guix.de, Referenzhandbuch zu GNU Guix}). Im folgenden Abschnitt werden wir diese Grundlagen teilweise rekapitulieren." #. type: Plain text #: guix-git/doc/guix-cookbook.texi:575 msgid "GNU@tie{}Hello is a dummy project that serves as an idiomatic example for packaging. It uses the GNU build system (@code{./configure && make && make install}). Guix already provides a package definition which is a perfect example to start with. You can look up its declaration with @code{guix edit hello} from the command line. Let's see how it looks:" msgstr "GNU@tie{}Hello ist ein Projekt, das uns als Stellvertreter für „richtige“ Projekte und allgemeines Beispiel für das Schreiben von Paketen dient. Es verwendet das GNU-Erstellungssystem (@code{./configure && make && make install}). Guix stellt uns schon eine Paketdefinition zur Verfügung, die uns einen perfekten Ausgangspunkt bietet. Sie können sich ihre Deklaration anschauen, indem Sie @code{guix edit hello} von der Befehlszeile ausführen. Schauen wir sie uns an:" #. type: lisp #: guix-git/doc/guix-cookbook.texi:596 #, no-wrap msgid "" "(define-public hello\n" " (package\n" " (name \"hello\")\n" " (version \"2.10\")\n" " (source (origin\n" " (method url-fetch)\n" " (uri (string-append \"mirror://gnu/hello/hello-\" version\n" " \".tar.gz\"))\n" " (sha256\n" " (base32\n" " \"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\"))))\n" " (build-system gnu-build-system)\n" " (synopsis \"Hello, GNU world: An example GNU package\")\n" " (description\n" " \"GNU Hello prints the message \\\"Hello, world!\\\" and then exits. It\n" "serves as an example of standard GNU coding practices. As such, it supports\n" "command-line arguments, multiple languages, and so on.\")\n" " (home-page \"https://www.gnu.org/software/hello/\")\n" " (license gpl3+)))\n" msgstr "" "(define-public hello\n" " (package\n" " (name \"hello\")\n" " (version \"2.10\")\n" " (source (origin\n" " (method url-fetch)\n" " (uri (string-append \"mirror://gnu/hello/hello-\" version\n" " \".tar.gz\"))\n" " (sha256\n" " (base32\n" " \"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\"))))\n" " (build-system gnu-build-system)\n" " (synopsis \"Hello, GNU world: An example GNU package\")\n" " (description\n" " \"GNU Hello prints the message \\\"Hello, world!\\\" and then exits. It\n" "serves as an example of standard GNU coding practices. As such, it supports\n" "command-line arguments, multiple languages, and so on.\")\n" " (home-page \"https://www.gnu.org/software/hello/\")\n" " (license gpl3+)))\n" #. type: Plain text #: guix-git/doc/guix-cookbook.texi:600 msgid "As you can see, most of it is rather straightforward. But let's review the fields together:" msgstr "Wie Sie sehen können, ist das meiste klar strukturiert. Aber sehen wir uns die Felder zusammen an:" #. type: item #: guix-git/doc/guix-cookbook.texi:602 #, no-wrap msgid "name" msgstr "name" #. type: table #: guix-git/doc/guix-cookbook.texi:605 msgid "The project name. Using Scheme conventions, we prefer to keep it lower case, without underscore and using dash-separated words." msgstr "Der Name des Projekts. Wir halten uns an die Konventionen von Scheme und bevorzugen deshalb Kleinschreibung ohne Unterstriche, sondern mit Bindestrichen zwischen den Wörtern." #. type: item #: guix-git/doc/guix-cookbook.texi:606 #, no-wrap msgid "source" msgstr "source" #. type: table #: guix-git/doc/guix-cookbook.texi:609 msgid "This field contains a description of the source code origin. The @code{origin} record contains these fields:" msgstr "Dieses Feld enthält eine Beschreibung, was der Ursprung des Quellcodes ist. Das @code{origin}-Verbundsobjekt enthält diese Felder:" #. type: item #: guix-git/doc/guix-cookbook.texi:611 #, no-wrap msgid "The method, here @code{url-fetch} to download via HTTP/FTP, but other methods" msgstr "Die Methode. Wir verwenden hier @code{url-fetch}, um über HTTP/FTP herunterzuladen," #. type: enumerate #: guix-git/doc/guix-cookbook.texi:613 msgid "exist, such as @code{git-fetch} for Git repositories." msgstr "aber es gibt auch andere Methoden wie @code{git-fetch} für Git-Repositorys." #. type: item #: guix-git/doc/guix-cookbook.texi:613 #, no-wrap msgid "The URI, which is typically some @code{https://} location for @code{url-fetch}. Here" msgstr "Die URI, welche bei @code{url-fetch} normalerweise eine Ortsangabe mit @code{https://} ist." #. type: enumerate #: guix-git/doc/guix-cookbook.texi:616 msgid "the special `mirror://gnu` refers to a set of well known locations, all of which can be used by Guix to fetch the source, should some of them fail." msgstr "In diesem Fall verweist die besondere URI ‚mirror://gnu‘ auf eine von mehreren wohlbekannten Ortsangaben, von denen Guix jede durchprobieren kann, um den Quellcode herunterzuladen, wenn es bei manchen davon nicht klappt." #. type: item #: guix-git/doc/guix-cookbook.texi:616 #, no-wrap msgid "The @code{sha256} checksum of the requested file. This is essential to ensure" msgstr "Die @code{sha256}-Prüfsumme der angefragten Datei." #. type: enumerate #: guix-git/doc/guix-cookbook.texi:619 msgid "the source is not corrupted. Note that Guix works with base32 strings, hence the call to the @code{base32} function." msgstr "Sie ist notwendig, damit sichergestellt werden kann, dass der Quellcode nicht beschädigt ist. Beachten Sie, dass Guix mit Zeichenketten in Base32-Kodierung arbeitet, weshalb wir die @code{base32}-Funktion aufrufen." #. type: item #: guix-git/doc/guix-cookbook.texi:621 #, no-wrap msgid "build-system" msgstr "build-system" #. type: table #: guix-git/doc/guix-cookbook.texi:630 msgid "This is where the power of abstraction provided by the Scheme language really shines: in this case, the @code{gnu-build-system} abstracts away the famous @code{./configure && make && make install} shell invocations. Other build systems include the @code{trivial-build-system} which does not do anything and requires from the packager to program all the build steps, the @code{python-build-system}, the @code{emacs-build-system}, and many more (@pxref{Build Systems,,, guix, GNU Guix Reference Manual})." msgstr "Hier glänzt Schemes Fähigkeit zur Abstraktion: In diesem Fall abstrahiert @code{gnu-build-system} die berühmten Schritte @code{./configure && make && make install}, die sonst in der Shell aufgerufen würden. Zu den anderen Erstellungssystemen gehören das @code{trivial-build-system}, das nichts tut und dem Paketautoren das Schreiben sämtlicher Erstellungsschritte abverlangt, das @code{python-build-system}, das @code{emacs-build-system}, und viele mehr (siehe @ref{Erstellungssysteme,,, guix.de, Referenzhandbuch zu GNU Guix})." #. type: item #: guix-git/doc/guix-cookbook.texi:631 #, no-wrap msgid "synopsis" msgstr "synopsis" #. type: table #: guix-git/doc/guix-cookbook.texi:634 msgid "It should be a concise summary of what the package does. For many packages a tagline from the project's home page can be used as the synopsis." msgstr "Die Zusammenfassung. Sie sollte eine knappe Beschreibung sein, was das Paket tut. Für viele Pakete findet sich auf der Homepage ein Einzeiler, der als Zusammenfassung benutzt werden kann." #. type: item #: guix-git/doc/guix-cookbook.texi:635 #, no-wrap msgid "description" msgstr "description" #. type: table #: guix-git/doc/guix-cookbook.texi:638 msgid "Same as for the synopsis, it's fine to re-use the project description from the homepage. Note that Guix uses Texinfo syntax." msgstr "Genau wie bei der Zusammenfassung ist es in Ordnung, die Beschreibung des Projekts für das Paket wiederzuverwenden. Beachten Sie, dass Guix dafür Texinfo-Syntax verlangt." #. type: item #: guix-git/doc/guix-cookbook.texi:639 #, no-wrap msgid "home-page" msgstr "home-page" #. type: table #: guix-git/doc/guix-cookbook.texi:641 msgid "Use HTTPS if available." msgstr "Hier soll möglichst HTTPS benutzt werden." #. type: item #: guix-git/doc/guix-cookbook.texi:642 #, no-wrap msgid "license" msgstr "license" #. type: table #: guix-git/doc/guix-cookbook.texi:645 msgid "See @code{guix/licenses.scm} in the project source for a full list of available licenses." msgstr "Siehe die vollständige Liste verfügbarer Lizenzen in @code{guix/licenses.scm} im Guix-Quellcode." #. type: Plain text #: guix-git/doc/guix-cookbook.texi:649 msgid "Time to build our first package! Nothing fancy here for now: we will stick to a dummy @code{my-hello}, a copy of the above declaration." msgstr "Es wird Zeit, unser erstes Paket zu schreiben! Aber noch nichts tolles, wir bleiben bei einem Paket @code{my-hello} stelltvertretend für „richtige“ Software; es ist eine Kopie obiger Deklaration." #. type: Plain text #: guix-git/doc/guix-cookbook.texi:653 msgid "As with the ritualistic ``Hello World'' taught with most programming languages, this will possibly be the most ``manual'' approach. We will work out an ideal setup later; for now we will go the simplest route." msgstr "Genau wie beim Ritual, Neulinge in Programmiersprachen „Hallo Welt“ schreiben zu lassen, fangen wir mit der vielleicht „arbeitsintensivsten“ Herangehensweise ans Paketeschreiben an. Wir kümmern uns später darum, wie man am besten an Paketen arbeitet; erst einmal nehmen wir den einfachsten Weg." #. type: Plain text #: guix-git/doc/guix-cookbook.texi:655 msgid "Save the following to a file @file{my-hello.scm}." msgstr "Speichern Sie den folgenden Code in eine Datei @file{my-hello.scm}." #. type: lisp #: guix-git/doc/guix-cookbook.texi:661 #, no-wrap msgid "" "(use-modules (guix packages)\n" " (guix download)\n" " (guix build-system gnu)\n" " (guix licenses))\n" "\n" msgstr "" "(use-modules (guix packages)\n" " (guix download)\n" " (guix build-system gnu)\n" " (guix licenses))\n" "\n" #. type: lisp #: guix-git/doc/guix-cookbook.texi:680 #, no-wrap msgid "" "(package\n" " (name \"my-hello\")\n" " (version \"2.10\")\n" " (source (origin\n" " (method url-fetch)\n" " (uri (string-append \"mirror://gnu/hello/hello-\" version\n" " \".tar.gz\"))\n" " (sha256\n" " (base32\n" " \"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\"))))\n" " (build-system gnu-build-system)\n" " (synopsis \"Hello, Guix world: An example custom Guix package\")\n" " (description\n" " \"GNU Hello prints the message \\\"Hello, world!\\\" and then exits. It\n" "serves as an example of standard GNU coding practices. As such, it supports\n" "command-line arguments, multiple languages, and so on.\")\n" " (home-page \"https://www.gnu.org/software/hello/\")\n" " (license gpl3+))\n" msgstr "" "(package\n" " (name \"my-hello\")\n" " (version \"2.10\")\n" " (source (origin\n" " (method url-fetch)\n" " (uri (string-append \"mirror://gnu/hello/hello-\" version\n" " \".tar.gz\"))\n" " (sha256\n" " (base32\n" " \"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\"))))\n" " (build-system gnu-build-system)\n" " (synopsis \"Hello, Guix world: An example custom Guix package\")\n" " (description\n" " \"GNU Hello prints the message \\\"Hello, world!\\\" and then exits. It\n" "serves as an example of standard GNU coding practices. As such, it supports\n" "command-line arguments, multiple languages, and so on.\")\n" " (home-page \"https://www.gnu.org/software/hello/\")\n" " (license gpl3+))\n" #. type: Plain text #: guix-git/doc/guix-cookbook.texi:683 msgid "We will explain the extra code in a moment." msgstr "Wir erklären den zusätzlichen Code in Kürze." #. type: Plain text #: guix-git/doc/guix-cookbook.texi:690 msgid "Feel free to play with the different values of the various fields. If you change the source, you'll need to update the checksum. Indeed, Guix refuses to build anything if the given checksum does not match the computed checksum of the source code. To obtain the correct checksum of the package declaration, we need to download the source, compute the sha256 checksum and convert it to base32." msgstr "Spielen Sie ruhig mit unterschiedlichen Werten für die verschiedenen Felder herum. Wenn Sie den Quellort (die „source“) ändern, müssen Sie die Prüfsumme aktualisieren. Tatsächlich weigert sich Guix, etwas zu erstellen, wenn die angegebene Prüfsumme nicht zu der berechneten Prüfsumme des Quellcodes passt. Um die richtige Prüfsumme für die Paketdeklaration zu finden, müssen wir den Quellcode herunterladen, die SHA256-Summe davon berechnen und sie in Base32 umwandeln." #. type: Plain text #: guix-git/doc/guix-cookbook.texi:693 msgid "Thankfully, Guix can automate this task for us; all we need is to provide the URI:" msgstr "Glücklicherweise kann Guix diese Aufgabe automatisieren; wir müssen lediglich die URI übergeben." #. This is example shell output. #. type: example #: guix-git/doc/guix-cookbook.texi:697 #, no-wrap msgid "" "$ guix download mirror://gnu/hello/hello-2.10.tar.gz\n" "\n" msgstr "" "$ guix download mirror://gnu/hello/hello-2.10.tar.gz\n" "\n" #. type: example #: guix-git/doc/guix-cookbook.texi:704 #, no-wrap msgid "" "Starting download of /tmp/guix-file.JLYgL7\n" "From https://ftpmirror.gnu.org/gnu/hello/hello-2.10.tar.gz...\n" "following redirection to `https://mirror.ibcp.fr/pub/gnu/hello/hello-2.10.tar.gz'...\n" " …10.tar.gz 709KiB 2.5MiB/s 00:00 [##################] 100.0%\n" "/gnu/store/hbdalsf5lpf01x4dcknwx6xbn6n5km6k-hello-2.10.tar.gz\n" "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\n" msgstr "" "Starting download of /tmp/guix-file.JLYgL7\n" "From https://ftpmirror.gnu.org/gnu/hello/hello-2.10.tar.gz...\n" "following redirection to `https://mirror.ibcp.fr/pub/gnu/hello/hello-2.10.tar.gz'...\n" " …10.tar.gz 709KiB 2.5MiB/s 00:00 [##################] 100.0%\n" "/gnu/store/hbdalsf5lpf01x4dcknwx6xbn6n5km6k-hello-2.10.tar.gz\n" "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\n" #. type: Plain text #: guix-git/doc/guix-cookbook.texi:709 msgid "In this specific case the output tells us which mirror was chosen. If the result of the above command is not the same as in the above snippet, update your @code{my-hello} declaration accordingly." msgstr "In diesem speziellen Fall sagt uns die Ausgabe, welcher Spiegelserver ausgewählt wurde. Wenn das Ergebnis des obigen Befehls nicht dasselbe ist wie im Codeschnipsel, dann aktualisieren Sie Ihre @code{my-hello}-Deklaration entsprechend." #. type: Plain text #: guix-git/doc/guix-cookbook.texi:713 msgid "Note that GNU package tarballs come with an OpenPGP signature, so you should definitely check the signature of this tarball with `gpg` to authenticate it before going further:" msgstr "Beachten Sie, dass Tarball-Archive von GNU-Paketen mit einer OpenPGP-Signatur ausgeliefert werden, deshalb sollten Sie mit Sicherheit die Signatur dieses Tarballs mit „gpg“ überprüfen, um ihn zu authentifizieren, bevor Sie weitermachen." #. This is example shell output. #. type: example #: guix-git/doc/guix-cookbook.texi:717 #, no-wrap msgid "" "$ guix download mirror://gnu/hello/hello-2.10.tar.gz.sig\n" "\n" msgstr "" "$ guix download mirror://gnu/hello/hello-2.10.tar.gz.sig\n" "\n" #. type: example #: guix-git/doc/guix-cookbook.texi:732 #, no-wrap msgid "" "Starting download of /tmp/guix-file.03tFfb\n" "From https://ftpmirror.gnu.org/gnu/hello/hello-2.10.tar.gz.sig...\n" "following redirection to `https://ftp.igh.cnrs.fr/pub/gnu/hello/hello-2.10.tar.gz.sig'...\n" " ….tar.gz.sig 819B 1.2MiB/s 00:00 [##################] 100.0%\n" "/gnu/store/rzs8wba9ka7grrmgcpfyxvs58mly0sx6-hello-2.10.tar.gz.sig\n" "0q0v86n3y38z17rl146gdakw9xc4mcscpk8dscs412j22glrv9jf\n" "$ gpg --verify /gnu/store/rzs8wba9ka7grrmgcpfyxvs58mly0sx6-hello-2.10.tar.gz.sig /gnu/store/hbdalsf5lpf01x4dcknwx6xbn6n5km6k-hello-2.10.tar.gz\n" "gpg: Signature made Sun 16 Nov 2014 01:08:37 PM CET\n" "gpg: using RSA key A9553245FDE9B739\n" "gpg: Good signature from \"Sami Kerola <kerolasa@@iki.fi>\" [unknown]\n" "gpg: aka \"Sami Kerola (http://www.iki.fi/kerolasa/) <kerolasa@@iki.fi>\" [unknown]\n" "gpg: WARNING: This key is not certified with a trusted signature!\n" "gpg: There is no indication that the signature belongs to the owner.\n" "Primary key fingerprint: 8ED3 96E3 7E38 D471 A005 30D3 A955 3245 FDE9 B739\n" msgstr "" "Starting download of /tmp/guix-file.03tFfb\n" "From https://ftpmirror.gnu.org/gnu/hello/hello-2.10.tar.gz.sig...\n" "following redirection to `https://ftp.igh.cnrs.fr/pub/gnu/hello/hello-2.10.tar.gz.sig'...\n" " ….tar.gz.sig 819B 1.2MiB/s 00:00 [##################] 100.0%\n" "/gnu/store/rzs8wba9ka7grrmgcpfyxvs58mly0sx6-hello-2.10.tar.gz.sig\n" "0q0v86n3y38z17rl146gdakw9xc4mcscpk8dscs412j22glrv9jf\n" "$ gpg --verify /gnu/store/rzs8wba9ka7grrmgcpfyxvs58mly0sx6-hello-2.10.tar.gz.sig /gnu/store/hbdalsf5lpf01x4dcknwx6xbn6n5km6k-hello-2.10.tar.gz\n" "gpg: Signatur vom So 16 Nov 2014 13:08:37 CET\n" "gpg: mittels RSA-Schlüssel A9553245FDE9B739\n" "gpg: Korrekte Signatur von \"Sami Kerola (https://www.iki.fi/kerolasa/) <kerolasa@@iki.fi>\" [unbekannt]\n" "gpg: WARNUNG: Dieser Schlüssel trägt keine vertrauenswürdige Signatur!\n" "gpg: Es gibt keinen Hinweis, daß die Signatur wirklich dem vorgeblichen Besitzer gehört.\n" "Haupt-Fingerabdruck = 8ED3 96E3 7E38 D471 A005 30D3 A955 3245 FDE9 B739\n" #. type: Plain text #: guix-git/doc/guix-cookbook.texi:735 msgid "You can then happily run" msgstr "Sie können dann unbesorgt das hier ausführen:" #. Do not translate this command #. type: example #: guix-git/doc/guix-cookbook.texi:739 #, no-wrap msgid "$ guix package --install-from-file=my-hello.scm\n" msgstr "$ guix package --install-from-file=my-hello.scm\n"