aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/linux.scm4
1 files changed, 2 insertions, 2 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 511e0a8cb3..a641f8fbe5 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -404,8 +404,8 @@ It has been modified to remove all non-free binary blobs.")
%linux-compatible-systems
#:configuration-file kernel-config))
-(define %linux-libre-4.14-version "4.14.47")
-(define %linux-libre-4.14-hash "1hm1vk6cdrwr971g5rcbq425fadn49580xa27zp1h6jz40n119wd")
+(define %linux-libre-4.14-version "4.14.48")
+(define %linux-libre-4.14-hash "011lkq30gpvbgvg2p1nw2kqkig9a3qridy678rkx3fpah0ya4rhd")
(define-public linux-libre-4.14
(make-linux-libre %linux-libre-4.14-version
in Pseudonym ihrer Wahl verwenden." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:41 #: guix-git/doc/contributing.texi:42 #, no-wrap msgid "Requirements" msgstr "Voraussetzungen" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Software needed to build and run Guix." msgstr "Zum Erstellen und Benutzen von Guix nötige Software." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:129 #: guix-git/doc/contributing.texi:130 #, no-wrap msgid "Building from Git" msgstr "Erstellung aus dem Git" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "The latest and greatest." msgstr "Das Neueste und Beste." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:320 #: guix-git/doc/contributing.texi:321 #, no-wrap msgid "Running the Test Suite" msgstr "Den Testkatalog laufen lassen" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Testing Guix." msgstr "Guix testen." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:431 #: guix-git/doc/contributing.texi:432 #, no-wrap msgid "Running Guix Before It Is Installed" msgstr "Guix vor der Installation ausführen" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Hacker tricks." msgstr "Hacker-Tricks." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:521 #: guix-git/doc/contributing.texi:522 #, no-wrap msgid "The Perfect Setup" msgstr "Perfekt eingerichtet" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "The right tools." msgstr "Die richtigen Werkzeuge." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:698 #: guix-git/doc/contributing.texi:699 #, no-wrap msgid "Alternative Setups" msgstr "Alternativ eingerichtet" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Other possible tools that do the job." msgstr "Mit diesen Werkzeugen geht es auch." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:775 #: guix-git/doc/contributing.texi:776 #, no-wrap msgid "Source Tree Structure" msgstr "Aufbau des Quellbaums" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Source code guided tour." msgstr "Führung um den Quellbaum." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:1026 #: guix-git/doc/contributing.texi:1027 #, no-wrap msgid "Packaging Guidelines" msgstr "Paketrichtlinien" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Growing the distribution." msgstr "Die Distribution wachsen lassen." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:1747 #: guix-git/doc/contributing.texi:1748 #, no-wrap msgid "Coding Style" msgstr "Programmierstil" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Hygiene of the contributor." msgstr "Wie Mitwirkende hygienisch arbeiten." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:1854 #: guix-git/doc/contributing.texi:1855 #, no-wrap msgid "Submitting Patches" msgstr "Einreichen von Patches" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Share your work." msgstr "Teilen Sie Ihre Arbeit." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:2262 #: guix-git/doc/contributing.texi:2263 #, no-wrap msgid "Tracking Bugs and Changes" msgstr "Überblick über gemeldete Fehler und Änderungen" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Keeping it all organized." msgstr "Die Ordnung bewahren." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:2667 #: guix-git/doc/contributing.texi:2668 #, no-wrap msgid "Commit Access" msgstr "Commit-Zugriff" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Pushing to the official repository." msgstr "Auf die offiziellen Repositorys pushen." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:2901 #: guix-git/doc/contributing.texi:2902 #, no-wrap msgid "Reviewing the Work of Others" msgstr "Beiträge von anderen überprüfen" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Some guidelines for sharing reviews." msgstr "Wie man für Reviews zusammenarbeitet." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:2996 #: guix-git/doc/contributing.texi:2997 #, no-wrap msgid "Updating the Guix Package" msgstr "Das Guix-Paket aktualisieren" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Updating the Guix package definition." msgstr "Die Paketdefinition für Guix erneuern." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:3034 #: guix-git/doc/contributing.texi:3035 #, no-wrap msgid "Writing Documentation" msgstr "Dokumentation schreiben" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Improving documentation in GNU Guix." msgstr "Die Dokumentation in GNU Guix verbessern." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:3078 #: guix-git/doc/contributing.texi:3079 #, no-wrap msgid "Translating Guix" msgstr "Guix übersetzen" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Make Guix speak your native language." msgstr "Bring Guix deine Muttersprache bei." #. type: Plain text #: guix-git/doc/contributing.texi:46 msgid "You can easily hack on Guix itself using Guix and Git, which we use for version control (@pxref{Building from Git})." msgstr "Sie können Guix selbst problemlos anpassen, wenn Sie Guix und Git benutzen, was wir zur Versionskontrolle benutzen (siehe @ref{Building from Git})." #. type: Plain text #: guix-git/doc/contributing.texi:51 msgid "But when packaging Guix for foreign distros or when bootstrapping on systems without Guix, and if you decide to not just trust and install our readily made binary (@pxref{Binary Installation}), you can download a release version of our reproducible source tarball and read on." msgstr "Wenn Sie jedoch Guix für Fremddistributionen paketieren oder wenn Sie ein Bootstrapping auf Systemen ohne Guix durchführen und dabei nicht einfach unserer fertigen Binärdatei vertrauen möchten (siehe @ref{Binary Installation}, dann können Sie eine veröffentlichte Version unseres reproduzierbaren Quell-Tarballs herunterladen und weiterlesen." #. type: Plain text #: guix-git/doc/contributing.texi:56 msgid "This section lists requirements when building Guix from source. The build procedure for Guix is the same as for other GNU software, and is not covered here. Please see the files @file{README} and @file{INSTALL} in the Guix source tree for additional details." msgstr "Dieser Abschnitt listet Voraussetzungen auf, um Guix aus seinem Quellcode zu erstellen. Der Erstellungsprozess für Guix ist derselbe wie für andere GNU-Software und wird hier nicht beschrieben. Bitte lesen Sie die Dateien @file{README} und @file{INSTALL} im Guix-Quellbaum, um weitere Details zu erfahren." #. type: cindex #: guix-git/doc/contributing.texi:57 #, no-wrap msgid "official website" msgstr "Offizieller Webauftritt" #. type: Plain text #: guix-git/doc/contributing.texi:60 msgid "GNU Guix is available for download from its website at @url{https://www.gnu.org/software/guix/}." msgstr "GNU Guix kann von seinem Webauftritt unter @url{http://www.gnu.org/software/guix/} heruntergeladen werden." #. type: Plain text #: guix-git/doc/contributing.texi:62 msgid "GNU Guix depends on the following packages:" msgstr "GNU Guix hat folgende Pakete als Abhängigkeiten:" #. type: item #: guix-git/doc/contributing.texi:64 #, no-wrap msgid "@url{https://gnu.org/software/guile/, GNU Guile}, version 3.0.x," msgstr "@url{https://gnu.org/software/guile/, GNU Guile}, Version 3.0.x," #. type: itemize #: guix-git/doc/contributing.texi:66 msgid "version 3.0.3 or later;" msgstr "Version 3.0.3 oder neuer," #. type: item #: guix-git/doc/contributing.texi:66 #, no-wrap msgid "@url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, version" msgstr "@url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, Version" #. type: itemize #: guix-git/doc/contributing.texi:68 msgid "0.1.0 or later;" msgstr "0.1.0 oder neuer," #. type: itemize #: guix-git/doc/contributing.texi:74 msgid "@uref{https://gitlab.com/gnutls/guile/, Guile-GnuTLS} (@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile})@footnote{The Guile bindings to @uref{https://gnutls.org/, GnuTLS} were distributed as part of GnuTLS until version 3.7.8 included.};" msgstr "@uref{https://gitlab.com/gnutls/guile/, Guile-GnuTLS} (siehe die @ref{Guile Preparations, Installationsanleitung der GnuTLS-Anbindungen für Guile,, gnutls-guile, GnuTLS-Guile})@footnote{Bis einschließlich Version 3.7.8 wurden die Guile-Anbindungen für @uref{https://gnutls.org/, GnuTLS} bei GnuTLS mitgeliefert.}," #. type: itemize #: guix-git/doc/contributing.texi:77 msgid "@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, version 0.1.0 or later;" msgstr "@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, Version 0.1.0 oder neuer," #. type: item #: guix-git/doc/contributing.texi:77 #, no-wrap msgid "@uref{https://notabug.org/guile-zlib/guile-zlib, Guile-zlib}," msgstr "@uref{https://notabug.org/guile-zlib/guile-zlib, Guile-zlib}," #. type: itemize #: guix-git/doc/contributing.texi:79 msgid "version 0.1.0 or later;" msgstr "Version 0.1.0 oder neuer," #. type: item #: guix-git/doc/contributing.texi:79 #, no-wrap msgid "@uref{https://notabug.org/guile-lzlib/guile-lzlib, Guile-lzlib};" msgstr "@uref{https://notabug.org/guile-lzlib/guile-lzlib, Guile-lzlib}," #. type: item #: guix-git/doc/contributing.texi:80 #, no-wrap msgid "@uref{https://www.nongnu.org/guile-avahi/, Guile-Avahi};" msgstr "@uref{https://www.nongnu.org/guile-avahi/, Guile-Avahi}," #. type: itemize #: guix-git/doc/contributing.texi:84 msgid "@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, version 0.5.0 or later;" msgstr "@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, Version 0.5.0 oder neuer," #. type: item #: guix-git/doc/contributing.texi:84 #, no-wrap msgid "@uref{https://git-scm.com, Git} (yes, both!);" msgstr "@uref{https://git-scm.com, Git} (ja, beide!)," #. type: item #: guix-git/doc/contributing.texi:85 #, no-wrap msgid "@uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}" msgstr "@uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}" #. type: itemize #: guix-git/doc/contributing.texi:87 msgid "4.3.0 or later;" msgstr "4.3.0 oder später," #. type: item #: guix-git/doc/contributing.texi:87 #, no-wrap msgid "@url{https://www.gnu.org/software/make/, GNU Make}." msgstr "@url{https://www.gnu.org/software/make/, GNU Make}." #. type: Plain text #: guix-git/doc/contributing.texi:91 msgid "The following dependencies are optional:" msgstr "Folgende Abhängigkeiten sind optional:" #. type: itemize #: guix-git/doc/contributing.texi:99 msgid "Support for build offloading (@pxref{Daemon Offload Setup}) and @command{guix copy} (@pxref{Invoking guix copy}) depends on @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, version 0.13.0 or later." msgstr "Unterstützung für das Auslagern von Erstellungen (siehe @ref{Daemon Offload Setup}) und @command{guix copy} (siehe @ref{Invoking guix copy}) hängt von @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, Version 0.13.0 oder neuer, ab." #. type: itemize #: guix-git/doc/contributing.texi:104 msgid "@uref{https://notabug.org/guile-zstd/guile-zstd, Guile-zstd}, for zstd compression and decompression in @command{guix publish} and for substitutes (@pxref{Invoking guix publish})." msgstr "@uref{https://notabug.org/guile-zstd/guile-zstd, Guile-zstd}, für die Kompression und Dekompression mit zstd in @command{guix publish} und für Substitute (siehe @ref{Invoking guix publish})." #. type: itemize #: guix-git/doc/contributing.texi:108 msgid "@uref{https://ngyro.com/software/guile-semver.html, Guile-Semver} for the @code{crate} importer (@pxref{Invoking guix import})." msgstr "@uref{https://ngyro.com/software/guile-semver.html, Guile-Semver} für den @code{crate}-Importer (siehe @ref{Invoking guix import})." #. type: itemize #: guix-git/doc/contributing.texi:113 msgid "@uref{https://www.nongnu.org/guile-lib/doc/ref/htmlprag/, Guile-Lib} for the @code{go} importer (@pxref{Invoking guix import}) and for some of the ``updaters'' (@pxref{Invoking guix refresh})." msgstr "@uref{https://www.nongnu.org/guile-lib/doc/ref/htmlprag/, Guile-Lib} für den @code{go}-Importer (siehe @ref{Invoking guix import}) und für einige der Aktualisierungsprogramme (siehe @ref{Invoking guix refresh})." #. type: itemize #: guix-git/doc/contributing.texi:117 msgid "When @url{http://www.bzip.org, libbz2} is available, @command{guix-daemon} can use it to compress build logs." msgstr "Wenn @url{http://www.bzip.org, libbz2} verfügbar ist, kann @command{guix-daemon} damit Erstellungsprotokolle komprimieren." #. type: Plain text #: guix-git/doc/contributing.texi:121 msgid "Unless @option{--disable-daemon} was passed to @command{configure}, the following packages are also needed:" msgstr "Sofern nicht @option{--disable-daemon} beim Aufruf von @command{configure} übergeben wurde, benötigen Sie auch folgende Pakete:" #. type: item #: guix-git/doc/contributing.texi:123 #, no-wrap msgid "@url{https://gnupg.org/, GNU libgcrypt};" msgstr "@url{https://gnupg.org/, GNU libgcrypt}," #. type: item #: guix-git/doc/contributing.texi:124 #, no-wrap msgid "@url{https://sqlite.org, SQLite 3};" msgstr "@url{https://sqlite.org, SQLite 3}," #. type: item #: guix-git/doc/contributing.texi:125 #, no-wrap msgid "@url{https://gcc.gnu.org, GCC's g++}, with support for the" msgstr "@url{https://gcc.gnu.org, GCC's g++} mit Unterstützung für den" #. type: itemize #: guix-git/doc/contributing.texi:127 msgid "C++11 standard." msgstr "C++11-Standard." #. type: Plain text #: guix-git/doc/contributing.texi:134 msgid "If you want to hack Guix itself, it is recommended to use the latest version from the Git repository:" msgstr "Wenn Sie an Guix selbst hacken wollen, ist es empfehlenswert, dass Sie die neueste Version aus dem Git-Softwarebestand verwenden:" #. type: example #: guix-git/doc/contributing.texi:137 #, no-wrap msgid "git clone https://git.savannah.gnu.org/git/guix.git\n" msgstr "git clone https://git.savannah.gnu.org/git/guix.git\n" #. type: cindex #: guix-git/doc/contributing.texi:139 #, no-wrap msgid "authentication, of a Guix checkout" msgstr "Authentifizieren, eines Guix-Checkouts" #. type: Plain text #: guix-git/doc/contributing.texi:144 msgid "How do you ensure that you obtained a genuine copy of the repository? To do that, run @command{guix git authenticate}, passing it the commit and OpenPGP fingerprint of the @dfn{channel introduction} (@pxref{Invoking guix git authenticate}):" msgstr "Doch wie können Sie sichergehen, dass sie eine unverfälschte Kopie des Repositorys erhalten haben? Dazu müssen Sie @command{guix git authenticate} ausführen, wobei Sie den Commit und den OpenPGP-Fingerabdruck der @dfn{Kanaleinführung} angeben (siehe @ref{Invoking guix git authenticate}):" #. type: example #: guix-git/doc/contributing.texi:151 #, no-wrap msgid "" "git fetch origin keyring:keyring\n" "guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \\\n" " \"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA\"\n" msgstr "" "git fetch origin keyring:keyring\n" "guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \\\n" " \"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA\"\n" #. type: Plain text #: guix-git/doc/contributing.texi:156 msgid "This command completes with exit code zero on success; it prints an error message and exits with a non-zero code otherwise." msgstr "Dieser Befehl gibt bei Erfolg am Ende null als Exit-Status zurück, ansonsten wird eine Fehlermeldung ausgegeben und ein anderer Exit-Status zurückgegeben." #. type: Plain text #: guix-git/doc/contributing.texi:163 msgid "As you can see, there is a chicken-and-egg problem: you first need to have Guix installed. Typically you would install Guix System (@pxref{System Installation}) or Guix on top of another distro (@pxref{Binary Installation}); in either case, you would verify the OpenPGP signature on the installation medium. This ``bootstraps'' the trust chain." msgstr "Wie Sie sehen können, liegt hier ein Henne-Ei-Problem vor: Sie müssen Guix zuvor bereits installiert haben. Üblicherweise würden Sie Guix System erst auf einem anderen System installieren (siehe @ref{System Installation}) oder Guix auf einer anderen Distribution installieren (siehe @ref{Binary Installation}); in beiden Fällen würden Sie die OpenPGP-Signatur auf dem Installationsmedium prüfen. Damit haben Sie ein „Bootstrapping“ der Vertrauenskette durchgeführt." #. type: Plain text #: guix-git/doc/contributing.texi:168 msgid "The easiest way to set up a development environment for Guix is, of course, by using Guix! The following command starts a new shell where all the dependencies and appropriate environment variables are set up to hack on Guix:" msgstr "Der einfachste Weg, eine Entwicklungsumgebung für Guix einzurichten, ist natürlich, Guix zu benutzen! Der folgende Befehl startet eine neue Shell, in der alle Abhängigkeiten und Umgebungsvariablen bereits eingerichtet sind, um an Guix zu arbeiten:" #. type: example #: guix-git/doc/contributing.texi:171 #, no-wrap msgid "guix shell -D guix -CPW\n" msgstr "guix shell -D guix -CPW\n" #. type: Plain text #: guix-git/doc/contributing.texi:174 msgid "or even, from within a Git worktree for Guix:" msgstr "Oder kürzer, aus einem Git-Arbeitsverzeichnis von Guix heraus:" #. type: example #: guix-git/doc/contributing.texi:177 #, no-wrap msgid "guix shell -CPW\n" msgstr "guix shell -CPW\n" #. type: Plain text #: guix-git/doc/contributing.texi:182 msgid "If @option{-C} (short for @option{--container}) is not supported on your system, try @command{--pure} instead of @option{-CPW}. @xref{Invoking guix shell}, for more information on that command." msgstr "Wenn @option{-C} (die Kurzform von @option{--container}) auf Ihrem System nicht unterstützt wird, können Sie @command{--pure} statt @option{-CPW} schreiben. Siehe @ref{Invoking guix shell} für mehr Informationen, was Sie mit diesem Befehl tun." #. type: Plain text #: guix-git/doc/contributing.texi:186 msgid "If you are unable to use Guix when building Guix from a checkout, the following are the required packages in addition to those mentioned in the installation instructions (@pxref{Requirements})." msgstr "Wenn Sie Guix nicht benutzen können, wenn Sie es aus einem Checkout erstellen, werden die folgenden Pakete zusätzlich zu denen benötigt, die in den Installationsanweisungen angegeben sind (siehe @ref{Requirements})." #. type: item #: guix-git/doc/contributing.texi:188 #, no-wrap msgid "@url{https://gnu.org/software/autoconf/, GNU Autoconf};" msgstr "@url{https://gnu.org/software/autoconf/, GNU Autoconf}," #. type: item #: guix-git/doc/contributing.texi:189 #, no-wrap msgid "@url{https://gnu.org/software/automake/, GNU Automake};" msgstr "@url{https://gnu.org/software/automake/, GNU Automake}," #. type: item #: guix-git/doc/contributing.texi:190 #, no-wrap msgid "@url{https://gnu.org/software/gettext/, GNU Gettext};" msgstr "@url{https://gnu.org/software/gettext/, GNU Gettext}," #. type: item #: guix-git/doc/contributing.texi:191 #, no-wrap msgid "@url{https://gnu.org/software/texinfo/, GNU Texinfo};" msgstr "@url{https://gnu.org/software/texinfo/, GNU Texinfo}," #. type: item #: guix-git/doc/contributing.texi:192 #, no-wrap msgid "@url{https://www.graphviz.org/, Graphviz};" msgstr "@url{https://www.graphviz.org/, Graphviz}," #. type: item #: guix-git/doc/contributing.texi:193 #, no-wrap msgid "@url{https://www.gnu.org/software/help2man/, GNU Help2man (optional)}." msgstr "@url{https://www.gnu.org/software/help2man/, GNU Help2man (optional)}." #. type: Plain text #: guix-git/doc/contributing.texi:198 msgid "On Guix, extra dependencies can be added by instead running @command{guix shell}:" msgstr "Auf Guix können zusätzliche Abhängigkeiten hinzugefügt werden, indem Sie stattdessen @command{guix shell} ausführen:" #. type: example #: guix-git/doc/contributing.texi:201 #, no-wrap msgid "guix shell -D guix help2man git strace --pure\n" msgstr "guix shell -D guix help2man git strace --pure\n" #. type: Plain text #: guix-git/doc/contributing.texi:205 msgid "From there you can generate the build system infrastructure using Autoconf and Automake:" msgstr "Damit können Sie die Infrastruktur des Erstellungssystems mit Autoconf und Automake erzeugen." #. type: example #: guix-git/doc/contributing.texi:208 #, no-wrap msgid "./bootstrap\n" msgstr "./bootstrap\n" #. type: Plain text #: guix-git/doc/contributing.texi:211 msgid "If you get an error like this one:" msgstr "Möglicherweise erhalten Sie eine Fehlermeldung wie diese:" #. type: example #: guix-git/doc/contributing.texi:214 #, no-wrap msgid "configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES\n" msgstr "configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES\n" #. type: Plain text #: guix-git/doc/contributing.texi:223 msgid "it probably means that Autoconf couldn’t find @file{pkg.m4}, which is provided by pkg-config. Make sure that @file{pkg.m4} is available. The same holds for the @file{guile.m4} set of macros provided by Guile. For instance, if you installed Automake in @file{/usr/local}, it wouldn’t look for @file{.m4} files in @file{/usr/share}. In that case, you have to invoke the following command:" msgstr "Das bedeutet wahrscheinlich, dass Autoconf @file{pkg.m4} nicht finden konnte, welches von pkg-config bereitgestellt wird. Stellen Sie sicher, dass @file{pkg.m4} verfügbar ist. Gleiches gilt für den von Guile bereitgestellten Makrosatz @file{guile.m4}. Wenn Sie beispielsweise Automake in @file{/usr/local} installiert haben, würde in @file{/usr/share} nicht nach @file{.m4}-Dateien geschaut. In einem solchen Fall müssen Sie folgenden Befehl aufrufen:" #. type: example #: guix-git/doc/contributing.texi:226 #, no-wrap msgid "export ACLOCAL_PATH=/usr/share/aclocal\n" msgstr "export ACLOCAL_PATH=/usr/share/aclocal\n" #. type: Plain text #: guix-git/doc/contributing.texi:230 msgid "@xref{Macro Search Path,,, automake, The GNU Automake Manual}, for more information." msgstr "In @ref{Macro Search Path,,, automake, The GNU Automake Manual} finden Sie weitere Informationen." #. type: cindex #: guix-git/doc/contributing.texi:231 #, no-wrap msgid "state directory" msgstr "Zustandsverzeichnis" #. type: cindex #: guix-git/doc/contributing.texi:232 #, no-wrap msgid "localstatedir" msgstr "localstatedir" #. type: cindex #: guix-git/doc/contributing.texi:233 #, no-wrap msgid "system configuration directory" msgstr "Systemkonfigurationsverzeichnis" #. type: cindex #: guix-git/doc/contributing.texi:234 #, no-wrap msgid "sysconfdir" msgstr "sysconfdir" #. type: Plain text #: guix-git/doc/contributing.texi:236 msgid "Then, run:" msgstr "Anschließend führen Sie dies aus:" #. type: example #: guix-git/doc/contributing.texi:239 #, no-wrap msgid "./configure\n" msgstr "./configure\n" #. type: Plain text #: guix-git/doc/contributing.texi:248 msgid "... where @file{/var} is the normal @code{localstatedir} value (@pxref{The Store}, for information about this) and @file{/etc} is the normal @code{sysconfdir} value. Note that you will probably not run @command{make install} at the end (you don't have to) but it's still important to pass the right @code{localstatedir} and @code{sysconfdir} values, which get recorded in the @code{(guix config)} Guile module." msgstr "Dabei ist @file{/var} der normale @code{localstatedir}-Wert (weitere Informationen siehe @ref{The Store}) und @file{/etc} der normale @code{sysconfdir}-Wert. Denken Sie daran, dass Sie am Ende wahrscheinlich @emph{nicht} @command{make install} ausführen möchten (müssen Sie auch nicht), aber es ist dennoch wichtig, die richtige @code{localstatedir} und @code{sysconfdir} zu übergeben, welche im Guile-Modul @code{(guix config)} festgehalten werden." #. type: Plain text #: guix-git/doc/contributing.texi:251 msgid "Finally, you can build Guix and, if you feel so inclined, run the tests (@pxref{Running the Test Suite}):" msgstr "Schließlich können Sie Guix erstellen und, wenn Sie möchten, die Tests ausführen (siehe @ref{Running the Test Suite}):" #. type: example #: guix-git/doc/contributing.texi:255 #, no-wrap msgid "" "make\n" "make check\n" msgstr "" "make\n" "make check\n" #. type: Plain text #: guix-git/doc/contributing.texi:261 msgid "If anything fails, take a look at installation instructions (@pxref{Installation}) or send a message to the @email{guix-devel@@gnu.org, mailing list}." msgstr "Falls etwas fehlschlägt, werfen Sie einen Blick auf die Installationsanweisungen (siehe @ref{Installation}) oder senden Sie eine E-Mail an die @email{guix-devel@@gnu.org, Mailingliste}." #. type: Plain text #: guix-git/doc/contributing.texi:264 msgid "From there on, you can authenticate all the commits included in your checkout by running:" msgstr "Von da an können Sie alle Commits in Ihrem Checkout authentifizieren, indem Sie dies ausführen:" #. type: example #: guix-git/doc/contributing.texi:269 #, no-wrap msgid "" "guix git authenticate \\\n" " 9edb3f66fd807b096b48283debdcddccfea34bad \\\n" " \"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA\"\n" msgstr "" "guix git authenticate \\\n" " 9edb3f66fd807b096b48283debdcddccfea34bad \\\n" " \"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA\"\n" #. type: Plain text #: guix-git/doc/contributing.texi:276 msgid "The first run takes a couple of minutes, but subsequent runs are faster. On subsequent runs, you can run the command without any arguments since the @dfn{introduction} (the commit ID and OpenPGP fingerprints above) will have been recorded@footnote{This requires a recent version of Guix, from May 2024 or more recent.}:" msgstr "" #. type: example #: guix-git/doc/contributing.texi:279 guix-git/doc/contributing.texi:2788 #, no-wrap msgid "guix git authenticate\n" msgstr "guix git authenticate\n" #. type: Plain text #: guix-git/doc/contributing.texi:286 msgid "When your configuration for your local Git repository doesn't match the default one, you can provide the reference for the @code{keyring} branch @i{via} the @option{-k} option. The following example assumes that you have a Git remote called @samp{myremote} pointing to the official repository:" msgstr "Für den Fall, dass die Konfiguration Ihres lokal verfügbaren Git-Repositorys nicht der voreingestellten entspricht, können Sie die Referenz für den @code{keyring}-Branch über die Option @option{-k} angeben. Im folgenden Beispiel nehmen wir an, Sie haben ein Remote-Repository namens @samp{myremote} eingerichtet, das auf das offizielle Guix-Repository verweist:" #. type: example #: guix-git/doc/contributing.texi:292 #, no-wrap msgid "" "guix git authenticate \\\n" " -k myremote/keyring \\\n" " 9edb3f66fd807b096b48283debdcddccfea34bad \\\n" " \"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA\"\n" msgstr "" "guix git authenticate \\\n" " -k myremote/keyring \\\n" " 9edb3f66fd807b096b48283debdcddccfea34bad \\\n" " \"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA\"\n" #. type: Plain text #: guix-git/doc/contributing.texi:296 msgid "@xref{Invoking guix git authenticate}, for more information on this command." msgstr "Siehe @ref{Invoking guix git authenticate} für weitere Informationen zu diesem Befehl." #. type: quotation #: guix-git/doc/contributing.texi:297 guix-git/doc/contributing.texi:1485 #: guix-git/doc/contributing.texi:2097 guix-git/doc/contributing.texi:2142 #: guix-git/doc/contributing.texi:2165 guix-git/doc/contributing.texi:2761 #: guix-git/doc/guix.texi:803 guix-git/doc/guix.texi:829 #: guix-git/doc/guix.texi:1200 guix-git/doc/guix.texi:1225 #: guix-git/doc/guix.texi:1298 guix-git/doc/guix.texi:1685 #: guix-git/doc/guix.texi:1901 guix-git/doc/guix.texi:1976 #: guix-git/doc/guix.texi:2164 guix-git/doc/guix.texi:2386 #: guix-git/doc/guix.texi:3682 guix-git/doc/guix.texi:4087 #: guix-git/doc/guix.texi:4607 guix-git/doc/guix.texi:4621 #: guix-git/doc/guix.texi:4696 guix-git/doc/guix.texi:4711 #: guix-git/doc/guix.texi:4769 guix-git/doc/guix.texi:4999 #: guix-git/doc/guix.texi:5913 guix-git/doc/guix.texi:5942 #: guix-git/doc/guix.texi:6570 guix-git/doc/guix.texi:6849 #: guix-git/doc/guix.texi:6973 guix-git/doc/guix.texi:7002 #: guix-git/doc/guix.texi:7043 guix-git/doc/guix.texi:7098 #: guix-git/doc/guix.texi:8731 guix-git/doc/guix.texi:11048 #: guix-git/doc/guix.texi:11190 guix-git/doc/guix.texi:11260 #: guix-git/doc/guix.texi:13223 guix-git/doc/guix.texi:13263 #: guix-git/doc/guix.texi:13363 guix-git/doc/guix.texi:13588 #: guix-git/doc/guix.texi:13600 guix-git/doc/guix.texi:14492 #: guix-git/doc/guix.texi:16461 guix-git/doc/guix.texi:16991 #: guix-git/doc/guix.texi:17049 guix-git/doc/guix.texi:17082 #: guix-git/doc/guix.texi:17160 guix-git/doc/guix.texi:17561 #: guix-git/doc/guix.texi:18576 guix-git/doc/guix.texi:19139 #: guix-git/doc/guix.texi:19644 guix-git/doc/guix.texi:19705 #: guix-git/doc/guix.texi:22166 guix-git/doc/guix.texi:23080 #: guix-git/doc/guix.texi:23263 guix-git/doc/guix.texi:23324 #: guix-git/doc/guix.texi:23800 guix-git/doc/guix.texi:28824 #: guix-git/doc/guix.texi:29441 guix-git/doc/guix.texi:32886 #: guix-git/doc/guix.texi:37284 guix-git/doc/guix.texi:40655 #: guix-git/doc/guix.texi:42214 guix-git/doc/guix.texi:42288 #: guix-git/doc/guix.texi:42330 guix-git/doc/guix.texi:42676 #: guix-git/doc/guix.texi:42846 guix-git/doc/guix.texi:43014 #: guix-git/doc/guix.texi:43121 guix-git/doc/guix.texi:43167 #: guix-git/doc/guix.texi:43224 guix-git/doc/guix.texi:43251 #: guix-git/doc/guix.texi:43589 guix-git/doc/guix.texi:44999 #: guix-git/doc/guix.texi:45049 guix-git/doc/guix.texi:45105 #: guix-git/doc/guix.texi:45212 guix-git/doc/guix.texi:47305 #: guix-git/doc/guix.texi:47349 #, no-wrap msgid "Note" msgstr "Anmerkung" #. type: quotation #: guix-git/doc/contributing.texi:301 msgid "By default, hooks are installed such that @command{guix git authenticate} is invoked anytime you run @command{git pull} or @command{git push}." msgstr "" #. type: Plain text #: guix-git/doc/contributing.texi:305 msgid "After updating the repository, @command{make} might fail with an error similar to the following example:" msgstr "Wenn Sie das Repository einmal aktualisieren, kann es passieren, dass @command{make} mit einer Fehlermeldung ähnlich wie dieser fehlschlägt:" #. type: example #: guix-git/doc/contributing.texi:309 #, no-wrap msgid "" "error: failed to load 'gnu/packages/linux.scm':\n" "ice-9/eval.scm:293:34: In procedure abi-check: #<record-type <origin>>: record ABI mismatch; recompilation needed\n" msgstr "" "error: failed to load 'gnu/packages/linux.scm':\n" "ice-9/eval.scm:293:34: In procedure abi-check: #<record-type <origin>>: record ABI mismatch; recompilation needed\n" #. type: Plain text #: guix-git/doc/contributing.texi:315 msgid "This means that one of the record types that Guix defines (in this example, the @code{origin} record) has changed, and all of guix needs to be recompiled to take that change into account. To do so, run @command{make clean-go} followed by @command{make}." msgstr "Das bedeutet, dass sich einer der in Guix definierten Verbundstypen (in diesem Beispiel der @code{origin}-Verbundstyp) geändert hat und alle Teile von Guix für diese Änderung neu kompiliert werden müssen. Um das zu veranlassen, führen Sie @command{make clean-go} aus, gefolgt von @command{make}." #. type: Plain text #: guix-git/doc/contributing.texi:319 msgid "Should @command{make} fail with an Automake error message after updating, you need to repeat the steps outlined in this section, commencing with @command{./bootstrap}." msgstr "Falls @command{make} mit einer Automake-Fehlermeldung fehlschlägt, nachdem Sie aktualisiert haben, müssen Sie die in diesem Abschnitt geschilderten Schritte wiederholen, angefangen mit @command{./bootstrap}." #. type: cindex #: guix-git/doc/contributing.texi:323 #, no-wrap msgid "test suite" msgstr "Testkatalog" #. type: Plain text #: guix-git/doc/contributing.texi:329 msgid "After a successful @command{configure} and @code{make} run, it is a good idea to run the test suite. It can help catch issues with the setup or environment, or bugs in Guix itself---and really, reporting test failures is a good way to help improve the software. To run the test suite, type:" msgstr "Nachdem @command{configure} und @code{make} erfolgreich durchgelaufen sind, ist es ratsam, den Testkatalog auszuführen. Er kann dabei helfen, Probleme mit der Einrichtung oder Systemumgebung zu finden, oder auch Probleme in Guix selbst@tie{}– und Testfehler zu melden ist eine wirklich gute Art und Weise, bei der Verbesserung von Guix mitzuhelfen. Um den Testkatalog auszuführen, geben Sie Folgendes ein:" #. type: example #: guix-git/doc/contributing.texi:332 #, no-wrap msgid "make check\n" msgstr "make check\n" #. type: Plain text #: guix-git/doc/contributing.texi:339 msgid "Test cases can run in parallel: you can use the @code{-j} option of GNU@tie{}make to speed things up. The first run may take a few minutes on a recent machine; subsequent runs will be faster because the store that is created for test purposes will already have various things in cache." msgstr "Testfälle können parallel ausgeführt werden. Sie können die Befehlszeiltenoption @code{-j} von GNU@tie{}make benutzen, damit es schneller geht. Der erste Durchlauf kann auf neuen Maschinen ein paar Minuten dauern, nachfolgende Ausführungen werden schneller sein, weil der für die Tests erstellte Store schon einige Dinge zwischengespeichert haben wird." #. type: Plain text #: guix-git/doc/contributing.texi:342 msgid "It is also possible to run a subset of the tests by defining the @code{TESTS} makefile variable as in this example:" msgstr "Es ist auch möglich, eine Teilmenge der Tests laufen zu lassen, indem Sie die @code{TESTS}-Variable des Makefiles ähnlich wie in diesem Beispiel definieren:" #. type: example #: guix-git/doc/contributing.texi:345 #, no-wrap msgid "make check TESTS=\"tests/store.scm tests/cpio.scm\"\n" msgstr "make check TESTS=\"tests/store.scm tests/cpio.scm\"\n" #. type: Plain text #: guix-git/doc/contributing.texi:350 msgid "By default, tests results are displayed at a file level. In order to see the details of every individual test cases, it is possible to define the @code{SCM_LOG_DRIVER_FLAGS} makefile variable as in this example:" msgstr "Standardmäßig werden Testergebnisse pro Datei angezeigt. Um die Details jedes einzelnen Testfalls zu sehen, können Sie wie in diesem Beispiel die @code{SCM_LOG_DRIVER_FLAGS}-Variable des Makefiles definieren:" #. type: example #: guix-git/doc/contributing.texi:353 #, no-wrap msgid "make check TESTS=\"tests/base64.scm\" SCM_LOG_DRIVER_FLAGS=\"--brief=no\"\n" msgstr "make check TESTS=\"tests/base64.scm\" SCM_LOG_DRIVER_FLAGS=\"--brief=no\"\n" #. type: Plain text #: guix-git/doc/contributing.texi:361 msgid "The underlying SRFI 64 custom Automake test driver used for the 'check' test suite (located at @file{build-aux/test-driver.scm}) also allows selecting which test cases to run at a finer level, via its @option{--select} and @option{--exclude} options. Here's an example, to run all the test cases from the @file{tests/packages.scm} test file whose names start with ``transaction-upgrade-entry'':" msgstr "Mit dem eigens geschriebenen SRFI-64-Testtreiber für Automake, über den der „@code{check}“-Testkatalog läuft (zu finden in @file{build-aux/test-driver.scm}), können auch die Testfälle genauer ausgewählt werden, die ausgeführt werden sollen. Dazu dienen dessen Befehlszeilenoptionen @option{--select} und @option{--exclude}. Hier ist ein Beispiel, um alle Testfälle aus der Testdatei @file{tests/packages.scm} auszuführen, deren Name mit „transaction-upgrade-entry“ beginnt:" #. type: example #: guix-git/doc/contributing.texi:365 #, no-wrap msgid "" "export SCM_LOG_DRIVER_FLAGS=\"--select=^transaction-upgrade-entry\"\n" "make check TESTS=\"tests/packages.scm\"\n" msgstr "" "export SCM_LOG_DRIVER_FLAGS=\"--select=^transaction-upgrade-entry\"\n" "make check TESTS=\"tests/packages.scm\"\n" #. type: Plain text #: guix-git/doc/contributing.texi:371 msgid "Those wishing to inspect the results of failed tests directly from the command line can add the @option{--errors-only=yes} option to the @code{SCM_LOG_DRIVER_FLAGS} makefile variable and set the @code{VERBOSE} Automake makefile variable, as in:" msgstr "Möchte man die Ergebnisse fehlgeschlagener Tests direkt über die Befehlszeile einsehen, fügt man die Befehlszeilenoption @option{--errors-only=yes} in die Makefile-Variable @code{SCM_LOG_DRIVER_FLAGS} ein und setzt Automakes Makefile-Variable @code{VERBOSE}, etwa so:" #. type: example #: guix-git/doc/contributing.texi:374 #, no-wrap msgid "make check SCM_LOG_DRIVER_FLAGS=\"--brief=no --errors-only=yes\" VERBOSE=1\n" msgstr "make check SCM_LOG_DRIVER_FLAGS=\"--brief=no --errors-only=yes\" VERBOSE=1\n" #. type: Plain text #: guix-git/doc/contributing.texi:379 msgid "The @option{--show-duration=yes} option can be used to print the duration of the individual test cases, when used in combination with @option{--brief=no}:" msgstr "Sie können die Befehlszeilenoption @option{--show-duration=yes} benutzen, damit ausgegeben wird, wie lange jeder einzelne Testfall gebraucht hat, in Kombination mit @option{--brief=no}:" #. type: example #: guix-git/doc/contributing.texi:382 #, no-wrap msgid "make check SCM_LOG_DRIVER_FLAGS=\"--brief=no --show-duration=yes\"\n" msgstr "make check SCM_LOG_DRIVER_FLAGS=\"--brief=no --show-duration=yes\"\n" #. type: Plain text #: guix-git/doc/contributing.texi:386 msgid "@xref{Parallel Test Harness,,,automake,GNU Automake} for more information about the Automake Parallel Test Harness." msgstr "Siehe @ref{Parallel Test Harness,,,automake,GNU Automake} für mehr Informationen über den parallelen Testrahmen von Automake." #. type: Plain text #: guix-git/doc/contributing.texi:391 msgid "Upon failure, please email @email{bug-guix@@gnu.org} and attach the @file{test-suite.log} file. Please specify the Guix version being used as well as version numbers of the dependencies (@pxref{Requirements}) in your message." msgstr "Kommt es zum Fehlschlag, senden Sie bitte eine E-Mail an @email{bug-guix@@gnu.org} und fügen Sie die Datei @file{test-suite.log} als Anhang bei. Bitte geben Sie dabei in Ihrer Nachricht die benutzte Version von Guix an sowie die Versionsnummern der Abhängigkeiten (siehe @ref{Requirements})." #. type: Plain text #: guix-git/doc/contributing.texi:395 msgid "Guix also comes with a whole-system test suite that tests complete Guix System instances. It can only run on systems where Guix is already installed, using:" msgstr "Guix wird auch mit einem Testkatalog für das ganze System ausgeliefert, der vollständige Instanzen des „Guix System“-Betriebssystems testet. Er kann nur auf Systemen benutzt werden, auf denen Guix bereits installiert ist, mit folgendem Befehl:" #. type: example #: guix-git/doc/contributing.texi:398 #, no-wrap msgid "make check-system\n" msgstr "make check-system\n" #. type: Plain text #: guix-git/doc/contributing.texi:402 msgid "or, again, by defining @code{TESTS} to select a subset of tests to run:" msgstr "Oder, auch hier, indem Sie @code{TESTS} definieren, um eine Teilmenge der auszuführenden Tests anzugeben:" #. type: example #: guix-git/doc/contributing.texi:405 #, no-wrap msgid "make check-system TESTS=\"basic mcron\"\n" msgstr "make check-system TESTS=\"basic mcron\"\n" #. type: Plain text #: guix-git/doc/contributing.texi:413 msgid "These system tests are defined in the @code{(gnu tests @dots{})} modules. They work by running the operating systems under test with lightweight instrumentation in a virtual machine (VM). They can be computationally intensive or rather cheap, depending on whether substitutes are available for their dependencies (@pxref{Substitutes}). Some of them require a lot of storage space to hold VM images." msgstr "Diese Systemtests sind in den @code{(gnu tests …)}-Modulen definiert. Sie funktionieren, indem Sie das getestete Betriebssystem mitsamt schlichter Instrumentierung in einer virtuellen Maschine (VM) ausführen. Die Tests können aufwendige Berechnungen durchführen oder sie günstig umgehen, je nachdem, ob für ihre Abhängigkeiten Substitute zur Verfügung stehen (siehe @ref{Substitutes}). Manche von ihnen nehmen viel Speicherplatz in Anspruch, um die VM-Abbilder zu speichern." #. type: Plain text #: guix-git/doc/contributing.texi:415 msgid "If you encounter an error like:" msgstr "Wenn Sie eine Fehlermeldung wie diese sehen:" #. type: example #: guix-git/doc/contributing.texi:421 #, no-wrap msgid "" "Compiling Scheme modules...\n" "ice-9/eval.scm:142:16: In procedure compile-top-call:\n" "error: all-system-tests: unbound variable\n" "hint: Did you forget `(use-modules (gnu tests))'?\n" msgstr "" #. type: Plain text #: guix-git/doc/contributing.texi:427 msgid "there may be inconsistencies in the work tree from previous builds. To resolve this, try running @command{make clean-go} followed by @command{make}." msgstr "" #. type: Plain text #: guix-git/doc/contributing.texi:430 msgid "Again in case of test failures, please send @email{bug-guix@@gnu.org} all the details." msgstr "Auch hier gilt: Falls Testfehler auftreten, senden Sie bitte alle Details an @email{bug-guix@@gnu.org}." #. type: Plain text #: guix-git/doc/contributing.texi:438 msgid "In order to keep a sane working environment, you will find it useful to test the changes made in your local source tree checkout without actually installing them. So that you can distinguish between your ``end-user'' hat and your ``motley'' costume." msgstr "Um eine gesunde Arbeitsumgebung zu erhalten, ist es hilfreich, die im lokalen Quellbaum vorgenommenen Änderungen zunächst zu testen, ohne sie tatsächlich zu installieren. So können Sie zwischen Ihrem Endnutzer-„Straßenanzug“ und Ihrem „Faschingskostüm“ unterscheiden." #. type: Plain text #: guix-git/doc/contributing.texi:448 msgid "To that end, all the command-line tools can be used even if you have not run @code{make install}. To do that, you first need to have an environment with all the dependencies available (@pxref{Building from Git}), and then simply prefix each command with @command{./pre-inst-env} (the @file{pre-inst-env} script lives in the top build tree of Guix; @pxref{Building from Git} to generate it). As an example, here is how you would build the @code{hello} package as defined in your working tree (this assumes @command{guix-daemon} is already running on your system; it's OK if it's a different version):" msgstr "Zu diesem Zweck können alle Befehlszeilenwerkzeuge auch schon benutzt werden, ohne dass Sie @code{make install} laufen lassen. Dazu müssen Sie sich in einer Umgebung befinden, in der alle Abhängigkeiten von Guix verfügbar sind (siehe @ref{Building from Git}) und darin einfach vor jeden Befehl @command{./pre-inst-env} schreiben (das Skript @file{pre-inst-env} befindet sich auf oberster Ebene im Verzeichnis, wo Guix erstellt wird; siehe @ref{Building from Git}, wo beschrieben ist, wie Sie es erzeugen). Zum Beispiel würden Sie so das Paket @code{hello} erstellen lassen, so wie es in der gegenwärtigen Kopie des Guix-Quellbaums definiert wurde (es wird angenommen, dass @command{guix-daemon} auf Ihrem System bereits läuft, auch wenn es eine andere Version ist):" #. type: example #: guix-git/doc/contributing.texi:451 #, no-wrap msgid "$ ./pre-inst-env guix build hello\n" msgstr "$ ./pre-inst-env guix build hello\n" #. type: Plain text #: guix-git/doc/contributing.texi:455 msgid "Similarly, an example for a Guile session using the Guix modules:" msgstr "Entsprechend würden Sie dies eingeben, um eine Guile-Sitzung zu öffnen, die die Guix-Module benutzt:" #. type: example #: guix-git/doc/contributing.texi:458 #, no-wrap msgid "" "$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'\n" "\n" msgstr "" "$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'\n" "\n" #. type: example #: guix-git/doc/contributing.texi:460 #, no-wrap msgid ";;; (\"x86_64-linux\")\n" msgstr ";;; (\"x86_64-linux\")\n" #. type: cindex #: guix-git/doc/contributing.texi:463 #, no-wrap msgid "REPL" msgstr "REPL" #. type: cindex #: guix-git/doc/contributing.texi:464 #, no-wrap msgid "read-eval-print loop" msgstr "Lese-Auswerten-Schreiben-Schleife" #. type: Plain text #: guix-git/doc/contributing.texi:466 msgid "@dots{} and for a REPL (@pxref{Using Guix Interactively}):" msgstr "…@: und auf einer REPL (siehe @ref{Using Guix Interactively}):" #. type: example #: guix-git/doc/contributing.texi:481 #, no-wrap msgid "" "$ ./pre-inst-env guile\n" "scheme@@(guile-user)> ,use(guix)\n" "scheme@@(guile-user)> ,use(gnu)\n" "scheme@@(guile-user)> (define snakes\n" " (fold-packages\n" " (lambda (package lst)\n" " (if (string-prefix? \"python\"\n" " (package-name package))\n" " (cons package lst)\n" " lst))\n" " '()))\n" "scheme@@(guile-user)> (length snakes)\n" "$1 = 361\n" msgstr "" "$ ./pre-inst-env guile\n" "scheme@@(guile-user)> ,use(guix)\n" "scheme@@(guile-user)> ,use(gnu)\n" "scheme@@(guile-user)> (define snakes\n" " (fold-packages\n" " (lambda (package lst)\n" " (if (string-prefix? \"python\"\n" " (package-name package))\n" " (cons package lst)\n" " lst))\n" " '()))\n" "scheme@@(guile-user)> (length snakes)\n" "$1 = 361\n" #. type: Plain text #: guix-git/doc/contributing.texi:489 msgid "If you are hacking on the daemon and its supporting code or if @command{guix-daemon} is not already running on your system, you can launch it straight from the build tree@footnote{The @option{-E} flag to @command{sudo} guarantees that @code{GUILE_LOAD_PATH} is correctly set such that @command{guix-daemon} and the tools it uses can find the Guile modules they need.}:" msgstr "Wenn Sie am Daemon und damit zu tun habendem Code hacken oder wenn @command{guix-daemon} nicht bereits auf Ihrem System läuft, können Sie ihn direkt aus dem Verzeichnis heraus starten, wo Sie Guix erstellen lassen@footnote{Die Befehlszeilenoption @option{-E} von @command{sudo} stellt sicher, dass @code{GUILE_LOAD_PATH} richtig gesetzt wird, damit @command{guix-daemon} und die davon benutzten Werkzeuge die von ihnen benötigten Guile-Module finden können.}:" #. type: example #: guix-git/doc/contributing.texi:492 #, no-wrap msgid "$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n" msgstr "$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n" #. type: Plain text #: guix-git/doc/contributing.texi:496 msgid "The @command{pre-inst-env} script sets up all the environment variables necessary to support this, including @env{PATH} and @env{GUILE_LOAD_PATH}." msgstr "Das @command{pre-inst-env}-Skript richtet alle Umgebungsvariablen ein, die nötig sind, um dies zu ermöglichen, einschließlich @env{PATH} und @env{GUILE_LOAD_PATH}." #. type: Plain text #: guix-git/doc/contributing.texi:501 msgid "Note that @command{./pre-inst-env guix pull} does @emph{not} upgrade the local source tree; it simply updates the @file{~/.config/guix/current} symlink (@pxref{Invoking guix pull}). Run @command{git pull} instead if you want to upgrade your local source tree." msgstr "Beachten Sie, dass @command{./pre-inst-env guix pull} den lokalen Quellbaum @emph{nicht} aktualisiert; es aktualisiert lediglich die symbolische Verknüpfung @file{~/.config/guix/current} (siehe @ref{Invoking guix pull}). Um Ihren lokalen Quellbaum zu aktualisieren, müssen Sie stattdessen @command{git pull} benutzen." #. type: Plain text #: guix-git/doc/contributing.texi:505 msgid "Sometimes, especially if you have recently updated your repository, running @command{./pre-inst-env} will print a message similar to the following example:" msgstr "Manchmal, insbesondere wenn Sie das Repository aktualisiert haben, wird beim Ausführen mit @command{./pre-inst-env} eine Nachricht ähnlich wie in diesem Beispiel erscheinen:" #. type: example #: guix-git/doc/contributing.texi:509 #, no-wrap msgid "" ";;; note: source file /home/user/projects/guix/guix/progress.scm\n" ";;; newer than compiled /home/user/projects/guix/guix/progress.go\n" msgstr "" ";;; note: source file /home/user/projects/guix/guix/progress.scm\n" ";;; newer than compiled /home/user/projects/guix/guix/progress.go\n" #. type: Plain text #: guix-git/doc/contributing.texi:515 msgid "This is only a note and you can safely ignore it. You can get rid of the message by running @command{make -j4}. Until you do, Guile will run slightly slower because it will interpret the code instead of using prepared Guile object (@file{.go}) files." msgstr "Es handelt sich lediglich um einen Hinweis und Sie können ihn getrost ignorieren. Los werden Sie die Nachricht, indem Sie @command{make -j4} ausführen. Bis dahin läuft Guile etwas langsamer als sonst, weil es den Quellcode interpretieren muss und nicht auf vorbereitete Guile-Objekt-Dateien (@file{.go}) zurückgreifen kann." #. type: Plain text #: guix-git/doc/contributing.texi:520 msgid "You can run @command{make} automatically as you work using @command{watchexec} from the @code{watchexec} package. For example, to build again each time you update a package file, run @samp{watchexec -w gnu/packages -- make -j4}." msgstr "Sie können @command{make} automatisch ausführen lassen, während Sie am Code arbeiten, nämlich mit @command{watchexec} aus dem Paket @code{watchexec}. Um zum Beispiel jedes Mal neu zu erstellen, wenn Sie etwas an einer Paketdatei ändern, führen Sie @samp{watchexec -w gnu/packages -- make -j4} aus." #. type: Plain text #: guix-git/doc/contributing.texi:529 msgid "The Perfect Setup to hack on Guix is basically the perfect setup used for Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference Manual}). First, you need more than an editor, you need @url{https://www.gnu.org/software/emacs, Emacs}, empowered by the wonderful @url{https://nongnu.org/geiser/, Geiser}. To set that up, run:" msgstr "Um perfekt für das Hacken an Guix eingerichtet zu sein, brauchen Sie an sich dasselbe wie um perfekt für das Hacken mit Guile (siehe @ref{Using Guile in Emacs,,, guile, Guile-Referenzhandbuch}). Zunächst brauchen Sie mehr als ein Textverarbeitungsprogramm, Sie brauchen @url{https://www.gnu.org/software/emacs, Emacs} zusammen mit den vom wunderbaren @url{https://nongnu.org/geiser/, Geiser} verliehenen Kräften. Um diese zu installieren, können Sie Folgendes ausführen:" #. type: example #: guix-git/doc/contributing.texi:532 #, no-wrap msgid "guix install emacs guile emacs-geiser emacs-geiser-guile\n" msgstr "guix install emacs guile emacs-geiser emacs-geiser-guile\n" #. type: Plain text #: guix-git/doc/contributing.texi:542 msgid "Geiser allows for interactive and incremental development from within Emacs: code compilation and evaluation from within buffers, access to on-line documentation (docstrings), context-sensitive completion, @kbd{M-.} to jump to an object definition, a REPL to try out your code, and more (@pxref{Introduction,,, geiser, Geiser User Manual}). If you allow Emacs to load the @file{.dir-locals.el} file at the root of the project checkout, it will cause Geiser to automatically add the local Guix sources to the Guile load path." msgstr "Geiser ermöglicht interaktive und inkrementelle Entwicklung aus Emacs heraus: Code kann in Puffern kompiliert und ausgewertet werden. Zugang zu Online-Dokumentation (Docstrings) steht ebenso zur Verfügung wie kontextabhängige Vervollständigung, @kbd{M-.} um zu einer Objektdefinition zu springen, eine REPL, um Ihren Code auszuprobieren, und mehr (siehe @ref{Introduction,,, geiser, Geiser User Manual}). Wenn Sie Emacs die Erlaubnis erteilen, die Datei @file{.dir-locals.el} im obersten Verzeichnis Ihres Guix-Checkouts zu laden, wird Geiser die lokalen Guix-Quelldateien automatisch zu Guiles Ladepfad ergänzen." #. type: Plain text #: guix-git/doc/contributing.texi:549 msgid "To actually edit the code, Emacs already has a neat Scheme mode. But in addition to that, you must not miss @url{https://www.emacswiki.org/emacs/ParEdit, Paredit}. It provides facilities to directly operate on the syntax tree, such as raising an s-expression or wrapping it, swallowing or rejecting the following s-expression, etc." msgstr "Um den Code tatsächlich zu bearbeiten, bietet Emacs schon einen netten Scheme-Modus. Aber Sie dürfen auch @url{https://www.emacswiki.org/emacs/ParEdit, Paredit} nicht verpassen. Es bietet Hilfsmittel, um direkt mit dem Syntaxbaum zu arbeiten, und kann so zum Beispiel einen S-Ausdruck hochheben oder ihn umhüllen, ihn verschlucken oder den nachfolgenden S-Ausdruck verwerfen, etc." #. type: cindex #: guix-git/doc/contributing.texi:550 #, no-wrap msgid "code snippets" msgstr "Code-Schnipsel" #. type: cindex #: guix-git/doc/contributing.texi:551 #, no-wrap msgid "templates" msgstr "Vorlagen" #. type: cindex #: guix-git/doc/contributing.texi:552 #, no-wrap msgid "reducing boilerplate" msgstr "Tipparbeit sparen" #. type: Plain text #: guix-git/doc/contributing.texi:562 msgid "We also provide templates for common git commit messages and package definitions in the @file{etc/snippets} directory. These templates can be used to expand short trigger strings to interactive text snippets. If you use @url{https://joaotavora.github.io/yasnippet/, YASnippet}, you may want to add the @file{etc/snippets/yas} snippets directory to the @var{yas-snippet-dirs} variable. If you use @url{https://github.com/minad/tempel/, Tempel}, you may want to add the @file{etc/snippets/tempel/*} path to the @var{tempel-path} variable in Emacs." msgstr "Wir bieten auch Vorlagen an für häufige Git-Commit-Nachrichten und Paketdefinitionen im Verzeichnis @file{etc/snippets}. Diese Vorlagen können benutzt werden, um kurze Auslöse-Zeichenketten zu interaktiven Textschnipseln umzuschreiben. Wenn Sie dazu @url{https://joaotavora.github.io/yasnippet/, YASnippet} verwenden, möchten Sie vielleicht das Schnipselverzeichnis @file{etc/snippets/yas} zu Ihrer @var{yas-snippet-dirs}-Variablen in Emacs hinzufügen. Wenn Sie @url{https://github.com/minad/tempel/, Tempel} verwenden, fügen Sie stattdessen den Pfad @file{etc/snippets/tempel/*} zur Emacs-Variablen @var{tempel-path} hinzu." #. type: lisp #: guix-git/doc/contributing.texi:574 #, no-wrap msgid "" ";; @r{Assuming the Guix checkout is in ~/src/guix.}\n" ";; @r{Yasnippet configuration}\n" "(with-eval-after-load 'yasnippet\n" " (add-to-list 'yas-snippet-dirs \"~/src/guix/etc/snippets/yas\"))\n" ";; @r{Tempel configuration}\n" "(with-eval-after-load 'tempel\n" " ;; Ensure tempel-path is a list -- it may also be a string.\n" " (unless (listp 'tempel-path)\n" " (setq tempel-path (list tempel-path)))\n" " (add-to-list 'tempel-path \"~/src/guix/etc/snippets/tempel/*\"))\n" msgstr "" ";; @r{Angenommen das Guix-Checkout ist in ~/src/guix.}\n" ";; @r{Yasnippet-Konfiguration}\n" "(with-eval-after-load 'yasnippet\n" " (add-to-list 'yas-snippet-dirs \"~/src/guix/etc/snippets/yas\"))\n" ";; @r{Tempel-Konfiguration}\n" "(with-eval-after-load 'tempel\n" " ;; Wenn tempel-path noch keine Liste ist, sondern eine Zeichenkette\n" " (unless (listp 'tempel-path)\n" " (setq tempel-path (list tempel-path)))\n" " (add-to-list 'tempel-path \"~/src/guix/etc/snippets/tempel/*\"))\n" #. type: Plain text #: guix-git/doc/contributing.texi:582 msgid "The commit message snippets depend on @url{https://magit.vc/, Magit} to display staged files. When editing a commit message type @code{add} followed by @kbd{TAB} to insert a commit message template for adding a package; type @code{update} followed by @kbd{TAB} to insert a template for updating a package; type @code{https} followed by @kbd{TAB} to insert a template for changing the home page URI of a package to HTTPS." msgstr "Die Schnipsel für Commit-Nachrichten setzen @url{https://magit.vc/, Magit} voraus, um zum Commit vorgemerkte Dateien anzuzeigen. Wenn Sie eine Commit-Nachricht bearbeiten, können Sie @code{add} gefolgt von @kbd{TAB} eintippen, um eine Commit-Nachrichten-Vorlage für das Hinzufügen eines Pakets zu erhalten; tippen Sie @code{update} gefolgt von @kbd{TAB} ein, um eine Vorlage zum Aktualisieren eines Pakets zu bekommen; tippen Sie @code{https} gefolgt von @kbd{TAB} ein, um eine Vorlage zum Ändern der Homepage-URI eines Pakets auf HTTPS einzufügen." #. type: Plain text #: guix-git/doc/contributing.texi:588 msgid "The main snippet for @code{scheme-mode} is triggered by typing @code{package...} followed by @kbd{TAB}. This snippet also inserts the trigger string @code{origin...}, which can be expanded further. The @code{origin} snippet in turn may insert other trigger strings ending on @code{...}, which also can be expanded further." msgstr "Das Hauptschnipsel für @code{scheme-mode} wird ausgelöst, indem Sie @code{package...} gefolgt von @kbd{TAB} eintippen. Dieses Snippet fügt auch die Auslöse-Zeichenkette @code{origin...} ein, die danach weiter umgeschrieben werden kann. Das @code{origin}-Schnipsel kann wiederum andere Auslöse-Zeichenketten einfügen, die alle auf @code{...} enden, was selbst wieder weiter umgeschrieben werden kann." #. type: cindex #: guix-git/doc/contributing.texi:589 #, no-wrap msgid "insert or update copyright" msgstr "Copyright einfügen oder aktualisieren" #. type: code{#1} #: guix-git/doc/contributing.texi:590 #, no-wrap msgid "M-x guix-copyright" msgstr "M-x guix-copyright" #. type: code{#1} #: guix-git/doc/contributing.texi:591 #, no-wrap msgid "M-x copyright-update" msgstr "M-x copyright-update" #. type: Plain text #: guix-git/doc/contributing.texi:595 msgid "We additionally provide insertion and automatic update of a copyright in @file{etc/copyright.el}. You may want to set your full name, mail, and load a file." msgstr "Außerden stellen wir automatisches Einfügen und Aktualisieren von Urheberrechtsinformationen („Copyright“) über @file{etc/copyright.el} zur Verfügung. Dazu müssten Sie Ihren vollständigen Namen mit E-Mail-Adresse festlegen und eine Datei laden." #. type: lisp #: guix-git/doc/contributing.texi:601 #, no-wrap msgid "" "(setq user-full-name \"Alice Doe\")\n" "(setq user-mail-address \"alice@@mail.org\")\n" ";; @r{Assuming the Guix checkout is in ~/src/guix.}\n" "(load-file \"~/src/guix/etc/copyright.el\")\n" msgstr "" "(setq user-full-name \"Alice Doe\")\n" "(setq user-mail-address \"alice@@mail.org\")\n" ";; @r{Assuming the Guix checkout is in ~/src/guix.}\n" "(load-file \"~/src/guix/etc/copyright.el\")\n" #. type: Plain text #: guix-git/doc/contributing.texi:604 msgid "To insert a copyright at the current line invoke @code{M-x guix-copyright}." msgstr "Um an der aktuellen Zeile Copyright-Informationen einzufügen, rufen Sie @code{M-x guix-copyright} auf." #. type: Plain text #: guix-git/doc/contributing.texi:606 msgid "To update a copyright you need to specify a @code{copyright-names-regexp}." msgstr "Um Copyright-Informationen aktualisieren zu können, müssen Sie einen regulären Ausdruck @code{copyright-names-regexp} angeben." #. type: lisp #: guix-git/doc/contributing.texi:610 #, no-wrap msgid "" "(setq copyright-names-regexp\n" " (format \"%s <%s>\" user-full-name user-mail-address))\n" msgstr "" "(setq copyright-names-regexp\n" " (format \"%s <%s>\" user-full-name user-mail-address))\n" #. type: Plain text #: guix-git/doc/contributing.texi:616 msgid "You can check if your copyright is up to date by evaluating @code{M-x copyright-update}. If you want to do it automatically after each buffer save then add @code{(add-hook 'after-save-hook 'copyright-update)} in Emacs." msgstr "Sie können prüfen, ob Ihre Urheberrechtsinformationen aktuell sind, indem Sie @code{M-x copyright-update} auswerten. Wenn Sie möchten, dass dies automatisch nach jedem Speichern des Puffers geschieht, fügen Sie @code{(add-hook 'after-save-hook 'copyright-update)} in Emacs hinzu." #. type: subsection #: guix-git/doc/contributing.texi:617 guix-git/doc/contributing.texi:618 #, no-wrap msgid "Viewing Bugs within Emacs" msgstr "Bugs mit Emacs anschauen" #. type: Plain text #: guix-git/doc/contributing.texi:628 msgid "Emacs has a nice minor mode called @code{bug-reference}, which, when combined with @samp{emacs-debbugs} (the Emacs package), can be used to open links such as @samp{<https://bugs.gnu.org/58697>} or @samp{<https://issues.guix.gnu.org/58697>} as bug report buffers. From there you can easily consult the email thread via the Gnus interface, reply or modify the bug status, all without leaving the comfort of Emacs! Below is a sample configuration to add to your @file{~/.emacs} configuration file:" msgstr "Emacs hat einen nützlichen Minor-Mode namens @code{bug-reference}, mit dem man, zusammen mit @samp{emacs-debbugs} (dem Paket für Emacs), URLs wie @samp{<https://bugs.gnu.org/58697>} oder @samp{<https://issues.guix.gnu.org/58697>} als Buffer mit dem Fehlerbericht öffnen kann. Von diesem aus kann man leicht den E-Mail-Thread in Gnus lesen, antworten oder den Status des Bugs ändern ohne Emacs zu verlassen! Sie sehen im Folgenden eine Beispielkonfiguration, die Sie in Ihre @file{~/.emacs}-Konfigurationsdatei übernehmen können:" #. type: lisp #: guix-git/doc/contributing.texi:637 #, no-wrap msgid "" ";;; Bug references.\n" "(require 'bug-reference)\n" "(add-hook 'prog-mode-hook #'bug-reference-prog-mode)\n" "(add-hook 'gnus-mode-hook #'bug-reference-mode)\n" "(add-hook 'erc-mode-hook #'bug-reference-mode)\n" "(add-hook 'gnus-summary-mode-hook #'bug-reference-mode)\n" "(add-hook 'gnus-article-mode-hook #'bug-reference-mode)\n" "\n" msgstr "" ";;; Verweise auf Bugs.\n" "(require 'bug-reference)\n" "(add-hook 'prog-mode-hook #'bug-reference-prog-mode)\n" "(add-hook 'gnus-mode-hook #'bug-reference-mode)\n" "(add-hook 'erc-mode-hook #'bug-reference-mode)\n" "(add-hook 'gnus-summary-mode-hook #'bug-reference-mode)\n" "(add-hook 'gnus-article-mode-hook #'bug-reference-mode)\n" "\n" #. type: lisp #: guix-git/doc/contributing.texi:669 #, no-wrap msgid "" ";;; This extends the default expression (the top-most, first expression\n" ";;; provided to 'or') to also match URLs such as\n" ";;; <https://issues.guix.gnu.org/58697> or <https://bugs.gnu.org/58697>.\n" ";;; It is also extended to detect \"Fixes: #NNNNN\" git trailers.\n" "(setq bug-reference-bug-regexp\n" " (rx (group (or (seq word-boundary\n" " (or (seq (char \"Bb\") \"ug\"\n" " (zero-or-one \" \")\n" " (zero-or-one \"#\"))\n" " (seq (char \"Pp\") \"atch\"\n" " (zero-or-one \" \")\n" " \"#\")\n" " (seq (char \"Ff\") \"ixes\"\n" " (zero-or-one \":\")\n" " (zero-or-one \" \") \"#\")\n" " (seq \"RFE\"\n" " (zero-or-one \" \") \"#\")\n" " (seq \"PR \"\n" " (one-or-more (char \"a-z+-\")) \"/\"))\n" " (group (one-or-more (char \"0-9\"))\n" " (zero-or-one\n" " (seq \"#\" (one-or-more\n" " (char \"0-9\"))))))\n" " (seq (? \"<\") \"https://bugs.gnu.org/\"\n" " (group-n 2 (one-or-more (char \"0-9\")))\n" " (? \">\"))\n" " (seq (? \"<\") \"https://issues.guix.gnu.org/\"\n" " (? \"issue/\")\n" " (group-n 2 (one-or-more (char \"0-9\")))\n" " (? \">\"))))))\n" "(setq bug-reference-url-format \"https://issues.guix.gnu.org/%s\")\n" "\n" msgstr "" ";;; Dies erweitert die „default expression“ (den obersten, ersten\n" ";;; Ausdruck für 'or') so, dass er auch auf URLs wie\n" ";;; <https://issues.guix.gnu.org/58697> oder\n" ";;; <https://bugs.gnu.org/58697> passt.\n" ";;; Auch werden so \"Fixes: #NNNNN\" in Git-Anhangszeilen erkannt.\n" "(setq bug-reference-bug-regexp\n" " (rx (group (or (seq word-boundary\n" " (or (seq (char \"Bb\") \"ug\"\n" " (zero-or-one \" \")\n" " (zero-or-one \"#\"))\n" " (seq (char \"Pp\") \"atch\"\n" " (zero-or-one \" \")\n" " \"#\")\n" " (seq (char \"Ff\") \"ixes\"\n" " (zero-or-one \":\")\n" " (zero-or-one \" \") \"#\")\n" " (seq \"RFE\"\n" " (zero-or-one \" \") \"#\")\n" " (seq \"PR \"\n" " (one-or-more (char \"a-z+-\")) \"/\"))\n" " (group (one-or-more (char \"0-9\"))\n" " (zero-or-one\n" " (seq \"#\" (one-or-more\n" " (char \"0-9\"))))))\n" " (seq (? \"<\") \"https://bugs.gnu.org/\"\n" " (group-n 2 (one-or-more (char \"0-9\")))\n" " (? \">\"))\n" " (seq (? \"<\") \"https://issues.guix.gnu.org/\"\n" " (? \"issue/\")\n" " (group-n 2 (one-or-more (char \"0-9\")))\n" " (? \">\"))))))\n" "(setq bug-reference-url-format \"https://issues.guix.gnu.org/%s\")\n" "\n" #. type: lisp #: guix-git/doc/contributing.texi:674 #, no-wrap msgid "" "(require 'debbugs)\n" "(require 'debbugs-browse)\n" "(add-hook 'bug-reference-mode-hook #'debbugs-browse-mode)\n" "(add-hook 'bug-reference-prog-mode-hook #'debbugs-browse-mode)\n" "\n" msgstr "" "(require 'debbugs)\n" "(require 'debbugs-browse)\n" "(add-hook 'bug-reference-mode-hook #'debbugs-browse-mode)\n" "(add-hook 'bug-reference-prog-mode-hook #'debbugs-browse-mode)\n" "\n" #. type: lisp #: guix-git/doc/contributing.texi:685 #, no-wrap msgid "" ";; The following allows Emacs Debbugs user to open the issue directly within\n" ";; Emacs.\n" "(setq debbugs-browse-url-regexp\n" " (rx line-start\n" " \"http\" (zero-or-one \"s\") \"://\"\n" " (or \"debbugs\" \"issues.guix\" \"bugs\")\n" " \".gnu.org\" (one-or-more \"/\")\n" " (group (zero-or-one \"cgi/bugreport.cgi?bug=\"))\n" " (group-n 3 (one-or-more digit))\n" " line-end))\n" "\n" msgstr "" ";; Mit folgendem Code kann man mit Emacs Debbugs Fehlerberichte direkt\n" ";; in Emacs öffnen.\n" "(setq debbugs-browse-url-regexp\n" " (rx line-start\n" " \"http\" (zero-or-one \"s\") \"://\"\n" " (or \"debbugs\" \"issues.guix\" \"bugs\")\n" " \".gnu.org\" (one-or-more \"/\")\n" " (group (zero-or-one \"cgi/bugreport.cgi?bug=\"))\n" " (group-n 3 (one-or-more digit))\n" " line-end))\n" "\n" #. type: lisp #: guix-git/doc/contributing.texi:688 #, no-wrap msgid "" ";; Change the default when run as 'M-x debbugs-gnu'.\n" "(setq debbugs-gnu-default-packages '(\"guix\" \"guix-patches\"))\n" "\n" msgstr "" ";; Ändern, welche Fehlerberichte uns 'M-x debbugs-gnu' anzeigt.\n" "(setq debbugs-gnu-default-packages '(\"guix\" \"guix-patches\"))\n" "\n" #. type: lisp #: guix-git/doc/contributing.texi:692 #, no-wrap msgid "" ";; Show feature requests.\n" "(setq debbugs-gnu-default-severities\n" " '(\"serious\" \"important\" \"normal\" \"minor\" \"wishlist\"))\n" msgstr "" ";; Auch Bitten um neue Funktionalität zeigen.\n" "(setq debbugs-gnu-default-severities\n" " '(\"serious\" \"important\" \"normal\" \"minor\" \"wishlist\"))\n" #. type: Plain text #: guix-git/doc/contributing.texi:697 msgid "For more information, refer to @ref{Bug Reference,,, emacs, The GNU Emacs Manual} and @ref{Minor Mode,,, debbugs-ug, The Debbugs User Guide}." msgstr "Mehr Informationen finden Sie im @ref{Bug Reference,,, emacs, Handbuch zu GNU Emacs} und in der @ref{Minor Mode,,, debbugs-ug, Bedienungsanleitung zu Debbugs}." #. type: Plain text #: guix-git/doc/contributing.texi:704 msgid "Alternative setups than Emacs may let you work on Guix with a similar development experience and they might work better with the tools you currently use or help you make the transition to Emacs." msgstr "Andere Entwicklungswerkzeuge als Emacs sind zum Entwickeln an Guix ähnlich gut nutzbar und sie gliedern sich vielleicht besser in Ihren bisherigen Werkzeugkasten ein. Vielleicht helfen sie Ihnen auch beim Wechsel auf Emacs." #. type: Plain text #: guix-git/doc/contributing.texi:710 msgid "The options listed below only provide the alternatives to the Emacs based setup, which is the most widely used in the Guix community. If you want to really understand how is the perfect setup for Guix development supposed to work, we encourage you to read the section before this regardless the editor you choose to use." msgstr "Die folgend aufgelisteten Programme sind die Alternativen zu einer Emacs-basierten Programmierumgebung, die die am häufigsten benutzte Wahl unter Guix-Nutzern ist. Wenn Sie wirklich verstehen wollen, wie perfekt eingerichtetes Arbeiten mit Guix aussehen soll, möchten wir dazu anhalten, den vorherigen Abschnitt trotzdem zu lesen, auch wenn Sie sich lieber für einen anderen Editor entscheiden." #. type: subsection #: guix-git/doc/contributing.texi:714 guix-git/doc/contributing.texi:716 #: guix-git/doc/contributing.texi:717 #, no-wrap msgid "Guile Studio" msgstr "Guile Studio" #. type: menuentry #: guix-git/doc/contributing.texi:714 msgid "First step in your transition to Emacs." msgstr "Ein erster Schritt in Richtung Emacs." #. type: subsection #: guix-git/doc/contributing.texi:714 guix-git/doc/contributing.texi:729 #: guix-git/doc/contributing.texi:730 #, no-wrap msgid "Vim and NeoVim" msgstr "Vim und NeoVim" #. type: menuentry #: guix-git/doc/contributing.texi:714 msgid "When you are evil to the root." msgstr "Völlig indiskutabel (Scherz)." #. type: Plain text #: guix-git/doc/contributing.texi:722 msgid "Guile Studio is a pre-configured Emacs with mostly everything you need to start hacking in Guile. If you are not familiar with Emacs it makes the transition easier for you." msgstr "Guile Studio ist ein voreingestellter Emacs mit ziemlich allem, um in Guile loszulegen. Wenn Sie Emacs nicht kennen, ist es ein leichterer Einstieg." #. type: example #: guix-git/doc/contributing.texi:725 #, no-wrap msgid "guix install guile-studio\n" msgstr "guix install guile-studio\n" #. type: Plain text #: guix-git/doc/contributing.texi:728 msgid "Guile Studio comes with Geiser preinstalled and prepared for action." msgstr "In Guile Studio ist Geiser vorinstalliert und einsatzbereit." #. type: Plain text #: guix-git/doc/contributing.texi:735 msgid "Vim (and NeoVim) are also packaged in Guix, just in case you decided to go for the evil path." msgstr "Für Vim (und NeoVim) gibt es Pakete in Guix, falls Sie sich dem Bösen verschrieben haben." #. type: example #: guix-git/doc/contributing.texi:738 #, no-wrap msgid "guix install vim\n" msgstr "guix install vim\n" #. type: Plain text #: guix-git/doc/contributing.texi:746 msgid "If you want to enjoy a similar development experience to that in the perfect setup, you should install several plugins to configure the editor. Vim (and NeoVim) have the equivalent to Paredit, @uref{https://www.vim.org/scripts/script.php?script_id=3998, @code{paredit.vim}}, that will help you with the structural editing of Scheme files (the support for very large files is not great, though)." msgstr "Wenn Sie ähnlich bequem wie in der perfekten Einrichtung arbeiten möchten, empfehlen wir einige Plugins zur Konfiguration des Editors. Vim (und NeoVim) haben ein Gegenstück zu Paredit, nämlich @uref{https://www.vim.org/scripts/script.php?script_id=3998, @code{paredit.vim}}, mit dem Sie beim Bearbeiten von Scheme-Dateien deren Struktur einhalten können (bei sehr großen Dateien funktioniert es jedoch nicht gut)." #. type: example #: guix-git/doc/contributing.texi:749 #, no-wrap msgid "guix install vim-paredit\n" msgstr "guix install vim-paredit\n" #. type: Plain text #: guix-git/doc/contributing.texi:753 msgid "We also recommend that you run @code{:set autoindent} so that your code is automatically indented as you type." msgstr "Wir raten auch dazu, dass Sie @code{:set autoindent} ausführen, wodurch Ihr Code beim Tippen automatisch eingerückt wird." #. type: Plain text #: guix-git/doc/contributing.texi:757 msgid "For the interaction with Git, @uref{https://www.vim.org/scripts/script.php?script_id=2975, @code{fugitive.vim}} is the most commonly used plugin:" msgstr "Zur Interaktion mit Git ist @uref{https://www.vim.org/scripts/script.php?script_id=2975, @code{fugitive.vim}} das beliebteste Plugin:" #. type: example #: guix-git/doc/contributing.texi:760 #, no-wrap msgid "guix install vim-fugitive\n" msgstr "guix install vim-fugitive\n" #. type: Plain text #: guix-git/doc/contributing.texi:765 msgid "And of course if you want to interact with Guix directly from inside of vim, using the built-in terminal emulator, we have our very own @code{guix.vim} package!" msgstr "Und selbstverständlich haben wir zum direkten Arbeiten mit Guix in Vim mit dem eingebauten Terminal-Emulator unser @code{guix.vim}-Paket im Angebot!" #. type: example #: guix-git/doc/contributing.texi:768 #, no-wrap msgid "guix install vim-guix-vim\n" msgstr "guix install vim-guix-vim\n" #. type: Plain text #: guix-git/doc/contributing.texi:773 msgid "In NeoVim you can even make a similar setup to Geiser using @url{https://conjure.fun/, Conjure} that lets you connect to a running Guile process and inject your code there live (sadly it's not packaged in Guix yet)." msgstr "Für NeoVim können Sie sogar ähnliche Funktionen wie Geiser bekommen mit @url{https://conjure.fun/, Conjure}, wodurch Sie sich mit einem laufenden Guile-Prozess verbinden und Ihren Code dort live einschleusen können (leider fehlt Conjure noch unter den Paketen von Guix)." #. type: cindex #: guix-git/doc/contributing.texi:778 #, no-wrap msgid "structure, of the source tree" msgstr "Struktur, des Quellbaums" #. type: Plain text #: guix-git/doc/contributing.texi:782 msgid "If you're willing to contribute to Guix beyond packages, or if you'd like to learn how it all fits together, this section provides a guided tour in the code base that you may find useful." msgstr "Wenn Sie zu Guix etwas anderes als Pakete beitragen möchten oder um sich besser auszukennen, wie alles zusammenhält, führt Sie dieser Abschnitt im Quellcode herum, was Ihnen helfen kann." #. type: Plain text #: guix-git/doc/contributing.texi:786 msgid "Overall, the Guix source tree contains almost exclusively Guile @dfn{modules}, each of which can be seen as an independent library (@pxref{Modules,,, guile, GNU Guile Reference Manual})." msgstr "Allgemein enthält Guix’ Quellbaum fast ausschließlich @dfn{Guile-Module}, von denen jedes für sich als eine Bibliothek aufgefasst werden kann (siehe @ref{Modules,,, guile, Referenzhandbuch zu GNU Guile})." #. type: Plain text #: guix-git/doc/contributing.texi:791 msgid "The following table gives an overview of the main directories and what they contain. Remember that in Guile, each module name is derived from its file name---e.g., the module in file @file{guix/packages.scm} is called @code{(guix packages)}." msgstr "Die folgende Tabelle bietet einen Überblick über die wichtigsten Verzeichnisse und was jeweils dort untergebracht ist. Denken Sie daran, dass sich in Guile der Modulname aus dem Dateinamen ableitet. Zum Beispiel heißt das Modul in der Datei @file{guix/packages.scm} folglich @code{(guix packages)}." #. type: item #: guix-git/doc/contributing.texi:793 guix-git/doc/contributing.texi:3156 #: guix-git/doc/guix.texi:11219 #, no-wrap msgid "guix" msgstr "guix" #. type: table #: guix-git/doc/contributing.texi:797 msgid "This is the location of core Guix mechanisms. To illustrate what is meant by ``core'', here are a few examples, starting from low-level tools and going towards higher-level tools:" msgstr "An diesem Ort liegen die Mechanismen im Kern von Guix. Um klarzumachen, was wir mit Kern meinen, sind hier ein paar Beispiele, angefangen mit grundlegenden Werkzeugen bis hin zu abstrahierenden, hochsprachlichen Werkzeugen:" #. type: item #: guix-git/doc/contributing.texi:799 #, no-wrap msgid "(guix store)" msgstr "(guix store)" #. type: table #: guix-git/doc/contributing.texi:801 msgid "Connecting to and interacting with the build daemon (@pxref{The Store})." msgstr "Verbinden und kommunizieren mit dem Erstellungs-Daemon (siehe @ref{The Store})." #. type: item #: guix-git/doc/contributing.texi:801 #, no-wrap msgid "(guix derivations)" msgstr "(guix derivations)" #. type: table #: guix-git/doc/contributing.texi:803 msgid "Creating derivations (@pxref{Derivations})." msgstr "Ableitungen erzeugen (siehe @ref{Derivations})." #. type: item #: guix-git/doc/contributing.texi:803 #, no-wrap msgid "(guix gexps)" msgstr "(guix gexps)" #. type: table #: guix-git/doc/contributing.texi:805 msgid "Writing G-expressions (@pxref{G-Expressions})." msgstr "G-Ausdrücke schreiben (siehe @ref{G-Expressions})." #. type: item #: guix-git/doc/contributing.texi:805 #, no-wrap msgid "(guix packages)" msgstr "(guix packages)" #. type: table #: guix-git/doc/contributing.texi:807 msgid "Defining packages and origins (@pxref{package Reference})." msgstr "Pakete und Paketursprünge (@code{origin}) definieren (siehe @ref{package Reference})." #. type: item #: guix-git/doc/contributing.texi:807 #, no-wrap msgid "(guix download)" msgstr "(guix download)" #. type: itemx #: guix-git/doc/contributing.texi:808 #, no-wrap msgid "(guix git-download)" msgstr "(guix git-download)" #. type: table #: guix-git/doc/contributing.texi:811 msgid "The @code{url-fetch} and @code{git-fetch} origin download methods (@pxref{origin Reference})." msgstr "Die Methoden @code{url-fetch} und @code{git-fetch}, mit denen für Paketursprünge etwas heruntergeladen wird (siehe @ref{origin Reference})." #. type: item #: guix-git/doc/contributing.texi:811 #, no-wrap msgid "(guix swh)" msgstr "(guix swh)" #. type: table #: guix-git/doc/contributing.texi:814 msgid "Fetching source code from the @uref{https://archive.softwareheritage.org,Software Heritage archive}." msgstr "Quellcode aus dem @uref{https://archive.softwareheritage.org,Software-Heritage-Archiv} herunterladen." #. type: item #: guix-git/doc/contributing.texi:814 #, no-wrap msgid "(guix search-paths)" msgstr "(guix search-paths)" #. type: table #: guix-git/doc/contributing.texi:816 msgid "Implementing search paths (@pxref{Search Paths})." msgstr "Suchpfade implementieren (siehe @ref{Search Paths})." #. type: item #: guix-git/doc/contributing.texi:816 #, no-wrap msgid "(guix build-system)" msgstr "(guix build-system)" #. type: table #: guix-git/doc/contributing.texi:818 msgid "The build system interface (@pxref{Build Systems})." msgstr "Die Schnittstelle für Erstellungssysteme (siehe @ref{Build Systems})." #. type: item #: guix-git/doc/contributing.texi:818 #, no-wrap msgid "(guix profiles)" msgstr "(guix profiles)" #. type: table #: guix-git/doc/contributing.texi:820 msgid "Implementing profiles." msgstr "Profile implementieren." #. type: cindex #: guix-git/doc/contributing.texi:822 #, no-wrap msgid "build system, directory structure" msgstr "Erstellungssystem, Verzeichnisstruktur" #. type: item #: guix-git/doc/contributing.texi:823 #, no-wrap msgid "guix/build-system" msgstr "guix/build-system" #. type: table #: guix-git/doc/contributing.texi:826 msgid "This directory contains specific build system implementations (@pxref{Build Systems}), such as:" msgstr "Dieses Verzeichnis enthält die einzelnen Implementierungen jedes Erstellungssystems (siehe @ref{Build Systems}), etwa:" #. type: item #: guix-git/doc/contributing.texi:828 #, no-wrap msgid "(guix build-system gnu)" msgstr "(guix build-system gnu)" #. type: table #: guix-git/doc/contributing.texi:830 msgid "the GNU build system;" msgstr "das GNU-Erstellungssystem," #. type: item #: guix-git/doc/contributing.texi:830 #, no-wrap msgid "(guix build-system cmake)" msgstr "(guix build-system cmake)" #. type: table #: guix-git/doc/contributing.texi:832 msgid "the CMake build system;" msgstr "das CMake-Erstellungssystem," #. type: item #: guix-git/doc/contributing.texi:832 #, no-wrap msgid "(guix build-system pyproject)" msgstr "(guix build-system pyproject)" #. type: table #: guix-git/doc/contributing.texi:834 msgid "The Python ``pyproject'' build system." msgstr "für Python das „pyproject“-Erstellungssystem." #. type: item #: guix-git/doc/contributing.texi:836 #, no-wrap msgid "guix/build" msgstr "guix/build" #. type: table #: guix-git/doc/contributing.texi:841 msgid "This contains code generally used on the ``build side'' (@pxref{G-Expressions, strata of code}). This includes code used to build packages or other operating system components, as well as utilities:" msgstr "Hier ist Code zu finden, der allgemein auf der „Erstellungsseite“ verwendet wird (siehe @ref{G-Expressions, Schichten von Code}). Dazu gehört Code zum Erstellen von Paketen oder anderen Bestandteilen von Betriebssystemen sowie Werkzeuge:" #. type: item #: guix-git/doc/contributing.texi:843 #, no-wrap msgid "(guix build utils)" msgstr "(guix build utils)" #. type: table #: guix-git/doc/contributing.texi:845 msgid "Utilities for package definitions and more (@pxref{Build Utilities})." msgstr "Werkzeuge, die in Paketdefinitionen und mehr helfen können (siehe @ref{Build Utilities})." #. type: item #: guix-git/doc/contributing.texi:845 #, no-wrap msgid "(guix build gnu-build-system)" msgstr "(guix build gnu-build-system)" #. type: itemx #: guix-git/doc/contributing.texi:846 #, no-wrap msgid "(guix build cmake-build-system)" msgstr "(guix build cmake-build-system)" #. type: itemx #: guix-git/doc/contributing.texi:847 #, no-wrap msgid "(guix build pyproject-build-system)" msgstr "(guix build pyproject-build-system)" #. type: table #: guix-git/doc/contributing.texi:850 msgid "Implementation of build systems, and in particular definition of their build phases (@pxref{Build Phases})." msgstr "Implementierungen von Erstellungssystemen, insbesondere die Definition der Erstellungsphasen (siehe @ref{Build Phases})." #. type: item #: guix-git/doc/contributing.texi:850 #, no-wrap msgid "(guix build syscalls)" msgstr "(guix build syscalls)" #. type: table #: guix-git/doc/contributing.texi:852 msgid "Interface to the C library and to Linux system calls." msgstr "Schnittstelle zur C-Bibliothek und zu Linux-Betriebssystemaufrufen." #. type: cindex #: guix-git/doc/contributing.texi:854 #, no-wrap msgid "command-line tools, as Guile modules" msgstr "Befehlszeilenwerkzeuge, als Guile-Module" #. type: cindex #: guix-git/doc/contributing.texi:855 #, no-wrap msgid "command modules" msgstr "Befehlsmodule" #. type: item #: guix-git/doc/contributing.texi:856 #, no-wrap msgid "guix/scripts" msgstr "guix/scripts" #. type: table #: guix-git/doc/contributing.texi:861 msgid "This contains modules corresponding to @command{guix} sub-commands. For example, the @code{(guix scripts shell)} module exports the @code{guix-shell} procedure, which directly corresponds to the @command{guix shell} command (@pxref{Invoking guix shell})." msgstr "Hierin sind Module enthalten, die Unterbefehlen des @command{guix}-Befehls entsprechen. Zum Beispiel exportiert das Modul @code{(guix scripts shell)} die Prozedur @code{guix-shell}, die direkt dem Befehl @command{guix shell} entspricht (siehe @ref{Invoking guix shell})." #. type: cindex #: guix-git/doc/contributing.texi:862 #, no-wrap msgid "importer modules" msgstr "Importer-Module" #. type: item #: guix-git/doc/contributing.texi:863 #, no-wrap msgid "guix/import" msgstr "guix/import" #. type: table #: guix-git/doc/contributing.texi:868 msgid "This contains supporting code for the importers and updaters (@pxref{Invoking guix import}, and @pxref{Invoking guix refresh}). For example, @code{(guix import pypi)} defines the interface to PyPI, which is used by the @code{guix import pypi} command." msgstr "Hierin ist unterstützender Code für die Importer und Aktualisierungsprogramme enthalten (siehe @ref{Invoking guix import} und @ref{Invoking guix refresh}). Zum Beispiel definiert @code{(guix import pypi)} die Schnittstelle zu PyPI, die der Befehl @code{guix import pypi} benutzt." #. type: Plain text #: guix-git/doc/contributing.texi:883 msgid "The directories we have seen so far all live under @file{guix/}. The other important place is the @file{gnu/} directory, which contains primarily package definitions as well as libraries and tools for Guix System (@pxref{System Configuration}) and Guix Home (@pxref{Home Configuration}), all of which build upon functionality provided by @code{(guix @dots{})} modules@footnote{For this reason, @code{(guix @dots{})} modules must generally not depend on @code{(gnu @dots{})} modules, with notable exceptions: @code{(guix build-system @dots{})} modules may look up packages at run time---e.g., @code{(guix build-system cmake)} needs to access the @code{cmake} variable at run time---, @code{(guix scripts @dots{})} often rely on @code{(gnu @dots{})} modules, and the same goes for some of the @code{(guix import @dots{})} modules.}." msgstr "Die bisher vorgestellten Verzeichnisse befinden sich allesamt in @file{guix/}. Der andere wichtige Platz ist das Verzeichnis @file{gnu/}, an dem in erster Linie Paketdefinitionen sowie Bibliotheken und Werkzeuge für Guix System (siehe @ref{System Configuration}) und Guix Home (siehe @ref{Home Configuration}) liegen, die alle auf von @code{(guix …)}-Modulen verfügbar gemachten Funktionalitäten aufbauen@footnote{Aus diesem Grund dürfen @code{(guix …)}-Module allgemein @emph{nicht} von @code{(gnu …)}-Modulen abhängen, mit nennenswerten Ausnahmen: @code{(guix build-system …)}-Module dürfen Pakete zur Laufzeit auflösen, z.B.@: benötigt @code{(guix build-system cmake)} zur Laufzeit Zugriff auf die Variable @code{cmake}, und @code{(guix scripts …)} brauchen oft @code{(gnu …)}-Module, genau wie manche @code{(guix import …)}-Module.}." #. type: cindex #: guix-git/doc/contributing.texi:885 #, no-wrap msgid "package modules" msgstr "Paketmodule" #. type: item #: guix-git/doc/contributing.texi:886 #, no-wrap msgid "gnu/packages" msgstr "gnu/packages" #. type: table #: guix-git/doc/contributing.texi:890 msgid "This is by far the most crowded directory of the source tree: it contains @dfn{package modules} that export package definitions (@pxref{Package Modules}). A few examples:" msgstr "In diesem Verzeichnis kommen bei weitem die meisten Module zusammen, nämlich sind hier @dfn{Paketmodule}, die Paketdefinitionen exportieren (siehe @ref{Package Modules}). Einige Beispiele:" #. type: item #: guix-git/doc/contributing.texi:892 #, no-wrap msgid "(gnu packages base)" msgstr "(gnu packages base)" #. type: table #: guix-git/doc/contributing.texi:895 msgid "Module providing ``base'' packages: @code{glibc}, @code{coreutils}, @code{grep}, etc." msgstr "Module, die grundlegende Pakete bereitstellen: @code{glibc}, @code{coreutils}, @code{grep}, etc." #. type: item #: guix-git/doc/contributing.texi:895 #, no-wrap msgid "(gnu packages guile)" msgstr "(gnu packages guile)" #. type: table #: guix-git/doc/contributing.texi:897 msgid "Guile and core Guile packages." msgstr "Guile und zentrale Guile-Pakete." #. type: item #: guix-git/doc/contributing.texi:897 #, no-wrap msgid "(gnu packages linux)" msgstr "(gnu packages linux)" #. type: table #: guix-git/doc/contributing.texi:899 msgid "The Linux-libre kernel and related packages." msgstr "Der Linux-libre-Kernel und damit zusammenhängende Pakete." #. type: item #: guix-git/doc/contributing.texi:899 #, no-wrap msgid "(gnu packages python)" msgstr "(gnu packages python)" #. type: table #: guix-git/doc/contributing.texi:901 msgid "Python and core Python packages." msgstr "Python und zentrale Python-Pakete." #. type: item #: guix-git/doc/contributing.texi:901 #, no-wrap msgid "(gnu packages python-xyz)" msgstr "(gnu packages python-xyz)" #. type: table #: guix-git/doc/contributing.texi:903 msgid "Miscellaneous Python packages (we were not very creative)." msgstr "Sonstige Python-Pakete (wir waren wenig einfallsreich)." #. type: table #: guix-git/doc/contributing.texi:908 msgid "In any case, you can jump to a package definition using @command{guix edit} (@pxref{Invoking guix edit}) and view its location with @command{guix show} (@pxref{Invoking guix package})." msgstr "Jedenfalls können Sie direkt zu beliebigen Paketdefinitionen navigieren, indem Sie @command{guix edit} benutzen (siehe @ref{Invoking guix edit}), und Sie können die Stelle mit einem Paket finden, indem Sie @command{guix show} aufrufen (siehe @ref{Invoking guix package})." #. type: findex #: guix-git/doc/contributing.texi:909 #, no-wrap msgid "search-patches" msgstr "search-patches" #. type: item #: guix-git/doc/contributing.texi:910 #, no-wrap msgid "gnu/packages/patches" msgstr "gnu/packages/patches" #. type: table #: guix-git/doc/contributing.texi:913 msgid "This directory contains patches applied against packages and obtained using the @code{search-patches} procedure." msgstr "In diesem Verzeichnis befinden sich Patches, die auf Pakete angewandt werden. Auf sie wird mit der Prozedur @code{search-patches} Bezug genommen." #. type: item #: guix-git/doc/contributing.texi:914 #, no-wrap msgid "gnu/services" msgstr "gnu/services" #. type: table #: guix-git/doc/contributing.texi:918 msgid "This contains service definitions, primarily for Guix System (@pxref{Services}) but some of them are adapted and reused for Guix Home as we will see below. Examples:" msgstr "In diesem sind Dienstdefinitionen, vor allem für Guix System (siehe @ref{Services}), wobei manche auch für Guix Home angepasst und wiederverwendet werden, wie wir weiter unten sehen werden. Beispiele:" #. type: item #: guix-git/doc/contributing.texi:920 #, no-wrap msgid "(gnu services)" msgstr "(gnu services)" #. type: table #: guix-git/doc/contributing.texi:923 msgid "The service framework itself, which defines the service and service type data types (@pxref{Service Composition})." msgstr "Der eigentliche Rahmen für Dienste. Dazu werden die Datentypen für Dienst und Diensttyp definiert (siehe @ref{Service Composition})." #. type: item #: guix-git/doc/contributing.texi:923 #, no-wrap msgid "(gnu services base)" msgstr "(gnu services base)" #. type: table #: guix-git/doc/contributing.texi:925 msgid "``Base'' services (@pxref{Base Services})." msgstr "Grundlegende Dienste (siehe @ref{Base Services})." #. type: item #: guix-git/doc/contributing.texi:925 #, no-wrap msgid "(gnu services desktop)" msgstr "(gnu services desktop)" #. type: table #: guix-git/doc/contributing.texi:927 msgid "``Desktop'' services (@pxref{Desktop Services})." msgstr "„Desktop“-Dienste (siehe @ref{Desktop Services})." #. type: item #: guix-git/doc/contributing.texi:927 #, no-wrap msgid "(gnu services shepherd)" msgstr "(gnu services shepherd)" #. type: table #: guix-git/doc/contributing.texi:929 msgid "Support for Shepherd services (@pxref{Shepherd Services})." msgstr "Unterstützung für Shepherd-Dienste (siehe @ref{Shepherd Services})." #. type: table #: guix-git/doc/contributing.texi:934 msgid "You can jump to a service definition using @command{guix system edit} and view its location with @command{guix system search} (@pxref{Invoking guix system})." msgstr "Sie können direkt zu Dienstdefinitionen navigieren, indem Sie @command{guix system edit} benutzen, und Sie können die Stelle mit einem Dienst finden, indem Sie @command{guix system search} aufrufen (siehe @ref{Invoking guix system})." #. type: item #: guix-git/doc/contributing.texi:935 #, no-wrap msgid "gnu/system" msgstr "gnu/system" #. type: table #: guix-git/doc/contributing.texi:937 msgid "These are core Guix System modules, such as:" msgstr "Dort sind für Guix System zentrale Module wie:" #. type: item #: guix-git/doc/contributing.texi:939 #, no-wrap msgid "(gnu system)" msgstr "(gnu system)" #. type: table #: guix-git/doc/contributing.texi:941 msgid "Defines @code{operating-system} (@pxref{operating-system Reference})." msgstr "Definiert @code{operating-system} (siehe @ref{operating-system Reference})." #. type: item #: guix-git/doc/contributing.texi:941 #, no-wrap msgid "(gnu system file-systems)" msgstr "(gnu system file-systems)" #. type: table #: guix-git/doc/contributing.texi:943 msgid "Defines @code{file-system} (@pxref{File Systems})." msgstr "Definiert @code{file-system} (siehe @ref{File Systems})." #. type: item #: guix-git/doc/contributing.texi:943 #, no-wrap msgid "(gnu system mapped-devices)" msgstr "(gnu system mapped-devices)" #. type: table #: guix-git/doc/contributing.texi:945 msgid "Defines @code{mapped-device} (@pxref{Mapped Devices})." msgstr "Definiert @code{mapped-device} (siehe @ref{Mapped Devices})." #. type: item #: guix-git/doc/contributing.texi:947 #, no-wrap msgid "gnu/build" msgstr "gnu/build" #. type: table #: guix-git/doc/contributing.texi:951 msgid "These are modules that are either used on the ``build side'' when building operating systems or packages, or at run time by operating systems." msgstr "Diese Module werden entweder auf „Erstellungsseite“ beim Erstellen von Betriebssystemen oder Paketen benutzt oder zur Laufzeit durch Betriebssysteme." #. type: item #: guix-git/doc/contributing.texi:953 #, no-wrap msgid "(gnu build accounts)" msgstr "(gnu build accounts)" #. type: table #: guix-git/doc/contributing.texi:956 msgid "Creating @file{/etc/passwd}, @file{/etc/shadow}, etc. (@pxref{User Accounts})." msgstr "Erzeugen von @file{/etc/passwd}, @file{/etc/shadow}, etc.@: (siehe @ref{User Accounts})." #. type: item #: guix-git/doc/contributing.texi:956 #, no-wrap msgid "(gnu build activation)" msgstr "(gnu build activation)" #. type: table #: guix-git/doc/contributing.texi:958 msgid "Activating an operating system at boot time or reconfiguration time." msgstr "Ein Betriebssystem aktivieren, wenn der Rechner gestartet oder rekonfiguriert wird." #. type: item #: guix-git/doc/contributing.texi:958 #, no-wrap msgid "(gnu build file-systems)" msgstr "(gnu build file-systems)" #. type: table #: guix-git/doc/contributing.texi:960 msgid "Searching, checking, and mounting file systems." msgstr "Dateisysteme suchen, prüfen und einbinden." #. type: item #: guix-git/doc/contributing.texi:960 #, no-wrap msgid "(gnu build linux-boot)" msgstr "(gnu build linux-boot)" #. type: itemx #: guix-git/doc/contributing.texi:961 #, no-wrap msgid "(gnu build hurd-boot)" msgstr "(gnu build hurd-boot)" #. type: table #: guix-git/doc/contributing.texi:963 msgid "Booting GNU/Linux and GNU/Hurd operating systems." msgstr "Booten von GNU/Linux- und GNU/Hurd-Betriebssystemen." #. type: item #: guix-git/doc/contributing.texi:963 #, no-wrap msgid "(gnu build linux-initrd)" msgstr "(gnu build linux-initrd)" #. type: table #: guix-git/doc/contributing.texi:965 msgid "Creating a Linux initial RAM disk (@pxref{Initial RAM Disk})." msgstr "Erzeugen einer initialen RAM-Disk für Linux (siehe @ref{Initial RAM Disk})." #. type: item #: guix-git/doc/contributing.texi:967 #, no-wrap msgid "gnu/home" msgstr "gnu/home" #. type: table #: guix-git/doc/contributing.texi:970 msgid "This contains all things Guix Home (@pxref{Home Configuration}); examples:" msgstr "Hier ist alles, was mit Guix Home zu tun hat (siehe @ref{Home Configuration}). Beispiele:" #. type: item #: guix-git/doc/contributing.texi:972 #, no-wrap msgid "(gnu home services)" msgstr "(gnu home services)" #. type: table #: guix-git/doc/contributing.texi:974 msgid "Core services such as @code{home-files-service-type}." msgstr "Dienste im Kern von Guix Home wie @code{home-files-service-type}." #. type: item #: guix-git/doc/contributing.texi:974 #, no-wrap msgid "(gnu home services ssh)" msgstr "(gnu home services ssh)" #. type: table #: guix-git/doc/contributing.texi:976 msgid "SSH-related services (@pxref{Secure Shell})." msgstr "Mit SSH zu tun habende Dienste (siehe @ref{Secure Shell})." #. type: item #: guix-git/doc/contributing.texi:978 #, no-wrap msgid "gnu/installer" msgstr "gnu/installer" #. type: table #: guix-git/doc/contributing.texi:981 msgid "This contains the text-mode graphical system installer (@pxref{Guided Graphical Installation})." msgstr "Dies enthält das textuelle grafische Systeminstallationsprogramm (siehe @ref{Guided Graphical Installation})." #. type: item #: guix-git/doc/contributing.texi:982 #, no-wrap msgid "gnu/machine" msgstr "gnu/machine" #. type: table #: guix-git/doc/contributing.texi:985 msgid "These are the @dfn{machine abstractions} used by @command{guix deploy} (@pxref{Invoking guix deploy})." msgstr "Dies sind die @dfn{Maschinenabstraktionen}, die von @command{guix deploy} benutzt werden (siehe @ref{Invoking guix deploy})." #. type: item #: guix-git/doc/contributing.texi:986 #, no-wrap msgid "gnu/tests" msgstr "gnu/tests" #. type: table #: guix-git/doc/contributing.texi:989 msgid "This contains system tests---tests that spawn virtual machines to check that system services work as expected (@pxref{Running the Test Suite})." msgstr "Hier sind Systemtests enthalten, also Tests, die virtuelle Maschinen anlegen, mit denen Sie prüfen, dass sich Systemdienste wie erwartet verhalten (siehe @ref{Running the Test Suite})." #. type: Plain text #: guix-git/doc/contributing.texi:993 msgid "Last, there's also a few directories that contain files that are @emph{not} Guile modules:" msgstr "Zu guter Letzt gibt es noch ein paar Verzeichnisse, in denen Dateien zu finden sind, die @emph{keine} Guile-Module sind:" #. type: item #: guix-git/doc/contributing.texi:995 #, no-wrap msgid "nix" msgstr "nix" #. type: table #: guix-git/doc/contributing.texi:998 msgid "This is the C++ implementation of @command{guix-daemon}, inherited from Nix (@pxref{Invoking guix-daemon})." msgstr "Dies ist die in C++ geschriebene Implementierung des @command{guix-daemon}, die wir von Nix geerbt haben (siehe @ref{Invoking guix-daemon})." #. type: item #: guix-git/doc/contributing.texi:999 #, no-wrap msgid "tests" msgstr "tests" #. type: table #: guix-git/doc/contributing.texi:1003 msgid "These are unit tests, each file corresponding more or less to one module, in particular @code{(guix @dots{})} modules (@pxref{Running the Test Suite})." msgstr "Hier sind Modultests („Unit Tests“), wobei jede Datei ungefähr einem Modul entspricht, insbesondere bei @code{(guix …)}-Modulen (siehe @ref{Running the Test Suite})." #. type: item #: guix-git/doc/contributing.texi:1004 #, no-wrap msgid "doc" msgstr "doc" #. type: table #: guix-git/doc/contributing.texi:1008 msgid "This is the documentation in the form of Texinfo files: this manual and the Cookbook. @xref{Writing a Texinfo File,,, texinfo, GNU Texinfo}, for information on Texinfo markup language." msgstr "Dort befindet sich die Dokumentation in Form von Texinfo-Dateien, d.h.@: dieses Handbuch hier und das Kochbuch. Siehe @ref{Writing a Texinfo File,,, texinfo, GNU Texinfo} für Informationen zur Texinfo-Auszeichnungssprache." #. type: item #: guix-git/doc/contributing.texi:1009 #, no-wrap msgid "po" msgstr "po" #. type: table #: guix-git/doc/contributing.texi:1014 msgid "This is the location of translations of Guix itself, of package synopses and descriptions, of the manual, and of the cookbook. Note that @file{.po} files that live here are pulled directly from Weblate (@pxref{Translating Guix})." msgstr "An diesem Ort sind die Übersetzungen von Guix selbst, von Zusammenfassungen und Beschreibungen der Pakete, vom Handbuch und vom Kochbuch. Beachten Sie, dass die @file{.po}-Dateien hier direkt von Weblate heruntergeladen werden (siehe @ref{Translating Guix})." #. type: item #: guix-git/doc/contributing.texi:1015 #, no-wrap msgid "etc" msgstr "etc" #. type: table #: guix-git/doc/contributing.texi:1018 msgid "Miscellaneous files: shell completions, support for systemd and other init systems, Git hooks, etc." msgstr "Verschiedene Dateien: Shell-Komplettierungen, Dateien zur Unterstützung von systemd und anderen init-Systemen, Git-Hooks usw." #. type: Plain text #: guix-git/doc/contributing.texi:1025 msgid "With all this, a fair chunk of your operating system is at your fingertips! Beyond @command{grep} and @command{git grep}, @pxref{The Perfect Setup} on how to navigate code from your editor, and @pxref{Using Guix Interactively} for information on how to use Scheme modules interactively. Enjoy!" msgstr "Mit diesem Wissen sind Sie in der Lage, ein beachtliches Stück Ihres Betriebssystems anzupassen! Siehe neben @command{grep} und @command{git grep} auch den Abschnitt @ref{The Perfect Setup}, um zu lernen, wie Sie mit Ihrem Editor den Code anpassen, und siehe @ref{Using Guix Interactively}, um zu erfahren, wie Sie mit Scheme-Modulen interaktiv umgehen. Ein Genuss!" #. type: cindex #: guix-git/doc/contributing.texi:1029 #, no-wrap msgid "packages, creating" msgstr "Pakete definieren" #. type: Plain text #: guix-git/doc/contributing.texi:1033 msgid "The GNU distribution is nascent and may well lack some of your favorite packages. This section describes how you can help make the distribution grow." msgstr "Die GNU-Distribution ist noch sehr jung und einige Ihrer Lieblingspakete könnten noch fehlen. Dieser Abschnitt beschreibt, wie Sie dabei helfen können, die Distribution wachsen zu lassen." #. type: Plain text #: guix-git/doc/contributing.texi:1041 msgid "Free software packages are usually distributed in the form of @dfn{source code tarballs}---typically @file{tar.gz} files that contain all the source files. Adding a package to the distribution means essentially two things: adding a @dfn{recipe} that describes how to build the package, including a list of other packages required to build it, and adding @dfn{package metadata} along with that recipe, such as a description and licensing information." msgstr "Pakete mit freier Software werden normalerweise in Form von @dfn{Tarballs mit dem Quellcode} angeboten@tie{}– typischerweise in @file{tar.gz}-Archivdateien, in denen alle Quelldateien enthalten sind. Ein Paket zur Distribution hinzuzufügen, bedeutet also zweierlei Dinge: Zum einen fügt man ein @dfn{Rezept} ein, das beschreibt, wie das Paket erstellt werden kann, einschließlich einer Liste von anderen Paketen, die für diese Erstellung gebraucht werden, zum anderen fügt man @dfn{Paketmetadaten} zum Rezept hinzu, wie zum Beispiel eine Beschreibung und Lizenzinformationen." #. type: Plain text #: guix-git/doc/contributing.texi:1050 msgid "In Guix all this information is embodied in @dfn{package definitions}. Package definitions provide a high-level view of the package. They are written using the syntax of the Scheme programming language; in fact, for each package we define a variable bound to the package definition, and export that variable from a module (@pxref{Package Modules}). However, in-depth Scheme knowledge is @emph{not} a prerequisite for creating packages. For more information on package definitions, @pxref{Defining Packages}." msgstr "In Guix sind all diese Informationen ein Teil der @dfn{Paketdefinitionen}. In Paketdefinitionen hat man eine abstrahierte, hochsprachliche Sicht auf das Paket. Sie werden in der Syntax der Scheme-Programmiersprache verfasst; tatsächlich definieren wir für jedes Paket eine Variable und binden diese an dessen Definition, um die Variable anschließend aus einem Modul heraus zu exportieren (siehe @ref{Package Modules}). Allerdings ist @emph{kein} tiefgehendes Wissen über Scheme erforderlich, um Pakete zu erstellen. Mehr Informationen über Paketdefinitionen finden Sie im Abschnitt @ref{Defining Packages}." #. type: Plain text #: guix-git/doc/contributing.texi:1056 msgid "Once a package definition is in place, stored in a file in the Guix source tree, it can be tested using the @command{guix build} command (@pxref{Invoking guix build}). For example, assuming the new package is called @code{gnew}, you may run this command from the Guix build tree (@pxref{Running Guix Before It Is Installed}):" msgstr "Eine fertige Paketdefinition kann, nachdem sie in eine Datei im Quell-Verzeichnisbaum von Guix eingesetzt wurde, mit Hilfe des Befehls @command{guix build} getestet werden (siehe @ref{Invoking guix build}). Wenn das Paket zum Beispiel den Namen @code{gnew} trägt, können Sie folgenden Befehl aus dem Erstellungs-Verzeichnisbaum von Guix heraus ausführen (siehe @ref{Running Guix Before It Is Installed}):" #. type: example #: guix-git/doc/contributing.texi:1059 #, no-wrap msgid "./pre-inst-env guix build gnew --keep-failed\n" msgstr "./pre-inst-env guix build gnew --keep-failed\n" #. type: Plain text #: guix-git/doc/contributing.texi:1065 msgid "Using @code{--keep-failed} makes it easier to debug build failures since it provides access to the failed build tree. Another useful command-line option when debugging is @code{--log-file}, to access the build log." msgstr "Wenn Sie @code{--keep-failed} benutzen, ist es leichter, fehlgeschlagene Erstellungen zu untersuchen, weil dann der Verzeichnisbaum der fehlgeschlagenen Erstellung zugänglich bleibt. Eine andere nützliche Befehlszeilenoption bei der Fehlersuche ist @code{--log-file}, womit das Erstellungsprotokoll eingesehen werden kann." #. type: Plain text #: guix-git/doc/contributing.texi:1070 msgid "If the package is unknown to the @command{guix} command, it may be that the source file contains a syntax error, or lacks a @code{define-public} clause to export the package variable. To figure it out, you may load the module from Guile to get more information about the actual error:" msgstr "Wenn der @command{guix}-Befehl das Paket nicht erkennt, kann es daran liegen, dass die Quelldatei einen Syntaxfehler hat oder ihr eine @code{define-public}-Klausel fehlt, die die Paketvariable exportiert. Um das herauszufinden, können Sie das Modul aus Guile heraus laden, um mehr Informationen über den tatsächlichen Fehler zu bekommen:" #. type: example #: guix-git/doc/contributing.texi:1073 #, no-wrap msgid "./pre-inst-env guile -c '(use-modules (gnu packages gnew))'\n" msgstr "./pre-inst-env guile -c '(use-modules (gnu packages gnew))'\n" #. type: Plain text #: guix-git/doc/contributing.texi:1080 msgid "Once your package builds correctly, please send us a patch (@pxref{Submitting Patches}). Well, if you need help, we will be happy to help you too. Once the patch is committed in the Guix repository, the new package automatically gets built on the supported platforms by @url{https://@value{SUBSTITUTE-SERVER-1}, our continuous integration system}." msgstr "Sobald Ihr Paket erfolgreich erstellt werden kann, schicken Sie uns bitte einen Patch (siehe @ref{Submitting Patches}). Wenn Sie dabei Hilfe brauchen sollten, helfen wir gerne. Ab dem Zeitpunkt, zu dem der Patch als Commit ins Guix-Repository eingepflegt wurde, wird das neue Paket automatisch durch @url{https://@value{SUBSTITUTE-SERVER-1}, unser System zur Kontinuierlichen Integration} auf allen unterstützten Plattformen erstellt." #. type: cindex #: guix-git/doc/contributing.texi:1081 #, no-wrap msgid "substituter" msgstr "Substituierer" #. type: Plain text #: guix-git/doc/contributing.texi:1088 msgid "Users can obtain the new package definition simply by running @command{guix pull} (@pxref{Invoking guix pull}). When @code{@value{SUBSTITUTE-SERVER-1}} is done building the package, installing the package automatically downloads binaries from there (@pxref{Substitutes}). The only place where human intervention is needed is to review and apply the patch." msgstr "Benutzern steht die neue Paketdefinition zur Verfügung, nachdem sie das nächste Mal @command{guix pull} ausgeführt haben (siehe @ref{Invoking guix pull}). Wenn @code{@value{SUBSTITUTE-SERVER-1}} selbst damit fertig ist, das Paket zu erstellen, werden bei der Installation automatisch Binärdateien von dort heruntergeladen (siehe @ref{Substitutes}). Menschliches Eingreifen muss nur stattfinden, um den Patch zu überprüfen und anzuwenden." #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1106 #: guix-git/doc/contributing.texi:1107 #, no-wrap msgid "Software Freedom" msgstr "Software-Freiheit" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "What may go into the distribution." msgstr "Was in die Distribution aufgenommen werden darf." #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1134 #: guix-git/doc/contributing.texi:1135 #, no-wrap msgid "Package Naming" msgstr "Paketbenennung" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "What's in a name?" msgstr "Was macht einen Namen aus?" #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1167 #: guix-git/doc/contributing.texi:1168 #, no-wrap msgid "Version Numbers" msgstr "Versionsnummern" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "When the name is not enough." msgstr "Wenn der Name noch nicht genug ist." #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1274 #: guix-git/doc/contributing.texi:1275 #, no-wrap msgid "Synopses and Descriptions" msgstr "Zusammenfassungen und Beschreibungen" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "Helping users find the right package." msgstr "Den Nutzern helfen, das richtige Paket zu finden." #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1353 #: guix-git/doc/contributing.texi:1354 #, no-wrap msgid "Snippets versus Phases" msgstr "„Snippets“ oder Phasen" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "Whether to use a snippet, or a build phase." msgstr "Benutzt man Code-Schnipsel oder eine Erstellungsphase?" #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1368 #: guix-git/doc/contributing.texi:1369 #, no-wrap msgid "Cyclic Module Dependencies" msgstr "Zyklische Modulabhängigkeiten" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "Going full circle." msgstr "Sich selbst erkennen lassen." #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1423 #: guix-git/doc/contributing.texi:1424 guix-git/doc/guix.texi:1882 #, no-wrap msgid "Emacs Packages" msgstr "Emacs-Pakete" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "Your Elisp fix." msgstr "Für Ihren Elisp-Bedarf." #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1463 #: guix-git/doc/contributing.texi:1464 #, no-wrap msgid "Python Modules" msgstr "Python-Module" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "A touch of British comedy." msgstr "Ein Touch britischer Comedy." #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1558 #: guix-git/doc/contributing.texi:1559 #, no-wrap msgid "Perl Modules" msgstr "Perl-Module" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "Little pearls." msgstr "Kleine Perlen." #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1574 #: guix-git/doc/contributing.texi:1575 #, no-wrap msgid "Java Packages" msgstr "Java-Pakete" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "Coffee break." msgstr "Kaffeepause." #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1594 #: guix-git/doc/contributing.texi:1595 #, no-wrap msgid "Rust Crates" msgstr "Rust-Crates" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "Beware of oxidation." msgstr "Umgang mit Oxidation." #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1628 #: guix-git/doc/contributing.texi:1629 #, no-wrap msgid "Elm Packages" msgstr "Elm-Pakete" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "Trees of browser code" msgstr "Bäume aus Browser-Code." #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1709 #: guix-git/doc/contributing.texi:1710 #, no-wrap msgid "Fonts" msgstr "Schriftarten" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "Fond of fonts." msgstr "Schriften verschriftlicht." #. type: cindex #: guix-git/doc/contributing.texi:1110 #, no-wrap msgid "free software" msgstr "freie Software" #. type: Plain text #: guix-git/doc/contributing.texi:1118 msgid "The GNU operating system has been developed so that users can have freedom in their computing. GNU is @dfn{free software}, meaning that users have the @url{https://www.gnu.org/philosophy/free-sw.html,four essential freedoms}: to run the program, to study and change the program in source code form, to redistribute exact copies, and to distribute modified versions. Packages found in the GNU distribution provide only software that conveys these four freedoms." msgstr "Das GNU-Betriebssystem wurde entwickelt, um Menschen Freiheit zu ermöglichen, wie sie ihre Rechengeräte benutzen. GNU ist @dfn{freie Software}, was bedeutet, dass Benutzer die @url{https://www.gnu.org/philosophy/free-sw.de.html,vier wesentlichen Freiheiten} haben: das Programm auszuführen, es zu untersuchen, das Programm in Form seines Quellcodes anzupassen und exakte Kopien ebenso wie modifizierte Versionen davon an andere weiterzugeben. Die Pakete, die Sie in der GNU-Distribution finden, stellen ausschließlich solche Software zur Verfügung, die Ihnen diese vier Freiheiten gewährt." #. type: Plain text #: guix-git/doc/contributing.texi:1124 msgid "In addition, the GNU distribution follow the @url{https://www.gnu.org/distros/free-system-distribution-guidelines.html,free software distribution guidelines}. Among other things, these guidelines reject non-free firmware, recommendations of non-free software, and discuss ways to deal with trademarks and patents." msgstr "Außerdem befolgt die GNU-Distribution die @url{https://www.gnu.org/distros/free-system-distribution-guidelines.de.html,Richtlinien für freie Systemverteilungen}. Unter anderem werden unfreie Firmware sowie Empfehlungen von unfreier Software abgelehnt und Möglichkeiten zum Umgang mit Markenzeichen und Patenten werden diskutiert." #. type: Plain text #: guix-git/doc/contributing.texi:1132 msgid "Some otherwise free upstream package sources contain a small and optional subset that violates the above guidelines, for instance because this subset is itself non-free code. When that happens, the offending items are removed with appropriate patches or code snippets in the @code{origin} form of the package (@pxref{Defining Packages}). This way, @code{guix build --source} returns the ``freed'' source rather than the unmodified upstream source." msgstr "Ansonsten freier Paketquellcode von manchen Anbietern enthält einen kleinen und optionalen Teil, der diese Richtlinien verletzt. Zum Beispiel kann dieser Teil selbst unfreier Code sein. Wenn das vorkommt, wird der sie verletzende Teil mit angemessenen Patches oder Code-Schnipseln innerhalb der @code{origin}-Form des Pakets entfernt (siehe @ref{Defining Packages}). Dadurch liefert Ihnen @code{guix build --source} nur den „befreiten“ Quellcode und nicht den unmodifizierten Quellcode des Anbieters." #. type: cindex #: guix-git/doc/contributing.texi:1137 #, no-wrap msgid "package name" msgstr "Paketname" #. type: Plain text #: guix-git/doc/contributing.texi:1145 msgid "A package actually has two names associated with it. First, there is the name of the @emph{Scheme variable}, the one following @code{define-public}. By this name, the package can be made known in the Scheme code, for instance as input to another package. Second, there is the string in the @code{name} field of a package definition. This name is used by package management commands such as @command{guix package} and @command{guix build}." msgstr "Tatsächlich sind mit jedem Paket zwei Namen assoziiert: Zum einen gibt es den Namen der @emph{Scheme-Variablen}, der direkt nach @code{define-public} im Code steht. Mit diesem Namen kann das Paket im Scheme-Code nutzbar gemacht und zum Beispiel als Eingabe eines anderen Pakets benannt werden. Zum anderen gibt es die Zeichenkette im @code{name}-Feld einer Paketdefinition. Dieser Name wird von Paketverwaltungsbefehlen wie @command{guix package} und @command{guix build} benutzt." #. type: Plain text #: guix-git/doc/contributing.texi:1150 msgid "Both are usually the same and correspond to the lowercase conversion of the project name chosen upstream, with underscores replaced with hyphens. For instance, GNUnet is available as @code{gnunet}, and SDL_net as @code{sdl-net}." msgstr "Meistens sind die beiden identisch und ergeben sich aus einer Umwandlung des vom Anbieter verwendeten Projektnamens in Kleinbuchstaben, bei der Unterstriche durch Bindestriche ersetzt werden. Zum Beispiel wird GNUnet unter dem Paketnamen @code{gnunet} angeboten und SDL_net als @code{sdl-net}." #. type: Plain text #: guix-git/doc/contributing.texi:1158 msgid "A noteworthy exception to this rule is when the project name is only a single character, or if an older maintained project with the same name already exists---regardless of whether it has already been packaged for Guix. Use common sense to make such names unambiguous and meaningful. For example, Guix's package for the shell called ``s'' upstream is @code{s-shell} and @emph{not} @code{s}. Feel free to ask your fellow hackers for inspiration." msgstr "Es gibt eine nennenswerte Ausnahme zu dieser Regel, nämlich wenn der Projektname nur ein einzelnes Zeichen ist oder auch wenn es bereits ein älteres, aktives Projekt mit demselben Namen gibt, egal ob es schon für Guix verpackt wurde. Lassen Sie Ihren gesunden Menschenverstand einen eindeutigen und sprechenden Namen auswählen. Zum Beispiel wurde die Shell, die bei ihrem Anbieter „s“ heißt, @code{s-shell} genannt und @emph{nicht} @code{s}. Sie sind eingeladen, Ihre Hackerkollegen um Inspiration zu bitten." #. type: Plain text #: guix-git/doc/contributing.texi:1163 msgid "We do not add @code{lib} prefixes for library packages, unless these are already part of the official project name. But @pxref{Python Modules} and @ref{Perl Modules} for special rules concerning modules for the Python and Perl languages." msgstr "An Bibliothekspakete hängen wir vorne kein @code{lib} als Präfix an, solange es nicht Teil des offiziellen Projektnamens ist. Beachten Sie aber die Abschnitte @ref{Python Modules} und @ref{Perl Modules}, in denen Sonderregeln für Module der Programmiersprachen Python und Perl beschrieben sind." #. type: Plain text #: guix-git/doc/contributing.texi:1165 msgid "Font package names are handled differently, @pxref{Fonts}." msgstr "Auch Pakete mit Schriftarten werden anders behandelt, siehe @ref{Fonts}." #. type: cindex #: guix-git/doc/contributing.texi:1170 #, no-wrap msgid "package version" msgstr "Paketversion" #. type: Plain text #: guix-git/doc/contributing.texi:1179 msgid "We usually package only the latest version of a given free software project. But sometimes, for instance for incompatible library versions, two (or more) versions of the same package are needed. These require different Scheme variable names. We use the name as defined in @ref{Package Naming} for the most recent version; previous versions use the same name, suffixed by @code{-} and the smallest prefix of the version number that may distinguish the two versions." msgstr "Normalerweise stellen wir nur für die neueste Version eines Freie-Software-Projekts ein Paket bereit. Manchmal gibt es allerdings Fälle wie zum Beispiel untereinander inkompatible Bibliotheksversionen, so dass zwei (oder mehr) Versionen desselben Pakets angeboten werden müssen. In diesem Fall müssen wir verschiedene Scheme-Variablennamen benutzen. Wir benutzen dann für die neueste Version den Namen, wie er im Abschnitt @ref{Package Naming} festgelegt wird, und geben vorherigen Versionen denselben Namen mit einem zusätzlichen Suffix aus @code{-} gefolgt vom kürzesten Präfix der Versionsnummer, mit dem noch immer zwei Versionen unterschieden werden können." #. type: Plain text #: guix-git/doc/contributing.texi:1182 msgid "The name inside the package definition is the same for all versions of a package and does not contain any version number." msgstr "Der Name innerhalb der Paketdefinition ist hingegen derselbe für alle Versionen eines Pakets und enthält keine Versionsnummer." #. type: Plain text #: guix-git/doc/contributing.texi:1184 msgid "For instance, the versions 2.24.20 and 3.9.12 of GTK+ may be packaged as follows:" msgstr "Zum Beispiel können für GTK in den Versionen 2.24.20 und 3.9.12 Pakete wie folgt geschrieben werden:" #. type: lisp #: guix-git/doc/contributing.texi:1196 #, no-wrap msgid "" "(define-public gtk+\n" " (package\n" " (name \"gtk+\")\n" " (version \"3.9.12\")\n" " ...))\n" "(define-public gtk+-2\n" " (package\n" " (name \"gtk+\")\n" " (version \"2.24.20\")\n" " ...))\n" msgstr "" "(define-public gtk+\n" " (package\n" " (name \"gtk+\")\n" " (version \"3.9.12\")\n" " …))\n" "(define-public gtk+-2\n" " (package\n" " (name \"gtk+\")\n" " (version \"2.24.20\")\n" " …))\n" #. type: Plain text #: guix-git/doc/contributing.texi:1198 msgid "If we also wanted GTK+ 3.8.2, this would be packaged as" msgstr "Wenn wir auch GTK 3.8.2 wollten, würden wir das Paket schreiben als" #. type: lisp #: guix-git/doc/contributing.texi:1204 #, no-wrap msgid "" "(define-public gtk+-3.8\n" " (package\n" " (name \"gtk+\")\n" " (version \"3.8.2\")\n" " ...))\n" msgstr "" "(define-public gtk+-3.8\n" " (package\n" " (name \"gtk+\")\n" " (version \"3.8.2\")\n" " …))\n" #. type: cindex #: guix-git/doc/contributing.texi:1208 #, no-wrap msgid "version number, for VCS snapshots" msgstr "Versionsnummer, bei Snapshots aus Versionskontrolle" #. type: Plain text #: guix-git/doc/contributing.texi:1214 msgid "Occasionally, we package snapshots of upstream's version control system (VCS) instead of formal releases. This should remain exceptional, because it is up to upstream developers to clarify what the stable release is. Yet, it is sometimes necessary. So, what should we put in the @code{version} field?" msgstr "Gelegentlich fügen wir auch Pakete für Snapshots aus dem Versionskontrollsystem des Anbieters statt formaler Veröffentlichungen zur Distribution hinzu. Das sollte die Ausnahme bleiben, weil die Entwickler selbst klarstellen sollten, welche Version als die stabile Veröffentlichung gelten sollte, ab und zu ist es jedoch notwendig. Was also sollten wir dann im @code{version}-Feld eintragen?" #. type: Plain text #: guix-git/doc/contributing.texi:1222 msgid "Clearly, we need to make the commit identifier of the VCS snapshot visible in the version string, but we also need to make sure that the version string is monotonically increasing so that @command{guix package --upgrade} can determine which version is newer. Since commit identifiers, notably with Git, are not monotonically increasing, we add a revision number that we increase each time we upgrade to a newer snapshot. The resulting version string looks like this:" msgstr "Offensichtlich muss der Bezeichner des Commits, den wir als Snapshot aus dem Versionskontrollsystem nehmen, in der Versionszeichenkette zu erkennen sein, aber wir müssen auch sicherstellen, dass die Version monoton steigend ist, damit @command{guix package --upgrade} feststellen kann, welche Version die neuere ist. Weil Commit-Bezeichner, insbesondere bei Git, nicht monoton steigen, müssen wir eine Revisionsnummer hinzufügen, die wir jedes Mal erhöhen, wenn wir das Paket auf einen neueren Snapshot aktualisieren. Die sich ergebende Versionszeichenkette sieht dann so aus:" #. type: example #: guix-git/doc/contributing.texi:1231 #, no-wrap msgid "" "2.0.11-3.cabba9e\n" " ^ ^ ^\n" " | | `-- upstream commit ID\n" " | |\n" " | `--- Guix package revision\n" " |\n" "latest upstream version\n" msgstr "" "2.0.11-3.cabba9e\n" " ^ ^ ^\n" " | | `-- Commit-ID beim Anbieter\n" " | |\n" " | `--- Revisionsnummer des Guix-Pakets\n" " |\n" "die neueste Version, die der Anbieter veröffentlicht hat\n" #. type: Plain text #: guix-git/doc/contributing.texi:1241 msgid "It is a good idea to strip commit identifiers in the @code{version} field to, say, 7 digits. It avoids an aesthetic annoyance (assuming aesthetics have a role to play here) as well as problems related to OS limits such as the maximum shebang length (127 bytes for the Linux kernel). There are helper functions for doing this for packages using @code{git-fetch} or @code{hg-fetch} (see below). It is best to use the full commit identifiers in @code{origin}s, though, to avoid ambiguities. A typical package definition may look like this:" msgstr "Es ist eine gute Idee, die Commit-Bezeichner im @code{version}-Feld auf, sagen wir, 7 Ziffern zu beschränken. Das sieht besser aus (wenn das hier eine Rolle spielen sollte) und vermeidet Probleme, die mit der maximalen Länge von Shebangs zu tun haben (127 Bytes beim Linux-Kernel). Bei Paketen, die @code{git-fetch} oder @code{hg-fetch} benutzen, können Sie dafür Hilfsfunktionen nutzen (siehe unten). Am besten benutzen Sie in @code{origin}s jedoch den vollständigen Commit-Bezeichner, um Mehrdeutigkeiten zu vermeiden. Eine typische Paketdefinition könnte so aussehen:" #. type: lisp #: guix-git/doc/contributing.texi:1258 #, no-wrap msgid "" "(define my-package\n" " (let ((commit \"c3f29bc928d5900971f65965feaae59e1272a3f7\")\n" " (revision \"1\")) ;Guix package revision\n" " (package\n" " (version (git-version \"0.9\" revision commit))\n" " (source (origin\n" " (method git-fetch)\n" " (uri (git-reference\n" " (url \"git://example.org/my-package.git\")\n" " (commit commit)))\n" " (sha256 (base32 \"1mbikn@dots{}\"))\n" " (file-name (git-file-name name version))))\n" " ;; @dots{}\n" " )))\n" msgstr "" "(define mein-paket\n" " (let ((commit \"c3f29bc928d5900971f65965feaae59e1272a3f7\")\n" " (revision \"1\")) ;Guix-Paketrevision\n" " (package\n" " (version (git-version \"0.9\" revision commit))\n" " (source (origin\n" " (method git-fetch)\n" " (uri (git-reference\n" " (url \"git://example.org/mein-paket.git\")\n" " (commit commit)))\n" " (sha256 (base32 \"1mbikn…\"))\n" " (file-name (git-file-name name version))))\n" " ;; …\n" " )))\n" #. type: deffn #: guix-git/doc/contributing.texi:1260 #, no-wrap msgid "{Procedure} git-version @var{VERSION} @var{REVISION} @var{COMMIT}" msgstr "{Prozedur} git-version @var{VERSION} @var{REVISION} @var{COMMIT}" #. type: deffn #: guix-git/doc/contributing.texi:1262 msgid "Return the version string for packages using @code{git-fetch}." msgstr "Liefert die Zeichenkette für die Version bei Paketen, die @code{git-fetch} benutzen." #. type: lisp #: guix-git/doc/contributing.texi:1266 #, no-wrap msgid "" "(git-version \"0.2.3\" \"0\" \"93818c936ee7e2f1ba1b315578bde363a7d43d05\")\n" "@result{} \"0.2.3-0.93818c9\"\n" msgstr "" "(git-version \"0.2.3\" \"0\" \"93818c936ee7e2f1ba1b315578bde363a7d43d05\")\n" "@result{} \"0.2.3-0.93818c9\"\n" #. type: deffn #: guix-git/doc/contributing.texi:1269 #, no-wrap msgid "{Procedure} hg-version @var{VERSION} @var{REVISION} @var{CHANGESET}" msgstr "{Prozedur} hg-version @var{VERSION} @var{REVISION} @var{ÄNDERUNGSSATZ}" #. type: deffn #: guix-git/doc/contributing.texi:1272 msgid "Return the version string for packages using @code{hg-fetch}. It works in the same way as @code{git-version}." msgstr "Liefert die Zeichenkette für die Version bei Paketen, die @code{hg-fetch} benutzen.<" #. type: cindex #: guix-git/doc/contributing.texi:1277 #, no-wrap msgid "package description" msgstr "Paketbeschreibung" #. type: cindex #: guix-git/doc/contributing.texi:1278 #, no-wrap msgid "package synopsis" msgstr "Paketzusammenfassung" #. type: Plain text #: guix-git/doc/contributing.texi:1285 msgid "As we have seen before, each package in GNU@tie{}Guix includes a synopsis and a description (@pxref{Defining Packages}). Synopses and descriptions are important: They are what @command{guix package --search} searches, and a crucial piece of information to help users determine whether a given package suits their needs. Consequently, packagers should pay attention to what goes into them." msgstr "Wie wir bereits gesehen haben, enthält jedes Paket in GNU@tie{}Guix eine (im Code englischsprachige) Zusammenfassung (englisch: Synopsis) und eine Beschreibung (englisch: Description; siehe @ref{Defining Packages}). Zusammenfassungen und Beschreibungen sind wichtig: Sie werden mit @command{guix package --search} durchsucht und stellen eine entscheidende Informationsquelle für Nutzer dar, die entscheiden wollen, ob das Paket Ihren Bedürfnissen entspricht, daher sollten Paketentwickler achtgeben, was sie dort eintragen." #. type: Plain text #: guix-git/doc/contributing.texi:1293 msgid "Synopses must start with a capital letter and must not end with a period. They must not start with ``a'' or ``the'', which usually does not bring anything; for instance, prefer ``File-frobbing tool'' over ``A tool that frobs files''. The synopsis should say what the package is---e.g., ``Core GNU utilities (file, text, shell)''---or what it is used for---e.g., the synopsis for GNU@tie{}grep is ``Print lines matching a pattern''." msgstr "Zusammenfassungen müssen mit einem Großbuchstaben beginnen und dürfen nicht mit einem Punkt enden. Sie dürfen nicht mit den Artikeln „a“ oder „the“ beginnen, die meistens ohnehin nichts zum Verständnis beitragen. Zum Beispiel sollte „File-frobbing tool“ gegenüber „A tool that frobs files“ vorgezogen werden. Die Zusammenfassung sollte aussagen, um was es sich beim Paket handelt@tie{}– z.B.@: „Core GNU utilities (file, text, shell)“@tie{}–, oder aussagen, wofür es benutzt wird@tie{}– z.B.@: ist die Zusammenfassung für GNU@tie{}grep „Print lines matching a pattern“." #. type: Plain text #: guix-git/doc/contributing.texi:1303 msgid "Keep in mind that the synopsis must be meaningful for a very wide audience. For example, ``Manipulate alignments in the SAM format'' might make sense for a seasoned bioinformatics researcher, but might be fairly unhelpful or even misleading to a non-specialized audience. It is a good idea to come up with a synopsis that gives an idea of the application domain of the package. In this example, this might give something like ``Manipulate nucleotide sequence alignments'', which hopefully gives the user a better idea of whether this is what they are looking for." msgstr "Beachten Sie, dass die Zusammenfassung für eine sehr große Leserschaft einen Sinn ergeben muss. Zum Beispiel würde „Manipulate alignments in the SAM format“ vielleicht von einem erfahrenen Forscher in der Bioinformatik verstanden, könnte für die Nicht-Spezialisten in Guix’ Zielgruppe aber wenig hilfreich sein oder würde diesen sogar eine falsche Vorstellung geben. Es ist eine gute Idee, sich eine Zusammenfassung zu überlegen, die eine Vorstellung von der Anwendungsdomäne des Pakets vermittelt. Im Beispiel hier würden sich die Nutzer mit „Manipulate nucleotide sequence alignments“ hoffentlich ein besseres Bild davon machen können, ob das Paket ist, wonach sie suchen." #. type: Plain text #: guix-git/doc/contributing.texi:1311 msgid "Descriptions should take between five and ten lines. Use full sentences, and avoid using acronyms without first introducing them. Please avoid marketing phrases such as ``world-leading'', ``industrial-strength'', and ``next-generation'', and avoid superlatives like ``the most advanced''---they are not helpful to users looking for a package and may even sound suspicious. Instead, try to be factual, mentioning use cases and features." msgstr "Beschreibungen sollten zwischen fünf und zehn Zeilen lang sein. Benutzen Sie vollständige Sätze und vermeiden Sie Abkürzungen, die Sie nicht zuvor eingeführt haben. Vermeiden Sie bitte Marketing-Phrasen wie „world-leading“ („weltweit führend“), „industrial-strength“ („industrietauglich“) und „next-generation“ („der nächsten Generation“) ebenso wie Superlative wie „the most advanced“ („das fortgeschrittenste“)@tie{}– davon haben Nutzer nichts, wenn sie ein Paket suchen, und es könnte sogar verdächtig klingen. Versuchen Sie stattdessen, bei den Fakten zu bleiben und dabei Anwendungszwecke und Funktionalitäten zu erwähnen." #. type: cindex #: guix-git/doc/contributing.texi:1312 #, no-wrap msgid "Texinfo markup, in package descriptions" msgstr "Texinfo-Auszeichnungen, in Paketbeschreibungen" #. type: Plain text #: guix-git/doc/contributing.texi:1321 msgid "Descriptions can include Texinfo markup, which is useful to introduce ornaments such as @code{@@code} or @code{@@dfn}, bullet lists, or hyperlinks (@pxref{Overview,,, texinfo, GNU Texinfo}). However you should be careful when using some characters for example @samp{@@} and curly braces which are the basic special characters in Texinfo (@pxref{Special Characters,,, texinfo, GNU Texinfo}). User interfaces such as @command{guix show} take care of rendering it appropriately." msgstr "Beschreibungen können wie bei Texinfo ausgezeichneten Text enthalten. Das bedeutet, Text kann Verzierungen wie @code{@@code} oder @code{@@dfn}, Auflistungen oder Hyperlinks enthalten (siehe @ref{Overview,,, texinfo, GNU Texinfo}). Sie sollten allerdings vorsichtig sein, wenn Sie bestimmte Zeichen wie @samp{@@} und geschweifte Klammern schreiben, weil es sich dabei um die grundlegenden Sonderzeichen in Texinfo handelt (siehe @ref{Special Characters,,, texinfo, GNU Texinfo}). Benutzungsschnittstellen wie @command{guix show} kümmern sich darum, solche Auszeichnungen angemessen darzustellen." #. type: Plain text #: guix-git/doc/contributing.texi:1327 msgid "Synopses and descriptions are translated by volunteers @uref{https://translate.fedoraproject.org/projects/guix/packages, at Weblate} so that as many users as possible can read them in their native language. User interfaces search them and display them in the language specified by the current locale." msgstr "Zusammenfassungen und Beschreibungen werden von Freiwilligen @uref{https://translate.fedoraproject.org/projects/guix/packages, bei Weblate} übersetzt, damit so viele Nutzer wie möglich sie in ihrer Muttersprache lesen können. Mit Schnittstellen für Benutzer können sie in der von der aktuell eingestellten Locale festgelegten Sprache durchsucht und angezeigt werden." #. type: Plain text #: guix-git/doc/contributing.texi:1332 msgid "To allow @command{xgettext} to extract them as translatable strings, synopses and descriptions @emph{must be literal strings}. This means that you cannot use @code{string-append} or @code{format} to construct these strings:" msgstr "Damit @command{xgettext} sie als übersetzbare Zeichenketten extrahieren kann, @emph{müssen} Zusammenfassungen und Beschreibungen einfache Zeichenketten-Literale sein. Das bedeutet, dass Sie diese Zeichenketten nicht mit Prozeduren wie @code{string-append} oder @code{format} konstruieren können:" #. type: lisp #: guix-git/doc/contributing.texi:1338 #, no-wrap msgid "" "(package\n" " ;; @dots{}\n" " (synopsis \"This is translatable\")\n" " (description (string-append \"This is \" \"*not*\" \" translatable.\")))\n" msgstr "" "(package\n" " ;; …\n" " (synopsis \"This is translatable\")\n" " (description (string-append \"This is \" \"*not*\" \" translatable.\")))\n" #. type: Plain text #: guix-git/doc/contributing.texi:1346 msgid "Translation is a lot of work so, as a packager, please pay even more attention to your synopses and descriptions as every change may entail additional work for translators. In order to help them, it is possible to make recommendations or instructions visible to them by inserting special comments like this (@pxref{xgettext Invocation,,, gettext, GNU Gettext}):" msgstr "Übersetzen ist viel Arbeit, also passen Sie als Paketentwickler bitte umso mehr auf, wenn Sie Ihre Zusammenfassungen und Beschreibungen formulieren, weil jede Änderung zusätzliche Arbeit für Übersetzer bedeutet. Um den Übersetzern zu helfen, können Sie Empfehlungen und Anweisungen für diese sichtbar machen, indem Sie spezielle Kommentare wie in diesem Beispiel einfügen (siehe @ref{xgettext Invocation,,, gettext, GNU Gettext}):" #. type: lisp #: guix-git/doc/contributing.texi:1351 #, no-wrap msgid "" ";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n" "(description \"ARandR is designed to provide a simple visual front end\n" "for the X11 resize-and-rotate (RandR) extension. @dots{}\")\n" msgstr "" ";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n" "(description \"ARandR is designed to provide a simple visual front end\n" "for the X11 resize-and-rotate (RandR) extension. …\")\n" #. type: cindex #: guix-git/doc/contributing.texi:1356 #, no-wrap msgid "snippets, when to use" msgstr "snippet-Feld, wann man es benutzt" #. type: Plain text #: guix-git/doc/contributing.texi:1367 msgid "The boundary between using an origin snippet versus a build phase to modify the sources of a package can be elusive. Origin snippets are typically used to remove unwanted files such as bundled libraries, nonfree sources, or to apply simple substitutions. The source derived from an origin should produce a source that can be used to build the package on any system that the upstream package supports (i.e., act as the corresponding source). In particular, origin snippets must not embed store items in the sources; such patching should rather be done using build phases. Refer to the @code{origin} record documentation for more information (@pxref{origin Reference})." msgstr "Die Grenze, wann man Code-Schnipsel im @code{origin}-„@code{snippet}“-Feld gegenüber einer Erstellungsphase für Änderungen an den Quelldateien eines Pakets bevorzugen sollte, ist fließend. Schnipsel im Paketursprung werden meistens dazu benutzt, unerwünschte Dateien wie z.B.@: gebündelte Bibliotheken oder unfreie Quelldateien zu entfernen, oder um einfache Textersetzungen durchzuführen. Die Quelle, die sich aus einem Paketursprung ableitet, sollte Quellcode erzeugen, um das Paket auf jedem vom Anbieter unterstützten System zu erstellen (d.h.@: um als dessen „corresponding source“, „korrespondierender Quelltext“, herzuhalten). Insbesondere dürfen Snippets im Paketursprung keine Store-Objekte in den Quelldateien einbetten; solche Anpassungen sollten besser in Erstellungsphasen stattfinden. Schauen Sie in die Dokumentation des @code{origin}-Verbundsobjekts für weitere Informationen (siehe @ref{origin Reference})." #. type: Plain text #: guix-git/doc/contributing.texi:1375 msgid "While there cannot be circular dependencies between packages, Guile's lax module loading mechanism allows circular dependencies between Guile modules, which doesn't cause problems as long as the following conditions are followed for two modules part of a dependency cycle:" msgstr "Es darf zwar keine zyklischen Abhängigkeiten zwischen Paketen geben, aber weil Guile Module erst bei Bedarf lädt, können Sie durchaus zyklische Abhängigkeiten zwischen Guile-Modulen herstellen, ohne Probleme zu verursachen, solange Sie sich an die folgenden Bedingungen für zwei Module in einem Abhängigkeitszyklus halten:" #. type: cindex #: guix-git/doc/contributing.texi:1376 #, no-wrap msgid "rules to cope with circular module dependencies" msgstr "Regeln beim Umgang mit zyklischen Modulabhängigkeiten" #. type: enumerate #: guix-git/doc/contributing.texi:1380 msgid "Macros are not shared between the co-dependent modules" msgstr "Makros von anderen gegenseitig abhängigen Modulen werden @emph{nicht} benutzt." #. type: enumerate #: guix-git/doc/contributing.texi:1384 msgid "Top-level variables are only referenced in delayed (@i{thunked}) package fields: @code{arguments}, @code{native-inputs}, @code{inputs}, @code{propagated-inputs} or @code{replacement}" msgstr "Variable auf oberster Ebene werden nur in verzögert ausgewerteten („delayed“, „thunked“) Paketfeldern eingesetzt, wie: @code{arguments}, @code{native-inputs}, @code{inputs}, @code{propagated-inputs} oder @code{replacement}." #. type: enumerate #: guix-git/doc/contributing.texi:1387 msgid "Procedures referencing top-level variables from another module are not called at the top level of a module themselves." msgstr "Prozeduren, die auf Variable auf der obersten Ebene eines anderen Moduls verweisen, dürfen @emph{nicht} selbst auf oberster Ebene eines Moduls aufgerufen werden." #. type: Plain text #: guix-git/doc/contributing.texi:1393 msgid "Straying away from the above rules may work while there are no dependency cycles between modules, but given such cycles are confusing and difficult to troubleshoot, it is best to follow the rules to avoid introducing problems down the line." msgstr "Jegliches Abweichen von den obigen Regeln kann funktionieren, solange es keine Abhängigkeitszyklen gibt, aber weil solche Zyklen verwirrend sind und die Fehlersuche schwierig ist, befolgt man die Regeln besser grundsätzlich, um uns allen später keine Probleme einzuhandeln." #. type: Plain text #: guix-git/doc/contributing.texi:1396 msgid "Here is a common trap to avoid:" msgstr "Hier sehen Sie eine solche Tücke:" #. type: lisp #: guix-git/doc/contributing.texi:1402 #, no-wrap msgid "" "(define-public avr-binutils\n" " (package\n" " (inherit (cross-binutils \"avr\"))\n" " (name \"avr-binutils\")))\n" msgstr "" "(define-public avr-binutils\n" " (package\n" " (inherit (cross-binutils \"avr\"))\n" " (name \"avr-binutils\")))\n" #. type: Plain text #: guix-git/doc/contributing.texi:1411 msgid "In the above example, the @code{avr-binutils} package was defined in the module @code{(gnu packages avr)}, and the @code{cross-binutils} procedure in @code{(gnu packages cross-base)}. Because the @code{inherit} field is not delayed (thunked), it is evaluated at the top level at load time, which is problematic in the presence of module dependency cycles. This could be resolved by turning the package into a procedure instead, like:" msgstr "Im Beispiel oben wurde das Paket @code{avr-binutils} im Modul @code{(gnu packages avr)} definiert und die Prozedur @code{cross-binutils} in @code{(gnu packages cross-base)}. Weil das @code{inherit}-Feld @emph{nicht} verzögert (delayed, thunked) ist, wird es auf oberster Ebene ausgewertet, sobald es geladen wird, und das ist problematisch, wenn die Module einen Abhängigkeitszyklus bilden. Stattdessen kann man das Paket als Prozedur definieren, etwa so:" #. type: lisp #: guix-git/doc/contributing.texi:1417 #, no-wrap msgid "" "(define (make-avr-binutils)\n" " (package\n" " (inherit (cross-binutils \"avr\"))\n" " (name \"avr-binutils\")))\n" msgstr "" "(define (make-avr-binutils)\n" " (package\n" " (inherit (cross-binutils \"avr\"))\n" " (name \"avr-binutils\")))\n" #. type: Plain text #: guix-git/doc/contributing.texi:1422 msgid "Care would need to be taken to ensure the above procedure is only ever used in a package delayed fields or within another procedure also not called at the top level." msgstr "Vorsicht wäre dann geboten, dass die obige Prozedur ebenfalls nur in verzögert ausgewerteten Feldern oder in Prozeduren benutzt werden darf, die auch @emph{nicht} auf oberster Ebene aufgerufen werden." #. type: cindex #: guix-git/doc/contributing.texi:1426 #, no-wrap msgid "emacs, packaging" msgstr "emacs, Pakete dafür schreiben" #. type: cindex #: guix-git/doc/contributing.texi:1427 #, no-wrap msgid "elisp, packaging" msgstr "elisp, Pakete dafür schreiben" #. type: Plain text #: guix-git/doc/contributing.texi:1439 msgid "Emacs packages should preferably use the Emacs build system (@pxref{emacs-build-system}), for uniformity and the benefits provided by its build phases, such as the auto-generation of the autoloads file and the byte compilation of the sources. Because there is no standardized way to run a test suite for Emacs packages, tests are disabled by default. When a test suite is available, it should be enabled by setting the @code{#:tests?} argument to @code{#true}. By default, the command to run the test is @command{make check}, but any command can be specified via the @code{#:test-command} argument. The @code{#:test-command} argument expects a list containing a command and its arguments, to be invoked during the @code{check} phase." msgstr "Für Emacs-Pakete sollte man bevorzugt das Emacs-Erstellungssystem benutzen (siehe @ref{emacs-build-system}), wegen der Einheitlichkeit und der Vorteile durch seine Erstellungsphasen. Dazu gehören das automatische Erzeugen der Autoloads-Datei und das Kompilieren des Quellcodes zu Bytecode (Byte Compilation). Weil es keinen Standard gibt, wie ein Testkatalog eines Emacs-Pakets ausgeführt wird, sind Tests nach Vorgabe abgeschaltet. Wenn es einen Testkatalog gibt, sollte er aktiviert werden, indem Sie das Argument @code{#:tests?} auf @code{#true} setzen. Vorgegeben ist, die Tests mit dem Befehl @command{make check} auszuführen, aber mit dem Argument @code{#:test-command} kann ein beliebiger anderer Befehl festgelegt werden. Für das Argument @code{#:test-command} wird eine Liste aus dem Befehl und den Argumenten an den Befehl erwartet. Er wird während der @code{check}-Phase aufgerufen." #. type: Plain text #: guix-git/doc/contributing.texi:1444 msgid "The Elisp dependencies of Emacs packages are typically provided as @code{propagated-inputs} when required at run time. As for other packages, build or test dependencies should be specified as @code{native-inputs}." msgstr "Die Elisp-Abhängigkeiten von Emacs-Paketen werden typischerweise als @code{propagated-inputs} bereitgestellt, wenn sie zur Laufzeit benötigt werden. Wie bei anderen Paketen sollten Abhängigkeiten zum Erstellen oder Testen als @code{native-inputs} angegeben werden." #. type: Plain text #: guix-git/doc/contributing.texi:1453 msgid "Emacs packages sometimes depend on resources directories that should be installed along the Elisp files. The @code{#:include} argument can be used for that purpose, by specifying a list of regexps to match. The best practice when using the @code{#:include} argument is to extend rather than override its default value (accessible via the @code{%default-include} variable). As an example, a yasnippet extension package typically include a @file{snippets} directory, which could be copied to the installation directory using:" msgstr "Manchmal hängen Emacs-Pakete von Ressourcenverzeichnissen ab, die zusammen mit den Elisp-Dateien installiert werden sollten. Diese lassen sich mit dem Argument @code{#:include} kennzeichnen, indem eine Liste dazu passender regulärer Ausdrücke angegeben wird. Idealerweise ergänzen Sie den Vorgabewert des @code{#:include}-Arguments (aus der Variablen @code{%default-include}), statt ihn zu ersetzen. Zum Beispiel enthält ein yasnippet-Erweiterungspaket typischerweise ein @file{snippets}-Verzeichnis, das wie folgt in das Installationsverzeichnis kopiert werden könnte:" #. type: lisp #: guix-git/doc/contributing.texi:1456 #, no-wrap msgid "#:include (cons \"^snippets/\" %default-include)\n" msgstr "#:include (cons \"^snippets/\" %default-include)\n" #. type: Plain text #: guix-git/doc/contributing.texi:1462 msgid "When encountering problems, it is wise to check for the presence of the @code{Package-Requires} extension header in the package main source file, and whether any dependencies and their versions listed therein are satisfied." msgstr "Wenn Sie auf Probleme stoßen, ist es ratsam, auf eine Kopfzeile @code{Package-Requires} in der Hauptquellcodedatei des Pakets zu achten, ob allen Abhängigkeiten und deren dort gelisteten Versionen genügt wird." #. type: cindex #: guix-git/doc/contributing.texi:1466 #, no-wrap msgid "python" msgstr "python" #. type: Plain text #: guix-git/doc/contributing.texi:1472 msgid "We currently package Python 2 and Python 3, under the Scheme variable names @code{python-2} and @code{python} as explained in @ref{Version Numbers}. To avoid confusion and naming clashes with other programming languages, it seems desirable that the name of a package for a Python module contains the word @code{python}." msgstr "Zurzeit stellen wir ein Paket für Python 2 und eines für Python 3 jeweils über die Scheme-Variablen mit den Namen @code{python-2} und @code{python} zur Verfügung, entsprechend der Erklärungen im Abschnitt @ref{Version Numbers}. Um Verwirrungen und Namenskollisionen mit anderen Programmiersprachen zu vermeiden, erscheint es als wünschenswert, dass der Name eines Pakets für ein Python-Modul auch das Wort @code{python} enthält." #. type: Plain text #: guix-git/doc/contributing.texi:1478 msgid "Some modules are compatible with only one version of Python, others with both. If the package Foo is compiled with Python 3, we name it @code{python-foo}. If it is compiled with Python 2, we name it @code{python2-foo}. Python 2 packages are being removed from the distribution; please do no not submit any new Python 2 packages." msgstr "Manche Module sind nur mit einer Version von Python kompatibel, andere mit beiden. Wenn das Paket Foo mit Python 3 kompiliert wird, geben wir ihm den Namen @code{python-foo}. Wenn es mit Python 2 kompiliert wird, wählen wir den Namen @code{python2-foo}. Wir sind dabei, Python-2-Pakete aus der Distribution zu entfernen; bitte reichen Sie keine neuen Python-2-Pakete mehr ein." #. type: Plain text #: guix-git/doc/contributing.texi:1484 msgid "If a project already contains the word @code{python}, we drop this; for instance, the module python-dateutil is packaged under the names @code{python-dateutil} and @code{python2-dateutil}. If the project name starts with @code{py} (e.g.@: @code{pytz}), we keep it and prefix it as described above." msgstr "Wenn ein Projekt bereits das Wort @code{python} im Namen hat, lassen wir es weg; zum Beispiel ist das Modul python-dateutil unter den Namen @code{python-dateutil} und @code{python2-dateutil} verfügbar. Wenn der Projektname mit @code{py} beginnt (z.B.@: @code{pytz}), behalten wir ihn bei und stellen das oben beschriebene Präfix voran." #. type: quotation #: guix-git/doc/contributing.texi:1498 msgid "Currently there are two different build systems for Python packages in Guix: @var{python-build-system} and @var{pyproject-build-system}. For the longest time, Python packages were built from an informally specified @file{setup.py} file. That worked amazingly well, considering Python's success, but was difficult to build tooling around. As a result, a host of alternative build systems emerged and the community eventually settled on a @url{https://peps.python.org/pep-0517/, formal standard} for specifying build requirements. @var{pyproject-build-system} is Guix's implementation of this standard. It is considered ``experimental'' in that it does not yet support all the various PEP-517 @emph{build backends}, but you are encouraged to try it for new Python packages and report any problems. It will eventually be deprecated and merged into @var{python-build-system}." msgstr "Im Moment sind gleich zwei verschiedene Erstellungssysteme für Python-Pakete in Guix in Umlauf: @var{python-build-system} und @var{pyproject-build-system}. Lange Zeit hat man sein Python-Paket aus einer Datei @file{setup.py} heraus erstellt, deren gewachsene Struktur @emph{nicht} formell festgelegt war. Das lief überraschend gut, wenn man sich den Erfolg von Python anschaut, allerdings ließen sich nur schwer Werkzeuge zur Handhabung schreiben. Daraus ergab sich eine Vielzahl alternativer Erstellungssysteme, bis sich die Gemeinschaft auf einen @url{https://peps.python.org/pep-0517/, formellen Standard} zum Festlegen der Erstellungsanforderungen geeinigt hatte. @var{pyproject-build-system} ist die Implementierung dieses Standards in Guix. Wir stufen es als „experimentell“ ein, insofern als dass es noch nicht all die @emph{Build Backends} für PEP-517 unterstützt. Dennoch würden wir es begrüßen, wenn Sie es für neue Python-Pakete verwenden und Probleme melden würden. Schlussendlich wird es für veraltet erklärt werden und in @var{python-build-system} aufgehen." #. type: subsubsection #: guix-git/doc/contributing.texi:1500 #, no-wrap msgid "Specifying Dependencies" msgstr "Abhängigkeiten angeben" #. type: cindex #: guix-git/doc/contributing.texi:1501 #, no-wrap msgid "inputs, for Python packages" msgstr "Eingaben, für Python-Pakete" #. type: Plain text #: guix-git/doc/contributing.texi:1508 msgid "Dependency information for Python packages is usually available in the package source tree, with varying degrees of accuracy: in the @file{pyproject.toml} file, the @file{setup.py} file, in @file{requirements.txt}, or in @file{tox.ini} (the latter mostly for test dependencies)." msgstr "Informationen über Abhängigkeiten von Python-Paketen, welche mal mehr und mal weniger stimmen, finden sich normalerweise im Verzeichnisbaum des Paketquellcodes: in der Datei @file{pyproject.toml}, der Datei @file{setup.py}, in @file{requirements.txt} oder in @file{tox.ini} (letztere beherbergt hauptsächlich Abhängigkeiten für Tests)." #. type: Plain text #: guix-git/doc/contributing.texi:1514 msgid "Your mission, when writing a recipe for a Python package, is to map these dependencies to the appropriate type of ``input'' (@pxref{package Reference, inputs}). Although the @code{pypi} importer normally does a good job (@pxref{Invoking guix import}), you may want to check the following check list to determine which dependency goes where." msgstr "Wenn Sie ein Rezept für ein Python-Paket schreiben, lautet Ihr Auftrag, diese Abhängigkeiten auf angemessene Arten von „Eingaben“ abzubilden (siehe @ref{package Reference, Eingaben}). Obwohl der @code{pypi}-Importer hier normalerweise eine gute Arbeit leistet (siehe @ref{Invoking guix import}), könnten Sie die folgende Prüfliste durchgehen wollen, um zu bestimmen, wo welche Abhängigkeit eingeordnet werden sollte." #. type: itemize #: guix-git/doc/contributing.texi:1521 msgid "We currently package Python with @code{setuptools} and @code{pip} installed per default. This is about to change, and users are encouraged to use @code{python-toolchain} if they want a build environment for Python." msgstr "Derzeit ist unser Python-Paket so geschrieben, dass es @code{setuptools} und @code{pip} mitinstalliert. Das wird sich bald ändern und wir möchten unseren Nutzern nahelegen, für Python-Entwicklungsumgebungen @code{python-toolchain} zu verwenden." #. type: itemize #: guix-git/doc/contributing.texi:1524 msgid "@command{guix lint} will warn if @code{setuptools} or @code{pip} are added as native-inputs because they are generally not necessary." msgstr "@command{guix lint} wird Sie mit einer Warnung darauf aufmerksam machen, wenn @code{setuptools} oder @code{pip} zu den nativen Eingaben hinzugefügt wurden, weil man im Allgemeinen keines der beiden anzugeben braucht." #. type: itemize #: guix-git/doc/contributing.texi:1530 msgid "Python dependencies required at run time go into @code{propagated-inputs}. They are typically defined with the @code{install_requires} keyword in @file{setup.py}, or in the @file{requirements.txt} file." msgstr "Python-Abhängigkeiten, die zur Laufzeit gebraucht werden, stehen im @code{propagated-inputs}-Feld. Solche werden typischerweise mit dem Schlüsselwort @code{install_requires} in @file{setup.py} oder in der Datei @file{requirements.txt} definiert." #. type: itemize #: guix-git/doc/contributing.texi:1539 msgid "Python packages required only at build time---e.g., those listed under @code{build-system.requires} in @file{pyproject.toml} or with the @code{setup_requires} keyword in @file{setup.py}---or dependencies only for testing---e.g., those in @code{tests_require} or @file{tox.ini}---go into @code{native-inputs}. The rationale is that (1) they do not need to be propagated because they are not needed at run time, and (2) in a cross-compilation context, it's the ``native'' input that we'd want." msgstr "Python-Pakete, die nur zur Erstellungszeit gebraucht werden@tie{}– z.B.@: jene, die in @file{pyproject.toml} unter @code{build-system.requires} stehen oder die mit dem Schlüsselwort @code{setup_requires} in @file{setup.py} aufgeführt sind@tie{}– oder Abhängigkeiten, die nur zum Testen gebraucht werden@tie{}– also die in @code{tests_require} oder in der @file{tox.ini}@tie{}–, schreibt man in @code{native-inputs}. Die Begründung ist, dass (1) sie nicht propagiert werden müssen, weil sie zur Laufzeit nicht gebraucht werden, und (2) wir beim Cross-Kompilieren die „native“ Eingabe des Wirtssystems wollen." #. type: itemize #: guix-git/doc/contributing.texi:1543 msgid "Examples are the @code{pytest}, @code{mock}, and @code{nose} test frameworks. Of course if any of these packages is also required at run-time, it needs to go to @code{propagated-inputs}." msgstr "Beispiele sind die Testrahmen @code{pytest}, @code{mock} und @code{nose}. Wenn natürlich irgendeines dieser Pakete auch zur Laufzeit benötigt wird, muss es doch in @code{propagated-inputs} stehen." #. type: itemize #: guix-git/doc/contributing.texi:1548 msgid "Anything that does not fall in the previous categories goes to @code{inputs}, for example programs or C libraries required for building Python packages containing C extensions." msgstr "Alles, was nicht in die bisher genannten Kategorien fällt, steht in @code{inputs}, zum Beispiel Programme oder C-Bibliotheken, die zur Erstellung von Python-Paketen mit enthaltenen C-Erweiterungen gebraucht werden." #. type: itemize #: guix-git/doc/contributing.texi:1554 msgid "If a Python package has optional dependencies (@code{extras_require}), it is up to you to decide whether to add them or not, based on their usefulness/overhead ratio (@pxref{Submitting Patches, @command{guix size}})." msgstr "Wenn ein Python-Paket optionale Abhängigkeiten hat (@code{extras_require}), ist es Ihnen überlassen, sie hinzuzufügen oder nicht hinzuzufügen, je nachdem wie es um deren Verhältnis von Nützlichkeit zu anderen Nachteilen steht (siehe @ref{Submitting Patches, @command{guix size}})." #. type: cindex #: guix-git/doc/contributing.texi:1561 #, no-wrap msgid "perl" msgstr "perl" #. type: Plain text #: guix-git/doc/contributing.texi:1572 msgid "Perl programs standing for themselves are named as any other package, using the lowercase upstream name. For Perl packages containing a single class, we use the lowercase class name, replace all occurrences of @code{::} by dashes and prepend the prefix @code{perl-}. So the class @code{XML::Parser} becomes @code{perl-xml-parser}. Modules containing several classes keep their lowercase upstream name and are also prepended by @code{perl-}. Such modules tend to have the word @code{perl} somewhere in their name, which gets dropped in favor of the prefix. For instance, @code{libwww-perl} becomes @code{perl-libwww}." msgstr "Eigenständige Perl-Programme bekommen einen Namen wie jedes andere Paket, unter Nutzung des Namens beim Anbieter in Kleinbuchstaben. Für Perl-Pakete, die eine einzelne Klasse enthalten, ersetzen wir alle Vorkommen von @code{::} durch Striche und hängen davor das Präfix @code{perl-} an. Die Klasse @code{XML::Parser} wird also zu @code{perl-xml-parser}. Module, die mehrere Klassen beinhalten, behalten ihren Namen beim Anbieter, in Kleinbuchstaben gesetzt, und auch an sie wird vorne das Präfix @code{perl-} angehängt. Es gibt die Tendenz, solche Module mit dem Wort @code{perl} irgendwo im Namen zu versehen, das wird zu Gunsten des Präfixes weggelassen. Zum Beispiel wird aus @code{libwww-perl} bei uns @code{perl-libwww}." #. type: cindex #: guix-git/doc/contributing.texi:1577 #, no-wrap msgid "java" msgstr "java" #. type: Plain text #: guix-git/doc/contributing.texi:1580 msgid "Java programs standing for themselves are named as any other package, using the lowercase upstream name." msgstr "Eigenständige Java-Programme werden wie jedes andere Paket benannt, d.h.@: mit ihrem in Kleinbuchstaben geschriebenen Namen beim Anbieter." #. type: Plain text #: guix-git/doc/contributing.texi:1586 msgid "To avoid confusion and naming clashes with other programming languages, it is desirable that the name of a package for a Java package is prefixed with @code{java-}. If a project already contains the word @code{java}, we drop this; for instance, the package @code{ngsjava} is packaged under the name @code{java-ngs}." msgstr "Um Verwirrungen und Namenskollisionen mit anderen Programmiersprachen zu vermeiden, ist es wünschenswert, dass dem Namem eines Pakets zu einem Java-Paket das Präfix @code{java-} vorangestellt wird. Wenn ein Projekt bereits das Wort @code{java} im Namen trägt, lassen wir es weg; zum Beispiel befindet sich das Java-Paket @code{ngsjava} in einem Paket namens @code{java-ngs}." #. type: Plain text #: guix-git/doc/contributing.texi:1592 msgid "For Java packages containing a single class or a small class hierarchy, we use the lowercase class name, replace all occurrences of @code{.} by dashes and prepend the prefix @code{java-}. So the class @code{apache.commons.cli} becomes package @code{java-apache-commons-cli}." msgstr "Bei Java-Paketen, die eine einzelne Klasse oder eine kleine Klassenhierarchie enthalten, benutzen wir den Klassennamen in Kleinbuchstaben und ersetzen dabei alle Vorkommen von @code{.} durch Striche und setzen das Präfix @code{java-} davor. Die Klasse @code{apache.commons.cli} wird also zum Paket @code{java-apache-commons-cli}." #. type: cindex #: guix-git/doc/contributing.texi:1597 #, no-wrap msgid "rust" msgstr "rust" #. type: Plain text #: guix-git/doc/contributing.texi:1600 msgid "Rust programs standing for themselves are named as any other package, using the lowercase upstream name." msgstr "Eigenständige Rust-Programme werden wie jedes andere Paket benannt, d.h.@: mit ihrem in Kleinbuchstaben geschriebenen Namen beim Anbieter." #. type: Plain text #: guix-git/doc/contributing.texi:1604 msgid "To prevent namespace collisions we prefix all other Rust packages with the @code{rust-} prefix. The name should be changed to lowercase as appropriate and dashes should remain in place." msgstr "Um Namensraumkollisionen vorzubeugen, versehen wir alle anderen Rust-Pakete mit dem Präfix @code{rust-}. Der Name sollte wie sonst in Kleinbuchstaben geschrieben werden und Bindestriche dort bleiben, wo sie sind." #. type: Plain text #: guix-git/doc/contributing.texi:1610 msgid "In the rust ecosystem it is common for multiple incompatible versions of a package to be used at any given time, so all package definitions should have a versioned suffix. The versioned suffix is the left-most non-zero digit (and any leading zeros, of course). This follows the ``caret'' version scheme intended by Cargo. Examples@: @code{rust-clap-2}, @code{rust-rand-0.6}." msgstr "Im Rust-Ökosystem werden oft mehrere inkompatible Versionen desselben Pakets gleichzeitig benutzt, daher sollte allen Paketdefinitionen ein die Version angebendes Suffix gegeben werden. Das Versionssuffix besteht aus der am weitesten links stehenden Ziffer, die @emph{nicht} null ist (natürlich mit allen führenden Nullen). Dabei folgen wir dem von Cargo gewollten „Caret“-Versionsschema. Beispiele: @code{rust-clap-2}, @code{rust-rand-0.6}." #. type: Plain text #: guix-git/doc/contributing.texi:1620 msgid "Because of the difficulty in reusing rust packages as pre-compiled inputs for other packages the Cargo build system (@pxref{Build Systems, @code{cargo-build-system}}) presents the @code{#:cargo-inputs} and @code{cargo-development-inputs} keywords as build system arguments. It would be helpful to think of these as similar to @code{propagated-inputs} and @code{native-inputs}. Rust @code{dependencies} and @code{build-dependencies} should go in @code{#:cargo-inputs}, and @code{dev-dependencies} should go in @code{#:cargo-development-inputs}. If a Rust package links to other libraries then the standard placement in @code{inputs} and the like should be used." msgstr "Weil die Verwendung von Rust-Paketen als vorab kompilierte Eingaben für andere Pakete besondere Schwierigkeiten macht, gibt es im Cargo-Erstellungssystem (siehe @ref{Build Systems, @code{cargo-build-system}}) die Schlüsselwörter @code{#:cargo-inputs} und @code{#:cargo-development-inputs} als Argumente an das Erstellungssystem. Es ist hilfreich, sie sich ähnlich wie @code{propagated-inputs} und @code{native-inputs} vorzustellen. Was in Rust @code{dependencies} und @code{build-dependencies} sind, sollte unter @code{#:cargo-inputs} aufgeführt werden, während @code{dev-dependencies} zu den @code{#:cargo-development-inputs} gehören. Wenn ein Rust-Paket andere Bibliotheken einbindet, gilt die normale Einordnung in @code{inputs} usw.@: wie anderswo auch." #. type: Plain text #: guix-git/doc/contributing.texi:1626 msgid "Care should be taken to ensure the correct version of dependencies are used; to this end we try to refrain from skipping the tests or using @code{#:skip-build?} when possible. Of course this is not always possible, as the package may be developed for a different Operating System, depend on features from the Nightly Rust compiler, or the test suite may have atrophied since it was released." msgstr "Man sollte aufpassen, dass man die richtige Version von Abhängigkeiten benutzt. Deswegen versuchen wir, Tests nicht mit @code{#:skip-build?} zu überspringen, wenn es möglich ist. Natürlich geht das nicht immer, vielleicht weil das Paket für ein anderes Betriebssystem entwickelt wurde, Funktionalitäten der allerneuesten „Nightly“-Version des Rust-Compilers voraussetzt oder weil der Testkatalog seit seiner Veröffentlichung verkümmert ist." #. type: cindex #: guix-git/doc/contributing.texi:1631 #, no-wrap msgid "Elm" msgstr "Elm" #. type: Plain text #: guix-git/doc/contributing.texi:1634 msgid "Elm applications can be named like other software: their names need not mention Elm." msgstr "Sie dürfen Elm-Anwendungen Namen geben wie bei anderer Software: Elm muss @emph{nicht} im Namen vorkommen." #. type: Plain text #: guix-git/doc/contributing.texi:1640 msgid "Packages in the Elm sense (see @code{elm-build-system} under @ref{Build Systems}) are required use names of the format @var{author}@code{/}@var{project}, where both the @var{author} and the @var{project} may contain hyphens internally, and the @var{author} sometimes contains uppercase letters." msgstr "Die Namen dessen, was bei Elm als Paket bekannt ist (siehe @code{elm-build-system} im Unterabschnitt @ref{Build Systems}), müssen dagegen diesem Format folgen: @var{Autor}@code{/}@var{Projekt}, wo sowohl im @var{Autor} als auch im @var{Projekt} Bindestriche vorkommen können, und manchmal im @var{Autor} sogar Großbuchstaben enthalten sind." #. type: Plain text #: guix-git/doc/contributing.texi:1644 msgid "To form the Guix package name from the upstream name, we follow a convention similar to Python packages (@pxref{Python Modules}), adding an @code{elm-} prefix unless the name would already begin with @code{elm-}." msgstr "Um daraus einen Guix-Paketnamen zu bilden, folgen wir einer ähnlichen Konvention wie bei Python-Paketen (siehe @ref{Python Modules}), d.h.@: vorne kommt ein Präfix @code{elm-}, außer der Name beginnt ohnehin mit @code{elm-}." #. type: Plain text #: guix-git/doc/contributing.texi:1651 msgid "In many cases we can reconstruct an Elm package's upstream name heuristically, but, since conversion to a Guix-style name involves a loss of information, this is not always possible. Care should be taken to add the @code{'upstream-name} property when necessary so that @samp{guix import elm} will work correctly (@pxref{Invoking guix import}). The most notable scenarios when explicitly specifying the upstream name is necessary are:" msgstr "In vielen Fällen lässt sich der Name eines Elm-Pakets, den es beim Anbieter trägt, heuristisch rekonstruieren, aber @emph{nicht} immer, denn bei der Umwandlung in einen Namen im Guix-Stil geht Information verloren. Also achten Sie darauf, in solchen Fällen eine Eigenschaft @code{'upstream-name} anzugeben, damit @samp{guix import elm} funktionieren kann (siehe @ref{Invoking guix import}). Insbesondere ist es nötig, den Namen beim Anbieter ausdrücklich anzugeben, wenn:" #. type: enumerate #: guix-git/doc/contributing.texi:1656 msgid "When the @var{author} is @code{elm} and the @var{project} contains one or more hyphens, as with @code{elm/virtual-dom}; and" msgstr "Der @var{Autor} gleich @code{elm} ist und in @var{Projekt} ein oder mehrere Bindestriche auftauchen, wie bei @code{elm/virtual-dom}, oder wenn" #. type: enumerate #: guix-git/doc/contributing.texi:1663 msgid "When the @var{author} contains hyphens or uppercase letters, as with @code{Elm-Canvas/raster-shapes}---unless the @var{author} is @code{elm-explorations}, which is handled as a special case, so packages like @code{elm-explorations/markdown} do @emph{not} need to use the @code{'upstream-name} property." msgstr "In @var{Autor} Bindestriche oder Großbuchstaben auftauchen, z.B.@: @code{Elm-Canvas/raster-shapes}@tie{}– sofern @var{Autor} nicht @code{elm-explorations} ist, was eine Sonderbehandlung bekommt, so dass Pakete wie @code{elm-explorations/markdown} die Eigenschaft @code{'upstream-name} @emph{nicht} zu haben brauchen." #. type: Plain text #: guix-git/doc/contributing.texi:1667 msgid "The module @code{(guix build-system elm)} provides the following utilities for working with names and related conventions:" msgstr "Im Modul @code{(guix build-system elm)} finden Sie folgende Werkzeuge, mit denen Sie mit den Konventionen für Namen und Ähnliches umgehen können:" #. type: deffn #: guix-git/doc/contributing.texi:1668 #, no-wrap msgid "{Procedure} elm-package-origin @var{elm-name} @var{version} @" msgstr "{Prozedur} elm-package-origin @var{Elm-Name} @var{Version} @" #. type: deffn #: guix-git/doc/contributing.texi:1673 msgid "@var{hash} Returns a Git origin using the repository naming and tagging regime required for a published Elm package with the upstream name @var{elm-name} at version @var{version} with sha256 checksum @var{hash}." msgstr "@var{Hash} Liefert einen Git-Paketursprung nach den Regeln für Repository-Name und Tags, die für öffentliche Elm-Pakete vorgeschrieben sind. Der Name für den Paketursprung ergibt sich aus @var{Elm-Name}, das ist der Name beim Anbieter, mit der Version @var{Version} und SHA256-Prüfsumme @var{Hash}." #. type: deffn #: guix-git/doc/contributing.texi:1675 guix-git/doc/guix.texi:37141 #: guix-git/doc/guix.texi:41339 msgid "For example:" msgstr "Zum Beispiel:" #. type: lisp #: guix-git/doc/contributing.texi:1685 #, no-wrap msgid "" "(package\n" " (name \"elm-html\")\n" " (version \"1.0.0\")\n" " (source\n" " (elm-package-origin\n" " \"elm/html\"\n" " version\n" " (base32 \"15k1679ja57vvlpinpv06znmrxy09lbhzfkzdc89i01qa8c4gb4a\")))\n" " ...)\n" msgstr "" "(package\n" " (name \"elm-html\")\n" " (version \"1.0.0\")\n" " (source\n" " (elm-package-origin\n" " \"elm/html\"\n" " version\n" " (base32 \"15k1679ja57vvlpinpv06znmrxy09lbhzfkzdc89i01qa8c4gb4a\")))\n" " …)\n" #. type: deffn #: guix-git/doc/contributing.texi:1688 #, no-wrap msgid "{Procedure} elm->package-name @var{elm-name}" msgstr "{Prozedur} elm->package-name @var{Elm-Name}" #. type: deffn #: guix-git/doc/contributing.texi:1691 msgid "Returns the Guix-style package name for an Elm package with upstream name @var{elm-name}." msgstr "Liefert den Paketnamen im Guix-Stil für ein Elm-Paket, das dort @var{Elm-Name} heißt." #. type: deffn #: guix-git/doc/contributing.texi:1694 msgid "Note that there is more than one possible @var{elm-name} for which @code{elm->package-name} will produce a given result." msgstr "Achtung, @code{elm->package-name} kann unterschiedliche @var{Elm-Name} auf dasselbe Ergebnis abbilden." #. type: deffn #: guix-git/doc/contributing.texi:1696 #, no-wrap msgid "{Procedure} guix-package->elm-name @var{package}" msgstr "{Prozedur} guix-package->elm-name @var{Paket}" #. type: deffn #: guix-git/doc/contributing.texi:1700 msgid "Given an Elm @var{package}, returns the possibly-inferred upstream name, or @code{#f} the upstream name is not specified via the @code{'upstream-name} property and can not be inferred by @code{infer-elm-package-name}." msgstr "Für ein Elm-Paket @var{Paket} wird ermittelt, welchen Namen es beim Anbieter trägt, oder @code{#f}, wenn dieser Anbietername weder in den unter @var{properties} aufgeführten Paketeigenschaften steht noch sich mit @code{infer-elm-package-name} ableiten lässt." #. type: deffn #: guix-git/doc/contributing.texi:1702 #, no-wrap msgid "{Procedure} infer-elm-package-name @var{guix-name}" msgstr "{Prozedur} infer-elm-package-name @var{guix-name}" #. type: deffn #: guix-git/doc/contributing.texi:1707 msgid "Given the @var{guix-name} of an Elm package, returns the inferred upstream name, or @code{#f} if the upstream name can't be inferred. If the result is not @code{#f}, supplying it to @code{elm->package-name} would produce @var{guix-name}." msgstr "Liefert für den @var{guix-name} eines Elm-Pakets den daraus abgeleiteten Namen beim Anbieter oder @code{#f}, wenn er sich nicht ableiten lässt. Wenn das Ergebnis etwas anderes als @code{#f} ist, können wir es an @code{elm->package-name} übergeben und bekommen wieder @var{guix-name} heraus." #. type: cindex #: guix-git/doc/contributing.texi:1712 guix-git/doc/guix.texi:1817 #, no-wrap msgid "fonts" msgstr "Schriftarten" #. type: Plain text #: guix-git/doc/contributing.texi:1718 msgid "For fonts that are in general not installed by a user for typesetting purposes, or that are distributed as part of a larger software package, we rely on the general packaging rules for software; for instance, this applies to the fonts delivered as part of the X.Org system or fonts that are part of TeX Live." msgstr "Wenn Schriftarten in der Regel nicht von Nutzern zur Textbearbeitung installiert werden oder als Teil eines größeren Software-Pakets mitgeliefert werden, gelten dafür die allgemeinen Paketrichtlinien für Software. Zum Beispiel trifft das auf als Teil des X.Org-Systems ausgelieferte Schriftarten zu, oder auf Schriftarten, die ein Teil von TeX Live sind." #. type: Plain text #: guix-git/doc/contributing.texi:1722 msgid "To make it easier for a user to search for fonts, names for other packages containing only fonts are constructed as follows, independently of the upstream package name." msgstr "Damit es Nutzer leichter haben, nach Schriftarten zu suchen, konstruieren wir die Namen von anderen Paketen, die nur Schriftarten enthalten, nach dem folgenden Schema, egal was der Paketname beim Anbieter ist." #. type: Plain text #: guix-git/doc/contributing.texi:1730 msgid "The name of a package containing only one font family starts with @code{font-}; it is followed by the foundry name and a dash @code{-} if the foundry is known, and the font family name, in which spaces are replaced by dashes (and as usual, all upper case letters are transformed to lower case). For example, the Gentium font family by SIL is packaged under the name @code{font-sil-gentium}." msgstr "Der Name eines Pakets, das nur eine Schriftfamilie enthält, beginnt mit @code{font-}. Darauf folgt der Name des Schriftenherstellers und ein Strich @code{-}, sofern bekannt ist, wer der Schriftenhersteller ist, und dann der Name der Schriftfamilie, in dem Leerzeichen durch Striche ersetzt werden (und wie immer mit Großbuchstaben statt Kleinbuchstaben). Zum Beispiel befindet sich die von SIL hergestellte Gentium-Schriftfamilie im Paket mit dem Namen @code{font-sil-gentium}." #. type: Plain text #: guix-git/doc/contributing.texi:1739 msgid "For a package containing several font families, the name of the collection is used in the place of the font family name. For instance, the Liberation fonts consist of three families, Liberation Sans, Liberation Serif and Liberation Mono. These could be packaged separately under the names @code{font-liberation-sans} and so on; but as they are distributed together under a common name, we prefer to package them together as @code{font-liberation}." msgstr "Wenn ein Paket mehrere Schriftfamilien enthält, wird der Name der Sammlung anstelle des Schriftfamiliennamens benutzt. Zum Beispiel umfassen die Liberation-Schriftarten drei Familien: Liberation Sans, Liberation Serif und Liberation Mono. Man könnte sie getrennt voneinander mit den Namen @code{font-liberation-sans} und so weiter in Pakete einteilen. Da sie aber unter einem gemeinsamen Namen angeboten werden, packen wir sie lieber zusammen in ein Paket mit dem Namen @code{font-liberation}." #. type: Plain text #: guix-git/doc/contributing.texi:1745 msgid "In the case where several formats of the same font family or font collection are packaged separately, a short form of the format, prepended by a dash, is added to the package name. We use @code{-ttf} for TrueType fonts, @code{-otf} for OpenType fonts and @code{-type1} for PostScript Type 1 fonts." msgstr "Für den Fall, dass mehrere Formate derselben Schriftfamilie oder Schriftartensammlung in separate Pakete kommen, wird ein Kurzname für das Format mit einem Strich vorne zum Paketnamen hinzugefügt. Wir benutzen @code{-ttf} für TrueType-Schriftarten, @code{-otf} für OpenType-Schriftarten und @code{-type1} für PostScript-Typ-1-Schriftarten." #. type: Plain text #: guix-git/doc/contributing.texi:1753 msgid "In general our code follows the GNU Coding Standards (@pxref{Top,,, standards, GNU Coding Standards}). However, they do not say much about Scheme, so here are some additional rules." msgstr "Im Allgemeinen folgt unser Code den GNU Coding Standards (siehe @ref{Top,,, standards, GNU Coding Standards}). Da diese aber nicht viel über Scheme zu sagen haben, folgen hier einige zusätzliche Regeln." #. type: subsection #: guix-git/doc/contributing.texi:1759 guix-git/doc/contributing.texi:1761 #: guix-git/doc/contributing.texi:1762 #, no-wrap msgid "Programming Paradigm" msgstr "Programmierparadigmen" #. type: menuentry #: guix-git/doc/contributing.texi:1759 msgid "How to compose your elements." msgstr "Wie Sie Ihre Elemente zusammenstellen." #. type: subsection #: guix-git/doc/contributing.texi:1759 guix-git/doc/contributing.texi:1768 #: guix-git/doc/contributing.texi:1769 #, no-wrap msgid "Modules" msgstr "Module" #. type: menuentry #: guix-git/doc/contributing.texi:1759 msgid "Where to store your code?" msgstr "Wo Sie Ihren Code unterbringen." #. type: subsection #: guix-git/doc/contributing.texi:1759 guix-git/doc/contributing.texi:1784 #: guix-git/doc/contributing.texi:1785 #, no-wrap msgid "Data Types and Pattern Matching" msgstr "Datentypen und Mustervergleich" #. type: menuentry #: guix-git/doc/contributing.texi:1759 msgid "Implementing data structures." msgstr "Implementierung von Datenstrukturen." #. type: subsection #: guix-git/doc/contributing.texi:1759 guix-git/doc/contributing.texi:1815 #: guix-git/doc/contributing.texi:1816 #, no-wrap msgid "Formatting Code" msgstr "Formatierung von Code" #. type: menuentry #: guix-git/doc/contributing.texi:1759 msgid "Writing conventions." msgstr "Schreibkonventionen." #. type: Plain text #: guix-git/doc/contributing.texi:1767 msgid "Scheme code in Guix is written in a purely functional style. One exception is code that involves input/output, and procedures that implement low-level concepts, such as the @code{memoize} procedure." msgstr "Scheme-Code wird in Guix auf rein funktionale Weise geschrieben. Eine Ausnahme ist Code, der mit Ein- und Ausgabe zu tun hat, und Prozeduren, die grundlegende Konzepte implementieren, wie zum Beispiel die Prozedur @code{memoize}." #. type: cindex #: guix-git/doc/contributing.texi:1770 #, no-wrap msgid "build-side modules" msgstr "erstellungsseitige Module" #. type: cindex #: guix-git/doc/contributing.texi:1771 #, no-wrap msgid "host-side modules" msgstr "wirtsseitige Module" #. type: Plain text #: guix-git/doc/contributing.texi:1780 msgid "Guile modules that are meant to be used on the builder side must live in the @code{(guix build @dots{})} name space. They must not refer to other Guix or GNU modules. However, it is OK for a ``host-side'' module to use a build-side module. As an example, the @code{(guix search-paths)} module should not be imported and used by a package since it isn't meant to be used as a ``build-side'' module. It would also couple the module with the package's dependency graph, which is undesirable." msgstr "Guile-Module, die beim Erstellen nutzbar sein sollen, müssen im Namensraum @code{(guix build …)} leben. Sie dürfen auf keine anderen Guix- oder GNU-Module Bezug nehmen. Jedoch ist es in Ordnung, wenn ein „wirtsseitiges“ Modul ein erstellungsseitiges Modul benutzt. Zum Beispiel darf das Modul @code{(guix search-paths)} @emph{nicht} in einem Paket importiert und benutzt werden, weil es @emph{nicht} dazu gedacht ist, als „erstellungsseitiges“ Modul zu fungieren, und weil das Modul ein Teil des Abhängigkeitsgraphen des Pakets werden würde, und so eine Kopplung wollen wir nicht." #. type: Plain text #: guix-git/doc/contributing.texi:1783 msgid "Modules that deal with the broader GNU system should be in the @code{(gnu @dots{})} name space rather than @code{(guix @dots{})}." msgstr "Module, die mit dem weiteren GNU-System zu tun haben, sollten im Namensraum @code{(gnu …)} und nicht in @code{(guix …)} stehen." #. type: Plain text #: guix-git/doc/contributing.texi:1792 msgid "The tendency in classical Lisp is to use lists to represent everything, and then to browse them ``by hand'' using @code{car}, @code{cdr}, @code{cadr}, and co. There are several problems with that style, notably the fact that it is hard to read, error-prone, and a hindrance to proper type error reports." msgstr "Im klassischen Lisp gibt es die Tendenz, Listen zur Darstellung von allem zu benutzen, und diese dann „händisch“ zu durchlaufen mit @code{car}, @code{cdr}, @code{cadr} und so weiter. Dieser Stil ist aus verschiedenen Gründen problematisch, insbesondere wegen der Tatsache, dass er schwer zu lesen, schnell fehlerbehaftet und ein Hindernis beim Melden von Typfehlern ist." #. type: findex #: guix-git/doc/contributing.texi:1793 #, no-wrap msgid "define-record-type*" msgstr "define-record-type*" #. type: findex #: guix-git/doc/contributing.texi:1794 #, no-wrap msgid "match-record" msgstr "match-record" #. type: cindex #: guix-git/doc/contributing.texi:1795 #, no-wrap msgid "pattern matching" msgstr "Mustervergleich" #. type: Plain text #: guix-git/doc/contributing.texi:1803 msgid "Guix code should define appropriate data types (for instance, using @code{define-record-type*}) rather than abuse lists. In addition, it should use pattern matching, via Guile’s @code{(ice-9 match)} module, especially when matching lists (@pxref{Pattern Matching,,, guile, GNU Guile Reference Manual}); pattern matching for records is better done using @code{match-record} from @code{(guix records)}, which, unlike @code{match}, verifies field names at macro-expansion time." msgstr "Guix-Code sollte angemessene Datentypen definieren (zum Beispiel mit @code{define-record-type*}), statt Listen zu missbrauchen. Außerdem sollte er das @code{(ice-9 match)}-Modul von Guile zum Mustervergleich benutzen, besonders mit Listen (siehe @ref{Pattern Matching,,, guile, Referenzhandbuch zu GNU Guile}), während bei Verbundstypen @code{match-record} aus dem Modul @code{(guix records)} angemessener ist, womit, anders als bei @code{match}, bereits bei der Makroumschreibung sichergestellt wird, dass die Feldnamen richtig sind." #. type: Plain text #: guix-git/doc/contributing.texi:1814 msgid "When defining a new record type, keep the @dfn{record type descriptor} (RTD) private (@pxref{Records,,, guile, GNU Guile Reference Manual}, for more on records and RTDs). As an example, the @code{(guix packages)} module defines @code{<package>} as the RTD for package records but it does not export it; instead, it exports a type predicate, a constructor, and field accessors. Exporting RTDs would make it harder to change the application binary interface (because code in other modules might be matching fields by position) and would make it trivial for users to forge records of that type, bypassing any checks we may have in the official constructor (such as ``field sanitizers'')." msgstr "Wenn Sie einen neuen Verbundstyp definieren, sollten Sie den Deskriptor des Verbundstyps (@abbr{RTD, Record Type Descriptor}) privat stellen (siehe @ref{Records,,, guile, Referenzhandbuch zu GNU Guile}, für nähere Informationen zu Verbundstypen und RTDs). Zum Beispiel wird durch das Modul @code{(guix packages)} der RTD @code{<package>} für den @code{package}-Verbundstyp definiert, aber @emph{nicht} exportiert. Stattdessen werden ein Typprädikat, ein Konstruktor und Prozeduren zum Zugriff auf die Felder exportiert. Wenn der RTD exportiert würde, könnte man die Binärschnittstelle (@abbr{ABI, Application Binary Interface}) schwer ändern (weil der Code anderer Module mit @code{match} passende Felder anhand deren Position abgleichen könnte) und es würde Nutzer verleiten, Verbundsobjekte dieses Typs falsch zu erzeugen, ohne dass die Überprüfungen im offiziellen Konstruktur laufen können (etwa „Feldsanitisierer“)." #. type: cindex #: guix-git/doc/contributing.texi:1818 #, no-wrap msgid "formatting code" msgstr "Formatierung von Code" #. type: cindex #: guix-git/doc/contributing.texi:1819 #, no-wrap msgid "coding style" msgstr "Code-Stil" #. type: Plain text #: guix-git/doc/contributing.texi:1826 msgid "When writing Scheme code, we follow common wisdom among Scheme programmers. In general, we follow the @url{https://mumble.net/~campbell/scheme/style.txt, Riastradh's Lisp Style Rules}. This document happens to describe the conventions mostly used in Guile’s code too. It is very thoughtful and well written, so please do read it." msgstr "Beim Schreiben von Scheme-Code halten wir uns an die üblichen Gepflogenheiten unter Scheme-Programmierern. Im Allgemeinen bedeutet das, dass wir uns an @url{https://mumble.net/~campbell/scheme/style.txt, Riastradh's Lisp Style Rules} halten. Es hat sich ergeben, dass dieses Dokument auch die Konventionen beschreibt, die im Code von Guile hauptsächlich verwendet werden. Es ist gut durchdacht und schön geschrieben, also lesen Sie es bitte." #. type: Plain text #: guix-git/doc/contributing.texi:1833 msgid "Some special forms introduced in Guix, such as the @code{substitute*} macro, have special indentation rules. These are defined in the @file{.dir-locals.el} file, which Emacs automatically uses. Also note that Emacs-Guix provides @code{guix-devel-mode} mode that indents and highlights Guix code properly (@pxref{Development,,, emacs-guix, The Emacs-Guix Reference Manual})." msgstr "Ein paar in Guix eingeführte Sonderformen, wie zum Beispiel das @code{substitute*}-Makro, haben abweichende Regeln für die Einrückung. Diese sind in der Datei @file{.dir-locals.el} definiert, die Emacs automatisch benutzt. Beachten Sie auch, dass Emacs-Guix einen Modus namens @code{guix-devel-mode} bereitstellt, der Guix-Code richtig einrückt und hervorhebt (siehe @ref{Development,,, emacs-guix, Referenzhandbuch von Emacs-Guix})." #. type: cindex #: guix-git/doc/contributing.texi:1834 #, no-wrap msgid "indentation, of code" msgstr "Einrückung, Code-" #. type: cindex #: guix-git/doc/contributing.texi:1835 #, no-wrap msgid "formatting, of code" msgstr "Formatierung, Code-" #. type: Plain text #: guix-git/doc/contributing.texi:1838 msgid "If you do not use Emacs, please make sure to let your editor knows these rules. To automatically indent a package definition, you can also run:" msgstr "Falls Sie nicht Emacs verwenden, sollten Sie sicherstellen, dass Ihr Editor diese Regeln kennt. Um eine Paketdefinition automatisch einzurücken, können Sie auch Folgendes ausführen:" #. type: example #: guix-git/doc/contributing.texi:1841 #, no-wrap msgid "./pre-inst-env guix style @var{package}\n" msgstr "./pre-inst-env guix style @var{Paket}\n" #. type: Plain text #: guix-git/doc/contributing.texi:1845 msgid "@xref{Invoking guix style}, for more information." msgstr "Siehe @ref{Invoking guix style} für weitere Informationen." #. type: Plain text #: guix-git/doc/contributing.texi:1849 msgid "We require all top-level procedures to carry a docstring. This requirement can be relaxed for simple private procedures in the @code{(guix build @dots{})} name space, though." msgstr "Wir fordern von allen Prozeduren auf oberster Ebene, dass sie über einen Docstring verfügen. Diese Voraussetzung kann jedoch bei einfachen, privaten Prozeduren im Namensraum @code{(guix build …)} aufgeweicht werden." #. type: Plain text #: guix-git/doc/contributing.texi:1852 msgid "Procedures should not have more than four positional parameters. Use keyword parameters for procedures that take more than four parameters." msgstr "Prozeduren sollten nicht mehr als vier positionsbestimmte Parameter haben. Benutzen Sie Schlüsselwort-Parameter für Prozeduren, die mehr als vier Parameter entgegennehmen." #. type: Plain text #: guix-git/doc/contributing.texi:1866 msgid "Development is done using the Git distributed version control system. Thus, access to the repository is not strictly necessary. We welcome contributions in the form of patches as produced by @code{git format-patch} sent to the @email{guix-patches@@gnu.org} mailing list (@pxref{Submitting patches to a project,,, git, Git User Manual}). Contributors are encouraged to take a moment to set some Git repository options (@pxref{Configuring Git}) first, which can improve the readability of patches. Seasoned Guix developers may also want to look at the section on commit access (@pxref{Commit Access})." msgstr "Die Entwicklung wird mit Hilfe des verteilten Versionskontrollsystems Git durchgeführt. Daher ist eine ständige Verbindung zum Repository nicht unbedingt erforderlich. Wir begrüßen Beiträge in Form von Patches, die mittels @code{git format-patch} erstellt und an die Mailingliste @email{guix-patches@@gnu.org} geschickt werden (siehe @ref{Submitting patches to a project,,, git, Git-Benutzerhandbuch}). In diesem Fall möchten wir Ihnen nahelegen, zunächst einige Git-Repository-Optionen festzulegen (siehe @ref{Configuring Git}), damit Ihr Patch leichter lesbar wird. Erfahrene Guix-Entwickler möchten vielleicht auch einen Blick auf den Abschnitt über Commit-Zugriff werfen (siehe @ref{Commit Access})." #. type: Plain text #: guix-git/doc/contributing.texi:1873 msgid "This mailing list is backed by a Debbugs instance, which allows us to keep track of submissions (@pxref{Tracking Bugs and Changes}). Each message sent to that mailing list gets a new tracking number assigned; people can then follow up on the submission by sending email to @code{@var{ISSUE_NUMBER}@@debbugs.gnu.org}, where @var{ISSUE_NUMBER} is the tracking number (@pxref{Sending a Patch Series})." msgstr "Diese Mailing-Liste setzt auf einer Debbugs-Instanz auf, wodurch wir den Überblick über Eingereichtes behalten können (siehe @ref{Tracking Bugs and Changes}). Jede an diese Mailing-Liste gesendete Nachricht bekommt eine neue Folgenummer zugewiesen, so dass man eine Folge-E-Mail zur Einreichung an @code{@var{FEHLERNUMMER}@@debbugs.gnu.org} senden kann, wobei @var{FEHLERNUMMER} für die Folgenummer steht (siehe @ref{Sending a Patch Series})." #. type: Plain text #: guix-git/doc/contributing.texi:1877 msgid "Please write commit logs in the ChangeLog format (@pxref{Change Logs,,, standards, GNU Coding Standards}); you can check the commit history for examples." msgstr "Bitte schreiben Sie Commit-Logs im ChangeLog-Format (siehe @ref{Change Logs,,, standards, GNU Coding Standards}); dazu finden Sie Beispiele unter den bisherigen Commits." #. type: Plain text #: guix-git/doc/contributing.texi:1887 msgid "You can help make the review process more efficient, and increase the chance that your patch will be reviewed quickly, by describing the context of your patch and the impact you expect it to have. For example, if your patch is fixing something that is broken, describe the problem and how your patch fixes it. Tell us how you have tested your patch. Will users of the code changed by your patch have to adjust their workflow at all? If so, tell us how. In general, try to imagine what questions a reviewer will ask, and answer those questions in advance." msgstr "Sie können dabei helfen, dass die Überprüfung Ihres Patches schneller vonstattengeht und die Wahrscheinlichkeit erhöhen, dass sich bald jemand den Patch anschaut: Beschreiben Sie die Umstände des Patches und wie er sich auswirken dürfte. Zum Beispiel, wenn etwas kaputt ist und der Patch das behebt, dann beschreiben Sie das Problem und wie es in Ihrem Patch behoben wird. Müssen die Verwender des betroffenen Codes dazu ihre Arbeitsweise ändern oder nicht? Wenn doch, schreiben Sie wie. Allgemein sollten Sie sich vorstellen, welche Fragen ein Überprüfender stellen würde, und diese im Voraus beantworten." #. type: Plain text #: guix-git/doc/contributing.texi:1890 msgid "Before submitting a patch that adds or modifies a package definition, please run through this check list:" msgstr "Bevor Sie einen Patch einreichen, der eine Paketdefinition hinzufügt oder verändert, gehen Sie bitte diese Prüfliste durch:" #. type: enumerate #: guix-git/doc/contributing.texi:1897 msgid "If the authors of the packaged software provide a cryptographic signature for the release tarball, make an effort to verify the authenticity of the archive. For a detached GPG signature file this would be done with the @code{gpg --verify} command." msgstr "Wenn die Autoren der verpackten Software eine kryptografische Signatur bzw. Beglaubigung für den Tarball der Veröffentlichung anbieten, so machen Sie sich bitte die Mühe, die Echtheit des Archivs zu überprüfen. Für eine abgetrennte GPG-Signaturdatei würden Sie das mit dem Befehl @code{gpg --verify} tun." #. type: enumerate #: guix-git/doc/contributing.texi:1901 msgid "Take some time to provide an adequate synopsis and description for the package. @xref{Synopses and Descriptions}, for some guidelines." msgstr "Nehmen Sie sich die Zeit, eine passende Zusammenfassung und Beschreibung für das Paket zu verfassen. Unter @ref{Synopses and Descriptions} finden Sie dazu einige Richtlinien." #. type: enumerate #: guix-git/doc/contributing.texi:1906 msgid "Run @code{guix lint @var{package}}, where @var{package} is the name of the new or modified package, and fix any errors it reports (@pxref{Invoking guix lint})." msgstr "Verwenden Sie @code{guix lint @var{Paket}}, wobei @var{Paket} das neue oder geänderte Paket bezeichnet, und beheben Sie alle gemeldeten Fehler (siehe @ref{Invoking guix lint})." #. type: enumerate #: guix-git/doc/contributing.texi:1910 msgid "Run @code{guix style @var{package}} to format the new package definition according to the project's conventions (@pxref{Invoking guix style})." msgstr "Verwenden Sie @code{guix style @var{Paket}}, um die neue Paketdefinition gemäß den Konventionen des Guix-Projekts zu formatieren (siehe @ref{Invoking guix style})." #. type: enumerate #: guix-git/doc/contributing.texi:1914 msgid "Make sure the package builds on your platform, using @code{guix build @var{package}}." msgstr "Stellen Sie sicher, dass das Paket auf Ihrer Plattform erstellt werden kann, indem Sie @code{guix build @var{Paket}} ausführen." #. type: enumerate #: guix-git/doc/contributing.texi:1922 msgid "We recommend you also try building the package on other supported platforms. As you may not have access to actual hardware platforms, we recommend using the @code{qemu-binfmt-service-type} to emulate them. In order to enable it, add the @code{virtualization} service module and the following service to the list of services in your @code{operating-system} configuration:" msgstr "Wir empfehlen, dass Sie auch versuchen, das Paket auf anderen unterstützten Plattformen zu erstellen. Da Sie vielleicht keinen Zugang zu echter Hardware für diese Plattformen haben, empfehlen wir, den @code{qemu-binfmt-service-type} zu benutzen, um sie zu emulieren. Um ihn zu aktivieren, fügen Sie @code{virtualization} zu @code{use-service-modules} und den folgenden Dienst in die Liste der Dienste („services“) in Ihrer @code{operating-system}-Konfiguration ein:" #. type: lisp #: guix-git/doc/contributing.texi:1927 #, no-wrap msgid "" "(service qemu-binfmt-service-type\n" " (qemu-binfmt-configuration\n" " (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))))\n" msgstr "" "(service qemu-binfmt-service-type\n" " (qemu-binfmt-configuration\n" " (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))))\n" #. type: enumerate #: guix-git/doc/contributing.texi:1930 msgid "Then reconfigure your system." msgstr "Rekonfigurieren Sie anschließend Ihr System." #. type: enumerate #: guix-git/doc/contributing.texi:1935 msgid "You can then build packages for different platforms by specifying the @code{--system} option. For example, to build the \"hello\" package for the armhf or aarch64 architectures, you would run the following commands, respectively:" msgstr "Sie können Pakete für andere Plattformen erstellen lassen, indem Sie die Befehlszeilenoption @code{--system} angeben. Um zum Beispiel das Paket „hello“ für die Architekturen armhf oder aarch64 erstellen zu lassen, würden Sie jeweils die folgenden Befehle angeben:" #. type: example #: guix-git/doc/contributing.texi:1938 #, no-wrap msgid "" "guix build --system=armhf-linux --rounds=2 hello\n" "guix build --system=aarch64-linux --rounds=2 hello\n" msgstr "" "guix build --system=armhf-linux --rounds=2 hello\n" "guix build --system=aarch64-linux --rounds=2 hello\n" #. type: cindex #: guix-git/doc/contributing.texi:1941 #, no-wrap msgid "bundling" msgstr "gebündelt" #. type: enumerate #: guix-git/doc/contributing.texi:1944 msgid "Make sure the package does not use bundled copies of software already available as separate packages." msgstr "Achten Sie darauf, dass im Paket keine Software gebündelt mitgeliefert wird, die bereits in separaten Paketen zur Verfügung steht." #. type: enumerate #: guix-git/doc/contributing.texi:1953 msgid "Sometimes, packages include copies of the source code of their dependencies as a convenience for users. However, as a distribution, we want to make sure that such packages end up using the copy we already have in the distribution, if there is one. This improves resource usage (the dependency is built and stored only once), and allows the distribution to make transverse changes such as applying security updates for a given software package in a single place and have them affect the whole system---something that bundled copies prevent." msgstr "Manchmal enthalten Pakete Kopien des Quellcodes ihrer Abhängigkeiten, um Nutzern die Installation zu erleichtern. Als eine Distribution wollen wir jedoch sicherstellen, dass solche Pakete die schon in der Distribution verfügbare Fassung benutzen, sofern es eine gibt. Dadurch wird sowohl der Ressourcenverbrauch optimiert (die Abhängigkeit wird so nur einmal erstellt und gespeichert) als auch der Distribution die Möglichkeit gegeben, ergänzende Änderungen durchzuführen, um beispielsweise Sicherheitsaktualisierungen für ein bestimmtes Paket an nur einem Ort einzuspielen, die aber das gesamte System betreffen@tie{}– gebündelt mitgelieferte Kopien würden dies verhindern." #. type: enumerate #: guix-git/doc/contributing.texi:1962 msgid "Take a look at the profile reported by @command{guix size} (@pxref{Invoking guix size}). This will allow you to notice references to other packages unwillingly retained. It may also help determine whether to split the package (@pxref{Packages with Multiple Outputs}), and which optional dependencies should be used. In particular, avoid adding @code{texlive} as a dependency: because of its extreme size, use @code{texlive-updmap.cfg} procedure instead." msgstr "Schauen Sie sich das von @command{guix size} ausgegebene Profil an (siehe @ref{Invoking guix size}). Dadurch können Sie Referenzen auf andere Pakete finden, die ungewollt vorhanden sind. Dies kann auch dabei helfen, zu entscheiden, ob das Paket aufgespalten werden sollte (siehe @ref{Packages with Multiple Outputs}) und welche optionalen Abhängigkeiten verwendet werden sollten. Dabei sollten Sie es wegen seiner enormen Größe insbesondere vermeiden, @code{texlive} als eine Abhängigkeit hinzuzufügen; benutzen Sie stattdessen die Prozedur @code{texlive-updmap.cfg}." #. type: enumerate #: guix-git/doc/contributing.texi:1967 msgid "Check that dependent packages (if applicable) are not affected by the change; @code{guix refresh --list-dependent @var{package}} will help you do that (@pxref{Invoking guix refresh})." msgstr "Achten Sie darauf, dass abhängige Pakete (falls vorhanden) nicht von der Änderung beeinträchtigt werden; @code{guix refresh --list-dependent @var{Paket}} hilft Ihnen dabei (siehe @ref{Invoking guix refresh})." #. type: cindex #: guix-git/doc/contributing.texi:1969 #, no-wrap msgid "determinism, of build processes" msgstr "Determinismus, von Erstellungsprozessen" #. type: cindex #: guix-git/doc/contributing.texi:1970 #, no-wrap msgid "reproducible builds, checking" msgstr "Reproduzierbare Erstellungen, Überprüfung" #. type: enumerate #: guix-git/doc/contributing.texi:1974 msgid "Check whether the package's build process is deterministic. This typically means checking whether an independent build of the package yields the exact same result that you obtained, bit for bit." msgstr "Überprüfen Sie, ob der Erstellungsprozess deterministisch ist. Dazu prüfen Sie typischerweise, ob eine unabhängige Erstellung des Pakets genau dasselbe Ergebnis wie Ihre Erstellung hat, Bit für Bit." #. type: enumerate #: guix-git/doc/contributing.texi:1977 msgid "A simple way to do that is by building the same package several times in a row on your machine (@pxref{Invoking guix build}):" msgstr "Dies können Sie leicht tun, indem Sie dasselbe Paket mehrere Male hintereinander auf Ihrer Maschine erstellen (siehe @ref{Invoking guix build}):" #. type: example #: guix-git/doc/contributing.texi:1980 #, no-wrap msgid "guix build --rounds=2 my-package\n" msgstr "guix build --rounds=2 mein-paket\n" #. type: enumerate #: guix-git/doc/contributing.texi:1984 msgid "This is enough to catch a class of common non-determinism issues, such as timestamps or randomly-generated output in the build result." msgstr "Dies reicht aus, um eine ganze Klasse häufiger Ursachen von Nichtdeterminismus zu finden, wie zum Beispiel Zeitstempel oder zufallsgenerierte Ausgaben im Ergebnis der Erstellung." #. type: enumerate #: guix-git/doc/contributing.texi:1994 msgid "Another option is to use @command{guix challenge} (@pxref{Invoking guix challenge}). You may run it once the package has been committed and built by @code{@value{SUBSTITUTE-SERVER-1}} to check whether it obtains the same result as you did. Better yet: Find another machine that can build it and run @command{guix publish}. Since the remote build machine is likely different from yours, this can catch non-determinism issues related to the hardware---e.g., use of different instruction set extensions---or to the operating system kernel---e.g., reliance on @code{uname} or @file{/proc} files." msgstr "Eine weitere Möglichkeit ist, @command{guix challenge} (siehe @ref{Invoking guix challenge}) zu benutzen. Sie können es ausführen, sobald ein Paket commitet und von @code{@value{SUBSTITUTE-SERVER-1}} erstellt wurde, um zu sehen, ob dort dasselbe Ergebnis wie bei Ihnen geliefert wurde. Noch besser: Finden Sie eine andere Maschine, die das Paket erstellen kann, und führen Sie @command{guix publish} aus. Da sich die entfernte Erstellungsmaschine wahrscheinlich von Ihrer unterscheidet, können Sie auf diese Weise Probleme durch Nichtdeterminismus erkennen, die mit der Hardware zu tun haben@tie{}– zum Beispiel die Nutzung anderer Befehlssatzerweiterungen@tie{}– oder mit dem Betriebssystem-Kernel@tie{}– zum Beispiel, indem @code{uname} oder @file{/proc}-Dateien verwendet werden." # Hier gehe ich mal davon aus, dass Dokumentation generell zuerst in Englisch geschrieben wird, daher, werden solche Begriffe auch hier nicht übersetzt. #. type: enumerate #: guix-git/doc/contributing.texi:2000 msgid "When writing documentation, please use gender-neutral wording when referring to people, such as @uref{https://en.wikipedia.org/wiki/Singular_they, singular ``they''@comma{} ``their''@comma{} ``them''}, and so forth." msgstr "Beim Schreiben von Dokumentation achten Sie bitte auf eine geschlechtsneutrale Wortwahl, wenn Sie sich auf Personen beziehen, wie @uref{https://en.wikipedia.org/wiki/Singular_they, „they“@comma{} „their“@comma{} „them“ im Singular} und so weiter." #. type: enumerate #: guix-git/doc/contributing.texi:2004 msgid "Verify that your patch contains only one set of related changes. Bundling unrelated changes together makes reviewing harder and slower." msgstr "Stellen Sie sicher, dass Ihr Patch nur einen Satz zusammengehöriger Änderungen umfasst. Das Zusammenfassen nicht zusammengehöriger Änderungen erschwert und bremst das Durchsehen Ihres Patches." #. type: enumerate #: guix-git/doc/contributing.texi:2007 msgid "Examples of unrelated changes include the addition of several packages, or a package update along with fixes to that package." msgstr "Beispiele für nicht zusammengehörige Änderungen sind das Hinzufügen mehrerer Pakete auf einmal, oder das Aktualisieren eines Pakets auf eine neue Version zusammen mit Fehlerbehebungen für das Paket." #. type: enumerate #: guix-git/doc/contributing.texi:2012 msgid "Please follow our code formatting rules, possibly running @command{guix style} script to do that automatically for you (@pxref{Formatting Code})." msgstr "Bitte befolgen Sie unsere Richtlinien für die Code-Formatierung; womöglich wollen Sie dies automatisch tun lassen durch das Skript @command{guix style} (siehe @ref{Formatting Code})." #. type: enumerate #: guix-git/doc/contributing.texi:2020 msgid "When possible, use mirrors in the source URL (@pxref{Invoking guix download}). Use reliable URLs, not generated ones. For instance, GitHub archives are not necessarily identical from one generation to the next, so in this case it's often better to clone the repository. Don't use the @command{name} field in the URL: it is not very useful and if the name changes, the URL will probably be wrong." msgstr "Benutzen Sie, wenn möglich, Spiegelserver (Mirrors) in der Quell-URL (siehe @ref{Invoking guix download}). Verwenden Sie verlässliche URLs, keine automatisch generierten. Zum Beispiel sind Archive von GitHub nicht immer identisch von einer Generation auf die nächste, daher ist es in diesem Fall besser, als Quelle einen Klon des Repositorys zu verwenden. Benutzen Sie @emph{nicht} das @command{name}-Feld beim Angeben der URL; er hilft nicht wirklich und wenn sich der Name ändert, stimmt die URL nicht mehr." #. type: enumerate #: guix-git/doc/contributing.texi:2024 msgid "Check if Guix builds (@pxref{Building from Git}) and address the warnings, especially those about use of undefined symbols." msgstr "Überprüfen Sie, ob Guix erstellt werden kann (siehe @ref{Building from Git}) und kümmern Sie sich um die Warnungen, besonders um solche über nicht definierte Symbole." #. type: enumerate #: guix-git/doc/contributing.texi:2027 msgid "Make sure your changes do not break Guix and simulate a @code{guix pull} with:" msgstr "Stellen Sie sicher, dass Ihre Änderungen Guix nicht beeinträchtigen, und simulieren Sie eine Ausführung von @code{guix pull} über den Befehl:" #. type: example #: guix-git/doc/contributing.texi:2029 #, no-wrap msgid "guix pull --url=/path/to/your/checkout --profile=/tmp/guix.master\n" msgstr "guix pull --url=/pfad/zu/ihrem/checkout --profile=/tmp/guix.master\n" #. type: Plain text #: guix-git/doc/contributing.texi:2037 msgid "When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as a subject, if your patch is to be applied on a branch other than @code{master}, say @code{core-updates}, specify it in the subject like @samp{[PATCH core-updates] @dots{}}." msgstr "Bitte benutzen Sie @samp{[PATCH] …} als Betreff, wenn Sie einen Patch an die Mailing-Liste schicken. Soll Ihr Patch auf einen anderen Branch als @code{master} angewandt werden, z.B.@: @code{core-updates}, geben Sie dies im Betreff an als @samp{[PATCH core-updates] …}." #. type: Plain text #: guix-git/doc/contributing.texi:2044 #, fuzzy #| msgid "You may use your email client or the @command{git send-email} command (@pxref{Sending a Patch Series}). We prefer to get patches in plain text messages, either inline or as MIME attachments. You are advised to pay attention if your email client changes anything like line breaks or indentation which could potentially break the patches." msgid "You may use your email client, the @command{git send-email} command (@pxref{Sending a Patch Series}) or the @command{mumi send-email} command (@pxref{Debbugs User Interfaces}). We prefer to get patches in plain text messages, either inline or as MIME attachments. You are advised to pay attention if your email client changes anything like line breaks or indentation which could potentially break the patches." msgstr "Sie können dazu Ihr E-Mail-Programm oder den Befehl @command{git send-email} benutzen (siehe @ref{Sending a Patch Series}). Wir bevorzugen es, Patches als reine Textnachrichten zu erhalten, entweder eingebettet (inline) oder als MIME-Anhänge. Sie sind dazu angehalten, zu überprüfen, ob Ihr Mail-Programm solche Dinge wie Zeilenumbrüche oder die Einrückung verändert, wodurch die Patches womöglich nicht mehr funktionieren." #. type: Plain text #: guix-git/doc/contributing.texi:2049 msgid "Expect some delay when you submit your very first patch to @email{guix-patches@@gnu.org}. You have to wait until you get an acknowledgement with the assigned tracking number. Future acknowledgements should not be delayed." msgstr "Rechnen Sie damit, dass es etwas dauert, bis Ihr erster Patch an @email{guix-patches@@gnu.org} zu sehen ist. Sie werden warten müssen, bis Sie eine Bestätigung mit der zugewiesenen Folgenummer bekommen. Spätere Bestätigungen sollten sofort kommen." #. type: Plain text #: guix-git/doc/contributing.texi:2052 msgid "When a bug is resolved, please close the thread by sending an email to @email{@var{ISSUE_NUMBER}-done@@debbugs.gnu.org}." msgstr "Wenn dadurch ein Fehler behoben wurde, schließen Sie bitte den Thread, indem Sie eine E-Mail an @email{@var{FEHLERNUMMER}-done@@debbugs.gnu.org} senden." #. type: subsection #: guix-git/doc/contributing.texi:2057 guix-git/doc/contributing.texi:2059 #: guix-git/doc/contributing.texi:2060 #, no-wrap msgid "Configuring Git" msgstr "Git einrichten" #. type: subsection #: guix-git/doc/contributing.texi:2057 guix-git/doc/contributing.texi:2083 #: guix-git/doc/contributing.texi:2084 #, no-wrap msgid "Sending a Patch Series" msgstr "Senden einer Patch-Reihe" #. type: subsection #: guix-git/doc/contributing.texi:2057 guix-git/doc/contributing.texi:2224 #: guix-git/doc/contributing.texi:2225 #, no-wrap msgid "Teams" msgstr "Teams" #. type: cindex #: guix-git/doc/contributing.texi:2061 #, no-wrap msgid "git configuration" msgstr "Git-Konfiguration" #. type: code{#1} #: guix-git/doc/contributing.texi:2062 guix-git/doc/contributing.texi:2087 #, no-wrap msgid "git format-patch" msgstr "git format-patch" #. type: code{#1} #: guix-git/doc/contributing.texi:2063 guix-git/doc/contributing.texi:2086 #, no-wrap msgid "git send-email" msgstr "git send-email" #. type: Plain text #: guix-git/doc/contributing.texi:2071 msgid "If you have not done so already, you may wish to set a name and email that will be associated with your commits (@pxref{telling git your name, , Telling Git your name, git, Git User Manual}). If you wish to use a different name or email just for commits in this repository, you can use @command{git config --local}, or edit @file{.git/config} in the repository instead of @file{~/.gitconfig}." msgstr "Wenn es noch nicht geschehen ist, wollen Sie vielleicht den Namen und die E-Mail-Adresse festlegen, mit der Ihre Commits ausgestellt werden (siehe @ref{telling git your name, , Telling Git your name, git, Git-Benutzerhandbuch}). Wenn Sie einen anderen Namen oder eine andere E-Mail-Adresse nur für Commits in diesem Repository verwenden möchten, können Sie @command{git config --local} benutzen oder Änderungen in der Datei @file{.git/config} im Repository statt in @file{~/.gitconfig} durchführen." #. type: cindex #: guix-git/doc/contributing.texi:2072 #, no-wrap msgid "commit-msg hook" msgstr "commit-msg, Hook" #. type: Plain text #: guix-git/doc/contributing.texi:2082 msgid "Other important Git configuration will automatically be configured when building the project (@pxref{Building from Git}). A @file{.git/hooks/commit-msg} hook will be installed that embeds @samp{Change-Id} Git @emph{trailers} in your commit messages for traceability purposes. It is important to preserve these when editing your commit messages, particularly if a first version of your proposed changes was already submitted for review. If you have a @file{commit-msg} hook of your own you would like to use with Guix, you can place it under the @file{.git/hooks/commit-msg.d/} directory." msgstr "Weitere wichtige Git-Einstellungen werden automatisch vorgenommen, wenn Sie das Projekt kompilieren (siehe @ref{Building from Git}). Ein Hook @file{.git/hooks/commit-msg} wird installiert, durch den die Git-Anhangszeile @samp{Change-Id} in Ihre Commit-Nachrichten eingefügt wird, um den Zusammenhang nachvollziehen zu können. Bitte behalten Sie diese bei, wenn Sie Ihre Commit-Nachrichten nachbearbeiten, vor allem, wenn Sie bereits eine erste Fassung der von Ihnen vorgeschlagenen Änderungen zur Überprüfung eingereicht haben. Wenn Sie einen eigenen @file{commit-msg}-Hook mit Guix verwenden möchten, können Sie ihn im Verzeichnis @file{.git/hooks/commit-msg.d/} unterbringen." #. type: cindex #: guix-git/doc/contributing.texi:2085 #, no-wrap msgid "patch series" msgstr "Patch-Reihe" #. type: anchor{#1} #: guix-git/doc/contributing.texi:2089 guix-git/doc/contributing.texi:2096 #, no-wrap msgid "Single Patches" msgstr "Einzelne Patches" #. type: Plain text #: guix-git/doc/contributing.texi:2096 msgid "The @command{git send-email} command is the best way to send both single patches and patch series (@pxref{Multiple Patches}) to the Guix mailing list. Sending patches as email attachments may make them difficult to review in some mail clients, and @command{git diff} does not store commit metadata." msgstr "Der Befehl @command{git send-email} ist die beste Art, wie Sie sowohl einzelne Patches als auch Patch-Reihen (siehe @ref{Multiple Patches}) an die Guix-Mailing-Liste schicken können. Würden Sie Patches als E-Mail-Anhänge schicken, wäre es in manchen Mailprogrammen umständlich, diese zu überprüfen. Und wenn Sie aus @command{git diff} kopierten, würden die Metadaten des Commits fehlen." #. type: quotation #: guix-git/doc/contributing.texi:2100 msgid "The @command{git send-email} command is provided by the @code{send-email} output of the @code{git} package, i.e. @code{git:send-email}." msgstr "Der Befehl @command{git send-email} ist in der Ausgabe namens @code{send-email} des @code{git}-Pakets enthalten, also @code{git:send-email}." #. type: Plain text #: guix-git/doc/contributing.texi:2107 msgid "The following command will create a patch email from the latest commit, open it in your @var{EDITOR} or @var{VISUAL} for editing, and send it to the Guix mailing list to be reviewed and merged. Assuming you have already configured Git according to @xref{Configuring Git}, you can simply use:" msgstr "Mit dem folgenden Befehl erzeugen Sie eine E-Mail mit dem Patch aus dem neuesten Commit, öffnen diese in Ihrem gewählten @var{EDITOR} oder @var{VISUAL}, um sie zu bearbeiten, und schicken sie an die Guix-Mailing-Liste, damit jemand sie überprüft und merget. Vorausgesetzt Sie haben Git bereits so eingerichtet wie in Abschnitt @ref{Configuring Git} beschrieben, können Sie einfach dies benutzen:" #. type: example #: guix-git/doc/contributing.texi:2110 #, no-wrap msgid "$ git send-email --annotate -1\n" msgstr "$ git send-email --annotate -1\n" #. type: quotation #: guix-git/doc/contributing.texi:2112 guix-git/doc/guix.texi:10488 #: guix-git/doc/guix.texi:20444 guix-git/doc/guix.texi:20452 #: guix-git/doc/guix.texi:34615 #, no-wrap msgid "Tip" msgstr "Tipp" #. type: quotation #: guix-git/doc/contributing.texi:2118 msgid "To add a prefix to the subject of your patch, you may use the @option{--subject-prefix} option. The Guix project uses this to specify that the patch is intended for a branch or repository other than the @code{master} branch of @url{https://git.savannah.gnu.org/cgit/guix.git}." msgstr "Wenn Sie in der Betreffzeile zu Ihrem Patch ein zusätzliches Präfix mitgeben möchten, können Sie die Befehlszeilenoption @option{--subject-prefix} benutzen. Beim Guix-Projekt wird so angegeben, dass der Patch für einen bestimmten Branch oder ein anderes Repository bestimmt ist, statt für den @code{master}-Branch von @url{https://git.savannah.gnu.org/cgit/guix.git}." #. type: example #: guix-git/doc/contributing.texi:2121 #, no-wrap msgid "git send-email --annotate --subject-prefix='PATCH core-updates' -1\n" msgstr "git send-email --annotate --subject-prefix='PATCH core-updates' -1\n" #. type: Plain text #: guix-git/doc/contributing.texi:2128 msgid "The patch email contains a three-dash separator line after the commit message. You may ``annotate'' the patch with explanatory text by adding it under this line. If you do not wish to annotate the email, you may drop the @option{--annotate} option." msgstr "In der Patch-E-Mail finden Sie eine Trennlinie aus drei Bindestrichen unter der Commit-Nachricht. Sie dürfen erklärende Bemerkungen zum Patch unterhalb dieser Linie anbringen. Wenn Sie keine solchen Annotationen in der E-Mail schreiben möchten, können Sie oben auf die Befehlszeilenoption @option{--annotate} verzichten." #. type: Plain text #: guix-git/doc/contributing.texi:2135 msgid "If you need to send a revised patch, don't resend it like this or send a ``fix'' patch to be applied on top of the last one; instead, use @command{git commit --amend} or @url{https://git-rebase.io, @command{git rebase}} to modify the commit, and use the @email{@var{ISSUE_NUMBER}@@debbugs.gnu.org} address and the @option{-v} flag with @command{git send-email}." msgstr "Wenn Sie einen überarbeiteten Patch schicken müssen, geht das anders. Machen Sie es @emph{nicht} so und schicken Sie @emph{keinen} Patch mit einem „Fix“, der als Nächstes angewandt werden müsste, sondern verwenden Sie stattdessen @command{git commit --amend} oder @url{https://git-rebase.io, @command{git rebase}}, um den alten Commit zu verändern, und schicken den an die Adresse @email{@var{FEHLERNUMMER}@@debbugs.gnu.org}, wobei Sie außerdem die Befehlszeilenoption @option{-v} von @command{git send-email} angeben." #. type: example #: guix-git/doc/contributing.texi:2140 #, no-wrap msgid "" "$ git commit --amend\n" "$ git send-email --annotate -v@var{REVISION} \\\n" " --to=@var{ISSUE_NUMBER}@@debbugs.gnu.org -1\n" msgstr "" "$ git commit --amend\n" "$ git send-email --annotate -v@var{REVISION} \\\n" " --to=@var{FEHLERNUMMER}@@debbugs.gnu.org -1\n" #. type: quotation #: guix-git/doc/contributing.texi:2146 msgid "Due to an apparent bug in @command{git send-email}, @option{-v @var{REVISION}} (with the space) will not work; you @emph{must} use @option{-v@var{REVISION}}." msgstr "Offenbar gibt es einen Fehler in @command{git send-email}, wodurch Sie @emph{nicht} @option{-v @var{REVISION}} (mit einem Leerzeichen) schreiben dürfen; lediglich @option{-v@var{REVISION}} funktioniert." #. type: Plain text #: guix-git/doc/contributing.texi:2152 msgid "You can find out @var{ISSUE_NUMBER} either by searching on the mumi interface at @url{https://issues.guix.gnu.org} for the name of your patch or reading the acknowledgement email sent automatically by Debbugs in reply to incoming bugs and patches, which contains the bug number." msgstr "Die @var{FEHLERNUMMER} finden Sie heraus, indem Sie entweder auf der Mumi-Oberfläche auf @url{https://issues.guix.gnu.org} nach dem Namen Ihres Patches suchen oder indem Sie in Ihren E-Mails auf die Eingangsbestätigung schauen, die Debbugs Ihnen automatisch als Antwort auf eingehende Fehlerberichte (Bugs) und Patches hat zukommen lassen. Darin finden Sie die Fehlernummer." #. type: anchor{#1} #: guix-git/doc/contributing.texi:2153 guix-git/doc/contributing.texi:2155 #, no-wrap msgid "Notifying Teams" msgstr "Teams ansprechen" #. type: cindex #: guix-git/doc/contributing.texi:2155 guix-git/doc/contributing.texi:2226 #, no-wrap msgid "teams" msgstr "Teams" #. type: Plain text #: guix-git/doc/contributing.texi:2164 msgid "If your git checkout has been correctly configured (@pxref{Configuring Git}), the @command{git send-email} command will automatically notify the appropriate team members, based on the scope of your changes. This relies on the @file{etc/teams.scm} script, which can also be invoked manually if you do not use the preferred @command{git send-email} command to submit patches. To list the available actions of the script, you can invoke it via the @command{etc/teams.scm help} command. For more information regarding teams, @pxref{Teams}." msgstr "Wenn Ihr Git-Ckeckout richtig eingerichtet ist (siehe @ref{Configuring Git}), wird der Befehl @command{git send-email} automatisch die Mitglieder des zuständigen Teams benachrichtigen. Dazu analysiert das Skript @file{etc/teams.scm} Ihre Änderungen. Sie können es auch selbst aufrufen, wenn Sie den zum Einreichen von Patches bevorzugten Befehl @command{git send-email} meiden. Um die verfügbaren Aktionen für dieses Skript zu lesen, können Sie es mit dem Befehl @command{etc/teams.scm help} aufrufen. Für weitere Informationen über Teams siehe den Abschnitt @ref{Teams}." #. type: quotation #: guix-git/doc/contributing.texi:2168 msgid "On foreign distros, you might have to use @command{./pre-inst-env git send-email} for @file{etc/teams.scm} to work." msgstr "Auf Fremddistributionen müssen Sie vielleicht stattdessen @command{./pre-inst-env git send-email} aufrufen, damit Sie @file{etc/teams.scm} benutzen können." #. type: anchor{#1} #: guix-git/doc/contributing.texi:2170 guix-git/doc/contributing.texi:2172 #, no-wrap msgid "Multiple Patches" msgstr "Mehrere Patches" #. type: cindex #: guix-git/doc/contributing.texi:2172 #, no-wrap msgid "cover letter" msgstr "Deckblatt (Cover Letter)" #. type: Plain text #: guix-git/doc/contributing.texi:2178 msgid "While @command{git send-email} alone will suffice for a single patch, an unfortunate flaw in Debbugs means you need to be more careful when sending multiple patches: if you send them all to the @email{guix-patches@@gnu.org} address, a new issue will be created for each patch!" msgstr "Obwohl @command{git send-email} allein für einen einzelnen Patch genügt, führt eine Unzulänglichkeit in Debbugs dazu, dass Sie beim Versenden mehrerer Patches achtgeben müssen: Wenn Sie alle auf einmal an die Adresse @email{guix-patches@@gnu.org} schicken würden, würde für jeden Patch jeweils ein Fehlerbericht eröffnet!" #. type: Plain text #: guix-git/doc/contributing.texi:2184 msgid "When sending a series of patches, it's best to send a Git ``cover letter'' first, to give reviewers an overview of the patch series. We can create a directory called @file{outgoing} containing both our patch series and a cover letter called @file{0000-cover-letter.patch} with @command{git format-patch}." msgstr "Wenn Sie die Patches aber als Patch-Reihe abschicken wollen, sollten Sie als Erstes mit Git ein „Deckblatt“ schicken, das den Gutachtern einen Überblick über die Patch-Reihe gibt. Zum Beispiel können Sie ein Verzeichnis namens @file{ausgehend} anlegen und darin sowohl Ihre Patch-Reihe als auch ein Deckblatt namens @file{0000-cover-letter.patch} platzieren, indem Sie @command{git format-patch} aufrufen." #. type: example #: guix-git/doc/contributing.texi:2188 #, no-wrap msgid "" "$ git format-patch -@var{NUMBER_COMMITS} -o outgoing \\\n" " --cover-letter --base=auto\n" msgstr "" "$ git format-patch -@var{ANZAHL_COMMITS} -o ausgehend \\\n" " --cover-letter --base=auto\n" #. type: Plain text #: guix-git/doc/contributing.texi:2193 msgid "We can now send @emph{just} the cover letter to the @email{guix-patches@@gnu.org} address, which will create an issue that we can send the rest of the patches to." msgstr "Jetzt schicken Sie @emph{nur} das Deckblatt an die Adresse @email{guix-patches@@gnu.org}, so dass ein Fehlerbericht aufgemacht wird, an den wir dann die restlichen Patches schicken können." #. type: example #: guix-git/doc/contributing.texi:2197 #, no-wrap msgid "" "$ git send-email outgoing/0000-cover-letter.patch --annotate\n" "$ rm outgoing/0000-cover-letter.patch # we don't want to resend it!\n" msgstr "" "$ git send-email ausgehend/0000-cover-letter.patch --annotate\n" "$ rm ausgehend/0000-cover-letter.patch # nicht nochmal schicken!\n" #. type: Plain text #: guix-git/doc/contributing.texi:2202 msgid "Ensure you edit the email to add an appropriate subject line and blurb before sending it. Note the automatically generated shortlog and diffstat below the blurb." msgstr "Passen Sie auf und bearbeiten die E-Mail nochmal, um ihr vor dem Abschicken eine angemessene Betreffzeile (Subject) und anstelle von Blurb Ihren Text mitzugeben. Sie werden bemerken, dass unterhalb des Textes automatisch ein Shortlog und Diffstat aufgelistet wurden." #. type: Plain text #: guix-git/doc/contributing.texi:2205 msgid "Once the Debbugs mailer has replied to your cover letter email, you can send the actual patches to the newly-created issue address." msgstr "Sobald Sie vom Debbugs-Mailer eine Antwort auf Ihre Deckblatt-E-Mail erhalten haben, können Sie die eigentlichen Patches an die neu erzeugte Adresse für diesen Fehlerbericht senden." #. type: example #: guix-git/doc/contributing.texi:2209 #, no-wrap msgid "" "$ git send-email outgoing/*.patch --to=@var{ISSUE_NUMBER}@@debbugs.gnu.org\n" "$ rm -rf outgoing # we don't need these anymore\n" msgstr "" "$ git send-email ausgehend/*.patch --to=@var{FEHLERNUMMER}@@debbugs.gnu.org\n" "$ rm -rf ausgehend # wir sind damit fertig\n" #. type: Plain text #: guix-git/doc/contributing.texi:2214 msgid "Thankfully, this @command{git format-patch} dance is not necessary to send an amended patch series, since an issue already exists for the patchset." msgstr "Zum Glück können wir uns diesen Tanz mit @command{git format-patch} danach sparen, wenn wir eine überarbeitete Patch-Reihe schicken, weil wir die Fehlernummer dann bereits haben." #. type: example #: guix-git/doc/contributing.texi:2218 #, no-wrap msgid "" "$ git send-email -@var{NUMBER_COMMITS} -v@var{REVISION} \\\n" " --to=@var{ISSUE_NUMBER}@@debbugs.gnu.org\n" msgstr "" "$ git send-email -@var{ANZAHL_COMMITS} -v@var{REVISION} \\\n" " --to=@var{FEHLERNUMMER}@@debbugs.gnu.org\n" #. type: Plain text #: guix-git/doc/contributing.texi:2223 msgid "If need be, you may use @option{--cover-letter --annotate} to send another cover letter, e.g. for explaining what's changed since the last revision, and these changes are necessary." msgstr "Wenn nötig, können Sie mit @option{--cover-letter --annotate} auch dann ein weiteres Deckblatt mitschicken, z.B.@: um zu erklären, was die Änderungen seit der letzten Revision sind und warum sie nötig waren." #. type: Plain text #: guix-git/doc/contributing.texi:2230 msgid "There are several teams mentoring different parts of the Guix source code. To list all those teams, you can run from a Guix checkout:" msgstr "Der Quellcode von Guix ist unter mehreren Mentorenteams aufgeteilt. Um sich eine Liste aller Teams anzeigen zu lassen, führen Sie aus einem Guix-Checkout Folgendes aus:" #. type: example #: guix-git/doc/contributing.texi:2243 #, no-wrap msgid "" "$ ./etc/teams.scm list-teams\n" "id: mentors\n" "name: Mentors\n" "description: A group of mentors who chaperone contributions by newcomers.\n" "members:\n" "+ Christopher Baines <mail@@cbaines.net>\n" "+ Ricardo Wurmus <rekado@@elephly.net>\n" "+ Mathieu Othacehe <othacehe@@gnu.org>\n" "+ jgart <jgart@@dismail.de>\n" "+ Ludovic Courtès <ludo@@gnu.org>\n" "@dots{}\n" msgstr "" "$ ./etc/teams.scm list-teams\n" "id: mentors\n" "name: Mentors\n" "description: A group of mentors who chaperone contributions by newcomers.\n" "members:\n" "+ Christopher Baines <mail@@cbaines.net>\n" "+ Ricardo Wurmus <rekado@@elephly.net>\n" "+ Mathieu Othacehe <othacehe@@gnu.org>\n" "+ jgart <jgart@@dismail.de>\n" "+ Ludovic Courtès <ludo@@gnu.org>\n" "…\n" #. type: Plain text #: guix-git/doc/contributing.texi:2247 msgid "You can run the following command to have the @code{Mentors} team put in CC of a patch series:" msgstr "Sie können den folgenden Befehl benutzen, um das Team @code{Mentors} bei einer Patch-Reihe in CC zu setzen:" #. type: example #: guix-git/doc/contributing.texi:2251 #, no-wrap msgid "" "$ git send-email --to=@var{ISSUE_NUMBER}@@debbugs.gnu.org \\\n" " --header-cmd='etc/teams.scm cc-mentors-header-cmd' *.patch\n" msgstr "" "$ git send-email --to=@var{FEHLERNUMMER}@@debbugs.gnu.org \\\n" " --header-cmd='etc/teams.scm cc-mentors-header-cmd' *.patch\n" #. type: Plain text #: guix-git/doc/contributing.texi:2256 msgid "The appropriate team or teams can also be inferred from the modified files. For instance, if you want to send the two latest commits of the current Git repository to review, you can run:" msgstr "Das zuständige Team kann auch automatisch anhand der geänderten Dateien ermittelt werden. Wenn Sie zum Beispiel für die letzten zwei Commits im aktuellen Git-Repository um Überprüfung bitten möchten, führen Sie dies aus:" #. type: example #: guix-git/doc/contributing.texi:2260 #, no-wrap msgid "" "$ guix shell -D guix\n" "[env]$ git send-email --to=@var{ISSUE_NUMBER}@@debbugs.gnu.org -2\n" msgstr "" "$ guix shell -D guix\n" "[env]$ git send-email --to=@var{FEHLERNUMMER}@@debbugs.gnu.org -2\n" #. type: Plain text #: guix-git/doc/contributing.texi:2267 msgid "This section describes how the Guix project tracks its bug reports, patch submissions and topic branches." msgstr "Dieser Abschnitt beschreibt, wie das Guix-Projekt Fehlerberichte, eingereichte Patches und Topic-Branches verwaltet." #. type: subsection #: guix-git/doc/contributing.texi:2274 guix-git/doc/contributing.texi:2276 #: guix-git/doc/contributing.texi:2277 #, no-wrap msgid "The Issue Tracker" msgstr "Der Issue-Tracker" #. type: menuentry #: guix-git/doc/contributing.texi:2274 msgid "The official bug and patch tracker." msgstr "Die offizielle Übersicht über Bugs und Patches." #. type: subsection #: guix-git/doc/contributing.texi:2274 guix-git/doc/contributing.texi:2290 #: guix-git/doc/contributing.texi:2291 #, no-wrap msgid "Managing Patches and Branches" msgstr "Umgang mit Patches und Branches" #. type: menuentry #: guix-git/doc/contributing.texi:2274 msgid "How changes to Guix are managed." msgstr "Wie mit Änderungen für Guix verfahren wird." #. type: subsection #: guix-git/doc/contributing.texi:2274 guix-git/doc/contributing.texi:2384 #: guix-git/doc/contributing.texi:2385 #, no-wrap msgid "Debbugs User Interfaces" msgstr "Debbugs-Benutzerschnittstellen" #. type: menuentry #: guix-git/doc/contributing.texi:2274 msgid "Ways to interact with Debbugs." msgstr "Möglichkeiten, mit Debbugs umzugehen." #. type: subsection #: guix-git/doc/contributing.texi:2274 guix-git/doc/contributing.texi:2573 #: guix-git/doc/contributing.texi:2574 #, no-wrap msgid "Debbugs Usertags" msgstr "Debbugs-Usertags" #. type: menuentry #: guix-git/doc/contributing.texi:2274 msgid "Tag reports with custom labels." msgstr "Meldungen mit eigenen Kennzeichen versehen." #. type: subsection #: guix-git/doc/contributing.texi:2274 guix-git/doc/contributing.texi:2630 #: guix-git/doc/contributing.texi:2631 #, no-wrap msgid "Cuirass Build Notifications" msgstr "Cuirass-Benachrichtigungen" #. type: menuentry #: guix-git/doc/contributing.texi:2274 msgid "Be alerted of any breakage via RSS feeds." msgstr "Alarm per RSS-Feed, wenn Erstellungen fehlschlagen." #. type: cindex #: guix-git/doc/contributing.texi:2279 #, no-wrap msgid "bug reports, tracking" msgstr "Bug-Meldungen, Überblick" #. type: cindex #: guix-git/doc/contributing.texi:2280 #, no-wrap msgid "patch submissions, tracking" msgstr "Patch-Einreichungen, Überblick" #. type: cindex #: guix-git/doc/contributing.texi:2281 #, no-wrap msgid "issue tracking" msgstr "gemeldete Fehler überblicken" #. type: cindex #: guix-git/doc/contributing.texi:2282 #, no-wrap msgid "Debbugs, issue tracking system" msgstr "Debbugs, System zum Überblicken gemeldeter Fehler" #. type: Plain text #: guix-git/doc/contributing.texi:2289 msgid "Bug reports and patch submissions are currently tracked using the Debbugs instance at @uref{https://bugs.gnu.org}. Bug reports are filed against the @code{guix} ``package'' (in Debbugs parlance), by sending email to @email{bug-guix@@gnu.org}, while patch submissions are filed against the @code{guix-patches} package by sending email to @email{guix-patches@@gnu.org} (@pxref{Submitting Patches})." msgstr "Einen Überblick über gemeldete Fehler („Bugs“) und eingereichte Patches finden Sie derzeit auf der Debbugs-Instanz unter @uref{https://bugs.gnu.org}. Fehler werden für das „Paket“ (so sagt man im Sprachgebrauch von Debbugs) namens @code{guix} gemeldet, indem Sie eine E-Mail an @email{bug-guix@@gnu.org} schicken. Dagegen werden Patches für das Paket @code{guix-patches} eingereicht, indem Sie eine E-Mail an @email{guix-patches@@gnu.org} schicken (siehe @ref{Submitting Patches})." #. type: cindex #: guix-git/doc/contributing.texi:2292 #, no-wrap msgid "branching strategy" msgstr "Branching-Strategie" #. type: cindex #: guix-git/doc/contributing.texi:2293 #, no-wrap msgid "rebuild scheduling strategy" msgstr "Neuerstellungs-Zeitplan" #. type: Plain text #: guix-git/doc/contributing.texi:2302 msgid "Changes should be posted to @email{guix-patches@@gnu.org}. This mailing list fills the patch-tracking database (@pxref{The Issue Tracker}). It also allows patches to be picked up and tested by the quality assurance tooling; the result of that testing eventually shows up on the dashboard at @indicateurl{https://qa.guix.gnu.org/issue/@var{ISSUE_NUMBER}}, where @var{ISSUE_NUMBER} is the number assigned by the issue tracker. Leave time for a review, without committing anything." msgstr "Änderungen sollten an @email{guix-patches@@gnu.org} geschickt werden. Was an diese Mailing-Liste geschickt wird, steht danach in der Patch-Datenbank (siehe @ref{The Issue Tracker}). Auch springen daraufhin weitere Werkzeuge zur Qualitätssicherung an; sobald diese die Änderung überprüft haben, wird auf @indicateurl{https://qa.guix.gnu.org/issue/@var{FEHLERNUMMER}} das Ergebnis präsentiert; dabei ist mit @var{FEHLERNUMMER} die Zahl gemeint, die vom Issue-Tracker zugewiesen wurde. Warten Sie ab, bis ein Mensch die Änderung überprüft hat, ohne etwas zu commiten." #. type: Plain text #: guix-git/doc/contributing.texi:2308 msgid "As an exception, some changes considered ``trivial'' or ``obvious'' may be pushed directly to the @code{master} branch. This includes changes to fix typos and reverting commits that caused immediate problems. This is subject to being adjusted, allowing individuals to commit directly on non-controversial changes on parts they’re familiar with." msgstr "Eine Ausnahme machen wir bei „trivialen“ oder „offensichtlichen“ Änderungen. Diese darf man direkt auf den @code{master}-Branch pushen. Zu den trivialen Änderungen gehört zum Beispiel das Beheben von Schreibfehlern oder unmittelbar problematische Änderungen rückgängig zu machen. Die letzten Anweisungen werden wir vielleicht noch ändern, damit man unstrittige Änderungen direkt commiten kann, wenn man mit von Änderungen betroffenen Teilen vertraut ist." #. type: Plain text #: guix-git/doc/contributing.texi:2316 msgid "Changes which affect more than 300 dependent packages (@pxref{Invoking guix refresh}) should first be pushed to a topic branch other than @code{master}; the set of changes should be consistent---e.g., ``GNOME update'', ``NumPy update'', etc. This allows for testing: the branch will automatically show up at @indicateurl{https://qa.guix.gnu.org/branch/@var{branch}}, with an indication of its build status on various platforms." msgstr "Änderungen, die mehr als 300 abhängige Pakete beeinflussen (siehe @ref{Invoking guix refresh}), sollten erst mal auf einen themenbezogenen „Topic Branch“ statt auf @code{master} gepusht werden. Die Änderungen auf einem Branch sollten zusammenpassen, z.B.@: eine Aktualisierung von GNOME, von NumPy oder Ähnliches. So können die Änderungen getestet werden: Der Branch ist nach einiger Zeit auf @indicateurl{https://qa.guix.gnu.org/branch/@var{Branch}} zu finden, wo angezeigt wird, welchen Status die Erstellungen auf verschiedenen Plattformen haben." #. type: cindex #: guix-git/doc/contributing.texi:2317 #, no-wrap msgid "feature branches, coordination" msgstr "Feature Branches, Koordination" #. type: Plain text #: guix-git/doc/contributing.texi:2322 #, fuzzy #| msgid "To help coordinate the merging of branches, you must create a new guix-patches issue each time you wish to merge a branch (@pxref{The Issue Tracker}). The title of the issue requesting to merge a branch should have the following format:" msgid "To help coordinate the merging of branches, you must create a new guix-patches issue each time you create a branch (@pxref{The Issue Tracker}). The title of the issue requesting to merge a branch should have the following format:" msgstr "Um das Mergen von Branches besser zu koordinieren, ist es Ihre Pflicht, jedes Mal, wenn Sie einen Branch mergen möchten, zunächst eine Meldung als „Fehlerbericht“ an guix-patches zu schicken (einen „Merge Request“), siehe @ref{The Issue Tracker}. Als Titel der Meldung, mit der Sie um die Mergeerlaubnis bitten, verwenden Sie etwas im folgenden Format:" #. type: cindex #: guix-git/doc/contributing.texi:2323 #, no-wrap msgid "merge requests, template" msgstr "Merge Requests, Vorlage" #. type: example #: guix-git/doc/contributing.texi:2326 #, no-wrap msgid "Request for merging \"@var{name}\" branch\n" msgstr "Request for merging \"@var{Name}\" branch\n" #. type: Plain text #: guix-git/doc/contributing.texi:2331 #, fuzzy #| msgid "The @url{https://qa.guix.gnu.org/, QA infrastructure} recognizes such issues and lists the merge requests on its main page. Normally branches will be merged in a ``first come, first merged'' manner, tracked through the guix-patches issues." msgid "The @url{https://qa.guix.gnu.org/, QA infrastructure} recognizes such issues and lists the merge requests on its main page. The following points apply to managing these branches:" msgstr "Durch die @url{https://qa.guix.gnu.org/, QA-Infrastruktur} (Quality Assurance, englisch für Qualitätssicherung) erkennt solche Meldungen und listet Merge Requests auf seiner Hauptseite auf. Normalerweise verfährt man nach dem Prinzip: „Was zuerst kommt, merget man zuerst.“ Den Fortschritt kann man über den Fehlerbericht bei guix-patches nachvollziehen." #. type: enumerate #: guix-git/doc/contributing.texi:2337 msgid "The commits on the branch should be a combination of the patches relevant to the branch. Patches not related to the topic of the branch should go elsewhere." msgstr "" #. type: enumerate #: guix-git/doc/contributing.texi:2342 msgid "Any changes that can be made on the master branch, should be made on the master branch. If a commit can be split to apply part of the changes on master, this is good to do." msgstr "" #. type: enumerate #: guix-git/doc/contributing.texi:2346 msgid "It should be possible to re-create the branch by starting from master and applying the relevant patches." msgstr "" #. type: enumerate #: guix-git/doc/contributing.texi:2350 msgid "Avoid merging master in to the branch. Prefer rebasing or re-creating the branch on top of an updated master revision." msgstr "" #. type: enumerate #: guix-git/doc/contributing.texi:2355 msgid "Minimise the changes on master that are missing on the branch prior to merging the branch in to master. This means that the state of the branch better reflects the state of master should the branch be merged." msgstr "" #. type: enumerate #: guix-git/doc/contributing.texi:2360 msgid "If you don't have commit access, create the ``Request for merging'' issue and request that someone creates the branch. Include a list of issues/patches to include on the branch." msgstr "" #. type: Plain text #: guix-git/doc/contributing.texi:2374 #, fuzzy #| msgid "If you agree on a different order with those involved, you can track this by updating which issues block@footnote{You can mark an issue as blocked by another by emailing @email{control@@debbugs.gnu.org} with the following line in the body of the email: @code{block XXXXX by YYYYY}. Where @code{XXXXX} is the number for the blocked issue, and @code{YYYYY} is the number for the issue blocking it.} which other issues. Therefore, to know which branch is at the front of the queue, look for the oldest issue, or the issue that isn't @dfn{blocked} by any other branch merges. An ordered list of branches with the open issues is available at @url{https://qa.guix.gnu.org}." msgid "Normally branches will be merged in a ``first come, first merged'' manner, tracked through the guix-patches issues. If you agree on a different order with those involved, you can track this by updating which issues block@footnote{You can mark an issue as blocked by another by emailing @email{control@@debbugs.gnu.org} with the following line in the body of the email: @code{block XXXXX by YYYYY}. Where @code{XXXXX} is the number for the blocked issue, and @code{YYYYY} is the number for the issue blocking it.} which other issues. Therefore, to know which branch is at the front of the queue, look for the oldest issue, or the issue that isn't @dfn{blocked} by any other branch merges. An ordered list of branches with the open issues is available at @url{https://qa.guix.gnu.org}." msgstr "Wenn Sie eine andere Reihenfolge mit den Beteiligten absprechen, können Sie dies zur Nachvollziehbarkeit über die diesen Fehlerbericht blockierenden Fehlerberichte angeben@footnote{Sie können markieren, dass ein Fehlerbericht von einem anderen blockiert wird, indem Sie eine E-Mail an @email{control@@debbugs.gnu.org} schicken, die folgende Zeile enthält: @code{block XXXXX by YYYYY}. Dabei schreiben Sie statt @code{XXXXX} die Fehlernummer des blockierten Fehlerberichts und statt @code{YYYYY} die Fehlernummer des blockierenden Fehlerberichts.}. Darum können Sie den Branch, der zuerst an der Reihe ist, finden, indem Sie den ältesten Fehlerbericht suchen, der von keinem anderen Branch-Merge @dfn{blockiert} wird. Die Liste der Branches in sortierter Reihenfolge mit den offenen Fehlerberichten können Sie von @url{https://qa.guix.gnu.org} abrufen." #. type: Plain text #: guix-git/doc/contributing.texi:2380 msgid "Once a branch is at the front of the queue, wait until sufficient time has passed for the build farms to have processed the changes, and for the necessary testing to have happened. For example, you can check @indicateurl{https://qa.guix.gnu.org/branch/@var{branch}} to see information on some builds and substitute availability." msgstr "Sobald ein Branch in der Reihenfolge vorne steht, warten Sie darauf, dass genügend Zeit verstrichen ist, damit die Erstellungfarm die Änderungen verarbeitet hat und die notwendige Überprüfung stattfinden konnte. Sie können zum Beispiel auf @indicateurl{https://qa.guix.gnu.org/branch/@var{Branch}} Informationen zu neuen Erstellungen und zur Substitutverfügbarkeit sehen." #. type: Plain text #: guix-git/doc/contributing.texi:2383 msgid "Once the branch has been merged, the issue should be closed and the branch deleted." msgstr "" #. type: subsubsection #: guix-git/doc/contributing.texi:2387 #, no-wrap msgid "Web interface" msgstr "Weboberfläche" #. type: cindex #: guix-git/doc/contributing.texi:2389 #, fuzzy, no-wrap #| msgid "Git, web interface" msgid "mumi, web interface for issues" msgstr "Git, Weboberfläche" #. type: Plain text #: guix-git/doc/contributing.texi:2392 msgid "A web interface (actually @emph{two} web interfaces!) are available to browse issues:" msgstr "Ihnen steht eine Weboberfläche (tatsächlich sogar @emph{zwei} Weboberflächen!) zur Verfügung, um die Fehlerdatenbank zu durchsuchen:" #. type: itemize #: guix-git/doc/contributing.texi:2401 #, fuzzy #| msgid "@url{https://issues.guix.gnu.org} provides a pleasant interface@footnote{The web interface at @url{https://issues.guix.gnu.org} is powered by Mumi, a nice piece of software written in Guile, and you can help! See @url{https://git.savannah.gnu.org/cgit/guix/mumi.git}.} to browse bug reports and patches, and to participate in discussions;" msgid "@url{https://issues.guix.gnu.org} provides a pleasant interface powered by mumi@footnote{Mumi is a nice piece of software written in Guile, and you can help! See @url{https://git.savannah.gnu.org/cgit/guix/mumi.git}.} to browse bug reports and patches, and to participate in discussions; mumi also has a command-line interface as we will see below;" msgstr "@url{https://issues.guix.gnu.org} erlaubt es Ihnen, über eine hübsche Schnittstelle @footnote{Die Weboberfläche unter @url{https://issues.guix.gnu.org} läuft über das Programm Mumi, ein schönes Stück in Guile geschriebene Software, bei der Sie uns helfen können! Siehe @url{https://git.savannah.gnu.org/cgit/guix/mumi.git}.} eingesendete Fehlerberichte („Bug Reports“) und Patches einzusehen und an Diskussionen teilzunehmen." #. type: itemize #: guix-git/doc/contributing.texi:2403 msgid "@url{https://bugs.gnu.org/guix} lists bug reports;" msgstr "Auf @url{https://bugs.gnu.org/guix} werden gemeldete Fehler aufgeführt," #. type: itemize #: guix-git/doc/contributing.texi:2405 msgid "@url{https://bugs.gnu.org/guix-patches} lists patch submissions." msgstr "auf @url{https://bugs.gnu.org/guix-patches} eingereichte Patches." #. type: Plain text #: guix-git/doc/contributing.texi:2410 msgid "To view discussions related to issue number @var{n}, go to @indicateurl{https://issues.guix.gnu.org/@var{n}} or @indicateurl{https://bugs.gnu.org/@var{n}}." msgstr "Um Diskussionen zum Fehler mit Fehlernummer @var{n} einzusehen, schauen Sie auf @indicateurl{https://issues.guix.gnu.org/@var{n}} oder @indicateurl{https://bugs.gnu.org/@var{n}}." #. type: subsubsection #: guix-git/doc/contributing.texi:2411 #, no-wrap msgid "Command-Line Interface" msgstr "Befehlszeilenschnittstelle" #. type: cindex #: guix-git/doc/contributing.texi:2413 #, no-wrap msgid "mumi command-line interface" msgstr "mumi-Befehlszeilenschnittstelle" #. type: cindex #: guix-git/doc/contributing.texi:2414 #, no-wrap msgid "mumi am" msgstr "" #. type: cindex #: guix-git/doc/contributing.texi:2415 #, fuzzy, no-wrap #| msgid "compose" msgid "mumi compose" msgstr "compose" #. type: cindex #: guix-git/doc/contributing.texi:2416 #, fuzzy, no-wrap #| msgid "git send-email" msgid "mumi send-email" msgstr "git send-email" #. type: cindex #: guix-git/doc/contributing.texi:2417 #, no-wrap msgid "mumi www" msgstr "" #. type: Plain text #: guix-git/doc/contributing.texi:2422 #, fuzzy #| msgid "Mumi also comes with a command-line interface that can be used to search existing issues, open new issues and send patches. You do not need to use Emacs to use the mumi command-line client. You interact with it only on the command-line." msgid "Mumi also comes with a command-line interface that can be used to search existing issues, open new issues, compose replies, apply and send patches. You do not need to use Emacs to use the mumi command-line client. You interact with it only on the command-line." msgstr "Zu Mumi gehört auch eine Befehlszeilenschnittstelle, mit der bestehende Fehlerberichte durchsucht, neue Fehlerberichte geöffnet und Patches eingeschickt werden können. Es ist nicht erforderlich, dass Sie Emacs benutzen, um den Befehlszeilen-Client mumi zu benutzen. Sie bedienen ihn nur von der Befehlszeile aus." #. type: Plain text #: guix-git/doc/contributing.texi:2426 msgid "To use the mumi command-line interface, navigate to a local clone of the Guix git repository, and drop into a shell with mumi, git and git:send-email installed." msgstr "Um die mumi-Befehlszeilenschnittstelle zu nutzen, begeben Sie sich in einen lokalen Klon von Guix’ Git-Repository, und starten Sie eine Shell, in die Sie mumi, git und git:send-email installieren." #. type: example #: guix-git/doc/contributing.texi:2430 #, no-wrap msgid "" "$ cd guix\n" "~/guix$ guix shell mumi git git:send-email\n" msgstr "" "$ cd guix\n" "~/guix$ guix shell mumi git git:send-email\n" #. type: Plain text #: guix-git/doc/contributing.texi:2433 msgid "To search for issues, say all open issues about \"zig\", run" msgstr "Um Fehlerberichte zu suchen, etwa alle offenen Fehlerberichte zu \"zig\", führen Sie aus:" #. type: example #: guix-git/doc/contributing.texi:2436 #, no-wrap msgid "" "~/guix [env]$ mumi search zig is:open\n" "\n" msgstr "" "~/guix [env]$ mumi search zig is:open\n" "\n" #. type: example #: guix-git/doc/contributing.texi:2447 #, no-wrap msgid "" "#60889 Add zig-build-system\n" "opened on 17 Jan 17:37 Z by Ekaitz Zarraga\n" "#61036 [PATCH 0/3] Update zig to 0.10.1\n" "opened on 24 Jan 09:42 Z by Efraim Flashner\n" "#39136 [PATCH] gnu: services: Add endlessh.\n" "opened on 14 Jan 2020 21:21 by Nicol? Balzarotti\n" "#60424 [PATCH] gnu: Add python-online-judge-tools\n" "opened on 30 Dec 2022 07:03 by gemmaro\n" "#45601 [PATCH 0/6] vlang 0.2 update\n" "opened on 1 Jan 2021 19:23 by Ryan Prior\n" msgstr "" "#60889 Add zig-build-system\n" "opened on 17 Jan 17:37 Z by Ekaitz Zarraga\n" "#61036 [PATCH 0/3] Update zig to 0.10.1\n" "opened on 24 Jan 09:42 Z by Efraim Flashner\n" "#39136 [PATCH] gnu: services: Add endlessh.\n" "opened on 14 Jan 2020 21:21 by Nicol? Balzarotti\n" "#60424 [PATCH] gnu: Add python-online-judge-tools\n" "opened on 30 Dec 2022 07:03 by gemmaro\n" "#45601 [PATCH 0/6] vlang 0.2 update\n" "opened on 1 Jan 2021 19:23 by Ryan Prior\n" #. type: Plain text #: guix-git/doc/contributing.texi:2450 msgid "Pick an issue and make it the \"current\" issue." msgstr "Wählen Sie einen Fehlerbericht und markieren Sie ihn als aktuell („current“)." #. type: example #: guix-git/doc/contributing.texi:2453 #, no-wrap msgid "" "~/guix [env]$ mumi current 61036\n" "\n" msgstr "" "~/guix [env]$ mumi current 61036\n" "\n" #. type: example #: guix-git/doc/contributing.texi:2456 #, no-wrap msgid "" "#61036 [PATCH 0/3] Update zig to 0.10.1\n" "opened on 24 Jan 09:42 Z by Efraim Flashner\n" msgstr "" "#61036 [PATCH 0/3] Update zig to 0.10.1\n" "opened on 24 Jan 09:42 Z by Efraim Flashner\n" #. type: Plain text #: guix-git/doc/contributing.texi:2461 #, fuzzy #| msgid "Once an issue is the current issue, you can easily create and send patches to it using" msgid "Once an issue is the current issue, you can open the issue in a web browser, compose replies, apply patches, send patches, etc. with short succinct commands." msgstr "Sobald ein Fehlerbericht als der aktuelle Fehlerbericht markiert ist, können Sie leicht Patches zu ihm erzeugen und hinzufügen mit:" #. type: Plain text #: guix-git/doc/contributing.texi:2463 msgid "Open the issue in your web browser using" msgstr "" #. type: example #: guix-git/doc/contributing.texi:2466 #, fuzzy, no-wrap #| msgid "~/guix [env]$ mumi new\n" msgid "~/guix [env]$ mumi www\n" msgstr "~/guix [env]$ mumi new\n" #. type: Plain text #: guix-git/doc/contributing.texi:2469 msgid "Compose a reply using" msgstr "" #. type: example #: guix-git/doc/contributing.texi:2472 #, fuzzy, no-wrap #| msgid "~/guix [env]$ mumi new\n" msgid "~/guix [env]$ mumi compose\n" msgstr "~/guix [env]$ mumi new\n" #. type: Plain text #: guix-git/doc/contributing.texi:2475 msgid "Compose a reply and close the issue using" msgstr "" #. type: example #: guix-git/doc/contributing.texi:2478 #, fuzzy, no-wrap #| msgid "~/guix [env]$ mumi new\n" msgid "~/guix [env]$ mumi compose --close\n" msgstr "~/guix [env]$ mumi new\n" #. type: Plain text #: guix-git/doc/contributing.texi:2483 msgid "@command{mumi compose} opens your mail client by passing @samp{mailto:} URIs to @command{xdg-open}. So, you need to have @command{xdg-open} set up to open your mail client correctly." msgstr "" #. type: Plain text #: guix-git/doc/contributing.texi:2485 msgid "Apply the latest patchset from the issue using" msgstr "" #. type: example #: guix-git/doc/contributing.texi:2488 #, fuzzy, no-wrap #| msgid "~/guix [env]$ mumi new\n" msgid "~/guix [env]$ mumi am\n" msgstr "~/guix [env]$ mumi new\n" #. type: Plain text #: guix-git/doc/contributing.texi:2491 #, fuzzy #| msgid "You can also ask for a specific version:" msgid "You may also apply a patchset of a specific version (say, v3) using" msgstr "Sie können auch um eine bestimmte Version bitten:" #. type: example #: guix-git/doc/contributing.texi:2494 #, fuzzy, no-wrap #| msgid "~/guix [env]$ mumi new\n" msgid "~/guix [env]$ mumi am v3\n" msgstr "~/guix [env]$ mumi new\n" #. type: Plain text #: guix-git/doc/contributing.texi:2499 msgid "Or, you may apply a patch from a specific e-mail message. For example, to apply the patch from the 4th message (message index starts from 0), run" msgstr "" #. type: example #: guix-git/doc/contributing.texi:2502 #, fuzzy, no-wrap #| msgid "~/guix [env]$ mumi new\n" msgid "~/guix [env]$ mumi am @@4\n" msgstr "~/guix [env]$ mumi new\n" #. type: Plain text #: guix-git/doc/contributing.texi:2507 msgid "@command{mumi am} is a wrapper around @command{git am}. You can pass @command{git am} arguments to it after a @samp{--}. For example, to add a Signed-off-by trailer, run" msgstr "" #. type: example #: guix-git/doc/contributing.texi:2510 #, fuzzy, no-wrap #| msgid "~/guix [env]$ mumi new\n" msgid "~/guix [env]$ mumi am -- -s\n" msgstr "~/guix [env]$ mumi new\n" #. type: Plain text #: guix-git/doc/contributing.texi:2513 msgid "Create and send patches to the issue using" msgstr "" #. type: example #: guix-git/doc/contributing.texi:2517 #, no-wrap msgid "" "~/guix [env]$ git format-patch origin/master\n" "~/guix [env]$ mumi send-email foo.patch bar.patch\n" msgstr "" "~/guix [env]$ git format-patch origin/master\n" "~/guix [env]$ mumi send-email foo.patch bar.patch\n" #. type: Plain text #: guix-git/doc/contributing.texi:2522 msgid "Note that you do not have to pass in @samp{--to} or @samp{--cc} arguments to @command{git format-patch}. @command{mumi send-email} will put them in correctly when sending the patches." msgstr "Wir weisen darauf hin, dass Sie weder @samp{--to} noch @samp{--cc} als Argumente an @command{git format-patch} übergeben müssen. @command{mumi send-email} sorgt dafür, dass sie beim Abschicken von Patches richtig eingetragen werden." #. type: Plain text #: guix-git/doc/contributing.texi:2524 msgid "To open a new issue, run" msgstr "Um einen neuen Fehlerbericht zu öffnen, führen Sie aus:" #. type: example #: guix-git/doc/contributing.texi:2527 #, no-wrap msgid "~/guix [env]$ mumi new\n" msgstr "~/guix [env]$ mumi new\n" #. type: Plain text #: guix-git/doc/contributing.texi:2531 msgid "and send an email (using @command{mumi compose}) or patches (using @command{mumi send-email})." msgstr "" #. type: Plain text #: guix-git/doc/contributing.texi:2537 msgid "@command{mumi send-email} is really a wrapper around @command{git send-email} that automates away all the nitty-gritty of sending patches. It uses the current issue state to automatically figure out the correct @samp{To} address to send to, other participants to @samp{Cc}, headers to add, etc." msgstr "@command{mumi send-email} ist eigentlich ein Wrapper um @command{git send-email}, mit dem die harten Details beim Patchversand wegautomatisiert werden. Dabei wird der als „current“ markierte Fehlerbericht analysiert, um automatisch die richtige @samp{To}-Adresse des Empfängers und die in @samp{Cc} stehenden anderen Teilnehmer sowie die Kopfzeilen, die hinzugefügt werden müssen, zu finden, und Ähnliches." #. type: Plain text #: guix-git/doc/contributing.texi:2545 msgid "Also note that, unlike @command{git send-email}, @command{mumi send-email} works perfectly well with single and multiple patches alike. It automates away the debbugs dance of sending the first patch, waiting for a response from debbugs and sending the remaining patches. It does so by sending the first patch, polling the server for a response, and then sending the remaining patches. This polling can unfortunately take a few minutes. So, please be patient." msgstr "Außerdem sollten Sie wissen, dass anders als bei @command{git send-email} für @command{mumi send-email} sowohl einzelne als auch mehrere Patches direkt verschickt werden können. Das Debbugs-Prozedere, wo eigentlich erst ein erster Patch geschickt, auf Antwort von Debbugs gewartet und dann die übrigen Patches geschickt werden, geschieht im Hintergrund. Intern wird mumi den ersten Patch schicken, mit Polling die Antwort des Servers abwarten und die restlichen Patches schicken. Leider kann das Polling mehrere Minuten in Anspruch nehmen. Gedulden Sie sich bitte." #. type: subsubsection #: guix-git/doc/contributing.texi:2546 #, no-wrap msgid "Emacs Interface" msgstr "Emacs-Schnittstelle" #. type: Plain text #: guix-git/doc/contributing.texi:2550 msgid "If you use Emacs, you may find it more convenient to interact with issues using @file{debbugs.el}, which you can install with:" msgstr "Wenn Sie Emacs benutzen, finden Sie es vielleicht bequemer, sich durch Nutzung von @file{debbugs.el} mit Fehlern zu befassen, was Sie mit folgendem Befehl installieren können:" #. type: example #: guix-git/doc/contributing.texi:2553 #, no-wrap msgid "guix install emacs-debbugs\n" msgstr "guix install emacs-debbugs\n" #. type: Plain text #: guix-git/doc/contributing.texi:2556 msgid "For example, to list all open issues on @code{guix-patches}, hit:" msgstr "Um zum Beispiel alle noch ausstehenden, „offenen“ Fehler bezüglich @code{guix-patches} anzusehen, geben Sie dies ein:" #. type: example #: guix-git/doc/contributing.texi:2559 #, no-wrap msgid "@kbd{C-u} @kbd{M-x} debbugs-gnu @kbd{RET} @kbd{RET} guix-patches @kbd{RET} n y\n" msgstr "@kbd{C-u} @kbd{M-x} debbugs-gnu @kbd{RET} @kbd{RET} guix-patches @kbd{RET} n y\n" #. type: Plain text #: guix-git/doc/contributing.texi:2566 msgid "For a more convenient (shorter) way to access both the bugs and patches submissions, you may want to configure the @code{debbugs-gnu-default-packages} and @code{debbugs-gnu-default-severities} Emacs variables (@pxref{Viewing Bugs within Emacs})." msgstr "Um einen bequemeren (schnelleren) Zugang zu Bugs wie auch eingereichten Patches zu bekommen, empfehlen wir, die Emacs-Variablen @code{debbugs-gnu-default-packages} und @code{debbugs-gnu-default-severities} einzustellen (siehe @ref{Viewing Bugs within Emacs})." #. type: Plain text #: guix-git/doc/contributing.texi:2569 msgid "To search for bugs, @samp{@kbd{M-x} debbugs-gnu-guix-search} can be used." msgstr "Zur Suche nach Bugs können Sie @samp{@kbd{M-x} debbugs-gnu-guix-search} verwenden." #. type: Plain text #: guix-git/doc/contributing.texi:2572 msgid "@xref{Top,,, debbugs-ug, Debbugs User Guide}, for more information on this nifty tool!" msgstr "Siehe @ref{Top,,, debbugs-ug, Debbugs User Guide} für weitere Informationen zu diesem raffinierten Werkzeug." #. type: cindex #: guix-git/doc/contributing.texi:2576 #, no-wrap msgid "usertags, for debbugs" msgstr "Usertags, für Debbugs" #. type: cindex #: guix-git/doc/contributing.texi:2577 #, no-wrap msgid "Debbugs usertags" msgstr "Debbugs-Usertags" #. type: Plain text #: guix-git/doc/contributing.texi:2588 msgid "Debbugs provides a feature called @dfn{usertags} that allows any user to tag any bug with an arbitrary label. Bugs can be searched by usertag, so this is a handy way to organize bugs@footnote{The list of usertags is public information, and anyone can modify any user's list of usertags, so keep that in mind if you choose to use this feature.}. If you use Emacs Debbugs, the entry-point to consult existing usertags is the @samp{C-u M-x debbugs-gnu-usertags} procedure. To set a usertag, press @samp{C} while consulting a bug within the *Guix-Patches* buffer opened with @samp{C-u M-x debbugs-gnu-bugs} buffer, then select @code{usertag} and follow the instructions." msgstr "Debbugs bietet die Möglichkeit, sogenannte @dfn{Usertags} zu vergeben, d.h.@: jeder Benutzer kann jedem Fehlerbericht beliebige Kennzeichnungen zuweisen. Die gemeldeten Fehler können anhand der Usertags gesucht werden, deshalb lassen sich die Meldungen so gut organisieren@footnote{Die Liste der Usertags ist öffentlich zugänglich und jeder kann die Usertag-Liste jedes anderen Nutzers ändern. Sie sollten daran denken, wenn Sie diese Funktionalität gebrauchen möchten.}. Wenn Sie Emacs Debbugs verwenden, ist Ihr Einsprungpunkt, wenn Sie bestehende Usertags einsehen möchten, die Prozedur @samp{C-u M-x debbugs-gnu-usertags} aufzurufen. Um einen Usertag zu setzen, drücken Sie @samp{C}, während Sie einen Fehlerbericht im Buffer *Guix-Patches* anvisiert haben; den Buffer sehen Sie mit @samp{C-u M-x debbugs-gnu-bugs}. Geben Sie dann @code{usertag} ein und folgen Sie den Anweisungen." #. type: Plain text #: guix-git/doc/contributing.texi:2594 msgid "For example, to view all the bug reports (or patches, in the case of @code{guix-patches}) tagged with the usertag @code{powerpc64le-linux} for the user @code{guix}, open a URL like the following in a web browser: @url{https://debbugs.gnu.org/cgi-bin/pkgreport.cgi?tag=powerpc64le-linux;users=guix}." msgstr "Wenn Sie sich zum Beispiel alle Fehlerberichte (oder Patches, wenn Sie @code{guix-patches} betrachten) mit dem Usertag @code{powerpc64le-linux} für Benutzer @code{guix} ansehen möchten, öffnen Sie eine URL wie die folgende in einem Webbrowser: @url{https://debbugs.gnu.org/cgi-bin/pkgreport.cgi?tag=powerpc64le-linux;users=guix}." #. type: Plain text #: guix-git/doc/contributing.texi:2598 msgid "For more information on how to use usertags, please refer to the documentation for Debbugs or the documentation for whatever tool you use to interact with Debbugs." msgstr "Mehr Informationen, wie Sie Usertags benutzen können, finden Sie in der Dokumentation von Debbugs bzw.@: wenn Sie ein externes Programm benutzen, um mit Debbugs zu interagieren, in der Dokumentation dieses Programms." #. type: Plain text #: guix-git/doc/contributing.texi:2603 msgid "In Guix, we are experimenting with usertags to keep track of architecture-specific issues, as well as reviewed ones. To facilitate collaboration, all our usertags are associated with the single user @code{guix}. The following usertags currently exist for that user:" msgstr "In Guix experimentieren wir damit, Usertags zum Beobachten von Fehlern zu verwenden, die nur bestimmte Architekturen betreffen oder die jemand bereits begutachtet hat (Überprüfung/Review). Zur leichteren Zusammenarbeit verbinden wir all unsere Usertags einzig mit dem Benutzer @code{guix}. Für diesen Benutzer gibt es zurzeit folgende Usertags:" #. #-#-#-#-# contributing.pot (guix manual checkout) #-#-#-#-# #. type: item #. #-#-#-#-# guix.pot (guix manual checkout) #-#-#-#-# #. type: defvar #: guix-git/doc/contributing.texi:2606 guix-git/doc/guix.texi:650 #: guix-git/doc/guix.texi:47669 #, no-wrap msgid "powerpc64le-linux" msgstr "powerpc64le-linux" #. type: table #: guix-git/doc/contributing.texi:2614 msgid "The purpose of this usertag is to make it easy to find the issues that matter most for the @code{powerpc64le-linux} system type. Please assign this usertag to bugs or patches that affect @code{powerpc64le-linux} but not other system types. In addition, you may use it to identify issues that for some reason are particularly important for the @code{powerpc64le-linux} system type, even if the issue affects other system types, too." msgstr "Mit diesem Usertag wollen wir es leichter machen, die Fehler zu finden, die für den Systemtyp @code{powerpc64le-linux} am wichtigsten sind. Bitte weisen Sie ihn solchen Bugs oder Patches zu, die nur @code{powerpc64le-linux} und keine anderen Systemtypen betreffen. Des Weiteren können Sie damit Probleme kennzeichnen, die für den Systemtyp @code{powerpc64le-linux} besonders bedeutsam sind, selbst wenn das Problem sich auch bei anderen Systemtypen zeigt." #. #-#-#-#-# contributing.pot (guix manual checkout) #-#-#-#-# #. type: item #. #-#-#-#-# guix.pot (guix manual checkout) #-#-#-#-# #. type: cindex #: guix-git/doc/contributing.texi:2615 guix-git/doc/guix.texi:2961 #: guix-git/doc/guix.texi:4893 #, no-wrap msgid "reproducibility" msgstr "reproducibility" #. type: table #: guix-git/doc/contributing.texi:2619 msgid "For issues related to reproducibility. For example, it would be appropriate to assign this usertag to a bug report for a package that fails to build reproducibly." msgstr "Verwenden Sie den Usertag @code{reproducibility} für Fehler in der Reproduzierbarkeit einer Erstellung. Es wäre zum Beispiel angemessen, den Usertag für einen Fehlerbericht zu einem Paket zuzuweisen, das nicht reproduzierbar erstellt wird." #. type: item #: guix-git/doc/contributing.texi:2620 #, no-wrap msgid "reviewed-looks-good" msgstr "reviewed-looks-good" #. type: table #: guix-git/doc/contributing.texi:2622 msgid "You have reviewed the series and it looks good to you (LGTM)." msgstr "Sie haben die Patchserie überprüft und für gut befunden („looks good to me“, LGTM)." #. type: Plain text #: guix-git/doc/contributing.texi:2629 msgid "If you're a committer and you want to add a usertag, just start using it with the @code{guix} user. If the usertag proves useful to you, consider updating this section of the manual so that others will know what your usertag means." msgstr "Wenn Sie Commit-Zugriff haben und einen neuen Usertag verwenden möchten, dann fangen Sie einfach an, ihn mit dem Benutzer @code{guix} zu benutzen. Erweist sich der Usertag für Sie als nützlich, sollten Sie vielleicht diesen Handbuchabschnitt ergänzen, um andere in Kenntnis zu setzen, was Ihr Usertag bedeutet." #. type: cindex #: guix-git/doc/contributing.texi:2633 #, no-wrap msgid "build event notifications, RSS feed" msgstr "Erstellungsereignisse, Benachrichtigung per RSS-Feed" #. type: cindex #: guix-git/doc/contributing.texi:2634 #, no-wrap msgid "notifications, build events" msgstr "Benachrichtigungen, Erstellungsereignisse" #. type: Plain text #: guix-git/doc/contributing.texi:2643 msgid "Cuirass includes @acronym{RSS, Really Simple Syndication} feeds as one of its features (@pxref{Notifications,,,cuirass}). Since @url{https://ci.guix.gnu.org/, Berlin} runs an instance of Cuirass, this feature can be used to keep track of recently broken or fixed packages caused by changes pushed to the Guix git repository. Any RSS client can be used. A good one, included with Emacs, is @xref{Gnus,,,gnus}. To register the feed, copy its URL, then from the main Gnus buffer, @samp{*Group*}, do the following:" msgstr "Eine der Funktionen von Cuirass ist, Mitteilungen per @acronym{RSS, Really Simple Syndication}-Feed zu verschicken (siehe @ref{Notifications,,,cuirass}). Weil auf @url{https://ci.guix.gnu.org/, Berlin} eine Instanz von Cuirass läuft, können Sie sich über diese Funktion benachrichtigen lassen, welche Pakete sich seit kurzem nicht mehr oder jetzt wieder erstellen lassen, weil jemand Änderungen auf das Guix-Git-Repository gepusht hat. Sie können einen beliebigen RSS-Client benutzen. Eine gute Wahl, die bei Emacs mit dabei ist, ist @xref{Gnus,,,gnus}. Um den Feed zu registrieren, kopieren Sie seine URL und tun dann Folgendes in Gnus’ Hauptpuffer @samp{*Group*}:" #. type: cindex #: guix-git/doc/contributing.texi:2644 #, no-wrap msgid "Gnus, configuration to read CI RSS feeds" msgstr "Gnus, RSS-Feeds der CI einrichten" #. type: cindex #: guix-git/doc/contributing.texi:2645 #, no-wrap msgid "RSS feeds, Gnus configuration" msgstr "RSS-Feeds, Gnus-Konfiguration" #. type: example #: guix-git/doc/contributing.texi:2649 #, no-wrap msgid "" "@kbd{G R} https://ci.guix.gnu.org/events/rss/?specification=master RET\n" "Guix CI - master RET Build events for specification master. RET\n" msgstr "" "@kbd{G R} https://ci.guix.gnu.org/events/rss/?specification=master RET\n" "Guix CI - master RET Erstellungsereignisse der Spezifikation master. RET\n" #. type: Plain text #: guix-git/doc/contributing.texi:2656 msgid "Then, back at the @samp{*Group*} buffer, press @kbd{s} to save the newly added RSS group. As for any other Gnus group, you can update its content by pressing the @kbd{g} key. You should now receive notifications that read like:" msgstr "Wenn Sie danach wieder im Puffer @samp{*Group*} sind, drücken Sie @kbd{s}, um die neu hinzugefügte RSS-Gruppe zu speichern. Wie bei jeder anderen Gnus-Gruppe können Sie deren Inhalt aktualisieren, indem Sie die Taste @kbd{g} drücken. Nun sollten Sie solche Mitteilungen empfangen wie:" #. type: example #: guix-git/doc/contributing.texi:2661 #, no-wrap msgid "" " . [ ?: Cuirass ] Build tree-sitter-meson.aarch64-linux on master is fixed.\n" " . [ ?: Cuirass ] Build rust-pbkdf2.aarch64-linux on master is fixed.\n" " . [ ?: Cuirass ] Build rust-pbkdf2.x86_64-linux on master is fixed.\n" msgstr "" " . [ ?: Cuirass ] Build tree-sitter-meson.aarch64-linux on master is fixed.\n" " . [ ?: Cuirass ] Build rust-pbkdf2.aarch64-linux on master is fixed.\n" " . [ ?: Cuirass ] Build rust-pbkdf2.x86_64-linux on master is fixed.\n" #. type: Plain text #: guix-git/doc/contributing.texi:2666 msgid "where each RSS entry contains a link to the Cuirass build details page of the associated build." msgstr "Jeder dieser RSS-Einträge verweist dabei auf die Details-Seite der entsprechenden Erstellung auf Cuirass." #. type: cindex #: guix-git/doc/contributing.texi:2670 #, no-wrap msgid "commit access, for developers" msgstr "Commit-Zugriff, für Entwickler" #. type: Plain text #: guix-git/doc/contributing.texi:2692 msgid "Everyone can contribute to Guix without having commit access (@pxref{Submitting Patches}). However, for frequent contributors, having write access to the repository can be convenient. As a rule of thumb, a contributor should have accumulated fifty (50) reviewed commits to be considered as a committer and have sustained their activity in the project for at least 6 months. This ensures enough interactions with the contributor, which is essential for mentoring and assessing whether they are ready to become a committer. Commit access should not be thought of as a ``badge of honor'' but rather as a responsibility a contributor is willing to take to help the project. It is expected from all contributors, and even more so from committers, to help build consensus and make decisions based on consensus. By using consensus, we are committed to finding solutions that everyone can live with. It implies that no decision is made against significant concerns and these concerns are actively resolved with proposals that work for everyone. A contributor (which may or may not have commit access) wishing to block a proposal bears a special responsibility for finding alternatives, proposing ideas/code or explain the rationale for the status quo to resolve the deadlock. To learn what consensus decision making means and understand its finer details, you are encouraged to read @url{https://www.seedsforchange.org.uk/consensus}." msgstr "Jeder kann bei Guix mitmachen, auch ohne Commit-Zugriff zu haben (siehe @ref{Submitting Patches}). Für Leute, die häufig zu Guix beitragen, kann es jedoch praktischer sein, Schreibzugriff auf das Repository zu haben. Als Daumenregel sollte ein Mitwirkender 50-mal überprüfte Commits eingebracht haben, um als Committer zu gelten, und schon mindestens 6 Monate im Projekt aktiv sein. Dadurch gab es genug Zusammenarbeit, um Mitwirkende einzuarbeiten und einzuschätzen, ob sie so weit sind, Committer zu werden. Dieser Commit-Zugriff sollte nicht als Auszeichnung verstanden werden, sondern als Verantwortung, die ein Mitwirkender auf sich nimmt, um dem Projekt zu helfen. Von allen Mitwirkenden wird erwartet, und erst recht von Committern, zu einer Konsensbildung beizutragen und Entscheidungen mit Konsens zu treffen. Weil wir Konsens wollen, haben wir das Ziel, Lösungen zu finden, mit denen jeder leben kann. Es bedeutet, dass wir keine Entscheidung gegen größere Bedenken fällen und wir solche Bedenken aktiv mit Vorschlägen angehen, die alle gut finden. Wenn ein Mitwirkender (mit oder ohne Commit-Zugriff) sich gegen einen Vorschlag sperren möchte, geht auch damit besondere Verantwortung einher, andere Möglichkeiten zu finden und Ideen oder Code einzubringen bzw.@: den Grund darzulegen, weshalb es so bleiben sollte, wie es ist. Vorschläge sollen @emph{nicht} stecken bleiben. Wir ermutigen Sie dazu, @url{https://www.seedsforchange.org.uk/consensus} zu lesen, um ein Verständnis für Konsensentscheidungen zu entwickeln und Einzelheiten zu meistern." #. type: Plain text #: guix-git/doc/contributing.texi:2696 msgid "The following sections explain how to get commit access, how to be ready to push commits, and the policies and community expectations for commits pushed upstream." msgstr "Im folgenden Abschnitt wird beschrieben, wie jemand Commit-Zugriff bekommt, was man tun muss, bevor man zum ersten Mal einen Commit pusht, und welche Richtlinien und Erwartungen die Gemeinschaft an Commits richtet, die auf das offizielle Repository gepusht werden." #. type: subsection #: guix-git/doc/contributing.texi:2697 #, no-wrap msgid "Applying for Commit Access" msgstr "Um Commit-Zugriff bewerben" #. type: Plain text #: guix-git/doc/contributing.texi:2701 msgid "When you deem it necessary, consider applying for commit access by following these steps:" msgstr "Wenn Sie es für angemessen halten, dann sollten Sie in Erwägung ziehen, sich wie folgt um Commit-Zugriff zu bewerben:" #. type: enumerate #: guix-git/doc/contributing.texi:2710 msgid "Find three committers who would vouch for you. You can view the list of committers at @url{https://savannah.gnu.org/project/memberlist.php?group=guix}. Each of them should email a statement to @email{guix-maintainers@@gnu.org} (a private alias for the collective of maintainers), signed with their OpenPGP key." msgstr "Finden Sie drei Committer, die für Sie eintreten. Sie können die Liste der Committer unter @url{https://savannah.gnu.org/project/memberlist.php?group=guix} finden. Jeder von ihnen sollte eine entsprechende Erklärung per E-Mail an @email{guix-maintainers@@gnu.org} schicken (eine private Alias-Adresse für das Kollektiv aus allen Betreuern bzw.@: Maintainern), die jeweils mit ihrem OpenPGP-Schlüssel signiert wurde." #. type: enumerate #: guix-git/doc/contributing.texi:2716 msgid "Committers are expected to have had some interactions with you as a contributor and to be able to judge whether you are sufficiently familiar with the project's practices. It is @emph{not} a judgment on the value of your work, so a refusal should rather be interpreted as ``let's try again later''." msgstr "Von den Committern wird erwartet, dass sie bereits mit Ihnen als Mitwirkendem zu tun hatten und beurteilen können, ob Sie mit den Richtlinien des Projekts hinreichend vertraut sind. Dabei geht es @emph{nicht} darum, wie wertvoll Ihre Beiträge sind, daher sollte eine Ablehnung mehr als „schauen wir später nochmal“ verstanden werden." #. type: enumerate #: guix-git/doc/contributing.texi:2723 msgid "Send @email{guix-maintainers@@gnu.org} a message stating your intent, listing the three committers who support your application, signed with the OpenPGP key you will use to sign commits, and giving its fingerprint (see below). See @uref{https://emailselfdefense.fsf.org/en/}, for an introduction to public-key cryptography with GnuPG." msgstr "Senden Sie eine Nachricht an @email{guix-maintainers@@gnu.org}, in der Sie Ihre Bereitschaft darlegen und die Namen der drei Committer nennen, die Ihre Bewerbung unterstützen. Die Nachricht sollte mit dem OpenPGP-Schlüssel signiert sein, mit dem Sie später auch Ihre Commits signieren, und Sie sollten den Fingerabdruck hinterlegen (siehe unten). Siehe @uref{https://emailselfdefense.fsf.org/de/} für eine Einführung in asymmetrische Kryptografie („Public-Key“) mit GnuPG." #. type: enumerate #: guix-git/doc/contributing.texi:2729 msgid "Set up GnuPG such that it never uses the SHA1 hash algorithm for digital signatures, which is known to be unsafe since 2019, for instance by adding the following line to @file{~/.gnupg/gpg.conf} (@pxref{GPG Esoteric Options,,, gnupg, The GNU Privacy Guard Manual}):" msgstr "Richten Sie GnuPG so ein, dass es niemals den SHA1-Hashalgorithmus für digitale Signaturen verwendet, der seit 2019 bekanntlich unsicher ist. Fügen Sie dazu zum Beispiel folgende Zeile in @file{~/.gnupg/gpg.conf} ein (siehe @ref{GPG Esoteric Options,,, gnupg, The GNU Privacy Guard Manual}):" #. type: example #: guix-git/doc/contributing.texi:2732 #, no-wrap msgid "digest-algo sha512\n" msgstr "digest-algo sha512\n" #. type: enumerate #: guix-git/doc/contributing.texi:2737 msgid "Maintainers ultimately decide whether to grant you commit access, usually following your referrals' recommendation." msgstr "Betreuer entscheiden letztendlich darüber, ob Ihnen Commit-Zugriff gegeben wird, folgen dabei aber normalerweise der Empfehlung Ihrer Fürsprecher." #. type: cindex #: guix-git/doc/contributing.texi:2739 #, no-wrap msgid "OpenPGP, signed commits" msgstr "OpenPGP, signierte Commits" #. type: enumerate #: guix-git/doc/contributing.texi:2744 msgid "If and once you've been given access, please send a message to @email{guix-devel@@gnu.org} to say so, again signed with the OpenPGP key you will use to sign commits (do that before pushing your first commit). That way, everyone can notice and ensure you control that OpenPGP key." msgstr "Wenn und sobald Ihnen Zugriff gewährt wurde, senden Sie bitte eine Nachricht an @email{guix-devel@@gnu.org}, um dies bekanntzugeben, die Sie erneut mit dem OpenPGP-Schlüssel signiert haben, mit dem Sie Commits signieren (tun Sie das, bevor Sie Ihren ersten Commit pushen). Auf diese Weise kann jeder Ihren Beitritt mitbekommen und nachprüfen, dass dieser OpenPGP-Schlüssel wirklich Ihnen gehört." #. type: quotation #: guix-git/doc/contributing.texi:2745 guix-git/doc/guix.texi:706 #: guix-git/doc/guix.texi:738 guix-git/doc/guix.texi:21896 #: guix-git/doc/guix.texi:35051 guix-git/doc/guix.texi:35670 #, no-wrap msgid "Important" msgstr "Wichtig" #. type: quotation #: guix-git/doc/contributing.texi:2747 msgid "Before you can push for the first time, maintainers must:" msgstr "Bevor Sie zum ersten Mal pushen dürfen, müssen die Betreuer:" #. type: enumerate #: guix-git/doc/contributing.texi:2751 msgid "add your OpenPGP key to the @code{keyring} branch;" msgstr "Ihren OpenPGP-Schlüssel zum @code{keyring}-Branch hinzugefügt haben," #. type: enumerate #: guix-git/doc/contributing.texi:2754 msgid "add your OpenPGP fingerprint to the @file{.guix-authorizations} file of the branch(es) you will commit to." msgstr "Ihren OpenPGP-Fingerabdruck in die Datei @file{.guix-authorizations} derjenigen Branches eingetragen haben, auf die Sie commiten möchten." #. type: enumerate #: guix-git/doc/contributing.texi:2759 msgid "Make sure to read the rest of this section and... profit!" msgstr "Wenn Sie den Rest dieses Abschnitts jetzt auch noch lesen, steht Ihrer Karriere nichts mehr im Weg!" #. type: quotation #: guix-git/doc/contributing.texi:2765 msgid "Maintainers are happy to give commit access to people who have been contributing for some time and have a track record---don't be shy and don't underestimate your work!" msgstr "Betreuer geben gerne anderen Leuten Commit-Zugriff, die schon einige Zeit dabei waren und ihre Eignung unter Beweis gestellt haben. Seien Sie nicht schüchtern und unterschätzen Sie Ihre Arbeit nicht!" #. type: quotation #: guix-git/doc/contributing.texi:2769 msgid "However, note that the project is working towards a more automated patch review and merging system, which, as a consequence, may lead us to have fewer people with commit access to the main repository. Stay tuned!" msgstr "Sie sollten sich bewusst sein, dass unser Projekt auf ein besser automatisiertes System hinarbeitet, um Patches zu überprüfen und zu mergen. Als Folge davon werden wir vielleicht weniger Leuten Commit-Zugriff auf das Haupt-Repository geben. Bleiben Sie auf dem Laufenden!" #. type: Plain text #: guix-git/doc/contributing.texi:2776 msgid "All commits that are pushed to the central repository on Savannah must be signed with an OpenPGP key, and the public key should be uploaded to your user account on Savannah and to public key servers, such as @code{keys.openpgp.org}. To configure Git to automatically sign commits, run:" msgstr "Alle Commits, die auf das zentrale Repository auf Savannah gepusht werden, müssen mit einem OpenPGP-Schlüssel signiert worden sein, und diesen öffentlichen Schlüssel sollten Sie auf Ihr Benutzerkonto auf Savannah und auf öffentliche Schlüsselserver wie @code{keys.openpgp.org} hochladen. Um Git so zu konfigurieren, dass es Commits automatisch signiert, führen Sie diese Befehle aus:" #. type: example #: guix-git/doc/contributing.texi:2779 #, no-wrap msgid "" "git config commit.gpgsign true\n" "\n" msgstr "" "git config commit.gpgsign true\n" "\n" #. type: example #: guix-git/doc/contributing.texi:2782 #, no-wrap msgid "" "# Substitute the fingerprint of your public PGP key.\n" "git config user.signingkey CABBA6EA1DC0FF33\n" msgstr "" "# Ersetzen Sie den Fingerabdruck durch Ihren öffentlichen PGP-Schlüssel.\n" "git config user.signingkey CABBA6EA1DC0FF33\n" #. type: Plain text #: guix-git/doc/contributing.texi:2785 msgid "To check that commits are signed with correct key, use:" msgstr "Um zu prüfen, ob Commits mit dem richtigen Schlüssel signiert wurden, benutzen Sie:" #. type: Plain text #: guix-git/doc/contributing.texi:2792 msgid "@xref{Building from Git} for running the first authentication of a Guix checkout." msgstr "Siehe @ref{Building from Git}, wie man zum ersten Mal ein Guix-Checkout authentifiziert." #. type: Plain text #: guix-git/doc/contributing.texi:2796 msgid "To avoid accidentally pushing unsigned or signed with the wrong key commits to Savannah, make sure to configure Git according to @xref{Configuring Git}." msgstr "Als Vorsichtsmaßnahme, um @emph{nicht} versehentlich unsignierte oder mit dem falschen Schlüssel signierte Commits auf Savannah zu pushen, sollten Sie Git so eingerichtet haben, wie es in @ref{Configuring Git} vorgeschrieben ist." #. type: subsection #: guix-git/doc/contributing.texi:2797 #, no-wrap msgid "Commit Policy" msgstr "Commit-Richtlinie" #. type: Plain text #: guix-git/doc/contributing.texi:2802 msgid "If you get commit access, please make sure to follow the policy below (discussions of the policy can take place on @email{guix-devel@@gnu.org})." msgstr "Wenn Sie Commit-Zugriff erhalten, passen Sie bitte auf, dass Sie der folgenden Richtlinie folgen (Diskussionen über die Richtlinie können wir auf @email{guix-devel@@gnu.org} führen)." #. type: Plain text #: guix-git/doc/contributing.texi:2806 msgid "Ensure you're aware of how the changes should be handled (@pxref{Managing Patches and Branches}) prior to being pushed to the repository, especially for the @code{master} branch." msgstr "Das Verfahren, das Änderungsvorschläge durchlaufen (siehe @ref{Managing Patches and Branches}), muss Ihnen bekannt sein, wenn es um Pushs auf das Repository geht, gerade beim @code{master}-Branch." #. type: Plain text #: guix-git/doc/contributing.texi:2811 msgid "If you're committing and pushing your own changes, try and wait at least one week (two weeks for more significant changes) after you send them for review. After this, if no one else is available to review them and if you're confident about the changes, it's OK to commit." msgstr "Wenn es Ihre eigenen Änderungen sind, die Sie commiten und pushen, lassen Sie mindestens eine Woche Zeit, damit andere Ihre Änderungen begutachten können (zwei Wochen bei nennenswerten Änderungen), nachdem Sie sie zum Überprüfen eingeschickt haben. Wenn danach niemand anders die Zeit zum Prüfen findet und Sie von den Änderungen überzeugt sind, ist es in Ordnung, sie zu commiten." #. type: Plain text #: guix-git/doc/contributing.texi:2816 msgid "When pushing a commit on behalf of somebody else, please add a @code{Signed-off-by} line at the end of the commit log message---e.g., with @command{git am --signoff}. This improves tracking of who did what." msgstr "Wenn Sie einen Commit für jemand anderen pushen, fügen Sie bitte eine @code{Signed-off-by}-Zeile am Ende der Commit-Log-Nachricht hinzu@tie{}– z.B.@: mit @command{git am --signoff}. Dadurch lässt es sich leichter überblicken, wer was getan hat." #. type: Plain text #: guix-git/doc/contributing.texi:2820 msgid "When adding channel news entries (@pxref{Channels, Writing Channel News}), make sure they are well-formed by running the following command right before pushing:" msgstr "Wenn Sie Kanalneuigkeiten hinzufügen (siehe @ref{Channels, Kanalneuigkeiten verfassen}), dann sollten Sie prüfen, dass diese wohlgeformt sind, indem Sie den folgenden Befehl direkt vor dem Pushen ausführen:" #. type: example #: guix-git/doc/contributing.texi:2823 #, no-wrap msgid "make check-channel-news\n" msgstr "make check-channel-news\n" #. type: subsection #: guix-git/doc/contributing.texi:2825 #, no-wrap msgid "Addressing Issues" msgstr "Mit Fehlern umgehen" #. type: Plain text #: guix-git/doc/contributing.texi:2836 msgid "Peer review (@pxref{Submitting Patches}) and tools such as @command{guix lint} (@pxref{Invoking guix lint}) and the test suite (@pxref{Running the Test Suite}) should catch issues before they are pushed. Yet, commits that ``break'' functionality might occasionally go through. When that happens, there are two priorities: mitigating the impact, and understanding what happened to reduce the chance of similar incidents in the future. The responsibility for both these things primarily lies with those involved, but like everything this is a group effort." msgstr "Durch Begutachten der von anderen eingereichten Patches („Peer-Review“, siehe @ref{Submitting Patches}) und durch Werkzeuge wie @command{guix lint} (siehe @ref{Invoking guix lint}) und den Testkatalog (siehe @ref{Running the Test Suite}) sollten Sie Fehler finden können, ehe sie gepusht wurden. Trotz allem kann es gelegentlich vorkommen, dass nicht bemerkt wird, wenn nach einem Commit etwas in Guix nicht mehr funktioniert. Wenn das passiert, haben zwei Dinge Vorrang: Schadensbegrenzung und Verstehen, was passiert ist, damit es nicht wieder zu vergleichbaren Fehlern kommt. Die Verantwortung dafür tragen in erster Linie die Beteiligten, aber wie bei allem anderen handelt es sich um eine Aufgabe der Gruppe." #. type: Plain text #: guix-git/doc/contributing.texi:2841 msgid "Some issues can directly affect all users---for instance because they make @command{guix pull} fail or break core functionality, because they break major packages (at build time or run time), or because they introduce known security vulnerabilities." msgstr "Manche Fehler können sofort alle Nutzer betreffen, etwa wenn @command{guix pull} dadurch nicht mehr funktioniert oder Kernfunktionen von Guix ausfallen, wenn wichtige Pakete nicht mehr funktionieren (zur Erstellungs- oder zur Laufzeit) oder wenn bekannte Sicherheitslücken eingeführt werden." #. type: cindex #: guix-git/doc/contributing.texi:2842 #, no-wrap msgid "reverting commits" msgstr "Revert von Commits" #. type: Plain text #: guix-git/doc/contributing.texi:2848 msgid "The people involved in authoring, reviewing, and pushing such commit(s) should be at the forefront to mitigate their impact in a timely fashion: by pushing a followup commit to fix it (if possible), or by reverting it to leave time to come up with a proper fix, and by communicating with other developers about the problem." msgstr "Die am Verfassen, Begutachten und Pushen von Commits Beteiligten sollten zu den ersten gehören, die für zeitnahe Schadensbegrenzung sorgen, indem sie mit einem nachfolgenden Commit („Follow-up“) den Fehler falls möglich beseitigen oder den vorherigen Commit rückgängig machen („Revert“), damit Zeit ist, das Problem auf ordentliche Weise zu beheben. Auch sollten sie das Problem mit anderen Entwicklern bereden." #. type: Plain text #: guix-git/doc/contributing.texi:2854 msgid "If these persons are unavailable to address the issue in time, other committers are entitled to revert the commit(s), explaining in the commit log and on the mailing list what the problem was, with the goal of leaving time to the original committer, reviewer(s), and author(s) to propose a way forward." msgstr "Wenn diese Personen nicht verfügbar sind, um den Fehler zeitnah zu beheben, steht es anderen Committern zu, deren Commit(s) zu reverten und im Commit-Log und auf der Mailingliste zu erklären, was das Problem war. Ziel ist, dem oder den ursprünglichen Committer(n), Begutachter(n) und Autoren mit mehr Zeit Gelegenheit zu geben, einen Vorschlag zum weiteren Vorgehen zu machen." #. type: Plain text #: guix-git/doc/contributing.texi:2863 msgid "Once the problem has been dealt with, it is the responsibility of those involved to make sure the situation is understood. If you are working to understand what happened, focus on gathering information and avoid assigning any blame. Do ask those involved to describe what happened, do not ask them to explain the situation---this would implicitly blame them, which is unhelpful. Accountability comes from a consensus about the problem, learning from it and improving processes so that it's less likely to reoccur." msgstr "Wenn das Problem erledigt wurde, müssen die Beteiligten ein Verständnis für die Situation sicherstellen. Während Sie sich um Verständnis bemühen, legen Sie den Fokus auf das Sammeln von Informationen und vermeiden Sie Schuldzuweisungen. Lassen Sie die Beteiligten beschreiben, was passiert ist, aber bitten Sie sie nicht, die Situation zu erklären, weil ihnen das implizit Schuld zuspricht, was nicht hilfreich ist. Verantwortung ergibt sich aus Einigkeit über das Problem, dass man daraus lernt und die Prozesse verbessert, damit es nicht wieder vorkommt." #. type: subsection #: guix-git/doc/contributing.texi:2864 #, no-wrap msgid "Commit Revocation" msgstr "Entzug des Commit-Zugriffs" #. type: Plain text #: guix-git/doc/contributing.texi:2871 msgid "In order to reduce the possibility of mistakes, committers will have their Savannah account removed from the Guix Savannah project and their key removed from @file{.guix-authorizations} after 12 months of inactivity; they can ask to regain commit access by emailing the maintainers, without going through the vouching process." msgstr "Damit es weniger wahrscheinlich ist, dass Fehler passieren, werden wir das Savannah-Konto von Committern nach 12 Monaten der Inaktivität aus dem Guix-Projekt bei Savannah löschen und ihren Schlüssel aus @file{.guix-authorizations} entfernen. Solche Committer können den Betreuern eine E-Mail schicken, um ohne einen Durchlauf des Fürsprecherprozesses wieder Commit-Zugriff zu bekommen." #. type: Plain text #: guix-git/doc/contributing.texi:2881 msgid "Maintainers@footnote{See @uref{https://guix.gnu.org/en/about} for the current list of maintainers. You can email them privately at @email{guix-maintainers@@gnu.org}.} may also revoke an individual's commit rights, as a last resort, if cooperation with the rest of the community has caused too much friction---even within the bounds of the project's code of conduct (@pxref{Contributing}). They would only do so after public or private discussion with the individual and a clear notice. Examples of behavior that hinders cooperation and could lead to such a decision include:" msgstr "Betreuer@footnote{Siehe @uref{https://guix.gnu.org/en/about} für eine Liste der Betreuer. Sie können ihnen eine private E-Mail schicken an @email{guix-maintainers@@gnu.org}.} dürfen als letzten Ausweg auch jemandem die Commit-Berechtigung entziehen, wenn die Zusammenarbeit mit der übrigen Gemeinde zu viel Reibung erzeugt hat@tie{}– selbst wenn sich alles im Rahmen der Verhaltensregeln abgespielt hat (siehe @ref{Contributing}). Davon machen Betreuer nur Gebrauch nach öffentlichen oder privaten Diskussionen mit der betroffenen Person und nach eindeutiger Ankündigung. Beispiele für Verhalten, das die Zusammenarbeit behindert und zu so einer Entscheidung führen könnte, sind:" #. type: item #: guix-git/doc/contributing.texi:2883 #, no-wrap msgid "repeated violation of the commit policy stated above;" msgstr "wiederholte Verletzung der oben beschriebenen Commit-Richtlinie," #. type: item #: guix-git/doc/contributing.texi:2884 #, no-wrap msgid "repeated failure to take peer criticism into account;" msgstr "wiederholtes Ignorieren von Kritik anderer Entwickler," #. type: item #: guix-git/doc/contributing.texi:2885 #, no-wrap msgid "breaching trust through a series of grave incidents." msgstr "verletztes Vertrauen durch mehrere schwere Vorkommnisse in Folge." #. type: Plain text #: guix-git/doc/contributing.texi:2892 msgid "When maintainers resort to such a decision, they notify developers on @email{guix-devel@@gnu.org}; inquiries may be sent to @email{guix-maintainers@@gnu.org}. Depending on the situation, the individual may still be welcome to contribute." msgstr "Wenn Betreuer diesen Entschluss treffen, benachrichtigen sie die Entwickler auf @email{guix-devel@@gnu.org}; Anfragen können an @email{guix-maintainers@@gnu.org} gesendet werden. Abhängig von der Situation wird ein Mitwirken der Betroffenen trotzdem weiterhin gerne gesehen." #. type: subsection #: guix-git/doc/contributing.texi:2893 #, no-wrap msgid "Helping Out" msgstr "Aushelfen" #. type: Plain text #: guix-git/doc/contributing.texi:2900 msgid "One last thing: the project keeps moving forward because committers not only push their own awesome changes, but also offer some of their time @emph{reviewing} and pushing other people's changes. As a committer, you're welcome to use your expertise and commit rights to help other contributors, too!" msgstr "Eine Sache noch: Das Projekt entwickelt sich nicht nur deswegen schnell, weil Committer ihre eigenen tollen Änderungen pushen, sondern auch, weil sie sich Zeit nehmen, die Änderungen anderer Leute in „Reviews“ zu @emph{überprüfen} und zu pushen. Wir begrüßen es, wenn Sie als Committer Ihre Expertise und Commit-Rechte dafür einsetzen, auch anderen Mitwirkenden zu helfen!" #. type: Plain text #: guix-git/doc/contributing.texi:2914 msgid "Perhaps the biggest action you can do to help GNU Guix grow as a project is to review the work contributed by others. You do not need to be a committer to do so; applying, reading the source, building, linting and running other people's series and sharing your comments about your experience will give some confidence to committers. Basically, you must ensure the check list found in the @ref{Submitting Patches} section has been correctly followed. A reviewed patch series should give the best chances for the proposed change to be merged faster, so if a change you would like to see merged hasn't yet been reviewed, this is the most appropriate thing to do!" msgstr "Den wohl größten Nutzen, damit GNU Guix als Projekt wächst, steuern Sie bei, wenn Sie die Beiträge von anderen gegenlesen und überprüfen. Dazu müssen Sie kein Committer sein; Sie wenden den Patch an (@command{git am} bzw.@: @command{git apply}), lesen den Quellcode, erstellen ihn und setzen ihn Linting aus, außerdem können Sie die Patchreihen anderer Leute auf Ihrem Rechner ausprobieren und kommentieren, wie Sie zurechtkommen, was anderen Committern Sicherheit gibt. Vereinfacht gesagt stellen Sie sicher, dass der Prüfliste aus dem Abschnitt @ref{Submitting Patches} korrekt Folge geleistet wurde. Wenn eine Patchserie bereits überprüft worden ist, dann hat sie die besten Chancen, schneller ins Repository gemerget zu werden. Wenn Sie also gerne eine Änderung angenommen sehen würden und diese noch niemand überprüft hat, dann übernehmen am besten Sie die Aufgabe!" #. type: cindex #: guix-git/doc/contributing.texi:2915 #, no-wrap msgid "reviewing, guidelines" msgstr "Überprüfen, Richtlinien" #. type: Plain text #: guix-git/doc/contributing.texi:2920 msgid "Review comments should be unambiguous; be as clear and explicit as you can about what you think should be changed, ensuring the author can take action on it. Please try to keep the following guidelines in mind during review:" msgstr "" #. type: enumerate #: guix-git/doc/contributing.texi:2926 msgid "@emph{Be clear and explicit about changes you are suggesting}, ensuring the author can take action on it. In particular, it is a good idea to explicitly ask for new revisions when you want it." msgstr "" #. type: enumerate #: guix-git/doc/contributing.texi:2934 msgid "@emph{Remain focused: do not change the scope of the work being reviewed.} For example, if the contribution touches code that follows a pattern deemed unwieldy, it would be unfair to ask the submitter to fix all occurrences of that pattern in the code; to put it simply, if a problem unrelated to the patch at hand was already there, do not ask the submitter to fix it." msgstr "" #. type: enumerate #: guix-git/doc/contributing.texi:2941 msgid "@emph{Ensure progress.} As they respond to review, submitters may submit new revisions of their changes; avoid requesting changes that you did not request in the previous round of comments. Overall, the submitter should get a clear sense of progress; the number of items open for discussion should clearly decrease over time." msgstr "" #. type: enumerate #: guix-git/doc/contributing.texi:2948 msgid "@emph{Aim for finalization.} Reviewing code is time-consuming. Your goal as a reviewer is to put the process on a clear path towards integration, possibly with agreed-upon changes, or rejection, with a clear and mutually-understood reasoning. Avoid leaving the review process in a lingering state with no clear way out." msgstr "" #. type: enumerate #: guix-git/doc/contributing.texi:2960 msgid "@emph{Review is a discussion.} The submitter's and reviewer's views on how to achieve a particular change may not always be aligned. To lead the discussion, remain focused, ensure progress and aim for finalization, spending time proportional to the stakes@footnote{The tendency to discuss minute details at length is often referred to as ``bikeshedding'', where much time is spent discussing each one's preference for the color of the shed at the expense of progress made on the project to keep bikes dry.}. As a reviewer, try hard to explain the rationale for suggestions you make, and to understand and take into account the submitter's motivation for doing things in a certain way." msgstr "" #. type: cindex #: guix-git/doc/contributing.texi:2962 #, no-wrap msgid "LGTM, Looks Good To Me" msgstr "LGTM, Looks Good To Me" #. type: cindex #: guix-git/doc/contributing.texi:2963 #, no-wrap msgid "review tags" msgstr "" #. type: cindex #: guix-git/doc/contributing.texi:2964 #, no-wrap msgid "Reviewed-by, git trailer" msgstr "Reviewed-by, Git-Anhangszeile" #. type: Plain text #: guix-git/doc/contributing.texi:2975 msgid "When you deem the proposed change adequate and ready for inclusion within Guix, the following well understood/codified @samp{Reviewed-by:@tie{}Your@tie{}Name@tie{}<your-email@@example.com>} @footnote{The @samp{Reviewed-by} Git trailer is used by other projects such as Linux, and is understood by third-party tools such as the @samp{b4 am} sub-command, which is able to retrieve the complete submission email thread from a public-inbox instance and add the Git trailers found in replies to the commit patches.} line should be used to sign off as a reviewer, meaning you have reviewed the change and that it looks good to you:" msgstr "" #. type: itemize #: guix-git/doc/contributing.texi:2984 msgid "If the @emph{whole} series (containing multiple commits) looks good to you, reply with @samp{Reviewed-by:@tie{}Your@tie{}Name@tie{}<your-email@@example.com>} to the cover page if it has one, or to the last patch of the series otherwise, adding another @samp{(for the whole series)} comment on the line below to explicit this fact." msgstr "" #. type: itemize #: guix-git/doc/contributing.texi:2990 msgid "If you instead want to mark a @emph{single commit} as reviewed (but not the whole series), simply reply with @samp{Reviewed-by:@tie{}Your@tie{}Name@tie{}<your-email@@example.com>} to that commit message." msgstr "" #. type: Plain text #: guix-git/doc/contributing.texi:2995 msgid "If you are not a committer, you can help others find a @emph{series} you have reviewed more easily by adding a @code{reviewed-looks-good} usertag for the @code{guix} user (@pxref{Debbugs Usertags})." msgstr "" #. type: cindex #: guix-git/doc/contributing.texi:2999 #, no-wrap msgid "update-guix-package, updating the guix package" msgstr "update-guix-package, Guix-Paket aktualisieren" #. type: Plain text #: guix-git/doc/contributing.texi:3005 msgid "It is sometimes desirable to update the @code{guix} package itself (the package defined in @code{(gnu packages package-management)}), for example to make new daemon features available for use by the @code{guix-service-type} service type. In order to simplify this task, the following command can be used:" msgstr "Manchmal möchte man die für das Paket @code{guix} (wie es in @code{(gnu packages package-management)} definiert ist) verwendete Version auf eine neuere Version aktualisieren, zum Beispiel um neue Funktionalitäten des Daemons dem Diensttyp @code{guix-service-type} zugänglich zu machen. Um diese Arbeit zu erleichtern, kann folgender Befehl benutzt werden:" #. type: example #: guix-git/doc/contributing.texi:3008 #, no-wrap msgid "make update-guix-package\n" msgstr "make update-guix-package\n" #. type: Plain text #: guix-git/doc/contributing.texi:3015 msgid "The @code{update-guix-package} make target will use the last known @emph{commit} corresponding to @code{HEAD} in your Guix checkout, compute the hash of the Guix sources corresponding to that commit and update the @code{commit}, @code{revision} and hash of the @code{guix} package definition." msgstr "Das make-Ziel @code{update-guix-package} wird den neuesten bekannten @emph{Commit}, also den, der @code{HEAD} in Ihrem Guix-Checkout entspricht, verwenden, den Hash des zugehörigen Quellbaums berechnen und die Einträge für @code{commit}, @code{revision} und den Hash in der Paketdefinition von @code{guix} anpassen." #. type: Plain text #: guix-git/doc/contributing.texi:3019 msgid "To validate that the updated @code{guix} package hashes are correct and that it can be built successfully, the following command can be run from the directory of your Guix checkout:" msgstr "Um zu prüfen, dass das aktualisierte @code{guix}-Paket die richtigen Hashes benutzt und erfolgreich erstellt werden kann, können Sie den folgenden Befehl aus dem Verzeichnis Ihres Guix-Checkouts heraus ausführen:" #. type: example #: guix-git/doc/contributing.texi:3022 #, no-wrap msgid "./pre-inst-env guix build guix\n" msgstr "./pre-inst-env guix build guix\n" #. type: Plain text #: guix-git/doc/contributing.texi:3027 msgid "To guard against accidentally updating the @code{guix} package to a commit that others can't refer to, a check is made that the commit used has already been pushed to the Savannah-hosted Guix git repository." msgstr "Als Schutz vor einer versehentlichen Aktualisierung des @code{guix}-Pakets auf einen Commit, den andere Leute gar nicht haben, wird dabei geprüft, ob der benutzte Commit bereits im bei Savannah angebotenen Guix-Git-Repository vorliegt." #. type: Plain text #: guix-git/doc/contributing.texi:3032 msgid "This check can be disabled, @emph{at your own peril}, by setting the @code{GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT} environment variable. When this variable is set, the updated package source is also added to the store. This is used as part of the release process of Guix." msgstr "Diese Prüfung können Sie @emph{auf eigene Gefahr hin} abschalten, indem Sie die Umgebungsvariable @code{GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT} setzen. Wenn diese Variable gesetzt ist, wird der aktualisierte Paketquellcode außerdem in den Store eingefügt. Dies stellt einen Teil des Prozesses zur Veröffentlichung neuer Versionen von Guix dar." #. #-#-#-#-# contributing.pot (guix manual checkout) #-#-#-#-# #. type: cindex #. #-#-#-#-# guix.pot (guix manual checkout) #-#-#-#-# #. type: item #: guix-git/doc/contributing.texi:3033 guix-git/doc/guix.texi:3993 #: guix-git/doc/guix.texi:44249 guix-git/doc/guix.texi:44306 #, no-wrap msgid "documentation" msgstr "documentation" #. type: Plain text #: guix-git/doc/contributing.texi:3040 msgid "Guix is documented using the Texinfo system. If you are not yet familiar with it, we accept contributions for documentation in most formats. That includes plain text, Markdown, Org, etc." msgstr "Die Dokumentation für Guix wird mit dem Texinfo-System bereitgestellt. Wenn Sie damit noch nicht vertraut sind, nehmen wir auch Beiträge zur Dokumentation in den meisten anderen Formaten an. Reine Textdateien, Markdown, Org und so weiter sind alle in Ordnung." #. type: Plain text #: guix-git/doc/contributing.texi:3044 msgid "Documentation contributions can be sent to @email{guix-patches@@gnu.org}. Prepend @samp{[DOCUMENTATION]} to the subject." msgstr "Schicken Sie Beiträge zur Dokumentation an @email{guix-patches@@gnu.org}. Der Betreff sollte mit @samp{[DOCUMENTATION]} beginnen." #. type: Plain text #: guix-git/doc/contributing.texi:3049 msgid "When you need to make more than a simple addition to the documentation, we prefer that you send a proper patch as opposed to sending an email as described above. @xref{Submitting Patches} for more information on how to send your patches." msgstr "Wenn es um mehr als eine kleine Erweiterung der Dokumentation geht, ist es uns allerdings lieber, wenn Sie einen ordentlichen Patch und keine solche E-Mail schicken. Siehe @ref{Submitting Patches} für mehr Informationen, wie Sie Patches abschicken." #. type: Plain text #: guix-git/doc/contributing.texi:3058 msgid "To modify the documentation, you need to edit @file{doc/guix.texi} and @file{doc/contributing.texi} (which contains this documentation section), or @file{doc/guix-cookbook.texi} for the cookbook. If you compiled the Guix repository before, you will have many more @file{.texi} files that are translations of these documents. Do not modify them, the translation is managed through @uref{https://translate.fedoraproject.org/projects/guix, Weblate}. @xref{Translating Guix} for more information." msgstr "Änderungen an der Dokumentation können Sie vornehmen, indem Sie @file{doc/guix.texi} und @file{doc/contributing.texi} bearbeiten (letztere enthält diesen Mitwirkungsteil der Dokumentation) oder indem Sie @file{doc/guix-cookbook.texi} bearbeiten, worin Sie das Kochbuch finden. Wenn Sie schon einmal die Dateien im Guix-Repository kompiliert haben, werden dort auch viele weitere @file{.texi}-Dateien zu finden sein; es handelt sich um übersetzte Fassungen dieser Dokumente. Verändern Sie diese @emph{nicht}, denn die Übersetzung organisieren wir über @uref{https://translate.fedoraproject.org/projects/guix, Weblate}. Siehe @ref{Translating Guix} für weitere Informationen." #. type: Plain text #: guix-git/doc/contributing.texi:3063 msgid "To render documentation, you must first make sure that you ran @command{./configure} in your source tree (@pxref{Running Guix Before It Is Installed}). After that you can run one of the following commands:" msgstr "Um die Dokumentation in lesefreundlichere Formate zu übertragen, ist der erste Schritt, @command{./configure} in Ihrem Guix-Quellbaum laufen zu lassen, wenn es noch nicht geschehen ist (siehe @ref{Running Guix Before It Is Installed}). Danach geht es mit diesen Befehlen weiter:" #. type: item #: guix-git/doc/contributing.texi:3065 #, no-wrap msgid "@samp{make doc/guix.info} to compile the Info manual." msgstr "@samp{make doc/guix.info}, um das Handbuch im Info-Format zu kompilieren." #. type: itemize #: guix-git/doc/contributing.texi:3067 msgid "You can check it with @command{info doc/guix.info}." msgstr "Sie können es mit @command{info doc/guix.info} überprüfen." #. type: item #: guix-git/doc/contributing.texi:3067 #, no-wrap msgid "@samp{make doc/guix.html} to compile the HTML version." msgstr "@samp{make doc/guix.html}, um die HTML-Version zu kompilieren." #. type: itemize #: guix-git/doc/contributing.texi:3070 msgid "You can point your browser to the relevant file in the @file{doc/guix.html} directory." msgstr "Lassen Sie Ihren Browser die entsprechende Datei im Verzeichnis @file{doc/guix.html} anzeigen." #. type: item #: guix-git/doc/contributing.texi:3070 #, no-wrap msgid "@samp{make doc/guix-cookbook.info} for the cookbook Info manual." msgstr "@samp{make doc/guix-cookbook.info}, so kompilieren Sie das Kochbuch im Info-Format." #. type: item #: guix-git/doc/contributing.texi:3071 #, no-wrap msgid "@samp{make doc/guix-cookbook.html} for the cookbook HTML version." msgstr "@samp{make doc/guix-cookbook.html}, das kompiliert die HTML-Version des Kochbuchs." #. type: cindex #: guix-git/doc/contributing.texi:3074 #, no-wrap msgid "translation" msgstr "Übersetzung" #. type: cindex #: guix-git/doc/contributing.texi:3075 #, no-wrap msgid "l10n" msgstr "l10n" #. type: cindex #: guix-git/doc/contributing.texi:3076 #, no-wrap msgid "i18n" msgstr "i18n" #. type: cindex #: guix-git/doc/contributing.texi:3077 #, no-wrap msgid "native language support" msgstr "Native Language Support" #. type: Plain text #: guix-git/doc/contributing.texi:3087 msgid "Writing code and packages is not the only way to provide a meaningful contribution to Guix. Translating to a language you speak is another example of a valuable contribution you can make. This section is designed to describe the translation process. It gives you advice on how you can get involved, what can be translated, what mistakes you should avoid and what we can do to help you!" msgstr "Softwareentwicklung und Paketierung sind nicht die einzigen Möglichkeiten, um bedeutsam zu Guix beizutragen. Übersetzungen in andere Sprachen sind auch ein wertvoller Beitrag. In diesem Abschnitt ist der Übersetzungsprozess beschrieben, mit Hinweisen dazu wie du mitmachen kannst, was übersetzt werden kann, welche Fehler du vermeiden solltest und wie wir dich unterstützen können." #. type: Plain text #: guix-git/doc/contributing.texi:3093 msgid "Guix is a big project that has multiple components that can be translated. We coordinate the translation effort on a @uref{https://translate.fedoraproject.org/projects/guix/,Weblate instance} hosted by our friends at Fedora. You will need an account to submit translations." msgstr "Guix ist ein großes Projekt und hat mehrere Komponenten, die übersetzt werden können. Wir koordinieren die Arbeit an der Übersetzung auf einer @uref{https://translate.fedoraproject.org/projects/guix/,Weblate-Instanz}, die von unseren Freunden bei Fedora zur Verfügung gestellt wird. Sie brauchen dort ein Konto, um Übersetzungen einzureichen." #. type: Plain text #: guix-git/doc/contributing.texi:3100 msgid "Some of the software packaged in Guix also contain translations. We do not host a translation platform for them. If you want to translate a package provided by Guix, you should contact their developers or find the information on their website. As an example, you can find the homepage of the @code{hello} package by typing @code{guix show hello}. On the ``homepage'' line, you will see @url{https://www.gnu.org/software/hello/} as the homepage." msgstr "Manche mit Guix auslieferbaren Pakete verfügen auch über Übersetzungen. An deren Übersetzungsplattform sind wir nicht beteiligt. Wenn Sie ein in Guix angebotenes Paket übersetzen möchten, sollten Sie mit dessen Entwicklern in Kontakt treten oder auf deren Webauftritt nach Informationen suchen. Sie können die Homepage zum Beispiel des @code{hello}-Pakets finden, indem Sie @code{guix show hello} ausführen. Auf der Zeile „homepage“ sehen Sie, dass @url{https://www.gnu.org/software/hello/} die Homepage ist." #. type: Plain text #: guix-git/doc/contributing.texi:3105 msgid "Many GNU and non-GNU packages can be translated on the @uref{https://translationproject.org,Translation Project}. Some projects with multiple components have their own platform. For instance, GNOME has its own platform, @uref{https://l10n.gnome.org/,Damned Lies}." msgstr "Viele GNU-Pakete und Nicht-GNU-Pakete können beim @uref{https://translationproject.org,Translation Project} übersetzt werden. Manche Projekte, die aus mehreren Komponenten bestehen, haben ihre eigene Plattform. Zum Beispiel hat GNOME die Übersetzungsplattform @uref{https://l10n.gnome.org/,Damned Lies}." #. type: Plain text #: guix-git/doc/contributing.texi:3107 msgid "Guix has five components hosted on Weblate." msgstr "Guix hat fünf Komponenten, die auf Weblate übersetzt werden können." #. type: item #: guix-git/doc/contributing.texi:3109 #, no-wrap msgid "@code{guix} contains all the strings from the Guix software (the" msgstr "@code{guix} umfasst alle Zeichenketten der Guix-Software (also das" #. type: itemize #: guix-git/doc/contributing.texi:3111 msgid "guided system installer, the package manager, etc), excluding packages." msgstr "geführte Installationsprogramm, die Paketverwaltung etc.) außer den Paketen." #. type: item #: guix-git/doc/contributing.texi:3111 #, no-wrap msgid "@code{packages} contains the synopsis (single-sentence description" msgstr "@code{packages} enthält die Zusammenfassungen (einzeilige Kurzbeschreibung)" #. type: itemize #: guix-git/doc/contributing.texi:3113 msgid "of a package) and description (longer description) of packages in Guix." msgstr "und die ausführlicheren Beschreibungen der Pakete in Guix." #. type: item #: guix-git/doc/contributing.texi:3113 #, no-wrap msgid "@code{website} contains the official Guix website, except for" msgstr "@code{website} enthält den offiziellen Webauftritt von Guix außer" #. type: itemize #: guix-git/doc/contributing.texi:3115 msgid "blog posts and multimedia content." msgstr "Blogeinträgen und Multimedia." #. type: item #: guix-git/doc/contributing.texi:3115 #, no-wrap msgid "@code{documentation-manual} corresponds to this manual." msgstr "@code{documentation-manual} entspricht diesem Handbuch." #. type: item #: guix-git/doc/contributing.texi:3116 #, no-wrap msgid "@code{documentation-cookbook} is the component for the cookbook." msgstr "@code{documentation-cookbook} ist die Komponente für das Kochbuch." #. type: subsubheading #: guix-git/doc/contributing.texi:3119 #, no-wrap msgid "General Directions" msgstr "Wie Sie allgemein vorgehen" #. type: Plain text #: guix-git/doc/contributing.texi:3127 msgid "Once you get an account, you should be able to select a component from @uref{https://translate.fedoraproject.org/projects/guix/,the guix project}, and select a language. If your language does not appear in the list, go to the bottom and click on the ``Start new translation'' button. Select the language you want to translate to from the list, to start your new translation." msgstr "Sobald Sie ein Konto haben, sollten Sie eine Komponente des @uref{https://translate.fedoraproject.org/projects/guix/,Guix-Projekts} und eine Sprache auswählen können. Wenn Ihre Sprache in der Liste fehlt, gehen Sie ans Ende und klicken Sie auf den „Neue Übersetzung starten“-Knopf. Nachdem Sie die Sprache, in die Sie übersetzen möchten, ausgewählt haben, wird eine neue Übersetzung angelegt." #. type: Plain text #: guix-git/doc/contributing.texi:3132 msgid "Like lots of other free software packages, Guix uses @uref{https://www.gnu.org/software/gettext,GNU Gettext} for its translations, with which translatable strings are extracted from the source code to so-called PO files." msgstr "Wie zahlreiche andere Freie-Software-Pakete benutzt Guix @uref{https://www.gnu.org/software/gettext,GNU Gettext} für seine Übersetzungen. Damit werden übersetzbare Zeichenketten aus dem Quellcode in sogenannte PO-Dateien extrahiert." #. type: Plain text #: guix-git/doc/contributing.texi:3143 msgid "Even though PO files are text files, changes should not be made with a text editor but with PO editing software. Weblate integrates PO editing functionality. Alternatively, translators can use any of various free-software tools for filling in translations, of which @uref{https://poedit.net/,Poedit} is one example, and (after logging in) @uref{https://docs.weblate.org/en/latest/user/files.html,upload} the changed file. There is also a special @uref{https://www.emacswiki.org/emacs/PoMode,PO editing mode} for users of GNU Emacs. Over time translators find out what software they are happy with and what features they need." msgstr "Obwohl es sich bei PO-Dateien um Textdateien handelt, sollten Änderungen nicht mit einem Texteditor vorgenommen werden, sondern mit Software eigens zum Bearbeiten von PO-Dateien. In Weblate sind PO-Bearbeitungsfunktionen integriert. Alternativ haben Übersetzer die Wahl zwischen vielen Freie-Software-Werkzeugen zum Eintragen von Übersetzungen; ein Beispiel ist @uref{https://poedit.net/,Poedit}. Nachdem Sie sich angemeldet haben, @uref{https://docs.weblate.org/en/latest/user/files.html,laden} Sie die geänderte Datei in Weblate hoch. Es gibt auch einen speziellen @uref{https://www.emacswiki.org/emacs/PoMode,PO-Bearbeitungsmodus} für Nutzer von GNU Emacs. Mit der Zeit finden Übersetzer heraus, welche Software sie bevorzugen und welche die Funktionen bietet, die sie brauchen." #. type: Plain text #: guix-git/doc/contributing.texi:3148 msgid "On Weblate, you will find various links to the editor, that will show various subsets (or all) of the strings. Have a look around and at the @uref{https://docs.weblate.org/en/latest/,documentation} to familiarize yourself with the platform." msgstr "In Weblate finden Sie an vielen Stellen Verweise auf den Editor, um Teilmengen der Zeichenketten oder alle davon zu übersetzen. Sehen Sie sich um und werfen Sie einen Blick auf Weblates @uref{https://docs.weblate.org/en/latest/,Dokumentation}, um sich mit der Plattform vertraut zu machen." #. type: subsubheading #: guix-git/doc/contributing.texi:3149 #, no-wrap msgid "Translation Components" msgstr "Übersetzungskomponenten" #. type: Plain text #: guix-git/doc/contributing.texi:3154 msgid "In this section, we provide more detailed guidance on the translation process, as well as details on what you should or should not do. When in doubt, please contact us, we will be happy to help!" msgstr "In diesem Abschnitt erklären wir den Übersetzungsprozess genau und geben Details, was Sie tun sollten und was nicht. Im Zweifelsfall kontaktieren Sie uns bitte; wir helfen gerne!" #. type: table #: guix-git/doc/contributing.texi:3161 msgid "Guix is written in the Guile programming language, and some strings contain special formatting that is interpreted by Guile. These special formatting should be highlighted by Weblate. They start with @code{~} followed by one or more characters." msgstr "Guix ist in der Programmiersprache Guile geschrieben und manche Zeichenketten enthalten besondere Formatzeichen, die von Guile interpretiert werden. Weblate sollte diese besonderen Formatzeichen hervorheben. Sie beginnen mit @code{~} gefolgt von einem oder mehreren Zeichen." #. type: table #: guix-git/doc/contributing.texi:3170 msgid "When printing the string, Guile replaces the special formatting symbols with actual values. For instance, the string @samp{ambiguous package specification `~a'} would be substituted to contain said package specification instead of @code{~a}. To properly translate this string, you must keep the formatting code in your translation, although you can place it where it makes sense in your language. For instance, the French translation says @samp{spécification du paquet « ~a » ambiguë} because the adjective needs to be placed in the end of the sentence." msgstr "Beim Anzeigen der Zeichenkette ersetzt Guile die speziellen Formatierungsmuster durch echte Werte. Zum Beispiel würde in die Zeichenkette @samp{ambiguous package specification `~a'} die Paketspezifikation anstelle von @code{~a} eingesetzt. Um die Zeichenkette richtig zu übersetzen, müssen Sie den Formatierungscode in Ihrer Übersetzung erhalten, aber Sie können ihn an die in Ihrer Sprache passenden Stelle in der Übersetzung verlegen. Die französische Übersetzung ist zum Beispiel @samp{spécification du paquet « ~a » ambiguë}, weil das Adjektiv dort ans Ende vom Satz gehört." #. type: table #: guix-git/doc/contributing.texi:3174 msgid "If there are multiple formatting symbols, make sure to respect the order. Guile does not know in which order you intended the string to be read, so it will substitute the symbols in the same order as the English sentence." msgstr "Wenn mehrere Formatsymbole vorkommen, sollten Sie darauf achten, die Reihenfolge beizubehalten. Guile weiß nicht, in welcher Reihenfolge die eingesetzten Symbole auftauchen sollen, also setzt es sie in derselben Abfolge wie im englischen Satz ein." #. type: table #: guix-git/doc/contributing.texi:3182 msgid "As an example, you cannot translate @samp{package '~a' has been superseded by '~a'} by @samp{'~a' superseeds package '~a'}, because the meaning would be reversed. If @var{foo} is superseded by @var{bar}, the translation would read @samp{'foo' superseeds package 'bar'}. To work around this problem, it is possible to use more advanced formatting to select a given piece of data, instead of following the default English order. @xref{Formatted Output,,, guile, GNU Guile Reference Manual}, for more information on formatting in Guile." msgstr "Es geht zum Beispiel @emph{nicht}, den Satz @samp{package '~a' has been superseded by '~a'} wie @samp{'~a' superseeds package '~a'} zu übersetzen, weil die Bedeutung umgekehrt wäre. Wenn @var{foo} durch @var{bar} abgelöst wird, würde die Übersetzung behaupten, @samp{„foo“ löst Paket „bar“ ab}. Um dieses Problem zu umgehen, ist es möglich, fortgeschrittene Formatierung einzusetzen, mit der ein bestimmtes Datum ausgewählt wird statt der englischen Reihenfolge zu folgen. Siehe @ref{Formatted Output,,, guile, Referenzhandbuch zu GNU Guile} für weitere Informationen zu formatierter Ausgabe in Guile." #. #-#-#-#-# contributing.pot (guix manual checkout) #-#-#-#-# #. type: item #. #-#-#-#-# guix.pot (guix manual checkout) #-#-#-#-# #. type: cindex #: guix-git/doc/contributing.texi:3183 guix-git/doc/guix.texi:2878 #, no-wrap msgid "packages" msgstr "Pakete" #. type: table #: guix-git/doc/contributing.texi:3188 msgid "Package descriptions occasionally contain Texinfo markup (@pxref{Synopses and Descriptions}). Texinfo markup looks like @samp{@@code@{rm -rf@}}, @samp{@@emph@{important@}}, etc. When translating, please leave markup as is." msgstr "Manchmal trifft man in einer Paketbeschreibung auf in Texinfo-Markup ausgezeichnete Wörter (siehe @ref{Synopses and Descriptions}). Texinfo-Auszeichnungen sehen aus wie @samp{@@code@{rm -rf@}}, @samp{@@emph@{important@}} usw. Wenn Sie übersetzen, belassen Sie Auszeichnungen bitte, wie sie sind." #. type: table #: guix-git/doc/contributing.texi:3197 msgid "The characters after ``@@'' form the name of the markup, and the text between ``@{'' and ``@}'' is its content. In general, you should not translate the content of markup like @code{@@code}, as it contains literal code that do not change with language. You can translate the content of formatting markup such as @code{@@emph}, @code{@@i}, @code{@@itemize}, @code{@@item}. However, do not translate the name of the markup, or it will not be recognized. Do not translate the word after @code{@@end}, it is the name of the markup that is closed at this position (e.g.@: @code{@@itemize ... @@end itemize})." msgstr "Die „@@“ nachfolgenden Zeichen bilden den Namen der Auszeichnung und der Text zwischen „@{“ und „@}“ ist deren Inhalt. Im Allgemeinen sollten Sie @emph{nicht} den Inhalt von Auszeichnungen wie @code{@@code} übersetzen, weil Code wortwörtlich so aussehen muss und sich @emph{nicht} mit der Sprache ändert. Dagegen können Sie den Inhalt von zur Formatierung dienenden Auszeichnungen wie @code{@@emph}, @code{@@i}, @code{@@itemize}, @code{@@item} durchaus ändern. Übersetzen Sie aber @emph{nicht} den Namen der Auszeichnung, sonst wird sie nicht erkannt. Übersetzen Sie @emph{nicht} das auf @code{@@end} folgende Wort, denn es ist der Name der Auszeichnung, die an dieser Position geschlossen wird (z.B.@: @code{@@itemize … @@end itemize})." #. type: item #: guix-git/doc/contributing.texi:3198 #, no-wrap msgid "documentation-manual and documentation-cookbook" msgstr "documentation-manual und documentation-cookbook" #. type: table #: guix-git/doc/contributing.texi:3202 msgid "The first step to ensure a successful translation of the manual is to find and translate the following strings @emph{first}:" msgstr "Der erste Schritt für eine erfolgreiche Übersetzung des Handbuchs ist, folgende Zeichenketten @emph{als Erstes} zu finden und zu übersetzen:" #. type: item #: guix-git/doc/contributing.texi:3204 #, no-wrap msgid "@code{version.texi}: Translate this string as @code{version-xx.texi}," msgstr "@code{version.texi}: Übersetzen Sie diese Zeichenkette mit @code{version-xx.texi}" #. type: itemize #: guix-git/doc/contributing.texi:3207 msgid "where @code{xx} is your language code (the one shown in the URL on weblate)." msgstr "wobei @code{xx} Ihr Sprachcode ist (wie er in der URL auf Weblate steht)." #. type: item #: guix-git/doc/contributing.texi:3207 #, no-wrap msgid "@code{contributing.texi}: Translate this string as" msgstr "@code{contributing.texi}: Übersetzen Sie diese Zeichenkette mit" #. type: itemize #: guix-git/doc/contributing.texi:3209 msgid "@code{contributing.xx.texi}, where @code{xx} is the same language code." msgstr "@code{contributing.xx.texi}, wobei @code{xx} derselbe Sprachcode ist." #. type: item #: guix-git/doc/contributing.texi:3209 #, no-wrap msgid "@code{Top}: Do not translate this string, it is important for Texinfo." msgstr "@code{Top}: Übersetzen Sie diese Zeichenkette @emph{nicht}; sie ist wichtig für Texinfo." #. type: itemize #: guix-git/doc/contributing.texi:3212 msgid "If you translate it, the document will be empty (missing a Top node). Please look for it, and register @code{Top} as its translation." msgstr "Würden Sie sie übersetzen, würde das Dokument leer (weil ein Top-Knoten fehlt). Bitte suchen Sie die Zeichenkette und tragen Sie @code{Top} als Übersetzung ein." #. type: table #: guix-git/doc/contributing.texi:3217 msgid "Translating these strings first ensure we can include your translation in the guix repository without breaking the make process or the @command{guix pull} machinery." msgstr "Wenn diese Zeichenketten als erste ausgefüllt wurden, ist gewährleistet, dass wir die Übersetzung ins Guix-Repository übernehmen können, ohne dass der make-Vorgang oder die Maschinerie hinter @command{guix pull} zusammenbricht." #. type: table #: guix-git/doc/contributing.texi:3224 msgid "The manual and the cookbook both use Texinfo. As for @code{packages}, please keep Texinfo markup as is. There are more possible markup types in the manual than in the package descriptions. In general, do not translate the content of @code{@@code}, @code{@@file}, @code{@@var}, @code{@@value}, etc. You should translate the content of formatting markup such as @code{@@emph}, @code{@@i}, etc." msgstr "Das Handbuch und das Kochbuch verwenden beide Texinfo. Wie bei @code{packages} belassen Sie Texinfo-Auszeichnungen bitte so, wie sie sind. Im Handbuch gibt es mehr mögliche Auszeichnungstypen als in den Paketbeschreibungen. Im Allgemeinen sollten Sie den Inhalt von @code{@@code}, @code{@@file}, @code{@@var}, @code{@@value} usw.@: @emph{nicht} übersetzen. Sie sollten aber den Inhalt von Formatierungsauszeichnungen wie @code{@@emph}, @code{@@i} usw.@: übersetzen." #. type: table #: guix-git/doc/contributing.texi:3232 msgid "The manual contains sections that can be referred to by name by @code{@@ref}, @code{@@xref} and @code{@@pxref}. We have a mechanism in place so you do not have to translate their content. If you keep the English title, we will automatically replace it with your translation of that title. This ensures that Texinfo will always be able to find the node. If you decide to change the translation of the title, the references will automatically be updated and you will not have to update them all yourself." msgstr "Das Handbuch enthält Abschnitte, auf die man anhand ihres Namens mit @code{@@ref}, @code{@@xref} und @code{@@pxref} verweisen kann. Wir haben einen Mechanismus eingebaut, damit Sie deren Inhalt @emph{nicht} übersetzen müssen. Lassen Sie einfach den englischen Titel stehen, dann werden wir ihn automatisch durch Ihre Übersetzung des Titels ersetzen. So wird garantiert, dass Texinfo den Knoten auf jeden Fall finden kann. Wenn Sie später die Übersetzung ändern, ändern sich die Verweise darauf automatisch mit und Sie müssen sie nicht alle selbst anpassen." #. type: table #: guix-git/doc/contributing.texi:3242 msgid "When translating references from the cookbook to the manual, you need to replace the name of the manual and the name of the section. For instance, to translate @code{@@pxref@{Defining Packages,,, guix, GNU Guix Reference Manual@}}, you would replace @code{Defining Packages} with the title of that section in the translated manual @emph{only} if that title is translated. If the title is not translated in your language yet, do not translate it here, or the link will be broken. Replace @code{guix} with @code{guix.xx} where @code{xx} is your language code. @code{GNU Guix Reference Manual} is the text of the link. You can translate it however you wish." msgstr "Nur wenn Sie Verweise vom Kochbuch auf das Handbuch übersetzen, dann müssen Sie den Namen des Handbuchs und den Namen des Abschnitts ersetzen. Zum Beispiel übersetzen Sie @code{@@pxref@{Defining Packages,,, guix, GNU Guix Reference Manual@}}, indem Sie @code{Defining Packages} durch den Titel dieses Abschnittes im übersetzten Handbuch ersetzen, aber @emph{nur dann}, wenn der Titel bereits übersetzt wurde. Wenn er nicht übersetzt wurde, dann übersetzen Sie ihn auch hier @emph{nicht}, sonst funktioniert der Verweis nicht. Schreiben Sie @code{guix.xx} statt @code{guix}, wobei @code{xx} Ihr Sprachcode ist. Bei @code{GNU Guix Reference Manual} handelt es sich um den Text, mit dem der Verweis angezeigt wird. Übersetzen Sie ihn wie immer Sie mögen." #. type: item #: guix-git/doc/contributing.texi:3243 #, no-wrap msgid "website" msgstr "website" #. type: table #: guix-git/doc/contributing.texi:3250 msgid "The website pages are written using SXML, an s-expression version of HTML, the basic language of the web. We have a process to extract translatable strings from the source, and replace complex s-expressions with a more familiar XML markup, where each markup is numbered. Translators can arbitrarily change the ordering, as in the following example." msgstr "Die Seiten des Webauftritts sind in SXML geschrieben, einer Version von HTML, der Grundlage des Webs, aber mit S-Ausdrücken. Wir haben einen Prozess, um übersetzbare Zeichenketten aus dem Quellcode zu extrahieren und komplexe S-Ausdrücke als vertrautere XML-Auszeichnungen darzustellen. Dabei werden die Auszeichnungen nummeriert. Übersetzer können deren Reihenfolge nach Belieben ändern, wie im folgenden Beispiel zu sehen ist." #. type: example #: guix-git/doc/contributing.texi:3257 #, no-wrap msgid "" "#. TRANSLATORS: Defining Packages is a section name\n" "#. in the English (en) manual.\n" "#: apps/base/templates/about.scm:64\n" "msgid \"Packages are <1>defined<1.1>en</1.1><1.2>Defining-Packages.html</1.2></1> as native <2>Guile</2> modules.\"\n" "msgstr \"Pakete werden als reine <2>Guile</2>-Module <1>definiert<1.1>de</1.1><1.2>Pakete-definieren.html</1.2></1>.\"\n" msgstr "" "#. TRANSLATORS: Defining Packages is a section name\n" "#. in the English (en) manual.\n" "#: apps/base/templates/about.scm:64\n" "msgid \"Packages are <1>defined<1.1>en</1.1><1.2>Defining-Packages.html</1.2></1> as native <2>Guile</2> modules.\"\n" "msgstr \"Pakete werden als reine <2>Guile</2>-Module <1>definiert<1.1>de</1.1><1.2>Pakete-definieren.html</1.2></1>.\"\n" #. type: table #: guix-git/doc/contributing.texi:3260 msgid "Note that you need to include the same markups. You cannot skip any." msgstr "Allerdings müssen Sie dieselben Auszeichnungen verwenden. Sie können keine weglassen." #. type: Plain text #: guix-git/doc/contributing.texi:3268 msgid "In case you make a mistake, the component might fail to build properly with your language, or even make guix pull fail. To prevent that, we have a process in place to check the content of the files before pushing to our repository. We will not be able to update the translation for your language in Guix, so we will notify you (through weblate and/or by email) so you get a chance to fix the issue." msgstr "Wenn Ihnen ein Fehler unterläuft, kann die Komponente in Ihrer Sprache womöglich @emph{nicht} erstellt werden oder guix pull kann sogar fehlschlagen. Um dies zu verhindern, haben wir einen Prozess, um den Inhalt der Dateien vor einem Push auf das Repository zu überprüfen. In so einem Fall werden wir die Übersetzung für Ihre Sprache @emph{nicht} aktualisieren können und werden Sie deshalb benachrichtigen (über Weblate und/oder eine E-Mail), damit Sie die Möglichkeit bekommen, das Problem zu beheben." #. type: subsubheading #: guix-git/doc/contributing.texi:3269 #, no-wrap msgid "Outside of Weblate" msgstr "Abseits von Weblate" #. type: Plain text #: guix-git/doc/contributing.texi:3272 msgid "Currently, some parts of Guix cannot be translated on Weblate, help wanted!" msgstr "Momentan können manche Teile von Guix noch nicht mit Weblate übersetzt werden. Wir freuen uns über Hilfe!" #. type: item #: guix-git/doc/contributing.texi:3274 #, no-wrap msgid "@command{guix pull} news can be translated in @file{news.scm}, but is not" msgstr "Bei @command{guix pull} angezeigte Neuigkeiten können in @file{news.scm}" #. type: itemize #: guix-git/doc/contributing.texi:3280 msgid "available from Weblate. If you want to provide a translation, you can prepare a patch as described above, or simply send us your translation with the name of the news entry you translated and your language. @xref{Writing Channel News}, for more information about channel news." msgstr "übersetzt werden, jedoch @emph{nicht} über Weblate. Wenn Sie eine Übersetzung bereitstellen wollen, können Sie uns einen Patch wie oben beschrieben schicken oder uns einfach die Übersetzung zusammen mit Ihrer Sprache und dem Namen des Neuigkeiteneintrags, den Sie übersetzt haben, zukommen lassen. Siehe @ref{Writing Channel News} für weitere Informationen zu Neuigkeiten über Kanäle." #. type: item #: guix-git/doc/contributing.texi:3280 #, no-wrap msgid "Guix blog posts cannot currently be translated." msgstr "Blogeinträge zu Guix können derzeit @emph{nicht} übersetzt werden." #. type: item #: guix-git/doc/contributing.texi:3281 #, no-wrap msgid "The installer script (for foreign distributions) is entirely in English." msgstr "Das Installations-Skript (für Fremddistributionen) gibt es nur auf Englisch." #. type: item #: guix-git/doc/contributing.texi:3282 #, no-wrap msgid "Some of the libraries Guix uses cannot be translated or are translated" msgstr "Manche der Bibliotheken, die Guix benutzt, können @emph{nicht} übersetzt" #. type: itemize #: guix-git/doc/contributing.texi:3284 msgid "outside of the Guix project. Guile itself is not internationalized." msgstr "werden oder sie werden außerhalb von Guix übersetzt. Guile selbst ist @emph{nicht} internationalisiert." #. type: item #: guix-git/doc/contributing.texi:3284 #, no-wrap msgid "Other manuals linked from this manual or the cookbook might not be" msgstr "Andere Handbücher, auf die vom Handbuch oder Kochbuch aus verwiesen" #. type: itemize #: guix-git/doc/contributing.texi:3286 msgid "translated." msgstr "wird, sind oft @emph{nicht} übersetzt." #. type: subsubheading #: guix-git/doc/contributing.texi:3288 #, no-wrap msgid "Conditions for Inclusion" msgstr "Bedingungen für die Aufnahme" #. type: Plain text #: guix-git/doc/contributing.texi:3295 msgid "There are no conditions for adding new translations of the @code{guix} and @code{guix-packages} components, other than they need at least one translated string. New languages will be added to Guix as soon as possible. The files may be removed if they fall out of sync and have no more translated strings." msgstr "Es müssen keine Bedingungen erfüllt werden, damit neue Übersetzungen der Komponenten @code{guix} und @code{guix-packages} übernommen werden, außer dass sie mindestens eine übersetzte Zeichenkette enthalten. Neue Sprachen werden so bald wie möglich aufgenommen. Die Dateien können wieder entfernt werden, wenn sie keine Übersetzungen mehr enthalten, weil die Zeichenketten, die übersetzt wurden, nicht mehr mit den in Guix verwendeten übereinstimmen." #. type: Plain text #: guix-git/doc/contributing.texi:3301 msgid "Given that the web site is dedicated to new users, we want its translation to be as complete as possible before we include it in the language menu. For a new language to be included, it needs to reach at least 80% completion. When a language is included, it may be removed in the future if it stays out of sync and falls below 60% completion." msgstr "Aufgrund dessen, dass sich der Webauftritt an neue Benutzer richtet, möchten wir, dass dessen Übersetzung so vollständig wie möglich ist, bevor wir sie ins Menü zur Sprachauswahl aufnehmen. Eine neue Sprache muss dazu zumindest zu 80% vollständig sein. Einmal aufgenommen kann eine Sprache dann wieder entfernt werden, wenn sie eine Zeit lang nicht mehr übereinstimmt und zu weniger als 60% übersetzt ist." #. type: Plain text #: guix-git/doc/contributing.texi:3309 msgid "The manual and cookbook are automatically added in the default compilation target. Every time we synchronize translations, developers need to recompile all the translated manuals and cookbooks. This is useless for what is essentially the English manual or cookbook. Therefore, we will only include a new language when it reaches 10% completion in the component. When a language is included, it may be removed in the future if it stays out of sync and falls below 5% completion." msgstr "Handbuch und Kochbuch sind automatisch Teil des Standard-Ziels beim Kompilieren. Jedes Mal, wenn wir die Übersetzungen in Guix mit Weblate abgleichen, müssen die Entwickler alle übersetzten Hand- und Kochbücher neu kompilieren. Das lohnt sich nicht, wenn so wenig übersetzt wurde, dass wir größtenteils wieder das englische Hand- oder Kochbuch vor uns haben. Aus diesem Grund nehmen wir eine neue Sprache hier nur auf, wenn mindestens 10% der jeweiligen Komponente übersetzt sind. Eine bereits aufgenommene Sprache, die eine Zeit lang nicht übereinstimmt und wo weniger als 5% übersetzt sind, kann entfernt werden." #. type: subsubheading #: guix-git/doc/contributing.texi:3310 #, no-wrap msgid "Translation Infrastructure" msgstr "Übersetzungsinfrastruktur" #. type: Plain text #: guix-git/doc/contributing.texi:3321 msgid "Weblate is backed by a git repository from which it discovers new strings to translate and pushes new and updated translations. Normally, it would be enough to give it commit access to our repositories. However, we decided to use a separate repository for two reasons. First, we would have to give Weblate commit access and authorize its signing key, but we do not trust it in the same way we trust guix developers, especially since we do not manage the instance ourselves. Second, if translators mess something up, it can break the generation of the website and/or guix pull for all our users, independently of their language." msgstr "Hinter Weblate steht ein Git-Repository, aus dem die Weblate-Instanz neue zu übersetzende Zeichenketten bezieht und in das sie die neuen und aktualisierten Übersetzungen pusht. Normalerweise würde es ausreichen, Weblate Commit-Zugriff auf unsere Repositorys zu geben, aber wir haben uns aus zwei Gründen dagegen entschieden. Erstens müssten wir sonst Weblate Commit-Zugriff geben und seinen Signierschlüssel autorisieren, aber wir haben in Weblate nicht auf gleiche Art Vertrauen wie in die Guix-Entwickler, besonders weil wir die Instanz nicht selbst verwalten. Zweitens könnten durch ein Missgeschick der Übersetzer dann das Erzeugen des Webauftritts und/oder guix-pull-Aufrufe für all unsere Nutzer aufhören zu funktionieren, ganz gleich was deren Spracheinstellungen sind." #. type: Plain text #: guix-git/doc/contributing.texi:3325 msgid "For these reasons, we use a dedicated repository to host translations, and we synchronize it with our guix and artworks repositories after checking no issue was introduced in the translation." msgstr "Daher haben wir ein separates Repository für die Übersetzungen, das wir mit unseren guix- und guix-artwork-Repositorys abgleichen, nachdem wir geprüft haben, dass es durch die Übersetzung zu keinem Fehler kommt." #. type: Plain text #: guix-git/doc/contributing.texi:3331 msgid "Developers can download the latest PO files from weblate in the Guix repository by running the @command{make download-po} command. It will automatically download the latest files from weblate, reformat them to a canonical form, and check they do not contain issues. The manual needs to be built again to check for additional issues that might crash Texinfo." msgstr "Entwickler können die neuesten PO-Dateien von Weblate in ihr Guix-Repository laden, indem sie den Befehl @command{make download-po} ausführen. Er wird die neuesten Dateien von Weblate automatisch herunterladen, in eine kanonische Form bringen und überprüfen, dass sie keine Fehler verursachen. Das Handbuch muss neu erstellt werden, um sicherzugehen, dass keine neuen Probleme zum Absturz von Texinfo führen." #. type: Plain text #: guix-git/doc/contributing.texi:3335 msgid "Before pushing new translation files, developers should add them to the make machinery so the translations are actually available. The process differs for the various components." msgstr "Bevor sie neue Übersetzungsdateien pushen, sollten Entwickler achtgeben, dass jene Dateien eingetragen sind, damit die Make-Maschinerie die Übersetzungen auch tatsächlich bereitstellt. Der Prozess dafür unterscheidet sich je nach Komponente." #. type: item #: guix-git/doc/contributing.texi:3337 #, no-wrap msgid "New po files for the @code{guix} and @code{packages} components must" msgstr "Neue PO-Dateien für die Komponenten @code{guix} und @code{packages}" #. type: itemize #: guix-git/doc/contributing.texi:3340 msgid "be registered by adding the new language to @file{po/guix/LINGUAS} or @file{po/packages/LINGUAS}." msgstr "müssen registriert werden, indem man die neue Sprache in @file{po/guix/LINGUAS} oder @file{po/packages/LINGUAS} hinzufügt." #. type: item #: guix-git/doc/contributing.texi:3340 #, no-wrap msgid "New po files for the @code{documentation-manual} component must be" msgstr "Neue PO-Dateien für die Komponente @code{documentation-manual} müssen" #. type: itemize #: guix-git/doc/contributing.texi:3346 msgid "registered by adding the file name to @code{DOC_PO_FILES} in @file{po/doc/local.mk}, the generated @file{%D%/guix.xx.texi} manual to @code{info_TEXINFOS} in @file{doc/local.mk} and the generated @file{%D%/guix.xx.texi} and @file{%D%/contributing.xx.texi} to @code{TRANSLATED_INFO} also in @file{doc/local.mk}." msgstr "registriert werden, indem man deren Dateinamen zu @code{DOC_PO_FILES} in @file{po/doc/local.mk} hinzufügt, die erzeugte Handbuchdatei @file{%D%/guix.xx.texi} zu @code{info_TEXINFOS} in @file{doc/local.mk} hinzufügt und sowohl die erzeugte @file{%D%/guix.xx.texi} als auch @file{%D%/contributing.xx.texi} zu @code{TRANSLATED_INFO} auch wieder in @file{doc/local.mk} hinzufügt." #. type: item #: guix-git/doc/contributing.texi:3346 #, no-wrap msgid "New po files for the @code{documentation-cookbook} component must be" msgstr "Neue PO-Dateien für die Komponente @code{documentation-cookbook} müssen" #. type: itemize #: guix-git/doc/contributing.texi:3352 msgid "registered by adding the file name to @code{DOC_COOKBOOK_PO_FILES} in @file{po/doc/local.mk}, the generated @file{%D%/guix-cookbook.xx.texi} manual to @code{info_TEXINFOS} in @file{doc/local.mk} and the generated @file{%D%/guix-cookbook.xx.texi} to @code{TRANSLATED_INFO} also in @file{doc/local.mk}." msgstr "registriert werden, indem man deren Dateinamen zu @code{DOC_COOKBOOK_PO_FILES} in @file{po/doc/local.mk} hinzufügt, die erzeugte Handbuchdatei @file{%D%/guix-cookbook.xx.texi} zu @code{info_TEXINFOS} in @file{doc/local.mk} hinzufügt und die erzeugte @file{%D%/guix-cookbook.xx.texi} zu @code{TRANSLATED_INFO} auch wieder in @file{doc/local.mk} hinzufügt." #. type: item #: guix-git/doc/contributing.texi:3352 #, no-wrap msgid "New po files for the @code{website} component must be added to the" msgstr "Neue PO-Dateien für die Komponente @code{website} müssen zum Repository" #. type: itemize #: guix-git/doc/contributing.texi:3357 msgid "@code{guix-artwork} repository, in @file{website/po/}. @file{website/po/LINGUAS} and @file{website/po/ietf-tags.scm} must be updated accordingly (see @file{website/i18n-howto.txt} for more information on the process)." msgstr "@code{guix-artwork} ins dortige Verzeichnis @file{website/po/} hinzugefügt werden. @file{website/po/LINGUAS} und @file{website/po/ietf-tags.scm} müssen entsprechend aktualisiert werden (siehe @file{website/i18n-howto.txt} für Details zum Prozess)." #. type: Plain text #: guix-git/doc/guix.texi:7 msgid "@documentencoding UTF-8" msgstr "" "@documentencoding UTF-8\n" "@documentlanguage de\n" "@frenchspacing on" #. type: title #: guix-git/doc/guix.texi:7 guix-git/doc/guix.texi:161 #, no-wrap msgid "GNU Guix Reference Manual" msgstr "Referenzhandbuch zu GNU Guix" #. type: include #: guix-git/doc/guix.texi:10 #, no-wrap msgid "version.texi" msgstr "version-de.texi" #. type: copying #: guix-git/doc/guix.texi:133 #, fuzzy #| msgid "Copyright @copyright{} 2012-2024 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017, 2019, 2020, 2021, 2023 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018, 2021 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 Nikita Gillmann@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Jan Nieuwenhuizen@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021 Christopher Baines@* Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@* Copyright @copyright{} 2017, 2018, 2020, 2021, 2022 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018, 2024 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017, 2021 Christine Lemmer-Webber@* Copyright @copyright{} 2017, 2018, 2019, 2020, 2021, 2022 Marius Bakke@* Copyright @copyright{} 2017, 2019, 2020, 2022 Hartmut Goebel@* Copyright @copyright{} 2017, 2019, 2020, 2021, 2022, 2023 Maxim Cournoyer@* Copyright @copyright{} 2017–2022 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019, 2020, 2023 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018, 2021, 2023 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018, 2019 Gábor Boskovits@* Copyright @copyright{} 2018, 2019, 2020, 2022, 2023, 2024 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@* Copyright @copyright{} 2019 Josh Holland@* Copyright @copyright{} 2019, 2020 Diego Nicola Barbato@* Copyright @copyright{} 2019 Ivan Petkov@* Copyright @copyright{} 2019 Jakob L. Kreuze@* Copyright @copyright{} 2019 Kyle Andrews@* Copyright @copyright{} 2019 Alex Griffin@* Copyright @copyright{} 2019, 2020, 2021, 2022 Guillaume Le Vaillant@* Copyright @copyright{} 2020 Liliana Marie Prikler@* Copyright @copyright{} 2019, 2020, 2021, 2022, 2023 Simon Tournier@* Copyright @copyright{} 2020 Wiktor Żelazny@* Copyright @copyright{} 2020 Damien Cassou@* Copyright @copyright{} 2020 Jakub Kądziołka@* Copyright @copyright{} 2020 Jack Hill@* Copyright @copyright{} 2020 Naga Malleswari@* Copyright @copyright{} 2020, 2021 Brice Waegeneire@* Copyright @copyright{} 2020 R Veera Kumar@* Copyright @copyright{} 2020, 2021, 2022 Pierre Langlois@* Copyright @copyright{} 2020 pinoaffe@* Copyright @copyright{} 2020, 2023 André Batista@* Copyright @copyright{} 2020, 2021 Alexandru-Sergiu Marton@* Copyright @copyright{} 2020 raingloom@* Copyright @copyright{} 2020 Daniel Brooks@* Copyright @copyright{} 2020 John Soo@* Copyright @copyright{} 2020 Jonathan Brielmaier@* Copyright @copyright{} 2020 Edgar Vincent@* Copyright @copyright{} 2021, 2022 Maxime Devos@* Copyright @copyright{} 2021 B. Wilson@* Copyright @copyright{} 2021 Xinglu Chen@* Copyright @copyright{} 2021 Raghav Gururajan@* Copyright @copyright{} 2021 Domagoj Stolfa@* Copyright @copyright{} 2021 Hui Lu@* Copyright @copyright{} 2021 pukkamustard@* Copyright @copyright{} 2021 Alice Brenon@* Copyright @copyright{} 2021-2023 Josselin Poiret@* Copyright @copyright{} 2021, 2023 muradm@* Copyright @copyright{} 2021, 2022 Andrew Tropin@* Copyright @copyright{} 2021 Sarah Morgensen@* Copyright @copyright{} 2022 Remco van 't Veer@* Copyright @copyright{} 2022 Aleksandr Vityazev@* Copyright @copyright{} 2022 Philip M@sup{c}Grath@* Copyright @copyright{} 2022 Karl Hallsby@* Copyright @copyright{} 2022 Justin Veilleux@* Copyright @copyright{} 2022 Reily Siegel@* Copyright @copyright{} 2022 Simon Streit@* Copyright @copyright{} 2022 (@* Copyright @copyright{} 2022 John Kehayias@* Copyright @copyright{} 2022⁠–⁠2023 Bruno Victal@* Copyright @copyright{} 2022 Ivan Vilata-i-Balaguer@* Copyright @copyright{} 2023-2024 Giacomo Leidi@* Copyright @copyright{} 2022 Antero Mejr@* Copyright @copyright{} 2023 Karl Hallsby@* Copyright @copyright{} 2023 Nathaniel Nicandro@* Copyright @copyright{} 2023 Tanguy Le Carrour@* Copyright @copyright{} 2023 Zheng Junjie@* Copyright @copyright{} 2023 Brian Cully@* Copyright @copyright{} 2023 Felix Lechner@* Copyright @copyright{} 2023 Foundation Devices, Inc.@* Copyright @copyright{} 2023 Thomas Ieong@* Copyright @copyright{} 2023 Saku Laesvuori@* Copyright @copyright{} 2023 Graham James Addis@* Copyright @copyright{} 2023 Tomas Volf@* Copyright @copyright{} 2024 Herman Rimm@* Copyright @copyright{} 2024 Matthew Trzcinski@* Copyright @copyright{} 2024 Richard Sent@*" msgid "Copyright @copyright{} 2012-2024 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017, 2019, 2020, 2021, 2023 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018, 2021 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 Nikita Gillmann@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Jan Nieuwenhuizen@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021 Christopher Baines@* Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@* Copyright @copyright{} 2017, 2018, 2020, 2021, 2022 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018, 2024 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017, 2021 Christine Lemmer-Webber@* Copyright @copyright{} 2017, 2018, 2019, 2020, 2021, 2022 Marius Bakke@* Copyright @copyright{} 2017, 2019, 2020, 2022 Hartmut Goebel@* Copyright @copyright{} 2017, 2019, 2020, 2021, 2022, 2023 Maxim Cournoyer@* Copyright @copyright{} 2017–2022 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019, 2020, 2023, 2024 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018, 2021, 2023 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018, 2019 Gábor Boskovits@* Copyright @copyright{} 2018, 2019, 2020, 2022, 2023, 2024 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@* Copyright @copyright{} 2019 Josh Holland@* Copyright @copyright{} 2019, 2020 Diego Nicola Barbato@* Copyright @copyright{} 2019 Ivan Petkov@* Copyright @copyright{} 2019 Jakob L. Kreuze@* Copyright @copyright{} 2019 Kyle Andrews@* Copyright @copyright{} 2019 Alex Griffin@* Copyright @copyright{} 2019, 2020, 2021, 2022 Guillaume Le Vaillant@* Copyright @copyright{} 2020 Liliana Marie Prikler@* Copyright @copyright{} 2019, 2020, 2021, 2022, 2023 Simon Tournier@* Copyright @copyright{} 2020 Wiktor Żelazny@* Copyright @copyright{} 2020 Damien Cassou@* Copyright @copyright{} 2020 Jakub Kądziołka@* Copyright @copyright{} 2020 Jack Hill@* Copyright @copyright{} 2020 Naga Malleswari@* Copyright @copyright{} 2020, 2021 Brice Waegeneire@* Copyright @copyright{} 2020 R Veera Kumar@* Copyright @copyright{} 2020, 2021, 2022 Pierre Langlois@* Copyright @copyright{} 2020 pinoaffe@* Copyright @copyright{} 2020, 2023 André Batista@* Copyright @copyright{} 2020, 2021 Alexandru-Sergiu Marton@* Copyright @copyright{} 2020 raingloom@* Copyright @copyright{} 2020 Daniel Brooks@* Copyright @copyright{} 2020 John Soo@* Copyright @copyright{} 2020 Jonathan Brielmaier@* Copyright @copyright{} 2020 Edgar Vincent@* Copyright @copyright{} 2021, 2022 Maxime Devos@* Copyright @copyright{} 2021 B. Wilson@* Copyright @copyright{} 2021 Xinglu Chen@* Copyright @copyright{} 2021 Raghav Gururajan@* Copyright @copyright{} 2021 Domagoj Stolfa@* Copyright @copyright{} 2021 Hui Lu@* Copyright @copyright{} 2021 pukkamustard@* Copyright @copyright{} 2021 Alice Brenon@* Copyright @copyright{} 2021-2023 Josselin Poiret@* Copyright @copyright{} 2021, 2023 muradm@* Copyright @copyright{} 2021, 2022 Andrew Tropin@* Copyright @copyright{} 2021 Sarah Morgensen@* Copyright @copyright{} 2022 Remco van 't Veer@* Copyright @copyright{} 2022 Aleksandr Vityazev@* Copyright @copyright{} 2022 Philip M@sup{c}Grath@* Copyright @copyright{} 2022 Karl Hallsby@* Copyright @copyright{} 2022 Justin Veilleux@* Copyright @copyright{} 2022 Reily Siegel@* Copyright @copyright{} 2022 Simon Streit@* Copyright @copyright{} 2022 (@* Copyright @copyright{} 2022 John Kehayias@* Copyright @copyright{} 2022⁠–⁠2023 Bruno Victal@* Copyright @copyright{} 2022 Ivan Vilata-i-Balaguer@* Copyright @copyright{} 2023-2024 Giacomo Leidi@* Copyright @copyright{} 2022 Antero Mejr@* Copyright @copyright{} 2023 Karl Hallsby@* Copyright @copyright{} 2023 Nathaniel Nicandro@* Copyright @copyright{} 2023 Tanguy Le Carrour@* Copyright @copyright{} 2023, 2024 Zheng Junjie@* Copyright @copyright{} 2023 Brian Cully@* Copyright @copyright{} 2023 Felix Lechner@* Copyright @copyright{} 2023 Foundation Devices, Inc.@* Copyright @copyright{} 2023 Thomas Ieong@* Copyright @copyright{} 2023 Saku Laesvuori@* Copyright @copyright{} 2023 Graham James Addis@* Copyright @copyright{} 2023, 2024 Tomas Volf@* Copyright @copyright{} 2024 Herman Rimm@* Copyright @copyright{} 2024 Matthew Trzcinski@* Copyright @copyright{} 2024 Richard Sent@* Copyright @copyright{} 2024 Dariqq@* Copyright @copyright{} 2024 Denis 'GNUtoo' Carikli@* Copyright @copyright{} 2024 Fabio Natali@*" msgstr "Copyright @copyright{} 2012-2024 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017, 2019, 2020, 2021, 2023 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018, 2021 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 Nikita Gillmann@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Jan Nieuwenhuizen@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021 Christopher Baines@* Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@* Copyright @copyright{} 2017, 2018, 2020, 2021, 2022 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018, 2024 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017, 2021 Christine Lemmer-Webber@* Copyright @copyright{} 2017, 2018, 2019, 2020, 2021, 2022 Marius Bakke@* Copyright @copyright{} 2017, 2019, 2020, 2022 Hartmut Goebel@* Copyright @copyright{} 2017, 2019, 2020, 2021, 2022, 2023 Maxim Cournoyer@* Copyright @copyright{} 2017–2022 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019, 2020, 2023 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018, 2021, 2023 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018, 2019 Gábor Boskovits@* Copyright @copyright{} 2018, 2019, 2020, 2022, 2023, 2024 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@* Copyright @copyright{} 2019 Josh Holland@* Copyright @copyright{} 2019, 2020 Diego Nicola Barbato@* Copyright @copyright{} 2019 Ivan Petkov@* Copyright @copyright{} 2019 Jakob L. Kreuze@* Copyright @copyright{} 2019 Kyle Andrews@* Copyright @copyright{} 2019 Alex Griffin@* Copyright @copyright{} 2019, 2020, 2021, 2022 Guillaume Le Vaillant@* Copyright @copyright{} 2020 Liliana Marie Prikler@* Copyright @copyright{} 2019, 2020, 2021, 2022, 2023 Simon Tournier@* Copyright @copyright{} 2020 Wiktor Żelazny@* Copyright @copyright{} 2020 Damien Cassou@* Copyright @copyright{} 2020 Jakub Kądziołka@* Copyright @copyright{} 2020 Jack Hill@* Copyright @copyright{} 2020 Naga Malleswari@* Copyright @copyright{} 2020, 2021 Brice Waegeneire@* Copyright @copyright{} 2020 R Veera Kumar@* Copyright @copyright{} 2020, 2021, 2022 Pierre Langlois@* Copyright @copyright{} 2020 pinoaffe@* Copyright @copyright{} 2020, 2023 André Batista@* Copyright @copyright{} 2020, 2021 Alexandru-Sergiu Marton@* Copyright @copyright{} 2020 raingloom@* Copyright @copyright{} 2020 Daniel Brooks@* Copyright @copyright{} 2020 John Soo@* Copyright @copyright{} 2020 Jonathan Brielmaier@* Copyright @copyright{} 2020 Edgar Vincent@* Copyright @copyright{} 2021, 2022 Maxime Devos@* Copyright @copyright{} 2021 B. Wilson@* Copyright @copyright{} 2021 Xinglu Chen@* Copyright @copyright{} 2021 Raghav Gururajan@* Copyright @copyright{} 2021 Domagoj Stolfa@* Copyright @copyright{} 2021 Hui Lu@* Copyright @copyright{} 2021 pukkamustard@* Copyright @copyright{} 2021 Alice Brenon@* Copyright @copyright{} 2021-2023 Josselin Poiret@* Copyright @copyright{} 2021, 2023 muradm@* Copyright @copyright{} 2021, 2022 Andrew Tropin@* Copyright @copyright{} 2021 Sarah Morgensen@* Copyright @copyright{} 2022 Remco van 't Veer@* Copyright @copyright{} 2022 Aleksandr Vityazev@* Copyright @copyright{} 2022 Philip M@sup{c}Grath@* Copyright @copyright{} 2022 Karl Hallsby@* Copyright @copyright{} 2022 Justin Veilleux@* Copyright @copyright{} 2022 Reily Siegel@* Copyright @copyright{} 2022 Simon Streit@* Copyright @copyright{} 2022 (@* Copyright @copyright{} 2022 John Kehayias@* Copyright @copyright{} 2022⁠–⁠2023 Bruno Victal@* Copyright @copyright{} 2022 Ivan Vilata-i-Balaguer@* Copyright @copyright{} 2023-2024 Giacomo Leidi@* Copyright @copyright{} 2022 Antero Mejr@* Copyright @copyright{} 2023 Karl Hallsby@* Copyright @copyright{} 2023 Nathaniel Nicandro@* Copyright @copyright{} 2023 Tanguy Le Carrour@* Copyright @copyright{} 2023 Zheng Junjie@* Copyright @copyright{} 2023 Brian Cully@* Copyright @copyright{} 2023 Felix Lechner@* Copyright @copyright{} 2023 Foundation Devices, Inc.@* Copyright @copyright{} 2023 Thomas Ieong@* Copyright @copyright{} 2023 Saku Laesvuori@* Copyright @copyright{} 2023 Graham James Addis@* Copyright @copyright{} 2023 Tomas Volf@* Copyright @copyright{} 2024 Herman Rimm@* Copyright @copyright{} 2024 Matthew Trzcinski@* Copyright @copyright{} 2024 Richard Sent@*" #. type: copying #: guix-git/doc/guix.texi:140 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.texi:142 #, no-wrap msgid "System administration" msgstr "Systemadministration" #. type: menuentry #: guix-git/doc/guix.texi:150 msgid "Guix: (guix)" msgstr "Guix: (guix.de)" #. type: menuentry #: guix-git/doc/guix.texi:150 msgid "Manage installed software and system configuration." msgstr "Installierte Software und Systemkonfigurationen verwalten." #. type: menuentry #: guix-git/doc/guix.texi:150 msgid "guix package: (guix)Invoking guix package" msgstr "guix package: (guix.de)guix package aufrufen" #. type: menuentry #: guix-git/doc/guix.texi:150 msgid "Installing, removing, and upgrading packages." msgstr "Pakete installieren, entfernen und aktualisieren." #. type: menuentry #: guix-git/doc/guix.texi:150 msgid "guix gc: (guix)Invoking guix gc" msgstr "guix gc: (guix.de)guix gc aufrufen" #. type: menuentry #: guix-git/doc/guix.texi:150 msgid "Reclaiming unused disk space." msgstr "Unbenutzten Plattenspeicher wieder freigeben." #. type: menuentry #: guix-git/doc/guix.texi:150 msgid "guix pull: (guix)Invoking guix pull" msgstr "guix pull: (guix.de)guix pull aufrufen" #. type: menuentry #: guix-git/doc/guix.texi:150 msgid "Update the list of available packages." msgstr "Die Liste verfügbarer Pakete aktualisieren." #. type: menuentry #: guix-git/doc/guix.texi:150 msgid "guix system: (guix)Invoking guix system" msgstr "guix system: (guix.de)guix system aufrufen" #. type: menuentry #: guix-git/doc/guix.texi:150 msgid "Manage the operating system configuration." msgstr "Die Betriebssystemkonfiguration verwalten." #. type: menuentry #: guix-git/doc/guix.texi:150 msgid "guix deploy: (guix)Invoking guix deploy" msgstr "guix deploy: (guix.de)guix deploy aufrufen" #. type: menuentry #: guix-git/doc/guix.texi:150 msgid "Manage operating system configurations for remote hosts." msgstr "Betriebssystemkonfigurationen entfernter Rechner verwalten." #. type: dircategory #: guix-git/doc/guix.texi:152 #, no-wrap msgid "Software development" msgstr "Softwareentwicklung" #. type: menuentry #: guix-git/doc/guix.texi:158 msgid "guix shell: (guix)Invoking guix shell" msgstr "guix shell: (guix.de)guix shell aufrufen" #. type: menuentry #: guix-git/doc/guix.texi:158 msgid "Creating software environments." msgstr "Software-Umgebungen erzeugen." #. type: menuentry #: guix-git/doc/guix.texi:158 msgid "guix environment: (guix)Invoking guix environment" msgstr "guix environment: (guix.de)guix environment aufrufen" #. type: menuentry #: guix-git/doc/guix.texi:158 msgid "Building development environments with Guix." msgstr "Umgebungen für Entwickler erstellen" #. type: menuentry #: guix-git/doc/guix.texi:158 msgid "guix build: (guix)Invoking guix build" msgstr "guix build: (guix.de)guix build aufrufen" #. type: menuentry #: guix-git/doc/guix.texi:158 msgid "Building packages." msgstr "Erstellen von Paketen." #. type: menuentry #: guix-git/doc/guix.texi:158 msgid "guix pack: (guix)Invoking guix pack" msgstr "guix pack: (guix.de)guix pack aufrufen" #. type: menuentry #: guix-git/doc/guix.texi:158 msgid "Creating binary bundles." msgstr "Bündel aus Binärdateien erstellen." #. type: subtitle #: guix-git/doc/guix.texi:162 #, no-wrap msgid "Using the GNU Guix Functional Package Manager" msgstr "Den funktionalen Paketmanager GNU Guix benutzen" #. type: author #: guix-git/doc/guix.texi:163 #, no-wrap msgid "The GNU Guix Developers" msgstr "Die Entwickler von GNU Guix" #. type: titlepage #: guix-git/doc/guix.texi:169 msgid "Edition @value{EDITION} @* @value{UPDATED} @*" msgstr "Edition @value{EDITION} @* @value{UPDATED} @*" #. type: node #: guix-git/doc/guix.texi:176 #, no-wrap msgid "Top" msgstr "Top" #. type: top #: guix-git/doc/guix.texi:177 #, no-wrap msgid "GNU Guix" msgstr "GNU Guix" #. type: Plain text #: guix-git/doc/guix.texi:181 msgid "This document describes GNU Guix version @value{VERSION}, a functional package management tool written for the GNU system." msgstr "Dieses Dokument beschreibt GNU Guix, Version @value{VERSION}, ein Werkzeug zur funktionalen Verwaltung von Softwarepaketen, das für das GNU-System geschrieben wurde." #. You can replace the following paragraph with information on #. type: Plain text #: guix-git/doc/guix.texi:194 msgid "This manual is also available in Simplified Chinese (@pxref{Top,,, guix.zh_CN, GNU Guix参考手册}), French (@pxref{Top,,, guix.fr, Manuel de référence de GNU Guix}), German (@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix}), Spanish (@pxref{Top,,, guix.es, Manual de referencia de GNU Guix}), Brazilian Portuguese (@pxref{Top,,, guix.pt_BR, Manual de referência do GNU Guix}), and Russian (@pxref{Top,,, guix.ru, Руководство GNU Guix}). If you would like to translate it in your native language, consider joining @uref{https://translate.fedoraproject.org/projects/guix/documentation-manual, Weblate} (@pxref{Translating Guix})." msgstr "Dieses Handbuch ist auch auf Englisch (siehe @ref{Top,,, guix, GNU Guix Reference Manual}), in Vereinfachtem Chinesisch (siehe @ref{Top,,, guix.zh_CN, GNU Guix参考手册}), auf Französisch (siehe @ref{Top,,, guix.fr, Manuel de référence de GNU Guix}), auf Spanisch (siehe @ref{Top,,, guix.es, Manual de referencia de GNU Guix}), auf Brasilianischem Portugiesisch (siehe @ref{Top,,, guix.pt_BR, Manual de referência do GNU Guix}) und auf Russisch verfügbar (siehe @ref{Top,,, guix.ru, Руководство GNU Guix}). Wenn Sie es in Ihre eigene Sprache übersetzen möchten, dann sind Sie bei @uref{https://translate.fedoraproject.org/projects/guix/documentation-manual, Weblate} herzlich willkommen (siehe @ref{Translating Guix})." #. type: chapter #: guix-git/doc/guix.texi:218 guix-git/doc/guix.texi:228 #: guix-git/doc/guix.texi:496 guix-git/doc/guix.texi:497 #, no-wrap msgid "Introduction" msgstr "Einführung" #. type: menuentry #: guix-git/doc/guix.texi:218 msgid "What is Guix about?" msgstr "Was ist Guix überhaupt?" #. type: chapter #: guix-git/doc/guix.texi:218 guix-git/doc/guix.texi:233 #: guix-git/doc/guix.texi:693 guix-git/doc/guix.texi:694 #, no-wrap msgid "Installation" msgstr "Installation" #. type: menuentry #: guix-git/doc/guix.texi:218 msgid "Installing Guix." msgstr "Guix installieren." #. type: chapter #: guix-git/doc/guix.texi:218 guix-git/doc/guix.texi:247 #: guix-git/doc/guix.texi:1965 guix-git/doc/guix.texi:1966 #, no-wrap msgid "System Installation" msgstr "Systeminstallation" #. type: menuentry #: guix-git/doc/guix.texi:218 msgid "Installing the whole operating system." msgstr "Das ganze Betriebssystem installieren." #. type: section #: guix-git/doc/guix.texi:218 guix-git/doc/guix.texi:2676 #: guix-git/doc/guix.texi:2677 guix-git/doc/guix.texi:16973 #, no-wrap msgid "Getting Started" msgstr "Einstieg" #. type: menuentry #: guix-git/doc/guix.texi:218 guix-git/doc/guix.texi:383 #: guix-git/doc/guix.texi:16970 msgid "Your first steps." msgstr "Ihre ersten Schritte." #. type: chapter #: guix-git/doc/guix.texi:218 guix-git/doc/guix.texi:264 #: guix-git/doc/guix.texi:2875 guix-git/doc/guix.texi:2876 #, no-wrap msgid "Package Management" msgstr "Paketverwaltung" #. type: menuentry #: guix-git/doc/guix.texi:218 msgid "Package installation, upgrade, etc." msgstr "Pakete installieren, aktualisieren usw." #. type: chapter #: guix-git/doc/guix.texi:218 guix-git/doc/guix.texi:288 #: guix-git/doc/guix.texi:5178 guix-git/doc/guix.texi:5179 #, no-wrap msgid "Channels" msgstr "Kanäle" #. type: menuentry #: guix-git/doc/guix.texi:218 msgid "Customizing the package collection." msgstr "Die Paketsammlung anpassen." #. type: chapter #: guix-git/doc/guix.texi:218 guix-git/doc/guix.texi:302 #: guix-git/doc/guix.texi:5878 guix-git/doc/guix.texi:5879 #, no-wrap msgid "Development" msgstr "Entwicklung" #. type: menuentry #: guix-git/doc/guix.texi:218 msgid "Guix-aided software development." msgstr "Von Guix unterstützte Softwareentwicklung." #. type: chapter #: guix-git/doc/guix.texi:218 guix-git/doc/guix.texi:310 #: guix-git/doc/guix.texi:7438 guix-git/doc/guix.texi:7439 #, no-wrap msgid "Programming Interface" msgstr "Programmierschnittstelle" #. type: menuentry #: guix-git/doc/guix.texi:218 msgid "Using Guix in Scheme." msgstr "Guix in Scheme verwenden." #. type: chapter #: guix-git/doc/guix.texi:218 guix-git/doc/guix.texi:332 #: guix-git/doc/guix.texi:12798 guix-git/doc/guix.texi:12799 #, no-wrap msgid "Utilities" msgstr "Zubehör" #. type: menuentry #: guix-git/doc/guix.texi:218 msgid "Package management commands." msgstr "Befehle zur Paketverwaltung." #. type: chapter #: guix-git/doc/guix.texi:218 guix-git/doc/guix.texi:358 #: guix-git/doc/guix.texi:16759 guix-git/doc/guix.texi:16760 #, no-wrap msgid "Foreign Architectures" msgstr "Fremde Architekturen" #. type: menuentry #: guix-git/doc/guix.texi:218 msgid "Build for foreign architectures." msgstr "Erstellen für fremde Architekturen." #. type: chapter #: guix-git/doc/guix.texi:218 guix-git/doc/guix.texi:363 #: guix-git/doc/guix.texi:16925 guix-git/doc/guix.texi:16926 #, no-wrap msgid "System Configuration" msgstr "Systemkonfiguration" #. type: menuentry #: guix-git/doc/guix.texi:218 msgid "Configuring the operating system." msgstr "Das Betriebssystem konfigurieren." #. type: chapter #: guix-git/doc/guix.texi:218 guix-git/doc/guix.texi:437 #: guix-git/doc/guix.texi:44800 guix-git/doc/guix.texi:44801 #, no-wrap msgid "System Troubleshooting Tips" msgstr "Problembehandlung bei Guix System" #. type: menuentry #: guix-git/doc/guix.texi:218 msgid "When things don't go as planned." msgstr "Wenn es mal nicht so läuft." #. type: chapter #: guix-git/doc/guix.texi:218 guix-git/doc/guix.texi:441 #: guix-git/doc/guix.texi:44915 guix-git/doc/guix.texi:44916 #, no-wrap msgid "Home Configuration" msgstr "Persönliche Konfiguration" #. type: menuentry #: guix-git/doc/guix.texi:218 msgid "Configuring the home environment." msgstr "Persönliche Home-Umgebungen konfigurieren." #. type: chapter #: guix-git/doc/guix.texi:218 guix-git/doc/guix.texi:47520 #: guix-git/doc/guix.texi:47521 #, no-wrap msgid "Documentation" msgstr "Dokumentation" #. type: menuentry #: guix-git/doc/guix.texi:218 msgid "Browsing software user manuals." msgstr "Wie man Nutzerhandbücher von Software liest." #. type: chapter #: guix-git/doc/guix.texi:218 guix-git/doc/guix.texi:467 #: guix-git/doc/guix.texi:47586 guix-git/doc/guix.texi:47587 #, no-wrap msgid "Platforms" msgstr "Plattformen" #. type: menuentry #: guix-git/doc/guix.texi:218 msgid "Defining platforms." msgstr "Plattformen definieren." #. type: node #: guix-git/doc/guix.texi:218 guix-git/doc/guix.texi:47720 #, no-wrap msgid "System Images" msgstr "Systemabbilder" #. type: menuentry #: guix-git/doc/guix.texi:218 msgid "Creating system images." msgstr "System-Images erzeugen." #. type: chapter #: guix-git/doc/guix.texi:218 guix-git/doc/guix.texi:483 #: guix-git/doc/guix.texi:48257 guix-git/doc/guix.texi:48258 #, no-wrap msgid "Installing Debugging Files" msgstr "Dateien zur Fehlersuche installieren" #. type: menuentry #: guix-git/doc/guix.texi:218 msgid "Feeding the debugger." msgstr "Den Debugger füttern." #. type: node #: guix-git/doc/guix.texi:218 guix-git/doc/guix.texi:48412 #, no-wrap msgid "Using TeX and LaTeX" msgstr "TeX und LaTeX gebrauchen" #. type: menuentry #: guix-git/doc/guix.texi:218 msgid "Typesetting." msgstr "Texte setzen." #. type: chapter #: guix-git/doc/guix.texi:218 guix-git/doc/guix.texi:48531 #: guix-git/doc/guix.texi:48532 #, no-wrap msgid "Security Updates" msgstr "Sicherheitsaktualisierungen" #. type: menuentry #: guix-git/doc/guix.texi:218 msgid "Deploying security fixes quickly." msgstr "Sicherheits-Patches schnell einspielen." #. type: chapter #: guix-git/doc/guix.texi:218 guix-git/doc/guix.texi:488 #: guix-git/doc/guix.texi:48646 guix-git/doc/guix.texi:48647 #, no-wrap msgid "Bootstrapping" msgstr "Bootstrapping" #. type: menuentry #: guix-git/doc/guix.texi:218 msgid "GNU/Linux built from scratch." msgstr "GNU/Linux von Grund auf selbst erstellen." #. type: node #: guix-git/doc/guix.texi:218 guix-git/doc/guix.texi:48950 #, no-wrap msgid "Porting" msgstr "Portierung" #. type: menuentry #: guix-git/doc/guix.texi:218 msgid "Targeting another platform or kernel." msgstr "Guix auf andere Plattformen und Kernels bringen." #. type: menuentry #: guix-git/doc/guix.texi:218 msgid "Your help needed!" msgstr "Ihre Hilfe ist nötig!" #. type: chapter #: guix-git/doc/guix.texi:223 guix-git/doc/guix.texi:49000 #: guix-git/doc/guix.texi:49001 #, no-wrap msgid "Acknowledgments" msgstr "Danksagungen" #. type: menuentry #: guix-git/doc/guix.texi:223 msgid "Thanks!" msgstr "Danke!" #. type: appendix #: guix-git/doc/guix.texi:223 guix-git/doc/guix.texi:49022 #: guix-git/doc/guix.texi:49023 #, no-wrap msgid "GNU Free Documentation License" msgstr "GNU-Lizenz für freie Dokumentation" #. type: menuentry #: guix-git/doc/guix.texi:223 msgid "The license of this manual." msgstr "Die Lizenz dieses Handbuchs." #. type: unnumbered #: guix-git/doc/guix.texi:223 guix-git/doc/guix.texi:49028 #: guix-git/doc/guix.texi:49029 #, no-wrap msgid "Concept Index" msgstr "Konzeptverzeichnis" #. type: menuentry #: guix-git/doc/guix.texi:223 msgid "Concepts." msgstr "Konzepte." #. type: unnumbered #: guix-git/doc/guix.texi:223 guix-git/doc/guix.texi:49032 #: guix-git/doc/guix.texi:49033 #, no-wrap msgid "Programming Index" msgstr "Programmierverzeichnis" #. type: menuentry #: guix-git/doc/guix.texi:223 msgid "Data types, functions, and variables." msgstr "Datentypen, Funktionen und Variable." #. type: menuentry #: guix-git/doc/guix.texi:226 msgid "--- The Detailed Node Listing ---" msgstr "--- Detaillierte Liste der Knoten ---" #. type: section #: guix-git/doc/guix.texi:231 guix-git/doc/guix.texi:523 #: guix-git/doc/guix.texi:525 guix-git/doc/guix.texi:526 #, no-wrap msgid "Managing Software the Guix Way" msgstr "Auf Guix-Art Software verwalten" #. type: menuentry #: guix-git/doc/guix.texi:231 guix-git/doc/guix.texi:523 msgid "What's special." msgstr "Was Guix besonders macht." #. type: section #: guix-git/doc/guix.texi:231 guix-git/doc/guix.texi:523 #: guix-git/doc/guix.texi:580 guix-git/doc/guix.texi:581 #, no-wrap msgid "GNU Distribution" msgstr "GNU-Distribution" #. type: menuentry #: guix-git/doc/guix.texi:231 guix-git/doc/guix.texi:523 msgid "The packages and tools." msgstr "Die Pakete und Werkzeuge." #. type: section #: guix-git/doc/guix.texi:239 guix-git/doc/guix.texi:726 #: guix-git/doc/guix.texi:728 guix-git/doc/guix.texi:729 #, no-wrap msgid "Binary Installation" msgstr "Aus Binärdatei installieren" #. type: menuentry #: guix-git/doc/guix.texi:239 guix-git/doc/guix.texi:726 msgid "Getting Guix running in no time!" msgstr "Guix installieren ohne Zeit zu verlieren!" #. type: section #: guix-git/doc/guix.texi:239 guix-git/doc/guix.texi:241 #: guix-git/doc/guix.texi:726 guix-git/doc/guix.texi:860 #: guix-git/doc/guix.texi:861 #, no-wrap msgid "Setting Up the Daemon" msgstr "Den Daemon einrichten" #. type: menuentry #: guix-git/doc/guix.texi:239 guix-git/doc/guix.texi:726 msgid "Preparing the build daemon's environment." msgstr "Die Umgebung des Erstellungs-Daemons vorbereiten." #. type: node #: guix-git/doc/guix.texi:239 guix-git/doc/guix.texi:726 #: guix-git/doc/guix.texi:1393 #, no-wrap msgid "Invoking guix-daemon" msgstr "Aufruf des guix-daemon" #. type: menuentry #: guix-git/doc/guix.texi:239 guix-git/doc/guix.texi:726 msgid "Running the build daemon." msgstr "Den Erstellungs-Daemon laufen lassen." #. type: section #: guix-git/doc/guix.texi:239 guix-git/doc/guix.texi:726 #: guix-git/doc/guix.texi:1699 guix-git/doc/guix.texi:1700 #, no-wrap msgid "Application Setup" msgstr "Anwendungen einrichten" #. type: menuentry #: guix-git/doc/guix.texi:239 guix-git/doc/guix.texi:726 msgid "Application-specific setup." msgstr "Anwendungsspezifische Einstellungen." #. type: section #: guix-git/doc/guix.texi:239 guix-git/doc/guix.texi:726 #: guix-git/doc/guix.texi:1928 guix-git/doc/guix.texi:1929 #, no-wrap msgid "Upgrading Guix" msgstr "Aktualisieren von Guix" #. type: menuentry #: guix-git/doc/guix.texi:239 guix-git/doc/guix.texi:726 msgid "Upgrading Guix and its build daemon." msgstr "Guix und seinen Erstellungs-Daemon aktualisieren." #. type: subsection #: guix-git/doc/guix.texi:245 guix-git/doc/guix.texi:900 #: guix-git/doc/guix.texi:902 guix-git/doc/guix.texi:903 #, no-wrap msgid "Build Environment Setup" msgstr "Einrichten der Erstellungsumgebung" #. type: menuentry #: guix-git/doc/guix.texi:245 guix-git/doc/guix.texi:900 msgid "Preparing the isolated build environment." msgstr "Die isolierte Umgebung zum Erstellen herrichten." #. type: node #: guix-git/doc/guix.texi:245 guix-git/doc/guix.texi:900 #: guix-git/doc/guix.texi:1031 #, no-wrap msgid "Daemon Offload Setup" msgstr "Auslagern des Daemons einrichten" #. type: menuentry #: guix-git/doc/guix.texi:245 guix-git/doc/guix.texi:900 msgid "Offloading builds to remote machines." msgstr "Erstellungen auf entfernte Maschinen auslagern." #. type: subsection #: guix-git/doc/guix.texi:245 guix-git/doc/guix.texi:900 #: guix-git/doc/guix.texi:1283 guix-git/doc/guix.texi:1284 #, no-wrap msgid "SELinux Support" msgstr "SELinux-Unterstützung" #. type: menuentry #: guix-git/doc/guix.texi:245 guix-git/doc/guix.texi:900 msgid "Using an SELinux policy for the daemon." msgstr "Wie man eine SELinux-Richtlinie für den Daemon einrichtet." #. type: section #: guix-git/doc/guix.texi:257 guix-git/doc/guix.texi:1338 #: guix-git/doc/guix.texi:1999 guix-git/doc/guix.texi:2001 #: guix-git/doc/guix.texi:2002 #, no-wrap msgid "Limitations" msgstr "Einschränkungen" #. type: menuentry #: guix-git/doc/guix.texi:257 guix-git/doc/guix.texi:1999 msgid "What you can expect." msgstr "Was Sie erwarten dürfen." #. type: section #: guix-git/doc/guix.texi:257 guix-git/doc/guix.texi:1999 #: guix-git/doc/guix.texi:2018 guix-git/doc/guix.texi:2019 #, no-wrap msgid "Hardware Considerations" msgstr "Hardware-Überlegungen" #. type: menuentry #: guix-git/doc/guix.texi:257 guix-git/doc/guix.texi:1999 msgid "Supported hardware." msgstr "Unterstützte Hardware." #. type: section #: guix-git/doc/guix.texi:257 guix-git/doc/guix.texi:1999 #: guix-git/doc/guix.texi:2056 guix-git/doc/guix.texi:2057 #, no-wrap msgid "USB Stick and DVD Installation" msgstr "Installation von USB-Stick oder DVD" #. type: menuentry #: guix-git/doc/guix.texi:257 guix-git/doc/guix.texi:1999 msgid "Preparing the installation medium." msgstr "Das Installationsmedium vorbereiten." #. type: section #: guix-git/doc/guix.texi:257 guix-git/doc/guix.texi:1999 #: guix-git/doc/guix.texi:2147 guix-git/doc/guix.texi:2148 #, no-wrap msgid "Preparing for Installation" msgstr "Vor der Installation" #. type: menuentry #: guix-git/doc/guix.texi:257 guix-git/doc/guix.texi:1999 msgid "Networking, partitioning, etc." msgstr "Netzwerkanbindung, Partitionierung usw." #. type: section #: guix-git/doc/guix.texi:257 guix-git/doc/guix.texi:1999 #: guix-git/doc/guix.texi:2170 guix-git/doc/guix.texi:2171 #, no-wrap msgid "Guided Graphical Installation" msgstr "Geführte grafische Installation" #. type: menuentry #: guix-git/doc/guix.texi:257 guix-git/doc/guix.texi:1999 msgid "Easy graphical installation." msgstr "Leichte grafische Installation." #. type: section #: guix-git/doc/guix.texi:257 guix-git/doc/guix.texi:259 #: guix-git/doc/guix.texi:1999 guix-git/doc/guix.texi:2201 #: guix-git/doc/guix.texi:2202 #, no-wrap msgid "Manual Installation" msgstr "Manuelle Installation" #. type: menuentry #: guix-git/doc/guix.texi:257 guix-git/doc/guix.texi:1999 msgid "Manual installation for wizards." msgstr "Manuelle Installation für Zauberer." #. type: section #: guix-git/doc/guix.texi:257 guix-git/doc/guix.texi:1999 #: guix-git/doc/guix.texi:2572 guix-git/doc/guix.texi:2573 #, no-wrap msgid "After System Installation" msgstr "Nach der Systeminstallation" #. type: menuentry #: guix-git/doc/guix.texi:257 guix-git/doc/guix.texi:1999 msgid "When installation succeeded." msgstr "Wenn die Installation erfolgreich war." #. type: node #: guix-git/doc/guix.texi:257 guix-git/doc/guix.texi:1999 #: guix-git/doc/guix.texi:2592 #, no-wrap msgid "Installing Guix in a VM" msgstr "Guix in einer VM installieren" #. type: menuentry #: guix-git/doc/guix.texi:257 guix-git/doc/guix.texi:1999 msgid "Guix System playground." msgstr "Ein „Guix System“-Spielplatz." #. type: section #: guix-git/doc/guix.texi:257 guix-git/doc/guix.texi:1999 #: guix-git/doc/guix.texi:2643 guix-git/doc/guix.texi:2644 #, no-wrap msgid "Building the Installation Image" msgstr "Ein Abbild zur Installation erstellen" #. type: menuentry #: guix-git/doc/guix.texi:257 guix-git/doc/guix.texi:1999 msgid "How this comes to be." msgstr "Wie ein solches entsteht." # Commas in node names would prevent the terminal info viewer from following links. #. type: node #: guix-git/doc/guix.texi:262 guix-git/doc/guix.texi:2219 #: guix-git/doc/guix.texi:2221 #, no-wrap msgid "Keyboard Layout and Networking and Partitioning" msgstr "Tastaturbelegung und Netzwerkanbindung und Partitionierung" #. type: menuentry #: guix-git/doc/guix.texi:262 guix-git/doc/guix.texi:2219 msgid "Initial setup." msgstr "Vorab." #. type: subsection #: guix-git/doc/guix.texi:262 guix-git/doc/guix.texi:2219 #: guix-git/doc/guix.texi:2483 guix-git/doc/guix.texi:2484 #, no-wrap msgid "Proceeding with the Installation" msgstr "Fortfahren mit der Installation" #. type: menuentry #: guix-git/doc/guix.texi:262 guix-git/doc/guix.texi:2219 msgid "Installing." msgstr "Installieren." #. type: section #: guix-git/doc/guix.texi:276 guix-git/doc/guix.texi:2908 #: guix-git/doc/guix.texi:2910 guix-git/doc/guix.texi:2911 #, no-wrap msgid "Features" msgstr "Funktionalitäten" #. type: menuentry #: guix-git/doc/guix.texi:276 guix-git/doc/guix.texi:2908 msgid "How Guix will make your life brighter." msgstr "Wie Guix Ihr Leben schöner machen wird." #. type: node #: guix-git/doc/guix.texi:276 guix-git/doc/guix.texi:2908 #: guix-git/doc/guix.texi:3000 #, no-wrap msgid "Invoking guix package" msgstr "Aufruf von guix package" #. type: menuentry #: guix-git/doc/guix.texi:276 guix-git/doc/guix.texi:2908 msgid "Package installation, removal, etc." msgstr "Pakete installieren, entfernen usw." #. type: section #: guix-git/doc/guix.texi:276 guix-git/doc/guix.texi:278 #: guix-git/doc/guix.texi:2908 guix-git/doc/guix.texi:3613 #: guix-git/doc/guix.texi:3614 #, no-wrap msgid "Substitutes" msgstr "Substitute" #. type: menuentry #: guix-git/doc/guix.texi:276 guix-git/doc/guix.texi:2908 msgid "Downloading pre-built binaries." msgstr "Vorerstelle Binärdateien herunterladen." #. type: section #: guix-git/doc/guix.texi:276 guix-git/doc/guix.texi:2908 #: guix-git/doc/guix.texi:3965 guix-git/doc/guix.texi:3966 #, no-wrap msgid "Packages with Multiple Outputs" msgstr "Pakete mit mehreren Ausgaben." #. type: menuentry #: guix-git/doc/guix.texi:276 guix-git/doc/guix.texi:2908 msgid "Single source package, multiple outputs." msgstr "Ein Quellpaket, mehrere Ausgaben." #. type: node #: guix-git/doc/guix.texi:276 guix-git/doc/guix.texi:2908 #: guix-git/doc/guix.texi:4038 #, no-wrap msgid "Invoking guix locate" msgstr "Aufruf von guix locate" #. type: menuentry #: guix-git/doc/guix.texi:276 guix-git/doc/guix.texi:2908 msgid "Locating packages that provide a file." msgstr "Pakete finden, die eine Datei enthalten." #. type: node #: guix-git/doc/guix.texi:276 guix-git/doc/guix.texi:2908 #: guix-git/doc/guix.texi:4168 #, no-wrap msgid "Invoking guix gc" msgstr "Aufruf von guix gc" #. type: menuentry #: guix-git/doc/guix.texi:276 guix-git/doc/guix.texi:2908 msgid "Running the garbage collector." msgstr "Den Müllsammler laufen lassen." #. type: node #: guix-git/doc/guix.texi:276 guix-git/doc/guix.texi:2908 #: guix-git/doc/guix.texi:4392 #, no-wrap msgid "Invoking guix pull" msgstr "Aufruf von guix pull" #. type: menuentry #: guix-git/doc/guix.texi:276 guix-git/doc/guix.texi:2908 msgid "Fetching the latest Guix and distribution." msgstr "Das neueste Guix samt Distribution laden." #. type: node #: guix-git/doc/guix.texi:276 guix-git/doc/guix.texi:2908 #: guix-git/doc/guix.texi:4644 #, no-wrap msgid "Invoking guix time-machine" msgstr "Aufruf von time-machine" #. type: menuentry #: guix-git/doc/guix.texi:276 guix-git/doc/guix.texi:2908 msgid "Running an older revision of Guix." msgstr "Alte Guix-Versionen verwenden." #. type: section #: guix-git/doc/guix.texi:276 guix-git/doc/guix.texi:2908 #: guix-git/doc/guix.texi:4765 guix-git/doc/guix.texi:4766 #, no-wrap msgid "Inferiors" msgstr "Untergeordnete" #. type: menuentry #: guix-git/doc/guix.texi:276 guix-git/doc/guix.texi:2908 msgid "Interacting with another revision of Guix." msgstr "Mit einer anderen Version von Guix interagieren." #. type: node #: guix-git/doc/guix.texi:276 guix-git/doc/guix.texi:2908 #: guix-git/doc/guix.texi:4890 #, no-wrap msgid "Invoking guix describe" msgstr "Aufruf von guix describe" #. type: menuentry #: guix-git/doc/guix.texi:276 guix-git/doc/guix.texi:2908 msgid "Display information about your Guix revision." msgstr "Informationen über Ihre Guix-Version anzeigen." #. type: node #: guix-git/doc/guix.texi:276 guix-git/doc/guix.texi:2908 #: guix-git/doc/guix.texi:4986 #, no-wrap msgid "Invoking guix archive" msgstr "Aufruf von guix archive" #. type: menuentry #: guix-git/doc/guix.texi:276 guix-git/doc/guix.texi:2908 msgid "Exporting and importing store files." msgstr "Import und Export von Store-Dateien." #. type: subsection #: guix-git/doc/guix.texi:286 guix-git/doc/guix.texi:3637 #: guix-git/doc/guix.texi:3639 guix-git/doc/guix.texi:3640 #, no-wrap msgid "Official Substitute Servers" msgstr "Offizielle Substitut-Server" #. type: menuentry #: guix-git/doc/guix.texi:286 guix-git/doc/guix.texi:3637 msgid "One particular source of substitutes." msgstr "Eine besondere Quelle von Substituten." #. type: subsection #: guix-git/doc/guix.texi:286 guix-git/doc/guix.texi:3637 #: guix-git/doc/guix.texi:3669 guix-git/doc/guix.texi:3670 #, no-wrap msgid "Substitute Server Authorization" msgstr "Substitut-Server autorisieren" #. type: menuentry #: guix-git/doc/guix.texi:286 guix-git/doc/guix.texi:3637 msgid "How to enable or disable substitutes." msgstr "Wie man Substitute an- und abschaltet." #. type: subsection #: guix-git/doc/guix.texi:286 guix-git/doc/guix.texi:3637 #: guix-git/doc/guix.texi:3739 guix-git/doc/guix.texi:3740 #, no-wrap msgid "Getting Substitutes from Other Servers" msgstr "Substitute von anderen Servern holen" #. type: menuentry #: guix-git/doc/guix.texi:286 guix-git/doc/guix.texi:3637 msgid "Substitute diversity." msgstr "Substitutevielfalt." #. type: subsection #: guix-git/doc/guix.texi:286 guix-git/doc/guix.texi:3637 #: guix-git/doc/guix.texi:3860 guix-git/doc/guix.texi:3861 #, no-wrap msgid "Substitute Authentication" msgstr "Substitutauthentifizierung" #. type: menuentry #: guix-git/doc/guix.texi:286 guix-git/doc/guix.texi:3637 msgid "How Guix verifies substitutes." msgstr "Wie Guix Substitute verifiziert." #. type: subsection #: guix-git/doc/guix.texi:286 guix-git/doc/guix.texi:3637 #: guix-git/doc/guix.texi:3895 guix-git/doc/guix.texi:3896 #, no-wrap msgid "Proxy Settings" msgstr "Proxy-Einstellungen" #. type: menuentry #: guix-git/doc/guix.texi:286 guix-git/doc/guix.texi:3637 msgid "How to get substitutes via proxy." msgstr "Wie Sie Substitute über einen Proxy beziehen." #. type: subsection #: guix-git/doc/guix.texi:286 guix-git/doc/guix.texi:3637 #: guix-git/doc/guix.texi:3907 guix-git/doc/guix.texi:3908 #, no-wrap msgid "Substitution Failure" msgstr "Fehler bei der Substitution" #. type: menuentry #: guix-git/doc/guix.texi:286 guix-git/doc/guix.texi:3637 msgid "What happens when substitution fails." msgstr "Was passiert, wenn die Substitution fehlschlägt." #. type: subsection #: guix-git/doc/guix.texi:286 guix-git/doc/guix.texi:3637 #: guix-git/doc/guix.texi:3935 guix-git/doc/guix.texi:3936 #, no-wrap msgid "On Trusting Binaries" msgstr "Vom Vertrauen gegenüber Binärdateien" #. type: menuentry #: guix-git/doc/guix.texi:286 guix-git/doc/guix.texi:3637 msgid "How can you trust that binary blob?" msgstr "Wie können Sie diesem binären Blob trauen?" #. type: section #: guix-git/doc/guix.texi:300 guix-git/doc/guix.texi:5210 #: guix-git/doc/guix.texi:5212 guix-git/doc/guix.texi:5213 #, no-wrap msgid "Specifying Additional Channels" msgstr "Weitere Kanäle angeben" #. type: menuentry #: guix-git/doc/guix.texi:300 guix-git/doc/guix.texi:5210 msgid "Extending the package collection." msgstr "Die Paketsammlung erweitern." #. type: section #: guix-git/doc/guix.texi:300 guix-git/doc/guix.texi:5210 #: guix-git/doc/guix.texi:5258 guix-git/doc/guix.texi:5259 #, no-wrap msgid "Using a Custom Guix Channel" msgstr "Eigenen Guix-Kanal benutzen" #. type: menuentry #: guix-git/doc/guix.texi:300 guix-git/doc/guix.texi:5210 msgid "Using a customized Guix." msgstr "Ein angepasstes Guix benutzen." #. type: section #: guix-git/doc/guix.texi:300 guix-git/doc/guix.texi:5210 #: guix-git/doc/guix.texi:5299 guix-git/doc/guix.texi:5300 #, no-wrap msgid "Replicating Guix" msgstr "Guix nachbilden" #. type: menuentry #: guix-git/doc/guix.texi:300 guix-git/doc/guix.texi:5210 msgid "Running the @emph{exact same} Guix." msgstr "Haargenau dasselbe Guix bekommen." #. type: section #: guix-git/doc/guix.texi:300 guix-git/doc/guix.texi:5210 #: guix-git/doc/guix.texi:5418 guix-git/doc/guix.texi:5419 #, no-wrap msgid "Channel Authentication" msgstr "Kanalauthentifizierung" #. type: menuentry #: guix-git/doc/guix.texi:300 guix-git/doc/guix.texi:5210 msgid "How Guix verifies what it fetches." msgstr "Wie Guix seine Aktualisierung verifiziert." #. type: section #: guix-git/doc/guix.texi:300 guix-git/doc/guix.texi:5210 #: guix-git/doc/guix.texi:5458 guix-git/doc/guix.texi:5459 #, no-wrap msgid "Channels with Substitutes" msgstr "Kanäle mit Substituten" #. type: menuentry #: guix-git/doc/guix.texi:300 guix-git/doc/guix.texi:5210 msgid "Using channels with available substitutes." msgstr "Kanäle nutzen, für die es Substitute gibt." #. type: section #: guix-git/doc/guix.texi:300 guix-git/doc/guix.texi:5210 #: guix-git/doc/guix.texi:5483 guix-git/doc/guix.texi:5484 #, no-wrap msgid "Creating a Channel" msgstr "Einen Kanal erstellen" #. type: menuentry #: guix-git/doc/guix.texi:300 guix-git/doc/guix.texi:5210 msgid "How to write your custom channel." msgstr "Wie Sie Ihren eigenen Kanal schreiben." #. type: section #: guix-git/doc/guix.texi:300 guix-git/doc/guix.texi:5210 #: guix-git/doc/guix.texi:5614 guix-git/doc/guix.texi:5615 #, no-wrap msgid "Package Modules in a Sub-directory" msgstr "Paketmodule in einem Unterverzeichnis" #. type: menuentry #: guix-git/doc/guix.texi:300 guix-git/doc/guix.texi:5210 msgid "Specifying the channel's package modules location." msgstr "Den Ort der Paketmodule des Kanals angeben." #. type: section #: guix-git/doc/guix.texi:300 guix-git/doc/guix.texi:5210 #: guix-git/doc/guix.texi:5640 guix-git/doc/guix.texi:5641 #, no-wrap msgid "Declaring Channel Dependencies" msgstr "Kanalabhängigkeiten deklarieren" #. type: menuentry #: guix-git/doc/guix.texi:300 guix-git/doc/guix.texi:5210 msgid "How to depend on other channels." msgstr "Abhängigkeiten von anderen Kanälen festlegen." #. type: section #: guix-git/doc/guix.texi:300 guix-git/doc/guix.texi:5210 #: guix-git/doc/guix.texi:5682 guix-git/doc/guix.texi:5683 #, no-wrap msgid "Specifying Channel Authorizations" msgstr "Kanalautorisierungen angeben" #. type: menuentry #: guix-git/doc/guix.texi:300 guix-git/doc/guix.texi:5210 msgid "Defining channel authors authorizations." msgstr "Autorisierungen von Kanalautoren definieren." #. type: section #: guix-git/doc/guix.texi:300 guix-git/doc/guix.texi:5210 #: guix-git/doc/guix.texi:5785 guix-git/doc/guix.texi:5786 #, no-wrap msgid "Primary URL" msgstr "Primäre URL" #. type: menuentry #: guix-git/doc/guix.texi:300 guix-git/doc/guix.texi:5210 msgid "Distinguishing mirror to original." msgstr "Spiegelserver vom Original unterscheiden." #. type: section #: guix-git/doc/guix.texi:300 guix-git/doc/guix.texi:5210 #: guix-git/doc/guix.texi:5808 guix-git/doc/guix.texi:5809 #, no-wrap msgid "Writing Channel News" msgstr "Kanalneuigkeiten verfassen" #. type: menuentry #: guix-git/doc/guix.texi:300 guix-git/doc/guix.texi:5210 msgid "Communicating information to channel's users." msgstr "Den Kanalnutzern Informationen mitteilen." #. type: node #: guix-git/doc/guix.texi:308 guix-git/doc/guix.texi:5898 #: guix-git/doc/guix.texi:5900 #, no-wrap msgid "Invoking guix shell" msgstr "Aufruf von guix shell" #. type: menuentry #: guix-git/doc/guix.texi:308 guix-git/doc/guix.texi:5898 msgid "Spawning one-off software environments." msgstr "Software-Umgebungen für den Moment." #. type: node #: guix-git/doc/guix.texi:308 guix-git/doc/guix.texi:5898 #: guix-git/doc/guix.texi:6442 #, no-wrap msgid "Invoking guix environment" msgstr "Aufruf von guix environment" #. type: menuentry #: guix-git/doc/guix.texi:308 guix-git/doc/guix.texi:5898 msgid "Setting up development environments." msgstr "Entwicklungsumgebungen einrichten." #. type: node #: guix-git/doc/guix.texi:308 guix-git/doc/guix.texi:5898 #: guix-git/doc/guix.texi:6839 #, no-wrap msgid "Invoking guix pack" msgstr "Aufruf von guix pack" #. type: menuentry #: guix-git/doc/guix.texi:308 guix-git/doc/guix.texi:5898 msgid "Creating software bundles." msgstr "Software-Bündel erstellen." #. type: section #: guix-git/doc/guix.texi:308 guix-git/doc/guix.texi:5898 #: guix-git/doc/guix.texi:7316 guix-git/doc/guix.texi:7317 #, no-wrap msgid "The GCC toolchain" msgstr "GCC-Toolchain" #. type: menuentry #: guix-git/doc/guix.texi:308 guix-git/doc/guix.texi:5898 msgid "Working with languages supported by GCC." msgstr "Arbeiten mit vom GCC unterstützten Sprachen." #. type: node #: guix-git/doc/guix.texi:308 guix-git/doc/guix.texi:5898 #: guix-git/doc/guix.texi:7342 #, no-wrap msgid "Invoking guix git authenticate" msgstr "Aufruf von guix git authenticate" #. type: menuentry #: guix-git/doc/guix.texi:308 guix-git/doc/guix.texi:5898 msgid "Authenticating Git repositories." msgstr "Git-Repositorys authentifizieren." #. type: section #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 #: guix-git/doc/guix.texi:7484 guix-git/doc/guix.texi:7485 #, no-wrap msgid "Package Modules" msgstr "Paketmodule" #. type: menuentry #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 msgid "Packages from the programmer's viewpoint." msgstr "Pakete aus Sicht des Programmierers." #. type: section #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:327 #: guix-git/doc/guix.texi:7482 guix-git/doc/guix.texi:7546 #: guix-git/doc/guix.texi:7547 #, no-wrap msgid "Defining Packages" msgstr "Pakete definieren" #. type: menuentry #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 msgid "Defining new packages." msgstr "Wie Sie neue Pakete definieren." #. type: section #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 #: guix-git/doc/guix.texi:8371 guix-git/doc/guix.texi:8372 #, no-wrap msgid "Defining Package Variants" msgstr "Paketvarianten definieren" #. type: menuentry #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 msgid "Customizing packages." msgstr "Pakete anpassen." #. type: section #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 #: guix-git/doc/guix.texi:8660 guix-git/doc/guix.texi:8661 #, no-wrap msgid "Writing Manifests" msgstr "Manifeste verfassen" #. type: menuentry #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 msgid "The bill of materials of your environment." msgstr "Woraus Ihre Umgebung besteht." #. type: section #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 #: guix-git/doc/guix.texi:8965 guix-git/doc/guix.texi:8966 #, no-wrap msgid "Build Systems" msgstr "Erstellungssysteme" #. type: menuentry #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 msgid "Specifying how packages are built." msgstr "Angeben, wie Pakete erstellt werden." #. type: subsection #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 #: guix-git/doc/guix.texi:10277 guix-git/doc/guix.texi:10278 #: guix-git/doc/guix.texi:10814 #, no-wrap msgid "Build Phases" msgstr "Erstellungsphasen" #. type: menuentry #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 msgid "Phases of the build process of a package." msgstr "Die Phasen im Erstellungsprozess eines Pakets." #. type: section #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 #: guix-git/doc/guix.texi:10502 guix-git/doc/guix.texi:10503 #, no-wrap msgid "Build Utilities" msgstr "Werkzeuge zur Erstellung" #. type: menuentry #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 msgid "Helpers for your package definitions and more." msgstr "Helferlein für Ihre Paketdefinitionen und anderes." #. type: section #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 #: guix-git/doc/guix.texi:10971 guix-git/doc/guix.texi:10972 #, no-wrap msgid "Search Paths" msgstr "Suchpfade" #. type: menuentry #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 msgid "Declaring search path environment variables." msgstr "Umgebungsvariable mit Suchpfaden deklarieren." #. type: section #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 #: guix-git/doc/guix.texi:11168 guix-git/doc/guix.texi:11169 #, no-wrap msgid "The Store" msgstr "Der Store" #. type: menuentry #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 msgid "Manipulating the package store." msgstr "Den Paket-Store verändern." #. type: section #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 #: guix-git/doc/guix.texi:11320 guix-git/doc/guix.texi:11321 #, no-wrap msgid "Derivations" msgstr "Ableitungen" #. type: menuentry #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 msgid "Low-level interface to package derivations." msgstr "Systemnahe Schnittstelle für Paketableitungen." #. type: section #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 #: guix-git/doc/guix.texi:11513 guix-git/doc/guix.texi:11514 #, no-wrap msgid "The Store Monad" msgstr "Die Store-Monade" #. type: menuentry #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 msgid "Purely functional interface to the store." msgstr "Rein funktionale Schnittstelle zum Store." #. type: section #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 #: guix-git/doc/guix.texi:11835 guix-git/doc/guix.texi:11836 #, no-wrap msgid "G-Expressions" msgstr "G-Ausdrücke" #. type: menuentry #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 msgid "Manipulating build expressions." msgstr "Erstellungsausdrücke verarbeiten." #. type: node #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 #: guix-git/doc/guix.texi:12519 #, no-wrap msgid "Invoking guix repl" msgstr "Aufruf von guix repl" #. type: menuentry #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 msgid "Programming Guix in Guile" msgstr "Guix in Guile programmieren." #. type: section #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 #: guix-git/doc/guix.texi:12636 guix-git/doc/guix.texi:12637 #, no-wrap msgid "Using Guix Interactively" msgstr "Interaktiv mit Guix arbeiten" #. type: menuentry #: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:7482 msgid "Fine-grain interaction at the REPL." msgstr "Genau steuern auf der REPL." #. type: node #: guix-git/doc/guix.texi:330 guix-git/doc/guix.texi:7750 #: guix-git/doc/guix.texi:7753 #, no-wrap msgid "package Reference" msgstr "„package“-Referenz" #. type: menuentry #: guix-git/doc/guix.texi:330 guix-git/doc/guix.texi:7750 msgid "The package data type." msgstr "Der Datentyp für Pakete." #. type: node #: guix-git/doc/guix.texi:330 guix-git/doc/guix.texi:7750 #: guix-git/doc/guix.texi:8065 #, no-wrap msgid "origin Reference" msgstr "„origin“-Referenz" #. type: menuentry #: guix-git/doc/guix.texi:330 guix-git/doc/guix.texi:7750 msgid "The origin data type." msgstr "Datentyp für Paketursprünge." #. type: node #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 #: guix-git/doc/guix.texi:12825 #, no-wrap msgid "Invoking guix build" msgstr "Aufruf von guix build" #. type: menuentry #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 msgid "Building packages from the command line." msgstr "Pakete aus der Befehlszeile heraus erstellen." #. type: node #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 #: guix-git/doc/guix.texi:13783 #, no-wrap msgid "Invoking guix edit" msgstr "Aufruf von guix edit" #. type: menuentry #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 msgid "Editing package definitions." msgstr "Paketdefinitionen bearbeiten." #. type: node #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 #: guix-git/doc/guix.texi:13813 #, no-wrap msgid "Invoking guix download" msgstr "Aufruf von guix download" #. type: menuentry #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 msgid "Downloading a file and printing its hash." msgstr "Eine Datei herunterladen und ihre Hash-Prüfsumme ausgeben." #. type: node #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 #: guix-git/doc/guix.texi:13894 #, no-wrap msgid "Invoking guix hash" msgstr "Aufruf von guix hash" #. type: menuentry #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 msgid "Computing the cryptographic hash of a file." msgstr "Die kryptografische Prüfsumme einer Datei berechnen." #. type: node #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 #: guix-git/doc/guix.texi:13985 #, no-wrap msgid "Invoking guix import" msgstr "Aufruf von guix import" #. type: menuentry #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 msgid "Importing package definitions." msgstr "Paketdefinitionen importieren." #. type: node #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 #: guix-git/doc/guix.texi:14661 #, no-wrap msgid "Invoking guix refresh" msgstr "Aufruf von guix refresh" #. type: menuentry #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 msgid "Updating package definitions." msgstr "Paketdefinitionen aktualisieren." #. type: node #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 #: guix-git/doc/guix.texi:15117 #, no-wrap msgid "Invoking guix style" msgstr "Aufruf von guix style" #. type: menuentry #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 msgid "Styling package definitions." msgstr "Paketdefinitionen umgestalten." #. type: node #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 #: guix-git/doc/guix.texi:15319 #, no-wrap msgid "Invoking guix lint" msgstr "Aufruf von guix lint" #. type: menuentry #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 msgid "Finding errors in package definitions." msgstr "Fehler in Paketdefinitionen finden." #. type: node #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 #: guix-git/doc/guix.texi:15505 #, no-wrap msgid "Invoking guix size" msgstr "Aufruf von guix size" #. type: menuentry #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 msgid "Profiling disk usage." msgstr "Plattenplatzverbrauch profilieren." #. type: node #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 #: guix-git/doc/guix.texi:15649 #, no-wrap msgid "Invoking guix graph" msgstr "Aufruf von guix graph" #. type: menuentry #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 msgid "Visualizing the graph of packages." msgstr "Den Paketgraphen visualisieren." #. type: node #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 #: guix-git/doc/guix.texi:15930 #, no-wrap msgid "Invoking guix publish" msgstr "Aufruf von guix publish" #. type: menuentry #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 msgid "Sharing substitutes." msgstr "Substitute teilen." #. type: node #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 #: guix-git/doc/guix.texi:16204 #, no-wrap msgid "Invoking guix challenge" msgstr "Aufruf von guix challenge" #. type: menuentry #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 msgid "Challenging substitute servers." msgstr "Die Substitut-Server anfechten." #. type: node #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 #: guix-git/doc/guix.texi:16393 #, no-wrap msgid "Invoking guix copy" msgstr "Aufruf von guix copy" #. type: menuentry #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 msgid "Copying to and from a remote store." msgstr "Mit einem entfernten Store Dateien austauschen." #. type: node #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 #: guix-git/doc/guix.texi:16457 #, no-wrap msgid "Invoking guix container" msgstr "Aufruf von guix container" #. type: menuentry #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 msgid "Process isolation." msgstr "Prozesse isolieren." #. type: node #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 #: guix-git/doc/guix.texi:16511 #, no-wrap msgid "Invoking guix weather" msgstr "Aufruf von guix weather" #. type: menuentry #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 msgid "Assessing substitute availability." msgstr "Die Verfügbarkeit von Substituten einschätzen." #. type: node #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 #: guix-git/doc/guix.texi:16660 #, no-wrap msgid "Invoking guix processes" msgstr "Aufruf von guix processes" #. type: menuentry #: guix-git/doc/guix.texi:349 guix-git/doc/guix.texi:12823 msgid "Listing client processes." msgstr "Auflisten der Client-Prozesse" #. type: section #: guix-git/doc/guix.texi:351 guix-git/doc/guix.texi:12826 #, no-wrap msgid "Invoking @command{guix build}" msgstr "Aufruf von @command{guix build}" #. type: subsection #: guix-git/doc/guix.texi:356 guix-git/doc/guix.texi:12877 #: guix-git/doc/guix.texi:12879 guix-git/doc/guix.texi:12880 #, no-wrap msgid "Common Build Options" msgstr "Gemeinsame Erstellungsoptionen" #. type: menuentry #: guix-git/doc/guix.texi:356 guix-git/doc/guix.texi:12877 msgid "Build options for most commands." msgstr "Erstellungsoptionen für die meisten Befehle." #. type: subsection #: guix-git/doc/guix.texi:356 guix-git/doc/guix.texi:12877 #: guix-git/doc/guix.texi:13034 guix-git/doc/guix.texi:13035 #, no-wrap msgid "Package Transformation Options" msgstr "Paketumwandlungsoptionen" #. type: menuentry #: guix-git/doc/guix.texi:356 guix-git/doc/guix.texi:12877 msgid "Creating variants of packages." msgstr "Varianten von Paketen erzeugen." #. type: subsection #: guix-git/doc/guix.texi:356 guix-git/doc/guix.texi:12877 #: guix-git/doc/guix.texi:13457 guix-git/doc/guix.texi:13458 #, no-wrap msgid "Additional Build Options" msgstr "Zusätzliche Erstellungsoptionen" #. type: menuentry #: guix-git/doc/guix.texi:356 guix-git/doc/guix.texi:12877 msgid "Options specific to 'guix build'." msgstr "Optionen spezifisch für „guix build“." #. type: subsection #: guix-git/doc/guix.texi:356 guix-git/doc/guix.texi:12877 #: guix-git/doc/guix.texi:13703 guix-git/doc/guix.texi:13704 #, no-wrap msgid "Debugging Build Failures" msgstr "Fehlschläge beim Erstellen untersuchen" #. type: menuentry #: guix-git/doc/guix.texi:356 guix-git/doc/guix.texi:12877 msgid "Real life packaging experience." msgstr "Praxiserfahrung beim Paketeschreiben." #. type: section #: guix-git/doc/guix.texi:361 guix-git/doc/guix.texi:16783 #: guix-git/doc/guix.texi:16785 guix-git/doc/guix.texi:16786 #, no-wrap msgid "Cross-Compilation" msgstr "Cross-Kompilieren" #. type: menuentry #: guix-git/doc/guix.texi:361 guix-git/doc/guix.texi:16783 msgid "Cross-compiling for another architecture." msgstr "Cross-Kompilieren für eine andere Architektur." #. type: section #: guix-git/doc/guix.texi:361 guix-git/doc/guix.texi:16783 #: guix-git/doc/guix.texi:16837 guix-git/doc/guix.texi:16838 #, no-wrap msgid "Native Builds" msgstr "Native Erstellungen" #. type: menuentry #: guix-git/doc/guix.texi:361 guix-git/doc/guix.texi:16783 msgid "Targeting another architecture through native builds." msgstr "Trotz anderer Architektur nativ erstellen." #. type: node #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 #: guix-git/doc/guix.texi:16972 #, no-wrap msgid "Getting Started with the System" msgstr "Einstieg in Guix System" #. type: section #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 #: guix-git/doc/guix.texi:17175 guix-git/doc/guix.texi:17176 #, no-wrap msgid "Using the Configuration System" msgstr "Das Konfigurationssystem nutzen" #. type: menuentry #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 msgid "Customizing your GNU system." msgstr "Ihr GNU-System anpassen." #. type: node #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 #: guix-git/doc/guix.texi:17504 #, no-wrap msgid "operating-system Reference" msgstr "„operating-system“-Referenz" #. type: menuentry #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 msgid "Detail of operating-system declarations." msgstr "Details der Betriebssystem-Deklarationen." #. type: section #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:385 #: guix-git/doc/guix.texi:16970 guix-git/doc/guix.texi:17723 #: guix-git/doc/guix.texi:17724 #, no-wrap msgid "File Systems" msgstr "Dateisysteme" #. type: menuentry #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 msgid "Configuring file system mounts." msgstr "Die Dateisystemeinbindungen konfigurieren." #. type: section #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 #: guix-git/doc/guix.texi:18100 guix-git/doc/guix.texi:18101 #, no-wrap msgid "Mapped Devices" msgstr "Zugeordnete Geräte" #. type: menuentry #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 msgid "Block device extra processing." msgstr "Näheres zu blockorientierten Speichermedien." #. type: section #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 #: guix-git/doc/guix.texi:18273 guix-git/doc/guix.texi:18274 #, no-wrap msgid "Swap Space" msgstr "Swap-Speicher" #. type: menuentry #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 msgid "Backing RAM with disk space." msgstr "Arbeitsspeicher auslagern." #. type: section #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 #: guix-git/doc/guix.texi:18455 guix-git/doc/guix.texi:18456 #, no-wrap msgid "User Accounts" msgstr "Benutzerkonten" #. type: menuentry #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 msgid "Specifying user accounts." msgstr "Benutzerkonten festlegen." #. type: section #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:2228 #: guix-git/doc/guix.texi:16970 guix-git/doc/guix.texi:18636 #: guix-git/doc/guix.texi:18637 #, no-wrap msgid "Keyboard Layout" msgstr "Tastaturbelegung" #. type: menuentry #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 msgid "How the system interprets key strokes." msgstr "Wie das System Tastendrücke interpretiert." #. type: section #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:1707 #: guix-git/doc/guix.texi:16970 guix-git/doc/guix.texi:18781 #: guix-git/doc/guix.texi:18782 #, no-wrap msgid "Locales" msgstr "Locales" #. type: menuentry #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 msgid "Language and cultural convention settings." msgstr "Sprache und kulturelle Konventionen." #. type: node #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:389 #: guix-git/doc/guix.texi:16970 guix-git/doc/guix.texi:18921 #: guix-git/doc/guix.texi:18922 guix-git/doc/guix.texi:34588 #, no-wrap msgid "Services" msgstr "Dienste" #. type: menuentry #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 msgid "Specifying system services." msgstr "Systemdienste festlegen." #. type: section #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 #: guix-git/doc/guix.texi:41651 guix-git/doc/guix.texi:41652 #, no-wrap msgid "Privileged Programs" msgstr "Privilegierte Programme" #. type: menuentry #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 msgid "Programs running with elevated privileges." msgstr "Mit erhöhten Berechtigungen startende Programme." #. type: section #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:1871 #: guix-git/doc/guix.texi:16970 guix-git/doc/guix.texi:41748 #: guix-git/doc/guix.texi:41749 #, no-wrap msgid "X.509 Certificates" msgstr "X.509-Zertifikate" #. type: menuentry #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 msgid "Authenticating HTTPS servers." msgstr "HTTPS-Server authentifizieren." #. type: section #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:1766 #: guix-git/doc/guix.texi:16970 guix-git/doc/guix.texi:41812 #: guix-git/doc/guix.texi:41813 #, no-wrap msgid "Name Service Switch" msgstr "Name Service Switch" #. type: menuentry #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 msgid "Configuring libc's name service switch." msgstr "Den Name Service Switch von libc konfigurieren." #. type: section #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 #: guix-git/doc/guix.texi:41950 guix-git/doc/guix.texi:41951 #, no-wrap msgid "Initial RAM Disk" msgstr "Initiale RAM-Disk" #. type: menuentry #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 msgid "Linux-Libre bootstrapping." msgstr "Linux-libre hochfahren." #. type: section #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 #: guix-git/doc/guix.texi:42157 guix-git/doc/guix.texi:42158 #, no-wrap msgid "Bootloader Configuration" msgstr "Bootloader-Konfiguration" #. type: menuentry #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 msgid "Configuring the boot loader." msgstr "Den Bootloader konfigurieren." #. type: node #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 #: guix-git/doc/guix.texi:42593 #, no-wrap msgid "Invoking guix system" msgstr "Aufruf von guix system" #. type: menuentry #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 msgid "Instantiating a system configuration." msgstr "Instanziierung einer Systemkonfiguration." #. type: node #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 #: guix-git/doc/guix.texi:43240 #, no-wrap msgid "Invoking guix deploy" msgstr "Aufruf von guix deploy" #. type: menuentry #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 msgid "Deploying a system configuration to a remote host." msgstr "Eine Systemkonfiguration auf einen entfernten Rechner aufspielen." #. type: node #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 #: guix-git/doc/guix.texi:43481 #, no-wrap msgid "Running Guix in a VM" msgstr "Guix in einer VM starten" #. type: menuentry #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 msgid "How to run Guix System in a virtual machine." msgstr "Wie man „Guix System“ in einer virtuellen Maschine startet." #. type: section #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:429 #: guix-git/doc/guix.texi:16970 guix-git/doc/guix.texi:43616 #: guix-git/doc/guix.texi:43617 #, no-wrap msgid "Defining Services" msgstr "Dienste definieren" #. type: menuentry #: guix-git/doc/guix.texi:383 guix-git/doc/guix.texi:16970 msgid "Adding new service definitions." msgstr "Neue Dienstdefinitionen hinzufügen." #. type: subsection #: guix-git/doc/guix.texi:387 guix-git/doc/guix.texi:17994 #: guix-git/doc/guix.texi:17996 guix-git/doc/guix.texi:17997 #, no-wrap msgid "Btrfs file system" msgstr "Btrfs-Dateisystem" #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:19021 guix-git/doc/guix.texi:19022 #, no-wrap msgid "Base Services" msgstr "Basisdienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "Essential system services." msgstr "Essenzielle Systemdienste." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:20383 guix-git/doc/guix.texi:20384 #, no-wrap msgid "Scheduled Job Execution" msgstr "Geplante Auftragsausführung" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "The mcron service." msgstr "Der mcron-Dienst." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:20557 guix-git/doc/guix.texi:20558 #, no-wrap msgid "Log Rotation" msgstr "Log-Rotation" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "The rottlog service." msgstr "Der rottlog-Dienst." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:20778 guix-git/doc/guix.texi:20779 #, no-wrap msgid "Networking Setup" msgstr "Netzwerkeinrichtung" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "Setting up network interfaces." msgstr "Netzwerkschnittstellen verbinden." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:21485 guix-git/doc/guix.texi:21486 #, no-wrap msgid "Networking Services" msgstr "Netzwerkdienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "Firewall, SSH daemon, etc." msgstr "Firewall, SSH-Daemon etc." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:22949 guix-git/doc/guix.texi:22950 #, no-wrap msgid "Unattended Upgrades" msgstr "Unbeaufsichtigte Aktualisierungen" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "Automated system upgrades." msgstr "Automatische Systemaktualisierungen." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:23098 guix-git/doc/guix.texi:23099 #, no-wrap msgid "X Window" msgstr "X Window" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "Graphical display." msgstr "Grafische Anzeige." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:23761 guix-git/doc/guix.texi:23762 #, no-wrap msgid "Printing Services" msgstr "Druckdienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "Local and remote printer support." msgstr "Unterstützung für lokale und entfernte Drucker." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:24583 guix-git/doc/guix.texi:24584 #, no-wrap msgid "Desktop Services" msgstr "Desktop-Dienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "D-Bus and desktop services." msgstr "D-Bus- und Desktop-Dienste." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:25781 guix-git/doc/guix.texi:25782 #, no-wrap msgid "Sound Services" msgstr "Tondienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "ALSA and Pulseaudio services." msgstr "Dienste für ALSA und Pulseaudio." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:25954 guix-git/doc/guix.texi:25955 #, no-wrap msgid "File Search Services" msgstr "Dateisuch-Dienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "Tools to search for files." msgstr "Um nach Dateien suchen zu können." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:26058 guix-git/doc/guix.texi:26059 #, no-wrap msgid "Database Services" msgstr "Datenbankdienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "SQL databases, key-value stores, etc." msgstr "SQL-Datenbanken, Schlüssel-Wert-Speicher etc." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:26425 guix-git/doc/guix.texi:26426 #, no-wrap msgid "Mail Services" msgstr "Mail-Dienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "IMAP, POP3, SMTP, and all that." msgstr "IMAP, POP3, SMTP und so weiter." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:28527 guix-git/doc/guix.texi:28528 #, no-wrap msgid "Messaging Services" msgstr "Kurznachrichtendienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "Messaging services." msgstr "Dienste für Kurznachrichten." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:29038 guix-git/doc/guix.texi:29039 #, no-wrap msgid "Telephony Services" msgstr "Telefondienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "Telephony services." msgstr "Telefoniedienste." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:29490 guix-git/doc/guix.texi:29491 #, no-wrap msgid "File-Sharing Services" msgstr "Dateientauschdienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "File-sharing services." msgstr "File Sharing." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:30288 guix-git/doc/guix.texi:30289 #, no-wrap msgid "Monitoring Services" msgstr "Systemüberwachungsdienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "Monitoring services." msgstr "Dienste zur Systemüberwachung." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:30946 guix-git/doc/guix.texi:30947 #, no-wrap msgid "Kerberos Services" msgstr "Kerberos-Dienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "Kerberos services." msgstr "Kerberos-Dienste." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:31072 guix-git/doc/guix.texi:31073 #, no-wrap msgid "LDAP Services" msgstr "LDAP-Dienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "LDAP services." msgstr "LDAP-Dienste." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:31736 guix-git/doc/guix.texi:31737 #, no-wrap msgid "Web Services" msgstr "Web-Dienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "Web servers." msgstr "Web-Server." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:33031 guix-git/doc/guix.texi:33032 #, no-wrap msgid "Certificate Services" msgstr "Zertifikatsdienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "TLS certificates via Let's Encrypt." msgstr "TLS-Zertifikate via Let’s Encrypt." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:33211 guix-git/doc/guix.texi:33212 #, no-wrap msgid "DNS Services" msgstr "DNS-Dienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "DNS daemons." msgstr "DNS-Daemons." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:33868 guix-git/doc/guix.texi:33869 #, no-wrap msgid "VNC Services" msgstr "VNC-Dienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "VNC daemons." msgstr "VNC-Daemons." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:34022 guix-git/doc/guix.texi:34023 #, no-wrap msgid "VPN Services" msgstr "VPN-Dienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "VPN daemons." msgstr "VPN-Daemons." #. type: node #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:34392 guix-git/doc/guix.texi:34393 #: guix-git/doc/guix.texi:34588 #, no-wrap msgid "Network File System" msgstr "Network File System" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "NFS related services." msgstr "Dienste mit Bezug zum Netzwerkdateisystem." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:34588 guix-git/doc/guix.texi:34589 #, no-wrap msgid "Samba Services" msgstr "Samba-Dienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "Samba services." msgstr "Dienste zu Samba." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:34588 guix-git/doc/guix.texi:34740 #: guix-git/doc/guix.texi:34741 #, no-wrap msgid "Continuous Integration" msgstr "Kontinuierliche Integration" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "Cuirass and Laminar services." msgstr "Cuirass- und Laminar-Dienste." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:35038 guix-git/doc/guix.texi:35039 #, no-wrap msgid "Power Management Services" msgstr "Dienste zur Stromverbrauchsverwaltung" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "Extending battery life." msgstr "Den Akku schonen." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:35643 guix-git/doc/guix.texi:35644 #, no-wrap msgid "Audio Services" msgstr "Audio-Dienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "The MPD." msgstr "Der MPD." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:36050 guix-git/doc/guix.texi:36051 #, no-wrap msgid "Virtualization Services" msgstr "Virtualisierungsdienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "Virtualization services." msgstr "Dienste für virtuelle Maschinen." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:37953 guix-git/doc/guix.texi:37954 #, no-wrap msgid "Version Control Services" msgstr "Versionskontrolldienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "Providing remote access to Git repositories." msgstr "Entfernten Zugang zu Git-Repositorys bieten." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:39310 guix-git/doc/guix.texi:39311 #, no-wrap msgid "Game Services" msgstr "Spieldienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "Game servers." msgstr "Spielserver." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:39361 guix-git/doc/guix.texi:39362 #, no-wrap msgid "PAM Mount Service" msgstr "PAM-Einbindedienst" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "Service to mount volumes when logging in." msgstr "Dienst, um Datenträger beim Anmelden einzubinden." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:39542 guix-git/doc/guix.texi:39543 #, no-wrap msgid "Guix Services" msgstr "Guix-Dienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "Services relating specifically to Guix." msgstr "Dienste, die speziell mit Guix zu tun haben." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:40037 guix-git/doc/guix.texi:40038 #, no-wrap msgid "Linux Services" msgstr "Linux-Dienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "Services tied to the Linux kernel." msgstr "Dienste nur für Systeme mit Linux-Kernel." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:40414 guix-git/doc/guix.texi:40415 #, no-wrap msgid "Hurd Services" msgstr "Hurd-Dienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "Services specific for a Hurd System." msgstr "Dienste, die nur Hurd-Systeme betreffen." #. type: subsection #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 #: guix-git/doc/guix.texi:40456 guix-git/doc/guix.texi:40457 #, no-wrap msgid "Miscellaneous Services" msgstr "Verschiedene Dienste" #. type: menuentry #: guix-git/doc/guix.texi:427 guix-git/doc/guix.texi:19019 msgid "Other services." msgstr "Andere Dienste." #. type: subsection #: guix-git/doc/guix.texi:435 guix-git/doc/guix.texi:43629 #: guix-git/doc/guix.texi:43631 guix-git/doc/guix.texi:43632 #, no-wrap msgid "Service Composition" msgstr "Dienstkompositionen" #. type: menuentry #: guix-git/doc/guix.texi:435 guix-git/doc/guix.texi:43629 msgid "The model for composing services." msgstr "Wie Dienste zusammengestellt werden." #. type: subsection #: guix-git/doc/guix.texi:435 guix-git/doc/guix.texi:43629 #: guix-git/doc/guix.texi:43687 guix-git/doc/guix.texi:43688 #, no-wrap msgid "Service Types and Services" msgstr "Diensttypen und Dienste" #. type: menuentry #: guix-git/doc/guix.texi:435 guix-git/doc/guix.texi:43629 msgid "Types and services." msgstr "Typen und Dienste." #. type: subsection #: guix-git/doc/guix.texi:435 guix-git/doc/guix.texi:43629 #: guix-git/doc/guix.texi:43823 guix-git/doc/guix.texi:43824 #, no-wrap msgid "Service Reference" msgstr "Service-Referenz" #. type: menuentry #: guix-git/doc/guix.texi:435 guix-git/doc/guix.texi:43629 msgid "API reference." msgstr "Referenz zur Programmierschnittstelle." #. type: subsection #: guix-git/doc/guix.texi:435 guix-git/doc/guix.texi:43629 #: guix-git/doc/guix.texi:44140 guix-git/doc/guix.texi:44141 #, no-wrap msgid "Shepherd Services" msgstr "Shepherd-Dienste" #. type: menuentry #: guix-git/doc/guix.texi:435 guix-git/doc/guix.texi:43629 msgid "A particular type of service." msgstr "Eine spezielle Art von Dienst." #. type: subsection #: guix-git/doc/guix.texi:435 guix-git/doc/guix.texi:43629 #: guix-git/doc/guix.texi:44425 guix-git/doc/guix.texi:44426 #, no-wrap msgid "Complex Configurations" msgstr "Komplizierte Konfigurationen" #. type: menuentry #: guix-git/doc/guix.texi:435 guix-git/doc/guix.texi:43629 msgid "Defining bindings for complex configurations." msgstr "Die Anbindungen für komplizierte Konfigurationen definieren." #. type: section #: guix-git/doc/guix.texi:439 guix-git/doc/guix.texi:44817 #: guix-git/doc/guix.texi:44819 guix-git/doc/guix.texi:44820 #, no-wrap msgid "Chrooting into an existing system" msgstr "Chroot ins vorliegende System" #. type: section #: guix-git/doc/guix.texi:446 guix-git/doc/guix.texi:44972 #: guix-git/doc/guix.texi:44974 guix-git/doc/guix.texi:44975 #, no-wrap msgid "Declaring the Home Environment" msgstr "Deklaration der Persönlichen Umgebung" #. type: menuentry #: guix-git/doc/guix.texi:446 guix-git/doc/guix.texi:44972 msgid "Customizing your Home." msgstr "Die Persönliche Umgebung einrichten." #. type: section #: guix-git/doc/guix.texi:446 guix-git/doc/guix.texi:44972 #: guix-git/doc/guix.texi:45063 guix-git/doc/guix.texi:45064 #, no-wrap msgid "Configuring the Shell" msgstr "Shell-Konfiguration" #. type: menuentry #: guix-git/doc/guix.texi:446 guix-git/doc/guix.texi:44972 msgid "Enabling home environment." msgstr "Die Persönliche Umgebung aktivieren." #. type: section #: guix-git/doc/guix.texi:446 guix-git/doc/guix.texi:448 #: guix-git/doc/guix.texi:44972 guix-git/doc/guix.texi:45110 #: guix-git/doc/guix.texi:45111 #, no-wrap msgid "Home Services" msgstr "Persönliche Dienste" #. type: menuentry #: guix-git/doc/guix.texi:446 guix-git/doc/guix.texi:44972 msgid "Specifying home services." msgstr "Dienste der Persönlichen Umgebung festlegen." #. type: node #: guix-git/doc/guix.texi:446 guix-git/doc/guix.texi:44972 #: guix-git/doc/guix.texi:47178 #, no-wrap msgid "Invoking guix home" msgstr "Aufruf von guix home" #. type: menuentry #: guix-git/doc/guix.texi:446 guix-git/doc/guix.texi:44972 msgid "Instantiating a home configuration." msgstr "Die Konfiguration einer Persönlichen Umgebung instanziieren." #. type: subsection #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 #: guix-git/doc/guix.texi:45161 guix-git/doc/guix.texi:45162 #, no-wrap msgid "Essential Home Services" msgstr "Essenzielle Persönliche Dienste" #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Environment variables, packages, on-* scripts." msgstr "Umgebungsvariable, Pakete, on-*-Skripte." #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Shells: Shells Home Services" msgstr "Shells: Persönliche Shell-Dienste" #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "POSIX shells, Bash, Zsh." msgstr "POSIX-Shells, Bash, Zsh." #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Mcron: Mcron Home Service" msgstr "Mcron: Persönlicher Mcron-Dienst" #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Scheduled User's Job Execution." msgstr "Geplante Auftragsausführung durch Benutzer." #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Power Management: Power Management Home Services" msgstr "Stromverbrauch: Persönliche Dienste zur Stromverbrauchsverwaltung" #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Services for battery power." msgstr "Dienste zum Batterieverbrauch." #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Shepherd: Shepherd Home Service" msgstr "Shepherd: Persönlicher Shepherd-Dienst" #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Managing User's Daemons." msgstr "Des Benutzers Daemons verwalten." #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "SSH: Secure Shell" msgstr "SSH: Secure Shell" #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Setting up the secure shell client." msgstr "Den Secure-Shell-Client einrichten." #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "GPG: GNU Privacy Guard" msgstr "GPG: GNU Privacy Guard" #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Setting up GPG and related tools." msgstr "Einrichten von GPG und was dazugehört." #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Desktop: Desktop Home Services" msgstr "Desktop: Persönliche Desktop-Dienste" #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Services for graphical environments." msgstr "Dienste für grafische Umgebungen." #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Guix: Guix Home Services" msgstr "Guix: Persönliche Guix-Dienste" #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Services for Guix." msgstr "Dienste zu Guix." #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Fonts: Fonts Home Services" msgstr "Schriftarten: Persönliche Schriftarten-Dienste" #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Services for managing User's fonts." msgstr "Schriftarten je Benutzer." #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Sound: Sound Home Services" msgstr "Audio: Persönliche Tondienste" #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Dealing with audio." msgstr "Ton regeln." #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Mail: Mail Home Services" msgstr "Mail: Persönliche Maildienste" #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Services for managing mail." msgstr "Dienste, um E-Mail einzurichten." #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Messaging: Messaging Home Services" msgstr "Kurznachrichten: Persönliche Kurznachrichtendienste" #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Services for managing messaging." msgstr "Messaging managen." #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Media: Media Home Services" msgstr "Medien: Persönliche Mediendienste" #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Services for managing media." msgstr "Zum Umgang mit Medien." #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Networking: Networking Home Services" msgstr "Netzwerk: Persönliche Netzwerkdienste" #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Networking services." msgstr "Netzwerkdienste." #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "Miscellaneous: Miscellaneous Home Services" msgstr "Verschiedenes: Verschiedene Persönliche Dienste" #. type: menuentry #: guix-git/doc/guix.texi:465 guix-git/doc/guix.texi:45158 msgid "More services." msgstr "Weitere Dienste." #. type: node #: guix-git/doc/guix.texi:470 guix-git/doc/guix.texi:47598 #: guix-git/doc/guix.texi:47600 #, no-wrap msgid "platform Reference" msgstr "„platform“-Referenz" #. type: menuentry #: guix-git/doc/guix.texi:470 guix-git/doc/guix.texi:47598 msgid "Detail of platform declarations." msgstr "Details der Plattform-Deklarationen." #. type: section #: guix-git/doc/guix.texi:470 guix-git/doc/guix.texi:47598 #: guix-git/doc/guix.texi:47647 guix-git/doc/guix.texi:47648 #, no-wrap msgid "Supported Platforms" msgstr "Unterstützte Plattformen" #. type: menuentry #: guix-git/doc/guix.texi:470 guix-git/doc/guix.texi:47598 msgid "Description of the supported platforms." msgstr "Beschreibung der unterstützten Plattformen." #. type: chapter #: guix-git/doc/guix.texi:472 guix-git/doc/guix.texi:47721 #, no-wrap msgid "Creating System Images" msgstr "Systemabbilder erstellen" #. type: node #: guix-git/doc/guix.texi:477 guix-git/doc/guix.texi:47753 #: guix-git/doc/guix.texi:47755 #, no-wrap msgid "image Reference" msgstr "„image“-Referenz" #. type: menuentry #: guix-git/doc/guix.texi:477 guix-git/doc/guix.texi:47753 msgid "Detail of image declarations." msgstr "Details der Abbild-Deklarationen." #. type: section #: guix-git/doc/guix.texi:477 guix-git/doc/guix.texi:47753 #: guix-git/doc/guix.texi:47905 guix-git/doc/guix.texi:47906 #, no-wrap msgid "Instantiate an Image" msgstr "Abbilder instanziieren" #. type: menuentry #: guix-git/doc/guix.texi:477 guix-git/doc/guix.texi:47753 msgid "How to instantiate an image record." msgstr "So legen Sie eine Image-Instanz an." #. type: section #: guix-git/doc/guix.texi:477 guix-git/doc/guix.texi:47753 #: guix-git/doc/guix.texi:48075 guix-git/doc/guix.texi:48076 #, no-wrap msgid "image-type Reference" msgstr "„image-type“-Referenz" #. type: menuentry #: guix-git/doc/guix.texi:477 guix-git/doc/guix.texi:47753 msgid "Detail of image types declaration." msgstr "Details der Abbildtyp-Deklarationen." #. type: section #: guix-git/doc/guix.texi:477 guix-git/doc/guix.texi:47753 #: guix-git/doc/guix.texi:48204 guix-git/doc/guix.texi:48205 #, no-wrap msgid "Image Modules" msgstr "Abbild-Module" #. type: menuentry #: guix-git/doc/guix.texi:477 guix-git/doc/guix.texi:47753 msgid "Definition of image modules." msgstr "Module mit Images definieren." #. type: section #: guix-git/doc/guix.texi:479 guix-git/doc/guix.texi:47756 #, no-wrap msgid "@code{image} Reference" msgstr "@code{image}-Referenz" #. type: node #: guix-git/doc/guix.texi:481 guix-git/doc/guix.texi:47845 #: guix-git/doc/guix.texi:47847 #, no-wrap msgid "partition Reference" msgstr "„partition“-Referenz" #. type: section #: guix-git/doc/guix.texi:486 guix-git/doc/guix.texi:48274 #: guix-git/doc/guix.texi:48276 guix-git/doc/guix.texi:48277 #, no-wrap msgid "Separate Debug Info" msgstr "Fehlersuchinformationen abtrennen" #. type: menuentry #: guix-git/doc/guix.texi:486 guix-git/doc/guix.texi:48274 msgid "Installing 'debug' outputs." msgstr "‚debug‘-Ausgaben installieren." #. type: section #: guix-git/doc/guix.texi:486 guix-git/doc/guix.texi:48274 #: guix-git/doc/guix.texi:48349 guix-git/doc/guix.texi:48350 #, no-wrap msgid "Rebuilding Debug Info" msgstr "Fehlersuchinformationen erneuern" #. type: menuentry #: guix-git/doc/guix.texi:486 guix-git/doc/guix.texi:48274 msgid "Building missing debug info." msgstr "Fehlende Informationen zur Fehlersuche erstellen." #. type: node #: guix-git/doc/guix.texi:491 guix-git/doc/guix.texi:48685 #: guix-git/doc/guix.texi:48687 #, no-wrap msgid "Full-Source Bootstrap" msgstr "Quellcode von Anfang an" #. type: menuentry #: guix-git/doc/guix.texi:491 guix-git/doc/guix.texi:48685 msgid "A Bootstrap worthy of GNU." msgstr "Ein Bootstrapping, wie GNU es verdient." # Commas in node names would prevent the terminal info viewer from following links. #. type: section #: guix-git/doc/guix.texi:491 guix-git/doc/guix.texi:48685 #: guix-git/doc/guix.texi:48774 guix-git/doc/guix.texi:48775 #, no-wrap msgid "Preparing to Use the Bootstrap Binaries" msgstr "Vorbereitung zur Verwendung der Bootstrap-Binärdateien" #. type: menuentry #: guix-git/doc/guix.texi:491 guix-git/doc/guix.texi:48685 msgid "Building that what matters most." msgstr "Das Allerwichtigste erstellen." #. type: cindex #: guix-git/doc/guix.texi:499 #, no-wrap msgid "purpose" msgstr "Zweck" #. type: Plain text #: guix-git/doc/guix.texi:507 msgid "GNU Guix@footnote{``Guix'' is pronounced like ``geeks'', or ``ɡiːks'' using the international phonetic alphabet (IPA).} is a package management tool for and distribution of the GNU system. Guix makes it easy for unprivileged users to install, upgrade, or remove software packages, to roll back to a previous package set, to build packages from source, and generally assists with the creation and maintenance of software environments." msgstr "GNU Guix@footnote{„Guix“ wird wie „geeks“ ausgesprochen, also als „ɡiːks“ in der Notation des Internationalen Phonetischen Alphabets (IPA).} ist ein Werkzeug zur Verwaltung von Softwarepaketen für das GNU-System und eine Distribution (eine „Verteilung“) desselbigen GNU-Systems. Guix macht es @emph{nicht} mit besonderen Berechtigungen ausgestatteten, „unprivilegierten“ Nutzern leicht, Softwarepakete zu installieren, zu aktualisieren oder zu entfernen, zu einem vorherigen Satz von Paketen zurückzuwechseln, Pakete aus ihrem Quellcode heraus zu erstellen und hilft allgemein bei der Erzeugung und Wartung von Software-Umgebungen." #. type: cindex #: guix-git/doc/guix.texi:508 guix-git/doc/guix.texi:583 #: guix-git/doc/guix.texi:698 #, no-wrap msgid "Guix System" msgstr "Guix System" #. type: cindex #: guix-git/doc/guix.texi:509 #, no-wrap msgid "GuixSD, now Guix System" msgstr "GuixSD, was jetzt Guix System heißt" #. type: cindex #: guix-git/doc/guix.texi:510 #, no-wrap msgid "Guix System Distribution, now Guix System" msgstr "Guix System Distribution, welche jetzt Guix System heißt" #. type: Plain text #: guix-git/doc/guix.texi:519 msgid "You can install GNU@tie{}Guix on top of an existing GNU/Linux system where it complements the available tools without interference (@pxref{Installation}), or you can use it as a standalone operating system distribution, @dfn{Guix@tie{}System}@footnote{We used to refer to Guix System as ``Guix System Distribution'' or ``GuixSD''. We now consider it makes more sense to group everything under the ``Guix'' banner since, after all, Guix System is readily available through the @command{guix system} command, even if you're using a different distro underneath!}. @xref{GNU Distribution}." msgstr "Sie können GNU@tie{}Guix auf ein bestehendes GNU/Linux-System aufsetzen, wo es die bereits verfügbaren Werkzeuge ergänzt, ohne zu stören (siehe @ref{Installation}), oder Sie können es als eine eigenständige Betriebssystem-Distribution namens @dfn{Guix@tie{}System} verwenden@footnote{Der Name @dfn{Guix@tie{}System} wird auf englische Weise ausgesprochen. Früher hatten wir „Guix System“ als „Guix System Distribution“ bezeichnet und mit „GuixSD“ abgekürzt. Wir denken mittlerweile aber, dass es sinnvoller ist, alles unter der Fahne von Guix zu gruppieren, weil schließlich „Guix System“ auch über den Befehl @command{guix system} verfügbar ist, selbst wenn Sie Guix auf einer fremden Distribution benutzen!}. Siehe @ref{GNU Distribution}." #. type: cindex #: guix-git/doc/guix.texi:528 #, no-wrap msgid "user interfaces" msgstr "Benutzeroberflächen" #. type: Plain text #: guix-git/doc/guix.texi:534 msgid "Guix provides a command-line package management interface (@pxref{Package Management}), tools to help with software development (@pxref{Development}), command-line utilities for more advanced usage (@pxref{Utilities}), as well as Scheme programming interfaces (@pxref{Programming Interface})." msgstr "Guix bietet eine befehlszeilenbasierte Paketverwaltungsschnittstelle (siehe @ref{Invoking guix package}), Werkzeuge als Hilfestellung bei der Software-Entwicklung (siehe @ref{Development}), Befehlszeilenwerkzeuge für fortgeschrittenere Nutzung (siehe @ref{Utilities}) sowie Schnittstellen zur Programmierung in Scheme (siehe @ref{Programming Interface})." #. type: cindex #: guix-git/doc/guix.texi:534 #, no-wrap msgid "build daemon" msgstr "Erstellungs-Daemon" #. type: Plain text #: guix-git/doc/guix.texi:538 msgid "Its @dfn{build daemon} is responsible for building packages on behalf of users (@pxref{Setting Up the Daemon}) and for downloading pre-built binaries from authorized sources (@pxref{Substitutes})." msgstr "Der @dfn{Erstellungs-Daemon} ist für das Erstellen von Paketen im Auftrag von Nutzern verantwortlich (siehe @ref{Setting Up the Daemon}) und für das Herunterladen vorerstellter Binärdateien aus autorisierten Quellen (siehe @ref{Substitutes})." #. type: cindex #: guix-git/doc/guix.texi:539 #, no-wrap msgid "extensibility of the distribution" msgstr "Erweiterbarkeit der Distribution" #. type: cindex #: guix-git/doc/guix.texi:540 guix-git/doc/guix.texi:7506 #, no-wrap msgid "customization, of packages" msgstr "Anpassung, von Paketen" #. type: Plain text #: guix-git/doc/guix.texi:549 msgid "Guix includes package definitions for many GNU and non-GNU packages, all of which @uref{https://www.gnu.org/philosophy/free-sw.html, respect the user's computing freedom}. It is @emph{extensible}: users can write their own package definitions (@pxref{Defining Packages}) and make them available as independent package modules (@pxref{Package Modules}). It is also @emph{customizable}: users can @emph{derive} specialized package definitions from existing ones, including from the command line (@pxref{Package Transformation Options})." msgstr "Guix enthält Paketdefinitionen für viele Pakete, manche aus GNU und andere nicht aus GNU, die alle @uref{https://www.gnu.org/philosophy/free-sw.html, die Freiheit des Computernutzers respektieren}. Es ist @emph{erweiterbar}: Nutzer können ihre eigenen Paketdefinitionen schreiben (siehe @ref{Defining Packages}) und sie als unabhängige Paketmodule verfügbar machen (siehe @ref{Package Modules}). Es ist auch @emph{anpassbar}: Nutzer können spezialisierte Paketdefinitionen aus bestehenden @emph{ableiten}, auch von der Befehlszeile (siehe @ref{Package Transformation Options})." #. type: cindex #: guix-git/doc/guix.texi:550 #, no-wrap msgid "functional package management" msgstr "funktionale Paketverwaltung" #. type: cindex #: guix-git/doc/guix.texi:551 #, no-wrap msgid "isolation" msgstr "Isolierung" #. type: Plain text #: guix-git/doc/guix.texi:566 msgid "Under the hood, Guix implements the @dfn{functional package management} discipline pioneered by Nix (@pxref{Acknowledgments}). In Guix, the package build and installation process is seen as a @emph{function}, in the mathematical sense. That function takes inputs, such as build scripts, a compiler, and libraries, and returns an installed package. As a pure function, its result depends solely on its inputs---for instance, it cannot refer to software or scripts that were not explicitly passed as inputs. A build function always produces the same result when passed a given set of inputs. It cannot alter the environment of the running system in any way; for instance, it cannot create, modify, or delete files outside of its build and installation directories. This is achieved by running build processes in isolated environments (or @dfn{containers}), where only their explicit inputs are visible." msgstr "Intern implementiert Guix die Disziplin der @dfn{funktionalen Paketverwaltung}, zu der Nix schon die Pionierarbeit geleistet hat (siehe @ref{Acknowledgments}). In Guix wird der Prozess, ein Paket zu erstellen und zu installieren, als eine @emph{Funktion} im mathematischen Sinn aufgefasst. Diese Funktion hat Eingaben, wie zum Beispiel Erstellungs-Skripts, einen Compiler und Bibliotheken, und liefert ein installiertes Paket. Als eine reine Funktion hängt sein Ergebnis allein von seinen Eingaben ab@tie{}– zum Beispiel kann er nicht auf Software oder Skripts Bezug nehmen, die nicht ausdrücklich als Eingaben übergeben wurden. Eine Erstellungsfunktion führt immer zum selben Ergebnis, wenn ihr die gleiche Menge an Eingaben übergeben wurde. Sie kann die Umgebung des laufenden Systems auf keine Weise beeinflussen, zum Beispiel kann sie keine Dateien außerhalb ihrer Erstellungs- und Installationsverzeichnisse verändern. Um dies zu erreichen, laufen Erstellungsprozesse in isolierten Umgebungen (sogenannte @dfn{Container}), wo nur ausdrückliche Eingaben sichtbar sind." #. type: cindex #: guix-git/doc/guix.texi:567 guix-git/doc/guix.texi:4160 #: guix-git/doc/guix.texi:11171 #, no-wrap msgid "store" msgstr "store" #. type: Plain text #: guix-git/doc/guix.texi:574 msgid "The result of package build functions is @dfn{cached} in the file system, in a special directory called @dfn{the store} (@pxref{The Store}). Each package is installed in a directory of its own in the store---by default under @file{/gnu/store}. The directory name contains a hash of all the inputs used to build that package; thus, changing an input yields a different directory name." msgstr "Das Ergebnis von Paketerstellungsfunktionen wird im Dateisystem @dfn{zwischengespeichert} in einem besonderen Verzeichnis, was als @dfn{der Store} bezeichnet wird (siehe @ref{The Store}). Jedes Paket wird in sein eigenes Verzeichnis im Store installiert@tie{}– standardmäßig ist er unter @file{/gnu/store} zu finden. Der Verzeichnisname enthält einen Hash aller Eingaben, anhand derer das Paket erzeugt wurde, somit hat das Ändern einer Eingabe einen völlig anderen Verzeichnisnamen zur Folge." #. type: Plain text #: guix-git/doc/guix.texi:578 msgid "This approach is the foundation for the salient features of Guix: support for transactional package upgrade and rollback, per-user installation, and garbage collection of packages (@pxref{Features})." msgstr "Dieses Vorgehen ist die Grundlage für die Guix auszeichnenden Funktionalitäten: Unterstützung transaktionsbasierter Paketaktualisierungen und -rücksetzungen, Installation von Paketen für jeden Nutzer sowie Garbage Collection für Pakete (siehe @ref{Features})." #. type: Plain text #: guix-git/doc/guix.texi:593 msgid "Guix comes with a distribution of the GNU system consisting entirely of free software@footnote{The term ``free'' here refers to the @url{https://www.gnu.org/philosophy/free-sw.html,freedom provided to users of that software}.}. The distribution can be installed on its own (@pxref{System Installation}), but it is also possible to install Guix as a package manager on top of an installed GNU/Linux system (@pxref{Installation}). When we need to distinguish between the two, we refer to the standalone distribution as Guix@tie{}System." msgstr "Mit Guix kommt eine Distribution des GNU-Systems, die nur aus freier Software@footnote{Die Bezeichnung „frei“ steht hier für die @url{https://www.gnu.org/philosophy/free-sw.html,Freiheiten@comma{} die Nutzern der Software geboten werden}.} besteht. Die Distribution kann für sich allein installiert werden (siehe @ref{System Installation}), aber Guix kann auch auf einem bestehenden GNU/Linux-System installiert werden. Wenn wir die Anwendungsfälle unterscheiden möchten, bezeichnen wir die alleinstehende Distribution als „Guix@tie{}System“ (mit englischer Aussprache)." #. type: Plain text #: guix-git/doc/guix.texi:599 msgid "The distribution provides core GNU packages such as GNU libc, GCC, and Binutils, as well as many GNU and non-GNU applications. The complete list of available packages can be browsed @url{https://www.gnu.org/software/guix/packages,on-line} or by running @command{guix package} (@pxref{Invoking guix package}):" msgstr "Die Distribution stellt den Kern der GNU-Pakete, also insbesondere GNU libc, GCC und Binutils, sowie zahlreiche zum GNU-Projekt gehörende und nicht dazu gehörende Anwendungen zur Verfügung. Die vollständige Liste verfügbarer Pakete können Sie @url{https://www.gnu.org/software/guix/packages,online} einsehen, oder indem Sie @command{guix package} ausführen (siehe @ref{Invoking guix package}):" #. type: example #: guix-git/doc/guix.texi:602 #, no-wrap msgid "guix package --list-available\n" msgstr "guix package --list-available\n" #. type: Plain text #: guix-git/doc/guix.texi:608 msgid "Our goal is to provide a practical 100% free software distribution of Linux-based and other variants of GNU, with a focus on the promotion and tight integration of GNU components, and an emphasis on programs and tools that help users exert that freedom." msgstr "Unser Ziel ist, eine zu 100% freie Software-Distribution von Linux-basierten und von anderen GNU-Varianten anzubieten, mit dem Fokus darauf, das GNU-Projekt und die enge Zusammenarbeit seiner Bestandteile zu befördern, sowie die Programme und Werkzeuge hervorzuheben, die die Nutzer dabei unterstützen, von dieser Freiheit Gebrauch zu machen." #. type: Plain text #: guix-git/doc/guix.texi:610 msgid "Packages are currently available on the following platforms:" msgstr "Pakete sind zurzeit auf folgenden Plattformen verfügbar:" #. type: defvar #: guix-git/doc/guix.texi:613 guix-git/doc/guix.texi:2065 #: guix-git/doc/guix.texi:47681 #, no-wrap msgid "x86_64-linux" msgstr "x86_64-linux" #. type: table #: guix-git/doc/guix.texi:615 msgid "Intel/AMD @code{x86_64} architecture, Linux-Libre kernel." msgstr "Intel/AMD-@code{x86_64}-Architektur, Linux-Libre als Kernel." #. type: defvar #: guix-git/doc/guix.texi:616 guix-git/doc/guix.texi:2068 #: guix-git/doc/guix.texi:47677 #, no-wrap msgid "i686-linux" msgstr "i686-linux" #. type: table #: guix-git/doc/guix.texi:618 msgid "Intel 32-bit architecture (IA32), Linux-Libre kernel." msgstr "Intel-32-Bit-Architektur (IA-32), Linux-Libre als Kernel." #. type: item #: guix-git/doc/guix.texi:619 #, no-wrap msgid "armhf-linux" msgstr "armhf-linux" #. type: table #: guix-git/doc/guix.texi:623 msgid "ARMv7-A architecture with hard float, Thumb-2 and NEON, using the EABI hard-float application binary interface (ABI), and Linux-Libre kernel." msgstr "ARMv7-A-Architektur mit „hard float“, Thumb-2 und NEON, für die EABI „hard-float application binary interface“, mit Linux-Libre als Kernel." #. type: defvar #: guix-git/doc/guix.texi:624 guix-git/doc/guix.texi:47657 #, no-wrap msgid "aarch64-linux" msgstr "aarch64-linux" #. type: table #: guix-git/doc/guix.texi:626 msgid "little-endian 64-bit ARMv8-A processors, Linux-Libre kernel." msgstr "64-Bit-ARMv8-A-Prozessoren, little-endian, mit Linux-Libre als Kernel." #. type: defvar #: guix-git/doc/guix.texi:627 guix-git/doc/guix.texi:47700 #, no-wrap msgid "i586-gnu" msgstr "i586-gnu" #. type: table #: guix-git/doc/guix.texi:630 msgid "@uref{https://hurd.gnu.org, GNU/Hurd} on the Intel 32-bit architecture (IA32)." msgstr "@uref{https://hurd.gnu.org, GNU/Hurd} auf der Intel-32-Bit-Architektur (IA32)." #. type: table #: guix-git/doc/guix.texi:636 msgid "This configuration is experimental and under development. The easiest way for you to give it a try is by setting up an instance of @code{hurd-vm-service-type} on your GNU/Linux machine (@pxref{transparent-emulation-qemu, @code{hurd-vm-service-type}}). @xref{Contributing}, on how to help!" msgstr "Diese Konfiguration ist experimentell und befindet sich noch in der Entwicklung. Wenn Sie sie ausprobieren möchten, ist es am einfachsten, eine Instanz des Diensttyps @code{hurd-vm-service-type} auf Ihrer GNU/Linux-Maschine einzurichten (siehe @ref{transparent-emulation-qemu, @code{hurd-vm-service-type}}). Siehe auch @ref{Contributing} für Informationen, wie Sie helfen können!" #. type: item #: guix-git/doc/guix.texi:637 #, no-wrap msgid "mips64el-linux (unsupported)" msgstr "mips64el-linux (eingeschränkte Unterstützung)" #. type: table #: guix-git/doc/guix.texi:643 msgid "little-endian 64-bit MIPS processors, specifically the Loongson series, n32 ABI, and Linux-Libre kernel. This configuration is no longer fully supported; in particular, there is no ongoing work to ensure that this architecture still works. Should someone decide they wish to revive this architecture then the code is still available." msgstr "64-Bit-MIPS-Prozessoren, little-endian, speziell die Loongson-Reihe, n32-ABI, mit Linux-Libre als Kernel. Diese Konfiguration wird nicht länger in vollem Umfang unterstützt; insbesondere gibt es @emph{keine} laufenden Bemühungen, die Funktionsfähigkeit dieser Architektur sicherzustellen. Wenn sich jemand findet, der diese Architektur wiederbeleben will, dann ist der Code dafür noch verfügbar." #. type: item #: guix-git/doc/guix.texi:644 #, no-wrap msgid "powerpc-linux (unsupported)" msgstr "powerpc-linux (eingeschränkte Unterstützung)" #. type: table #: guix-git/doc/guix.texi:649 msgid "big-endian 32-bit PowerPC processors, specifically the PowerPC G4 with AltiVec support, and Linux-Libre kernel. This configuration is not fully supported and there is no ongoing work to ensure this architecture works." msgstr "32-Bit-PowerPC-Prozessoren, big-endian, speziell der PowerPC G4 mit AltiVec, mit Linux-Libre als Kernel. Diese Konfiguration wird @emph{nicht} in vollem Umfang unterstützt und es gibt @emph{keine} laufenden Bemühungen, die Funktionsfähigkeit dieser Architektur sicherzustellen." #. type: table #: guix-git/doc/guix.texi:660 msgid "little-endian 64-bit Power ISA processors, Linux-Libre kernel. This includes POWER9 systems such as the @uref{https://www.fsf.org/news/talos-ii-mainboard-and-talos-ii-lite-mainboard-now-fsf-certified-to-respect-your-freedom, RYF Talos II mainboard}. This platform is available as a \"technology preview\": although it is supported, substitutes are not yet available from the build farm (@pxref{Substitutes}), and some packages may fail to build (@pxref{Tracking Bugs and Changes}). That said, the Guix community is actively working on improving this support, and now is a great time to try it and get involved!" msgstr "64-Bit-Prozessoren mit Power-Befehlssatz, little-endian, mit Linux-Libre als Kernel. Dazu gehören POWER9-Systeme wie die @uref{https://www.fsf.org/news/talos-ii-mainboard-and-talos-ii-lite-mainboard-now-fsf-certified-to-respect-your-freedom, RYF-zertifizierte Talos-II-Hauptplatine}. Bei der Plattform handelt es sich um eine „Technologievorschau“; obwohl sie unterstützt wird, gibt es noch keine Substitute von der Erstellungsfarm (siehe @ref{Substitutes}) und bei manchen Paketen könnte die Erstellung fehlschlagen (siehe @ref{Tracking Bugs and Changes}). Dennoch arbeitet die Guix-Gemeinde aktiv daran, diese Unterstützung auszubauen, und jetzt ist eine gute Gelegenheit, sie auszuprobieren und mitzumachen!" #. type: defvar #: guix-git/doc/guix.texi:661 guix-git/doc/guix.texi:47673 #, no-wrap msgid "riscv64-linux" msgstr "riscv64-linux" #. type: table #: guix-git/doc/guix.texi:669 msgid "little-endian 64-bit RISC-V processors, specifically RV64GC, and Linux-Libre kernel. This platform is available as a \"technology preview\": although it is supported, substitutes are not yet available from the build farm (@pxref{Substitutes}), and some packages may fail to build (@pxref{Tracking Bugs and Changes}). That said, the Guix community is actively working on improving this support, and now is a great time to try it and get involved!" msgstr "64-Bit-Prozessoren mit RISC-V-Befehlssatz, little-endian, speziell der RV64GC, mit Linux-Libre als Kernel. Bei der Plattform handelt es sich um eine „Technologievorschau“; obwohl sie unterstützt wird, gibt es noch keine Substitute von der Erstellungsfarm (siehe @ref{Substitutes}) und bei manchen Paketen könnte die Erstellung fehlschlagen (siehe @ref{Tracking Bugs and Changes}). Dennoch arbeitet die Guix-Gemeinde aktiv daran, diese Unterstützung auszubauen, und jetzt ist eine gute Gelegenheit, sie auszuprobieren und mitzumachen!" #. type: Plain text #: guix-git/doc/guix.texi:679 msgid "With Guix@tie{}System, you @emph{declare} all aspects of the operating system configuration and Guix takes care of instantiating the configuration in a transactional, reproducible, and stateless fashion (@pxref{System Configuration}). Guix System uses the Linux-libre kernel, the Shepherd initialization system (@pxref{Introduction,,, shepherd, The GNU Shepherd Manual}), the well-known GNU utilities and tool chain, as well as the graphical environment or system services of your choice." msgstr "Mit Guix@tie{}System @emph{deklarieren} Sie alle Aspekte der Betriebssystemkonfiguration und Guix kümmert sich darum, die Konfiguration auf transaktionsbasierte, reproduzierbare und zustandslose Weise zu instanziieren (siehe @ref{System Configuration}). Guix System benutzt den Kernel Linux-libre, das Shepherd-Initialisierungssystem (siehe @ref{Introduction,,, shepherd, The GNU Shepherd Manual}), die wohlbekannten GNU-Werkzeuge mit der zugehörigen Werkzeugkette sowie die grafische Umgebung und Systemdienste Ihrer Wahl." #. type: Plain text #: guix-git/doc/guix.texi:683 msgid "Guix System is available on all the above platforms except @code{mips64el-linux}, @code{powerpc-linux}, @code{powerpc64le-linux} and @code{riscv64-linux}." msgstr "Guix System ist auf allen oben genannten Plattformen außer @code{mips64el-linux}, @code{powerpc-linux}, @code{powerpc64le-linux} und @code{riscv64-linux} verfügbar." #. type: Plain text #: guix-git/doc/guix.texi:687 msgid "For information on porting to other architectures or kernels, @pxref{Porting}." msgstr "Informationen, wie auf andere Architekturen oder Kernels portiert werden kann, finden Sie im Abschnitt @ref{Porting}." #. type: Plain text #: guix-git/doc/guix.texi:690 msgid "Building this distribution is a cooperative effort, and you are invited to join! @xref{Contributing}, for information about how you can help." msgstr "Diese Distribution aufzubauen basiert auf Kooperation, und Sie sind herzlich eingeladen, dabei mitzumachen! Im Abschnitt @ref{Contributing} stehen weitere Informationen, wie Sie uns helfen können." #. type: cindex #: guix-git/doc/guix.texi:696 #, no-wrap msgid "installing Guix" msgstr "Guix installieren" #. type: cindex #: guix-git/doc/guix.texi:697 guix-git/doc/guix.texi:1702 #, no-wrap msgid "foreign distro" msgstr "Fremddistribution" #. type: Plain text #: guix-git/doc/guix.texi:705 msgid "You can install the package management tool Guix on top of an existing GNU/Linux or GNU/Hurd system@footnote{Hurd support is currently limited.}, referred to as a @dfn{foreign distro}. If, instead, you want to install the complete, standalone GNU system distribution, @dfn{Guix@tie{}System}, @pxref{System Installation}. This section is concerned only with the installation of Guix on a foreign distro." msgstr "Sie können das Paketverwaltungswerkzeug Guix auf einem bestehenden GNU/Linux- oder GNU/Hurd-System installieren@footnote{Die Hurd-Unterstützung ist bislang nur eingeschränkt.}, welche wir als eine @dfn{Fremddistribution} bezeichnen. Wenn Sie stattdessen die vollständige, eigenständige GNU-Systemdistribution namens @dfn{Guix@tie{}System} installieren möchten, siehe @ref{System Installation}. In diesem Abschnitt behandeln wir nur die Installation von Guix auf einer Fremddistribution." #. type: quotation #: guix-git/doc/guix.texi:709 guix-git/doc/guix.texi:741 msgid "This section only applies to systems without Guix. Following it for existing Guix installations will overwrite important system files." msgstr "Dieser Abschnitt gilt nur für Systeme ohne Guix. Wenn Sie eine bestehende Guix-Installation haben, würden wichtige Systemdateien überschrieben, wenn Sie der Anleitung folgten." #. type: cindex #: guix-git/doc/guix.texi:711 #, no-wrap msgid "directories related to foreign distro" msgstr "Verzeichnisse auf einer Fremddistribution" #. type: Plain text #: guix-git/doc/guix.texi:716 msgid "When installed on a foreign distro, GNU@tie{}Guix complements the available tools without interference. Its data lives exclusively in two directories, usually @file{/gnu/store} and @file{/var/guix}; other files on your system, such as @file{/etc}, are left untouched." msgstr "Wenn es auf einer Fremddistribution installiert wird, ergänzt GNU@tie{}Guix die verfügbaren Werkzeuge, ohne dass sie sich gegenseitig stören. Guix’ Daten befinden sich ausschließlich in zwei Verzeichnissen, üblicherweise @file{/gnu/store} und @file{/var/guix}; andere Dateien auf Ihrem System wie @file{/etc} bleiben unberührt." #. type: Plain text #: guix-git/doc/guix.texi:719 msgid "Once installed, Guix can be updated by running @command{guix pull} (@pxref{Invoking guix pull})." msgstr "Sobald es installiert ist, kann Guix durch Ausführen von @command{guix pull} aktualisiert werden (siehe @ref{Invoking guix pull})." #. type: cindex #: guix-git/doc/guix.texi:731 #, no-wrap msgid "installing Guix from binaries" msgstr "Guix aus Binärdateien installieren" #. type: cindex #: guix-git/doc/guix.texi:732 #, no-wrap msgid "installer script" msgstr "Installations-Skript" #. type: Plain text #: guix-git/doc/guix.texi:737 msgid "This section describes how to install Guix from a self-contained tarball providing binaries for Guix and for all its dependencies. This is often quicker than installing from source, described later (@pxref{Building from Git})." msgstr "Dieser Abschnitt beschreibt, wie Sie Guix aus einem alle Komponenten umfassenden Tarball installieren, der Binärdateien für Guix und all seine Abhängigkeiten liefert. Dies geht in der Regel schneller, als Guix aus seinen Quelldateien zu installieren, was später beschrieben wird." #. type: Plain text #: guix-git/doc/guix.texi:747 msgid "Some GNU/Linux distributions, such as Debian, Ubuntu, and openSUSE provide Guix through their own package managers. The version of Guix may be older than @value{VERSION} but you can update it afterwards by running @samp{guix pull}." msgstr "Auf einigen GNU/Linux-Distributionen, wie Debian, Ubuntu und openSUSE, wird Guix über deren Paketverwaltung angeboten. Vielleicht bringen sie eine ältere Version als @value{VERSION} mit, aber Sie können Guix anschließend über den Befehl @samp{guix pull} aktualisieren." #. type: Plain text #: guix-git/doc/guix.texi:752 msgid "We advise system administrators who install Guix, both from the installation script or @i{via} the native package manager of their foreign distribution, to also regularly read and follow security notices, as shown by @command{guix pull}." msgstr "Wir empfehlen Systemadministratoren, die Guix installieren, egal ob über das Installations-Skript oder über die Paketverwaltung ihrer Fremddistribution, regelmäßig die Sicherheitshinweise zu lesen und zu befolgen, die @command{guix pull} anzeigt." #. type: Plain text #: guix-git/doc/guix.texi:754 msgid "For Debian or derivatives such as Ubuntu or Trisquel, call:" msgstr "Wenn Sie Debian oder ein Debian-Derivat wie Ubuntu oder Trisquel verwenden, rufen Sie auf:" #. type: example #: guix-git/doc/guix.texi:757 #, no-wrap msgid "sudo apt install guix\n" msgstr "sudo apt install guix\n" #. type: Plain text #: guix-git/doc/guix.texi:760 msgid "Likewise, on openSUSE:" msgstr "Das Gleiche gilt auf openSUSE:" #. type: example #: guix-git/doc/guix.texi:763 #, no-wrap msgid "sudo zypper install guix\n" msgstr "sudo zypper install guix\n" #. type: Plain text #: guix-git/doc/guix.texi:767 msgid "If you are running Parabola, after enabling the pcr (Parabola Community Repo) repository, you can install Guix with:" msgstr "Wenn bei Ihnen Parabola läuft, können Sie, nachdem Sie das Repository pcr (Parabola Community Repo) aktiviert haben, mit diesem Befehl Guix installieren:" #. type: example #: guix-git/doc/guix.texi:769 #, no-wrap msgid "sudo pacman -S guix\n" msgstr "sudo pacman -S guix\n" #. type: Plain text #: guix-git/doc/guix.texi:777 msgid "The Guix project also provides a shell script, @file{guix-install.sh}, which automates the binary installation process without use of a foreign distro package manager@footnote{@uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh}}. Use of @file{guix-install.sh} requires Bash, GnuPG, GNU@tie{}tar, wget, and Xz." msgstr "Das Guix-Projekt stellt außerdem ein Shell-Skript bereit, @file{guix-install.sh}, mit dem der Installationsvorgang aus Binärdateien ohne ein Paketverwaltungsprogramm der Fremddistribution automatisiert wird@footnote{@uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh}}. Um @file{guix-install.sh} benutzen zu können, werden Bash, GnuPG, GNU@tie{}tar, wget und Xz vorausgesetzt." #. type: Plain text #: guix-git/doc/guix.texi:779 msgid "The script guides you through the following:" msgstr "Das Skript führt Sie durch Folgendes:" #. type: item #: guix-git/doc/guix.texi:781 #, no-wrap msgid "Downloading and extracting the binary tarball" msgstr "Herunterladen und Entpacken des Tarballs mit Binärdateien" #. type: item #: guix-git/doc/guix.texi:782 #, no-wrap msgid "Setting up the build daemon" msgstr "Einrichten des Erstellungs-Daemons" #. type: item #: guix-git/doc/guix.texi:783 #, no-wrap msgid "Making the ‘guix’ command available to non-root users" msgstr "Bereitstellen des Befehls ‚guix‘ an Benutzer außer root" #. type: item #: guix-git/doc/guix.texi:784 #, no-wrap msgid "Configuring substitute servers" msgstr "Substitut-Server einrichten" #. type: Plain text #: guix-git/doc/guix.texi:788 msgid "As root, run:" msgstr "Führen Sie als Administratornutzer „root“ aus:" #. type: example #: guix-git/doc/guix.texi:794 #, no-wrap msgid "" "# cd /tmp\n" "# wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh\n" "# chmod +x guix-install.sh\n" "# ./guix-install.sh\n" msgstr "" "# cd /tmp\n" "# wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh\n" "# chmod +x guix-install.sh\n" "# ./guix-install.sh\n" #. type: Plain text #: guix-git/doc/guix.texi:798 msgid "The script to install Guix is also packaged in Parabola (in the pcr repository). You can install and run it with:" msgstr "Das Skript, um Guix zu installieren, können Sie auf Parabola auch als Paket bekommen (im Repository pcr). So können Sie es installieren und ausführen:" #. type: example #: guix-git/doc/guix.texi:801 #, no-wrap msgid "" "sudo pacman -S guix-installer\n" "sudo guix-install.sh\n" msgstr "" "sudo pacman -S guix-installer\n" "sudo guix-install.sh\n" #. type: quotation #: guix-git/doc/guix.texi:811 msgid "By default, @file{guix-install.sh} will configure Guix to download pre-built package binaries, called @dfn{substitutes} (@pxref{Substitutes}), from the project's build farms. If you choose not to permit this, Guix will build @emph{everything} from source, making each installation and upgrade very expensive. @xref{On Trusting Binaries} for a discussion of why you may want to build packages from source." msgstr "Nach Voreinstellung richtet @file{guix-install.sh} Guix so ein, dass vorerstellte Binärdateien, die wir als @dfn{Substitute} bezeichnen, von den Erstellungsfarmen des Projekts heruntergeladen werden (siehe @ref{Substitutes}). Wenn Sie keine Zustimmung zu Substituten geben, muss Guix @emph{alles} auf Ihrem Rechner aus dem Quellcode heraus erstellen, wodurch jede Installation und jede Aktualisierung sehr aufwendig wird. Siehe @ref{On Trusting Binaries} für eine Erörterung, aus welchen Gründen man Pakete aus dem Quellcode heraus erstellen wollen könnte." #. type: cindex #: guix-git/doc/guix.texi:812 guix-git/doc/guix.texi:3673 #: guix-git/doc/guix.texi:19631 #, no-wrap msgid "substitutes, authorization thereof" msgstr "Substitute, deren Autorisierung" #. type: quotation #: guix-git/doc/guix.texi:816 msgid "To use substitutes from @code{@value{SUBSTITUTE-SERVER-1}}, @code{@value{SUBSTITUTE-SERVER-2}} or a mirror, you must authorize them. For example," msgstr "Um Substitute von @code{@value{SUBSTITUTE-SERVER-1}}, @code{@value{SUBSTITUTE-SERVER-2}} oder einem Spiegelserver davon zu benutzen (siehe @ref{Substitutes}), müssen Sie sie erst autorisieren. Zum Beispiel:" #. type: example #: guix-git/doc/guix.texi:822 #, no-wrap msgid "" "# guix archive --authorize < \\\n" " ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER-1}.pub\n" "# guix archive --authorize < \\\n" " ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER-2}.pub\n" msgstr "" "# guix archive --authorize < \\\n" " ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER-1}.pub\n" "# guix archive --authorize < \\\n" " ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER-2}.pub\n" #. type: Plain text #: guix-git/doc/guix.texi:828 msgid "When you're done installing Guix, @pxref{Application Setup} for extra configuration you might need, and @ref{Getting Started} for your first steps!" msgstr "Wenn Sie die Installation von Guix erledigt haben, werfen Sie einen Blick auf @ref{Application Setup} für weitere Einstellungen, die Sie vielleicht vornehmen möchten, und lesen Sie die ersten Schritte im @ref{Getting Started}, um loszulegen!" #. type: quotation #: guix-git/doc/guix.texi:832 msgid "The binary installation tarball can be (re)produced and verified simply by running the following command in the Guix source tree:" msgstr "Der Tarball zur Installation aus einer Binärdatei kann einfach durch Ausführung des folgenden Befehls im Guix-Quellbaum (re-)produziert und verifiziert werden:" #. type: example #: guix-git/doc/guix.texi:835 #, no-wrap msgid "make guix-binary.@var{system}.tar.xz\n" msgstr "make guix-binary.@var{System}.tar.xz\n" #. type: quotation #: guix-git/doc/guix.texi:839 msgid "...@: which, in turn, runs:" msgstr "…@: was wiederum dies ausführt:" #. type: example #: guix-git/doc/guix.texi:843 #, no-wrap msgid "" "guix pack -s @var{system} --localstatedir \\\n" " --profile-name=current-guix guix\n" msgstr "" "guix pack -s @var{System} --localstatedir \\\n" " --profile-name=current-guix guix\n" #. type: quotation #: guix-git/doc/guix.texi:846 msgid "@xref{Invoking guix pack}, for more info on this handy tool." msgstr "Siehe @ref{Invoking guix pack} für weitere Informationen zu diesem praktischen Werkzeug." #. type: cindex #: guix-git/doc/guix.texi:848 #, no-wrap msgid "uninstalling Guix" msgstr "Guix deinstallieren" #. type: cindex #: guix-git/doc/guix.texi:849 #, no-wrap msgid "uninstallation, of Guix" msgstr "Deinstallieren, von Guix" #. type: Plain text #: guix-git/doc/guix.texi:852 msgid "Should you eventually want to uninstall Guix, run the same script with the @option{--uninstall} flag:" msgstr "Falls Sie Guix irgendwann deinstallieren möchten, führen Sie dasselbe Skript mit der Befehlszeilenoption @option{--uninstall} aus:" #. type: example #: guix-git/doc/guix.texi:855 #, no-wrap msgid "./guix-install.sh --uninstall\n" msgstr "./guix-install.sh --uninstall\n" #. type: Plain text #: guix-git/doc/guix.texi:859 msgid "With @option{--uninstall}, the script irreversibly deletes all the Guix files, configuration, and services." msgstr "Durch @option{--uninstall} wird das Skript alle Dateien, Konfigurationen und Dienste von Guix unwiederbringlich löschen." #. type: cindex #: guix-git/doc/guix.texi:863 #, no-wrap msgid "daemon" msgstr "Daemon" #. type: Plain text #: guix-git/doc/guix.texi:867 msgid "During installation, the @dfn{build daemon} that must be running to use Guix has already been set up and you can run @command{guix} commands in your terminal program, @pxref{Getting Started}:" msgstr "Bei der Installation wurde der @dfn{Erstellungs-Daemon}, der laufen muss, damit man Guix benutzen kann, bereits eingerichtet und Sie können Befehle mit @command{guix} in Ihrem Terminalprogramm ausführen, siehe @ref{Getting Started}:" #. type: example #: guix-git/doc/guix.texi:870 #, no-wrap msgid "guix build hello\n" msgstr "guix build hello\n" #. type: Plain text #: guix-git/doc/guix.texi:875 msgid "If this runs through without error, feel free to skip this section. You should continue with the following section, @ref{Application Setup}." msgstr "Wenn dies ohne Fehler durchläuft, können Sie diesen Abschnitt auch überspringen. Ihre nächste Station wäre der nachfolgende Abschnitt, @ref{Application Setup}." #. type: Plain text #: guix-git/doc/guix.texi:883 msgid "However, now would be a good time to replace outdated daemon versions, tweak it, perform builds on other machines (@pxref{Daemon Offload Setup}), or start it manually in special environments like ``chroots'' (@pxref{Chrooting into an existing system}) or WSL (not needed for WSL images created with Guix, @pxref{System Images, @code{wsl2-image-type}}). If you want to know more or optimize your system, this section is worth reading." msgstr "Allerdings ist jetzt ein guter Zeitpunkt, um alte Versionen des Daemons auszutauschen, Anpassungen vorzunehmen, Erstellungen auf andere Maschinen auszulagern (siehe @ref{Daemon Offload Setup}) oder ihn in speziellen Umgebungen manuell zu starten, z.B.@: in „chroots“ (siehe @ref{Chrooting into an existing system}) oder WSL (nicht nötig bei mit Guix erzeugten WSL-Abbildern, siehe @ref{System Images, @code{wsl2-image-type}}). Wenn Sie mehr wissen möchten oder vorhaben, Ihr System zu optimieren, lohnt es sich, diesen Abschnitt zu lesen." #. type: Plain text #: guix-git/doc/guix.texi:891 msgid "Operations such as building a package or running the garbage collector are all performed by a specialized process, the build daemon, on behalf of clients. Only the daemon may access the store and its associated database. Thus, any operation that manipulates the store goes through the daemon. For instance, command-line tools such as @command{guix package} and @command{guix build} communicate with the daemon (@i{via} remote procedure calls) to instruct it what to do." msgstr "Operationen wie das Erstellen eines Pakets oder Laufenlassen des Müllsammlers werden alle durch einen spezialisierten Prozess durchgeführt, den Erstellungs-Daemon, im Auftrag seiner Kunden (den Clients). Nur der Daemon darf auf den Store und seine zugehörige Datenbank zugreifen. Daher wird jede den Store verändernde Operation durch den Daemon durchgeführt. Zum Beispiel kommunizieren Befehlszeilenwerkzeuge wie @command{guix package} und @command{guix build} mit dem Daemon (mittels entfernter Prozeduraufrufe), um ihm Anweisungen zu geben, was er tun soll." #. type: Plain text #: guix-git/doc/guix.texi:895 msgid "The following sections explain how to prepare the build daemon's environment. @xref{Substitutes} for how to allow the daemon to download pre-built binaries." msgstr "Folgende Abschnitte beschreiben, wie Sie die Umgebung des Erstellungs-Daemons ausstatten sollten. @xref{Substitutes} für Informationen darüber, wie Sie es dem Daemon ermöglichen, vorerstellte Binärdateien herunterzuladen." #. type: cindex #: guix-git/doc/guix.texi:905 guix-git/doc/guix.texi:1414 #, no-wrap msgid "build environment" msgstr "Erstellungsumgebung" #. type: Plain text #: guix-git/doc/guix.texi:913 msgid "In a standard multi-user setup, Guix and its daemon---the @command{guix-daemon} program---are installed by the system administrator; @file{/gnu/store} is owned by @code{root} and @command{guix-daemon} runs as @code{root}. Unprivileged users may use Guix tools to build packages or otherwise access the store, and the daemon will do it on their behalf, ensuring that the store is kept in a consistent state, and allowing built packages to be shared among users." msgstr "In einem normalen Mehrbenutzersystem werden Guix und sein Daemon@tie{}– das Programm @command{guix-daemon}@tie{}– vom Systemadministrator installiert; @file{/gnu/store} gehört @code{root} und @command{guix-daemon} läuft als @code{root}. Nicht mit erweiterten Rechten ausgestattete Nutzer können Guix-Werkzeuge benutzen, um Pakete zu erstellen oder anderweitig auf den Store zuzugreifen, und der Daemon wird dies für sie erledigen und dabei sicherstellen, dass der Store in einem konsistenten Zustand verbleibt und sich die Nutzer erstellte Pakete teilen." #. type: cindex #: guix-git/doc/guix.texi:914 #, no-wrap msgid "build users" msgstr "Erstellungsbenutzer" #. type: Plain text #: guix-git/doc/guix.texi:925 msgid "When @command{guix-daemon} runs as @code{root}, you may not want package build processes themselves to run as @code{root} too, for obvious security reasons. To avoid that, a special pool of @dfn{build users} should be created for use by build processes started by the daemon. These build users need not have a shell and a home directory: they will just be used when the daemon drops @code{root} privileges in build processes. Having several such users allows the daemon to launch distinct build processes under separate UIDs, which guarantees that they do not interfere with each other---an essential feature since builds are regarded as pure functions (@pxref{Introduction})." msgstr "Wenn @command{guix-daemon} als Administratornutzer @code{root} läuft, wollen Sie aber vielleicht dennoch nicht, dass Paketerstellungsprozesse auch als @code{root} ablaufen, aus offensichtlichen Sicherheitsgründen. Um dies zu vermeiden, sollte ein besonderer Pool aus @dfn{Erstellungsbenutzern} geschaffen werden, damit vom Daemon gestartete Erstellungsprozesse ihn benutzen. Diese Erstellungsbenutzer müssen weder eine Shell noch ein Persönliches Verzeichnis zugewiesen bekommen, sie werden lediglich benutzt, wenn der Daemon @code{root}-Rechte in Erstellungsprozessen ablegt. Mehrere solche Benutzer zu haben, ermöglicht es dem Daemon, verschiedene Erstellungsprozessen unter verschiedenen Benutzeridentifikatoren (UIDs) zu starten, was garantiert, dass sie einander nicht stören@tie{}– eine essenzielle Funktionalität, da Erstellungen als reine Funktionen angesehen werden (siehe @ref{Introduction})." #. type: Plain text #: guix-git/doc/guix.texi:928 msgid "On a GNU/Linux system, a build user pool may be created like this (using Bash syntax and the @code{shadow} commands):" msgstr "Auf einem GNU/Linux-System kann ein Pool von Erstellungsbenutzern wie folgt erzeugt werden (mit Bash-Syntax und den Befehlen von @code{shadow}):" #. type: example #: guix-git/doc/guix.texi:940 #, no-wrap msgid "" "# groupadd --system guixbuild\n" "# for i in $(seq -w 1 10);\n" " do\n" " useradd -g guixbuild -G guixbuild \\\n" " -d /var/empty -s $(which nologin) \\\n" " -c \"Guix build user $i\" --system \\\n" " guixbuilder$i;\n" " done\n" msgstr "" "# groupadd --system guixbuild\n" "# for i in $(seq -w 1 10);\n" " do\n" " useradd -g guixbuild -G guixbuild \\\n" " -d /var/empty -s $(which nologin) \\\n" " -c \"Guix-Erstellungsbenutzer $i\" --system \\\n" " guixbuilder$i;\n" " done\n" #. type: Plain text #: guix-git/doc/guix.texi:950 msgid "The number of build users determines how many build jobs may run in parallel, as specified by the @option{--max-jobs} option (@pxref{Invoking guix-daemon, @option{--max-jobs}}). To use @command{guix system vm} and related commands, you may need to add the build users to the @code{kvm} group so they can access @file{/dev/kvm}, using @code{-G guixbuild,kvm} instead of @code{-G guixbuild} (@pxref{Invoking guix system})." msgstr "Die Anzahl der Erstellungsbenutzer entscheidet, wie viele Erstellungsaufträge parallel ausgeführt werden können, wie es mit der Befehlszeilenoption @option{--max-jobs} vorgegeben werden kann (siehe @ref{Invoking guix-daemon, @option{--max-jobs}}). Um @command{guix system vm} und ähnliche Befehle nutzen zu können, müssen Sie die Erstellungsbenutzer unter Umständen zur @code{kvm}-Benutzergruppe hinzufügen, damit sie Zugriff auf @file{/dev/kvm} haben, mit @code{-G guixbuild,kvm} statt @code{-G guixbuild} (siehe @ref{Invoking guix system})." #. type: Plain text #: guix-git/doc/guix.texi:959 msgid "The @code{guix-daemon} program may then be run as @code{root} with the following command@footnote{If your machine uses the systemd init system, copying the @file{@var{prefix}/lib/systemd/system/guix-daemon.service} file to @file{/etc/systemd/system} will ensure that @command{guix-daemon} is automatically started. Similarly, if your machine uses the Upstart init system, copy the @file{@var{prefix}/lib/upstart/system/guix-daemon.conf} file to @file{/etc/init}.}:" msgstr "Das Programm @code{guix-daemon} kann mit dem folgenden Befehl als @code{root} gestartet werden@footnote{Wenn Ihre Maschine systemd als „init“-System verwendet, genügt es, die Datei @file{@var{prefix}/lib/systemd/system/guix-daemon.service} nach @file{/etc/systemd/system} zu kopieren, damit @command{guix-daemon} automatisch gestartet wird. Ebenso können Sie, wenn Ihre Maschine Upstart als „init“-System benutzt, die Datei @file{@var{prefix}/lib/upstart/system/guix-daemon.conf} nach @file{/etc/init} kopieren.}:" #. type: example #: guix-git/doc/guix.texi:962 guix-git/doc/guix.texi:1403 #, no-wrap msgid "# guix-daemon --build-users-group=guixbuild\n" msgstr "# guix-daemon --build-users-group=guixbuild\n" #. type: cindex #: guix-git/doc/guix.texi:964 guix-git/doc/guix.texi:1412 #, no-wrap msgid "chroot" msgstr "chroot" #. type: Plain text #: guix-git/doc/guix.texi:969 msgid "This way, the daemon starts build processes in a chroot, under one of the @code{guixbuilder} users. On GNU/Linux, by default, the chroot environment contains nothing but:" msgstr "Auf diese Weise startet der Daemon Erstellungsprozesse in einem chroot als einer der @code{guixbuilder}-Benutzer. Auf GNU/Linux enthält die chroot-Umgebung standardmäßig nichts außer:" #. type: itemize #: guix-git/doc/guix.texi:977 msgid "a minimal @code{/dev} directory, created mostly independently from the host @code{/dev}@footnote{``Mostly'', because while the set of files that appear in the chroot's @code{/dev} is fixed, most of these files can only be created if the host has them.};" msgstr "einem minimalen @code{/dev}-Verzeichnis, was größtenteils vom @code{/dev} des Wirtssystems unabhängig erstellt wurde@footnote{„Größtenteils“, denn obwohl die Menge an Dateien, die im @code{/dev} des chroots vorkommen, fest ist, können die meisten dieser Dateien nur dann erstellt werden, wenn das Wirtssystem sie auch hat.}," #. type: itemize #: guix-git/doc/guix.texi:981 msgid "the @code{/proc} directory; it only shows the processes of the container since a separate PID name space is used;" msgstr "dem @code{/proc}-Verzeichnis, es zeigt nur die Prozesse des Containers, weil ein separater Namensraum für Prozess-IDs (PIDs) benutzt wird," #. type: itemize #: guix-git/doc/guix.texi:985 msgid "@file{/etc/passwd} with an entry for the current user and an entry for user @file{nobody};" msgstr "@file{/etc/passwd} mit einem Eintrag für den aktuellen Benutzer und einem Eintrag für den Benutzer @file{nobody}," #. type: itemize #: guix-git/doc/guix.texi:988 msgid "@file{/etc/group} with an entry for the user's group;" msgstr "@file{/etc/group} mit einem Eintrag für die Gruppe des Benutzers," #. type: itemize #: guix-git/doc/guix.texi:992 msgid "@file{/etc/hosts} with an entry that maps @code{localhost} to @code{127.0.0.1};" msgstr "@file{/etc/hosts} mit einem Eintrag, der @code{localhost} auf @code{127.0.0.1} abbildet," #. type: itemize #: guix-git/doc/guix.texi:995 msgid "a writable @file{/tmp} directory." msgstr "einem @file{/tmp}-Verzeichnis mit Schreibrechten." #. type: Plain text #: guix-git/doc/guix.texi:1001 msgid "The chroot does not contain a @file{/home} directory, and the @env{HOME} environment variable is set to the non-existent @file{/homeless-shelter}. This helps to highlight inappropriate uses of @env{HOME} in the build scripts of packages." msgstr "Im chroot ist kein @file{/home}-Verzeichnis enthalten und die Umgebungsvariable @env{HOME} ist auf das @emph{nicht} existierende Verzeichnis @file{/homeless-shelter} festgelegt. Dadurch fallen unangemessene Verwendungen von @env{HOME} in den Erstellungs-Skripts von Paketen auf." #. type: Plain text #: guix-git/doc/guix.texi:1006 msgid "All this usually enough to ensure details of the environment do not influence build processes. In some exceptional cases where more control is needed---typically over the date, kernel, or CPU---you can resort to a virtual build machine (@pxref{build-vm, virtual build machines})." msgstr "Durch diese Maßnahmen ist in der Regel gewährleistet, dass Details aus Ihrer Umgebung keinen Einfluss auf Erstellungsprozesse haben. In manchen besonderen Fällen bedarf es mehr Kontrolle@tie{}– typischerweise über Datum, Kernel oder Prozessor@tie{}– und dazu können Sie auf eine virtuelle Erstellungsmaschine zurückgreifen (siehe @ref{build-vm, virtuelle Erstellungsmaschinen})." #. type: Plain text #: guix-git/doc/guix.texi:1014 msgid "You can influence the directory where the daemon stores build trees @i{via} the @env{TMPDIR} environment variable. However, the build tree within the chroot is always called @file{/tmp/guix-build-@var{name}.drv-0}, where @var{name} is the derivation name---e.g., @code{coreutils-8.24}. This way, the value of @env{TMPDIR} does not leak inside build environments, which avoids discrepancies in cases where build processes capture the name of their build tree." msgstr "Sie können beeinflussen, in welchem Verzeichnis der Daemon Verzeichnisbäume zur Erstellung unterbringt, indem sie den Wert der Umgebungsvariablen @env{TMPDIR} ändern. Allerdings heißt innerhalb des chroots der Erstellungsbaum immer @file{/tmp/guix-build-@var{Name}.drv-0}, wobei @var{Name} der Ableitungsname ist@tie{}– z.B.@: @code{coreutils-8.24}. Dadurch hat der Wert von @env{TMPDIR} keinen Einfluss auf die Erstellungsumgebung, wodurch Unterschiede vermieden werden, falls Erstellungsprozesse den Namen ihres Erstellungsbaumes einfangen." #. type: vindex #: guix-git/doc/guix.texi:1015 guix-git/doc/guix.texi:3898 #, no-wrap msgid "http_proxy" msgstr "http_proxy" #. type: vindex #: guix-git/doc/guix.texi:1016 guix-git/doc/guix.texi:3899 #, no-wrap msgid "https_proxy" msgstr "https_proxy" #. type: Plain text #: guix-git/doc/guix.texi:1021 msgid "The daemon also honors the @env{http_proxy} and @env{https_proxy} environment variables for HTTP and HTTPS downloads it performs, be it for fixed-output derivations (@pxref{Derivations}) or for substitutes (@pxref{Substitutes})." msgstr "Der Daemon befolgt außerdem den Wert der Umgebungsvariablen @env{http_proxy} und @env{https_proxy} für von ihm durchgeführte HTTP- und HTTPS-Downloads, sei es für Ableitungen mit fester Ausgabe (siehe @ref{Derivations}) oder für Substitute (siehe @ref{Substitutes})." #. type: Plain text #: guix-git/doc/guix.texi:1029 msgid "If you are installing Guix as an unprivileged user, it is still possible to run @command{guix-daemon} provided you pass @option{--disable-chroot}. However, build processes will not be isolated from one another, and not from the rest of the system. Thus, build processes may interfere with each other, and may access programs, libraries, and other files available on the system---making it much harder to view them as @emph{pure} functions." msgstr "Wenn Sie Guix als ein Benutzer ohne erweiterte Rechte installieren, ist es dennoch möglich, @command{guix-daemon} auszuführen, sofern Sie @option{--disable-chroot} übergeben. Allerdings können Erstellungsprozesse dann nicht voneinander und vom Rest des Systems isoliert werden. Daher können sich Erstellungsprozesse gegenseitig stören und auf Programme, Bibliotheken und andere Dateien zugreifen, die dem restlichen System zur Verfügung stehen@tie{}– was es deutlich schwerer macht, sie als @emph{reine} Funktionen aufzufassen." #. type: subsection #: guix-git/doc/guix.texi:1032 #, no-wrap msgid "Using the Offload Facility" msgstr "Nutzung der Auslagerungsfunktionalität" #. type: cindex #: guix-git/doc/guix.texi:1034 guix-git/doc/guix.texi:1473 #, no-wrap msgid "offloading" msgstr "Auslagern" #. type: cindex #: guix-git/doc/guix.texi:1035 #, no-wrap msgid "build hook" msgstr "Build-Hook" #. type: Plain text #: guix-git/doc/guix.texi:1054 msgid "When desired, the build daemon can @dfn{offload} derivation builds to other machines running Guix, using the @code{offload} @dfn{build hook}@footnote{This feature is available only when @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} is present.}. When that feature is enabled, a list of user-specified build machines is read from @file{/etc/guix/machines.scm}; every time a build is requested, for instance via @code{guix build}, the daemon attempts to offload it to one of the machines that satisfy the constraints of the derivation, in particular its system types---e.g., @code{x86_64-linux}. A single machine can have multiple system types, either because its architecture natively supports it, via emulation (@pxref{transparent-emulation-qemu, Transparent Emulation with QEMU}), or both. Missing prerequisites for the build are copied over SSH to the target machine, which then proceeds with the build; upon success the output(s) of the build are copied back to the initial machine. The offload facility comes with a basic scheduler that attempts to select the best machine. The best machine is chosen among the available machines based on criteria such as:" msgstr "Wenn erwünscht, kann der Erstellungs-Daemon Ableitungserstellungen auf andere Maschinen @dfn{auslagern}, auf denen Guix läuft, mit Hilfe des @code{offload}-@dfn{Build-Hooks}@footnote{Diese Funktionalität ist nur verfügbar, wenn @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} vorhanden ist.}. Wenn diese Funktionalität aktiviert ist, wird eine nutzerspezifizierte Liste von Erstellungsmaschinen aus @file{/etc/guix/machines.scm} gelesen. Wann immer eine Erstellung angefragt wird, zum Beispiel durch @code{guix build}, versucht der Daemon, sie an eine der Erstellungsmaschinen auszulagern, die die Einschränkungen der Ableitung erfüllen, insbesondere ihre Systemtypen@tie{}– z.B.@: @code{x86_64-linux}. Eine einzelne Maschine kann mehrere Systemtypen haben, entweder weil ihre Architektur eine native Unterstützung vorsieht, weil Emulation eingerichtet wurde (siehe @ref{transparent-emulation-qemu, Transparente Emulation mit QEMU}) oder beides. Fehlende Voraussetzungen für die Erstellung werden über SSH auf die Zielmaschine kopiert, welche dann mit der Erstellung weitermacht. Hat sie Erfolg damit, so werden die Ausgabe oder Ausgaben der Erstellung zurück auf die ursprüngliche Maschine kopiert. Die Auslagerungsfunktion verfügt über einen einfachen Planungsalgorithmus (einen Scheduler), mit dem versucht wird, die jeweils beste Maschine auszuwählen. Unter den verfügbaren wird die beste Maschine nach Kriterien wie diesen ausgewählt:" #. type: enumerate #: guix-git/doc/guix.texi:1060 msgid "The availability of a build slot. A build machine can have as many build slots (connections) as the value of the @code{parallel-builds} field of its @code{build-machine} object." msgstr "Ob Zeitfenster für Erstellungen frei sind („build slots“). Eine Erstellungsmaschine kann so viele Erstellungszeitfenster (Verbindungen) unterhalten wie es dem Wert des @code{parallel-builds}-Feldes des @code{build-machine}-Objekts entspricht." #. type: enumerate #: guix-git/doc/guix.texi:1064 msgid "Its relative speed, as defined via the @code{speed} field of its @code{build-machine} object." msgstr "Was ihre relative Geschwindigkeit ist, gemäß ihrer Definition im @code{speed}-Feld ihres @code{build-machine}-Objekts." #. type: enumerate #: guix-git/doc/guix.texi:1069 msgid "Its load. The normalized machine load must be lower than a threshold value, configurable via the @code{overload-threshold} field of its @code{build-machine} object." msgstr "Ihrer Auslastung („load“). Die normalisierte Auslastung der Maschine darf einen Schwellwert nicht überschreiten. Dieser ist über das @code{overload-threshold}-Feld ihres @code{build-machine}-Objekts einstellbar." #. type: enumerate #: guix-git/doc/guix.texi:1072 msgid "Disk space availability. More than a 100 MiB must be available." msgstr "Verfügbarem Speicherplatz auf ihrem Datenträger. Es müssen mehr als 100@tie{}MiB verfügbar sein." #. type: Plain text #: guix-git/doc/guix.texi:1075 msgid "The @file{/etc/guix/machines.scm} file typically looks like this:" msgstr "Die Datei @file{/etc/guix/machines.scm} sieht normalerweise so aus:" #. type: lisp #: guix-git/doc/guix.texi:1083 #, no-wrap msgid "" "(list (build-machine\n" " (name \"eightysix.example.org\")\n" " (systems (list \"x86_64-linux\" \"i686-linux\"))\n" " (host-key \"ssh-ed25519 AAAAC3Nza@dots{}\")\n" " (user \"bob\")\n" " (speed 2.)) ;incredibly fast!\n" "\n" msgstr "" "(list (build-machine\n" " (name \"eightysix.example.org\")\n" " (systems (list \"x86_64-linux\" \"i686-linux\"))\n" " (host-key \"ssh-ed25519 AAAAC3Nza…\")\n" " (user \"bob\")\n" " (speed 2.)) ;unglaublich schnell!\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:1089 #, no-wrap msgid "" " (build-machine\n" " (name \"armeight.example.org\")\n" " (systems (list \"aarch64-linux\"))\n" " (host-key \"ssh-rsa AAAAB3Nza@dots{}\")\n" " (user \"alice\")\n" "\n" msgstr "" " (build-machine\n" " (name \"armeight.example.org\")\n" " (systems (list \"aarch64-linux\"))\n" " (host-key \"ssh-rsa AAAAB3Nza@dots{}\")\n" " (user \"alice\")\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:1093 #, no-wrap msgid "" " ;; Remember 'guix offload' is spawned by\n" " ;; 'guix-daemon' as root.\n" " (private-key \"/root/.ssh/identity-for-guix\")))\n" msgstr "" " ;; Weil 'guix offload' vom 'guix-daemon' als\n" " ;; Administratornutzer root gestartet wird.\n" " (private-key \"/root/.ssh/identität-für-guix\")))\n" #. type: Plain text #: guix-git/doc/guix.texi:1099 msgid "In the example above we specify a list of two build machines, one for the @code{x86_64} and @code{i686} architectures and one for the @code{aarch64} architecture." msgstr "Im obigen Beispiel geben wir eine Liste mit zwei Erstellungsmaschinen vor, eine für die @code{x86_64}- und @code{i686}-Architektur und eine für die @code{aarch64}-Architektur." #. type: Plain text #: guix-git/doc/guix.texi:1108 msgid "In fact, this file is---not surprisingly!---a Scheme file that is evaluated when the @code{offload} hook is started. Its return value must be a list of @code{build-machine} objects. While this example shows a fixed list of build machines, one could imagine, say, using DNS-SD to return a list of potential build machines discovered in the local network (@pxref{Introduction, Guile-Avahi,, guile-avahi, Using Avahi in Guile Scheme Programs}). The @code{build-machine} data type is detailed below." msgstr "Tatsächlich ist diese Datei@tie{}– wenig überraschend!@tie{}– eine Scheme-Datei, die ausgewertet wird, wenn der @code{offload}-Hook gestartet wird. Der Wert, den sie zurückliefert, muss eine Liste von @code{build-machine}-Objekten sein. Obwohl dieses Beispiel eine feste Liste von Erstellungsmaschinen zeigt, könnte man auch auf die Idee kommen, etwa mit DNS-SD eine Liste möglicher im lokalen Netzwerk entdeckter Erstellungsmaschinen zu liefern (siehe @ref{Introduction, Guile-Avahi,, guile-avahi, Using Avahi in Guile Scheme Programs}). Der Datentyp @code{build-machine} wird im Folgenden weiter ausgeführt." #. type: deftp #: guix-git/doc/guix.texi:1109 #, no-wrap msgid "{Data Type} build-machine" msgstr "{Datentyp} build-machine" #. type: deftp #: guix-git/doc/guix.texi:1112 msgid "This data type represents build machines to which the daemon may offload builds. The important fields are:" msgstr "Dieser Datentyp repräsentiert Erstellungsmaschinen, an die der Daemon Erstellungen auslagern darf. Die wichtigen Felder sind:" #. type: code{#1} #: guix-git/doc/guix.texi:1115 guix-git/doc/guix.texi:7763 #: guix-git/doc/guix.texi:8823 guix-git/doc/guix.texi:18501 #: guix-git/doc/guix.texi:18600 guix-git/doc/guix.texi:18840 #: guix-git/doc/guix.texi:20953 guix-git/doc/guix.texi:21859 #: guix-git/doc/guix.texi:22119 guix-git/doc/guix.texi:26277 #: guix-git/doc/guix.texi:29466 guix-git/doc/guix.texi:31007 #: guix-git/doc/guix.texi:31804 guix-git/doc/guix.texi:32182 #: guix-git/doc/guix.texi:32228 guix-git/doc/guix.texi:34365 #: guix-git/doc/guix.texi:37446 guix-git/doc/guix.texi:37484 #: guix-git/doc/guix.texi:40686 guix-git/doc/guix.texi:40703 #: guix-git/doc/guix.texi:41929 guix-git/doc/guix.texi:43945 #: guix-git/doc/guix.texi:44303 guix-git/doc/guix.texi:48092 #, no-wrap msgid "name" msgstr "name" #. type: table #: guix-git/doc/guix.texi:1117 msgid "The host name of the remote machine." msgstr "Der Rechnername (d.h.@: der Hostname) der entfernten Maschine." #. type: item #: guix-git/doc/guix.texi:1118 #, no-wrap msgid "systems" msgstr "systems" #. type: table #: guix-git/doc/guix.texi:1121 msgid "The system types the remote machine supports---e.g., @code{(list \"x86_64-linux\" \"i686-linux\")}." msgstr "Die Systemtypen, die die entfernte Maschine unterstützt@tie{}– z.B.@: @code{(list \"x86_64-linux\" \"i686-linux\")}." #. type: code{#1} #: guix-git/doc/guix.texi:1122 guix-git/doc/guix.texi:21869 #, no-wrap msgid "user" msgstr "user" #. type: table #: guix-git/doc/guix.texi:1126 msgid "The user account on the remote machine to use when connecting over SSH. Note that the SSH key pair must @emph{not} be passphrase-protected, to allow non-interactive logins." msgstr "Das Benutzerkonto auf der entfernten Maschine, mit dem eine Verbindung über SSH aufgebaut werden soll. Beachten Sie, dass das SSH-Schlüsselpaar @emph{nicht} durch eine Passphrase geschützt sein darf, damit nicht-interaktive Anmeldungen möglich sind." #. type: item #: guix-git/doc/guix.texi:1127 #, no-wrap msgid "host-key" msgstr "host-key" #. type: table #: guix-git/doc/guix.texi:1131 msgid "This must be the machine's SSH @dfn{public host key} in OpenSSH format. This is used to authenticate the machine when we connect to it. It is a long string that looks like this:" msgstr "Dies muss der @dfn{öffentliche SSH-Rechnerschlüssel} („Host Key“) der Maschine im OpenSSH-Format sein. Er wird benutzt, um die Identität der Maschine zu prüfen, wenn wir uns mit ihr verbinden. Er ist eine lange Zeichenkette, die ungefähr so aussieht:" #. type: example #: guix-git/doc/guix.texi:1134 #, no-wrap msgid "ssh-ed25519 AAAAC3NzaC@dots{}mde+UhL hint@@example.org\n" msgstr "ssh-ed25519 AAAAC3NzaC…mde+UhL hint@@example.org\n" #. type: table #: guix-git/doc/guix.texi:1139 msgid "If the machine is running the OpenSSH daemon, @command{sshd}, the host key can be found in a file such as @file{/etc/ssh/ssh_host_ed25519_key.pub}." msgstr "Wenn auf der Maschine der OpenSSH-Daemon, @command{sshd}, läuft, ist der Rechnerschlüssel in einer Datei wie @file{/etc/ssh/ssh_host_ed25519_key.pub} zu finden." #. type: table #: guix-git/doc/guix.texi:1144 msgid "If the machine is running the SSH daemon of GNU@tie{}lsh, @command{lshd}, the host key is in @file{/etc/lsh/host-key.pub} or a similar file. It can be converted to the OpenSSH format using @command{lsh-export-key} (@pxref{Converting keys,,, lsh, LSH Manual}):" msgstr "Wenn auf der Maschine der SSH-Daemon von GNU@tie{}lsh, nämlich @command{lshd}, läuft, befindet sich der Rechnerschlüssel in @file{/etc/lsh/host-key.pub} oder einer ähnlichen Datei. Er kann ins OpenSSH-Format umgewandelt werden durch @command{lsh-export-key} (siehe @ref{Converting keys,,, lsh, LSH Manual}):" #. type: example #: guix-git/doc/guix.texi:1148 #, no-wrap msgid "" "$ lsh-export-key --openssh < /etc/lsh/host-key.pub\n" "ssh-rsa AAAAB3NzaC1yc2EAAAAEOp8FoQAAAQEAs1eB46LV@dots{}\n" msgstr "" "$ lsh-export-key --openssh < /etc/lsh/host-key.pub\n" "ssh-rsa AAAAB3NzaC1yc2EAAAAEOp8FoQAAAQEAs1eB46LV…\n" #. type: deftp #: guix-git/doc/guix.texi:1153 msgid "A number of optional fields may be specified:" msgstr "Eine Reihe optionaler Felder kann festgelegt werden:" #. type: item #: guix-git/doc/guix.texi:1156 guix-git/doc/guix.texi:43421 #, no-wrap msgid "@code{port} (default: @code{22})" msgstr "@code{port} (Vorgabe: @code{22})" #. type: table #: guix-git/doc/guix.texi:1158 msgid "Port number of SSH server on the machine." msgstr "Portnummer des SSH-Servers auf der Maschine." #. type: item #: guix-git/doc/guix.texi:1159 #, no-wrap msgid "@code{private-key} (default: @file{~root/.ssh/id_rsa})" msgstr "@code{private-key} (Vorgabe: @file{~root/.ssh/id_rsa})" #. type: table #: guix-git/doc/guix.texi:1162 msgid "The SSH private key file to use when connecting to the machine, in OpenSSH format. This key must not be protected with a passphrase." msgstr "Die Datei mit dem privaten SSH-Schlüssel, der beim Verbinden zur Maschine genutzt werden soll, im OpenSSH-Format. Dieser Schlüssel darf nicht mit einer Passphrase geschützt sein." #. type: table #: guix-git/doc/guix.texi:1165 msgid "Note that the default value is the private key @emph{of the root account}. Make sure it exists if you use the default." msgstr "Beachten Sie, dass als Vorgabewert der private Schlüssel @emph{des root-Benutzers} genommen wird. Vergewissern Sie sich, dass er existiert, wenn Sie die Standardeinstellung verwenden." #. type: item #: guix-git/doc/guix.texi:1166 #, no-wrap msgid "@code{compression} (default: @code{\"zlib@@openssh.com,zlib\"})" msgstr "@code{compression} (Vorgabe: @code{\"zlib@@openssh.com,zlib\"})" #. type: itemx #: guix-git/doc/guix.texi:1167 #, no-wrap msgid "@code{compression-level} (default: @code{3})" msgstr "@code{compression-level} (Vorgabe: @code{3})" #. type: table #: guix-git/doc/guix.texi:1169 msgid "The SSH-level compression methods and compression level requested." msgstr "Die Kompressionsmethoden auf SSH-Ebene und das angefragte Kompressionsniveau." #. type: table #: guix-git/doc/guix.texi:1172 msgid "Note that offloading relies on SSH compression to reduce bandwidth usage when transferring files to and from build machines." msgstr "Beachten Sie, dass Auslagerungen SSH-Kompression benötigen, um beim Übertragen von Dateien an Erstellungsmaschinen und zurück weniger Bandbreite zu benutzen." #. type: item #: guix-git/doc/guix.texi:1173 #, no-wrap msgid "@code{daemon-socket} (default: @code{\"/var/guix/daemon-socket/socket\"})" msgstr "@code{daemon-socket} (Vorgabe: @code{\"/var/guix/daemon-socket/socket\"})" #. type: table #: guix-git/doc/guix.texi:1176 msgid "File name of the Unix-domain socket @command{guix-daemon} is listening to on that machine." msgstr "Dateiname des Unix-Sockets, auf dem @command{guix-daemon} auf der Maschine lauscht." #. type: item #: guix-git/doc/guix.texi:1177 #, no-wrap msgid "@code{overload-threshold} (default: @code{0.8})" msgstr "@code{overload-threshold} (Vorgabe: @code{0.8})" #. type: table #: guix-git/doc/guix.texi:1183 msgid "The load threshold above which a potential offload machine is disregarded by the offload scheduler. The value roughly translates to the total processor usage of the build machine, ranging from 0.0 (0%) to 1.0 (100%). It can also be disabled by setting @code{overload-threshold} to @code{#f}." msgstr "Der Schwellwert für die Auslastung (englisch „load“), ab der eine potentielle Auslagerungsmaschine für den Auslagerungsplaner nicht mehr in Betracht kommt. Der Wert entspricht grob der gesamten Prozessornutzung der Erstellungsmaschine. Er reicht von 0.0 (0%) bis 1.0 (100%). Wenn er ignoriert werden soll, dann setzen Sie @code{overload-threshold} auf @code{#f}." #. type: item #: guix-git/doc/guix.texi:1184 #, no-wrap msgid "@code{parallel-builds} (default: @code{1})" msgstr "@code{parallel-builds} (Vorgabe: @code{1})" #. type: table #: guix-git/doc/guix.texi:1186 msgid "The number of builds that may run in parallel on the machine." msgstr "Die Anzahl der Erstellungen, die auf der Maschine parallel ausgeführt werden können." #. type: item #: guix-git/doc/guix.texi:1187 #, no-wrap msgid "@code{speed} (default: @code{1.0})" msgstr "@code{speed} (Vorgabe: @code{1.0})" #. type: table #: guix-git/doc/guix.texi:1190 msgid "A ``relative speed factor''. The offload scheduler will tend to prefer machines with a higher speed factor." msgstr "Ein „relativer Geschwindigkeitsfaktor“. Der Auslagerungsplaner gibt tendenziell Maschinen mit höherem Geschwindigkeitsfaktor den Vorrang." #. type: item #: guix-git/doc/guix.texi:1191 #, no-wrap msgid "@code{features} (default: @code{'()})" msgstr "@code{features} (Vorgabe: @code{'()})" #. type: table #: guix-git/doc/guix.texi:1196 msgid "A list of strings denoting specific features supported by the machine. An example is @code{\"kvm\"} for machines that have the KVM Linux modules and corresponding hardware support. Derivations can request features by name, and they will be scheduled on matching build machines." msgstr "Eine Liste von Zeichenketten, die besondere von der Maschine unterstützte Funktionalitäten bezeichnen. Ein Beispiel ist @code{\"kvm\"} für Maschinen, die über die KVM-Linux-Module zusammen mit entsprechender Hardware-Unterstützung verfügen. Ableitungen können Funktionalitäten dem Namen nach anfragen und werden dann auf passenden Erstellungsmaschinen eingeplant." #. type: quotation #: guix-git/doc/guix.texi:1206 msgid "On Guix System, instead of managing @file{/etc/guix/machines.scm} independently, you can choose to specify build machines directly in the @code{operating-system} declaration, in the @code{build-machines} field of @code{guix-configuration}. @xref{guix-configuration-build-machines, @code{build-machines} field of @code{guix-configuration}}." msgstr "Auf Guix System können Sie statt sich um eine zusätzliche Datei @file{/etc/guix/machines.scm} zu kümmern auch die Erstellungsmaschinen als Teil der Betriebssystemdeklaration in @code{operating-system} im Feld @code{build-machines} von @code{guix-configuration} angeben. Siehe das @ref{guix-configuration-build-machines, @code{build-machines}-Feld von @code{guix-configuration}}." #. type: Plain text #: guix-git/doc/guix.texi:1210 msgid "The @command{guix} command must be in the search path on the build machines. You can check whether this is the case by running:" msgstr "Der Befehl @code{guix} muss sich im Suchpfad der Erstellungsmaschinen befinden. Um dies nachzuprüfen, können Sie Folgendes ausführen:" #. type: example #: guix-git/doc/guix.texi:1213 #, no-wrap msgid "ssh build-machine guix repl --version\n" msgstr "ssh build-machine guix repl --version\n" #. type: Plain text #: guix-git/doc/guix.texi:1220 msgid "There is one last thing to do once @file{machines.scm} is in place. As explained above, when offloading, files are transferred back and forth between the machine stores. For this to work, you first need to generate a key pair on each machine to allow the daemon to export signed archives of files from the store (@pxref{Invoking guix archive}):" msgstr "Es gibt noch eine weitere Sache zu tun, sobald @file{machines.scm} eingerichtet ist. Wie zuvor erklärt, werden beim Auslagern Dateien zwischen den Stores der Maschinen hin- und hergeschickt. Damit das funktioniert, müssen Sie als Erstes ein Schlüsselpaar auf jeder Maschine erzeugen, damit der Daemon signierte Archive mit den Dateien aus dem Store versenden kann (siehe @ref{Invoking guix archive}):" #. type: example #: guix-git/doc/guix.texi:1223 guix-git/doc/guix.texi:43325 #, no-wrap msgid "# guix archive --generate-key\n" msgstr "# guix archive --generate-key\n" #. type: quotation #: guix-git/doc/guix.texi:1228 msgid "This key pair is not related to the SSH key pair that was previously mentioned in the description of the @code{build-machine} data type." msgstr "Dieses Schlüsselpaar hat mit dem SSH-Schlüsselpaar, das zuvor in der Beschreibung des Datentyps @code{build-machine} vorkam, @emph{nichts} zu tun." #. type: Plain text #: guix-git/doc/guix.texi:1233 msgid "Each build machine must authorize the key of the master machine so that it accepts store items it receives from the master:" msgstr "Jede Erstellungsmaschine muss den Schlüssel der Hauptmaschine autorisieren, damit diese Store-Objekte von der Hauptmaschine empfangen kann:" #. type: example #: guix-git/doc/guix.texi:1236 #, no-wrap msgid "# guix archive --authorize < master-public-key.txt\n" msgstr "# guix archive --authorize < öffentlicher-schlüssel-hauptmaschine.txt\n" #. type: Plain text #: guix-git/doc/guix.texi:1240 msgid "Likewise, the master machine must authorize the key of each build machine." msgstr "Andersherum muss auch die Hauptmaschine den jeweiligen Schlüssel jeder Erstellungsmaschine autorisieren." #. type: Plain text #: guix-git/doc/guix.texi:1246 msgid "All the fuss with keys is here to express pairwise mutual trust relations between the master and the build machines. Concretely, when the master receives files from a build machine (and @i{vice versa}), its build daemon can make sure they are genuine, have not been tampered with, and that they are signed by an authorized key." msgstr "Der ganze Umstand mit den Schlüsseln soll ausdrücken, dass sich Haupt- und Erstellungsmaschinen paarweise gegenseitig vertrauen. Konkret kann der Erstellungs-Daemon auf der Hauptmaschine die Unverfälschtheit von den Erstellungsmaschinen empfangener Dateien gewährleisten (und umgekehrt), und auch dass sie nicht sabotiert wurden und mit einem autorisierten Schlüssel signiert wurden." #. type: cindex #: guix-git/doc/guix.texi:1247 #, no-wrap msgid "offload test" msgstr "Auslagerung testen" #. type: Plain text #: guix-git/doc/guix.texi:1250 msgid "To test whether your setup is operational, run this command on the master node:" msgstr "Um zu testen, ob Ihr System funktioniert, führen Sie diesen Befehl auf der Hauptmaschine aus:" #. type: example #: guix-git/doc/guix.texi:1253 #, no-wrap msgid "# guix offload test\n" msgstr "# guix offload test\n" #. type: Plain text #: guix-git/doc/guix.texi:1259 msgid "This will attempt to connect to each of the build machines specified in @file{/etc/guix/machines.scm}, make sure Guix is available on each machine, attempt to export to the machine and import from it, and report any error in the process." msgstr "Dadurch wird versucht, zu jeder Erstellungsmaschine eine Verbindung herzustellen, die in @file{/etc/guix/machines.scm} angegeben wurde, sichergestellt, dass auf jeder Guix nutzbar ist, und jeweils versucht, etwas auf die Erstellungsmaschine zu exportieren und von dort zu importieren. Dabei auftretende Fehler werden gemeldet." #. type: Plain text #: guix-git/doc/guix.texi:1262 msgid "If you want to test a different machine file, just specify it on the command line:" msgstr "Wenn Sie stattdessen eine andere Maschinendatei verwenden möchten, geben Sie diese einfach auf der Befehlszeile an:" #. type: example #: guix-git/doc/guix.texi:1265 #, no-wrap msgid "# guix offload test machines-qualif.scm\n" msgstr "# guix offload test maschinen-qualif.scm\n" #. type: Plain text #: guix-git/doc/guix.texi:1269 msgid "Last, you can test the subset of the machines whose name matches a regular expression like this:" msgstr "Letztendlich können Sie hiermit nur die Teilmenge der Maschinen testen, deren Name zu einem regulären Ausdruck passt:" #. type: example #: guix-git/doc/guix.texi:1272 #, no-wrap msgid "# guix offload test machines.scm '\\.gnu\\.org$'\n" msgstr "# guix offload test maschinen.scm '\\.gnu\\.org$'\n" #. type: cindex #: guix-git/doc/guix.texi:1274 #, no-wrap msgid "offload status" msgstr "Auslagerungs-Lagebericht" #. type: Plain text #: guix-git/doc/guix.texi:1277 msgid "To display the current load of all build hosts, run this command on the main node:" msgstr "Um die momentane Auslastung aller Erstellungsrechner anzuzeigen, führen Sie diesen Befehl auf dem Hauptknoten aus:" #. type: example #: guix-git/doc/guix.texi:1280 #, no-wrap msgid "# guix offload status\n" msgstr "# guix offload status\n" #. type: cindex #: guix-git/doc/guix.texi:1286 #, no-wrap msgid "SELinux, daemon policy" msgstr "SELinux, Policy für den Daemon" #. type: cindex #: guix-git/doc/guix.texi:1287 #, no-wrap msgid "mandatory access control, SELinux" msgstr "Mandatory Access Control, SELinux" #. type: cindex #: guix-git/doc/guix.texi:1288 #, no-wrap msgid "security, guix-daemon" msgstr "Sicherheit, des guix-daemon" #. type: Plain text #: guix-git/doc/guix.texi:1294 msgid "Guix includes an SELinux policy file at @file{etc/guix-daemon.cil} that can be installed on a system where SELinux is enabled, in order to label Guix files and to specify the expected behavior of the daemon. Since Guix System does not provide an SELinux base policy, the daemon policy cannot be used on Guix System." msgstr "Guix enthält eine SELinux-Richtliniendatei („Policy“) unter @file{etc/guix-daemon.cil}, die auf einem System installiert werden kann, auf dem SELinux aktiviert ist, damit Guix-Dateien gekennzeichnet sind und um das erwartete Verhalten des Daemons anzugeben. Da Guix System keine Grundrichtlinie („Base Policy“) für SELinux bietet, kann diese Richtlinie für den Daemon auf Guix System nicht benutzt werden." #. type: subsubsection #: guix-git/doc/guix.texi:1295 #, no-wrap msgid "Installing the SELinux policy" msgstr "Installieren der SELinux-Policy" #. type: cindex #: guix-git/doc/guix.texi:1296 #, no-wrap msgid "SELinux, policy installation" msgstr "SELinux, Policy installieren" #. type: quotation #: guix-git/doc/guix.texi:1301 msgid "The @code{guix-install.sh} binary installation script offers to perform the steps below for you (@pxref{Binary Installation})." msgstr "Wenn Sie mit dem Skript @code{guix-install.sh} die Installation aus einer Binärdatei durchführen, wird Ihnen angeboten, die folgenden Schritte automatisch durchzuführen (siehe @ref{Binary Installation})." #. type: Plain text #: guix-git/doc/guix.texi:1304 msgid "To install the policy run this command as root:" msgstr "Um die Richtlinie (Policy) zu installieren, führen Sie folgenden Befehl mit Administratorrechten aus:" #. type: example #: guix-git/doc/guix.texi:1307 #, no-wrap msgid "semodule -i /var/guix/profiles/per-user/root/current-guix/share/selinux/guix-daemon.cil\n" msgstr "semodule -i /var/guix/profiles/per-user/root/current-guix/share/selinux/guix-daemon.cil\n" #. type: Plain text #: guix-git/doc/guix.texi:1311 msgid "Then, as root, relabel the file system, possibly after making it writable:" msgstr "Dann kennzeichnen Sie als Administratornutzer das Dateisystem neu. Womöglich müssen Sie sich zuerst Schreibrechte darauf verschaffen:" #. type: example #: guix-git/doc/guix.texi:1315 #, no-wrap msgid "" "mount -o remount,rw /gnu/store\n" "restorecon -R /gnu /var/guix\n" msgstr "" "mount -o remount,rw /gnu/store\n" "restorecon -R /gnu /var/guix\n" #. type: Plain text #: guix-git/doc/guix.texi:1320 msgid "At this point you can start or restart @command{guix-daemon}; on a distribution that uses systemd as its service manager, you can do that with:" msgstr "Nun ist die Zeit gekommen, @command{guix-daemon} zu starten oder neu zu starten. Wenn Ihre Distribution systemd zur Diensteverwaltung benutzt, dann geht das so:" #. type: example #: guix-git/doc/guix.texi:1323 #, no-wrap msgid "systemctl restart guix-daemon\n" msgstr "systemctl restart guix-daemon\n" #. type: Plain text #: guix-git/doc/guix.texi:1329 msgid "Once the policy is installed, the file system has been relabeled, and the daemon has been restarted, it should be running in the @code{guix_daemon_t} context. You can confirm this with the following command:" msgstr "Sobald die Richtlinie installiert ist, das Dateisystem neu gekennzeichnet wurde und der Daemon neugestartet wurde, sollte er im Kontext @code{guix_daemon_t} laufen. Sie können dies mit dem folgenden Befehl nachprüfen:" #. type: example #: guix-git/doc/guix.texi:1332 #, no-wrap msgid "ps -Zax | grep guix-daemon\n" msgstr "ps -Zax | grep guix-daemon\n" #. type: Plain text #: guix-git/doc/guix.texi:1337 msgid "Monitor the SELinux log files as you run a command like @code{guix build hello} to convince yourself that SELinux permits all necessary operations." msgstr "Beobachten Sie die Protokolldateien von SELinux, wenn Sie einen Befehl wie @code{guix build hello} ausführen, um sich zu überzeugen, dass SELinux alle notwendigen Operationen gestattet." #. type: cindex #: guix-git/doc/guix.texi:1339 #, no-wrap msgid "SELinux, limitations" msgstr "SELinux, Einschränkungen" #. type: Plain text #: guix-git/doc/guix.texi:1344 msgid "This policy is not perfect. Here is a list of limitations or quirks that should be considered when deploying the provided SELinux policy for the Guix daemon." msgstr "Diese Richtlinie ist nicht perfekt. Im Folgenden finden Sie eine Liste von Einschränkungen oder merkwürdigen Verhaltensweisen, die bedacht werden sollten, wenn man die mitgelieferte SELinux-Richtlinie für den Guix-Daemon einspielt." #. type: enumerate #: guix-git/doc/guix.texi:1351 msgid "@code{guix_daemon_socket_t} isn’t actually used. None of the socket operations involve contexts that have anything to do with @code{guix_daemon_socket_t}. It doesn’t hurt to have this unused label, but it would be preferable to define socket rules for only this label." msgstr "@code{guix_daemon_socket_t} wird nicht wirklich benutzt. Keine der Socket-Operationen benutzt Kontexte, die irgendetwas mit @code{guix_daemon_socket_t} zu tun haben. Es schadet nicht, diese ungenutzte Kennzeichnung zu haben, aber es wäre besser, für die Kennzeichnung auch Socket-Regeln festzulegen." #. type: enumerate #: guix-git/doc/guix.texi:1362 msgid "@code{guix gc} cannot access arbitrary links to profiles. By design, the file label of the destination of a symlink is independent of the file label of the link itself. Although all profiles under @file{$localstatedir} are labelled, the links to these profiles inherit the label of the directory they are in. For links in the user’s home directory this will be @code{user_home_t}. But for links from the root user’s home directory, or @file{/tmp}, or the HTTP server’s working directory, etc, this won’t work. @code{guix gc} would be prevented from reading and following these links." msgstr "@code{guix gc} kann nicht auf beliebige Verknüpfungen zu Profilen zugreifen. Die Kennzeichnung des Ziels einer symbolischen Verknüpfung ist notwendigerweise unabhängig von der Dateikennzeichnung der Verknüpfung. Obwohl alle Profile unter @file{$localstatedir} gekennzeichnet sind, erben die Verknüpfungen auf diese Profile die Kennzeichnung desjenigen Verzeichnisses, in dem sie sich befinden. Für Verknüpfungen im Persönlichen Verzeichnis des Benutzers ist das @code{user_home_t}, aber für Verknüpfungen aus dem Persönlichen Verzeichnis des Administratornutzers, oder @file{/tmp}, oder das Arbeitsverzeichnis des HTTP-Servers, etc., funktioniert das nicht. @code{guix gc} würde es nicht gestattet, diese Verknüpfungen auszulesen oder zu verfolgen." #. type: enumerate #: guix-git/doc/guix.texi:1367 msgid "The daemon’s feature to listen for TCP connections might no longer work. This might require extra rules, because SELinux treats network sockets differently from files." msgstr "Die vom Daemon gebotene Funktionalität, auf TCP-Verbindungen zu lauschen, könnte nicht mehr funktionieren. Dies könnte zusätzliche Regeln brauchen, weil SELinux Netzwerk-Sockets anders behandelt als Dateien." #. type: enumerate #: guix-git/doc/guix.texi:1378 msgid "Currently all files with a name matching the regular expression @code{/gnu/store/.+-(guix-.+|profile)/bin/guix-daemon} are assigned the label @code{guix_daemon_exec_t}; this means that @emph{any} file with that name in any profile would be permitted to run in the @code{guix_daemon_t} domain. This is not ideal. An attacker could build a package that provides this executable and convince a user to install and run it, which lifts it into the @code{guix_daemon_t} domain. At that point SELinux could not prevent it from accessing files that are allowed for processes in that domain." msgstr "Derzeit wird allen Dateien mit einem Namen, der zum regulären Ausdruck @code{/gnu/store/.+-(guix-.+|profile)/bin/guix-daemon} passt, die Kennzeichnung @code{guix_daemon_exec_t} zugewiesen, wodurch @emph{jeder beliebigen} Datei mit diesem Namen in irgendeinem Profil gestattet wäre, in der Domäne @code{guix_daemon_t} ausgeführt zu werden. Das ist nicht ideal. Ein Angreifer könnte ein Paket erstellen, dass solch eine ausführbare Datei enthält, und den Nutzer überzeugen, es zu installieren und auszuführen. Dadurch käme es in die Domäne @code{guix_daemon_t}. Ab diesem Punkt könnte SELinux nicht mehr verhindern, dass es auf Dateien zugreift, auf die Prozesse in dieser Domäne zugreifen dürfen." #. type: enumerate #: guix-git/doc/guix.texi:1383 msgid "You will need to relabel the store directory after all upgrades to @file{guix-daemon}, such as after running @code{guix pull}. Assuming the store is in @file{/gnu}, you can do this with @code{restorecon -vR /gnu}, or by other means provided by your operating system." msgstr "Nach jeder Aktualisierung des @file{guix-daemon}, z.B.@: nachdem Sie @code{guix pull} ausgeführt haben, müssen Sie das Store-Verzeichnis neu kennzeichnen. Angenommen, der Store befindet sich unter @file{/gnu}, dann können Sie das mit @code{restorecon -vR /gnu} bewerkstelligen oder durch andere Mittel, die Ihr Betriebssystem Ihnen zur Verfügung stellt." #. type: enumerate #: guix-git/doc/guix.texi:1391 msgid "We could generate a much more restrictive policy at installation time, so that only the @emph{exact} file name of the currently installed @code{guix-daemon} executable would be labelled with @code{guix_daemon_exec_t}, instead of using a broad regular expression. The downside is that root would have to install or upgrade the policy at installation time whenever the Guix package that provides the effectively running @code{guix-daemon} executable is upgraded." msgstr "Wir könnten zum Zeitpunkt der Installation eine wesentlich restriktivere Richtlinie generieren, für die nur @emph{genau derselbe} Dateiname des gerade installierten @code{guix-daemon}-Programms als @code{guix_daemon_exec_t} gekennzeichnet würde, statt einen vieles umfassenden regulären Ausdruck zu benutzen. Aber dann müsste der Administratornutzer zum Zeitpunkt der Installation jedes Mal die Richtlinie installieren oder aktualisieren müssen, sobald das Guix-Paket aktualisiert wird, dass das tatsächlich in Benutzung befindliche @code{guix-daemon}-Programm enthält." #. type: section #: guix-git/doc/guix.texi:1394 #, no-wrap msgid "Invoking @command{guix-daemon}" msgstr "Aufruf von @command{guix-daemon}" #. type: command{#1} #: guix-git/doc/guix.texi:1395 #, no-wrap msgid "guix-daemon" msgstr "guix-daemon" #. type: Plain text #: guix-git/doc/guix.texi:1400 msgid "The @command{guix-daemon} program implements all the functionality to access the store. This includes launching build processes, running the garbage collector, querying the availability of a build result, etc. It is normally run as @code{root} like this:" msgstr "Das Programm @command{guix-daemon} implementiert alle Funktionalitäten, um auf den Store zuzugreifen. Dazu gehört das Starten von Erstellungsprozessen, das Ausführen des Müllsammlers, das Abfragen, ob ein Erstellungsergebnis verfügbar ist, etc. Normalerweise wird er so als Administratornutzer (@code{root}) gestartet:" #. type: cindex #: guix-git/doc/guix.texi:1405 #, no-wrap msgid "socket activation, for @command{guix-daemon}" msgstr "Socket-Aktivierung, bei @command{guix-daemon}" #. type: Plain text #: guix-git/doc/guix.texi:1409 msgid "This daemon can also be started following the systemd ``socket activation'' protocol (@pxref{Service De- and Constructors, @code{make-systemd-constructor},, shepherd, The GNU Shepherd Manual})." msgstr "Sie können den Daemon auch über das systemd-Protokoll zur „Socket-Aktivierung“ starten (siehe @ref{Service De- and Constructors, @code{make-systemd-constructor},, shepherd, The GNU Shepherd Manual})." #. type: Plain text #: guix-git/doc/guix.texi:1411 msgid "For details on how to set it up, @pxref{Setting Up the Daemon}." msgstr "Details, wie Sie ihn einrichten, finden Sie im Abschnitt @ref{Setting Up the Daemon}." #. type: cindex #: guix-git/doc/guix.texi:1413 #, no-wrap msgid "container, build environment" msgstr "Container, Erstellungsumgebung" #. type: cindex #: guix-git/doc/guix.texi:1415 guix-git/doc/guix.texi:2962 #: guix-git/doc/guix.texi:3879 guix-git/doc/guix.texi:16207 #, no-wrap msgid "reproducible builds" msgstr "Reproduzierbare Erstellungen" #. type: Plain text #: guix-git/doc/guix.texi:1427 msgid "By default, @command{guix-daemon} launches build processes under different UIDs, taken from the build group specified with @option{--build-users-group}. In addition, each build process is run in a chroot environment that only contains the subset of the store that the build process depends on, as specified by its derivation (@pxref{Programming Interface, derivation}), plus a set of specific system directories. By default, the latter contains @file{/dev} and @file{/dev/pts}. Furthermore, on GNU/Linux, the build environment is a @dfn{container}: in addition to having its own file system tree, it has a separate mount name space, its own PID name space, network name space, etc. This helps achieve reproducible builds (@pxref{Features})." msgstr "Standardmäßig führt @command{guix-daemon} Erstellungsprozesse mit unterschiedlichen UIDs aus, die aus der Erstellungsgruppe stammen, deren Name mit @option{--build-users-group} übergeben wurde. Außerdem läuft jeder Erstellungsprozess in einer chroot-Umgebung, die nur die Teilmenge des Stores enthält, von der der Erstellungsprozess abhängt, entsprechend seiner Ableitung (siehe @ref{Programming Interface, Ableitungen}), und ein paar bestimmte Systemverzeichnisse, darunter standardmäßig auch @file{/dev} und @file{/dev/pts}. Zudem ist die Erstellungsumgebung auf GNU/Linux eine isolierte Umgebung, d.h.@: ein @dfn{Container}: Nicht nur hat sie ihren eigenen Dateisystembaum, sie hat auch einen separaten Namensraum zum Einhängen von Dateisystemen, ihren eigenen Namensraum für PIDs, für Netzwerke, etc. Dies hilft dabei, reproduzierbare Erstellungen zu garantieren (siehe @ref{Features})." #. type: Plain text #: guix-git/doc/guix.texi:1433 msgid "When the daemon performs a build on behalf of the user, it creates a build directory under @file{/tmp} or under the directory specified by its @env{TMPDIR} environment variable. This directory is shared with the container for the duration of the build, though within the container, the build tree is always called @file{/tmp/guix-build-@var{name}.drv-0}." msgstr "Wenn der Daemon im Auftrag des Nutzers eine Erstellung durchführt, erzeugt er ein Erstellungsverzeichnis, entweder in @file{/tmp} oder im Verzeichnis, das durch die Umgebungsvariable @env{TMPDIR} angegeben wurde. Dieses Verzeichnis wird mit dem Container geteilt, solange die Erstellung noch läuft, allerdings trägt es im Container stattdessen immer den Namen „/tmp/guix-build-NAME.drv-0“." #. type: Plain text #: guix-git/doc/guix.texi:1437 msgid "The build directory is automatically deleted upon completion, unless the build failed and the client specified @option{--keep-failed} (@pxref{Common Build Options, @option{--keep-failed}})." msgstr "Nach Abschluss der Erstellung wird das Erstellungsverzeichnis automatisch entfernt, außer wenn die Erstellung fehlgeschlagen ist und der Client @option{--keep-failed} angegeben hat (siehe @ref{Common Build Options, @option{--keep-failed}})." #. type: Plain text #: guix-git/doc/guix.texi:1443 msgid "The daemon listens for connections and spawns one sub-process for each session started by a client (one of the @command{guix} sub-commands). The @command{guix processes} command allows you to get an overview of the activity on your system by viewing each of the active sessions and clients. @xref{Invoking guix processes}, for more information." msgstr "Der Daemon lauscht auf Verbindungen und erstellt jeweils einen Unterprozess für jede von einem Client begonnene Sitzung (d.h.@: von einem der @command{guix}-Unterbefehle). Der Befehl @command{guix processes} zeigt Ihnen eine Übersicht solcher Systemaktivitäten; damit werden Ihnen alle aktiven Sitzungen und Clients gezeigt. Weitere Informationen finden Sie unter @ref{Invoking guix processes}." #. type: Plain text #: guix-git/doc/guix.texi:1445 msgid "The following command-line options are supported:" msgstr "Die folgenden Befehlszeilenoptionen werden unterstützt:" #. type: item #: guix-git/doc/guix.texi:1447 #, no-wrap msgid "--build-users-group=@var{group}" msgstr "--build-users-group=@var{Gruppe}" #. type: table #: guix-git/doc/guix.texi:1450 msgid "Take users from @var{group} to run build processes (@pxref{Setting Up the Daemon, build users})." msgstr "Verwende die Benutzerkonten aus der @var{Gruppe}, um Erstellungsprozesse auszuführen (siehe @ref{Setting Up the Daemon, Erstellungsbenutzer})." #. type: item #: guix-git/doc/guix.texi:1451 guix-git/doc/guix.texi:12939 #, no-wrap msgid "--no-substitutes" msgstr "--no-substitutes" #. type: cindex #: guix-git/doc/guix.texi:1452 guix-git/doc/guix.texi:2974 #: guix-git/doc/guix.texi:3616 #, no-wrap msgid "substitutes" msgstr "Substitute" #. type: table #: guix-git/doc/guix.texi:1456 guix-git/doc/guix.texi:12943 msgid "Do not use substitutes for build products. That is, always build things locally instead of allowing downloads of pre-built binaries (@pxref{Substitutes})." msgstr "Benutze keine Substitute für Erstellungsergebnisse. Das heißt, dass alle Objekte lokal erstellt werden müssen, und kein Herunterladen von vorab erstellten Binärdateien erlaubt ist (siehe @ref{Substitutes})." #. type: table #: guix-git/doc/guix.texi:1460 msgid "When the daemon runs with @option{--no-substitutes}, clients can still explicitly enable substitution @i{via} the @code{set-build-options} remote procedure call (@pxref{The Store})." msgstr "Wenn der Daemon mit @option{--no-substitutes} ausgeführt wird, können Clients trotzdem Substitute explizit aktivieren über den entfernten Prozeduraufruf @code{set-build-options} (siehe @ref{The Store})." #. type: anchor{#1} #: guix-git/doc/guix.texi:1462 msgid "daemon-substitute-urls" msgstr "daemon-substitute-urls" #. type: item #: guix-git/doc/guix.texi:1462 guix-git/doc/guix.texi:12926 #: guix-git/doc/guix.texi:15609 guix-git/doc/guix.texi:16359 #: guix-git/doc/guix.texi:16589 #, no-wrap msgid "--substitute-urls=@var{urls}" msgstr "--substitute-urls=@var{URLs}" #. type: table #: guix-git/doc/guix.texi:1466 msgid "Consider @var{urls} the default whitespace-separated list of substitute source URLs. When this option is omitted, @indicateurl{@value{SUBSTITUTE-URLS}} is used." msgstr "@var{URLs} als standardmäßige, leerzeichengetrennte Liste der Quell-URLs für Substitute benutzen. Wenn diese Befehlszeilenoption @emph{nicht} angegeben wird, wird @indicateurl{@value{SUBSTITUTE-URLS}} verwendet." #. type: table #: guix-git/doc/guix.texi:1469 msgid "This means that substitutes may be downloaded from @var{urls}, as long as they are signed by a trusted signature (@pxref{Substitutes})." msgstr "Das hat zur Folge, dass Substitute von den @var{URLs} heruntergeladen werden können, solange sie mit einer Signatur versehen sind, der vertraut wird (siehe @ref{Substitutes})." #. type: table #: guix-git/doc/guix.texi:1472 msgid "@xref{Getting Substitutes from Other Servers}, for more information on how to configure the daemon to get substitutes from other servers." msgstr "Siehe @ref{Getting Substitutes from Other Servers} für weitere Informationen, wie der Daemon konfiguriert werden kann, um Substitute von anderen Servern zu beziehen." #. type: item #: guix-git/doc/guix.texi:1474 guix-git/doc/guix.texi:12962 #, no-wrap msgid "--no-offload" msgstr "--no-offload" #. type: table #: guix-git/doc/guix.texi:1478 guix-git/doc/guix.texi:12966 msgid "Do not use offload builds to other machines (@pxref{Daemon Offload Setup}). That is, always build things locally instead of offloading builds to remote machines." msgstr "Nicht versuchen, an andere Maschinen ausgelagerte Erstellungen zu benutzen (siehe @ref{Daemon Offload Setup}). Somit wird lokal erstellt, statt Erstellungen auf entfernte Maschinen auszulagern." #. type: item #: guix-git/doc/guix.texi:1479 #, no-wrap msgid "--cache-failures" msgstr "--cache-failures" #. type: table #: guix-git/doc/guix.texi:1481 msgid "Cache build failures. By default, only successful builds are cached." msgstr "Fehler bei der Erstellung zwischenspeichern. Normalerweise werden nur erfolgreiche Erstellungen gespeichert." #. type: table #: guix-git/doc/guix.texi:1486 msgid "When this option is used, @command{guix gc --list-failures} can be used to query the set of store items marked as failed; @command{guix gc --clear-failures} removes store items from the set of cached failures. @xref{Invoking guix gc}." msgstr "Wenn diese Befehlszeilenoption benutzt wird, kann @command{guix gc --list-failures} benutzt werden, um die Menge an Store-Objekten abzufragen, die als Fehlschläge markiert sind; @command{guix gc --clear-failures} entfernt Store-Objekte aus der Menge zwischengespeicherter Fehlschläge. Siehe @ref{Invoking guix gc}." #. type: item #: guix-git/doc/guix.texi:1487 guix-git/doc/guix.texi:12992 #, no-wrap msgid "--cores=@var{n}" msgstr "--cores=@var{n}" #. type: itemx #: guix-git/doc/guix.texi:1488 guix-git/doc/guix.texi:12993 #, no-wrap msgid "-c @var{n}" msgstr "-c @var{n}" #. type: table #: guix-git/doc/guix.texi:1491 msgid "Use @var{n} CPU cores to build each derivation; @code{0} means as many as available." msgstr "@var{n} CPU-Kerne zum Erstellen jeder Ableitung benutzen; @code{0} heißt, so viele wie verfügbar sind." #. type: table #: guix-git/doc/guix.texi:1495 msgid "The default value is @code{0}, but it may be overridden by clients, such as the @option{--cores} option of @command{guix build} (@pxref{Invoking guix build})." msgstr "Der Vorgabewert ist @code{0}, jeder Client kann jedoch eine abweichende Anzahl vorgeben, zum Beispiel mit der Befehlszeilenoption @option{--cores} von @command{guix build} (siehe @ref{Invoking guix build})." #. type: table #: guix-git/doc/guix.texi:1499 msgid "The effect is to define the @env{NIX_BUILD_CORES} environment variable in the build process, which can then use it to exploit internal parallelism---for instance, by running @code{make -j$NIX_BUILD_CORES}." msgstr "Dadurch wird die Umgebungsvariable @env{NIX_BUILD_CORES} im Erstellungsprozess definiert, welcher sie benutzen kann, um intern parallele Ausführungen zuzulassen@tie{}– zum Beispiel durch Nutzung von @code{make -j$NIX_BUILD_CORES}." #. type: item #: guix-git/doc/guix.texi:1500 guix-git/doc/guix.texi:12997 #, no-wrap msgid "--max-jobs=@var{n}" msgstr "--max-jobs=@var{n}" #. type: itemx #: guix-git/doc/guix.texi:1501 guix-git/doc/guix.texi:12998 #, no-wrap msgid "-M @var{n}" msgstr "-M @var{n}" #. type: table #: guix-git/doc/guix.texi:1506 msgid "Allow at most @var{n} build jobs in parallel. The default value is @code{1}. Setting it to @code{0} means that no builds will be performed locally; instead, the daemon will offload builds (@pxref{Daemon Offload Setup}), or simply fail." msgstr "Höchstenss @var{n} Erstellungsaufträge parallel bearbeiten. Der Vorgabewert liegt bei @code{1}. Wird er auf @code{0} gesetzt, werden keine Erstellungen lokal durchgeführt, stattdessen lagert der Daemon sie nur aus (siehe @ref{Daemon Offload Setup}) oder sie schlagen einfach fehl." #. type: item #: guix-git/doc/guix.texi:1507 guix-git/doc/guix.texi:12967 #, no-wrap msgid "--max-silent-time=@var{seconds}" msgstr "--max-silent-time=@var{Sekunden}" #. type: table #: guix-git/doc/guix.texi:1510 guix-git/doc/guix.texi:12970 msgid "When the build or substitution process remains silent for more than @var{seconds}, terminate it and report a build failure." msgstr "Wenn der Erstellungs- oder Substitutionsprozess länger als @var{Sekunden}-lang keine Ausgabe erzeugt, wird er abgebrochen und ein Fehler beim Erstellen gemeldet." #. type: table #: guix-git/doc/guix.texi:1512 msgid "The default value is @code{3600} (one hour)." msgstr "Der Vorgabewert ist @code{3600} (eine Stunde)." #. type: table #: guix-git/doc/guix.texi:1515 msgid "The value specified here can be overridden by clients (@pxref{Common Build Options, @option{--max-silent-time}})." msgstr "Clients können einen anderen Wert als den hier angegebenen verwenden lassen (siehe @ref{Common Build Options, @option{--max-silent-time}})." #. type: item #: guix-git/doc/guix.texi:1516 guix-git/doc/guix.texi:12974 #, no-wrap msgid "--timeout=@var{seconds}" msgstr "--timeout=@var{Sekunden}" #. type: table #: guix-git/doc/guix.texi:1519 guix-git/doc/guix.texi:12977 msgid "Likewise, when the build or substitution process lasts for more than @var{seconds}, terminate it and report a build failure." msgstr "Entsprechend wird hier der Erstellungs- oder Substitutionsprozess abgebrochen und als Fehlschlag gemeldet, wenn er mehr als @var{Sekunden}-lang dauert." #. type: table #: guix-git/doc/guix.texi:1521 msgid "The default value is 24 hours." msgstr "Vorgegeben sind 24 Stunden." #. type: table #: guix-git/doc/guix.texi:1524 msgid "The value specified here can be overridden by clients (@pxref{Common Build Options, @option{--timeout}})." msgstr "Clients können einen anderen Wert verwenden lassen (siehe @ref{Common Build Options, @option{--timeout}})." #. type: item #: guix-git/doc/guix.texi:1525 #, no-wrap msgid "--rounds=@var{N}" msgstr "--rounds=@var{N}" #. type: table #: guix-git/doc/guix.texi:1530 msgid "Build each derivation @var{n} times in a row, and raise an error if consecutive build results are not bit-for-bit identical. Note that this setting can be overridden by clients such as @command{guix build} (@pxref{Invoking guix build})." msgstr "Jede Ableitung @var{n}-mal hintereinander erstellen und einen Fehler melden, wenn nacheinander ausgewertete Erstellungsergebnisse nicht Bit für Bit identisch sind. Beachten Sie, dass Clients wie @command{guix build} einen anderen Wert verwenden lassen können (siehe @ref{Invoking guix build})." #. type: table #: guix-git/doc/guix.texi:1534 guix-git/doc/guix.texi:12961 #: guix-git/doc/guix.texi:13645 msgid "When used in conjunction with @option{--keep-failed}, the differing output is kept in the store, under @file{/gnu/store/@dots{}-check}. This makes it easy to look for differences between the two results." msgstr "Wenn dies zusammen mit @option{--keep-failed} benutzt wird, bleiben die sich unterscheidenden Ausgaben im Store unter dem Namen @file{/gnu/store/…-check}. Dadurch können Unterschiede zwischen den beiden Ergebnissen leicht erkannt werden." #. type: item #: guix-git/doc/guix.texi:1535 #, no-wrap msgid "--debug" msgstr "--debug" #. type: table #: guix-git/doc/guix.texi:1537 msgid "Produce debugging output." msgstr "Informationen zur Fehlersuche ausgeben." #. type: table #: guix-git/doc/guix.texi:1541 msgid "This is useful to debug daemon start-up issues, but then it may be overridden by clients, for example the @option{--verbosity} option of @command{guix build} (@pxref{Invoking guix build})." msgstr "Dies ist nützlich, um Probleme beim Starten des Daemons nachzuvollziehen; Clients könn aber auch ein abweichenden Wert verwenden lassen, zum Beispiel mit der Befehlszeilenoption @option{--verbosity} von @command{guix build} (siehe @ref{Invoking guix build})." #. type: item #: guix-git/doc/guix.texi:1542 #, no-wrap msgid "--chroot-directory=@var{dir}" msgstr "--chroot-directory=@var{Verzeichnis}" #. type: table #: guix-git/doc/guix.texi:1544 msgid "Add @var{dir} to the build chroot." msgstr "Füge das @var{Verzeichnis} zum chroot von Erstellungen hinzu." #. type: table #: guix-git/doc/guix.texi:1550 msgid "Doing this may change the result of build processes---for instance if they use optional dependencies found in @var{dir} when it is available, and not otherwise. For that reason, it is not recommended to do so. Instead, make sure that each derivation declares all the inputs that it needs." msgstr "Dadurch kann sich das Ergebnis von Erstellungsprozessen ändern@tie{}– zum Beispiel, wenn diese optionale Abhängigkeiten aus dem @var{Verzeichnis} verwenden, wenn sie verfügbar sind, und nicht, wenn es fehlt. Deshalb ist es nicht empfohlen, dass Sie diese Befehlszeilenoption verwenden, besser sollten Sie dafür sorgen, dass jede Ableitung alle von ihr benötigten Eingabgen deklariert." #. type: item #: guix-git/doc/guix.texi:1551 #, no-wrap msgid "--disable-chroot" msgstr "--disable-chroot" #. type: table #: guix-git/doc/guix.texi:1553 msgid "Disable chroot builds." msgstr "Erstellungen ohne chroot durchführen." #. type: table #: guix-git/doc/guix.texi:1558 msgid "Using this option is not recommended since, again, it would allow build processes to gain access to undeclared dependencies. It is necessary, though, when @command{guix-daemon} is running under an unprivileged user account." msgstr "Diese Befehlszeilenoption zu benutzen, wird nicht empfohlen, denn auch dadurch bekämen Erstellungsprozesse Zugriff auf nicht deklarierte Abhängigkeiten. Sie ist allerdings unvermeidlich, wenn @command{guix-daemon} auf einem Benutzerkonto ohne ausreichende Berechtigungen ausgeführt wird." #. type: item #: guix-git/doc/guix.texi:1559 #, no-wrap msgid "--log-compression=@var{type}" msgstr "--log-compression=@var{Typ}" #. type: table #: guix-git/doc/guix.texi:1562 msgid "Compress build logs according to @var{type}, one of @code{gzip}, @code{bzip2}, or @code{none}." msgstr "Erstellungsprotokolle werden entsprechend dem @var{Typ} komprimiert, der entweder @code{gzip}, @code{bzip2} oder @code{none} (für keine Kompression) sein muss." #. type: table #: guix-git/doc/guix.texi:1566 msgid "Unless @option{--lose-logs} is used, all the build logs are kept in the @var{localstatedir}. To save space, the daemon automatically compresses them with gzip by default." msgstr "Sofern nicht @option{--lose-logs} angegeben wurde, werden alle Erstellungsprotokolle in der @var{localstatedir} gespeichert. Um Platz zu sparen, komprimiert sie der Daemon standardmäßig automatisch mit gzip." #. type: item #: guix-git/doc/guix.texi:1567 #, no-wrap msgid "--discover[=yes|no]" msgstr "--discover[=yes|no]" #. type: table #: guix-git/doc/guix.texi:1570 guix-git/doc/guix.texi:19726 msgid "Whether to discover substitute servers on the local network using mDNS and DNS-SD." msgstr "Ob im lokalen Netzwerk laufende Substitutserver mit mDNS und DNS-SD ermittelt werden sollen oder nicht." #. type: table #: guix-git/doc/guix.texi:1573 msgid "This feature is still experimental. However, here are a few considerations." msgstr "Diese Funktionalität ist noch experimentell. Trotzdem sollten Sie bedenken:" #. type: enumerate #: guix-git/doc/guix.texi:1577 msgid "It might be faster/less expensive than fetching from remote servers;" msgstr "Es könnte schneller bzw.@: günstiger sein, als Substitute von entfernten Servern zu beziehen." #. type: enumerate #: guix-git/doc/guix.texi:1580 msgid "There are no security risks, only genuine substitutes will be used (@pxref{Substitute Authentication});" msgstr "Es gibt keine Sicherheitsrisiken, weil nur echte Substitute benutzt werden können (siehe @ref{Substitute Authentication})." #. type: enumerate #: guix-git/doc/guix.texi:1584 msgid "An attacker advertising @command{guix publish} on your LAN cannot serve you malicious binaries, but they can learn what software you’re installing;" msgstr "Wenn ein Angreifer Ihnen sein @command{guix publish} in Ihrem LAN mitteilt, kann er Ihnen keine bösartigen Programmdateien unterjubeln, aber er kann lernen, welche Software Sie installieren." #. type: enumerate #: guix-git/doc/guix.texi:1587 msgid "Servers may serve substitute over HTTP, unencrypted, so anyone on the LAN can see what software you’re installing." msgstr "Server können Ihnen Substitute über unverschlüsseltes HTTP anbieten, wodurch auch jeder andere in Ihrem LAN vielleicht mitschneiden könnte, welche Software Sie installieren." #. type: table #: guix-git/doc/guix.texi:1591 msgid "It is also possible to enable or disable substitute server discovery at run-time by running:" msgstr "Das Erkennen von Substitutservern können Sie auch nachträglich zur Laufzeit an- oder abschalten („on“ oder „off“), indem Sie dies ausführen:" #. type: example #: guix-git/doc/guix.texi:1595 #, no-wrap msgid "" "herd discover guix-daemon on\n" "herd discover guix-daemon off\n" msgstr "" "herd discover guix-daemon on\n" "herd discover guix-daemon off\n" #. type: item #: guix-git/doc/guix.texi:1597 #, no-wrap msgid "--disable-deduplication" msgstr "--disable-deduplication" #. type: cindex #: guix-git/doc/guix.texi:1598 guix-git/doc/guix.texi:4368 #, no-wrap msgid "deduplication" msgstr "Deduplizieren" #. type: table #: guix-git/doc/guix.texi:1600 msgid "Disable automatic file ``deduplication'' in the store." msgstr "Automatische Dateien-„Deduplizierung“ im Store ausschalten." #. type: table #: guix-git/doc/guix.texi:1607 msgid "By default, files added to the store are automatically ``deduplicated'': if a newly added file is identical to another one found in the store, the daemon makes the new file a hard link to the other file. This can noticeably reduce disk usage, at the expense of slightly increased input/output load at the end of a build process. This option disables this optimization." msgstr "Standardmäßig werden zum Store hinzugefügte Objekte automatisch „dedupliziert“: Wenn eine neue Datei mit einer anderen im Store übereinstimmt, wird die neue Datei stattdessen als harte Verknüpfung auf die andere Datei angelegt. Dies reduziert den Speicherverbrauch auf der Platte merklich, jedoch steigt andererseits die Auslastung bei der Ein-/Ausgabe im Erstellungsprozess geringfügig. Durch diese Option wird keine solche Optimierung durchgeführt." #. type: item #: guix-git/doc/guix.texi:1608 #, no-wrap msgid "--gc-keep-outputs[=yes|no]" msgstr "--gc-keep-outputs[=yes|no]" #. type: table #: guix-git/doc/guix.texi:1611 msgid "Tell whether the garbage collector (GC) must keep outputs of live derivations." msgstr "Gibt an, ob der Müllsammler (Garbage Collector, GC) die Ausgaben lebendiger Ableitungen behalten muss („yes“) oder nicht („no“)." #. type: cindex #: guix-git/doc/guix.texi:1612 guix-git/doc/guix.texi:4180 #, no-wrap msgid "GC roots" msgstr "GC-Wurzeln" #. type: cindex #: guix-git/doc/guix.texi:1613 guix-git/doc/guix.texi:4181 #, no-wrap msgid "garbage collector roots" msgstr "Müllsammlerwurzeln" #. type: table #: guix-git/doc/guix.texi:1619 msgid "When set to @code{yes}, the GC will keep the outputs of any live derivation available in the store---the @file{.drv} files. The default is @code{no}, meaning that derivation outputs are kept only if they are reachable from a GC root. @xref{Invoking guix gc}, for more on GC roots." msgstr "Für @code{yes} behält der Müllsammler die Ausgaben aller lebendigen Ableitungen im Store@tie{}– die @file{.drv}-Dateien. Der Vorgabewert ist aber @code{no}, so dass Ableitungsausgaben nur vorgehalten werden, wenn sie von einer Müllsammlerwurzel aus erreichbar sind. Siehe den Abschnitt @ref{Invoking guix gc} für weitere Informationen zu Müllsammlerwurzeln." #. type: item #: guix-git/doc/guix.texi:1620 #, no-wrap msgid "--gc-keep-derivations[=yes|no]" msgstr "--gc-keep-derivations[=yes|no]" #. type: table #: guix-git/doc/guix.texi:1623 msgid "Tell whether the garbage collector (GC) must keep derivations corresponding to live outputs." msgstr "Gibt an, ob der Müllsammler (GC) Ableitungen behalten muss („yes“), wenn sie lebendige Ausgaben haben, oder nicht („no“)." #. type: table #: guix-git/doc/guix.texi:1629 msgid "When set to @code{yes}, as is the case by default, the GC keeps derivations---i.e., @file{.drv} files---as long as at least one of their outputs is live. This allows users to keep track of the origins of items in their store. Setting it to @code{no} saves a bit of disk space." msgstr "Für @code{yes}, den Vorgabewert, behält der Müllsammler Ableitungen@tie{}– z.B.@: @file{.drv}-Dateien@tie{}–, solange zumindest eine ihrer Ausgaben lebendig ist. Dadurch können Nutzer den Ursprung der Dateien in ihrem Store nachvollziehen. Setzt man den Wert auf @code{no}, wird ein bisschen weniger Speicher auf der Platte verbraucht." #. type: table #: guix-git/doc/guix.texi:1638 msgid "In this way, setting @option{--gc-keep-derivations} to @code{yes} causes liveness to flow from outputs to derivations, and setting @option{--gc-keep-outputs} to @code{yes} causes liveness to flow from derivations to outputs. When both are set to @code{yes}, the effect is to keep all the build prerequisites (the sources, compiler, libraries, and other build-time tools) of live objects in the store, regardless of whether these prerequisites are reachable from a GC root. This is convenient for developers since it saves rebuilds or downloads." msgstr "Auf diese Weise überträgt sich, wenn @option{--gc-keep-derivations} auf @code{yes} steht, die Lebendigkeit von Ausgaben auf Ableitungen, und wenn @option{--gc-keep-outputs} auf @code{yes} steht, die Lebendigkeit von Ableitungen auf Ausgaben. Stehen beide auf @code{yes}, bleiben so alle Erstellungsvoraussetzungen wie Quelldateien, Compiler, Bibliotheken und andere Erstellungswerkzeuge lebendiger Objekte im Store erhalten, ob sie von einer Müllsammlerwurzel aus erreichbar sind oder nicht. Entwickler können sich so erneute Erstellungen oder erneutes Herunterladen sparen." #. type: item #: guix-git/doc/guix.texi:1639 #, no-wrap msgid "--impersonate-linux-2.6" msgstr "--impersonate-linux-2.6" #. type: table #: guix-git/doc/guix.texi:1642 msgid "On Linux-based systems, impersonate Linux 2.6. This means that the kernel's @command{uname} system call will report 2.6 as the release number." msgstr "Auf Linux-basierten Systemen wird hiermit vorgetäuscht, dass es sich um Linux 2.6 handeln würde, indem der Kernel für einen @command{uname}-Systemaufruf als Version der Veröffentlichung mit 2.6 antwortet." #. type: table #: guix-git/doc/guix.texi:1645 msgid "This might be helpful to build programs that (usually wrongfully) depend on the kernel version number." msgstr "Dies kann hilfreich sein, um Programme zu erstellen, die (normalerweise zu Unrecht) von der Kernel-Versionsnummer abhängen." #. type: item #: guix-git/doc/guix.texi:1646 #, no-wrap msgid "--lose-logs" msgstr "--lose-logs" #. type: table #: guix-git/doc/guix.texi:1649 msgid "Do not keep build logs. By default they are kept under @file{@var{localstatedir}/guix/log}." msgstr "Keine Protokolle der Erstellungen vorhalten. Normalerweise würden solche in @file{@var{localstatedir}/guix/log} gespeichert." #. type: item #: guix-git/doc/guix.texi:1650 guix-git/doc/guix.texi:4626 #: guix-git/doc/guix.texi:6230 guix-git/doc/guix.texi:6727 #: guix-git/doc/guix.texi:7233 guix-git/doc/guix.texi:13581 #: guix-git/doc/guix.texi:15636 guix-git/doc/guix.texi:15901 #: guix-git/doc/guix.texi:16595 guix-git/doc/guix.texi:43033 #, no-wrap msgid "--system=@var{system}" msgstr "--system=@var{System}" #. type: table #: guix-git/doc/guix.texi:1654 msgid "Assume @var{system} as the current system type. By default it is the architecture/kernel pair found at configure time, such as @code{x86_64-linux}." msgstr "Verwende @var{System} als aktuellen Systemtyp. Standardmäßig ist dies das Paar aus Befehlssatz und Kernel, welches beim Aufruf von @code{configure} erkannt wurde, wie zum Beispiel @code{x86_64-linux}." #. type: item #: guix-git/doc/guix.texi:1655 guix-git/doc/guix.texi:12606 #, no-wrap msgid "--listen=@var{endpoint}" msgstr "--listen=@var{Endpunkt}" #. type: table #: guix-git/doc/guix.texi:1660 msgid "Listen for connections on @var{endpoint}. @var{endpoint} is interpreted as the file name of a Unix-domain socket if it starts with @code{/} (slash sign). Otherwise, @var{endpoint} is interpreted as a host name or host name and port to listen to. Here are a few examples:" msgstr "Lausche am @var{Endpunkt} auf Verbindungen. Dabei wird der @var{Endpunkt} als Dateiname eines Unix-Sockets verstanden, wenn er mit einem @code{/} (Schrägstrich) beginnt. Andernfalls wird der @var{Endpunkt} als Rechnername (d.h.@: Hostname) oder als Rechnername-Port-Paar verstanden, auf dem gelauscht wird. Hier sind ein paar Beispiele:" #. type: item #: guix-git/doc/guix.texi:1662 #, no-wrap msgid "--listen=/gnu/var/daemon" msgstr "--listen=/gnu/var/daemon" #. type: table #: guix-git/doc/guix.texi:1665 msgid "Listen for connections on the @file{/gnu/var/daemon} Unix-domain socket, creating it if needed." msgstr "Lausche auf Verbindungen am Unix-Socket @file{/gnu/var/daemon}, falls nötig wird er dazu erstellt." #. type: item #: guix-git/doc/guix.texi:1666 #, no-wrap msgid "--listen=localhost" msgstr "--listen=localhost" #. type: cindex #: guix-git/doc/guix.texi:1667 guix-git/doc/guix.texi:11220 #, no-wrap msgid "daemon, remote access" msgstr "Daemon, Fernzugriff" #. type: cindex #: guix-git/doc/guix.texi:1668 guix-git/doc/guix.texi:11221 #, no-wrap msgid "remote access to the daemon" msgstr "Fernzugriff auf den Daemon" #. type: cindex #: guix-git/doc/guix.texi:1669 guix-git/doc/guix.texi:11222 #, no-wrap msgid "daemon, cluster setup" msgstr "Daemon, Einrichten auf Clustern" #. type: cindex #: guix-git/doc/guix.texi:1670 guix-git/doc/guix.texi:11223 #, no-wrap msgid "clusters, daemon setup" msgstr "Cluster, Einrichtung des Daemons" #. type: table #: guix-git/doc/guix.texi:1673 msgid "Listen for TCP connections on the network interface corresponding to @code{localhost}, on port 44146." msgstr "Lausche auf TCP-Verbindungen an der Netzwerkschnittstelle, die @code{localhost} entspricht, auf Port 44146." #. type: item #: guix-git/doc/guix.texi:1674 #, no-wrap msgid "--listen=128.0.0.42:1234" msgstr "--listen=128.0.0.42:1234" #. type: table #: guix-git/doc/guix.texi:1677 msgid "Listen for TCP connections on the network interface corresponding to @code{128.0.0.42}, on port 1234." msgstr "Lausche auf TCP-Verbindungen an der Netzwerkschnittstelle, die @code{128.0.0.42} entspricht, auf Port 1234." #. type: table #: guix-git/doc/guix.texi:1684 msgid "This option can be repeated multiple times, in which case @command{guix-daemon} accepts connections on all the specified endpoints. Users can tell client commands what endpoint to connect to by setting the @env{GUIX_DAEMON_SOCKET} environment variable (@pxref{The Store, @env{GUIX_DAEMON_SOCKET}})." msgstr "Diese Befehlszeilenoption kann mehrmals wiederholt werden. In diesem Fall akzeptiert @command{guix-daemon} Verbindungen auf allen angegebenen Endpunkten. Benutzer können bei Client-Befehlen angeben, mit welchem Endpunkt sie sich verbinden möchten, indem sie die Umgebungsvariable @env{GUIX_DAEMON_SOCKET} festlegen (siehe @ref{The Store, @env{GUIX_DAEMON_SOCKET}})." #. type: quotation #: guix-git/doc/guix.texi:1691 msgid "The daemon protocol is @emph{unauthenticated and unencrypted}. Using @option{--listen=@var{host}} is suitable on local networks, such as clusters, where only trusted nodes may connect to the build daemon. In other cases where remote access to the daemon is needed, we recommend using Unix-domain sockets along with SSH." msgstr "Das Daemon-Protokoll ist @emph{weder authentifiziert noch verschlüsselt}. Die Benutzung von @option{--listen=@var{Rechner}} eignet sich für lokale Netzwerke, wie z.B.@: in Rechen-Clustern, wo sich nur solche Knoten mit dem Daemon verbinden, denen man vertraut. In Situationen, wo ein Fernzugriff auf den Daemon durchgeführt wird, empfehlen wir, über Unix-Sockets in Verbindung mit SSH zuzugreifen." #. type: table #: guix-git/doc/guix.texi:1696 msgid "When @option{--listen} is omitted, @command{guix-daemon} listens for connections on the Unix-domain socket located at @file{@var{localstatedir}/guix/daemon-socket/socket}." msgstr "Wird @option{--listen} nicht angegeben, lauscht @command{guix-daemon} auf Verbindungen auf dem Unix-Socket, der sich unter @file{@var{localstatedir}/guix/daemon-socket/socket} befindet." #. type: Plain text #: guix-git/doc/guix.texi:1706 msgid "When using Guix on top of GNU/Linux distribution other than Guix System---a so-called @dfn{foreign distro}---a few additional steps are needed to get everything in place. Here are some of them." msgstr "Läuft Guix aufgesetzt auf einer GNU/Linux-Distribution außer Guix System@tie{}– einer sogenannten @dfn{Fremddistribution}@tie{}–, so sind ein paar zusätzliche Schritte bei der Einrichtung nötig. Hier finden Sie manche davon." #. type: anchor{#1} #: guix-git/doc/guix.texi:1710 msgid "locales-and-locpath" msgstr "locales-and-locpath" #. type: cindex #: guix-git/doc/guix.texi:1710 #, no-wrap msgid "locales, when not on Guix System" msgstr "Locales, nicht auf Guix System" #. type: vindex #: guix-git/doc/guix.texi:1711 guix-git/doc/guix.texi:18824 #, no-wrap msgid "LOCPATH" msgstr "LOCPATH" #. type: vindex #: guix-git/doc/guix.texi:1712 #, no-wrap msgid "GUIX_LOCPATH" msgstr "GUIX_LOCPATH" #. type: Plain text #: guix-git/doc/guix.texi:1717 msgid "Packages installed @i{via} Guix will not use the locale data of the host system. Instead, you must first install one of the locale packages available with Guix and then define the @env{GUIX_LOCPATH} environment variable:" msgstr "Über Guix installierte Pakete benutzen nicht die Daten zu Regions- und Spracheinstellungen (Locales) des Wirtssystems. Stattdessen müssen Sie erst eines der Locale-Pakete installieren, die für Guix verfügbar sind, und dann den Wert Ihrer Umgebungsvariablen @env{GUIX_LOCPATH} passend festlegen:" #. type: example #: guix-git/doc/guix.texi:1721 #, no-wrap msgid "" "$ guix install glibc-locales\n" "$ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale\n" msgstr "" "$ guix install glibc-locales\n" "$ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale\n" #. type: Plain text #: guix-git/doc/guix.texi:1733 msgid "Note that the @code{glibc-locales} package contains data for all the locales supported by the GNU@tie{}libc and weighs in at around 930@tie{}MiB@footnote{The size of the @code{glibc-locales} package is reduced down to about 213@tie{}MiB with store deduplication and further down to about 67@tie{}MiB when using a zstd-compressed Btrfs file system.}. If you only need a few locales, you can define your custom locales package via the @code{make-glibc-utf8-locales} procedure from the @code{(gnu packages base)} module. The following example defines a package containing the various Canadian UTF-8 locales known to the GNU@tie{}libc, that weighs around 14@tie{}MiB:" msgstr "Beachten Sie, dass das Paket @code{glibc-locales} Daten für alle von GNU@tie{}libc unterstützten Locales enthält und deswegen um die 930@tie{}MiB wiegt@footnote{Das @code{glibc-locales}-Paket fällt durch Deduplizierung im Store nur noch mit 213@tie{}MiB ins Gewicht und nimmt auf einem zstd-komprimierten Btrfs-Dateisystem dann nur 67@tie{}MiB weg.}. Wenn alles, was Sie brauchen, einige wenige Locales sind, können Sie Ihr eigenes Locale-Paket mit der Prozedur @code{make-glibc-utf8-locales} aus dem Modul @code{(gnu packages base)} definieren. Folgendes Beispiel definiert ein Paket mit den verschiedenen kanadischen UTF-8-Locales, die der GNU@tie{}libc bekannt sind, das nur um die 14@tie{}MiB schwer ist:" #. type: lisp #: guix-git/doc/guix.texi:1736 #, no-wrap msgid "" "(use-modules (gnu packages base))\n" "\n" msgstr "" "(use-modules (gnu packages base))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:1742 #, no-wrap msgid "" "(define my-glibc-locales\n" " (make-glibc-utf8-locales\n" " glibc\n" " #:locales (list \"en_CA\" \"fr_CA\" \"ik_CA\" \"iu_CA\" \"shs_CA\")\n" " #:name \"glibc-canadian-utf8-locales\"))\n" msgstr "" "(define my-glibc-locales\n" " (make-glibc-utf8-locales\n" " glibc\n" " #:locales (list \"en_CA\" \"fr_CA\" \"ik_CA\" \"iu_CA\" \"shs_CA\")\n" " #:name \"glibc-kanadische-utf8-locales\"))\n" #. type: Plain text #: guix-git/doc/guix.texi:1747 msgid "The @env{GUIX_LOCPATH} variable plays a role similar to @env{LOCPATH} (@pxref{Locale Names, @env{LOCPATH},, libc, The GNU C Library Reference Manual}). There are two important differences though:" msgstr "Die Variable @env{GUIX_LOCPATH} spielt eine ähnliche Rolle wie @env{LOCPATH} (siehe @ref{Locale Names, @env{LOCPATH},, libc, Referenzhandbuch der GNU-C-Bibliothek}). Es gibt jedoch zwei wichtige Unterschiede:" #. type: enumerate #: guix-git/doc/guix.texi:1754 msgid "@env{GUIX_LOCPATH} is honored only by the libc in Guix, and not by the libc provided by foreign distros. Thus, using @env{GUIX_LOCPATH} allows you to make sure the programs of the foreign distro will not end up loading incompatible locale data." msgstr "@env{GUIX_LOCPATH} wird nur von der libc in Guix beachtet und nicht der von Fremddistributionen bereitgestellten libc. Mit @env{GUIX_LOCPATH} können Sie daher sicherstellen, dass die Programme der Fremddistribution keine inkompatiblen Locale-Daten von Guix laden." #. type: enumerate #: guix-git/doc/guix.texi:1761 msgid "libc suffixes each entry of @env{GUIX_LOCPATH} with @code{/X.Y}, where @code{X.Y} is the libc version---e.g., @code{2.22}. This means that, should your Guix profile contain a mixture of programs linked against different libc version, each libc version will only try to load locale data in the right format." msgstr "libc hängt an jeden @env{GUIX_LOCPATH}-Eintrag @code{/X.Y} an, wobei @code{X.Y} die Version von libc ist@tie{}– z.B.@: @code{2.22}. Sollte Ihr Guix-Profil eine Mischung aus Programmen enthalten, die an verschiedene libc-Versionen gebunden sind, wird jede nur die Locale-Daten im richtigen Format zu laden versuchen." #. type: Plain text #: guix-git/doc/guix.texi:1765 msgid "This is important because the locale data format used by different libc versions may be incompatible." msgstr "Das ist wichtig, weil das Locale-Datenformat verschiedener libc-Versionen inkompatibel sein könnte." #. type: cindex #: guix-git/doc/guix.texi:1768 #, no-wrap msgid "name service switch, glibc" msgstr "Name Service Switch, glibc" #. type: cindex #: guix-git/doc/guix.texi:1769 #, no-wrap msgid "NSS (name service switch), glibc" msgstr "NSS (Name Service Switch), glibc" #. type: cindex #: guix-git/doc/guix.texi:1770 guix-git/doc/guix.texi:19467 #, no-wrap msgid "@abbr{nscd, name service cache daemon}" msgstr "@abbr{nscd, Name Service Cache Daemon}" #. type: Plain text #: guix-git/doc/guix.texi:1777 msgid "When using Guix on a foreign distro, we @emph{strongly recommend} that the system run the GNU C library's @dfn{name service cache daemon}, @command{nscd}, which should be listening on the @file{/var/run/nscd/socket} socket. Failing to do that, applications installed with Guix may fail to look up host names or user accounts, or may even crash. The next paragraphs explain why." msgstr "Wenn Sie Guix auf einer Fremddistribution verwenden, @emph{empfehlen wir stärkstens}, dass Sie den @dfn{Name Service Cache Daemon} der GNU-C-Bibliothek, @command{nscd}, laufen lassen, welcher auf dem Socket @file{/var/run/nscd/socket} lauschen sollte. Wenn Sie das nicht tun, könnten mit Guix installierte Anwendungen Probleme beim Auflösen von Hostnamen (d.h.@: Rechnernamen) oder Benutzerkonten haben, oder sogar abstürzen. Die nächsten Absätze erklären warum." #. type: file{#1} #: guix-git/doc/guix.texi:1778 #, no-wrap msgid "nsswitch.conf" msgstr "nsswitch.conf" #. type: Plain text #: guix-git/doc/guix.texi:1783 msgid "The GNU C library implements a @dfn{name service switch} (NSS), which is an extensible mechanism for ``name lookups'' in general: host name resolution, user accounts, and more (@pxref{Name Service Switch,,, libc, The GNU C Library Reference Manual})." msgstr "Die GNU-C-Bibliothek implementiert einen @dfn{Name Service Switch} (NSS), welcher einen erweiterbaren Mechanismus zur allgemeinen „Namensauflösung“ darstellt: Hostnamensauflösung, Benutzerkonten und weiteres (siehe @ref{Name Service Switch,,, libc, Referenzhandbuch der GNU-C-Bibliothek})." #. type: cindex #: guix-git/doc/guix.texi:1784 #, no-wrap msgid "Network information service (NIS)" msgstr "Network Information Service (NIS)" #. type: cindex #: guix-git/doc/guix.texi:1785 #, no-wrap msgid "NIS (Network information service)" msgstr "NIS (Network Information Service)" #. type: Plain text #: guix-git/doc/guix.texi:1794 msgid "Being extensible, the NSS supports @dfn{plugins}, which provide new name lookup implementations: for example, the @code{nss-mdns} plugin allow resolution of @code{.local} host names, the @code{nis} plugin allows user account lookup using the Network information service (NIS), and so on. These extra ``lookup services'' are configured system-wide in @file{/etc/nsswitch.conf}, and all the programs running on the system honor those settings (@pxref{NSS Configuration File,,, libc, The GNU C Reference Manual})." msgstr "Für die Erweiterbarkeit unterstützt der NSS @dfn{Plugins}, welche neue Implementierungen zur Namensauflösung bieten: Zum Beispiel ermöglicht das Plugin @code{nss-mdns} die Namensauflösung für @code{.local}-Hostnamen, das Plugin @code{nis} gestattet die Auflösung von Benutzerkonten über den Network Information Service (NIS) und so weiter. Diese zusätzlichen „Auflösungsdienste“ werden systemweit konfiguriert in @file{/etc/nsswitch.conf} und alle auf dem System laufenden Programme halten sich an diese Einstellungen (siehe @ref{NSS Configuration File,,, libc, GNU-C-Referenzhandbuch})." #. type: Plain text #: guix-git/doc/guix.texi:1804 msgid "When they perform a name lookup---for instance by calling the @code{getaddrinfo} function in C---applications first try to connect to the nscd; on success, nscd performs name lookups on their behalf. If the nscd is not running, then they perform the name lookup by themselves, by loading the name lookup services into their own address space and running it. These name lookup services---the @file{libnss_*.so} files---are @code{dlopen}'d, but they may come from the host system's C library, rather than from the C library the application is linked against (the C library coming from Guix)." msgstr "Wenn sie eine Namensauflösung durchführen@tie{}– zum Beispiel, indem sie die @code{getaddrinfo}-Funktion in C aufrufen@tie{}–, versuchen die Anwendungen als Erstes, sich mit dem nscd zu verbinden; ist dies erfolgreich, führt nscd für sie die weiteren Namensauflösungen durch. Falls nscd nicht läuft, führen sie selbst die Namensauflösungen durch, indem sie die Namensauflösungsdienste in ihren eigenen Adressraum laden und ausführen. Diese Namensauflösungsdienste@tie{}– die @file{libnss_*.so}-Dateien@tie{}– werden mit @code{dlopen} geladen, aber sie kommen von der C-Bibliothek des Wirtssystems und nicht von der C-Bibliothek, an die die Anwendung gebunden wurde (also der C-Bibliothek von Guix)." #. type: Plain text #: guix-git/doc/guix.texi:1809 msgid "And this is where the problem is: if your application is linked against Guix's C library (say, glibc 2.24) and tries to load NSS plugins from another C library (say, @code{libnss_mdns.so} for glibc 2.22), it will likely crash or have its name lookups fail unexpectedly." msgstr "Und hier kommt es zum Problem: Wenn die Anwendung an die C-Bibliothek von Guix (etwa glibc 2.24) gebunden wurde und die NSS-Plugins von einer anderen C-Bibliothek (etwa @code{libnss_mdns.so} für glibc 2.22) zu laden versucht, wird sie vermutlich abstürzen oder die Namensauflösungen werden unerwartet fehlschlagen." #. type: Plain text #: guix-git/doc/guix.texi:1814 msgid "Running @command{nscd} on the system, among other advantages, eliminates this binary incompatibility problem because those @code{libnss_*.so} files are loaded in the @command{nscd} process, not in applications themselves." msgstr "Durch das Ausführen von @command{nscd} auf dem System wird, neben anderen Vorteilen, dieses Problem der binären Inkompatibilität vermieden, weil diese @code{libnss_*.so}-Dateien vom @command{nscd}-Prozess geladen werden, nicht in den Anwendungen selbst." #. type: subsection #: guix-git/doc/guix.texi:1815 #, no-wrap msgid "X11 Fonts" msgstr "X11-Schriftarten" #. type: Plain text #: guix-git/doc/guix.texi:1825 msgid "The majority of graphical applications use Fontconfig to locate and load fonts and perform X11-client-side rendering. The @code{fontconfig} package in Guix looks for fonts in @file{$HOME/.guix-profile} by default. Thus, to allow graphical applications installed with Guix to display fonts, you have to install fonts with Guix as well. Essential font packages include @code{font-ghostscript}, @code{font-dejavu}, and @code{font-gnu-freefont}." msgstr "Die Mehrheit der grafischen Anwendungen benutzen Fontconfig zum Finden und Laden von Schriftarten und für die Darstellung im X11-Client. Im Paket @code{fontconfig} in Guix werden Schriftarten standardmäßig in @file{$HOME/.guix-profile} gesucht. Um es grafischen Anwendungen, die mit Guix installiert wurden, zu ermöglichen, Schriftarten anzuzeigen, müssen Sie die Schriftarten auch mit Guix installieren. Essenzielle Pakete für Schriftarten sind unter anderem @code{font-ghostscript}, @code{font-dejavu} und @code{font-gnu-freefont}." #. type: code{#1} #: guix-git/doc/guix.texi:1826 #, no-wrap msgid "fc-cache" msgstr "fc-cache" #. type: cindex #: guix-git/doc/guix.texi:1827 #, no-wrap msgid "font cache" msgstr "Font-Cache" #. type: Plain text #: guix-git/doc/guix.texi:1831 msgid "Once you have installed or removed fonts, or when you notice an application that does not find fonts, you may need to install Fontconfig and to force an update of its font cache by running:" msgstr "Sobald Sie Schriftarten installiert oder wieder entfernt haben oder wenn Ihnen auffällt, dass eine Anwendung Schriftarten nicht finden kann, dann müssen Sie vielleicht Fontconfig installieren und den folgenden Befehl ausführen, damit dessen Zwischenspeicher für Schriftarten aktualisiert wird:" #. type: example #: guix-git/doc/guix.texi:1835 #, no-wrap msgid "" "guix install fontconfig\n" "fc-cache -rv\n" msgstr "" "guix install fontconfig\n" "fc-cache -rv\n" #. type: Plain text #: guix-git/doc/guix.texi:1843 msgid "To display text written in Chinese languages, Japanese, or Korean in graphical applications, consider installing @code{font-adobe-source-han-sans} or @code{font-wqy-zenhei}. The former has multiple outputs, one per language family (@pxref{Packages with Multiple Outputs}). For instance, the following command installs fonts for Chinese languages:" msgstr "Um auf Chinesisch, Japanisch oder Koreanisch verfassten Text in grafischen Anwendungen anzeigen zu können, möchten Sie vielleicht @code{font-adobe-source-han-sans} oder @code{font-wqy-zenhei} installieren. Ersteres hat mehrere Ausgaben, für jede Sprachfamilie eine (siehe @ref{Packages with Multiple Outputs}). Zum Beispiel installiert folgender Befehl Schriftarten für chinesische Sprachen:" #. type: example #: guix-git/doc/guix.texi:1846 #, no-wrap msgid "guix install font-adobe-source-han-sans:cn\n" msgstr "guix install font-adobe-source-han-sans:cn\n" #. type: code{#1} #: guix-git/doc/guix.texi:1848 #, no-wrap msgid "xterm" msgstr "xterm" #. type: Plain text #: guix-git/doc/guix.texi:1852 msgid "Older programs such as @command{xterm} do not use Fontconfig and instead rely on server-side font rendering. Such programs require to specify a full name of a font using XLFD (X Logical Font Description), like this:" msgstr "Ältere Programme wie @command{xterm} benutzen kein Fontconfig, sondern X-Server-seitige Schriftartendarstellung. Solche Programme setzen voraus, dass der volle Name einer Schriftart mit XLFD (X Logical Font Description) angegeben wird, z.B.@: so:" #. type: example #: guix-git/doc/guix.texi:1855 #, no-wrap msgid "-*-dejavu sans-medium-r-normal-*-*-100-*-*-*-*-*-1\n" msgstr "-*-dejavu sans-medium-r-normal-*-*-100-*-*-*-*-*-1\n" #. type: Plain text #: guix-git/doc/guix.texi:1859 msgid "To be able to use such full names for the TrueType fonts installed in your Guix profile, you need to extend the font path of the X server:" msgstr "Um solche vollen Namen für die in Ihrem Guix-Profil installierten TrueType-Schriftarten zu verwenden, müssen Sie den Pfad für Schriftarten (Font Path) des X-Servers anpassen:" #. type: example #: guix-git/doc/guix.texi:1864 #, no-wrap msgid "xset +fp $(dirname $(readlink -f ~/.guix-profile/share/fonts/truetype/fonts.dir))\n" msgstr "xset +fp $(dirname $(readlink -f ~/.guix-profile/share/fonts/truetype/fonts.dir))\n" #. type: code{#1} #: guix-git/doc/guix.texi:1866 #, no-wrap msgid "xlsfonts" msgstr "xlsfonts" #. type: Plain text #: guix-git/doc/guix.texi:1869 msgid "After that, you can run @code{xlsfonts} (from @code{xlsfonts} package) to make sure your TrueType fonts are listed there." msgstr "Danach können Sie den Befehl @code{xlsfonts} ausführen (aus dem Paket @code{xlsfonts}), um sicherzustellen, dass dort Ihre TrueType-Schriftarten aufgeführt sind." #. type: code{#1} #: guix-git/doc/guix.texi:1873 guix-git/doc/guix.texi:41769 #, no-wrap msgid "nss-certs" msgstr "nss-certs" #. type: Plain text #: guix-git/doc/guix.texi:1876 msgid "The @code{nss-certs} package provides X.509 certificates, which allow programs to authenticate Web servers accessed over HTTPS." msgstr "Das Paket @code{nss-certs} bietet X.509-Zertifikate, womit Programme die Identität von Web-Servern authentifizieren können, auf die über HTTPS zugegriffen wird." #. type: Plain text #: guix-git/doc/guix.texi:1881 msgid "When using Guix on a foreign distro, you can install this package and define the relevant environment variables so that packages know where to look for certificates. @xref{X.509 Certificates}, for detailed information." msgstr "Wenn Sie Guix auf einer Fremddistribution verwenden, können Sie dieses Paket installieren und die relevanten Umgebungsvariablen festlegen, damit Pakete wissen, wo sie Zertifikate finden. Unter @ref{X.509 Certificates} stehen genaue Informationen." #. type: code{#1} #: guix-git/doc/guix.texi:1884 #, no-wrap msgid "emacs" msgstr "emacs" #. type: Plain text #: guix-git/doc/guix.texi:1890 msgid "When you install Emacs packages with Guix, the Elisp files are placed under the @file{share/emacs/site-lisp/} directory of the profile in which they are installed. The Elisp libraries are made available to Emacs through the @env{EMACSLOADPATH} environment variable, which is set when installing Emacs itself." msgstr "Wenn Sie Emacs-Pakete mit Guix installieren, werden die Elisp-Dateien innerhalb des Verzeichnisses @file{share/emacs/site-lisp/} in demjenigen Profil platziert, wohin sie installiert werden. Die Elisp-Bibliotheken werden in Emacs über die @env{EMACSLOADPATH}-Umgebungsvariable verfügbar gemacht, die durch die Installation von Emacs eingerichtet wird." #. type: cindex #: guix-git/doc/guix.texi:1891 #, no-wrap msgid "guix-emacs-autoload-packages, refreshing Emacs packages" msgstr "guix-emacs-autoload-packages, Emacs-Pakete neu erkennen" #. type: Plain text #: guix-git/doc/guix.texi:1900 msgid "Additionally, autoload definitions are automatically evaluated at the initialization of Emacs, by the Guix-specific @code{guix-emacs-autoload-packages} procedure. This procedure can be interactively invoked to have newly installed Emacs packages discovered, without having to restart Emacs. If, for some reason, you want to avoid auto-loading the Emacs packages installed with Guix, you can do so by running Emacs with the @option{--no-site-file} option (@pxref{Init File,,, emacs, The GNU Emacs Manual})." msgstr "Bei der Initialisierung von Emacs werden „Autoload“-Definitionen automatisch über die Guix-spezifische Prozedur @code{guix-emacs-autoload-packages} ausgewertet. Sie können diese Prozedur selbst interaktiv aufrufen, damit neu installierte Emacs-Pakete erkannt werden, ohne Emacs neu zu starten. Wenn Sie aber aus irgendeinem Grund die mit Guix installierten Pakete nicht automatisch laden lassen möchten, können Sie Emacs mit der Befehlszeilenoption @option{--no-site-file} starten (siehe @ref{Init File,,, emacs, The GNU Emacs Manual})." #. type: quotation #: guix-git/doc/guix.texi:1905 msgid "Most Emacs variants are now capable of doing native compilation. The approach taken by Guix Emacs however differs greatly from the approach taken upstream." msgstr "Die meisten Varianten von Emacs sind mittlerweile in der Lage, Code nativ zu kompilieren. Allerdings verhält sich Guix’ Emacs merklich anders als die Voreinstellungen der Emacs-Macher." #. type: quotation #: guix-git/doc/guix.texi:1912 msgid "Upstream Emacs compiles packages just-in-time and typically places shared object files in a special folder within your @code{user-emacs-directory}. These shared objects within said folder are organized in a flat hierarchy, and their file names contain two hashes to verify the original file name and contents of the source code." msgstr "Deren Emacs kompiliert Pakete bei Bedarf („just-in-time“) und legt die Objektdateien („Shared Objects“) in einem eigenen Verzeichnis innerhalb Ihres @code{user-emacs-directory}-Verzeichnisses an. Die Objektdateien darin sind in einer flachen Hierarchie angeordnet und tragen Dateinamen mit zwei Hashes, mit denen der ursprüngliche Dateiname und der Inhalt des Quellcodes verifiziert werden." #. type: quotation #: guix-git/doc/guix.texi:1921 msgid "Guix Emacs on the other hand prefers to compile packages ahead-of-time. Shared objects retain much of the original file name and no hashes are added to verify the original file name or the contents of the file. Crucially, this allows Guix Emacs and packages built against it to be grafted (@pxref{Security Updates, grafts}), but at the same time, Guix Emacs lacks the hash-based verification of source code baked into upstream Emacs. As this naming schema is trivial to exploit, we disable just-in-time compilation." msgstr "Guix’ Emacs dagegen kompiliert seine Pakete bevorzugt im Voraus. Objektdateien tragen im Wesentlichen den ursprünglichen Dateinamen ohne zusätzliche Hashes, mit denen Name oder Inhalt verifiziert würde. Das ermöglicht es, für Guix’ Emacs erstellte Pakete zu veredeln (siehe @ref{Security Updates, Veredelungen}) und obwohl Guix’ Emacs so auch die hashbasierte Verifizierung des Quellcodes wie im Original-Emacs fehlt, kann eine solche Benennung als Sicherheitsmaßnahme ohnehin leicht umgangen werden. Daher schalten wir Just-in-time-Kompilieren ab." #. type: quotation #: guix-git/doc/guix.texi:1926 msgid "Further note, that @code{emacs-minimal}---the default Emacs for building packages---has been configured without native compilation. To natively compile your emacs packages ahead of time, use a transformation like @option{--with-input=emacs-minimal=emacs}." msgstr "Darüber hinaus sei erwähnt, dass @code{emacs-minimal}@tie{}– die Emacs-Variante, mit der normalerweise Emacs-Pakete erstellt werden@tie{}– weiterhin keine nativen Befehle generiert. Um native Befehle für Ihre Emacs-Pakete schon im Voraus zu erzeugen, nutzen Sie eine Transformation, z.B.@: @option{--with-input=emacs-minimal=emacs}." #. type: cindex #: guix-git/doc/guix.texi:1931 #, no-wrap msgid "Upgrading Guix, on a foreign distro" msgstr "Aktualisieren von Guix, auf einer Fremddistribution" #. type: Plain text #: guix-git/doc/guix.texi:1934 msgid "To upgrade Guix, run:" msgstr "Um Guix zu aktualisieren, führen Sie aus:" #. type: example #: guix-git/doc/guix.texi:1937 guix-git/doc/guix.texi:2782 #, no-wrap msgid "guix pull\n" msgstr "guix pull\n" #. type: Plain text #: guix-git/doc/guix.texi:1940 msgid "@xref{Invoking guix pull}, for more information." msgstr "Siehe @ref{Invoking guix pull} für weitere Informationen." #. type: cindex #: guix-git/doc/guix.texi:1941 #, no-wrap msgid "upgrading Guix for the root user, on a foreign distro" msgstr "Aktualisieren von Guix für den root-Administratornutzer, auf einer Fremddistribution" #. type: cindex #: guix-git/doc/guix.texi:1942 #, no-wrap msgid "upgrading the Guix daemon, on a foreign distro" msgstr "Aktualisieren des Guix-Daemon, auf einer Fremddistribution" #. type: cindex #: guix-git/doc/guix.texi:1943 #, no-wrap msgid "@command{guix pull} for the root user, on a foreign distro" msgstr "@command{guix pull} für den root-Administratornutzer, auf einer Fremddistribution" #. type: Plain text #: guix-git/doc/guix.texi:1946 msgid "On a foreign distro, you can upgrade the build daemon by running:" msgstr "Auf einer Fremddistribution können Sie den Erstellungsdaemon aktualisieren, indem Sie diesen Befehl:" #. type: example #: guix-git/doc/guix.texi:1949 #, no-wrap msgid "sudo -i guix pull\n" msgstr "sudo -i guix pull\n" #. type: Plain text #: guix-git/doc/guix.texi:1954 msgid "followed by (assuming your distro uses the systemd service management tool):" msgstr "gefolgt von diesem ausführen (unter der Annahme, dass Ihre Distribution zur Dienstverwaltung das systemd-Werkzeug benutzt):" #. type: example #: guix-git/doc/guix.texi:1957 #, no-wrap msgid "systemctl restart guix-daemon.service\n" msgstr "systemctl restart guix-daemon.service\n" #. type: Plain text #: guix-git/doc/guix.texi:1961 msgid "On Guix System, upgrading the daemon is achieved by reconfiguring the system (@pxref{Invoking guix system, @code{guix system reconfigure}})." msgstr "Auf Guix System wird der Daemon aktualisiert, indem Sie das System rekonfigurieren (siehe @ref{Invoking guix system, @code{guix system reconfigure}})." #. type: cindex #: guix-git/doc/guix.texi:1968 #, no-wrap msgid "installing Guix System" msgstr "Installieren von Guix System" #. type: cindex #: guix-git/doc/guix.texi:1969 #, no-wrap msgid "Guix System, installation" msgstr "Guix System, Installation" #. type: Plain text #: guix-git/doc/guix.texi:1974 msgid "This section explains how to install Guix System on a machine. Guix, as a package manager, can also be installed on top of a running GNU/Linux system, @pxref{Installation}." msgstr "Dieser Abschnitt beschreibt, wie Sie „Guix System“ auf einer Maschine installieren. Guix kann auch als Paketverwaltungswerkzeug ein bestehendes GNU/Linux-System ergänzen, mehr dazu finden Sie im Abschnitt @ref{Installation}." #. type: quotation #: guix-git/doc/guix.texi:1983 msgid "You are reading this documentation with an Info reader. For details on how to use it, hit the @key{RET} key (``return'' or ``enter'') on the link that follows: @pxref{Top, Info reader,, info-stnd, Stand-alone GNU Info}. Hit @kbd{l} afterwards to come back here." msgstr "Sie lesen diese Dokumentation mit einem Info-Betrachter. Details, wie Sie ihn bedienen, erfahren Sie, indem Sie die Eingabetaste (auch „Return“ oder „Enter“ genannt) auf folgender Verknüpfung drücken: @ref{Top, Info-Betrachter,, info-stnd, Stand-alone GNU Info}. Drücken Sie danach @kbd{l}, um hierher zurückzukommen." #. type: quotation #: guix-git/doc/guix.texi:1986 msgid "Alternatively, run @command{info info} in another tty to keep the manual available." msgstr "Führen Sie alternativ @command{info info} auf einer anderen Konsole (tty) aus, um dieses Handbuch offen zu lassen." #. type: Plain text #: guix-git/doc/guix.texi:2007 msgid "We consider Guix System to be ready for a wide range of ``desktop'' and server use cases. The reliability guarantees it provides---transactional upgrades and rollbacks, reproducibility---make it a solid foundation." msgstr "Wir denken, dass Guix System für viele Anwendungszwecke von Heim- und Bürorechnern bis hin zu Servern geeignet ist. Die Verlässlichkeitsgarantien, die es einem bietet@tie{}– transaktionelle Aktualisierungen und Rücksetzungen, Reproduzierbarkeit@tie{}– machen es zu einer soliden Grundlage." #. type: Plain text #: guix-git/doc/guix.texi:2009 msgid "More and more system services are provided (@pxref{Services})." msgstr "Immer mehr Systemdienste sind verfügbar (siehe @ref{Services})." #. type: Plain text #: guix-git/doc/guix.texi:2012 msgid "Nevertheless, before you proceed with the installation, be aware that some services you rely on may still be missing from version @value{VERSION}." msgstr "Bevor Sie mit der Installation fortfahren, denken Sie daran, dass in der Version @value{VERSION} vielleicht von Ihnen benötigte Dienste fehlen." #. type: Plain text #: guix-git/doc/guix.texi:2016 msgid "More than a disclaimer, this is an invitation to report issues (and success stories!), and to join us in improving it. @xref{Contributing}, for more info." msgstr "Dies soll allerdings nicht nur ein Hinweis sein, sondern auch als Einladung aufgefasst werden, uns Fehler (und Erfolgsgeschichten!) zu melden und bei uns mitzumachen, um Guix zu verbessern. Siehe den Abschnitt @ref{Contributing}." #. type: cindex #: guix-git/doc/guix.texi:2021 #, no-wrap msgid "hardware support on Guix System" msgstr "Hardwareunterstützung von Guix System" #. type: Plain text #: guix-git/doc/guix.texi:2030 msgid "GNU@tie{}Guix focuses on respecting the user's computing freedom. It builds around the kernel Linux-libre, which means that only hardware for which free software drivers and firmware exist is supported. Nowadays, a wide range of off-the-shelf hardware is supported on GNU/Linux-libre---from keyboards to graphics cards to scanners and Ethernet controllers. Unfortunately, there are still areas where hardware vendors deny users control over their own computing, and such hardware is not supported on Guix System." msgstr "GNU@tie{}Guix legt den Fokus darauf, die Freiheit des Nutzers auf seinem Rechner zu respektieren. Es baut auf Linux-libre als Kernel auf, wodurch nur Hardware unterstützt wird, für die Treiber und Firmware existieren, die freie Software sind. Heutzutage wird ein großer Teil der handelsüblichen Hardware von GNU/Linux-libre unterstützt@tie{}– von Tastaturen bis hin zu Grafikkarten, Scannern und Ethernet-Adaptern. Leider gibt es noch Bereiche, wo die Hardwareanbieter ihren Nutzern die Kontrolle über ihren eigenen Rechner verweigern. Solche Hardware wird von Guix System nicht unterstützt." #. type: cindex #: guix-git/doc/guix.texi:2031 #, no-wrap msgid "WiFi, hardware support" msgstr "WLAN, Hardware-Unterstützung" #. type: Plain text #: guix-git/doc/guix.texi:2040 msgid "One of the main areas where free drivers or firmware are lacking is WiFi devices. WiFi devices known to work include those using Atheros chips (AR9271 and AR7010), which corresponds to the @code{ath9k} Linux-libre driver, and those using Broadcom/AirForce chips (BCM43xx with Wireless-Core Revision 5), which corresponds to the @code{b43-open} Linux-libre driver. Free firmware exists for both and is available out-of-the-box on Guix System, as part of @code{%base-firmware} (@pxref{operating-system Reference, @code{firmware}})." msgstr "Einer der wichtigsten Bereiche, wo es an freien Treibern und freier Firmware mangelt, sind WLAN-Geräte. WLAN-Geräte, von denen wir wissen, dass sie funktionieren, sind unter anderem solche, die die Atheros-Chips AR9271 und AR7010 verbauen, welche der Linux-libre-Treiber @code{ath9k} unterstützt, und die, die Broadcom/AirForce-Chips BCM43xx (mit Wireless-Core Revision 5) verbauen, welche der Linux-libre-Treiber @code{b43-open} unterstützt. Freie Firmware gibt es für beide und sie wird von Haus aus mit Guix System als ein Teil von @code{%base-firmware} mitgeliefert (siehe @ref{operating-system Reference, @code{firmware}})." #. type: Plain text #: guix-git/doc/guix.texi:2043 msgid "The installer warns you early on if it detects devices that are known @emph{not} to work due to the lack of free firmware or free drivers." msgstr "Das Installationsprogramm zeigt zu Beginn eine Warnung an, wenn es Geräte erkennt, die bekanntlich @emph{nicht} funktionieren, weil es keine freie Firmware oder keine freien Treiber dafür gibt." #. type: cindex #: guix-git/doc/guix.texi:2044 #, no-wrap msgid "RYF, Respects Your Freedom" msgstr "RYF, Respects Your Freedom" #. type: Plain text #: guix-git/doc/guix.texi:2050 msgid "The @uref{https://www.fsf.org/, Free Software Foundation} runs @uref{https://www.fsf.org/ryf, @dfn{Respects Your Freedom}} (RYF), a certification program for hardware products that respect your freedom and your privacy and ensure that you have control over your device. We encourage you to check the list of RYF-certified devices." msgstr "Die @uref{https://www.fsf.org/, Free Software Foundation} betreibt @uref{https://www.fsf.org/ryf, @dfn{Respects Your Freedom}} (RYF), ein Zertifizierungsprogramm für Hardware-Produkte, die Ihre Freiheit respektieren, Datenschutz gewährleisten und sicherstellen, dass Sie die Kontrolle über Ihr Gerät haben. Wir ermutigen Sie dazu, die Liste RYF-zertifizierter Geräte zu beachten." #. type: Plain text #: guix-git/doc/guix.texi:2054 msgid "Another useful resource is the @uref{https://www.h-node.org/, H-Node} web site. It contains a catalog of hardware devices with information about their support in GNU/Linux." msgstr "Eine weitere nützliche Ressource ist die Website @uref{https://h-node.org/home/index/de, H-Node}. Dort steht ein Katalog von Hardware-Geräten mit Informationen darüber, wie gut sie von GNU/Linux unterstützt werden." #. type: Plain text #: guix-git/doc/guix.texi:2063 msgid "An ISO-9660 installation image that can be written to a USB stick or burnt to a DVD can be downloaded from @indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso}, where you can replace @code{x86_64-linux} with one of:" msgstr "Sie können ein ISO-9660-Installationsabbild von @indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso} herunterladen, dass Sie auf einen USB-Stick aufspielen oder auf eine DVD brennen können, wobei Sie anstelle von @code{x86_64-linux} eines der folgenden schreiben können:" #. type: table #: guix-git/doc/guix.texi:2067 msgid "for a GNU/Linux system on Intel/AMD-compatible 64-bit CPUs;" msgstr "für ein GNU/Linux-System auf Intel/AMD-kompatiblen 64-Bit-Prozessoren," #. type: table #: guix-git/doc/guix.texi:2070 msgid "for a 32-bit GNU/Linux system on Intel-compatible CPUs." msgstr "für ein 32-Bit-GNU/Linux-System auf Intel-kompatiblen Prozessoren." #. type: Plain text #: guix-git/doc/guix.texi:2075 msgid "Make sure to download the associated @file{.sig} file and to verify the authenticity of the image against it, along these lines:" msgstr "Laden Sie auch die entsprechende @file{.sig}-Datei herunter und verifizieren Sie damit die Authentizität Ihres Abbilds, indem Sie diese Befehle eingeben:" #. type: example #: guix-git/doc/guix.texi:2079 #, no-wrap msgid "" "$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.sig\n" "$ gpg --verify guix-system-install-@value{VERSION}.x86_64-linux.iso.sig\n" msgstr "" "$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.sig\n" "$ gpg --verify guix-system-install-@value{VERSION}.x86_64-linux.iso.sig\n" #. type: Plain text #: guix-git/doc/guix.texi:2083 msgid "If that command fails because you do not have the required public key, then run this command to import it:" msgstr "Falls dieser Befehl fehlschlägt, weil Sie nicht über den nötigen öffentlichen Schlüssel verfügen, können Sie ihn mit diesem Befehl importieren:" #. type: example #: guix-git/doc/guix.texi:2087 #, no-wrap msgid "" "$ wget @value{OPENPGP-SIGNING-KEY-URL} \\\n" " -qO - | gpg --import -\n" msgstr "" "$ wget @value{OPENPGP-SIGNING-KEY-URL} \\\n" " -qO - | gpg --import -\n" #. type: Plain text #: guix-git/doc/guix.texi:2091 msgid "and rerun the @code{gpg --verify} command." msgstr "und den Befehl @code{gpg --verify} erneut ausführen." #. type: Plain text #: guix-git/doc/guix.texi:2094 msgid "Take note that a warning like ``This key is not certified with a trusted signature!'' is normal." msgstr "Beachten Sie, dass eine Warnung wie „Dieser Schlüssel trägt keine vertrauenswürdige Signatur!“ normal ist." #. type: Plain text #: guix-git/doc/guix.texi:2099 msgid "This image contains the tools necessary for an installation. It is meant to be copied @emph{as is} to a large-enough USB stick or DVD." msgstr "Dieses Abbild enthält die Werkzeuge, die Sie zur Installation brauchen. Es ist dafür gedacht, @emph{so wie es ist} auf einen hinreichend großen USB-Stick oder eine DVD kopiert zu werden." #. type: unnumberedsubsec #: guix-git/doc/guix.texi:2100 #, no-wrap msgid "Copying to a USB Stick" msgstr "Kopieren auf einen USB-Stick" #. type: Plain text #: guix-git/doc/guix.texi:2105 msgid "Insert a USB stick of 1@tie{}GiB or more into your machine, and determine its device name. Assuming that the USB stick is known as @file{/dev/sdX}, copy the image with:" msgstr "Stecken Sie einen USB-Stick in Ihren Rechner ein, der mindestens 1@tie{}GiB groß ist, und bestimmen Sie seinen Gerätenamen. Ist der Gerätename des USB-Sticks @file{/dev/sdX}, dann kopieren Sie das Abbild mit dem Befehl:" #. type: example #: guix-git/doc/guix.texi:2109 #, no-wrap msgid "" "dd if=guix-system-install-@value{VERSION}.x86_64-linux.iso of=/dev/sdX status=progress\n" "sync\n" msgstr "" "dd if=guix-system-install-@value{VERSION}.x86_64-linux.iso of=/dev/sdX status=progress\n" "sync\n" #. type: Plain text #: guix-git/doc/guix.texi:2112 msgid "Access to @file{/dev/sdX} usually requires root privileges." msgstr "Sie benötigen in der Regel Administratorrechte, um auf @file{/dev/sdX} zuzugreifen." #. type: unnumberedsubsec #: guix-git/doc/guix.texi:2113 #, no-wrap msgid "Burning on a DVD" msgstr "Auf eine DVD brennen" #. type: Plain text #: guix-git/doc/guix.texi:2118 msgid "Insert a blank DVD into your machine, and determine its device name. Assuming that the DVD drive is known as @file{/dev/srX}, copy the image with:" msgstr "Legen Sie eine unbespielte DVD in Ihren Rechner ein und bestimmen Sie ihren Gerätenamen. Angenommen der Name des DVD-Laufwerks ist @file{/dev/srX}, kopieren Sie das Abbild mit:" #. type: example #: guix-git/doc/guix.texi:2121 #, no-wrap msgid "growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.x86_64-linux.iso\n" msgstr "growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.x86_64-linux.iso\n" #. type: Plain text #: guix-git/doc/guix.texi:2124 msgid "Access to @file{/dev/srX} usually requires root privileges." msgstr "Der Zugriff auf @file{/dev/srX} setzt in der Regel Administratorrechte voraus." #. type: unnumberedsubsec #: guix-git/doc/guix.texi:2125 #, no-wrap msgid "Booting" msgstr "Das System starten" #. type: Plain text #: guix-git/doc/guix.texi:2132 msgid "Once this is done, you should be able to reboot the system and boot from the USB stick or DVD@. The latter usually requires you to get in the BIOS or UEFI boot menu, where you can choose to boot from the USB stick. In order to boot from Libreboot, switch to the command mode by pressing the @kbd{c} key and type @command{search_grub usb}." msgstr "Sobald das erledigt ist, sollten Sie Ihr System neu starten und es vom USB-Stick oder der DVD hochfahren („booten“) können. Dazu müssen Sie wahrscheinlich beim Starten des Rechners in das BIOS- oder UEFI-Boot-Menü gehen, von wo aus Sie auswählen können, dass vom USB-Stick gebootet werden soll. Um aus Libreboot heraus zu booten, wechseln Sie in den Befehlsmodus, indem Sie die @kbd{c}-Taste drücken, und geben Sie @command{search_grub usb} ein." #. type: Plain text #: guix-git/doc/guix.texi:2142 msgid "Sadly, on some machines, the installation medium cannot be properly booted and you only see a black screen after booting even after you waited for ten minutes. This may indicate that your machine cannot run Guix System; perhaps you instead want to install Guix on a foreign distro (@pxref{Binary Installation}). But don't give up just yet; a possible workaround is pressing the @kbd{e} key in the GRUB boot menu and appending @option{nomodeset} to the Linux bootline. Sometimes the black screen issue can also be resolved by connecting a different display." msgstr "Leider scheitert auf manchen Maschinen der Bootvorgang und Sie bekommen nach dem Booten nur einen schwarzen Bildschirm zu sehen, selbst nachdem Sie zehn Minuten lang gewartet haben. Das kann bedeuten, dass Ihre Maschine Guix System nicht ausführen kann; vielleicht möchten Sie stattdessen Guix auf einer Fremddistribution installieren (siehe @ref{Binary Installation}). Aber es ist noch zu früh, um aufzugeben; womöglich lässt sich der schwarze Bildschirm umgehen, indem Sie in GRUBs Bootmenü die Taste @kbd{e} drücken und die Option @option{nomodeset} an die Linux-Bootzeile anhängen. In manchen Fällen kann das Problem mit dem schwarzen Bildschirm auch gelöst werden, indem Sie einen anderen Bildschirm anschließen." #. type: Plain text #: guix-git/doc/guix.texi:2145 msgid "@xref{Installing Guix in a VM}, if, instead, you would like to install Guix System in a virtual machine (VM)." msgstr "Lesen Sie den Abschnitt @ref{Installing Guix in a VM}, wenn Sie Guix System stattdessen in einer virtuellen Maschine (VM) installieren möchten." #. type: Plain text #: guix-git/doc/guix.texi:2155 msgid "Once you have booted, you can use the guided graphical installer, which makes it easy to get started (@pxref{Guided Graphical Installation}). Alternatively, if you are already familiar with GNU/Linux and if you want more control than what the graphical installer provides, you can choose the ``manual'' installation process (@pxref{Manual Installation})." msgstr "Wenn Sie Ihren Rechner gebootet haben, können Sie sich vom grafischen Installationsprogramm durch den Installationsvorgang führen lassen, was den Einstieg leicht macht (siehe @ref{Guided Graphical Installation}). Alternativ können Sie sich auch für einen „manuellen“ Installationsvorgang entscheiden, wenn Sie bereits mit GNU/Linux vertraut sind und mehr Kontrolle haben möchten, als sie das grafische Installationsprogramm bietet (siehe @ref{Manual Installation})." #. type: Plain text #: guix-git/doc/guix.texi:2163 msgid "The graphical installer is available on TTY1. You can obtain root shells on TTYs 3 to 6 by hitting @kbd{ctrl-alt-f3}, @kbd{ctrl-alt-f4}, etc. TTY2 shows this documentation and you can reach it with @kbd{ctrl-alt-f2}. Documentation is browsable using the Info reader commands (@pxref{Top,,, info-stnd, Stand-alone GNU Info}). The installation system runs the GPM mouse daemon, which allows you to select text with the left mouse button and to paste it with the middle button." msgstr "Das grafische Installationsprogramm steht Ihnen auf TTY1 zur Verfügung. Auf den TTYs 3 bis 6 können Sie vor sich eine Eingabeaufforderung für den Administratornutzer „root“ sehen, nachdem Sie @kbd{strg-alt-f3}, @kbd{strg-alt-f4} usw.@: gedrückt haben. TTY2 zeigt Ihnen dieses Handbuch, das Sie über die Tastenkombination @kbd{strg-alt-f2} erreichen. In dieser Dokumentation können Sie mit den Steuerungsbefehlen Ihres Info-Betrachters blättern (siehe @ref{Top,,, info-stnd, Stand-alone GNU Info}). Auf dem Installationssystem läuft der GPM-Maus-Daemon, wodurch Sie Text mit der linken Maustaste markieren und ihn mit der mittleren Maustaste einfügen können." #. type: quotation #: guix-git/doc/guix.texi:2168 msgid "Installation requires access to the Internet so that any missing dependencies of your system configuration can be downloaded. See the ``Networking'' section below." msgstr "Für die Installation benötigen Sie Zugang zum Internet, damit fehlende Abhängigkeiten Ihrer Systemkonfiguration heruntergeladen werden können. Im Abschnitt „Netzwerkkonfiguration“ weiter unten finden Sie mehr Informationen dazu." #. type: Plain text #: guix-git/doc/guix.texi:2175 msgid "The graphical installer is a text-based user interface. It will guide you, with dialog boxes, through the steps needed to install GNU@tie{}Guix System." msgstr "Das grafische Installationsprogramm ist mit einer textbasierten Benutzeroberfläche ausgestattet. Es kann Sie mit Dialogfeldern durch die Schritte führen, mit denen Sie GNU@tie{}Guix System installieren." #. type: Plain text #: guix-git/doc/guix.texi:2180 msgid "The first dialog boxes allow you to set up the system as you use it during the installation: you can choose the language, keyboard layout, and set up networking, which will be used during the installation. The image below shows the networking dialog." msgstr "Die ersten Dialogfelder ermöglichen es Ihnen, das System aufzusetzen, wie Sie es bei der Installation benutzen: Sie können die Sprache und Tastaturbelegung festlegen und die Netzwerkanbindung einrichten, die während der Installation benutzt wird. Das folgende Bild zeigt den Dialog zur Einrichtung der Netzwerkanbindung." #. type: Plain text #: guix-git/doc/guix.texi:2182 msgid "@image{images/installer-network,5in,, networking setup with the graphical installer}" msgstr "@image{images/installer-network,5in,, Netzwerkanbindung einrichten mit dem grafischen Installationsprogramm}" #. type: Plain text #: guix-git/doc/guix.texi:2187 msgid "Later steps allow you to partition your hard disk, as shown in the image below, to choose whether or not to use encrypted file systems, to enter the host name and root password, and to create an additional account, among other things." msgstr "Mit den danach kommenden Schritten können Sie Ihre Festplatte partitionieren, wie im folgenden Bild gezeigt, und auswählen, ob Ihre Dateisysteme verschlüsselt werden sollen oder nicht. Sie können Ihren Rechnernamen und das Administratorpasswort (das „root“-Passwort) festlegen und ein Benutzerkonto einrichten, und noch mehr." #. type: Plain text #: guix-git/doc/guix.texi:2189 msgid "@image{images/installer-partitions,5in,, partitioning with the graphical installer}" msgstr "@image{images/installer-partitions,5in,, Partitionieren mit dem grafischen Installationsprogramm}" #. type: Plain text #: guix-git/doc/guix.texi:2192 msgid "Note that, at any time, the installer allows you to exit the current installation step and resume at a previous step, as show in the image below." msgstr "Beachten Sie, dass Sie mit dem Installationsprogramm jederzeit den aktuellen Installationsschritt verlassen und zu einem vorherigen Schritt zurückkehren können, wie Sie im folgenden Bild sehen können." #. type: Plain text #: guix-git/doc/guix.texi:2194 msgid "@image{images/installer-resume,5in,, resuming the installation process}" msgstr "@image{images/installer-resume,5in,, Mit einem Installationsschritt fortfahren}" #. type: Plain text #: guix-git/doc/guix.texi:2199 msgid "Once you're done, the installer produces an operating system configuration and displays it (@pxref{Using the Configuration System}). At that point you can hit ``OK'' and installation will proceed. On success, you can reboot into the new system and enjoy. @xref{After System Installation}, for what's next!" msgstr "Sobald Sie fertig sind, erzeugt das Installationsprogramm eine Betriebssystemkonfiguration und zeigt sie an (siehe @ref{Using the Configuration System}). Zu diesem Zeitpunkt können Sie auf „OK“ drücken und die Installation wird losgehen. Ist sie erfolgreich, können Sie neu starten und Ihr neues System genießen. Siehe @ref{After System Installation} für Informationen, wie es weitergeht!" #. type: Plain text #: guix-git/doc/guix.texi:2209 msgid "This section describes how you would ``manually'' install GNU@tie{}Guix System on your machine. This option requires familiarity with GNU/Linux, with the shell, and with common administration tools. If you think this is not for you, consider using the guided graphical installer (@pxref{Guided Graphical Installation})." msgstr "Dieser Abschnitt beschreibt, wie Sie GNU@tie{}Guix System auf manuelle Weise auf Ihrer Maschine installieren. Diese Alternative setzt voraus, dass Sie bereits mit GNU/Linux, der Shell und üblichen Administrationswerkzeugen vertraut sind. Wenn Sie glauben, dass das nichts für Sie ist, dann möchten Sie vielleicht das geführte grafische Installationsprogramm benutzen (siehe @ref{Guided Graphical Installation})." #. type: Plain text #: guix-git/doc/guix.texi:2215 msgid "The installation system provides root shells on TTYs 3 to 6; press @kbd{ctrl-alt-f3}, @kbd{ctrl-alt-f4}, and so on to reach them. It includes many common tools needed to install the system, but is also a full-blown Guix System. This means that you can install additional packages, should you need it, using @command{guix package} (@pxref{Invoking guix package})." msgstr "Das Installationssystem macht Eingabeaufforderungen auf den TTYs 3 bis 6 zugänglich, auf denen Sie als Administratornutzer Befehle eingeben können; Sie erreichen diese, indem Sie die Tastenkombinationen @kbd{strg-alt-f3}, @kbd{strg-alt-f4} und so weiter benutzen. Es enthält viele übliche Werkzeuge, mit denen Sie diese Aufgabe bewältigen können. Da es sich auch um ein vollständiges „Guix System“-System handelt, können Sie aber auch andere Pakete mit dem Befehl @command{guix package} nachinstallieren, wenn Sie sie brauchen (siehe @ref{Invoking guix package})." #. type: subsection #: guix-git/doc/guix.texi:2222 #, no-wrap msgid "Keyboard Layout, Networking, and Partitioning" msgstr "Tastaturbelegung, Netzwerkanbindung und Partitionierung" #. type: Plain text #: guix-git/doc/guix.texi:2227 msgid "Before you can install the system, you may want to adjust the keyboard layout, set up networking, and partition your target hard disk. This section will guide you through this." msgstr "Bevor Sie das System installieren können, wollen Sie vielleicht die Tastaturbelegung ändern, eine Netzwerkverbindung herstellen und die Zielfestplatte partitionieren. Dieser Abschnitt wird Sie durch diese Schritte führen." #. type: cindex #: guix-git/doc/guix.texi:2230 guix-git/doc/guix.texi:18639 #, no-wrap msgid "keyboard layout" msgstr "Tastaturbelegung" #. type: Plain text #: guix-git/doc/guix.texi:2234 msgid "The installation image uses the US qwerty keyboard layout. If you want to change it, you can use the @command{loadkeys} command. For example, the following command selects the Dvorak keyboard layout:" msgstr "Das Installationsabbild verwendet die US-amerikanische QWERTY-Tastaturbelegung. Wenn Sie dies ändern möchten, können Sie den @command{loadkeys}-Befehl benutzen. Mit folgendem Befehl würden Sie zum Beispiel die Dvorak-Tastaturbelegung auswählen:" #. type: example #: guix-git/doc/guix.texi:2237 #, no-wrap msgid "loadkeys dvorak\n" msgstr "loadkeys dvorak\n" #. type: Plain text #: guix-git/doc/guix.texi:2242 msgid "See the files under @file{/run/current-system/profile/share/keymaps} for a list of available keyboard layouts. Run @command{man loadkeys} for more information." msgstr "Schauen Sie sich an, welche Dateien im Verzeichnis @file{/run/current-system/profile/share/keymaps} stehen, um eine Liste verfügbarer Tastaturbelegungen zu sehen. Wenn Sie mehr Informationen brauchen, führen Sie @command{man loadkeys} aus." #. type: anchor{#1} #: guix-git/doc/guix.texi:2244 msgid "manual-installation-networking" msgstr "manual-installation-networking" #. type: subsubsection #: guix-git/doc/guix.texi:2244 #, no-wrap msgid "Networking" msgstr "Netzwerkkonfiguration" #. type: Plain text #: guix-git/doc/guix.texi:2247 msgid "Run the following command to see what your network interfaces are called:" msgstr "Führen Sie folgenden Befehl aus, um zu sehen, wie Ihre Netzwerkschnittstellen benannt sind:" #. type: example #: guix-git/doc/guix.texi:2250 #, no-wrap msgid "ifconfig -a\n" msgstr "ifconfig -a\n" #. type: table #: guix-git/doc/guix.texi:2254 guix-git/doc/guix.texi:2276 msgid "@dots{} or, using the GNU/Linux-specific @command{ip} command:" msgstr "…@: oder mit dem GNU/Linux-eigenen @command{ip}-Befehl:" #. type: example #: guix-git/doc/guix.texi:2257 #, no-wrap msgid "ip address\n" msgstr "ip address\n" #. type: Plain text #: guix-git/doc/guix.texi:2264 msgid "Wired interfaces have a name starting with @samp{e}; for example, the interface corresponding to the first on-board Ethernet controller is called @samp{eno1}. Wireless interfaces have a name starting with @samp{w}, like @samp{w1p2s0}." msgstr "Der Name kabelgebundener Schnittstellen (engl. Interfaces) beginnt mit dem Buchstaben @samp{e}, zum Beispiel heißt die dem ersten fest eingebauten Ethernet-Adapter entsprechende Schnittstelle @samp{eno1}. Drahtlose Schnittstellen werden mit einem Namen bezeichnet, der mit dem Buchstaben @samp{w} beginnt, etwa @samp{w1p2s0}." #. type: item #: guix-git/doc/guix.texi:2266 #, no-wrap msgid "Wired connection" msgstr "Kabelverbindung" #. type: table #: guix-git/doc/guix.texi:2269 msgid "To configure a wired network run the following command, substituting @var{interface} with the name of the wired interface you want to use." msgstr "Um ein kabelgebundenes Netzwerk einzurichten, führen Sie den folgenden Befehl aus, wobei Sie statt @var{Schnittstelle} den Namen der kabelgebundenen Schnittstelle eintippen, die Sie benutzen möchten." #. type: example #: guix-git/doc/guix.texi:2272 #, no-wrap msgid "ifconfig @var{interface} up\n" msgstr "ifconfig @var{Schnittstelle} up\n" #. type: example #: guix-git/doc/guix.texi:2279 #, no-wrap msgid "ip link set @var{interface} up\n" msgstr "ip link set @var{Schnittstelle} up\n" #. type: item #: guix-git/doc/guix.texi:2281 #, no-wrap msgid "Wireless connection" msgstr "Drahtlose Verbindung" #. type: cindex #: guix-git/doc/guix.texi:2282 #, no-wrap msgid "wireless" msgstr "WLAN" #. type: cindex #: guix-git/doc/guix.texi:2283 #, no-wrap msgid "WiFi" msgstr "WiFi" #. type: table #: guix-git/doc/guix.texi:2288 msgid "To configure wireless networking, you can create a configuration file for the @command{wpa_supplicant} configuration tool (its location is not important) using one of the available text editors such as @command{nano}:" msgstr "Um Drahtlosnetzwerke einzurichten, können Sie eine Konfigurationsdatei für das Konfigurationswerkzeug des @command{wpa_supplicant} schreiben (wo Sie sie speichern, ist nicht wichtig), indem Sie eines der verfügbaren Textbearbeitungsprogramme wie etwa @command{nano} benutzen:" #. type: example #: guix-git/doc/guix.texi:2291 #, no-wrap msgid "nano wpa_supplicant.conf\n" msgstr "nano wpa_supplicant.conf\n" #. type: table #: guix-git/doc/guix.texi:2296 msgid "As an example, the following stanza can go to this file and will work for many wireless networks, provided you give the actual SSID and passphrase for the network you are connecting to:" msgstr "Zum Beispiel können Sie die folgende Formulierung in der Datei speichern, die für viele Drahtlosnetzwerke funktioniert, sofern Sie die richtige SSID und Passphrase für das Netzwerk eingeben, mit dem Sie sich verbinden möchten:" #. type: example #: guix-git/doc/guix.texi:2303 #, no-wrap msgid "" "network=@{\n" " ssid=\"@var{my-ssid}\"\n" " key_mgmt=WPA-PSK\n" " psk=\"the network's secret passphrase\"\n" "@}\n" msgstr "" "network=@{\n" " ssid=\"@var{meine-ssid}\"\n" " key_mgmt=WPA-PSK\n" " psk=\"geheime Passphrase des Netzwerks\"\n" "@}\n" #. type: table #: guix-git/doc/guix.texi:2308 msgid "Start the wireless service and run it in the background with the following command (substitute @var{interface} with the name of the network interface you want to use):" msgstr "Starten Sie den Dienst für Drahtlosnetzwerke und lassen Sie ihn im Hintergrund laufen, indem Sie folgenden Befehl eintippen (ersetzen Sie dabei @var{Schnittstelle} durch den Namen der Netzwerkschnittstelle, die Sie benutzen möchten):" #. type: example #: guix-git/doc/guix.texi:2311 #, no-wrap msgid "wpa_supplicant -c wpa_supplicant.conf -i @var{interface} -B\n" msgstr "wpa_supplicant -c wpa_supplicant.conf -i @var{Schnittstelle} -B\n" #. type: table #: guix-git/doc/guix.texi:2314 msgid "Run @command{man wpa_supplicant} for more information." msgstr "Führen Sie @command{man wpa_supplicant} aus, um mehr Informationen zu erhalten." #. type: cindex #: guix-git/doc/guix.texi:2316 #, no-wrap msgid "DHCP" msgstr "DHCP" #. type: Plain text #: guix-git/doc/guix.texi:2319 msgid "At this point, you need to acquire an IP address. On a network where IP addresses are automatically assigned @i{via} DHCP, you can run:" msgstr "Zu diesem Zeitpunkt müssen Sie sich eine IP-Adresse beschaffen. Auf einem Netzwerk, wo IP-Adressen automatisch @i{via} DHCP zugewiesen werden, können Sie das hier ausführen:" #. type: example #: guix-git/doc/guix.texi:2322 #, no-wrap msgid "dhclient -v @var{interface}\n" msgstr "dhclient -v @var{Schnittstelle}\n" #. type: Plain text #: guix-git/doc/guix.texi:2325 msgid "Try to ping a server to see if networking is up and running:" msgstr "Versuchen Sie, einen Server zu pingen, um zu prüfen, ob sie mit dem Internet verbunden sind und alles richtig funktioniert:" #. type: example #: guix-git/doc/guix.texi:2328 #, no-wrap msgid "ping -c 3 gnu.org\n" msgstr "ping -c 3 gnu.org\n" #. type: Plain text #: guix-git/doc/guix.texi:2332 msgid "Setting up network access is almost always a requirement because the image does not contain all the software and tools that may be needed." msgstr "Einen Internetzugang herzustellen, ist in jedem Fall nötig, weil das Abbild nicht alle Software und Werkzeuge enthält, die nötig sein könnten." #. type: cindex #: guix-git/doc/guix.texi:2333 #, no-wrap msgid "proxy, during system installation" msgstr "Proxy, bei der Systeminstallation" #. type: Plain text #: guix-git/doc/guix.texi:2336 msgid "If you need HTTP and HTTPS access to go through a proxy, run the following command:" msgstr "Wenn HTTP- und HTTPS-Zugriffe bei Ihnen über einen Proxy laufen sollen, führen Sie folgenden Befehl aus:" #. type: example #: guix-git/doc/guix.texi:2339 #, no-wrap msgid "herd set-http-proxy guix-daemon @var{URL}\n" msgstr "herd set-http-proxy guix-daemon @var{URL}\n" #. type: Plain text #: guix-git/doc/guix.texi:2344 msgid "where @var{URL} is the proxy URL, for example @code{http://example.org:8118}." msgstr "Dabei ist @var{URL} die URL des Proxys, zum Beispiel @code{http://example.org:8118}." #. type: cindex #: guix-git/doc/guix.texi:2345 #, no-wrap msgid "installing over SSH" msgstr "Über SSH installieren" #. type: Plain text #: guix-git/doc/guix.texi:2348 msgid "If you want to, you can continue the installation remotely by starting an SSH server:" msgstr "Wenn Sie möchten, können Sie die weitere Installation auch per Fernwartung durchführen, indem Sie einen SSH-Server starten:" #. type: example #: guix-git/doc/guix.texi:2351 #, no-wrap msgid "herd start ssh-daemon\n" msgstr "herd start ssh-daemon\n" #. type: Plain text #: guix-git/doc/guix.texi:2355 msgid "Make sure to either set a password with @command{passwd}, or configure OpenSSH public key authentication before logging in." msgstr "Vergewissern Sie sich vorher, dass Sie entweder ein Passwort mit @command{passwd} festgelegt haben, oder dass Sie für OpenSSH eine Authentifizierung über öffentliche Schlüssel eingerichtet haben, bevor Sie sich anmelden." #. type: subsubsection #: guix-git/doc/guix.texi:2356 #, no-wrap msgid "Disk Partitioning" msgstr "Plattenpartitionierung" #. type: Plain text #: guix-git/doc/guix.texi:2360 msgid "Unless this has already been done, the next step is to partition, and then format the target partition(s)." msgstr "Sofern nicht bereits geschehen, ist der nächste Schritt, zu partitionieren und dann die Zielpartition zu formatieren." #. type: Plain text #: guix-git/doc/guix.texi:2365 msgid "The installation image includes several partitioning tools, including Parted (@pxref{Overview,,, parted, GNU Parted User Manual}), @command{fdisk}, and @command{cfdisk}. Run it and set up your disk with the partition layout you want:" msgstr "Auf dem Installationsabbild sind mehrere Partitionierungswerkzeuge zu finden, einschließlich (siehe @ref{Overview,,, parted, GNU Parted User Manual}), @command{fdisk} und @command{cfdisk}. Starten Sie eines davon und partitionieren Sie Ihre Festplatte oder sonstigen Massenspeicher, wie Sie möchten:" #. type: example #: guix-git/doc/guix.texi:2368 #, no-wrap msgid "cfdisk\n" msgstr "cfdisk\n" #. type: Plain text #: guix-git/doc/guix.texi:2374 msgid "If your disk uses the GUID Partition Table (GPT) format and you plan to install BIOS-based GRUB (which is the default), make sure a BIOS Boot Partition is available (@pxref{BIOS installation,,, grub, GNU GRUB manual})." msgstr "Wenn Ihre Platte mit einer „GUID Partition Table“ (GPT) formatiert ist, und Sie vorhaben, die BIOS-basierte Variante des GRUB-Bootloaders zu installieren (was der Vorgabe entspricht), stellen Sie sicher, dass eine Partition als BIOS-Boot-Partition ausgewiesen ist (siehe @ref{BIOS installation,,, grub, GNU GRUB manual})." #. type: cindex #: guix-git/doc/guix.texi:2375 #, no-wrap msgid "EFI, installation" msgstr "EFI, Installation" #. type: cindex #: guix-git/doc/guix.texi:2376 #, no-wrap msgid "UEFI, installation" msgstr "UEFI, Installation" #. type: cindex #: guix-git/doc/guix.texi:2377 #, no-wrap msgid "ESP, EFI system partition" msgstr "ESP, EFI-Systempartition" #. type: Plain text #: guix-git/doc/guix.texi:2381 msgid "If you instead wish to use EFI-based GRUB, a FAT32 @dfn{EFI System Partition} (ESP) is required. This partition can be mounted at @file{/boot/efi} for instance and must have the @code{esp} flag set. E.g., for @command{parted}:" msgstr "Falls Sie stattdessen einen EFI-basierten GRUB installieren möchten, muss auf der Platte eine FAT32-formatierte @dfn{EFI-Systempartition} (ESP) vorhanden sein. Diese Partition kann unter dem Pfad @file{/boot/efi} eingebunden („gemountet“) werden und die @code{esp}-Flag der Partition muss gesetzt sein. Dazu würden Sie beispielsweise in @command{parted} eintippen:" #. type: example #: guix-git/doc/guix.texi:2384 #, no-wrap msgid "parted /dev/sda set 1 esp on\n" msgstr "parted /dev/sda set 1 esp on\n" #. type: vindex #: guix-git/doc/guix.texi:2387 guix-git/doc/guix.texi:42196 #, no-wrap msgid "grub-bootloader" msgstr "grub-bootloader" #. type: vindex #: guix-git/doc/guix.texi:2388 guix-git/doc/guix.texi:42200 #, no-wrap msgid "grub-efi-bootloader" msgstr "grub-efi-bootloader" #. type: quotation #: guix-git/doc/guix.texi:2395 msgid "Unsure whether to use EFI- or BIOS-based GRUB? If the directory @file{/sys/firmware/efi} exists in the installation image, then you should probably perform an EFI installation, using @code{grub-efi-bootloader}. Otherwise you should use the BIOS-based GRUB, known as @code{grub-bootloader}. @xref{Bootloader Configuration}, for more info on bootloaders." msgstr "Falls Sie nicht wissen, ob Sie einen EFI- oder BIOS-basierten GRUB installieren möchten: Wenn bei Ihnen das Verzeichnis @file{/sys/firmware/efi} im Dateisystem existiert, möchten Sie vermutlich eine EFI-Installation durchführen, wozu Sie in Ihrer Konfiguration @code{grub-efi-bootloader} benutzen. Ansonsten sollten Sie den BIOS-basierten GRUB benutzen, der mit @code{grub-bootloader} bezeichnet wird. Siehe @ref{Bootloader Configuration}, wenn Sie mehr Informationen über Bootloader brauchen." #. type: Plain text #: guix-git/doc/guix.texi:2403 msgid "Once you are done partitioning the target hard disk drive, you have to create a file system on the relevant partition(s)@footnote{Currently Guix System only supports ext4, btrfs, JFS, F2FS, and XFS file systems. In particular, code that reads file system UUIDs and labels only works for these file system types.}. For the ESP, if you have one and assuming it is @file{/dev/sda1}, run:" msgstr "Sobald Sie die Platte fertig partitioniert haben, auf die Sie installieren möchten, müssen Sie ein Dateisystem auf Ihrer oder Ihren für Guix System vorgesehenen Partition(en) erzeugen@footnote{Derzeit unterstützt Guix System nur die Dateisystemtypen ext4, btrfs, JFS, F2FS und XFS@. Insbesondere funktioniert Guix-Code, der Dateisystem-UUIDs und -Bezeichnungen ausliest, nur auf diesen Dateisystemtypen.}. Wenn Sie eine ESP brauchen und dafür die Partition @file{/dev/sda1} vorgesehen haben, müssen Sie diesen Befehl ausführen:" #. type: example #: guix-git/doc/guix.texi:2406 #, no-wrap msgid "mkfs.fat -F32 /dev/sda1\n" msgstr "mkfs.fat -F32 /dev/sda1\n" #. type: Plain text #: guix-git/doc/guix.texi:2413 msgid "For the root file system, ext4 is the most widely used format. Other file systems, such as Btrfs, support compression, which is reported to nicely complement file deduplication that the daemon performs independently of the file system (@pxref{Invoking guix-daemon, deduplication})." msgstr "Für das Wurzeldateisystem ist ext4 das am häufigsten genutzte Format. Andere Dateisysteme, wie Btrfs, unterstützen Kompression, wovon berichtet wird, es habe sich als sinnvolle Ergänzung zur Dateideduplikation erwiesen, die der Daemon unabhängig vom Dateisystem bietet (siehe @ref{Invoking guix-daemon, Deduplizieren})." #. type: Plain text #: guix-git/doc/guix.texi:2420 msgid "Preferably, assign file systems a label so that you can easily and reliably refer to them in @code{file-system} declarations (@pxref{File Systems}). This is typically done using the @code{-L} option of @command{mkfs.ext4} and related commands. So, assuming the target root partition lives at @file{/dev/sda2}, a file system with the label @code{my-root} can be created with:" msgstr "Geben Sie Ihren Dateisystemen auch besser eine Bezeichnung („Label“), damit Sie sie zuverlässig wiedererkennen und später in den @code{file-system}-Deklarationen darauf Bezug nehmen können (siehe @ref{File Systems}). Dazu benutzen Sie typischerweise die Befehlszeilenoption @code{-L} des Befehls @command{mkfs.ext4} oder entsprechende Optionen für andere Befehle. Wenn wir also annehmen, dass @file{/dev/sda2} die Partition ist, auf der Ihr Wurzeldateisystem (englisch „root“) wohnen soll, können Sie dort mit diesem Befehl ein Dateisystem mit der Bezeichnung @code{my-root} erstellen:" #. type: example #: guix-git/doc/guix.texi:2423 #, no-wrap msgid "mkfs.ext4 -L my-root /dev/sda2\n" msgstr "mkfs.ext4 -L my-root /dev/sda2\n" #. type: cindex #: guix-git/doc/guix.texi:2425 guix-git/doc/guix.texi:17366 #, no-wrap msgid "encrypted disk" msgstr "verschlüsselte Partition" #. type: Plain text #: guix-git/doc/guix.texi:2430 msgid "If you are instead planning to encrypt the root partition, you can use the Cryptsetup/LUKS utilities to do that (see @inlinefmtifelse{html, @uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}}, @code{man cryptsetup}} for more information)." msgstr "Falls Sie aber vorhaben, die Partition mit dem Wurzeldateisystem zu verschlüsseln, können Sie dazu die Cryptsetup-/LUKS-Werkzeuge verwenden (siehe @inlinefmtifelse{html, @uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}}, @code{man cryptsetup}}, um mehr darüber zu erfahren)." #. type: Plain text #: guix-git/doc/guix.texi:2434 msgid "Assuming you want to store the root partition on @file{/dev/sda2}, the command sequence to format it as a LUKS partition would be along these lines:" msgstr "Angenommen Sie wollen die Partition für das Wurzeldateisystem verschlüsselt auf @file{/dev/sda2} installieren, dann brauchen Sie eine Befehlsfolge ähnlich wie diese, um sie als LUKS-Partition zu formatieren:" #. type: example #: guix-git/doc/guix.texi:2439 #, no-wrap msgid "" "cryptsetup luksFormat /dev/sda2\n" "cryptsetup open /dev/sda2 my-partition\n" "mkfs.ext4 -L my-root /dev/mapper/my-partition\n" msgstr "" "cryptsetup luksFormat /dev/sda2\n" "cryptsetup open /dev/sda2 my-partition\n" "mkfs.ext4 -L my-root /dev/mapper/my-partition\n" #. type: Plain text #: guix-git/doc/guix.texi:2444 msgid "Once that is done, mount the target file system under @file{/mnt} with a command like (again, assuming @code{my-root} is the label of the root file system):" msgstr "Sobald das erledigt ist, binden Sie dieses Dateisystem als Installationsziel mit dem Einhängepunkt @file{/mnt} ein, wozu Sie einen Befehl wie hier eintippen (auch hier unter der Annahme, dass @code{my-root} die Bezeichnung des künftigen Wurzeldateisystems ist):" #. type: example #: guix-git/doc/guix.texi:2447 #, no-wrap msgid "mount LABEL=my-root /mnt\n" msgstr "mount LABEL=my-root /mnt\n" #. type: Plain text #: guix-git/doc/guix.texi:2453 msgid "Also mount any other file systems you would like to use on the target system relative to this path. If you have opted for @file{/boot/efi} as an EFI mount point for example, mount it at @file{/mnt/boot/efi} now so it is found by @code{guix system init} afterwards." msgstr "Binden Sie auch alle anderen Dateisysteme ein, die Sie auf dem Zielsystem benutzen möchten, mit Einhängepunkten relativ zu diesem Pfad. Wenn Sie sich zum Beispiel für einen Einhängepunkt @file{/boot/efi} für die EFI-Systempartition entschieden haben, binden Sie sie jetzt als @file{/mnt/boot/efi} ein, damit @code{guix system init} sie später findet." #. type: Plain text #: guix-git/doc/guix.texi:2457 msgid "Finally, if you plan to use one or more swap partitions (@pxref{Swap Space}), make sure to initialize them with @command{mkswap}. Assuming you have one swap partition on @file{/dev/sda3}, you would run:" msgstr "Wenn Sie zudem auch vorhaben, eine oder mehrere Swap-Partitionen zu benutzen (siehe @ref{Swap Space}), initialisieren Sie diese nun mit @command{mkswap}. Angenommen Sie haben eine Swap-Partition auf @file{/dev/sda3}, dann würde der Befehl so lauten:" #. type: example #: guix-git/doc/guix.texi:2461 #, no-wrap msgid "" "mkswap /dev/sda3\n" "swapon /dev/sda3\n" msgstr "" "mkswap /dev/sda3\n" "swapon /dev/sda3\n" #. type: Plain text #: guix-git/doc/guix.texi:2469 msgid "Alternatively, you may use a swap file. For example, assuming that in the new system you want to use the file @file{/swapfile} as a swap file, you would run@footnote{This example will work for many types of file systems (e.g., ext4). However, for copy-on-write file systems (e.g., btrfs), the required steps may be different. For details, see the manual pages for @command{mkswap} and @command{swapon}.}:" msgstr "Alternativ können Sie eine Swap-Datei benutzen. Angenommen, Sie wollten die Datei @file{/swapdatei} im neuen System als eine Swapdatei benutzen, dann müssten Sie Folgendes ausführen@footnote{Dieses Beispiel wird auf vielen Arten von Dateisystemen funktionieren (z.B.@: auf ext4). Auf Dateisystemen mit Copy-on-Write (wie z.B.@: btrfs) können sich die nötigen Schritte unterscheiden. Details finden Sie in der Dokumentation auf den Handbuchseiten von @command{mkswap} und @command{swapon}.}:" #. type: example #: guix-git/doc/guix.texi:2477 #, no-wrap msgid "" "# This is 10 GiB of swap space. Adjust \"count\" to change the size.\n" "dd if=/dev/zero of=/mnt/swapfile bs=1MiB count=10240\n" "# For security, make the file readable and writable only by root.\n" "chmod 600 /mnt/swapfile\n" "mkswap /mnt/swapfile\n" "swapon /mnt/swapfile\n" msgstr "" "# Das bedeutet 10 GiB Swapspeicher. \"count\" anpassen zum Ändern.\n" "dd if=/dev/zero of=/mnt/swapfile bs=1MiB count=10240\n" "# Zur Sicherheit darf nur der Administrator lesen und schreiben.\n" "chmod 600 /mnt/swapfile\n" "mkswap /mnt/swapfile\n" "swapon /mnt/swapfile\n" #. type: Plain text #: guix-git/doc/guix.texi:2482 msgid "Note that if you have encrypted the root partition and created a swap file in its file system as described above, then the encryption also protects the swap file, just like any other file in that file system." msgstr "Bedenken Sie, dass, wenn Sie die Partition für das Wurzeldateisystem („root“) verschlüsselt und eine Swap-Datei in diesem Dateisystem wie oben beschrieben erstellt haben, die Verschlüsselung auch die Swap-Datei schützt, genau wie jede andere Datei in dem Dateisystem." #. type: Plain text #: guix-git/doc/guix.texi:2488 msgid "With the target partitions ready and the target root mounted on @file{/mnt}, we're ready to go. First, run:" msgstr "Wenn die Partitionen des Installationsziels bereit sind und dessen Wurzeldateisystem unter @file{/mnt} eingebunden wurde, kann es losgehen mit der Installation. Führen Sie zuerst aus:" #. type: example #: guix-git/doc/guix.texi:2491 #, no-wrap msgid "herd start cow-store /mnt\n" msgstr "herd start cow-store /mnt\n" #. type: Plain text #: guix-git/doc/guix.texi:2498 msgid "This makes @file{/gnu/store} copy-on-write, such that packages added to it during the installation phase are written to the target disk on @file{/mnt} rather than kept in memory. This is necessary because the first phase of the @command{guix system init} command (see below) entails downloads or builds to @file{/gnu/store} which, initially, is an in-memory file system." msgstr "Dadurch wird @file{/gnu/store} copy-on-write, d.h.@: dorthin von Guix erstellte Pakete werden in ihrer Installationsphase auf dem unter @file{/mnt} befindlichen Zieldateisystem gespeichert, statt den Arbeitsspeicher auszulasten. Das ist nötig, weil die erste Phase des Befehls @command{guix system init} (siehe unten) viele Dateien nach @file{/gnu/store} herunterlädt oder sie erstellt, Änderungen am @file{/gnu/store} aber bis dahin wie das übrige Installationssystem nur im Arbeitsspeicher gelagert werden konnten." #. type: Plain text #: guix-git/doc/guix.texi:2509 msgid "Next, you have to edit a file and provide the declaration of the operating system to be installed. To that end, the installation system comes with three text editors. We recommend GNU nano (@pxref{Top,,, nano, GNU nano Manual}), which supports syntax highlighting and parentheses matching; other editors include mg (an Emacs clone), and nvi (a clone of the original BSD @command{vi} editor). We strongly recommend storing that file on the target root file system, say, as @file{/mnt/etc/config.scm}. Failing to do that, you will have lost your configuration file once you have rebooted into the newly-installed system." msgstr "Als Nächstes müssen Sie eine Datei bearbeiten und dort eine Deklaration des Betriebssystems, das Sie installieren möchten, hineinschreiben. Zu diesem Zweck sind im Installationssystem drei Texteditoren enthalten. Wir empfehlen, dass Sie GNU nano benutzen (siehe @ref{Top,,, nano, GNU nano Manual}), welcher Syntax und zueinander gehörende Klammern hervorheben kann. Andere mitgelieferte Texteditoren, die Sie benutzen können, sind mg (ein Emacs-Klon) und nvi (ein Klon des ursprünglichen @command{vi}-Editors von BSD). Wir empfehlen sehr, dass Sie diese Datei im Zieldateisystem der Installation speichern, etwa als @file{/mnt/etc/config.scm}, weil Sie Ihre Konfigurationsdatei im frisch installierten System noch brauchen werden." #. type: Plain text #: guix-git/doc/guix.texi:2516 msgid "@xref{Using the Configuration System}, for an overview of the configuration file. The example configurations discussed in that section are available under @file{/etc/configuration} in the installation image. Thus, to get started with a system configuration providing a graphical display server (a ``desktop'' system), you can run something along these lines:" msgstr "Der Abschnitt @ref{Using the Configuration System} gibt einen Überblick über die Konfigurationsdatei. Die in dem Abschnitt diskutierten Beispielkonfigurationen sind im Installationsabbild im Verzeichnis @file{/etc/configuration} zu finden. Um also mit einer Systemkonfiguration anzufangen, die einen grafischen Anzeigeserver (einen „Display-Server“ zum Darstellen einer „Desktop“-Arbeitsumgebung) bietet, könnten Sie so etwas ausführen:" #. type: example #: guix-git/doc/guix.texi:2521 #, no-wrap msgid "" "# mkdir /mnt/etc\n" "# cp /etc/configuration/desktop.scm /mnt/etc/config.scm\n" "# nano /mnt/etc/config.scm\n" msgstr "" "# mkdir /mnt/etc\n" "# cp /etc/configuration/desktop.scm /mnt/etc/config.scm\n" "# nano /mnt/etc/config.scm\n" #. type: Plain text #: guix-git/doc/guix.texi:2525 msgid "You should pay attention to what your configuration file contains, and in particular:" msgstr "Achten Sie darauf, was in Ihrer Konfigurationsdatei steht, und besonders auf Folgendes:" #. type: itemize #: guix-git/doc/guix.texi:2537 msgid "Make sure the @code{bootloader-configuration} form refers to the targets you want to install GRUB on. It should mention @code{grub-bootloader} if you are installing GRUB in the legacy way, or @code{grub-efi-bootloader} for newer UEFI systems. For legacy systems, the @code{targets} field contain the names of the devices, like @code{(list \"/dev/sda\")}; for UEFI systems it names the paths to mounted EFI partitions, like @code{(list \"/boot/efi\")}; do make sure the paths are currently mounted and a @code{file-system} entry is specified in your configuration." msgstr "Ihre @code{bootloader-configuration}-Form muss sich auf die Ziele beziehen, auf die Sie GRUB installieren möchten. Sie sollte genau dann @code{grub-bootloader} nennen, wenn Sie GRUB im alten BIOS-Modus installieren, und für neuere UEFI-Systeme sollten Sie @code{grub-efi-bootloader} nennen. Bei Altsystemen bezeichnet das @code{targets}-Feld die Geräte wie @code{(list \"/dev/sda\")}, bei UEFI-Systemen bezeichnet es die Pfade zu eingebundenen EFI-Partitionen (ESP) wie @code{(list \"/boot/efi\")}; stellen Sie sicher, dass die Pfade tatsächlich dort eingebunden sind und ein @code{file-system}-Eintrag dafür in Ihrer Konfiguration festgelegt wurde." #. type: itemize #: guix-git/doc/guix.texi:2543 msgid "Be sure that your file system labels match the value of their respective @code{device} fields in your @code{file-system} configuration, assuming your @code{file-system} configuration uses the @code{file-system-label} procedure in its @code{device} field." msgstr "Dateisystembezeichnungen müssen mit den jeweiligen @code{device}-Feldern in Ihrer @code{file-system}-Konfiguration übereinstimmen, sofern Sie in Ihrer @code{file-system}-Konfiguration die Prozedur @code{file-system-label} für ihre @code{device}-Felder benutzen." #. type: itemize #: guix-git/doc/guix.texi:2547 msgid "If there are encrypted or RAID partitions, make sure to add a @code{mapped-devices} field to describe them (@pxref{Mapped Devices})." msgstr "Gibt es verschlüsselte Partitionen oder RAID-Partitionen, dann müssen sie im @code{mapped-devices}-Feld genannt werden (siehe @ref{Mapped Devices})." #. type: Plain text #: guix-git/doc/guix.texi:2552 msgid "Once you are done preparing the configuration file, the new system must be initialized (remember that the target root file system is mounted under @file{/mnt}):" msgstr "Wenn Sie damit fertig sind, Ihre Konfigurationsdatei vorzubereiten, können Sie das neue System initialisieren (denken Sie daran, dass zukünftige Wurzeldateisystem muss unter @file{/mnt} wie bereits beschrieben eingebunden sein):" #. type: example #: guix-git/doc/guix.texi:2555 #, no-wrap msgid "guix system init /mnt/etc/config.scm /mnt\n" msgstr "guix system init /mnt/etc/config.scm /mnt\n" #. type: Plain text #: guix-git/doc/guix.texi:2562 msgid "This copies all the necessary files and installs GRUB on @file{/dev/sdX}, unless you pass the @option{--no-bootloader} option. For more information, @pxref{Invoking guix system}. This command may trigger downloads or builds of missing packages, which can take some time." msgstr "Dies kopiert alle notwendigen Dateien und installiert GRUB auf @file{/dev/sdX}, sofern Sie nicht noch die Befehlszeilenoption @option{--no-bootloader} benutzen. Weitere Informationen finden Sie im Abschnitt @ref{Invoking guix system}. Der Befehl kann das Herunterladen oder Erstellen fehlender Softwarepakete auslösen, was einige Zeit in Anspruch nehmen kann." #. type: Plain text #: guix-git/doc/guix.texi:2570 msgid "Once that command has completed---and hopefully succeeded!---you can run @command{reboot} and boot into the new system. The @code{root} password in the new system is initially empty; other users' passwords need to be initialized by running the @command{passwd} command as @code{root}, unless your configuration specifies otherwise (@pxref{user-account-password, user account passwords}). @xref{After System Installation}, for what's next!" msgstr "Sobald der Befehl erfolgreich@tie{}– hoffentlich!@tie{}– durchgelaufen ist, können Sie mit dem Befehl @command{reboot} das neue System booten lassen. Der Administratornutzer @code{root} hat im neuen System zunächst ein leeres Passwort, und Passwörter der anderen Nutzer müssen Sie später setzen, indem Sie den Befehl @command{passwd} als @code{root} ausführen, außer Ihre Konfiguration enthält schon Passwörter (siehe @ref{user-account-password, Passwörter für Benutzerkonten}). Siehe @ref{After System Installation} für Informationen, wie es weiter geht!" #. type: Plain text #: guix-git/doc/guix.texi:2577 msgid "Success, you've now booted into Guix System! You can upgrade the system whenever you want by running:" msgstr "Sie haben es geschafft: Sie haben Guix System erfolgreich gebootet! Sie können Guix System aktualisieren, wann Sie möchten, indem Sie das hier ausführen:" #. type: example #: guix-git/doc/guix.texi:2581 guix-git/doc/guix.texi:17153 #, no-wrap msgid "" "guix pull\n" "sudo guix system reconfigure /etc/config.scm\n" msgstr "" "guix pull\n" "sudo guix system reconfigure /etc/config.scm\n" #. type: Plain text #: guix-git/doc/guix.texi:2586 msgid "This builds a new system @dfn{generation} with the latest packages and services." msgstr "Dadurch wird eine neue @dfn{Systemgeneration} aus den neuesten Paketen und Diensten erstellt." #. type: Plain text #: guix-git/doc/guix.texi:2590 msgid "Now, @pxref{Getting Started with the System}, and join us on @code{#guix} on the Libera.Chat IRC network or on @email{guix-devel@@gnu.org} to share your experience!" msgstr "Werfen Sie nun einen Blick auf @ref{Getting Started with the System} und besuchen Sie uns auf @code{#guix} auf dem Libera.Chat-IRC-Netzwerk oder auf der Mailing-Liste @file{guix-devel@@gnu.org}, um uns Rückmeldung zu geben!" #. type: section #: guix-git/doc/guix.texi:2593 #, no-wrap msgid "Installing Guix in a Virtual Machine" msgstr "Guix in einer virtuellen Maschine installieren" #. type: cindex #: guix-git/doc/guix.texi:2595 #, no-wrap msgid "virtual machine, Guix System installation" msgstr "virtuelle Maschine, Guix System installieren" #. type: cindex #: guix-git/doc/guix.texi:2596 #, no-wrap msgid "virtual private server (VPS)" msgstr "Virtual Private Server (VPS)" #. type: cindex #: guix-git/doc/guix.texi:2597 #, no-wrap msgid "VPS (virtual private server)" msgstr "VPS (Virtual Private Server)" #. type: Plain text #: guix-git/doc/guix.texi:2601 msgid "If you'd like to install Guix System in a virtual machine (VM) or on a virtual private server (VPS) rather than on your beloved machine, this section is for you." msgstr "Wenn Sie Guix System auf einer virtuellen Maschine (VM) oder einem „Virtual Private Server“ (VPS) statt auf Ihrer echten Maschine installieren möchten, ist dieser Abschnitt hier richtig für Sie." #. type: Plain text #: guix-git/doc/guix.texi:2604 msgid "To boot a @uref{https://qemu.org/,QEMU} VM for installing Guix System in a disk image, follow these steps:" msgstr "Um eine virtuelle Maschine für @uref{https://qemu.org/,QEMU} aufzusetzen, mit der Sie Guix System in ein „Disk-Image“ installieren können (also in eine Datei mit einem Abbild eines Plattenspeichers), gehen Sie so vor:" #. type: enumerate #: guix-git/doc/guix.texi:2609 msgid "First, retrieve and decompress the Guix system installation image as described previously (@pxref{USB Stick and DVD Installation})." msgstr "Zunächst laden Sie das Installationsabbild des Guix-Systems wie zuvor beschrieben herunter und entpacken es (siehe @ref{USB Stick and DVD Installation})." #. type: enumerate #: guix-git/doc/guix.texi:2613 msgid "Create a disk image that will hold the installed system. To make a qcow2-formatted disk image, use the @command{qemu-img} command:" msgstr "Legen Sie nun ein Disk-Image an, das das System nach der Installation enthalten soll. Um ein qcow2-formatiertes Disk-Image zu erstellen, benutzen Sie den Befehl @command{qemu-img}:" #. type: example #: guix-git/doc/guix.texi:2616 #, no-wrap msgid "qemu-img create -f qcow2 guix-system.img 50G\n" msgstr "qemu-img create -f qcow2 guix-system.img 50G\n" #. type: enumerate #: guix-git/doc/guix.texi:2620 msgid "The resulting file will be much smaller than 50 GB (typically less than 1 MB), but it will grow as the virtualized storage device is filled up." msgstr "Die Datei, die Sie herausbekommen, wird wesentlich kleiner als 50 GB sein (typischerweise kleiner als 1 MB), vergrößert sich aber, wenn der virtualisierte Speicher gefüllt wird." #. type: enumerate #: guix-git/doc/guix.texi:2623 msgid "Boot the USB installation image in a VM:" msgstr "Starten Sie das USB-Installationsabbild auf einer virtuellen Maschine:" #. type: example #: guix-git/doc/guix.texi:2629 #, no-wrap msgid "" "qemu-system-x86_64 -m 1024 -smp 1 -enable-kvm \\\n" " -nic user,model=virtio-net-pci -boot menu=on,order=d \\\n" " -drive file=guix-system.img \\\n" " -drive media=cdrom,readonly=on,file=guix-system-install-@value{VERSION}.@var{system}.iso\n" msgstr "" "qemu-system-x86_64 -m 1024 -smp 1 -enable-kvm \\\n" " -nic user,model=virtio-net-pci -boot menu=on,order=d \\\n" " -drive file=guix-system.img \\\n" " -drive media=cdrom,readonly=on,file=guix-system-install-@value{VERSION}.@var{System}.iso\n" #. type: enumerate #: guix-git/doc/guix.texi:2633 msgid "@code{-enable-kvm} is optional, but significantly improves performance, @pxref{Running Guix in a VM}." msgstr "@code{-enable-kvm} ist optional, verbessert die Rechenleistung aber erheblich, siehe @ref{Running Guix in a VM}." #. type: enumerate #: guix-git/doc/guix.texi:2637 msgid "You're now root in the VM, proceed with the installation process. @xref{Preparing for Installation}, and follow the instructions." msgstr "Sie sind nun in der virtuellen Maschine als Administratornutzer @code{root} angemeldet und können mit der Installation wie gewohnt fortfahren. Folgen Sie der Anleitung im Abschnitt @ref{Preparing for Installation}." #. type: Plain text #: guix-git/doc/guix.texi:2642 msgid "Once installation is complete, you can boot the system that's on your @file{guix-system.img} image. @xref{Running Guix in a VM}, for how to do that." msgstr "Wurde die Installation abgeschlossen, können Sie das System starten, das sich nun als Abbild in der Datei @file{guix-system.img} befindet. Der Abschnitt @ref{Running Guix in a VM} erklärt, wie Sie das tun können." #. type: cindex #: guix-git/doc/guix.texi:2646 #, no-wrap msgid "installation image" msgstr "Installationsabbild" #. type: Plain text #: guix-git/doc/guix.texi:2649 msgid "The installation image described above was built using the @command{guix system} command, specifically:" msgstr "Das oben beschriebene Installationsabbild wurde mit dem Befehl @command{guix system} erstellt, genauer gesagt mit:" #. type: example #: guix-git/doc/guix.texi:2652 #, no-wrap msgid "guix system image -t iso9660 gnu/system/install.scm\n" msgstr "guix system image -t iso9660 gnu/system/install.scm\n" #. type: Plain text #: guix-git/doc/guix.texi:2657 msgid "Have a look at @file{gnu/system/install.scm} in the source tree, and see also @ref{Invoking guix system} for more information about the installation image." msgstr "Die Datei @file{gnu/system/install.scm} finden Sie im Quellbaum von Guix. Schauen Sie sich die Datei und auch den Abschnitt @ref{Invoking guix system} an, um mehr Informationen über das Installationsabbild zu erhalten." #. type: section #: guix-git/doc/guix.texi:2658 #, no-wrap msgid "Building the Installation Image for ARM Boards" msgstr "Abbild zur Installation für ARM-Rechner erstellen" #. type: Plain text #: guix-git/doc/guix.texi:2662 msgid "Many ARM boards require a specific variant of the @uref{https://www.denx.de/wiki/U-Boot/, U-Boot} bootloader." msgstr "Viele ARM-Chips funktionieren nur mit ihrer eigenen speziellen Variante des @uref{https://www.denx.de/wiki/U-Boot/, U-Boot-Bootloaders}." #. type: Plain text #: guix-git/doc/guix.texi:2666 msgid "If you build a disk image and the bootloader is not available otherwise (on another boot drive etc), it's advisable to build an image that includes the bootloader, specifically:" msgstr "Wenn Sie ein Disk-Image erstellen und der Bootloader nicht anderweitig schon installiert ist (auf einem anderen Laufwerk), ist es ratsam, ein Disk-Image zu erstellen, was den Bootloader enthält, mit dem Befehl:" #. type: example #: guix-git/doc/guix.texi:2669 #, no-wrap msgid "guix system image --system=armhf-linux -e '((@@ (gnu system install) os-with-u-boot) (@@ (gnu system install) installation-os) \"A20-OLinuXino-Lime2\")'\n" msgstr "guix system image --system=armhf-linux -e '((@@ (gnu system install) os-with-u-boot) (@@ (gnu system install) installation-os) \"A20-OLinuXino-Lime2\")'\n" #. type: Plain text #: guix-git/doc/guix.texi:2673 msgid "@code{A20-OLinuXino-Lime2} is the name of the board. If you specify an invalid board, a list of possible boards will be printed." msgstr "@code{A20-OLinuXino-Lime2} ist der Name des Chips. Wenn Sie einen ungültigen Namen eingeben, wird eine Liste möglicher Chip-Namen ausgegeben." #. type: Plain text #: guix-git/doc/guix.texi:2684 msgid "Presumably, you've reached this section because either you have installed Guix on top of another distribution (@pxref{Installation}), or you've installed the standalone Guix System (@pxref{System Installation}). It's time for you to get started using Guix and this section aims to help you do that and give you a feel of what it's like." msgstr "Wenn Sie in diesem Abschnitt angekommen sind, haben Sie vermutlich zuvor entweder Guix auf einer fremden Distribution installiert (siehe @ref{Installation}) oder Sie haben das eigenständige „Guix System“ installiert (siehe @ref{System Installation}). Nun wird es Zeit für Sie, Guix kennenzulernen. Darum soll es in diesem Abschnitt gehen. Wir möchten Ihnen ein Gefühl vermitteln, wie sich Guix anfühlt." #. type: Plain text #: guix-git/doc/guix.texi:2688 msgid "Guix is about installing software, so probably the first thing you'll want to do is to actually look for software. Let's say you're looking for a text editor, you can run:" msgstr "Bei Guix geht es darum, Software zu installieren, also wollen Sie vermutlich zunächst Software finden, die Sie haben möchten. Sagen wir, Sie suchen ein Programm zur Textverarbeitung. Dann führen Sie diesen Befehl aus:" #. type: example #: guix-git/doc/guix.texi:2691 #, no-wrap msgid "guix search text editor\n" msgstr "guix search text editor\n" #. type: Plain text #: guix-git/doc/guix.texi:2698 msgid "This command shows you a number of matching @dfn{packages}, each time showing the package's name, version, a description, and additional info. Once you've found out the one you want to use, let's say Emacs (ah ha!), you can go ahead and install it (run this command as a regular user, @emph{no need for root privileges}!):" msgstr "Durch diesen Befehl stoßen Sie auf eine Reihe passender @dfn{Pakete}. Für jedes werden Ihnen der Name des Pakets, seine Version, eine Beschreibung und weitere Informationen angezeigt. Sobald Sie das Paket gefunden haben, dass Sie benutzen möchten, sagen wir mal Emacs (aha!), dann können Sie weitermachen und es installieren (führen Sie diesen Befehl als normaler Benutzer aus, @emph{Guix braucht hierfür keine Administratorrechte}!):" #. type: example #: guix-git/doc/guix.texi:2701 #, no-wrap msgid "guix install emacs\n" msgstr "guix install emacs\n" #. type: cindex #: guix-git/doc/guix.texi:2703 guix-git/doc/guix.texi:3007 #: guix-git/doc/guix.texi:3060 #, no-wrap msgid "profile" msgstr "Profil" #. type: Plain text #: guix-git/doc/guix.texi:2711 msgid "You've installed your first package, congrats! The package is now visible in your default @dfn{profile}, @file{$HOME/.guix-profile}---a profile is a directory containing installed packages. In the process, you've probably noticed that Guix downloaded pre-built binaries; or, if you explicitly chose to @emph{not} use pre-built binaries, then probably Guix is still building software (@pxref{Substitutes}, for more info)." msgstr "Sie haben soeben Ihr erstes Paket installiert, Glückwunsch! Das Paket ist nun Teil Ihres voreingestellten Profils in @file{$HOME/.guix-profile}@tie{}– ein @dfn{Profil} ist ein Verzeichnis, das installierte Pakete enthält. Während Sie das getan haben, ist Ihnen wahrscheinlich aufgefallen, dass Guix vorerstellte Programmbinärdateien herunterlädt, statt sie auf Ihrem Rechner zu kompilieren, außer wenn Sie diese Funktionalität vorher ausdrücklich @emph{abgeschaltet} haben. In diesem Fall ist Guix wahrscheinlich noch immer mit der Erstellung beschäftigt. Siehe @ref{Substitutes} für mehr Informationen." #. type: Plain text #: guix-git/doc/guix.texi:2714 msgid "Unless you're using Guix System, the @command{guix install} command must have printed this hint:" msgstr "Wenn Sie @emph{nicht} Guix System benutzen, wird der Befehl @command{guix install} diesen Hinweis ausgegeben haben:" #. type: example #: guix-git/doc/guix.texi:2717 #, no-wrap msgid "" "hint: Consider setting the necessary environment variables by running:\n" "\n" msgstr "" "Hinweis: Vielleicht möchten Sie die nötigen Umgebungsvariablen\n" "festlegen, indem Sie dies ausführen:\n" "\n" #. type: example #: guix-git/doc/guix.texi:2720 #, no-wrap msgid "" " GUIX_PROFILE=\"$HOME/.guix-profile\"\n" " . \"$GUIX_PROFILE/etc/profile\"\n" "\n" msgstr "" " GUIX_PROFILE=\"$HOME/.guix-profile\"\n" " . \"$GUIX_PROFILE/etc/profile\"\n" "\n" #. type: example #: guix-git/doc/guix.texi:2722 #, no-wrap msgid "Alternately, see `guix package --search-paths -p \"$HOME/.guix-profile\"'.\n" msgstr "Sie können sie auch mit `guix package --search-paths -p \"$HOME/.guix-profile\"' nachlesen.\n" #. type: Plain text #: guix-git/doc/guix.texi:2736 msgid "Indeed, you must now tell your shell where @command{emacs} and other programs installed with Guix are to be found. Pasting the two lines above will do just that: it will add @code{$HOME/.guix-profile/bin}---which is where the installed package is---to the @code{PATH} environment variable. You can paste these two lines in your shell so they take effect right away, but more importantly you should add them to @file{~/.bash_profile} (or equivalent file if you do not use Bash) so that environment variables are set next time you spawn a shell. You only need to do this once and other search paths environment variables will be taken care of similarly---e.g., if you eventually install @code{python} and Python libraries, @env{GUIX_PYTHONPATH} will be defined." msgstr "Tatsächlich ist es erforderlich, dass Sie Ihrer Shell erst einmal mitteilen, wo sich @command{emacs} und andere mit Guix installierte Programme befinden. Wenn Sie die obigen zwei Zeilen in die Shell einfügen, wird genau das bewerkstelligt: @code{$HOME/.guix-profile/bin}@tie{}– wo sich das installierte Paket befindet@tie{}– wird in die @code{PATH}-Umgebungsvariable eingefügt. Sie können diese zwei Zeilen in Ihre Shell hineinkopieren, damit sie sich sofort auswirken, aber wichtiger ist, dass Sie sie in @file{~/.bash_profile} kopieren (oder eine äquivalente Datei, wenn Sie @emph{nicht} Bash benutzen), damit die Umgebungsvariablen nächstes Mal gesetzt sind, wenn Sie wieder eine Shell öffnen. Das müssen Sie nur einmal machen und es sorgt auch bei anderen Umgebungsvariablen mit Suchpfaden dafür, dass die installierte Software gefunden wird. Wenn Sie zum Beispiel @code{python} und Bibliotheken für Python installieren, wird @env{GUIX_PYTHONPATH} definiert." #. type: Plain text #: guix-git/doc/guix.texi:2739 msgid "You can go on installing packages at your will. To list installed packages, run:" msgstr "Sie können nun weitere Pakete installieren, wann immer Sie möchten. Um die installierten Pakete aufzulisten, führen Sie dies aus:" #. type: example #: guix-git/doc/guix.texi:2742 #, no-wrap msgid "guix package --list-installed\n" msgstr "guix package --list-installed\n" #. type: Plain text #: guix-git/doc/guix.texi:2747 msgid "To remove a package, you would unsurprisingly run @command{guix remove}. A distinguishing feature is the ability to @dfn{roll back} any operation you made---installation, removal, upgrade---by simply typing:" msgstr "Um ein Paket wieder zu entfernen, benutzen Sie wenig überraschend @command{guix remove}. Guix hebt sich von anderen Paketverwaltern darin ab, dass Sie jede Operation, die Sie durchgeführt haben, auch wieder @dfn{zurücksetzen} können, egal ob @code{install}, @code{remove} oder @code{upgrade}, indem Sie dies ausführen:" #. type: example #: guix-git/doc/guix.texi:2750 #, no-wrap msgid "guix package --roll-back\n" msgstr "guix package --roll-back\n" #. type: Plain text #: guix-git/doc/guix.texi:2755 msgid "This is because each operation is in fact a @dfn{transaction} that creates a new @dfn{generation}. These generations and the difference between them can be displayed by running:" msgstr "Das geht deshalb, weil jede Operation eigentlich als @dfn{Transaktion} durchgeführt wird, die eine neue @dfn{Generation} erstellt. Über folgenden Befehl bekommen Sie diese Generationen und den Unterschied zwischen ihnen angezeigt:" #. type: example #: guix-git/doc/guix.texi:2758 #, no-wrap msgid "guix package --list-generations\n" msgstr "guix package --list-generations\n" #. type: Plain text #: guix-git/doc/guix.texi:2761 msgid "Now you know the basics of package management!" msgstr "Jetzt kennen Sie die Grundlagen der Paketverwaltung!" #. type: quotation #: guix-git/doc/guix.texi:2762 guix-git/doc/guix.texi:2825 #: guix-git/doc/guix.texi:7686 #, no-wrap msgid "Going further" msgstr "Vertiefung" #. type: quotation #: guix-git/doc/guix.texi:2770 msgid "@xref{Package Management}, for more about package management. You may like @dfn{declarative} package management with @command{guix package --manifest}, managing separate @dfn{profiles} with @option{--profile}, deleting old generations, collecting garbage, and other nifty features that will come in handy as you become more familiar with Guix. If you are a developer, @pxref{Development} for additional tools. And if you're curious, @pxref{Features}, to peek under the hood." msgstr "Lesen Sie den Abschnitt zur @ref{Package Management} für mehr Informationen dazu. Vielleicht gefällt Ihnen @dfn{deklarative} Paketverwaltung mit @command{guix package --manifest}, die Verwaltung separater @dfn{Profile} mit @option{--profile}, das Löschen alter Generationen und das „Müllsammeln“ (Garbage Collection) sowie andere raffinierte Funktionalitäten, die sich als nützlich erweisen werden, wenn Sie sich länger mit Guix befassen. Wenn Sie Software entwickeln, lernen Sie im Abschnitt @ref{Development} hilfreiche Werkzeuge kennen. Und wenn Sie neugierig sind, wird Ihnen im Abschnitt @ref{Features} ein Überblick gegeben, wie und nach welchen Prinzipien Guix aufgebaut ist." #. type: quotation #: guix-git/doc/guix.texi:2774 msgid "You can also manage the configuration of your entire @dfn{home environment}---your user ``dot files'', services, and packages---using Guix Home. @xref{Home Configuration}, to learn more about it!" msgstr "Es ist sogar möglich, die Konfiguration Ihrer gesamten @dfn{Persönlichen Umgebung} mit Guix zu erledigen@tie{}– die „Dotfiles“, die in Ihrem Persönlichen Verzeichnis einen Namen tragen, der mit einem Punkt beginnt, außerdem eigene Dienste und Pakete für das Benutzerkonto. Diese Funktion heißt Guix Home. Siehe @ref{Home Configuration}, um mehr darüber zu erfahren!" #. type: Plain text #: guix-git/doc/guix.texi:2779 msgid "Once you've installed a set of packages, you will want to periodically @emph{upgrade} them to the latest and greatest version. To do that, you will first pull the latest revision of Guix and its package collection:" msgstr "Sobald Sie eine Reihe von Paketen installiert haben, werden Sie diese regelmäßig auf deren neueste und beste Version @emph{aktualisieren} wollen. Dazu ist es erforderlich, dass Sie zunächst die neueste Version von Guix und seiner Paketsammlung mit einem „Pull“ laden:" #. type: Plain text #: guix-git/doc/guix.texi:2789 msgid "The end result is a new @command{guix} command, under @file{~/.config/guix/current/bin}. Unless you're on Guix System, the first time you run @command{guix pull}, be sure to follow the hint that the command prints and, similar to what we saw above, paste these two lines in your terminal and @file{.bash_profile}:" msgstr "Das Endergebnis ist ein neuer @command{guix}-Befehl innerhalb von @file{~/.config/guix/current/bin}. Sofern Sie nicht Guix System benutzen, sollten Sie dem Hinweis Folge leisten, den Sie bei der ersten Ausführung von @command{guix pull} angezeigt bekommen, d.h.@: ähnlich wie oben beschrieben, fügen Sie diese zwei Zeilen in Ihr Terminal und Ihre @file{.bash_profile} ein:" #. type: example #: guix-git/doc/guix.texi:2793 #, no-wrap msgid "" "GUIX_PROFILE=\"$HOME/.config/guix/current\"\n" ". \"$GUIX_PROFILE/etc/profile\"\n" msgstr "" "GUIX_PROFILE=\"$HOME/.config/guix/current\"\n" ". \"$GUIX_PROFILE/etc/profile\"\n" #. type: Plain text #: guix-git/doc/guix.texi:2797 msgid "You must also instruct your shell to point to this new @command{guix}:" msgstr "Ebenso müssen Sie Ihre Shell auf diesen neuen @command{guix}-Befehl hinweisen:" #. type: example #: guix-git/doc/guix.texi:2800 #, no-wrap msgid "hash guix\n" msgstr "hash guix\n" #. type: Plain text #: guix-git/doc/guix.texi:2804 msgid "At this point, you're running a brand new Guix. You can thus go ahead and actually upgrade all the packages you previously installed:" msgstr "Wenn das geschafft ist, benutzen Sie ein brandneues Guix. Jetzt können Sie damit fortfahren, alle zuvor installierten Pakete zu aktualisieren:" #. type: example #: guix-git/doc/guix.texi:2807 #, no-wrap msgid "guix upgrade\n" msgstr "guix upgrade\n" #. type: Plain text #: guix-git/doc/guix.texi:2813 msgid "As you run this command, you will see that binaries are downloaded (or perhaps some packages are built), and eventually you end up with the upgraded packages. Should one of these upgraded packages not be to your liking, remember you can always roll back!" msgstr "Während dieser Befehl ausgeführt wird, werden Sie sehen, dass Binärdateien heruntergeladen werden (vielleicht müssen manche Pakete auch auf Ihrem Rechner erstellt werden). Letztendlich stehen Ihnen die aktualisierten Pakete zur Verfügung. Falls eine der Aktualisierungen nicht Ihren Wünschen entspricht, haben Sie immer auch die Möglichkeit, sie auf den alten Stand zurückzusetzen!" #. type: Plain text #: guix-git/doc/guix.texi:2816 msgid "You can display the exact revision of Guix you're currently using by running:" msgstr "Sie können sich anzeigen lassen, welche Version von Guix Sie genau verwenden, indem Sie dies ausführen:" #. type: example #: guix-git/doc/guix.texi:2819 #, no-wrap msgid "guix describe\n" msgstr "guix describe\n" #. type: Plain text #: guix-git/doc/guix.texi:2824 msgid "The information it displays is @emph{all it takes to reproduce the exact same Guix}, be it at a different point in time or on a different machine." msgstr "Die angezeigten Informationen sind @emph{alles, was nötig ist, um genau dasselbe Guix zu installieren}. Damit können Sie zu einem anderen Zeitpunkt oder auf einer anderen Maschine genau dieselbe Software nachbilden." #. type: quotation #: guix-git/doc/guix.texi:2830 msgid "@xref{Invoking guix pull}, for more information. @xref{Channels}, on how to specify additional @dfn{channels} to pull packages from, how to replicate Guix, and more. You may also find @command{time-machine} handy (@pxref{Invoking guix time-machine})." msgstr "Siehe @ref{Invoking guix pull} für weitere Informationen. Siehe @ref{Channels} für Erklärungen, wie man zusätzliche @dfn{Kanäle} als Paketquellen angibt, wie man Guix nachbilden kann, und mehr. Vielleicht hilft Ihnen auch die @command{time-machine}-Funktion (siehe @ref{Invoking guix time-machine})." #. type: Plain text #: guix-git/doc/guix.texi:2835 msgid "If you installed Guix System, one of the first things you'll want to do is to upgrade your system. Once you've run @command{guix pull} to get the latest Guix, you can upgrade the system like this:" msgstr "Wenn Sie Guix System installieren, dürfte eines der ersten Dinge, das Sie tun wollen, eine Aktualisierung Ihres Systems sein. Sobald Sie @command{guix pull} ausgeführt haben, können Sie mit diesem Befehl das System aktualisieren:" #. type: example #: guix-git/doc/guix.texi:2838 guix-git/doc/guix.texi:17066 #, no-wrap msgid "sudo guix system reconfigure /etc/config.scm\n" msgstr "sudo guix system reconfigure /etc/config.scm\n" #. type: Plain text #: guix-git/doc/guix.texi:2844 msgid "Upon completion, the system runs the latest versions of its software packages. Just like for packages, you can always @emph{roll back} to a previous generation @emph{of the whole system}. @xref{Getting Started with the System}, to learn how to manage your system." msgstr "Nach Abschluss läuft auf dem System die neueste Version seiner Software-Pakete. Genau wie bei Paketen können Sie jederzeit @emph{das gesamte System} auf eine vorherige Generation @emph{zurücksetzen}. Siehe @ref{Getting Started with the System}, um zu erfahren, wie Sie das System pflegen." #. type: Plain text #: guix-git/doc/guix.texi:2846 msgid "Now you know enough to get started!" msgstr "Jetzt wissen Sie genug, um anzufangen!" #. type: quotation #: guix-git/doc/guix.texi:2847 #, no-wrap msgid "Resources" msgstr "Weitere Ressourcen" #. type: quotation #: guix-git/doc/guix.texi:2850 msgid "The rest of this manual provides a reference for all things Guix. Here are some additional resources you may find useful:" msgstr "Der Rest dieses Handbuchs stellt eine Referenz für alles rund um Guix dar. Hier sind ein paar andere Ressourcen, die sich als nützlich erweisen könnten:" #. type: itemize #: guix-git/doc/guix.texi:2855 msgid "@xref{Top,,, guix-cookbook, The GNU Guix Cookbook}, for a list of ``how-to'' style of recipes for a variety of applications." msgstr "Siehe @ref{Top,,, guix-cookbook.de, das GNU-Guix-Kochbuch} für eine Liste von anleitungsartigen Rezepten zu einer Vielzahl von Anwendungszwecken." #. type: itemize #: guix-git/doc/guix.texi:2860 msgid "The @uref{https://guix.gnu.org/guix-refcard.pdf, GNU Guix Reference Card} lists in two pages most of the commands and options you'll ever need." msgstr "In der @uref{https://guix.gnu.org/guix-refcard.pdf, GNU Guix Reference Card} sind in zwei Seiten die meisten Befehle und Befehlszeilenoptionen aufgeführt, die Sie jemals brauchen werden." #. type: itemize #: guix-git/doc/guix.texi:2865 msgid "The web site contains @uref{https://guix.gnu.org/en/videos/, instructional videos} covering topics such as everyday use of Guix, how to get help, and how to become a contributor." msgstr "Auf dem Webauftritt gibt es @uref{https://guix.gnu.org/de/videos/, Lehrvideos} zu Themen wie der alltäglichen Nutzung von Guix, wo man Hilfe bekommt und wie man mitmachen kann." #. type: itemize #: guix-git/doc/guix.texi:2869 msgid "@xref{Documentation}, to learn how to access documentation on your computer." msgstr "Siehe @ref{Documentation}, um zu erfahren, wie Sie von Ihrem Rechner aus auf Dokumentation von Software zugreifen können." #. type: quotation #: guix-git/doc/guix.texi:2872 msgid "We hope you will enjoy Guix as much as the community enjoys building it!" msgstr "Wir hoffen, dass Ihnen Guix genauso viel Spaß bereitet wie der Guix-Gemeinde bei seiner Entwicklung!" #. type: Plain text #: guix-git/doc/guix.texi:2883 msgid "The purpose of GNU Guix is to allow users to easily install, upgrade, and remove software packages, without having to know about their build procedures or dependencies. Guix also goes beyond this obvious set of features." msgstr "Der Zweck von GNU Guix ist, Benutzern die leichte Installation, Aktualisierung und Entfernung von Software-Paketen zu ermöglichen, ohne dass sie ihre Erstellungsprozeduren oder Abhängigkeiten kennen müssen. Guix kann natürlich noch mehr als diese offensichtlichen Funktionalitäten." #. type: Plain text #: guix-git/doc/guix.texi:2891 msgid "This chapter describes the main features of Guix, as well as the package management tools it provides. Along with the command-line interface described below (@pxref{Invoking guix package, @code{guix package}}), you may also use the Emacs-Guix interface (@pxref{Top,,, emacs-guix, The Emacs-Guix Reference Manual}), after installing @code{emacs-guix} package (run @kbd{M-x guix-help} command to start with it):" msgstr "Dieses Kapitel beschreibt die Hauptfunktionalitäten von Guix, sowie die von Guix angebotenen Paketverwaltungswerkzeuge. Zusätzlich zu den im Folgenden beschriebenen Befehlszeilen-Benutzerschnittstellen (siehe @ref{Invoking guix package, @code{guix package}}) können Sie auch mit der Emacs-Guix-Schnittstelle (siehe @ref{Top,,, emacs-guix, Referenzhandbuch von Emacs-Guix}) arbeiten, nachdem Sie das Paket @code{emacs-guix} installiert haben (führen Sie zum Einstieg in Emacs-Guix den Emacs-Befehl @kbd{M-x guix-help} aus):" #. type: example #: guix-git/doc/guix.texi:2894 #, no-wrap msgid "guix install emacs-guix\n" msgstr "guix install emacs-guix\n" #. type: Plain text #: guix-git/doc/guix.texi:2916 msgid "Here we assume you've already made your first steps with Guix (@pxref{Getting Started}) and would like to get an overview about what's going on under the hood." msgstr "Wir nehmen hier an, dass Sie schon Ihre ersten Erfahrungen mit Guix gemacht haben (siehe @ref{Getting Started}) und gerne einen Überblick darüber bekommen würden, wie Guix im Detail funktioniert." #. type: Plain text #: guix-git/doc/guix.texi:2920 msgid "When using Guix, each package ends up in the @dfn{package store}, in its own directory---something that resembles @file{/gnu/store/xxx-package-1.2}, where @code{xxx} is a base32 string." msgstr "Wenn Sie Guix benutzen, landet jedes Paket schließlich im @dfn{Paket-Store} in seinem eigenen Verzeichnis@tie{}– der Name ist ähnlich wie @file{/gnu/store/xxx-package-1.2}, wobei @code{xxx} eine Zeichenkette in Base32-Darstellung ist." #. type: Plain text #: guix-git/doc/guix.texi:2925 msgid "Instead of referring to these directories, users have their own @dfn{profile}, which points to the packages that they actually want to use. These profiles are stored within each user's home directory, at @code{$HOME/.guix-profile}." msgstr "Statt diese Verzeichnisse direkt anzugeben, haben Nutzer ihr eigenes @dfn{Profil}, welches auf diejenigen Pakete zeigt, die sie tatsächlich benutzen wollen. Diese Profile sind im Persönlichen Verzeichnis des jeweiligen Nutzers gespeichert als @code{$HOME/.guix-profile}." #. type: Plain text #: guix-git/doc/guix.texi:2933 msgid "For example, @code{alice} installs GCC 4.7.2. As a result, @file{/home/alice/.guix-profile/bin/gcc} points to @file{/gnu/store/@dots{}-gcc-4.7.2/bin/gcc}. Now, on the same machine, @code{bob} had already installed GCC 4.8.0. The profile of @code{bob} simply continues to point to @file{/gnu/store/@dots{}-gcc-4.8.0/bin/gcc}---i.e., both versions of GCC coexist on the same system without any interference." msgstr "Zum Beispiel installiert @code{alice} GCC 4.7.2. Dadurch zeigt dann @file{/home/alice/.guix-profile/bin/gcc} auf @file{/gnu/store/…-gcc-4.7.2/bin/gcc}. Auf demselben Rechner hat @code{bob} bereits GCC 4.8.0 installiert. Das Profil von @code{bob} zeigt dann einfach weiterhin auf @file{/gnu/store/…-gcc-4.8.0/bin/gcc}@tie{}– d.h.@: beide Versionen von GCC koexistieren auf demselben System, ohne sich zu stören." #. type: Plain text #: guix-git/doc/guix.texi:2937 msgid "The @command{guix package} command is the central tool to manage packages (@pxref{Invoking guix package}). It operates on the per-user profiles, and can be used @emph{with normal user privileges}." msgstr "Der Befehl @command{guix package} ist das zentrale Werkzeug, um Pakete zu verwalten (siehe @ref{Invoking guix package}). Es arbeitet auf dem eigenen Profil jedes Nutzers und kann @emph{mit normalen Benutzerrechten} ausgeführt werden." #. type: cindex #: guix-git/doc/guix.texi:2938 guix-git/doc/guix.texi:3022 #, no-wrap msgid "transactions" msgstr "Transaktionen" #. type: Plain text #: guix-git/doc/guix.texi:2945 msgid "The command provides the obvious install, remove, and upgrade operations. Each invocation is actually a @emph{transaction}: either the specified operation succeeds, or nothing happens. Thus, if the @command{guix package} process is terminated during the transaction, or if a power outage occurs during the transaction, then the user's profile remains in its previous state, and remains usable." msgstr "Der Befehl stellt die offensichtlichen Installations-, Entfernungs- und Aktualisierungsoperationen zur Verfügung. Jeder Aufruf ist tatsächlich eine eigene @emph{Transaktion}: Entweder die angegebene Operation wird erfolgreich durchgeführt, oder gar nichts passiert. Wenn also der Prozess von @command{guix package} während der Transaktion beendet wird, oder es zum Stromausfall während der Transaktion kommt, dann bleibt der alte, nutzbare Zustands des Nutzerprofils erhalten." #. type: Plain text #: guix-git/doc/guix.texi:2953 msgid "In addition, any package transaction may be @emph{rolled back}. So, if, for example, an upgrade installs a new version of a package that turns out to have a serious bug, users may roll back to the previous instance of their profile, which was known to work well. Similarly, the global system configuration on Guix is subject to transactional upgrades and roll-back (@pxref{Getting Started with the System})." msgstr "Zudem kann jede Pakettransaktion @emph{zurückgesetzt} werden (Rollback). Wird also zum Beispiel durch eine Aktualisierung eine neue Version eines Pakets installiert, die einen schwerwiegenden Fehler zur Folge hat, können Nutzer ihr Profil einfach auf die vorherige Profilinstanz zurücksetzen, von der sie wissen, dass sie gut lief. Ebenso unterliegt bei Guix auch die globale Systemkonfiguration transaktionellen Aktualisierungen und Rücksetzungen (siehe @ref{Getting Started with the System})." #. type: Plain text #: guix-git/doc/guix.texi:2960 msgid "All packages in the package store may be @emph{garbage-collected}. Guix can determine which packages are still referenced by user profiles, and remove those that are provably no longer referenced (@pxref{Invoking guix gc}). Users may also explicitly remove old generations of their profile so that the packages they refer to can be collected." msgstr "Alle Pakete im Paket-Store können vom @emph{Müllsammler} (Garbage Collector) gelöscht werden. Guix ist in der Lage, festzustellen, welche Pakete noch durch Benutzerprofile referenziert werden, und entfernt nur diese, die nachweislich nicht mehr referenziert werden (siehe @ref{Invoking guix gc}). Benutzer können auch ausdrücklich alte Generationen ihres Profils löschen, damit die zugehörigen Pakete vom Müllsammler gelöscht werden können." #. type: Plain text #: guix-git/doc/guix.texi:2973 msgid "Guix takes a @dfn{purely functional} approach to package management, as described in the introduction (@pxref{Introduction}). Each @file{/gnu/store} package directory name contains a hash of all the inputs that were used to build that package---compiler, libraries, build scripts, etc. This direct correspondence allows users to make sure a given package installation matches the current state of their distribution. It also helps maximize @dfn{build reproducibility}: thanks to the isolated build environments that are used, a given build is likely to yield bit-identical files when performed on different machines (@pxref{Invoking guix-daemon, container})." msgstr "Guix verfolgt einen @dfn{rein funktionalen} Ansatz bei der Paketverwaltung, wie er in der Einleitung beschrieben wurde (siehe @ref{Introduction}). Jedes Paketverzeichnis im @file{/gnu/store} hat einen Hash all seiner bei der Erstellung benutzten Eingaben im Namen@tie{}– Compiler, Bibliotheken, Erstellungs-Skripts etc. Diese direkte Entsprechung ermöglicht es Benutzern, eine Paketinstallation zu benutzen, die sicher dem aktuellen Stand ihrer Distribution entspricht. Sie hilft auch dabei, die @dfn{Reproduzierbarkeit der Erstellungen} zu maximieren: Dank den isolierten Erstellungsumgebungen, die benutzt werden, resultiert eine Erstellung wahrscheinlich in bitweise identischen Dateien, auch wenn sie auf unterschiedlichen Maschinen durchgeführt wird (siehe @ref{Invoking guix-daemon, Container})." #. type: Plain text #: guix-git/doc/guix.texi:2984 msgid "This foundation allows Guix to support @dfn{transparent binary/source deployment}. When a pre-built binary for a @file{/gnu/store} item is available from an external source---a @dfn{substitute}, Guix just downloads it and unpacks it; otherwise, it builds the package from source, locally (@pxref{Substitutes}). Because build results are usually bit-for-bit reproducible, users do not have to trust servers that provide substitutes: they can force a local build and @emph{challenge} providers (@pxref{Invoking guix challenge})." msgstr "Auf dieser Grundlage kann Guix @dfn{transparent Binär- oder Quelldateien ausliefern}. Wenn eine vorerstellte Binärdatei für ein @file{/gnu/store}-Objekt von einer externen Quelle verfügbar ist@tie{}– ein @dfn{Substitut}@tie{}–, lädt Guix sie einfach herunter und entpackt sie, andernfalls erstellt Guix das Paket lokal aus seinem Quellcode (siehe @ref{Substitutes}). Weil Erstellungsergebnisse normalerweise Bit für Bit reproduzierbar sind, müssen die Nutzer den Servern, die Substitute anbieten, nicht blind vertrauen; sie können eine lokale Erstellung erzwingen und Substitute @emph{anfechten} (siehe @ref{Invoking guix challenge})." #. type: Plain text #: guix-git/doc/guix.texi:2990 msgid "Control over the build environment is a feature that is also useful for developers. The @command{guix shell} command allows developers of a package to quickly set up the right development environment for their package, without having to manually install the dependencies of the package into their profile (@pxref{Invoking guix shell})." msgstr "Kontrolle über die Erstellungsumgebung ist eine auch für Entwickler nützliche Funktionalität. Der Befehl @command{guix shell} ermöglicht es Entwicklern eines Pakets, schnell die richtige Entwicklungsumgebung für ihr Paket einzurichten, ohne manuell die Abhängigkeiten des Pakets in ihr Profil installieren zu müssen (siehe @ref{Invoking guix shell})." #. type: cindex #: guix-git/doc/guix.texi:2991 #, no-wrap msgid "replication, of software environments" msgstr "Nachbildung, von Software-Umgebungen" #. type: cindex #: guix-git/doc/guix.texi:2992 #, no-wrap msgid "provenance tracking, of software artifacts" msgstr "Provenienzverfolgung, von Software-Artefakten" #. type: Plain text #: guix-git/doc/guix.texi:2999 msgid "All of Guix and its package definitions is version-controlled, and @command{guix pull} allows you to ``travel in time'' on the history of Guix itself (@pxref{Invoking guix pull}). This makes it possible to replicate a Guix instance on a different machine or at a later point in time, which in turn allows you to @emph{replicate complete software environments}, while retaining precise @dfn{provenance tracking} of the software." msgstr "Ganz Guix und all seine Paketdefinitionen stehen unter Versionskontrolle und @command{guix pull} macht es möglich, auf dem Verlauf der Entwicklung von Guix selbst „in der Zeit zu reisen“ (siehe @ref{Invoking guix pull}). Dadurch kann eine Instanz von Guix auf einer anderen Maschine oder zu einem späteren Zeitpunkt genau nachgebildet werden, wodurch auch @emph{vollständige Software-Umgebungen gänzlich nachgebildet} werden können, mit genauer @dfn{Provenienzverfolgung}, wo diese Software herkommt." #. type: section #: guix-git/doc/guix.texi:3001 #, no-wrap msgid "Invoking @command{guix package}" msgstr "@command{guix package} aufrufen" #. type: cindex #: guix-git/doc/guix.texi:3003 #, no-wrap msgid "installing packages" msgstr "Installieren von Paketen" #. type: cindex #: guix-git/doc/guix.texi:3004 #, no-wrap msgid "removing packages" msgstr "Entfernen von Paketen" #. type: cindex #: guix-git/doc/guix.texi:3005 #, no-wrap msgid "package installation" msgstr "Paketinstallation" #. type: cindex #: guix-git/doc/guix.texi:3006 #, no-wrap msgid "package removal" msgstr "Paketentfernung" #. type: command{#1} #: guix-git/doc/guix.texi:3008 #, no-wrap msgid "guix package" msgstr "guix package" #. type: Plain text #: guix-git/doc/guix.texi:3017 msgid "The @command{guix package} command is the tool that allows users to install, upgrade, and remove packages, as well as rolling back to previous configurations. These operations work on a user @dfn{profile}---a directory of installed packages. Each user has a default profile in @file{$HOME/.guix-profile}. The command operates only on the user's own profile, and works with normal user privileges (@pxref{Features}). Its syntax is:" msgstr "Der Befehl @command{guix package} ist ein Werkzeug, womit Nutzer Pakete installieren, aktualisieren, entfernen und auf vorherige Konfigurationen zurücksetzen können. Diese Operationen arbeiten auf einem @dfn{Benutzerprofil}, d.h.@: einem Verzeichnis, das installierte Pakete enthält. Jeder Benutzer verfügt über ein Standardprofil in @file{$HOME/.guix-profile}. Dabei wird nur das eigene Profil des Nutzers verwendet, und es funktioniert mit normalen Benutzerrechten, ohne Administratorrechte (siehe @ref{Funktionalitäten}). Die Syntax ist:" #. type: example #: guix-git/doc/guix.texi:3020 #, no-wrap msgid "guix package @var{options}\n" msgstr "guix package @var{Optionen}\n" #. type: Plain text #: guix-git/doc/guix.texi:3027 msgid "Primarily, @var{options} specifies the operations to be performed during the transaction. Upon completion, a new profile is created, but previous @dfn{generations} of the profile remain available, should the user want to roll back." msgstr "In erster Linie geben die @var{Optionen} an, welche Operationen in der Transaktion durchgeführt werden sollen. Nach Abschluss wird ein neues Profil erzeugt, aber vorherige @dfn{Generationen} des Profils bleiben verfügbar, falls der Benutzer auf sie zurückwechseln will." #. type: Plain text #: guix-git/doc/guix.texi:3030 msgid "For example, to remove @code{lua} and install @code{guile} and @code{guile-cairo} in a single transaction:" msgstr "Um zum Beispiel @code{lua} zu entfernen und @code{guile} und @code{guile-cairo} in einer einzigen Transaktion zu installieren:" #. type: example #: guix-git/doc/guix.texi:3033 #, no-wrap msgid "guix package -r lua -i guile guile-cairo\n" msgstr "guix package -r lua -i guile guile-cairo\n" #. type: cindex #: guix-git/doc/guix.texi:3035 #, no-wrap msgid "aliases, for @command{guix package}" msgstr "Alias-Namen für @command{guix package}" #. type: Plain text #: guix-git/doc/guix.texi:3037 msgid "For your convenience, we also provide the following aliases:" msgstr "Um es Ihnen einfacher zu machen, bieten wir auch die folgenden Alias-Namen an:" #. type: itemize #: guix-git/doc/guix.texi:3041 msgid "@command{guix search} is an alias for @command{guix package -s}," msgstr "@command{guix search} ist eine andere Schreibweise für @command{guix package -s}," #. type: itemize #: guix-git/doc/guix.texi:3043 msgid "@command{guix install} is an alias for @command{guix package -i}," msgstr "@command{guix install} ist eine andere Schreibweise für @command{guix package -i}," #. type: itemize #: guix-git/doc/guix.texi:3045 msgid "@command{guix remove} is an alias for @command{guix package -r}," msgstr "@command{guix remove} ist eine andere Schreibweise für @command{guix package -r}," #. type: itemize #: guix-git/doc/guix.texi:3047 msgid "@command{guix upgrade} is an alias for @command{guix package -u}," msgstr "@command{guix upgrade} ist eine andere Schreibweise für @command{guix package -u}" #. type: itemize #: guix-git/doc/guix.texi:3049 msgid "and @command{guix show} is an alias for @command{guix package --show=}." msgstr "und @command{guix show} ist eine andere Schreibweise für @command{guix package --show=}." #. type: Plain text #: guix-git/doc/guix.texi:3054 msgid "These aliases are less expressive than @command{guix package} and provide fewer options, so in some cases you'll probably want to use @command{guix package} directly." msgstr "Diese Alias-Namen sind weniger ausdrucksstark als @command{guix package} und stellen weniger Befehlszeilenoptionen bereit, deswegen werden Sie vermutlich manchmal @command{guix package} direkt benutzen wollen." #. type: Plain text #: guix-git/doc/guix.texi:3059 msgid "@command{guix package} also supports a @dfn{declarative approach} whereby the user specifies the exact set of packages to be available and passes it @i{via} the @option{--manifest} option (@pxref{profile-manifest, @option{--manifest}})." msgstr "@command{guix package} unterstützt auch ein @dfn{deklaratives Vorgehen}, wobei der Nutzer die genaue Menge an Paketen, die verfügbar sein sollen, festlegt und über die Befehlszeilenoption @option{--manifest} übergibt (siehe @ref{profile-manifest, @option{--manifest}})." #. type: Plain text #: guix-git/doc/guix.texi:3066 msgid "For each user, a symlink to the user's default profile is automatically created in @file{$HOME/.guix-profile}. This symlink always points to the current generation of the user's default profile. Thus, users can add @file{$HOME/.guix-profile/bin} to their @env{PATH} environment variable, and so on." msgstr "Für jeden Benutzer wird automatisch eine symbolische Verknüpfung zu seinem Standardprofil angelegt als @file{$HOME/.guix-profile}. Diese symbolische Verknüpfung zeigt immer auf die aktuelle Generation des Standardprofils des Benutzers. Somit können Nutzer @file{$HOME/.guix-profile/bin} z.B.@: zu ihrer Umgebungsvariablen @env{PATH} hinzufügen." #. type: cindex #: guix-git/doc/guix.texi:3066 guix-git/doc/guix.texi:3292 #, no-wrap msgid "search paths" msgstr "Suchpfade" #. type: Plain text #: guix-git/doc/guix.texi:3071 msgid "If you are not using Guix System, consider adding the following lines to your @file{~/.bash_profile} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}) so that newly-spawned shells get all the right environment variable definitions:" msgstr "Wenn Sie @emph{nicht} Guix System benutzen, sollten Sie in Betracht ziehen, folgende Zeilen zu Ihrem @file{~/.bash_profile} hinzuzufügen (siehe @ref{Bash Startup Files,,, bash, Referenzhandbuch von GNU Bash}), damit in neu erzeugten Shells alle Umgebungsvariablen richtig definiert werden:" #. type: example #: guix-git/doc/guix.texi:3075 #, no-wrap msgid "" "GUIX_PROFILE=\"$HOME/.guix-profile\" ; \\\n" "source \"$GUIX_PROFILE/etc/profile\"\n" msgstr "" "GUIX_PROFILE=\"$HOME/.guix-profile\" ; \\\n" "source \"$GUIX_PROFILE/etc/profile\"\n" #. type: Plain text #: guix-git/doc/guix.texi:3086 msgid "In a multi-user setup, user profiles are stored in a place registered as a @dfn{garbage-collector root}, which @file{$HOME/.guix-profile} points to (@pxref{Invoking guix gc}). That directory is normally @code{@var{localstatedir}/guix/profiles/per-user/@var{user}}, where @var{localstatedir} is the value passed to @code{configure} as @option{--localstatedir}, and @var{user} is the user name. The @file{per-user} directory is created when @command{guix-daemon} is started, and the @var{user} sub-directory is created by @command{guix package}." msgstr "Ist Ihr System für mehrere Nutzer eingerichtet, werden Nutzerprofile an einem Ort gespeichert, der als @dfn{Müllsammlerwurzel} registriert ist, auf die @file{$HOME/.guix-profile} zeigt (siehe @ref{Invoking guix gc}). Dieses Verzeichnis ist normalerweise @code{@var{localstatedir}/guix/profiles/per-user/@var{Benutzer}}, wobei @var{localstatedir} der an @code{configure} als @option{--localstatedir} übergebene Wert ist und @var{Benutzer} für den jeweiligen Benutzernamen steht. Das @file{per-user}-Verzeichnis wird erstellt, wenn @command{guix-daemon} gestartet wird, und das Unterverzeichnis @var{Benutzer} wird durch @command{guix package} erstellt." #. type: Plain text #: guix-git/doc/guix.texi:3088 msgid "The @var{options} can be among the following:" msgstr "Als @var{Optionen} kann vorkommen:" #. type: item #: guix-git/doc/guix.texi:3091 #, no-wrap msgid "--install=@var{package} @dots{}" msgstr "--install=@var{Paket} …" #. type: itemx #: guix-git/doc/guix.texi:3092 #, no-wrap msgid "-i @var{package} @dots{}" msgstr "-i @var{Paket} …" #. type: table #: guix-git/doc/guix.texi:3094 msgid "Install the specified @var{package}s." msgstr "Die angegebenen @var{Paket}e installieren." #. type: table #: guix-git/doc/guix.texi:3099 msgid "Each @var{package} may specify a simple package name, such as @code{guile}, optionally followed by an at-sign and version number, such as @code{guile@@3.0.7} or simply @code{guile@@3.0}. In the latter case, the newest version prefixed by @code{3.0} is selected." msgstr "Jedes @var{Paket} kann einfach durch seinen Paketnamen aufgeführt werden, wie @code{guile}, optional gefolgt von einem At-Zeichen @@ und einer Versionsnummer, wie @code{guile@@3.0.7} oder auch nur @code{guile@@3.0}. In letzterem Fall wird die neueste Version mit Präfix @code{3.0} ausgewählt." #. type: table #: guix-git/doc/guix.texi:3105 msgid "If no version number is specified, the newest available version will be selected. In addition, such a @var{package} specification may contain a colon, followed by the name of one of the outputs of the package, as in @code{gcc:doc} or @code{binutils@@2.22:lib} (@pxref{Packages with Multiple Outputs})." msgstr "Wird keine Versionsnummer angegeben, wird die neueste verfügbare Version ausgewählt. Zudem kann in der Spezifikation von @var{Paket} ein Doppelpunkt auftauchen, gefolgt vom Namen einer der Ausgaben des Pakets, wie @code{gcc:doc} oder @code{binutils@@2.22:lib} (siehe @ref{Packages with Multiple Outputs})." #. type: table #: guix-git/doc/guix.texi:3109 msgid "Packages with a corresponding name (and optionally version) are searched for among the GNU distribution modules (@pxref{Package Modules})." msgstr "Pakete mit zugehörigem Namen (und optional der Version) werden unter den Modulen der GNU-Distribution gesucht (siehe @ref{Package Modules})." #. type: table #: guix-git/doc/guix.texi:3113 msgid "Alternatively, a @var{package} can directly specify a store file name such as @file{/gnu/store/...-guile-3.0.7}, as produced by, e.g., @code{guix build}." msgstr "Alternativ können Sie für @var{Paket} auch einen Dateinamen aus dem Store direkt angeben, etwa @file{/gnu/store/…-guile-3.0.7}. Den Dateinamen erfahren Sie zum Beispiel mit @code{guix build}." #. type: cindex #: guix-git/doc/guix.texi:3114 #, no-wrap msgid "propagated inputs" msgstr "propagierte Eingaben" #. type: table #: guix-git/doc/guix.texi:3120 msgid "Sometimes packages have @dfn{propagated inputs}: these are dependencies that automatically get installed along with the required package (@pxref{package-propagated-inputs, @code{propagated-inputs} in @code{package} objects}, for information about propagated inputs in package definitions)." msgstr "Manchmal haben Pakete @dfn{propagierte Eingaben}: Als solche werden Abhängigkeiten bezeichnet, die automatisch zusammen mit dem angeforderten Paket installiert werden (im Abschnitt @ref{package-propagated-inputs, @code{propagated-inputs} in @code{package}-Objekten} sind weitere Informationen über propagierte Eingaben in Paketdefinitionen zu finden)." #. type: anchor{#1} #: guix-git/doc/guix.texi:3127 msgid "package-cmd-propagated-inputs" msgstr "package-cmd-propagated-inputs" #. type: table #: guix-git/doc/guix.texi:3127 msgid "An example is the GNU MPC library: its C header files refer to those of the GNU MPFR library, which in turn refer to those of the GMP library. Thus, when installing MPC, the MPFR and GMP libraries also get installed in the profile; removing MPC also removes MPFR and GMP---unless they had also been explicitly installed by the user." msgstr "Ein Beispiel ist die GNU-MPC-Bibliothek: Ihre C-Headerdateien verweisen auf die der GNU-MPFR-Bibliothek, welche wiederum auf die der GMP-Bibliothek verweisen. Wenn also MPC installiert wird, werden auch die MPFR- und GMP-Bibliotheken in das Profil installiert; entfernt man MPC, werden auch MPFR und GMP entfernt@tie{}– außer sie wurden noch auf andere Art ausdrücklich vom Nutzer installiert." #. type: table #: guix-git/doc/guix.texi:3132 msgid "Besides, packages sometimes rely on the definition of environment variables for their search paths (see explanation of @option{--search-paths} below). Any missing or possibly incorrect environment variable definitions are reported here." msgstr "Abgesehen davon setzen Pakete manchmal die Definition von Umgebungsvariablen für ihre Suchpfade voraus (siehe die Erklärung von @option{--search-paths} weiter unten). Alle fehlenden oder womöglich falschen Definitionen von Umgebungsvariablen werden hierbei gemeldet." #. type: item #: guix-git/doc/guix.texi:3133 #, no-wrap msgid "--install-from-expression=@var{exp}" msgstr "--install-from-expression=@var{Ausdruck}" #. type: itemx #: guix-git/doc/guix.texi:3134 #, no-wrap msgid "-e @var{exp}" msgstr "-e @var{Ausdruck}" #. type: table #: guix-git/doc/guix.texi:3136 msgid "Install the package @var{exp} evaluates to." msgstr "Das Paket installieren, zu dem der @var{Ausdruck} ausgewertet wird." #. type: table #: guix-git/doc/guix.texi:3141 msgid "@var{exp} must be a Scheme expression that evaluates to a @code{<package>} object. This option is notably useful to disambiguate between same-named variants of a package, with expressions such as @code{(@@ (gnu packages commencement) guile-final)}." msgstr "Beim @var{Ausdruck} muss es sich um einen Scheme-Ausdruck handeln, der zu einem @code{<package>}-Objekt ausgewertet wird. Diese Option ist besonders nützlich, um zwischen gleichnamigen Varianten eines Pakets zu unterscheiden, durch Ausdrücke wie @code{(@@ (gnu packages commencement) guile-final)}." #. type: table #: guix-git/doc/guix.texi:3145 msgid "Note that this option installs the first output of the specified package, which may be insufficient when needing a specific output of a multiple-output package." msgstr "Beachten Sie, dass mit dieser Option die erste Ausgabe des angegebenen Pakets installiert wird, was unzureichend sein kann, wenn eine bestimmte Ausgabe eines Pakets mit mehreren Ausgaben gewünscht ist." #. type: item #: guix-git/doc/guix.texi:3146 #, no-wrap msgid "--install-from-file=@var{file}" msgstr "--install-from-file=@var{Datei}" #. type: itemx #: guix-git/doc/guix.texi:3147 guix-git/doc/guix.texi:6119 #: guix-git/doc/guix.texi:13472 #, no-wrap msgid "-f @var{file}" msgstr "-f @var{Datei}" #. type: table #: guix-git/doc/guix.texi:3149 msgid "Install the package that the code within @var{file} evaluates to." msgstr "Das Paket installieren, zu dem der Code in der @var{Datei} ausgewertet wird." #. type: table #: guix-git/doc/guix.texi:3152 guix-git/doc/guix.texi:6125 #: guix-git/doc/guix.texi:6650 msgid "As an example, @var{file} might contain a definition like this (@pxref{Defining Packages}):" msgstr "Zum Beispiel könnte die @var{Datei} eine Definition wie diese enthalten (siehe @ref{Defining Packages}):" #. type: include #: guix-git/doc/guix.texi:3154 guix-git/doc/guix.texi:13480 #, no-wrap msgid "package-hello.scm" msgstr "package-hello.scm" #. type: table #: guix-git/doc/guix.texi:3161 msgid "Developers may find it useful to include such a @file{guix.scm} file in the root of their project source tree that can be used to test development snapshots and create reproducible development environments (@pxref{Invoking guix shell})." msgstr "Entwickler könnten es für nützlich erachten, eine solche @file{guix.scm}-Datei im Quellbaum ihres Projekts abzulegen, mit der Zwischenstände der Entwicklung getestet und reproduzierbare Erstellungsumgebungen aufgebaut werden können (siehe @ref{Invoking guix shell})." #. type: table #: guix-git/doc/guix.texi:3166 msgid "The @var{file} may also contain a JSON representation of one or more package definitions. Running @code{guix package -f} on @file{hello.json} with the following contents would result in installing the package @code{greeter} after building @code{myhello}:" msgstr "Es ist auch möglich, eine @var{Datei} mit einer JSON-Repräsentation von einer oder mehr Paketdefinitionen anzugeben. Wenn Sie @code{guix package -f} auf @file{hello.json} mit folgendem Inhalt ausführen würden, würde das Paket @code{greeter} installiert, nachdem @code{myhello} erstellt wurde:" #. type: example #: guix-git/doc/guix.texi:3169 guix-git/doc/guix.texi:13490 #, no-wrap msgid "@verbatiminclude package-hello.json\n" msgstr "@verbatiminclude package-hello.json\n" #. type: item #: guix-git/doc/guix.texi:3171 #, no-wrap msgid "--remove=@var{package} @dots{}" msgstr "--remove=@var{Paket} …" #. type: itemx #: guix-git/doc/guix.texi:3172 #, no-wrap msgid "-r @var{package} @dots{}" msgstr "-r @var{Paket} …" #. type: table #: guix-git/doc/guix.texi:3174 msgid "Remove the specified @var{package}s." msgstr "Die angegebenen @var{Paket}e entfernen." #. type: table #: guix-git/doc/guix.texi:3179 msgid "As for @option{--install}, each @var{package} may specify a version number and/or output name in addition to the package name. For instance, @samp{-r glibc:debug} would remove the @code{debug} output of @code{glibc}." msgstr "Wie auch bei @option{--install} kann jedes @var{Paket} neben dem Paketnamen auch eine Versionsnummer und/oder eine Ausgabe benennen. Zum Beispiel würde @samp{-r glibc:debug} die @code{debug}-Ausgabe von @code{glibc} aus dem Profil entfernen." #. type: item #: guix-git/doc/guix.texi:3180 #, no-wrap msgid "--upgrade[=@var{regexp} @dots{}]" msgstr "--upgrade[=@var{Regexp} …]" #. type: itemx #: guix-git/doc/guix.texi:3181 #, no-wrap msgid "-u [@var{regexp} @dots{}]" msgstr "-u [@var{Regexp} …]" #. type: cindex #: guix-git/doc/guix.texi:3182 #, no-wrap msgid "upgrading packages" msgstr "Pakete aktualisieren" #. type: table #: guix-git/doc/guix.texi:3186 msgid "Upgrade all the installed packages. If one or more @var{regexp}s are specified, upgrade only installed packages whose name matches a @var{regexp}. Also see the @option{--do-not-upgrade} option below." msgstr "Alle installierten Pakete aktualisieren. Wenn einer oder mehr reguläre Ausdrücke (Regexps) angegeben wurden, werden nur diejenigen installierten Pakete aktualisiert, deren Name zu einer der @var{Regexp}s passt. Siehe auch weiter unten die Befehlszeilenoption @option{--do-not-upgrade}." #. type: table #: guix-git/doc/guix.texi:3191 msgid "Note that this upgrades package to the latest version of packages found in the distribution currently installed. To update your distribution, you should regularly run @command{guix pull} (@pxref{Invoking guix pull})." msgstr "Beachten Sie, dass das Paket so auf die neueste Version unter den Paketen gebracht wird, die in der aktuell installierten Distribution vorliegen. Um jedoch Ihre Distribution zu aktualisieren, sollten Sie regelmäßig @command{guix pull} ausführen (siehe @ref{Invoking guix pull})." #. type: cindex #: guix-git/doc/guix.texi:3192 #, no-wrap msgid "package transformations, upgrades" msgstr "Paketumwandlungen, Aktualisierung" #. type: table #: guix-git/doc/guix.texi:3197 msgid "When upgrading, package transformations that were originally applied when creating the profile are automatically re-applied (@pxref{Package Transformation Options}). For example, assume you first installed Emacs from the tip of its development branch with:" msgstr "Wenn Sie Ihre Pakete aktualisieren, werden die bei der Erstellung des vorherigen Profils angewandten Paketumwandlungen automatisch erneut angwandt (siehe @ref{Package Transformation Options}). Nehmen wir zum Beispiel an, Sie haben zuerst Emacs von der Spitze seines Entwicklungs-Branches installiert:" #. type: example #: guix-git/doc/guix.texi:3200 #, no-wrap msgid "guix install emacs-next --with-branch=emacs-next=master\n" msgstr "guix install emacs-next --with-branch=emacs-next=master\n" #. type: table #: guix-git/doc/guix.texi:3205 msgid "Next time you run @command{guix upgrade}, Guix will again pull the tip of the Emacs development branch and build @code{emacs-next} from that checkout." msgstr "Wenn Sie das nächste Mal @command{guix upgrade} ausführen, lädt Guix von neuem die Spitze des Emacs-Entwicklungsbranches, um aus diesem Checkout @code{emacs-next} zu erstellen." #. type: table #: guix-git/doc/guix.texi:3210 msgid "Note that transformation options such as @option{--with-branch} and @option{--with-source} depend on external state; it is up to you to ensure that they work as expected. You can also discard a transformations that apply to a package by running:" msgstr "Beachten Sie, dass Umwandlungsoptionen wie @option{--with-branch} und @option{--with-source} von externem Zustand abhängen. Es liegt an Ihnen, sicherzustellen, dass sie wie erwartet funktionieren. Sie können auf Pakete angewandte Umwandlungen auch weglassen, indem Sie das ausführen:" #. type: example #: guix-git/doc/guix.texi:3213 #, no-wrap msgid "guix install @var{package}\n" msgstr "guix install @var{Paket}\n" #. type: item #: guix-git/doc/guix.texi:3215 #, no-wrap msgid "--do-not-upgrade[=@var{regexp} @dots{}]" msgstr "--do-not-upgrade[=@var{Regexp} …]" #. type: table #: guix-git/doc/guix.texi:3220 msgid "When used together with the @option{--upgrade} option, do @emph{not} upgrade any packages whose name matches a @var{regexp}. For example, to upgrade all packages in the current profile except those containing the substring ``emacs'':" msgstr "In Verbindung mit der Befehlszeilenoption @option{--upgrade}, führe @emph{keine} Aktualisierung von Paketen durch, deren Name zum regulären Ausdruck @var{Regexp} passt. Um zum Beispiel alle Pakete im aktuellen Profil zu aktualisieren mit Ausnahme derer, die „emacs“ im Namen haben:" #. type: example #: guix-git/doc/guix.texi:3223 #, no-wrap msgid "$ guix package --upgrade . --do-not-upgrade emacs\n" msgstr "$ guix package --upgrade . --do-not-upgrade emacs\n" #. type: anchor{#1} #: guix-git/doc/guix.texi:3225 #, no-wrap msgid "profile-manifest" msgstr "profile-manifest" #. type: item #: guix-git/doc/guix.texi:3225 guix-git/doc/guix.texi:6138 #: guix-git/doc/guix.texi:6655 guix-git/doc/guix.texi:7214 #: guix-git/doc/guix.texi:14866 guix-git/doc/guix.texi:16601 #, no-wrap msgid "--manifest=@var{file}" msgstr "--manifest=@var{Datei}" #. type: itemx #: guix-git/doc/guix.texi:3226 guix-git/doc/guix.texi:6139 #: guix-git/doc/guix.texi:6656 guix-git/doc/guix.texi:7215 #: guix-git/doc/guix.texi:14867 #, no-wrap msgid "-m @var{file}" msgstr "-m @var{Datei}" #. type: cindex #: guix-git/doc/guix.texi:3227 #, no-wrap msgid "profile declaration" msgstr "Profildeklaration" #. type: cindex #: guix-git/doc/guix.texi:3228 #, no-wrap msgid "profile manifest" msgstr "Profilmanifest" #. type: table #: guix-git/doc/guix.texi:3232 msgid "Create a new generation of the profile from the manifest object returned by the Scheme code in @var{file}. This option can be repeated several times, in which case the manifests are concatenated." msgstr "Erstellt eine neue Generation des Profils aus dem vom Scheme-Code in @var{Datei} gelieferten Manifest-Objekt. Wenn diese Befehlszeilenoption mehrmals wiederholt angegeben wird, werden die Manifeste aneinandergehängt." #. type: table #: guix-git/doc/guix.texi:3238 msgid "This allows you to @emph{declare} the profile's contents rather than constructing it through a sequence of @option{--install} and similar commands. The advantage is that @var{file} can be put under version control, copied to different machines to reproduce the same profile, and so on." msgstr "Dadurch könnrn Sie den Inhalt des Profils @emph{deklarieren}, statt ihn durch eine Folge von Befehlen wie @option{--install} u.Ä.@: zu generieren. Der Vorteil ist, dass die @var{Datei} unter Versionskontrolle gestellt werden kann, auf andere Maschinen zum Reproduzieren desselben Profils kopiert werden kann und Ähnliches." #. type: table #: guix-git/doc/guix.texi:3241 msgid "@var{file} must return a @dfn{manifest} object, which is roughly a list of packages:" msgstr "Der Code in der @var{Datei} muss ein @dfn{Manifest}-Objekt liefern, was ungefähr einer Liste von Paketen entspricht:" #. type: findex #: guix-git/doc/guix.texi:3242 #, no-wrap msgid "packages->manifest" msgstr "packages->manifest" #. type: lisp #: guix-git/doc/guix.texi:3245 #, no-wrap msgid "" "(use-package-modules guile emacs)\n" "\n" msgstr "" "(use-package-modules guile emacs)\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:3251 #, no-wrap msgid "" "(packages->manifest\n" " (list emacs\n" " guile-2.0\n" " ;; Use a specific package output.\n" " (list guile-2.0 \"debug\")))\n" msgstr "" "(packages->manifest\n" " (list emacs\n" " guile-2.0\n" " ;; Eine bestimmte Paketausgabe nutzen.\n" " (list guile-2.0 \"debug\")))\n" #. type: table #: guix-git/doc/guix.texi:3256 msgid "@xref{Writing Manifests}, for information on how to write a manifest. @xref{export-manifest, @option{--export-manifest}}, to learn how to obtain a manifest file from an existing profile." msgstr "Siehe @ref{Writing Manifests} für Informationen dazu, wie man ein Manifest schreibt. Siehe @ref{export-manifest, @option{--export-manifest}}, um zu erfahren, wie Sie aus einem bestehenden Profil eine Manifestdatei erzeugen können." #. type: item #: guix-git/doc/guix.texi:3257 guix-git/doc/guix.texi:4551 #, no-wrap msgid "--roll-back" msgstr "--roll-back" #. type: cindex #: guix-git/doc/guix.texi:3258 guix-git/doc/guix.texi:4552 #: guix-git/doc/guix.texi:42779 guix-git/doc/guix.texi:47383 #, no-wrap msgid "rolling back" msgstr "Rücksetzen" #. type: cindex #: guix-git/doc/guix.texi:3259 guix-git/doc/guix.texi:4553 #, no-wrap msgid "undoing transactions" msgstr "Zurücksetzen von Transaktionen" #. type: cindex #: guix-git/doc/guix.texi:3260 guix-git/doc/guix.texi:4554 #, no-wrap msgid "transactions, undoing" msgstr "Transaktionen, zurücksetzen" #. type: table #: guix-git/doc/guix.texi:3263 msgid "Roll back to the previous @dfn{generation} of the profile---i.e., undo the last transaction." msgstr "Wechselt zur vorherigen @dfn{Generation} des Profils zurück@tie{}– d.h.@: macht die letzte Transaktion rückgängig." #. type: table #: guix-git/doc/guix.texi:3266 msgid "When combined with options such as @option{--install}, roll back occurs before any other actions." msgstr "In Verbindung mit Befehlszeilenoptionen wie @option{--install} wird zuerst zurückgesetzt, bevor andere Aktionen durchgeführt werden." #. type: table #: guix-git/doc/guix.texi:3270 msgid "When rolling back from the first generation that actually contains installed packages, the profile is made to point to the @dfn{zeroth generation}, which contains no files apart from its own metadata." msgstr "Ein Rücksetzen der ersten Generation, die installierte Pakete enthält, wechselt das Profil zur @dfn{nullten Generation}, die keinerlei Dateien enthält, abgesehen von Metadaten über sich selbst." #. type: table #: guix-git/doc/guix.texi:3274 msgid "After having rolled back, installing, removing, or upgrading packages overwrites previous future generations. Thus, the history of the generations in a profile is always linear." msgstr "Nach dem Zurücksetzen überschreibt das Installieren, Entfernen oder Aktualisieren von Paketen vormals zukünftige Generationen, d.h.@: der Verlauf der Generationen eines Profils ist immer linear." #. type: item #: guix-git/doc/guix.texi:3275 guix-git/doc/guix.texi:4558 #, no-wrap msgid "--switch-generation=@var{pattern}" msgstr "--switch-generation=@var{Muster}" #. type: itemx #: guix-git/doc/guix.texi:3276 guix-git/doc/guix.texi:4559 #, no-wrap msgid "-S @var{pattern}" msgstr "-S @var{Muster}" #. type: cindex #: guix-git/doc/guix.texi:3277 guix-git/doc/guix.texi:3510 #: guix-git/doc/guix.texi:4560 guix-git/doc/guix.texi:42737 #, no-wrap msgid "generations" msgstr "Generationen" #. type: table #: guix-git/doc/guix.texi:3279 guix-git/doc/guix.texi:4562 msgid "Switch to a particular generation defined by @var{pattern}." msgstr "Wechselt zu der bestimmten Generation, die durch das @var{Muster} bezeichnet wird." #. type: table #: guix-git/doc/guix.texi:3285 guix-git/doc/guix.texi:4568 msgid "@var{pattern} may be either a generation number or a number prefixed with ``+'' or ``-''. The latter means: move forward/backward by a specified number of generations. For example, if you want to return to the latest generation after @option{--roll-back}, use @option{--switch-generation=+1}." msgstr "Als @var{Muster} kann entweder die Nummer einer Generation oder eine Nummer mit vorangestelltem „+“ oder „-“ dienen. Letzteres springt die angegebene Anzahl an Generationen vor oder zurück. Zum Beispiel kehrt @option{--switch-generation=+1} nach einem Zurücksetzen wieder zur neueren Generation zurück." #. type: table #: guix-git/doc/guix.texi:3290 msgid "The difference between @option{--roll-back} and @option{--switch-generation=-1} is that @option{--switch-generation} will not make a zeroth generation, so if a specified generation does not exist, the current generation will not be changed." msgstr "Der Unterschied zwischen @option{--roll-back} und @option{--switch-generation=-1} ist, dass @option{--switch-generation} keine nullte Generation erzeugen wird; existiert die angegebene Generation nicht, bleibt schlicht die aktuelle Generation erhalten." #. type: item #: guix-git/doc/guix.texi:3291 #, no-wrap msgid "--search-paths[=@var{kind}]" msgstr "--search-paths[=@var{Art}]" #. type: table #: guix-git/doc/guix.texi:3297 msgid "Report environment variable definitions, in Bash syntax, that may be needed in order to use the set of installed packages. These environment variables are used to specify @dfn{search paths} for files used by some of the installed packages." msgstr "Führe die Definitionen von Umgebungsvariablen auf, in Bash-Syntax, die nötig sein könnten, um alle installierten Pakete nutzen zu können. Diese Umgebungsvariablen werden benutzt, um die @dfn{Suchpfade} für Dateien festzulegen, die von einigen installierten Paketen benutzt werden." #. type: table #: guix-git/doc/guix.texi:3306 msgid "For example, GCC needs the @env{CPATH} and @env{LIBRARY_PATH} environment variables to be defined so it can look for headers and libraries in the user's profile (@pxref{Environment Variables,,, gcc, Using the GNU Compiler Collection (GCC)}). If GCC and, say, the C library are installed in the profile, then @option{--search-paths} will suggest setting these variables to @file{@var{profile}/include} and @file{@var{profile}/lib}, respectively (@pxref{Search Paths}, for info on search path specifications associated with packages.)" msgstr "Zum Beispiel braucht GCC die Umgebungsvariablen @env{CPATH} und @env{LIBRARY_PATH}, um zu wissen, wo sich im Benutzerprofil Header und Bibliotheken befinden (siehe @ref{Environment Variables,,, gcc, Using the GNU Compiler Collection (GCC)}). Wenn GCC und, sagen wir, die C-Bibliothek im Profil installiert sind, schlägt @option{--search-paths} also vor, diese Variablen jeweils auf @file{@var{profile}/include} und @file{@var{profile}/lib} verweisen zu lassen (siehe @ref{Search Paths} für Informationen, wie Paketen Suchpfadspezifikationen zugeordnet werden)." #. type: table #: guix-git/doc/guix.texi:3309 msgid "The typical use case is to define these environment variables in the shell:" msgstr "Die typische Nutzung ist, in der Shell diese Variablen zu definieren:" #. type: example #: guix-git/doc/guix.texi:3312 #, no-wrap msgid "$ eval $(guix package --search-paths)\n" msgstr "$ eval $(guix package --search-paths)\n" #. type: table #: guix-git/doc/guix.texi:3318 msgid "@var{kind} may be one of @code{exact}, @code{prefix}, or @code{suffix}, meaning that the returned environment variable definitions will either be exact settings, or prefixes or suffixes of the current value of these variables. When omitted, @var{kind} defaults to @code{exact}." msgstr "Als @var{Art} kann entweder @code{exact}, @code{prefix} oder @code{suffix} gewählt werden, wodurch die gelieferten Definitionen der Umgebungsvariablen entweder exakt die Einstellungen für Guix meldet, oder sie als Präfix oder Suffix an den aktuellen Wert dieser Variablen anhängt. Gibt man keine @var{Art} an, wird der Vorgabewert @code{exact} verwendet." #. type: table #: guix-git/doc/guix.texi:3321 msgid "This option can also be used to compute the @emph{combined} search paths of several profiles. Consider this example:" msgstr "Diese Befehlszeilenoption kann auch benutzt werden, um die @emph{kombinierten} Suchpfade mehrerer Profile zu berechnen. Betrachten Sie dieses Beispiel:" #. type: example #: guix-git/doc/guix.texi:3326 #, no-wrap msgid "" "$ guix package -p foo -i guile\n" "$ guix package -p bar -i guile-json\n" "$ guix package -p foo -p bar --search-paths\n" msgstr "" "$ guix package -p foo -i guile\n" "$ guix package -p bar -i guile-json\n" "$ guix package -p foo -p bar --search-paths\n" #. type: table #: guix-git/doc/guix.texi:3331 msgid "The last command above reports about the @env{GUILE_LOAD_PATH} variable, even though, taken individually, neither @file{foo} nor @file{bar} would lead to that recommendation." msgstr "Der letzte Befehl oben meldet auch die Definition der Umgebungsvariablen @env{GUILE_LOAD_PATH}, obwohl für sich genommen weder @file{foo} noch @file{bar} zu dieser Empfehlung führen würden." #. type: cindex #: guix-git/doc/guix.texi:3333 #, no-wrap msgid "profile, choosing" msgstr "Profil, auswählen" #. type: item #: guix-git/doc/guix.texi:3334 guix-git/doc/guix.texi:4588 #: guix-git/doc/guix.texi:4981 guix-git/doc/guix.texi:6198 #: guix-git/doc/guix.texi:6695 #, no-wrap msgid "--profile=@var{profile}" msgstr "--profile=@var{Profil}" #. type: itemx #: guix-git/doc/guix.texi:3335 guix-git/doc/guix.texi:4589 #: guix-git/doc/guix.texi:4982 guix-git/doc/guix.texi:6199 #: guix-git/doc/guix.texi:6696 #, no-wrap msgid "-p @var{profile}" msgstr "-p @var{Profil}" #. type: table #: guix-git/doc/guix.texi:3337 msgid "Use @var{profile} instead of the user's default profile." msgstr "Auf @var{Profil} anstelle des Standardprofils des Benutzers arbeiten." #. type: table #: guix-git/doc/guix.texi:3342 msgid "@var{profile} must be the name of a file that will be created upon completion. Concretely, @var{profile} will be a mere symbolic link (``symlink'') pointing to the actual profile where packages are installed:" msgstr "Als @var{Profil} muss der Name einer Datei angegeben werden, die dann nach Abschluss der Transaktion erzeugt wird. Konkret wird @var{Profil} nur zu einer symbolischen Verknüpfung („Symlink“) auf das eigentliche Profil gemacht, in das Pakete installiert werden." #. type: example #: guix-git/doc/guix.texi:3348 #, no-wrap msgid "" "$ guix install hello -p ~/code/my-profile\n" "@dots{}\n" "$ ~/code/my-profile/bin/hello\n" "Hello, world!\n" msgstr "" "$ guix install hello -p ~/code/mein-profil\n" "…\n" "$ ~/code/mein-profil/bin/hello\n" "Hallo, Welt!\n" #. type: table #: guix-git/doc/guix.texi:3352 msgid "All it takes to get rid of the profile is to remove this symlink and its siblings that point to specific generations:" msgstr "Um das Profil loszuwerden, genügt es, die symbolische Verknüpfung und damit einhergehende Verknüpfungen, die auf bestimmte Generationen verweisen, zu entfernen:" #. type: example #: guix-git/doc/guix.texi:3355 #, no-wrap msgid "$ rm ~/code/my-profile ~/code/my-profile-*-link\n" msgstr "$ rm ~/code/mein-profil ~/code/mein-profil-*-link\n" #. type: item #: guix-git/doc/guix.texi:3357 #, no-wrap msgid "--list-profiles" msgstr "--list-profiles" #. type: table #: guix-git/doc/guix.texi:3359 msgid "List all the user's profiles:" msgstr "Alle Profile des Benutzers auflisten:" #. type: example #: guix-git/doc/guix.texi:3366 #, no-wrap msgid "" "$ guix package --list-profiles\n" "/home/charlie/.guix-profile\n" "/home/charlie/code/my-profile\n" "/home/charlie/code/devel-profile\n" "/home/charlie/tmp/test\n" msgstr "" "$ guix package --list-profiles\n" "/home/charlie/.guix-profile\n" "/home/charlie/code/my-profile\n" "/home/charlie/code/devel-profile\n" "/home/charlie/tmp/test\n" #. type: table #: guix-git/doc/guix.texi:3369 msgid "When running as root, list all the profiles of all the users." msgstr "Wird es als Administratornutzer „root“ ausgeführt, werden die Profile aller Benutzer aufgelistet." #. type: cindex #: guix-git/doc/guix.texi:3370 #, no-wrap msgid "collisions, in a profile" msgstr "Kollisionen, in einem Profil" #. type: cindex #: guix-git/doc/guix.texi:3371 #, no-wrap msgid "colliding packages in profiles" msgstr "Paketkollisionen in Profilen" #. type: cindex #: guix-git/doc/guix.texi:3372 #, no-wrap msgid "profile collisions" msgstr "Profilkollisionen" #. type: item #: guix-git/doc/guix.texi:3373 #, no-wrap msgid "--allow-collisions" msgstr "--allow-collisions" #. type: table #: guix-git/doc/guix.texi:3375 msgid "Allow colliding packages in the new profile. Use at your own risk!" msgstr "Kollidierende Pakete im neuen Profil zulassen. Benutzung auf eigene Gefahr!" #. type: table #: guix-git/doc/guix.texi:3379 msgid "By default, @command{guix package} reports as an error @dfn{collisions} in the profile. Collisions happen when two or more different versions or variants of a given package end up in the profile." msgstr "Standardmäßig wird @command{guix package} @dfn{Kollisionen} als Fehler auffassen und melden. Zu Kollisionen kommt es, wenn zwei oder mehr verschiedene Versionen oder Varianten desselben Pakets im Profil landen." #. type: item #: guix-git/doc/guix.texi:3380 guix-git/doc/guix.texi:4631 #: guix-git/doc/guix.texi:7306 #, no-wrap msgid "--bootstrap" msgstr "--bootstrap" #. type: table #: guix-git/doc/guix.texi:3383 msgid "Use the bootstrap Guile to build the profile. This option is only useful to distribution developers." msgstr "Erstellt das Profil mit dem Bootstrap-Guile. Diese Option ist nur für Entwickler der Distribution nützlich." #. type: Plain text #: guix-git/doc/guix.texi:3389 msgid "In addition to these actions, @command{guix package} supports the following options to query the current state of a profile, or the availability of packages:" msgstr "Zusätzlich zu diesen Aktionen unterstützt @command{guix package} folgende Befehlszeilenoptionen, um den momentanen Zustand eines Profils oder die Verfügbarkeit von Paketen nachzulesen:" #. type: item #: guix-git/doc/guix.texi:3392 #, no-wrap msgid "--search=@var{regexp}" msgstr "--search=@var{Regexp}" #. type: itemx #: guix-git/doc/guix.texi:3393 #, no-wrap msgid "-s @var{regexp}" msgstr "-s @var{Regexp}" #. type: anchor{#1} #: guix-git/doc/guix.texi:3395 msgid "guix-search" msgstr "guix-search" #. type: cindex #: guix-git/doc/guix.texi:3395 guix-git/doc/guix.texi:4043 #, no-wrap msgid "searching for packages" msgstr "Suche nach Paketen" #. type: table #: guix-git/doc/guix.texi:3401 msgid "List the available packages whose name, synopsis, or description matches @var{regexp} (in a case-insensitive fashion), sorted by relevance. Print all the metadata of matching packages in @code{recutils} format (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})." msgstr "Führt alle verfügbaren Pakete auf, deren Name, Zusammenfassung oder Beschreibung zum regulären Ausdruck @var{Regexp} passt, ohne Groß- und Kleinschreibung zu unterscheiden und sortiert nach ihrer Relevanz. Alle Metadaten passender Pakete werden im @code{recutils}-Format geliefert (siehe @ref{Top, GNU-recutils-Datenbanken,, recutils, GNU recutils manual})." #. type: table #: guix-git/doc/guix.texi:3404 msgid "This allows specific fields to be extracted using the @command{recsel} command, for instance:" msgstr "So können bestimmte Felder mit dem Befehl @command{recsel} extrahiert werden, zum Beispiel:" #. type: example #: guix-git/doc/guix.texi:3410 #, no-wrap msgid "" "$ guix package -s malloc | recsel -p name,version,relevance\n" "name: jemalloc\n" "version: 4.5.0\n" "relevance: 6\n" "\n" msgstr "" "$ guix package -s malloc | recsel -p name,version,relevance\n" "name: jemalloc\n" "version: 4.5.0\n" "relevance: 6\n" "\n" #. type: example #: guix-git/doc/guix.texi:3414 #, no-wrap msgid "" "name: glibc\n" "version: 2.25\n" "relevance: 1\n" "\n" msgstr "" "name: glibc\n" "version: 2.25\n" "relevance: 1\n" "\n" #. type: example #: guix-git/doc/guix.texi:3418 #, no-wrap msgid "" "name: libgc\n" "version: 7.6.0\n" "relevance: 1\n" msgstr "" "name: libgc\n" "version: 7.6.0\n" "relevance: 1\n" #. type: table #: guix-git/doc/guix.texi:3422 msgid "Similarly, to show the name of all the packages available under the terms of the GNU@tie{}LGPL version 3:" msgstr "Ebenso kann der Name aller zu den Bedingungen der GNU@tie{}LGPL, Version 3, verfügbaren Pakete ermittelt werden:" #. type: example #: guix-git/doc/guix.texi:3426 #, no-wrap msgid "" "$ guix package -s \"\" | recsel -p name -e 'license ~ \"LGPL 3\"'\n" "name: elfutils\n" "\n" msgstr "" "$ guix package -s \"\" | recsel -p name -e 'license ~ \"LGPL 3\"'\n" "name: elfutils\n" "\n" #. type: example #: guix-git/doc/guix.texi:3429 #, no-wrap msgid "" "name: gmp\n" "@dots{}\n" msgstr "" "name: gmp\n" "…\n" #. type: table #: guix-git/doc/guix.texi:3435 msgid "It is also possible to refine search results using several @code{-s} flags to @command{guix package}, or several arguments to @command{guix search}. For example, the following command returns a list of board games (this time using the @command{guix search} alias):" msgstr "Es ist auch möglich, Suchergebnisse näher einzuschränken, indem Sie @code{-s} mehrmals an @command{guix package} übergeben, oder mehrere Argumente an @command{guix search} übergeben. Zum Beispiel liefert folgender Befehl eines Liste von Brettspielen:" #. type: example #: guix-git/doc/guix.texi:3440 #, no-wrap msgid "" "$ guix search '\\<board\\>' game | recsel -p name\n" "name: gnubg\n" "@dots{}\n" msgstr "" "$ guix search '\\<board\\>' game | recsel -p name\n" "name: gnubg\n" "…\n" #. type: table #: guix-git/doc/guix.texi:3446 msgid "If we were to omit @code{-s game}, we would also get software packages that deal with printed circuit boards; removing the angle brackets around @code{board} would further add packages that have to do with keyboards." msgstr "Würden wir @code{-s game} weglassen, bekämen wir auch Software-Pakete aufgelistet, die mit „printed circuit boards“ (elektronischen Leiterplatten) zu tun haben; ohne die spitzen Klammern um @code{board} bekämen wir auch Pakete, die mit „keyboards“ (Tastaturen, oder musikalischen Keyboard) zu tun haben." #. type: table #: guix-git/doc/guix.texi:3450 msgid "And now for a more elaborate example. The following command searches for cryptographic libraries, filters out Haskell, Perl, Python, and Ruby libraries, and prints the name and synopsis of the matching packages:" msgstr "Es ist Zeit für ein komplexeres Beispiel. Folgender Befehl sucht kryptografische Bibliotheken, filtert Haskell-, Perl-, Python- und Ruby-Bibliotheken heraus und gibt Namen und Zusammenfassung passender Pakete aus:" #. type: example #: guix-git/doc/guix.texi:3454 #, no-wrap msgid "" "$ guix search crypto library | \\\n" " recsel -e '! (name ~ \"^(ghc|perl|python|ruby)\")' -p name,synopsis\n" msgstr "" "$ guix search crypto library | \\\n" " recsel -e '! (name ~ \"^(ghc|perl|python|ruby)\")' -p name,synopsis\n" #. type: table #: guix-git/doc/guix.texi:3459 msgid "@xref{Selection Expressions,,, recutils, GNU recutils manual}, for more information on @dfn{selection expressions} for @code{recsel -e}." msgstr "Siehe @ref{Selection Expressions,,, recutils, GNU recutils manual}, es enthält weitere Informationen über @dfn{Auswahlausdrücke} mit @code{recsel -e}." #. type: item #: guix-git/doc/guix.texi:3460 #, no-wrap msgid "--show=@var{package}" msgstr "--show=@var{Paket}" #. type: table #: guix-git/doc/guix.texi:3464 msgid "Show details about @var{package}, taken from the list of available packages, in @code{recutils} format (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})." msgstr "Zeigt Details über das @var{Paket} aus der Liste verfügbarer Pakete, im @code{recutils}-Format (siehe @ref{Top, GNU-recutils-Datenbanken,, recutils, GNU recutils manual})." #. type: example #: guix-git/doc/guix.texi:3469 #, no-wrap msgid "" "$ guix package --show=guile | recsel -p name,version\n" "name: guile\n" "version: 3.0.5\n" "\n" msgstr "" "$ guix package --show=guile | recsel -p name,version\n" "name: guile\n" "version: 3.0.5\n" "\n" #. type: example #: guix-git/doc/guix.texi:3472 #, no-wrap msgid "" "name: guile\n" "version: 3.0.2\n" "\n" msgstr "" "name: guile\n" "version: 3.0.2\n" "\n" #. type: example #: guix-git/doc/guix.texi:3476 #, no-wrap msgid "" "name: guile\n" "version: 2.2.7\n" "@dots{}\n" msgstr "" "name: guile\n" "version: 2.2.7\n" "…\n" #. type: table #: guix-git/doc/guix.texi:3480 msgid "You may also specify the full name of a package to only get details about a specific version of it (this time using the @command{guix show} alias):" msgstr "Sie können auch den vollständigen Namen eines Pakets angeben, um Details nur über diese Version angezeigt zu bekommen (diesmal benutzen wir die andere Schreibweise @command{guix show}):" #. type: example #: guix-git/doc/guix.texi:3484 #, no-wrap msgid "" "$ guix show guile@@3.0.5 | recsel -p name,version\n" "name: guile\n" "version: 3.0.5\n" msgstr "" "$ guix show guile@@3.0.5 | recsel -p name,version\n" "name: guile\n" "version: 3.0.5\n" #. type: item #: guix-git/doc/guix.texi:3486 #, no-wrap msgid "--list-installed[=@var{regexp}]" msgstr "--list-installed[=@var{Regexp}]" #. type: itemx #: guix-git/doc/guix.texi:3487 #, no-wrap msgid "-I [@var{regexp}]" msgstr "-I [@var{Regexp}]" #. type: table #: guix-git/doc/guix.texi:3491 msgid "List the currently installed packages in the specified profile, with the most recently installed packages shown last. When @var{regexp} is specified, list only installed packages whose name matches @var{regexp}." msgstr "Listet die derzeit installierten Pakete im angegebenen Profil auf, die zuletzt installierten Pakete zuletzt. Wenn ein regulärer Ausdruck @var{Regexp} angegeben wird, werden nur installierte Pakete aufgeführt, deren Name zu @var{Regexp} passt." #. type: table #: guix-git/doc/guix.texi:3497 msgid "For each installed package, print the following items, separated by tabs: the package name, its version string, the part of the package that is installed (for instance, @code{out} for the default output, @code{include} for its headers, etc.), and the path of this package in the store." msgstr "Zu jedem installierten Paket werden folgende Informationen angezeigt, durch Tabulatorzeichen getrennt: der Paketname, die Version als Zeichenkette, welche Teile des Pakets installiert sind (zum Beispiel @code{out}, wenn die Standard-Paketausgabe installiert ist, @code{include}, wenn seine Header installiert sind, usw.)@: und an welchem Pfad das Paket im Store zu finden ist." #. type: item #: guix-git/doc/guix.texi:3498 #, no-wrap msgid "--list-available[=@var{regexp}]" msgstr "--list-available[=@var{Regexp}]" #. type: itemx #: guix-git/doc/guix.texi:3499 #, no-wrap msgid "-A [@var{regexp}]" msgstr "-A [@var{Regexp}]" #. type: table #: guix-git/doc/guix.texi:3503 msgid "List packages currently available in the distribution for this system (@pxref{GNU Distribution}). When @var{regexp} is specified, list only available packages whose name matches @var{regexp}." msgstr "Listet Pakete auf, die in der aktuell installierten Distribution dieses Systems verfügbar sind (siehe @ref{GNU Distribution}). Wenn ein regulärer Ausdruck @var{Regexp} angegeben wird, werden nur Pakete aufgeführt, deren Name zum regulären Ausdruck @var{Regexp} passt." #. type: table #: guix-git/doc/guix.texi:3507 msgid "For each package, print the following items separated by tabs: its name, its version string, the parts of the package (@pxref{Packages with Multiple Outputs}), and the source location of its definition." msgstr "Zu jedem Paket werden folgende Informationen getrennt durch Tabulatorzeichen ausgegeben: der Name, die Version als Zeichenkette, die Teile des Programms (siehe @ref{Packages with Multiple Outputs}) und die Stelle im Quellcode, an der das Paket definiert ist." #. type: item #: guix-git/doc/guix.texi:3508 guix-git/doc/guix.texi:4534 #, no-wrap msgid "--list-generations[=@var{pattern}]" msgstr "--list-generations[=@var{Muster}]" #. type: itemx #: guix-git/doc/guix.texi:3509 guix-git/doc/guix.texi:4535 #, no-wrap msgid "-l [@var{pattern}]" msgstr "-l [@var{Muster}]" #. type: table #: guix-git/doc/guix.texi:3515 msgid "Return a list of generations along with their creation dates; for each generation, show the installed packages, with the most recently installed packages shown last. Note that the zeroth generation is never shown." msgstr "Liefert eine Liste der Generationen zusammen mit dem Datum, an dem sie erzeugt wurden; zu jeder Generation werden zudem die installierten Pakete angezeigt, zuletzt installierte Pakete zuletzt. Beachten Sie, dass die nullte Generation niemals angezeigt wird." #. type: table #: guix-git/doc/guix.texi:3520 msgid "For each installed package, print the following items, separated by tabs: the name of a package, its version string, the part of the package that is installed (@pxref{Packages with Multiple Outputs}), and the location of this package in the store." msgstr "Zu jedem installierten Paket werden folgende Informationen durch Tabulatorzeichen getrennt angezeigt: der Name des Pakets, die Version als Zeichenkette, welcher Teil des Pakets installiert ist (siehe @ref{Packages with Multiple Outputs}) und an welcher Stelle sich das Paket im Store befindet." #. type: table #: guix-git/doc/guix.texi:3523 msgid "When @var{pattern} is used, the command returns only matching generations. Valid patterns include:" msgstr "Wenn ein @var{Muster} angegeben wird, liefert der Befehl nur dazu passende Generationen. Gültige Muster sind zum Beispiel:" #. type: item #: guix-git/doc/guix.texi:3525 #, no-wrap msgid "@emph{Integers and comma-separated integers}. Both patterns denote" msgstr "@emph{Ganze Zahlen und kommagetrennte ganze Zahlen}. Beide Muster bezeichnen" #. type: itemize #: guix-git/doc/guix.texi:3528 msgid "generation numbers. For instance, @option{--list-generations=1} returns the first one." msgstr "Generationsnummern. Zum Beispiel liefert @option{--list-generations=1} die erste Generation." #. type: itemize #: guix-git/doc/guix.texi:3531 msgid "And @option{--list-generations=1,8,2} outputs three generations in the specified order. Neither spaces nor trailing commas are allowed." msgstr "Durch @option{--list-generations=1,8,2} werden drei Generationen in der angegebenen Reihenfolge angezeigt. Weder Leerzeichen noch ein Komma am Schluss der Liste ist erlaubt." #. type: item #: guix-git/doc/guix.texi:3532 #, no-wrap msgid "@emph{Ranges}. @option{--list-generations=2..9} prints the" msgstr "@emph{Bereiche}. @option{--list-generations=2..9} gibt die" #. type: itemize #: guix-git/doc/guix.texi:3535 msgid "specified generations and everything in between. Note that the start of a range must be smaller than its end." msgstr "angegebenen Generationen und alles dazwischen aus. Beachten Sie, dass der Bereichsanfang eine kleinere Zahl als das Bereichsende sein muss." #. type: itemize #: guix-git/doc/guix.texi:3539 msgid "It is also possible to omit the endpoint. For example, @option{--list-generations=2..}, returns all generations starting from the second one." msgstr "Sie können auch kein Bereichsende angeben, zum Beispiel liefert @option{--list-generations=2..} alle Generationen ab der zweiten." #. type: item #: guix-git/doc/guix.texi:3540 #, no-wrap msgid "@emph{Durations}. You can also get the last @emph{N}@tie{}days, weeks," msgstr "@emph{Zeitdauern}. Sie können auch die letzten @emph{N}@tie{}Tage, Wochen" #. type: itemize #: guix-git/doc/guix.texi:3544 msgid "or months by passing an integer along with the first letter of the duration. For example, @option{--list-generations=20d} lists generations that are up to 20 days old." msgstr "oder Monate angeben, indem Sie eine ganze Zahl gefolgt von jeweils „d“, „w“ oder „m“ angeben (dem ersten Buchstaben der Maßeinheit der Dauer im Englischen). Zum Beispiel listet @option{--list-generations=20d} die Generationen auf, die höchstens 20 Tage alt sind." #. type: item #: guix-git/doc/guix.texi:3546 guix-git/doc/guix.texi:4569 #, no-wrap msgid "--delete-generations[=@var{pattern}]" msgstr "--delete-generations[=@var{Muster}]" #. type: itemx #: guix-git/doc/guix.texi:3547 guix-git/doc/guix.texi:4570 #, no-wrap msgid "-d [@var{pattern}]" msgstr "-d [@var{Muster}]" #. type: table #: guix-git/doc/guix.texi:3550 guix-git/doc/guix.texi:4573 msgid "When @var{pattern} is omitted, delete all generations except the current one." msgstr "Wird kein @var{Muster} angegeben, werden alle Generationen außer der aktuellen entfernt." #. type: table #: guix-git/doc/guix.texi:3556 guix-git/doc/guix.texi:4579 msgid "This command accepts the same patterns as @option{--list-generations}. When @var{pattern} is specified, delete the matching generations. When @var{pattern} specifies a duration, generations @emph{older} than the specified duration match. For instance, @option{--delete-generations=1m} deletes generations that are more than one month old." msgstr "Dieser Befehl akzeptiert dieselben Muster wie @option{--list-generations}. Wenn ein @var{Muster} angegeben wird, werden die passenden Generationen gelöscht. Wenn das @var{Muster} für eine Zeitdauer steht, werden diejenigen Generationen gelöscht, die @emph{älter} als die angegebene Dauer sind. Zum Beispiel löscht @option{--delete-generations=1m} die Generationen, die mehr als einen Monat alt sind." #. type: table #: guix-git/doc/guix.texi:3559 msgid "If the current generation matches, it is @emph{not} deleted. Also, the zeroth generation is never deleted." msgstr "Falls die aktuelle Generation zum Muster passt, wird sie @emph{nicht} gelöscht. Auch die nullte Generation wird niemals gelöscht." #. type: table #: guix-git/doc/guix.texi:3562 guix-git/doc/guix.texi:4584 msgid "Note that deleting generations prevents rolling back to them. Consequently, this command must be used with care." msgstr "Beachten Sie, dass Sie auf gelöschte Generationen nicht zurückwechseln können. Dieser Befehl sollte also nur mit Vorsicht benutzt werden." #. type: cindex #: guix-git/doc/guix.texi:3563 guix-git/doc/guix.texi:6151 #, no-wrap msgid "manifest, exporting" msgstr "Manifest, exportieren" #. type: anchor{#1} #: guix-git/doc/guix.texi:3565 msgid "export-manifest" msgstr "export-manifest" #. type: item #: guix-git/doc/guix.texi:3565 guix-git/doc/guix.texi:6153 #, no-wrap msgid "--export-manifest" msgstr "--export-manifest" #. type: table #: guix-git/doc/guix.texi:3568 msgid "Write to standard output a manifest suitable for @option{--manifest} corresponding to the chosen profile(s)." msgstr "Auf die Standardausgabe ein Manifest ausgeben, das mit @option{--manifest} genutzt werden kann und dem/den gewählten Profil(en) entspricht." #. type: table #: guix-git/doc/guix.texi:3572 msgid "This option is meant to help you migrate from the ``imperative'' operating mode---running @command{guix install}, @command{guix upgrade}, etc.---to the declarative mode that @option{--manifest} offers." msgstr "Diese Befehlszeilenoption erleichtert Ihnen den Wechsel vom „imperativen“ Betriebsmodus, wo Sie immer wieder @command{guix install}, @command{guix upgrade} etc.@: ausführen, zum deklarativen Modus, der mit @option{--manifest} zur Verfügung steht." #. type: table #: guix-git/doc/guix.texi:3577 msgid "Be aware that the resulting manifest @emph{approximates} what your profile actually contains; for instance, depending on how your profile was created, it can refer to packages or package versions that are not exactly what you specified." msgstr "Seien Sie sich bewusst, dass das erzeugte Manifest nur eine @emph{Annäherung} des Inhalts Ihres Profils ist. Je nachdem, wie Ihr Profil erzeugt wurde, kann es auf andere Pakete oder Paketversionen verweisen." #. type: table #: guix-git/doc/guix.texi:3582 msgid "Keep in mind that a manifest is purely symbolic: it only contains package names and possibly versions, and their meaning varies over time. If you wish to ``pin'' channels to the revisions that were used to build the profile(s), see @option{--export-channels} below." msgstr "Beachten Sie, dass ein Manifest rein symbolisch ist; es enthält nur die Namen und vielleicht Versionen der Pakete, aber die Bedeutung davon wandelt sich mit der Zeit. Wenn Sie wollen, dass die Pakete aus immer derselben Kanalversion stammen, mit der das Profil oder die Profile erstellt wurden, siehe @option{--export-channels} unten." #. type: cindex #: guix-git/doc/guix.texi:3583 #, no-wrap msgid "pinning, channel revisions of a profile" msgstr "immer dieselbe Version verwenden, bei Kanälen" #. type: item #: guix-git/doc/guix.texi:3584 #, no-wrap msgid "--export-channels" msgstr "--export-channels" #. type: table #: guix-git/doc/guix.texi:3588 msgid "Write to standard output the list of channels used by the chosen profile(s), in a format suitable for @command{guix pull --channels} or @command{guix time-machine --channels} (@pxref{Channels})." msgstr "Auf die Standardausgabe die Liste der Kanäle schreiben, die das gewählte Profil benutzt bzw.@: die die gewählten Profile benutzen. Das Format der Kanalspezifikation ist für @command{guix pull --channels} und @command{guix time-machine --channels} geeignet (siehe @ref{Channels})." #. type: table #: guix-git/doc/guix.texi:3592 msgid "Together with @option{--export-manifest}, this option provides information allowing you to replicate the current profile (@pxref{Replicating Guix})." msgstr "Zusammen mit @option{--export-manifest} macht diese Befehlszeilenoption Informationen verfügbar, um das aktuelle Profil nachzubilden (siehe @ref{Replicating Guix})." #. type: table #: guix-git/doc/guix.texi:3600 msgid "However, note that the output of this command @emph{approximates} what was actually used to build this profile. In particular, a single profile might have been built from several different revisions of the same channel. In that case, @option{--export-manifest} chooses the last one and writes the list of other revisions in a comment. If you really need to pick packages from different channel revisions, you can use inferiors in your manifest to do so (@pxref{Inferiors})." msgstr "Beachten Sie jedoch, dass die Ausgabe dieses Befehls nur eine @emph{Annäherung} dessen ist, woraus ein Profil tatsächlich erstellt wurde. Insbesondere kann ein Profil aus mehreren Versionen desselben Kanals aufgebaut worden sein. In diesem Fall wählt @option{--export-manifest} die neueste aus und schreibt die anderen Versionen in einem Kommentar dazu. Wenn Sie wirklich Pakete aus unterschiedlichen Kanalversionen zu nehmen brauchen, können Sie dazu in Ihrem Manifest Untergeordnete angeben (siehe @ref{Inferiors})." #. type: table #: guix-git/doc/guix.texi:3605 msgid "Together with @option{--export-manifest}, this is a good starting point if you are willing to migrate from the ``imperative'' model to the fully declarative model consisting of a manifest file along with a channels file pinning the exact channel revision(s) you want." msgstr "Dies stellt zusammen mit @option{--export-manifest} eine gute Gelegenheit dar, wenn Sie bereit sind, vom „imperativen“ Modell auf das vollständig deklarative Modell zu wechseln, wo Sie eine Manifestdatei zusammen mit einer Kanaldatei benutzen, die ganz genau festlegt, welche Kanalversion(en) Sie wollen." #. type: Plain text #: guix-git/doc/guix.texi:3612 msgid "Finally, since @command{guix package} may actually start build processes, it supports all the common build options (@pxref{Common Build Options}). It also supports package transformation options, such as @option{--with-source}, and preserves them across upgrades (@pxref{Package Transformation Options})." msgstr "Zu guter Letzt können Sie, da @command{guix package} Erstellungsprozesse zu starten vermag, auch alle gemeinsamen Erstellungsoptionen (siehe @ref{Common Build Options}) verwenden. Auch Paketumwandlungsoptionen wie @option{--with-source} sind möglich und bleiben über Aktualisierungen hinweg erhalten (siehe @ref{Package Transformation Options})." #. type: cindex #: guix-git/doc/guix.texi:3617 #, no-wrap msgid "pre-built binaries" msgstr "vorerstellte Binärdateien" #. type: Plain text #: guix-git/doc/guix.texi:3623 msgid "Guix supports transparent source/binary deployment, which means that it can either build things locally, or download pre-built items from a server, or both. We call these pre-built items @dfn{substitutes}---they are substitutes for local build results. In many cases, downloading a substitute is much faster than building things locally." msgstr "Guix kann transparent Binär- oder Quelldateien ausliefern. Das heißt, Dinge können sowohl lokal erstellt als auch als vorerstellte Objekte von einem Server heruntergeladen werden, oder beides gemischt. Wir bezeichnen diese vorerstellten Objekte als @dfn{Substitute}@tie{}– sie substituieren lokale Erstellungsergebnisse. In vielen Fällen geht das Herunterladen eines Substituts wesentlich schneller, als Dinge lokal zu erstellen." #. type: Plain text #: guix-git/doc/guix.texi:3628 msgid "Substitutes can be anything resulting from a derivation build (@pxref{Derivations}). Of course, in the common case, they are pre-built package binaries, but source tarballs, for instance, which also result from derivation builds, can be available as substitutes." msgstr "Substitute können alles sein, was das Ergebnis einer Ableitungserstellung ist (siehe @ref{Derivations}). Natürlich sind sie üblicherweise vorerstellte Paket-Binärdateien, aber wenn zum Beispiel ein Quell-Tarball das Ergebnis einer Ableitungserstellung ist, kann auch er als Substitut verfügbar sein." #. type: cindex #: guix-git/doc/guix.texi:3642 #, no-wrap msgid "build farm" msgstr "Erstellungsfarm" #. type: Plain text #: guix-git/doc/guix.texi:3653 msgid "@code{@value{SUBSTITUTE-SERVER-1}} and @code{@value{SUBSTITUTE-SERVER-2}} are both front-ends to official build farms that build packages from Guix continuously for some architectures, and make them available as substitutes. These are the default source of substitutes; which can be overridden by passing the @option{--substitute-urls} option either to @command{guix-daemon} (@pxref{daemon-substitute-urls,, @code{guix-daemon --substitute-urls}}) or to client tools such as @command{guix package} (@pxref{client-substitute-urls,, client @option{--substitute-urls} option})." msgstr "@code{@value{SUBSTITUTE-SERVER-1}} und @code{@value{SUBSTITUTE-SERVER-2}} sind jeweils Fassaden für offizielle Erstellungsfarmen („Build Farms“), die kontinuierlich Guix-Pakete für einige Prozessorarchitekturen erstellen und sie als Substitute zur Verfügung stellen. Sie sind die standardmäßige Quelle von Substituten; durch Übergeben der Befehlszeilenoption @option{--substitute-urls} an entweder den @command{guix-daemon} (siehe @ref{daemon-substitute-urls,, @code{guix-daemon --substitute-urls}}) oder Client-Werkzeuge wie @command{guix package} (siehe @ref{client-substitute-urls,, die Befehlszeilenoption @option{--substitute-urls} beim Client}) kann eine abweichende Einstellung benutzt werden." #. type: Plain text #: guix-git/doc/guix.texi:3659 msgid "Substitute URLs can be either HTTP or HTTPS. HTTPS is recommended because communications are encrypted; conversely, using HTTP makes all communications visible to an eavesdropper, who could use the information gathered to determine, for instance, whether your system has unpatched security vulnerabilities." msgstr "Substitut-URLs können entweder HTTP oder HTTPS sein. HTTPS wird empfohlen, weil die Kommunikation verschlüsselt ist; umgekehrt kann bei HTTP die Kommunikation belauscht werden, wodurch der Angreifer zum Beispiel erfahren könnte, ob Ihr System über noch nicht behobene Sicherheitsschwachstellen verfügt." #. type: Plain text #: guix-git/doc/guix.texi:3668 msgid "Substitutes from the official build farms are enabled by default when using Guix System (@pxref{GNU Distribution}). However, they are disabled by default when using Guix on a foreign distribution, unless you have explicitly enabled them via one of the recommended installation steps (@pxref{Installation}). The following paragraphs describe how to enable or disable substitutes for the official build farm; the same procedure can also be used to enable substitutes for any other substitute server." msgstr "Substitute von den offiziellen Erstellungsfarmen sind standardmäßig erlaubt, wenn Sie Guix System verwenden (siehe @ref{GNU Distribution}). Auf Fremddistributionen sind sie allerdings standardmäßig ausgeschaltet, solange Sie sie nicht ausdrücklich in einem der empfohlenen Installationsschritte erlaubt haben (siehe @ref{Installation}). Die folgenden Absätze beschreiben, wie Sie Substitute für die offizielle Erstellungsfarm an- oder ausschalten; dieselbe Prozedur kann auch benutzt werden, um Substitute für einen beliebigen anderen Substitutserver zu erlauben." #. type: cindex #: guix-git/doc/guix.texi:3672 #, no-wrap msgid "security" msgstr "Sicherheit" #. type: cindex #: guix-git/doc/guix.texi:3674 #, no-wrap msgid "access control list (ACL), for substitutes" msgstr "Access Control List (ACL), für Substitute" #. type: cindex #: guix-git/doc/guix.texi:3675 #, no-wrap msgid "ACL (access control list), for substitutes" msgstr "ACL (Access Control List), für Substitute" #. type: Plain text #: guix-git/doc/guix.texi:3681 msgid "To allow Guix to download substitutes from @code{@value{SUBSTITUTE-SERVER-1}}, @code{@value{SUBSTITUTE-SERVER-2}} or a mirror, you must add the relevant public key to the access control list (ACL) of archive imports, using the @command{guix archive} command (@pxref{Invoking guix archive}). Doing so implies that you trust the substitute server to not be compromised and to serve genuine substitutes." msgstr "Um es Guix zu gestatten, Substitute von @code{@value{SUBSTITUTE-SERVER-1}}, @code{@value{SUBSTITUTE-SERVER-2}} oder einem Spiegelserver herunterzuladen, müssen Sie die zugehörigen öffentlichen Schlüssel zur Access Control List (ACL, Zugriffssteuerungsliste) für Archivimporte hinzufügen, mit Hilfe des Befehls @command{guix archive} (siehe @ref{Invoking guix archive}). Dies impliziert, dass Sie darauf vertrauen, dass der Substitutserver nicht kompromittiert wurde und unverfälschte Substitute liefert." #. type: quotation #: guix-git/doc/guix.texi:3686 msgid "If you are using Guix System, you can skip this section: Guix System authorizes substitutes from @code{@value{SUBSTITUTE-SERVER-1}} and @code{@value{SUBSTITUTE-SERVER-2}} by default." msgstr "Wenn Sie Guix System benutzen, können Sie diesen Abschnitt hier überspringen, denn Guix System ist so voreingestellt, Substitute von @code{@value{SUBSTITUTE-SERVER-1}} und @code{@value{SUBSTITUTE-SERVER-2}} zu autorisieren." #. type: Plain text #: guix-git/doc/guix.texi:3694 msgid "The public keys for each of the project maintained substitute servers are installed along with Guix, in @code{@var{prefix}/share/guix/}, where @var{prefix} is the installation prefix of Guix. If you installed Guix from source, make sure you checked the GPG signature of @file{guix-@value{VERSION}.tar.gz}, which contains this public key file. Then, you can run something like this:" msgstr "Der öffentliche Schlüssel für jeden vom Guix-Projekt verwalteten Substitutserver wird zusammen mit Guix installiert, in das Verzeichnis @code{@var{prefix}/share/guix/}, wobei @var{prefix} das bei der Installation angegebene Präfix von Guix ist. Wenn Sie Guix aus seinem Quellcode heraus installieren, sollten Sie sichergehen, dass Sie die GPG-Signatur (auch „Beglaubigung“ genannt) von @file{guix-@value{VERSION}.tar.gz} prüfen, worin sich dieser öffentliche Schlüssel befindet. Dann können Sie so etwas wie hier ausführen:" #. type: example #: guix-git/doc/guix.texi:3698 #, no-wrap msgid "" "# guix archive --authorize < @var{prefix}/share/guix/@value{SUBSTITUTE-SERVER-1}.pub\n" "# guix archive --authorize < @var{prefix}/share/guix/@value{SUBSTITUTE-SERVER-2}.pub\n" msgstr "" "# guix archive --authorize < @var{prefix}/share/guix/@value{SUBSTITUTE-SERVER-1}.pub\n" "# guix archive --authorize < @var{prefix}/share/guix/@value{SUBSTITUTE-SERVER-2}.pub\n" #. type: Plain text #: guix-git/doc/guix.texi:3702 msgid "Once this is in place, the output of a command like @code{guix build} should change from something like:" msgstr "Sobald es eingerichtet wurde, sollte sich die Ausgabe eines Befehls wie @code{guix build} von so etwas:" #. type: example #: guix-git/doc/guix.texi:3711 #, no-wrap msgid "" "$ guix build emacs --dry-run\n" "The following derivations would be built:\n" " /gnu/store/yr7bnx8xwcayd6j95r2clmkdl1qh688w-emacs-24.3.drv\n" " /gnu/store/x8qsh1hlhgjx6cwsjyvybnfv2i37z23w-dbus-1.6.4.tar.gz.drv\n" " /gnu/store/1ixwp12fl950d15h2cj11c73733jay0z-alsa-lib-1.0.27.1.tar.bz2.drv\n" " /gnu/store/nlma1pw0p603fpfiqy7kn4zm105r5dmw-util-linux-2.21.drv\n" "@dots{}\n" msgstr "" "$ guix build emacs --dry-run\n" "Folgende Ableitungen würden erstellt:\n" " /gnu/store/yr7bnx8xwcayd6j95r2clmkdl1qh688w-emacs-24.3.drv\n" " /gnu/store/x8qsh1hlhgjx6cwsjyvybnfv2i37z23w-dbus-1.6.4.tar.gz.drv\n" " /gnu/store/1ixwp12fl950d15h2cj11c73733jay0z-alsa-lib-1.0.27.1.tar.bz2.drv\n" " /gnu/store/nlma1pw0p603fpfiqy7kn4zm105r5dmw-util-linux-2.21.drv\n" "…\n" #. type: Plain text #: guix-git/doc/guix.texi:3715 msgid "to something like:" msgstr "in so etwas verwandeln:" #. type: example #: guix-git/doc/guix.texi:3724 #, no-wrap msgid "" "$ guix build emacs --dry-run\n" "112.3 MB would be downloaded:\n" " /gnu/store/pk3n22lbq6ydamyymqkkz7i69wiwjiwi-emacs-24.3\n" " /gnu/store/2ygn4ncnhrpr61rssa6z0d9x22si0va3-libjpeg-8d\n" " /gnu/store/71yz6lgx4dazma9dwn2mcjxaah9w77jq-cairo-1.12.16\n" " /gnu/store/7zdhgp0n1518lvfn8mb96sxqfmvqrl7v-libxrender-0.9.7\n" "@dots{}\n" msgstr "" "$ guix build emacs --dry-run\n" "112.3 MB würden heruntergeladen:\n" " /gnu/store/pk3n22lbq6ydamyymqkkz7i69wiwjiwi-emacs-24.3\n" " /gnu/store/2ygn4ncnhrpr61rssa6z0d9x22si0va3-libjpeg-8d\n" " /gnu/store/71yz6lgx4dazma9dwn2mcjxaah9w77jq-cairo-1.12.16\n" " /gnu/store/7zdhgp0n1518lvfn8mb96sxqfmvqrl7v-libxrender-0.9.7\n" "…\n" #. type: Plain text #: guix-git/doc/guix.texi:3731 msgid "The text changed from ``The following derivations would be built'' to ``112.3 MB would be downloaded''. This indicates that substitutes from the configured substitute servers are usable and will be downloaded, when possible, for future builds." msgstr "Der Text hat sich von „Folgende Ableitungen würden erstellt“ zu „112.3 MB würden heruntergeladen“ geändert. Das zeigt an, dass Substitute von den festgelegten Substitutservern nutzbar sind und für zukünftige Erstellungen heruntergeladen werden, wann immer es möglich ist." #. type: cindex #: guix-git/doc/guix.texi:3732 #, no-wrap msgid "substitutes, how to disable" msgstr "Substitute, wie man sie ausschaltet" #. type: Plain text #: guix-git/doc/guix.texi:3738 msgid "The substitute mechanism can be disabled globally by running @code{guix-daemon} with @option{--no-substitutes} (@pxref{Invoking guix-daemon}). It can also be disabled temporarily by passing the @option{--no-substitutes} option to @command{guix package}, @command{guix build}, and other command-line tools." msgstr "Der Substitutsmechanismus kann global ausgeschaltet werden, indem Sie dem @code{guix-daemon} beim Starten die Befehlszeilenoption @option{--no-substitutes} übergeben (siehe @ref{Invoking guix-daemon}). Er kann auch temporär ausgeschaltet werden, indem Sie @option{--no-substitutes} an @command{guix package}, @command{guix build} und andere Befehlszeilenwerkzeuge übergeben." #. type: cindex #: guix-git/doc/guix.texi:3743 #, no-wrap msgid "substitute servers, adding more" msgstr "Substitut-Server, weitere hinzufügen" #. type: Plain text #: guix-git/doc/guix.texi:3750 msgid "Guix can look up and fetch substitutes from several servers. This is useful when you are using packages from additional channels for which the official server does not have substitutes but another server provides them. Another situation where this is useful is when you would prefer to download from your organization's substitute server, resorting to the official server only as a fallback or dismissing it altogether." msgstr "Guix kann auf unterschiedlichen Servern nach Substituten schauen und sie von dort laden. Das lohnt sich, wenn Sie Pakete von zusätzlichen Kanälen laden, für die es auf dem offiziellen Server keine Substitute gibt, auf einem anderen aber schon. Eine andere Situation, wo es sich anbietet, ist, wenn Sie Substitute lieber vom Substitutserver beziehen, der zu Ihrer Organisation gehört, und den offiziellen Server nur im Ausnahmefall einsetzen oder ganz weglassen möchten." #. type: Plain text #: guix-git/doc/guix.texi:3755 msgid "You can give Guix a list of substitute server URLs and it will check them in the specified order. You also need to explicitly authorize the public keys of substitute servers to instruct Guix to accept the substitutes they sign." msgstr "Sie können Guix eine Liste von URLs der Substitutserver mitgeben, damit es sie in der angegebenen Reihenfolge anfragt. Außerdem müssen Sie die öffentlichen Schlüssel der Substitutserver ausdrücklich autorisieren, damit Guix von ihnen signierte Substitute annimmt." #. type: Plain text #: guix-git/doc/guix.texi:3762 msgid "On Guix System, this is achieved by modifying the configuration of the @code{guix} service. Since the @code{guix} service is part of the default lists of services, @code{%base-services} and @code{%desktop-services}, you can use @code{modify-services} to change its configuration and add the URLs and substitute keys that you want (@pxref{Service Reference, @code{modify-services}})." msgstr "Auf Guix System ginge dies vonstatten, indem Sie die Konfiguration des @code{guix}-Dienstes modifizieren. Weil der @code{guix}-Dienst zu der Liste der vorgegebenen Dienste gehört, sowohl für @code{%base-services} als auch für @code{%desktop-services}, können Sie dessen Konfiguration mit @code{modify-services} ändern und dort die URLs und Substitutschlüssel eintragen, die Sie möchten (siehe @ref{Service Reference, @code{modify-services}})." #. type: Plain text #: guix-git/doc/guix.texi:3768 msgid "As an example, suppose you want to fetch substitutes from @code{guix.example.org} and to authorize the signing key of that server, in addition to the default @code{@value{SUBSTITUTE-SERVER-1}} and @code{@value{SUBSTITUTE-SERVER-2}}. The resulting operating system configuration will look something like:" msgstr "Ein Beispiel: Nehmen wir an, Sie möchten Substitute zusätzlich zu den vorgegebenen @code{@value{SUBSTITUTE-SERVER-1}} und @code{@value{SUBSTITUTE-SERVER-2}} auch von @code{guix.example.org} beziehen und den Signierschlüssel dieses Servers autorisieren. Die Betriebssystemkonfiguration, die sich damit ergibt, wird ungefähr so aussehen:" #. type: lisp #: guix-git/doc/guix.texi:3785 #, no-wrap msgid "" "(operating-system\n" " ;; @dots{}\n" " (services\n" " ;; Assume we're starting from '%desktop-services'. Replace it\n" " ;; with the list of services you're actually using.\n" " (modify-services %desktop-services\n" " (guix-service-type config =>\n" " (guix-configuration\n" " (inherit config)\n" " (substitute-urls\n" " (append (list \"https://guix.example.org\")\n" " %default-substitute-urls))\n" " (authorized-keys\n" " (append (list (local-file \"./key.pub\"))\n" " %default-authorized-guix-keys)))))))\n" msgstr "" "(operating-system\n" " ;; …\n" " (services\n" " ;; Wir nehmen hier '%desktop-services' als Grundlage; geben Sie\n" " ;; an deren Stelle die Liste der bei Ihnen benutzten Dienste an.\n" " (modify-services %desktop-services\n" " (guix-service-type config =>\n" " (guix-configuration\n" " (inherit config)\n" " (substitute-urls\n" " (append (list \"https://guix.example.org\")\n" " %default-substitute-urls))\n" " (authorized-keys\n" " (append (list (local-file \"./key.pub\"))\n" " %default-authorized-guix-keys)))))))\n" #. type: Plain text #: guix-git/doc/guix.texi:3792 msgid "This assumes that the file @file{key.pub} contains the signing key of @code{guix.example.org}. With this change in place in your operating system configuration file (say @file{/etc/config.scm}), you can reconfigure and restart the @code{guix-daemon} service or reboot so the changes take effect:" msgstr "Dabei gehen wir davon aus, dass der Signierschlüssel von @code{guix.example.org} in der Datei @file{key.pub} steht. Sobald Sie diese Änderung an der Datei mit Ihrer Betriebssystemkonfiguration vorgenommen haben (etwa @file{/etc/config.scm}), können Sie rekonfigurieren und den @code{guix-daemon}-Dienst (oder den ganzen Rechner) neu starten, damit die Änderung in Kraft tritt:" #. type: example #: guix-git/doc/guix.texi:3796 #, no-wrap msgid "" "$ sudo guix system reconfigure /etc/config.scm\n" "$ sudo herd restart guix-daemon\n" msgstr "" "$ sudo guix system reconfigure /etc/config.scm\n" "$ sudo herd restart guix-daemon\n" #. type: Plain text #: guix-git/doc/guix.texi:3800 msgid "If you're running Guix on a ``foreign distro'', you would instead take the following steps to get substitutes from additional servers:" msgstr "Wenn Sie Guix auf einer „Fremddistribution“ laufen lassen, würden Sie stattdessen nach den folgenden Schritten vorgehen, um Substitute von zusätzlichen Servern zu bekommen:" #. type: enumerate #: guix-git/doc/guix.texi:3809 msgid "Edit the service configuration file for @code{guix-daemon}; when using systemd, this is normally @file{/etc/systemd/system/guix-daemon.service}. Add the @option{--substitute-urls} option on the @command{guix-daemon} command line and list the URLs of interest (@pxref{daemon-substitute-urls, @code{guix-daemon --substitute-urls}}):" msgstr "Bearbeiten Sie die Konfigurationsdatei für den @code{guix-daemon}; wenn Sie systemd benutzen, wäre das normalerweise @file{/etc/systemd/system/guix-daemon.service}. Schreiben Sie in die Konfigurationsdatei die Option @option{--substitute-urls} zur @command{guix-daemon}-Befehlszeile dazu und listen Sie dabei die gewünschten URLs auf (siehe @ref{daemon-substitute-urls, @code{guix-daemon --substitute-urls}}):" #. type: example #: guix-git/doc/guix.texi:3812 #, no-wrap msgid "@dots{} --substitute-urls='https://guix.example.org @value{SUBSTITUTE-URLS}'\n" msgstr "… --substitute-urls='https://guix.example.org @value{SUBSTITUTE-URLS}'\n" #. type: enumerate #: guix-git/doc/guix.texi:3816 msgid "Restart the daemon. For systemd, it goes like this:" msgstr "Starten Sie den Daemon neu. Bei systemd geht das so:" #. type: example #: guix-git/doc/guix.texi:3820 #, no-wrap msgid "" "systemctl daemon-reload\n" "systemctl restart guix-daemon.service\n" msgstr "" "systemctl daemon-reload\n" "systemctl restart guix-daemon.service\n" #. type: enumerate #: guix-git/doc/guix.texi:3824 msgid "Authorize the key of the new server (@pxref{Invoking guix archive}):" msgstr "Autorisieren Sie den Schlüssel des neuen Servers (siehe @ref{Invoking guix archive}):" #. type: example #: guix-git/doc/guix.texi:3827 #, no-wrap msgid "guix archive --authorize < key.pub\n" msgstr "guix archive --authorize < key.pub\n" #. type: enumerate #: guix-git/doc/guix.texi:3831 msgid "Again this assumes @file{key.pub} contains the public key that @code{guix.example.org} uses to sign substitutes." msgstr "Wir nehmen auch hier an, dass @file{key.pub} den öffentlichen Schlüssel enthält, mit dem @code{guix.example.org} Substitute signiert." #. type: Plain text #: guix-git/doc/guix.texi:3840 msgid "Now you're all set! Substitutes will be preferably taken from @code{https://guix.example.org}, using @code{@value{SUBSTITUTE-SERVER-1}} then @code{@value{SUBSTITUTE-SERVER-2}} as fallback options. Of course you can list as many substitute servers as you like, with the caveat that substitute lookup can be slowed down if too many servers need to be contacted." msgstr "Und wir sind fertig! Substitute werden bevorzugt von @code{https://guix.example.org} bezogen und @code{@value{SUBSTITUTE-SERVER-1}} und dann @code{@value{SUBSTITUTE-SERVER-2}} bleiben notfalls als Reserve. Natürlich können Sie so viele Substitutserver auflisten, wie Sie wollen, allerdings kann das Erfragen von Substituten etwas länger dauern, wenn zu viele Server kontaktiert werden müssen." #. type: quotation #: guix-git/doc/guix.texi:3841 guix-git/doc/guix.texi:17207 #, no-wrap msgid "Troubleshooting" msgstr "Problembehandlung" #. type: quotation #: guix-git/doc/guix.texi:3844 msgid "To diagnose problems, you can run @command{guix weather}. For example, running:" msgstr "Der Befehl @command{guix weather} hilft Ihnen bei der Fehlerdiagnose. Wenn Sie zum Beispiel das ausführen:" #. type: example #: guix-git/doc/guix.texi:3847 #, no-wrap msgid "guix weather coreutils\n" msgstr "guix weather coreutils\n" #. type: quotation #: guix-git/doc/guix.texi:3854 msgid "not only tells you which of the currently-configured servers has substitutes for the @code{coreutils} package, it also reports whether one of these servers is unauthorized. @xref{Invoking guix weather}, for more information." msgstr "wird Ihnen nicht nur mitgeteilt, welcher der aktuell eingerichteten Server Substitute für das Paket @code{coreutils} bereitstellt, sondern auch ob einer der Server nicht autorisiert ist. Siehe @ref{Invoking guix weather} für mehr Informationen." #. type: Plain text #: guix-git/doc/guix.texi:3859 msgid "Note that there are also situations where one may want to add the URL of a substitute server @emph{without} authorizing its key. @xref{Substitute Authentication}, to understand this fine point." msgstr "Aber bedenken Sie, es gibt auch Situationen, wo man nur die URL eines Substitutservers hinzufügen will, @emph{ohne} den Schlüssel zu autorisieren. Siehe @ref{Substitute Authentication}, um diese bestimmten Gründe zu verstehen." #. type: cindex #: guix-git/doc/guix.texi:3863 #, no-wrap msgid "digital signatures" msgstr "digitale Signaturen" #. type: Plain text #: guix-git/doc/guix.texi:3867 msgid "Guix detects and raises an error when attempting to use a substitute that has been tampered with. Likewise, it ignores substitutes that are not signed, or that are not signed by one of the keys listed in the ACL." msgstr "Guix erkennt, wenn ein verfälschtes Substitut benutzt würde, und meldet einen Fehler. Ebenso werden Substitute ignoriert, die nich signiert sind, oder nicht mit einem in der ACL aufgelisteten Schlüssel signiert sind." #. type: Plain text #: guix-git/doc/guix.texi:3873 msgid "There is one exception though: if an unauthorized server provides substitutes that are @emph{bit-for-bit identical} to those provided by an authorized server, then the unauthorized server becomes eligible for downloads. For example, assume we have chosen two substitute servers with this option:" msgstr "Es gibt nur eine Ausnahme: Wenn ein unautorisierter Server Substitute anbietet, die @emph{Bit für Bit identisch} mit denen von einem autorisierten Server sind, können sie auch vom unautorisierten Server heruntergeladen werden. Zum Beispiel, angenommen wir haben zwei Substitutserver mit dieser Befehlszeilenoption ausgewählt:" #. type: example #: guix-git/doc/guix.texi:3876 #, no-wrap msgid "--substitute-urls=\"https://a.example.org https://b.example.org\"\n" msgstr "--substitute-urls=\"https://a.example.org https://b.example.org\"\n" #. type: Plain text #: guix-git/doc/guix.texi:3887 msgid "If the ACL contains only the key for @samp{b.example.org}, and if @samp{a.example.org} happens to serve the @emph{exact same} substitutes, then Guix will download substitutes from @samp{a.example.org} because it comes first in the list and can be considered a mirror of @samp{b.example.org}. In practice, independent build machines usually produce the same binaries, thanks to bit-reproducible builds (see below)." msgstr "Wenn in der ACL nur der Schlüssel für @samp{b.example.org} aufgeführt wurde, aber @samp{a.example.org} @emph{exakt dieselben} Substitute anbietet, wird Guix auch Substitute von @samp{a.example.org} herunterladen, weil es in der Liste zuerst kommt und als Spiegelserver für @samp{b.example.org} aufgefasst werden kann. In der Praxis haben unabhängige Maschinen bei der Erstellung normalerweise dieselben Binärdateien als Ergebnis, dank bit-reproduzierbaren Erstellungen (siehe unten)." #. type: Plain text #: guix-git/doc/guix.texi:3894 msgid "When using HTTPS, the server's X.509 certificate is @emph{not} validated (in other words, the server is not authenticated), contrary to what HTTPS clients such as Web browsers usually do. This is because Guix authenticates substitute information itself, as explained above, which is what we care about (whereas X.509 certificates are about authenticating bindings between domain names and public keys)." msgstr "Wenn Sie HTTPS benutzen, wird das X.509-Zertifikat des Servers @emph{nicht} validiert (mit anderen Worten, die Identität des Servers wird nicht authentifiziert), entgegen dem, was HTTPS-Clients wie Web-Browser normalerweise tun. Da Guix Substitutinformationen selbst überprüft, wie oben erklärt, wäre es unnötig (wohingegen mit X.509-Zertifikaten geprüft wird, ob ein Domain-Name zu öffentlichen Schlüsseln passt)." #. type: Plain text #: guix-git/doc/guix.texi:3906 msgid "Substitutes are downloaded over HTTP or HTTPS@. The @env{http_proxy} and @env{https_proxy} environment variables can be set in the environment of @command{guix-daemon} and are honored for downloads of substitutes. Note that the value of those environment variables in the environment where @command{guix build}, @command{guix package}, and other client commands are run has @emph{absolutely no effect}." msgstr "Substitute werden über HTTP oder HTTPS heruntergeladen. Die Umgebungsvariablen @env{http_proxy} und @env{https_proxy} können in der Umgebung von @command{guix-daemon} definiert werden und wirken sich dann auf das Herunterladen von Substituten aus. Beachten Sie, dass der Wert dieser Variablen in der Umgebung, in der @command{guix build}, @command{guix package} und andere Client-Befehle ausgeführt werden, @emph{keine Rolle spielt}." #. type: Plain text #: guix-git/doc/guix.texi:3915 msgid "Even when a substitute for a derivation is available, sometimes the substitution attempt will fail. This can happen for a variety of reasons: the substitute server might be offline, the substitute may recently have been deleted, the connection might have been interrupted, etc." msgstr "Selbst wenn ein Substitut für eine Ableitung verfügbar ist, schlägt die versuchte Substitution manchmal fehl. Das kann aus vielen Gründen geschehen: die Substitutserver könnten offline sein, das Substitut könnte kürzlich gelöscht worden sein, die Netzwerkverbindung könnte unterbrochen worden sein, usw." #. type: Plain text #: guix-git/doc/guix.texi:3929 msgid "When substitutes are enabled and a substitute for a derivation is available, but the substitution attempt fails, Guix will attempt to build the derivation locally depending on whether or not @option{--fallback} was given (@pxref{fallback-option,, common build option @option{--fallback}}). Specifically, if @option{--fallback} was omitted, then no local build will be performed, and the derivation is considered to have failed. However, if @option{--fallback} was given, then Guix will attempt to build the derivation locally, and the success or failure of the derivation depends on the success or failure of the local build. Note that when substitutes are disabled or no substitute is available for the derivation in question, a local build will @emph{always} be performed, regardless of whether or not @option{--fallback} was given." msgstr "Wenn Substitute aktiviert sind und ein Substitut für eine Ableitung zwar verfügbar ist, aber die versuchte Substitution fehlschlägt, kann Guix versuchen, die Ableitung lokal zu erstellen, je nachdem, ob @option{--fallback} übergeben wurde (siehe @ref{fallback-option,, common build option @option{--fallback}}). Genauer gesagt, wird keine lokale Erstellung durchgeführt, solange kein @option{--fallback} angegeben wurde, und die Ableitung wird als Fehlschlag angesehen. Wenn @option{--fallback} übergeben wurde, wird Guix versuchen, die Ableitung lokal zu erstellen, und ob die Ableitung erfolgreich ist oder nicht, hängt davon ab, ob die lokale Erstellung erfolgreich ist oder nicht. Beachten Sie, dass, falls Substitute ausgeschaltet oder erst gar kein Substitut verfügbar ist, @emph{immer} eine lokale Erstellung durchgeführt wird, egal ob @option{--fallback} übergeben wurde oder nicht." #. type: Plain text #: guix-git/doc/guix.texi:3934 msgid "To get an idea of how many substitutes are available right now, you can try running the @command{guix weather} command (@pxref{Invoking guix weather}). This command provides statistics on the substitutes provided by a server." msgstr "Um eine Vorstellung zu bekommen, wie viele Substitute gerade verfügbar sind, können Sie den Befehl @command{guix weather} benutzen (siehe @ref{Invoking guix weather}). Dieser Befehl zeigt Statistiken darüber an, wie es um die von einem Server verfügbaren Substitute steht." #. type: cindex #: guix-git/doc/guix.texi:3938 #, no-wrap msgid "trust, of pre-built binaries" msgstr "Vertrauen, gegenüber vorerstellten Binärdateien" #. type: Plain text #: guix-git/doc/guix.texi:3948 msgid "Today, each individual's control over their own computing is at the mercy of institutions, corporations, and groups with enough power and determination to subvert the computing infrastructure and exploit its weaknesses. While using substitutes can be convenient, we encourage users to also build on their own, or even run their own build farm, such that the project run substitute servers are less of an interesting target. One way to help is by publishing the software you build using @command{guix publish} so that others have one more choice of server to download substitutes from (@pxref{Invoking guix publish})." msgstr "Derzeit hängt die Kontrolle jedes Individuums über seine Rechner von Institutionen, Unternehmen und solchen Gruppierungen ab, die über genug Macht und Entschlusskraft verfügen, die Rechnerinfrastruktur zu sabotieren und ihre Schwachstellen auszunutzen. Auch wenn es bequem ist, Substitute zu benutzen, ermuntern wir Nutzer, auch selbst Erstellungen durchzuführen oder gar ihre eigene Erstellungsfarm zu betreiben, damit die vom Guix-Projekt betriebenen Substitutserver ein weniger interessantes Ziel werden. Eine Art, uns zu helfen, ist, die von Ihnen erstellte Software mit dem Befehl @command{guix publish} zu veröffentlichen, damit andere eine größere Auswahl haben, von welchem Server sie Substitute beziehen möchten (siehe @ref{Invoking guix publish})." #. type: Plain text #: guix-git/doc/guix.texi:3960 msgid "Guix has the foundations to maximize build reproducibility (@pxref{Features}). In most cases, independent builds of a given package or derivation should yield bit-identical results. Thus, through a diverse set of independent package builds, we can strengthen the integrity of our systems. The @command{guix challenge} command aims to help users assess substitute servers, and to assist developers in finding out about non-deterministic package builds (@pxref{Invoking guix challenge}). Similarly, the @option{--check} option of @command{guix build} allows users to check whether previously-installed substitutes are genuine by rebuilding them locally (@pxref{build-check, @command{guix build --check}})." msgstr "Guix hat die richtigen Grundlagen, um die Reproduzierbarkeit von Erstellungen zu maximieren (siehe @ref{Features}). In den meisten Fällen sollten unabhängige Erstellungen eines bestimmten Pakets zu bitweise identischen Ergebnissen führen. Wir können also mit Hilfe einer vielschichtigen Menge an unabhängigen Paketerstellungen die Integrität unseres Systems besser gewährleisten. Der Befehl @command{guix challenge} hat das Ziel, Nutzern zu ermöglichen, Substitutserver zu beurteilen, und Entwickler dabei zu unterstützen, nichtdeterministische Paketerstellungen zu finden (siehe @ref{Invoking guix challenge}). Ebenso ermöglicht es die Befehlszeilenoption @option{--check} von @command{guix build}, dass Nutzer bereits installierte Substitute auf Unverfälschtheit zu prüfen, indem sie durch lokales Erstellen nachgebildet werden (siehe @ref{build-check, @command{guix build --check}})." #. type: Plain text #: guix-git/doc/guix.texi:3964 msgid "In the future, we want Guix to have support to publish and retrieve binaries to/from other users, in a peer-to-peer fashion. If you would like to discuss this project, join us on @email{guix-devel@@gnu.org}." msgstr "In Zukunft wollen wir, dass Sie mit Guix Binärdateien von Netzwerkteilnehmer zu Netzwerkteilnehmer („peer-to-peer“) veröffentlichen und empfangen können. Wenn Sie mit uns dieses Projekt diskutieren möchten, kommen Sie auf unsere Mailing-Liste @email{guix-devel@@gnu.org}." #. type: cindex #: guix-git/doc/guix.texi:3968 #, no-wrap msgid "multiple-output packages" msgstr "mehrere Ausgaben, bei Paketen" #. type: cindex #: guix-git/doc/guix.texi:3969 #, no-wrap msgid "package outputs" msgstr "Paketausgaben" #. type: cindex #: guix-git/doc/guix.texi:3970 #, no-wrap msgid "outputs" msgstr "Ausgaben" #. type: Plain text #: guix-git/doc/guix.texi:3980 msgid "Often, packages defined in Guix have a single @dfn{output}---i.e., the source package leads to exactly one directory in the store. When running @command{guix install glibc}, one installs the default output of the GNU libc package; the default output is called @code{out}, but its name can be omitted as shown in this command. In this particular case, the default output of @code{glibc} contains all the C header files, shared libraries, static libraries, Info documentation, and other supporting files." msgstr "Oft haben in Guix definierte Pakete eine einzige @dfn{Ausgabe}@tie{}– d.h.@: aus dem Quellpaket entsteht genau ein Verzeichnis im Store. Wenn Sie @command{guix install glibc} ausführen, wird die Standard-Paketausgabe des GNU-libc-Pakets installiert; die Standardausgabe wird @code{out} genannt, aber ihr Name kann weggelassen werden, wie Sie am obigen Befehl sehen. In diesem speziellen Fall enthält die Standard-Paketausgabe von @code{glibc} alle C-Headerdateien, gemeinsamen Bibliotheken („Shared Libraries“), statischen Bibliotheken („Static Libraries“), Dokumentation für Info sowie andere zusätzliche Dateien." #. type: Plain text #: guix-git/doc/guix.texi:3988 msgid "Sometimes it is more appropriate to separate the various types of files produced from a single source package into separate outputs. For instance, the GLib C library (used by GTK+ and related packages) installs more than 20 MiB of reference documentation as HTML pages. To save space for users who do not need it, the documentation goes to a separate output, called @code{doc}. To install the main GLib output, which contains everything but the documentation, one would run:" msgstr "Manchmal ist es besser, die verschiedenen Arten von Dateien, die aus einem einzelnen Quellpaket hervorgehen, in getrennte Ausgaben zu unterteilen. Zum Beispiel installiert die GLib-C-Bibliothek (die von GTK und damit zusammenhängenden Paketen benutzt wird) mehr als 20 MiB an HTML-Seiten mit Referenzdokumentation. Um den Nutzern, die das nicht brauchen, Platz zu sparen, wird die Dokumentation in einer separaten Ausgabe abgelegt, genannt @code{doc}. Um also die Hauptausgabe von GLib zu installieren, zu der alles außer der Dokumentation gehört, ist der Befehl:" #. type: example #: guix-git/doc/guix.texi:3991 #, no-wrap msgid "guix install glib\n" msgstr "guix install glib\n" #. type: Plain text #: guix-git/doc/guix.texi:3995 msgid "The command to install its documentation is:" msgstr "Der Befehl, um die Dokumentation zu installieren, ist:" #. type: example #: guix-git/doc/guix.texi:3998 #, no-wrap msgid "guix install glib:doc\n" msgstr "guix install glib:doc\n" #. type: Plain text #: guix-git/doc/guix.texi:4007 msgid "While the colon syntax works for command-line specification of package outputs, it will not work when using a package @emph{variable} in Scheme code. For example, to add the documentation of @code{glib} to the globally installed packages of an @code{operating-system} (see @ref{operating-system Reference}), a list of two items, the first one being the package @emph{variable} and the second one the name of the output to select (a string), must be used instead:" msgstr "Jedoch ist die Schreibweise mit Doppelpunkt nur richtig bei der Spezifikation von Paketausgaben auf der Befehlszeile. Sie ist falsch, wenn Sie eine @emph{Paket-Variable} in Scheme-Code angeben. Um zum Beispiel die Dokumentation von @code{glib} zu den global installierten Paketen eines @code{operating-system}-Objekts hinzuzufügen (siehe @ref{operating-system Reference}), muss stattdessen eine Liste von zwei Einträgen verwendet werden, als Erstes die @emph{Paket-Variable} und als Zweites der Name der gewählten Ausgabe:" #. type: lisp #: guix-git/doc/guix.texi:4017 #, no-wrap msgid "" "(use-modules (gnu packages glib))\n" ";; glib-with-documentation is the Guile symbol for the glib package\n" "(operating-system\n" " ...\n" " (packages\n" " (append\n" " (list (list glib-with-documentation \"doc\"))\n" " %base-packages)))\n" msgstr "" "(use-modules (gnu packages glib))\n" ";; glib-with-documentation ist das Guile-Symbol für das glib-Paket\n" "(operating-system\n" " …\n" " (packages\n" " (append\n" " (list (list glib-with-documentation \"doc\"))\n" " %base-packages)))\n" #. type: Plain text #: guix-git/doc/guix.texi:4028 msgid "Some packages install programs with different ``dependency footprints''. For instance, the WordNet package installs both command-line tools and graphical user interfaces (GUIs). The former depend solely on the C library, whereas the latter depend on Tcl/Tk and the underlying X libraries. In this case, we leave the command-line tools in the default output, whereas the GUIs are in a separate output. This allows users who do not need the GUIs to save space. The @command{guix size} command can help find out about such situations (@pxref{Invoking guix size}). @command{guix graph} can also be helpful (@pxref{Invoking guix graph})." msgstr "Manche Pakete installieren Programme mit unterschiedlich großem „Abhängigkeiten-Fußabdruck“. Zum Beispiel installiert das Paket WordNet sowohl Befehlszeilenwerkzeuge als auch grafische Benutzerschnittstellen (GUIs). Erstere hängen nur von der C-Bibliothek ab, während Letztere auch von Tcl/Tk und den zu Grunde liegenden X-Bibliotheken abhängen. Jedenfalls belassen wir deshalb die Befehlszeilenwerkzeuge in der Standard-Paketausgabe, während sich die GUIs in einer separaten Ausgabe befinden. So können Benutzer, die die GUIs nicht brauchen, Platz sparen. Der Befehl @command{guix size} kann dabei helfen, solche Situationen zu erkennen (siehe @ref{Invoking guix size}). @command{guix graph} kann auch helfen (siehe @ref{Invoking guix graph})." #. type: Plain text #: guix-git/doc/guix.texi:4036 msgid "There are several such multiple-output packages in the GNU distribution. Other conventional output names include @code{lib} for libraries and possibly header files, @code{bin} for stand-alone programs, and @code{debug} for debugging information (@pxref{Installing Debugging Files}). The outputs of a package are listed in the third column of the output of @command{guix package --list-available} (@pxref{Invoking guix package})." msgstr "In der GNU-Distribution gibt es viele solche Pakete mit mehreren Ausgaben. Andere Konventionen für Ausgabenamen sind zum Beispiel @code{lib} für Bibliotheken und eventuell auch ihre Header-Dateien, @code{bin} für eigenständige Programme und @code{debug} für Informationen zur Fehlerbehandlung (siehe @ref{Installing Debugging Files}). Die Ausgaben eines Pakets stehen in der dritten Spalte der Anzeige von @command{guix package --list-available} (siehe @ref{Invoking guix package})." #. type: section #: guix-git/doc/guix.texi:4039 #, no-wrap msgid "Invoking @command{guix locate}" msgstr "@command{guix locate} aufrufen" #. type: cindex #: guix-git/doc/guix.texi:4041 #, no-wrap msgid "file, searching in packages" msgstr "Datei, in Paketen suchen" #. type: cindex #: guix-git/doc/guix.texi:4042 guix-git/doc/guix.texi:25957 #, no-wrap msgid "file search" msgstr "Datei suchen" #. type: Plain text #: guix-git/doc/guix.texi:4048 msgid "There's so much free software out there that sooner or later, you will need to search for packages. The @command{guix search} command that we've seen before (@pxref{Invoking guix package}) lets you search by keywords:" msgstr "Uns steht solch eine Fülle an freier Software zur Verfügung, dass wir früher oder später suchen müssen, welches Paket wir benötigen. Mit dem Befehl @command{guix search}, den wir bereits kennengelernt haben (siehe @ref{Invoking guix package}), können wir anhand von Schlüsselwörtern suchen:" #. type: example #: guix-git/doc/guix.texi:4051 #, no-wrap msgid "guix search video editor\n" msgstr "guix search video editor\n" #. type: cindex #: guix-git/doc/guix.texi:4053 #, no-wrap msgid "searching for packages, by file name" msgstr "Suche nach Paketen, anhand eines Dateinamens" #. type: Plain text #: guix-git/doc/guix.texi:4057 msgid "Sometimes, you instead want to find which package provides a given file, and this is where @command{guix locate} comes in. Here is how you can find which package provides the @command{ls} command:" msgstr "Manchmal möchte man eher wissen, in welchem Paket eine bestimmte Datei angeboten wird. Hierfür ist @command{guix locate} das Richtige. So können Sie z.B.@: herausfinden, welches Paket den Befehl @command{ls} verfügbar macht:" #. type: example #: guix-git/doc/guix.texi:4061 #, no-wrap msgid "" "$ guix locate ls\n" "coreutils@@9.1 /gnu/store/@dots{}-coreutils-9.1/bin/ls\n" msgstr "" "$ guix locate ls\n" "coreutils@@9.1 /gnu/store/…-coreutils-9.1/bin/ls\n" #. type: Plain text #: guix-git/doc/guix.texi:4064 msgid "Of course the command works for any file, not just commands:" msgstr "Natürlich funktioniert es auch mit anderen Dateien, @emph{nicht} nur für Befehle:" #. type: example #: guix-git/doc/guix.texi:4069 #, no-wrap msgid "" "$ guix locate unistr.h\n" "icu4c@@71.1 /gnu/store/@dots{}/include/unicode/unistr.h\n" "libunistring@@1.0 /gnu/store/@dots{}/include/unistr.h\n" msgstr "" "$ guix locate unistr.h\n" "icu4c@@71.1 /gnu/store/…/include/unicode/unistr.h\n" "libunistring@@1.0 /gnu/store/…/include/unistr.h\n" #. type: Plain text #: guix-git/doc/guix.texi:4074 msgid "You may also specify @dfn{glob patterns} with wildcards. For example, here is how you would search for packages providing @file{.service} files:" msgstr "Sie können auch @dfn{glob-Muster} mit Platzhaltern verwenden. Zum Beispiel würden Sie so nach Paketen suchen, die @file{.service}-Dateien verfügbar machen:" #. type: example #: guix-git/doc/guix.texi:4079 #, no-wrap msgid "" "$ guix locate -g '*.service'\n" "man-db@@2.11.1 @dots{}/lib/systemd/system/man-db.service\n" "wpa-supplicant@@2.10 @dots{}/system-services/fi.w1.wpa_supplicant1.service\n" msgstr "" "$ guix locate -g '*.service'\n" "man-db@@2.11.1 …/lib/systemd/system/man-db.service\n" "wpa-supplicant@@2.10 …/system-services/fi.w1.wpa_supplicant1.service\n" #. type: Plain text #: guix-git/doc/guix.texi:4086 msgid "The @command{guix locate} command relies on a database that maps file names to package names. By default, it automatically creates that database if it does not exist yet by traversing packages available @emph{locally}, which can take a few minutes (depending on the size of your store and the speed of your storage device)." msgstr "Der Befehl @command{guix locate} braucht eine Datenbank, die Dateinamen zu Paketnamen zuordnet. Nach den Vorgabeeinstellungen wird diese Datenbank automatisch angelegt, wenn sie noch nicht existiert, wozu die @emph{lokal} verfügbaren Pakete betrachtet werden, was ein paar Minuten dauern kann (je nachdem wie groß Ihr Store und wie schnell Ihr Speichermedium ist)." #. type: quotation #: guix-git/doc/guix.texi:4092 msgid "For now, @command{guix locate} builds its database based on purely local knowledge---meaning that you will not find packages that never reached your store. Eventually it will support downloading a pre-built database so you can potentially find more packages." msgstr "Im Moment kann @command{guix locate} seine Datenbank nur auf lokalem Wissen aufbauen@tie{}– Pakete außerhalb Ihres Stores werden nicht aufgenommen. Das soll sich noch ändern und dann wird es eine vorerstellte Datenbank herunterladen können, mit der sie auch andere Pakete finden können." #. type: Plain text #: guix-git/doc/guix.texi:4102 msgid "By default, @command{guix locate} first tries to look for a system-wide database, usually under @file{/var/cache/guix/locate}; if it does not exist or is too old, it falls back to the per-user database, by default under @file{~/.cache/guix/locate}. On a multi-user system, administrators may want to periodically update the system-wide database so that all users can benefit from it, for instance by setting up @code{package-database-service-type} (@pxref{File Search Services, @code{package-database-service-type}})." msgstr "Vorgegeben ist, dass @command{guix locate} zunächst schaut, ob eine systemweite Datenbank vorhanden ist, in der Regel in @file{/var/cache/guix/locate}. Wenn Sie @emph{nicht} existiert oder zu alt ist, wird stattdessen auf eine nutzereigene Datenbank zurückgegriffen, vorgegeben ist @file{~/.cache/guix/locate}. In einem Mehrbenutzersystem können Administratoren die Aufgabe übernehmen, regelmäßig die systemweite Datenbank zu aktualisieren, damit alle Benutzer etwas davon haben, zum Beispiel mit Hilfe des @code{package-database-service-type} (siehe @ref{File Search Services, @code{package-database-service-type}})." #. type: Plain text #: guix-git/doc/guix.texi:4104 guix-git/doc/guix.texi:4723 #: guix-git/doc/guix.texi:5921 guix-git/doc/guix.texi:6462 #: guix-git/doc/guix.texi:7362 guix-git/doc/guix.texi:12535 #: guix-git/doc/guix.texi:12837 guix-git/doc/guix.texi:13904 #: guix-git/doc/guix.texi:14000 guix-git/doc/guix.texi:15174 #: guix-git/doc/guix.texi:15457 guix-git/doc/guix.texi:15960 #: guix-git/doc/guix.texi:16338 guix-git/doc/guix.texi:16434 #: guix-git/doc/guix.texi:16473 guix-git/doc/guix.texi:16574 msgid "The general syntax is:" msgstr "Die allgemeine Syntax lautet:" #. type: example #: guix-git/doc/guix.texi:4107 #, no-wrap msgid "guix locate [@var{options}@dots{}] @var{file}@dots{}\n" msgstr "guix locate [@var{Optionen}…] @var{Datei}…\n" #. type: Plain text #: guix-git/doc/guix.texi:4113 msgid "... where @var{file} is the name of a file to search for (specifically, the ``base name'' of the file: files whose parent directories are called @var{file} are not matched)." msgstr "Dabei ist @var{Datei} der Name einer aufzufindenden Datei (genauer gesagt ihr „Basisname“: Dateien, die ein Elternverzeichnis namens @var{Datei} haben, landen @emph{nicht} im Ergebnis)." #. type: Plain text #: guix-git/doc/guix.texi:4115 guix-git/doc/guix.texi:12588 msgid "The available options are as follows:" msgstr "Folgende @var{Optionen} gibt es:" #. type: item #: guix-git/doc/guix.texi:4117 #, no-wrap msgid "--glob" msgstr "--glob" #. type: itemx #: guix-git/doc/guix.texi:4118 guix-git/doc/guix.texi:13874 #, no-wrap msgid "-g" msgstr "-g" #. type: table #: guix-git/doc/guix.texi:4122 msgid "Interpret @var{file}@dots{} as @dfn{glob patterns}---patterns that may include wildcards, such as @samp{*.scm} to denote all files ending in @samp{.scm}." msgstr "@var{Datei}… werden als @dfn{glob-Muster} aufgefasst@tie{}– also Muster, die auch Platzhalterzeichen enthalten können wie @samp{*.scm}, was alle Dateien aufgreift, die in @samp{.scm} enden." #. type: item #: guix-git/doc/guix.texi:4123 guix-git/doc/guix.texi:7419 #, no-wrap msgid "--stats" msgstr "--stats" #. type: table #: guix-git/doc/guix.texi:4125 msgid "Display database statistics." msgstr "Statistiken über die Datenbank zeigen." #. type: item #: guix-git/doc/guix.texi:4126 guix-git/doc/guix.texi:14796 #, no-wrap msgid "--update" msgstr "--update" #. type: itemx #: guix-git/doc/guix.texi:4127 guix-git/doc/guix.texi:14797 #, no-wrap msgid "-u" msgstr "-u" #. type: table #: guix-git/doc/guix.texi:4129 msgid "Update the file database." msgstr "Die Datenbank mit den Dateien auf den neuesten Stand bringen." #. type: table #: guix-git/doc/guix.texi:4131 msgid "By default, the database is automatically updated when it is too old." msgstr "Nach den Vorgabeeinstellungen wird die Datenbank dann aktualisiert, wenn sie zu alt ist." #. type: item #: guix-git/doc/guix.texi:4132 #, no-wrap msgid "--clear" msgstr "--clear" #. type: table #: guix-git/doc/guix.texi:4134 msgid "Clear the database and re-populate it." msgstr "Die Datenbank leeren und neu befüllen." #. type: table #: guix-git/doc/guix.texi:4139 msgid "This option lets you start anew, ensuring old data is removed from the database, which also avoids having an endlessly growing database. By default @command{guix locate} automatically does that periodically, though infrequently." msgstr "Mit dieser Befehlszeilenoption können sie von vorn anfangen, so dass alte Daten @emph{nicht} mehr in der Datenbank auftauchen. So stellen Sie sicher, dass die Datenbank nicht endlos anwächst. Nach den Vorgabeeinstellungen für @command{guix locate} geschieht das regelmäßig automatisch, wenn auch nicht oft." #. type: item #: guix-git/doc/guix.texi:4140 #, no-wrap msgid "--database=@var{file}" msgstr "--database=@var{Datei}" #. type: table #: guix-git/doc/guix.texi:4142 msgid "Use @var{file} as the database, creating it if necessary." msgstr "Die @var{Datei} als Datenbank benutzen. Wenn nötig, wird sie erzeugt." #. type: table #: guix-git/doc/guix.texi:4146 msgid "By default, @command{guix locate} picks the database under @file{~/.cache/guix} or @file{/var/cache/guix}, whichever is the most recent one." msgstr "Nach den Vorgabeeinstellungen benutzt @command{guix locate} die Datenbank unter @file{~/.cache/guix} oder @file{/var/cache/guix}, je nachdem, welche neuer ist." #. type: item #: guix-git/doc/guix.texi:4147 #, no-wrap msgid "--method=@var{method}" msgstr "--method=@var{Methode}" #. type: itemx #: guix-git/doc/guix.texi:4148 #, no-wrap msgid "-m @var{method}" msgstr "-m @var{Methode}" #. type: table #: guix-git/doc/guix.texi:4151 msgid "Use @var{method} to select the set of packages to index. Possible values are:" msgstr "Nach der @var{Methode} auswählen, welche Pakete in den Index aufgenommn werden. Mögliche Werte sind:" #. type: item #: guix-git/doc/guix.texi:4153 #, no-wrap msgid "manifests" msgstr "manifests" #. type: table #: guix-git/doc/guix.texi:4159 msgid "This is the default method: it works by traversing profiles on the machine and recording packages it encounters---packages you or other users of the machine installed, directly or indirectly. It is fast but it can miss other packages available in the store but not referred to by any profile." msgstr "Dies ist die vorgegebene Methode: Für sie werden die Profile auf der Maschine betrachtet und die darin vorkommenden Pakete ermittelt@tie{}– das sind die Pakete, die Sie oder andere Benutzer derselben Maschine direkt oder indirekt installiert haben. Das geht schnell, aber Pakete, die aus anderem Grund im Store sind, fehlen, wenn kein Profil darauf verweist." #. type: table #: guix-git/doc/guix.texi:4164 msgid "This is a slower but more exhaustive method: it checks among all the existing packages those that are available in the store and records them." msgstr "Diese Methode ist langsamer, aber gründlicher: Alle Pakete, die im Store vorhanden sind, werden in die Datenbank aufgenommen." #. type: section #: guix-git/doc/guix.texi:4169 #, no-wrap msgid "Invoking @command{guix gc}" msgstr "@command{guix gc} aufrufen" #. type: cindex #: guix-git/doc/guix.texi:4171 #, no-wrap msgid "garbage collector" msgstr "Müllsammler" #. type: cindex #: guix-git/doc/guix.texi:4172 #, no-wrap msgid "disk space" msgstr "Plattenspeicher" #. type: command{#1} #: guix-git/doc/guix.texi:4173 #, no-wrap msgid "guix gc" msgstr "guix gc" #. type: Plain text #: guix-git/doc/guix.texi:4179 msgid "Packages that are installed, but not used, may be @dfn{garbage-collected}. The @command{guix gc} command allows users to explicitly run the garbage collector to reclaim space from the @file{/gnu/store} directory. It is the @emph{only} way to remove files from @file{/gnu/store}---removing files or directories manually may break it beyond repair!" msgstr "Pakete, die zwar installiert sind, aber nicht benutzt werden, können vom @dfn{Müllsammler} entfernt werden. Mit dem Befehl @command{guix gc} können Benutzer den Müllsammler ausdrücklich aufrufen, um Speicher im Verzeichnis @file{/gnu/store} freizugeben. Dies ist der @emph{einzige} Weg, Dateien aus @file{/gnu/store} zu entfernen@tie{}– das manuelle Entfernen von Dateien kann den Store irreparabel beschädigen!" #. type: Plain text #: guix-git/doc/guix.texi:4190 msgid "The garbage collector has a set of known @dfn{roots}: any file under @file{/gnu/store} reachable from a root is considered @dfn{live} and cannot be deleted; any other file is considered @dfn{dead} and may be deleted. The set of garbage collector roots (``GC roots'' for short) includes default user profiles; by default, the symlinks under @file{/var/guix/gcroots} represent these GC roots. New GC roots can be added with @command{guix build --root}, for example (@pxref{Invoking guix build}). The @command{guix gc --list-roots} command lists them." msgstr "Der Müllsammler kennt eine Reihe von @dfn{Wurzeln}: Jede Datei in @file{/gnu/store}, die von einer Wurzel aus erreichbar ist, gilt als @dfn{lebendig} und kann nicht entfernt werden; jede andere Datei gilt als @dfn{tot} und ist ein Kandidat, gelöscht zu werden. Die Menge der Müllsammlerwurzeln (kurz auch „GC-Wurzeln“, von englisch „Garbage Collector“) umfasst Standard-Benutzerprofile; standardmäßig werden diese Müllsammlerwurzeln durch symbolische Verknüpfungen in @file{/var/guix/gcroots} dargestellt. Neue Müllsammlerwurzeln können zum Beispiel mit @command{guix build --root} festgelegt werden (siehe @ref{Invoking guix build}). Der Befehl @command{guix gc --list-roots} listet sie auf." #. type: Plain text #: guix-git/doc/guix.texi:4196 msgid "Prior to running @code{guix gc --collect-garbage} to make space, it is often useful to remove old generations from user profiles; that way, old package builds referenced by those generations can be reclaimed. This is achieved by running @code{guix package --delete-generations} (@pxref{Invoking guix package})." msgstr "Bevor Sie mit @code{guix gc --collect-garbage} Speicher freimachen, wollen Sie vielleicht alte Generationen von Benutzerprofilen löschen, damit alte Paketerstellungen von diesen Generationen entfernt werden können. Führen Sie dazu @code{guix package --delete-generations} aus (siehe @ref{Invoking guix package})." #. type: Plain text #: guix-git/doc/guix.texi:4200 msgid "Our recommendation is to run a garbage collection periodically, or when you are short on disk space. For instance, to guarantee that at least 5@tie{}GB are available on your disk, simply run:" msgstr "Unsere Empfehlung ist, dass Sie den Müllsammler regelmäßig laufen lassen und wenn Sie wenig freien Speicherplatz zur Verfügung haben. Um zum Beispiel sicherzustellen, dass Sie mindestens 5@tie{}GB auf Ihrer Platte zur Verfügung haben, benutzen Sie einfach:" #. type: example #: guix-git/doc/guix.texi:4203 #, no-wrap msgid "guix gc -F 5G\n" msgstr "guix gc -F 5G\n" #. type: Plain text #: guix-git/doc/guix.texi:4212 msgid "It is perfectly safe to run as a non-interactive periodic job (@pxref{Scheduled Job Execution}, for how to set up such a job). Running @command{guix gc} with no arguments will collect as much garbage as it can, but that is often inconvenient: you may find yourself having to rebuild or re-download software that is ``dead'' from the GC viewpoint but that is necessary to build other pieces of software---e.g., the compiler tool chain." msgstr "Es ist völlig sicher, dafür eine nicht interaktive, regelmäßige Auftragsausführung vorzugeben (siehe @ref{Scheduled Job Execution} für eine Erklärung, wie man das tun kann). @command{guix gc} ohne Befehlszeilenargumente auszuführen, lässt so viel Müll wie möglich sammeln, aber das ist oft nicht, was man will, denn so muss man unter Umständen Software erneut erstellen oder erneut herunterladen, weil der Müllsammler sie als „tot“ ansieht, sie aber zur Erstellung anderer Software wieder gebraucht wird@tie{}– das trifft zum Beispiel auf die Compiler-Toolchain zu." #. type: Plain text #: guix-git/doc/guix.texi:4218 msgid "The @command{guix gc} command has three modes of operation: it can be used to garbage-collect any dead files (the default), to delete specific files (the @option{--delete} option), to print garbage-collector information, or for more advanced queries. The garbage collection options are as follows:" msgstr "Der Befehl @command{guix gc} hat drei Arbeitsmodi: Er kann benutzt werden, um als Müllsammler tote Dateien zu entfernen (das Standardverhalten), um ganz bestimmte, angegebene Datein zu löschen (mit der Befehlszeilenoption @option{--delete}), um Müllsammlerinformationen auszugeben oder fortgeschrittenere Anfragen zu verarbeiten. Die Müllsammler-Befehlszeilenoptionen sind wie folgt:" #. type: item #: guix-git/doc/guix.texi:4220 #, no-wrap msgid "--collect-garbage[=@var{min}]" msgstr "--collect-garbage[=@var{Minimum}]" #. type: itemx #: guix-git/doc/guix.texi:4221 #, no-wrap msgid "-C [@var{min}]" msgstr "-C [@var{Minimum}]" #. type: table #: guix-git/doc/guix.texi:4225 msgid "Collect garbage---i.e., unreachable @file{/gnu/store} files and sub-directories. This is the default operation when no option is specified." msgstr "Lässt Müll sammeln@tie{}– z.B.@: nicht erreichbare Dateien in @file{/gnu/store} und seinen Unterverzeichnissen. Wird keine andere Befehlszeilenoption angegeben, wird standardmäßig diese durchgeführt." #. type: table #: guix-git/doc/guix.texi:4230 msgid "When @var{min} is given, stop once @var{min} bytes have been collected. @var{min} may be a number of bytes, or it may include a unit as a suffix, such as @code{MiB} for mebibytes and @code{GB} for gigabytes (@pxref{Block size, size specifications,, coreutils, GNU Coreutils})." msgstr "Wenn ein @var{Minimum} angegeben wurde, hört der Müllsammler auf, sobald @var{Minimum} Bytes gesammelt wurden. Das @var{Minimum} kann die Anzahl der Bytes bezeichnen oder mit einer Einheit als Suffix versehen sein, wie etwa @code{MiB} für Mebibytes und @code{GB} für Gigabytes (siehe @ref{Block size, Größenangaben,, coreutils, GNU Coreutils})." #. type: table #: guix-git/doc/guix.texi:4232 msgid "When @var{min} is omitted, collect all the garbage." msgstr "Wird kein @var{Minimum} angegeben, sammelt der Müllsammler allen Müll." #. type: item #: guix-git/doc/guix.texi:4233 #, no-wrap msgid "--free-space=@var{free}" msgstr "--free-space=@var{Menge}" #. type: itemx #: guix-git/doc/guix.texi:4234 #, no-wrap msgid "-F @var{free}" msgstr "-F @var{Menge}" #. type: table #: guix-git/doc/guix.texi:4238 msgid "Collect garbage until @var{free} space is available under @file{/gnu/store}, if possible; @var{free} denotes storage space, such as @code{500MiB}, as described above." msgstr "Sammelt Müll, bis die angegebene @var{Menge} an freiem Speicher in @file{/gnu/store} zur Verfügung steht, falls möglich; die @var{Menge} ist eine Speichergröße wie @code{500MiB}, wie oben beschrieben." #. type: table #: guix-git/doc/guix.texi:4241 msgid "When @var{free} or more is already available in @file{/gnu/store}, do nothing and exit immediately." msgstr "Wenn die angegebene @var{Menge} oder mehr bereits in @file{/gnu/store} frei verfügbar ist, passiert nichts." #. type: item #: guix-git/doc/guix.texi:4242 #, no-wrap msgid "--delete-generations[=@var{duration}]" msgstr "--delete-generations[=@var{Dauer}]" #. type: itemx #: guix-git/doc/guix.texi:4243 #, no-wrap msgid "-d [@var{duration}]" msgstr "-d [@var{Dauer}]" #. type: table #: guix-git/doc/guix.texi:4248 msgid "Before starting the garbage collection process, delete all the generations older than @var{duration}, for all the user profiles and home environment generations; when run as root, this applies to all the profiles @emph{of all the users}." msgstr "Bevor der Müllsammelvorgang beginnt, werden hiermit alle Generationen von allen Benutzerprofilen und von allen Persönlichen Umgebungen gelöscht, die älter sind als die angegebene @var{Dauer}; wird es als Administratornutzer „root“ ausgeführt, geschieht dies mit den Profilen @emph{von allen Benutzern}." #. type: table #: guix-git/doc/guix.texi:4252 msgid "For example, this command deletes all the generations of all your profiles that are older than 2 months (except generations that are current), and then proceeds to free space until at least 10 GiB are available:" msgstr "Zum Beispiel löscht der folgende Befehl alle Generationen Ihrer Profile, die älter als zwei Monate sind (ausgenommen die momentanen Generationen), und schmeißt dann den Müllsammler an, um Platz freizuräumen, bis mindestens 10 GiB verfügbar sind:" #. type: example #: guix-git/doc/guix.texi:4255 #, no-wrap msgid "guix gc -d 2m -F 10G\n" msgstr "guix gc -d 2m -F 10G\n" #. type: item #: guix-git/doc/guix.texi:4257 #, no-wrap msgid "--delete" msgstr "--delete" #. type: itemx #: guix-git/doc/guix.texi:4258 guix-git/doc/guix.texi:6074 #, no-wrap msgid "-D" msgstr "-D" #. type: table #: guix-git/doc/guix.texi:4262 msgid "Attempt to delete all the store files and directories specified as arguments. This fails if some of the files are not in the store, or if they are still live." msgstr "Versucht, alle als Argumente angegebenen Dateien oder Verzeichnisse im Store zu löschen. Dies schlägt fehl, wenn manche der Dateien oder Verzeichnisse nicht im Store oder noch immer lebendig sind." #. type: item #: guix-git/doc/guix.texi:4263 #, no-wrap msgid "--list-failures" msgstr "--list-failures" #. type: table #: guix-git/doc/guix.texi:4265 msgid "List store items corresponding to cached build failures." msgstr "Store-Objekte auflisten, die zwischengespeicherten Erstellungsfehlern entsprechen." #. type: table #: guix-git/doc/guix.texi:4269 msgid "This prints nothing unless the daemon was started with @option{--cache-failures} (@pxref{Invoking guix-daemon, @option{--cache-failures}})." msgstr "Hierbei wird nichts ausgegeben, sofern der Daemon nicht mit @option{--cache-failures} gestartet wurde (siehe @ref{Invoking guix-daemon, @option{--cache-failures}})." #. type: item #: guix-git/doc/guix.texi:4270 #, no-wrap msgid "--list-roots" msgstr "--list-roots" #. type: table #: guix-git/doc/guix.texi:4273 msgid "List the GC roots owned by the user; when run as root, list @emph{all} the GC roots." msgstr "Die Müllsammlerwurzeln auflisten, die dem Nutzer gehören. Wird der Befehl als Administratornutzer ausgeführt, werden @emph{alle} Müllsammlerwurzeln aufgelistet." #. type: item #: guix-git/doc/guix.texi:4274 #, no-wrap msgid "--list-busy" msgstr "--list-busy" #. type: table #: guix-git/doc/guix.texi:4277 msgid "List store items in use by currently running processes. These store items are effectively considered GC roots: they cannot be deleted." msgstr "Solche Store-Objekte auflisten, die von aktuell laufenden Prozessen benutzt werden. Diese Store-Objekte werden praktisch wie Müllsammlerwurzeln behandelt; sie können nicht gelöscht werden." #. type: item #: guix-git/doc/guix.texi:4278 #, no-wrap msgid "--clear-failures" msgstr "--clear-failures" #. type: table #: guix-git/doc/guix.texi:4280 msgid "Remove the specified store items from the failed-build cache." msgstr "Die angegebenen Store-Objekte aus dem Zwischenspeicher für fehlgeschlagene Erstellungen entfernen." #. type: table #: guix-git/doc/guix.texi:4283 msgid "Again, this option only makes sense when the daemon is started with @option{--cache-failures}. Otherwise, it does nothing." msgstr "Auch diese Option macht nur Sinn, wenn der Daemon mit @option{--cache-failures} gestartet wurde. Andernfalls passiert nichts." #. type: item #: guix-git/doc/guix.texi:4284 #, no-wrap msgid "--list-dead" msgstr "--list-dead" #. type: table #: guix-git/doc/guix.texi:4287 msgid "Show the list of dead files and directories still present in the store---i.e., files and directories no longer reachable from any root." msgstr "Zeigt die Liste toter Dateien und Verzeichnisse an, die sich noch im Store befinden@tie{}– das heißt, Dateien, die von keiner Wurzel mehr erreichbar sind." #. type: item #: guix-git/doc/guix.texi:4288 #, no-wrap msgid "--list-live" msgstr "--list-live" #. type: table #: guix-git/doc/guix.texi:4290 msgid "Show the list of live store files and directories." msgstr "Zeige die Liste lebendiger Store-Dateien und -Verzeichnisse." #. type: Plain text #: guix-git/doc/guix.texi:4294 msgid "In addition, the references among existing store files can be queried:" msgstr "Außerdem können Referenzen unter bestehenden Store-Dateien gefunden werden:" #. type: item #: guix-git/doc/guix.texi:4297 #, no-wrap msgid "--references" msgstr "--references" #. type: itemx #: guix-git/doc/guix.texi:4298 #, no-wrap msgid "--referrers" msgstr "--referrers" #. type: cindex #: guix-git/doc/guix.texi:4299 guix-git/doc/guix.texi:15654 #, no-wrap msgid "package dependencies" msgstr "Paketabhängigkeiten" #. type: table #: guix-git/doc/guix.texi:4302 msgid "List the references (respectively, the referrers) of store files given as arguments." msgstr "Listet die referenzierten bzw. sie referenzierenden Objekte der angegebenen Store-Dateien auf." #. type: item #: guix-git/doc/guix.texi:4303 #, no-wrap msgid "--requisites" msgstr "--requisites" #. type: itemx #: guix-git/doc/guix.texi:4304 guix-git/doc/guix.texi:7064 #, no-wrap msgid "-R" msgstr "-R" #. type: item #: guix-git/doc/guix.texi:4305 guix-git/doc/guix.texi:15510 #: guix-git/doc/guix.texi:15538 guix-git/doc/guix.texi:15619 #, no-wrap msgid "closure" msgstr "Abschluss" #. type: table #: guix-git/doc/guix.texi:4310 msgid "List the requisites of the store files passed as arguments. Requisites include the store files themselves, their references, and the references of these, recursively. In other words, the returned list is the @dfn{transitive closure} of the store files." msgstr "Listet alle Voraussetzungen der als Argumente übergebenen Store-Dateien auf. Voraussetzungen sind die Store-Dateien selbst, ihre Referenzen sowie die Referenzen davon, rekursiv. Mit anderen Worten, die zurückgelieferte Liste ist der @dfn{transitive Abschluss} dieser Store-Dateien." #. type: table #: guix-git/doc/guix.texi:4314 msgid "@xref{Invoking guix size}, for a tool to profile the size of the closure of an element. @xref{Invoking guix graph}, for a tool to visualize the graph of references." msgstr "Der Abschnitt @ref{Invoking guix size} erklärt ein Werkzeug, um den Speicherbedarf des Abschlusses eines Elements zu ermitteln. Siehe @ref{Invoking guix graph} für ein Werkzeug, um den Referenzgraphen zu veranschaulichen." #. type: item #: guix-git/doc/guix.texi:4315 #, no-wrap msgid "--derivers" msgstr "--derivers" #. type: item #: guix-git/doc/guix.texi:4316 guix-git/doc/guix.texi:7454 #: guix-git/doc/guix.texi:15356 guix-git/doc/guix.texi:15763 #, no-wrap msgid "derivation" msgstr "derivation" #. type: table #: guix-git/doc/guix.texi:4319 msgid "Return the derivation(s) leading to the given store items (@pxref{Derivations})." msgstr "Liefert die Ableitung(en), die zu den angegebenen Store-Objekten führen (siehe @ref{Derivations})." #. type: table #: guix-git/doc/guix.texi:4321 msgid "For example, this command:" msgstr "Zum Beispiel liefert dieser Befehl:" #. type: example #: guix-git/doc/guix.texi:4324 #, no-wrap msgid "guix gc --derivers $(guix package -I ^emacs$ | cut -f4)\n" msgstr "guix gc --derivers $(guix package -I ^emacs$ | cut -f4)\n" #. type: table #: guix-git/doc/guix.texi:4329 msgid "returns the @file{.drv} file(s) leading to the @code{emacs} package installed in your profile." msgstr "die @file{.drv}-Datei(en), die zum in Ihrem Profil installierten @code{emacs}-Paket führen." #. type: table #: guix-git/doc/guix.texi:4333 msgid "Note that there may be zero matching @file{.drv} files, for instance because these files have been garbage-collected. There can also be more than one matching @file{.drv} due to fixed-output derivations." msgstr "Beachten Sie, dass es auch sein kann, dass keine passenden @file{.drv}-Dateien existieren, zum Beispiel wenn diese Dateien bereits dem Müllsammler zum Opfer gefallen sind. Es kann auch passieren, dass es mehr als eine passende @file{.drv} gibt, bei Ableitungen mit fester Ausgabe." #. type: Plain text #: guix-git/doc/guix.texi:4337 msgid "Lastly, the following options allow you to check the integrity of the store and to control disk usage." msgstr "Zuletzt können Sie mit folgenden Befehlszeilenoptionen die Integrität des Stores prüfen und den Plattenspeicherverbrauch im Zaum halten." #. type: item #: guix-git/doc/guix.texi:4340 #, no-wrap msgid "--verify[=@var{options}]" msgstr "--verify[=@var{Optionen}]" #. type: cindex #: guix-git/doc/guix.texi:4341 #, no-wrap msgid "integrity, of the store" msgstr "Integrität, des Stores" #. type: cindex #: guix-git/doc/guix.texi:4342 #, no-wrap msgid "integrity checking" msgstr "Integritätsprüfung" #. type: table #: guix-git/doc/guix.texi:4344 msgid "Verify the integrity of the store." msgstr "Die Integrität des Stores verifizieren" #. type: table #: guix-git/doc/guix.texi:4347 msgid "By default, make sure that all the store items marked as valid in the database of the daemon actually exist in @file{/gnu/store}." msgstr "Standardmäßig wird sichergestellt, dass alle Store-Objekte, die in der Datenbank des Daemons als gültig markiert wurden, auch tatsächlich in @file{/gnu/store} existieren." #. type: table #: guix-git/doc/guix.texi:4350 msgid "When provided, @var{options} must be a comma-separated list containing one or more of @code{contents} and @code{repair}." msgstr "Wenn angegeben, müssen die @var{Optionen} eine kommagetrennte Liste aus mindestens einem der Worte @code{contents} und @code{repair} sein." #. type: table #: guix-git/doc/guix.texi:4356 msgid "When passing @option{--verify=contents}, the daemon computes the content hash of each store item and compares it against its hash in the database. Hash mismatches are reported as data corruptions. Because it traverses @emph{all the files in the store}, this command can take a long time, especially on systems with a slow disk drive." msgstr "Wenn Sie @option{--verify=contents} übergeben, berechnet der Daemon den Hash des Inhalts jedes Store-Objekts und vergleicht ihn mit dem Hash in der Datenbank. Sind die Hashes ungleich, wird eine Datenbeschädigung gemeldet. Weil dabei @emph{alle Dateien im Store} durchlaufen werden, kann der Befehl viel Zeit brauchen, besonders auf Systemen mit langsamer Platte." #. type: cindex #: guix-git/doc/guix.texi:4357 #, no-wrap msgid "repairing the store" msgstr "Store, reparieren" #. type: cindex #: guix-git/doc/guix.texi:4358 guix-git/doc/guix.texi:13648 #, no-wrap msgid "corruption, recovering from" msgstr "Datenbeschädigung, Behebung" #. type: table #: guix-git/doc/guix.texi:4366 msgid "Using @option{--verify=repair} or @option{--verify=contents,repair} causes the daemon to try to repair corrupt store items by fetching substitutes for them (@pxref{Substitutes}). Because repairing is not atomic, and thus potentially dangerous, it is available only to the system administrator. A lightweight alternative, when you know exactly which items in the store are corrupt, is @command{guix build --repair} (@pxref{Invoking guix build})." msgstr "Mit @option{--verify=repair} oder @option{--verify=contents,repair} versucht der Daemon, beschädigte Store-Objekte zu reparieren, indem er Substitute für selbige herunterlädt (siehe @ref{Substitutes}). Weil die Reparatur nicht atomar und daher womöglich riskant ist, kann nur der Systemadministrator den Befehl benutzen. Eine weniger aufwendige Alternative, wenn Sie wissen, welches Objekt beschädigt ist, ist, @command{guix build --repair} zu benutzen (siehe @ref{Invoking guix build})." #. type: item #: guix-git/doc/guix.texi:4367 #, no-wrap msgid "--optimize" msgstr "--optimize" #. type: table #: guix-git/doc/guix.texi:4371 msgid "Optimize the store by hard-linking identical files---this is @dfn{deduplication}." msgstr "Den Store durch Nutzung harter Verknüpfungen für identische Dateien optimieren@tie{}– mit anderen Worten wird der Store @dfn{dedupliziert}." #. type: table #: guix-git/doc/guix.texi:4377 msgid "The daemon performs deduplication after each successful build or archive import, unless it was started with @option{--disable-deduplication} (@pxref{Invoking guix-daemon, @option{--disable-deduplication}}). Thus, this option is primarily useful when the daemon was running with @option{--disable-deduplication}." msgstr "Der Daemon führt Deduplizierung automatisch nach jeder erfolgreichen Erstellung und jedem Importieren eines Archivs durch, sofern er nicht mit @option{--disable-deduplication} (siehe @ref{Invoking guix-daemon, @option{--disable-deduplication}}) gestartet wurde. Diese Befehlszeilenoption brauchen Sie also in erster Linie dann, wenn der Daemon zuvor mit @option{--disable-deduplication} gestartet worden ist." #. type: item #: guix-git/doc/guix.texi:4378 #, no-wrap msgid "--vacuum-database" msgstr "--vacuum-database" #. type: cindex #: guix-git/doc/guix.texi:4379 #, no-wrap msgid "vacuum the store database" msgstr "Bereinigen der Store-Datenbank" #. type: table #: guix-git/doc/guix.texi:4389 msgid "Guix uses an sqlite database to keep track of the items in (@pxref{The Store}). Over time it is possible that the database may grow to a large size and become fragmented. As a result, one may wish to clear the freed space and join the partially used pages in the database left behind from removed packages or after running the garbage collector. Running @command{sudo guix gc --vacuum-database} will lock the database and @code{VACUUM} the store, defragmenting the database and purging freed pages, unlocking the database when it finishes." msgstr "Für Guix wird eine SQLite-Datenbank verwendet, um über die Objekte im Store Buch zu führen (siehe @ref{The Store}). Mit der Zeit kann die Datenbank jedoch eine gigantische Größe erreichen und fragmentieren. Deshalb kann es sich lohnen, den freien Speicher aufzuräumen und nur teilweise genutzte Datenbankseiten, die beim Löschen von Paketen bzw.@: nach dem Müllsammeln entstanden sind, zusammenzulegen. Führen Sie @command{sudo guix gc --vacuum-database} aus, und die Datenbank wird gesperrt und eine @code{VACUUM}-Operation auf dem Store durchgeführt, welche die Datenbank defragmentiert und leere Seiten wegschafft. Wenn alles fertig ist, wird die Datenbank entsperrt." #. type: section #: guix-git/doc/guix.texi:4393 #, no-wrap msgid "Invoking @command{guix pull}" msgstr "@command{guix pull} aufrufen" #. type: cindex #: guix-git/doc/guix.texi:4395 #, no-wrap msgid "upgrading Guix" msgstr "Aktualisieren von Guix" #. type: cindex #: guix-git/doc/guix.texi:4396 #, no-wrap msgid "updating Guix" msgstr "Updaten von Guix" #. type: command{#1} #: guix-git/doc/guix.texi:4397 #, no-wrap msgid "guix pull" msgstr "guix pull" #. type: cindex #: guix-git/doc/guix.texi:4398 #, no-wrap msgid "pull" msgstr "pull" #. type: cindex #: guix-git/doc/guix.texi:4399 #, no-wrap msgid "security, @command{guix pull}" msgstr "Sicherheit, bei @command{guix pull}" #. type: cindex #: guix-git/doc/guix.texi:4400 #, no-wrap msgid "authenticity, of code obtained with @command{guix pull}" msgstr "Authentizität, bei mit @command{guix pull} bezogenem Code" #. type: Plain text #: guix-git/doc/guix.texi:4410 msgid "Packages are installed or upgraded to the latest version available in the distribution currently available on your local machine. To update that distribution, along with the Guix tools, you must run @command{guix pull}: the command downloads the latest Guix source code and package descriptions, and deploys it. Source code is downloaded from a @uref{https://git-scm.com/book/en/, Git} repository, by default the official GNU@tie{}Guix repository, though this can be customized. @command{guix pull} ensures that the code it downloads is @emph{authentic} by verifying that commits are signed by Guix developers." msgstr "Nach der Installation oder Aktualisierung wird stets die neueste Version von Paketen verwendet, die in der aktuell installierten Distribution verfügbar ist. Um die Distribution und die Guix-Werkzeuge zu aktualisieren, führen Sie @command{guix pull} aus. Der Befehl lädt den neuesten Guix-Quellcode einschließlich Paketbeschreibungen herunter und installiert ihn. Quellcode wird aus einem @uref{https://git-scm.com/book/de/, Git-Repository} geladen, standardmäßig dem offiziellen Repository von GNU@tie{}Guix, was Sie aber auch ändern können. @command{guix pull} stellt sicher, dass der heruntergeladene Code @emph{authentisch} ist, indem es überprüft, dass die Commits durch Guix-Entwickler signiert worden sind." #. type: Plain text #: guix-git/doc/guix.texi:4413 msgid "Specifically, @command{guix pull} downloads code from the @dfn{channels} (@pxref{Channels}) specified by one of the following, in this order:" msgstr "Genauer gesagt lädt @command{guix pull} Code von den @dfn{Kanälen} herunter (siehe @ref{Channels}), die an einer der folgenden Stellen, in dieser Reihenfolge, angegeben wurden:" #. type: enumerate #: guix-git/doc/guix.texi:4417 msgid "the @option{--channels} option;" msgstr "die Befehlszeilenoption @option{--channels}," #. type: enumerate #: guix-git/doc/guix.texi:4420 msgid "the user's @file{~/.config/guix/channels.scm} file, unless @option{-q} is passed;" msgstr "die Datei @file{~/.config/guix/channels.scm} des Benutzers, außer wenn @option{-q} übergeben wird," #. type: enumerate #: guix-git/doc/guix.texi:4425 msgid "the system-wide @file{/etc/guix/channels.scm} file, unless @option{-q} is passed (on Guix System, this file can be declared in the operating system configuration, @pxref{guix-configuration-channels, @code{channels} field of @code{guix-configuration}});" msgstr "die systemweite @file{/etc/guix/channels.scm}-Datei, außer wenn @option{-q} übergeben wird (auf Guix System können Sie die Datei als Teil der Betriebssystemkonfiguration deklarieren, siehe @ref{guix-configuration-channels, das Feld @code{channels} von @code{guix-configuration}})," #. type: enumerate #: guix-git/doc/guix.texi:4428 msgid "the built-in default channels specified in the @code{%default-channels} variable." msgstr "die eingebauten vorgegebenen Kanäle, wie sie in der Variablen @code{%default-channels} festgelegt sind." #. type: Plain text #: guix-git/doc/guix.texi:4435 msgid "On completion, @command{guix package} will use packages and package versions from this just-retrieved copy of Guix. Not only that, but all the Guix commands and Scheme modules will also be taken from that latest version. New @command{guix} sub-commands added by the update also become available." msgstr "Danach wird @command{guix package} Pakete und ihre Versionen entsprechend der gerade heruntergeladenen Kopie von Guix benutzen. Nicht nur das, auch alle Guix-Befehle und Scheme-Module werden aus der neuesten Version von Guix kommen. Neue @command{guix}-Unterbefehle, die durch die Aktualisierung hinzugekommen sind, werden also auch verfügbar." #. type: Plain text #: guix-git/doc/guix.texi:4441 msgid "Any user can update their Guix copy using @command{guix pull}, and the effect is limited to the user who ran @command{guix pull}. For instance, when user @code{root} runs @command{guix pull}, this has no effect on the version of Guix that user @code{alice} sees, and vice versa." msgstr "Jeder Nutzer kann seine Kopie von Guix mittels @command{guix pull} aktualisieren, wodurch sich nur für den Nutzer etwas verändert, der @command{guix pull} ausgeführt hat. Wenn also zum Beispiel der Administratornutzer @code{root} den Befehl @command{guix pull} ausführt, hat das keine Auswirkungen auf die für den Benutzer @code{alice} sichtbare Guix-Version, und umgekehrt." #. type: Plain text #: guix-git/doc/guix.texi:4444 msgid "The result of running @command{guix pull} is a @dfn{profile} available under @file{~/.config/guix/current} containing the latest Guix." msgstr "Das Ergebnis von @command{guix pull} ist ein als @file{~/.config/guix/current} verfügbares @dfn{Profil} mit dem neuesten Guix." #. type: Plain text #: guix-git/doc/guix.texi:4447 msgid "The @option{--list-generations} or @option{-l} option lists past generations produced by @command{guix pull}, along with details about their provenance:" msgstr "Die Befehlszeilenoption @option{--list-generations} oder kurz @option{-l} listet ältere von @command{guix pull} erzeugte Generationen auf, zusammen mit Informationen zu deren Provenienz." #. type: example #: guix-git/doc/guix.texi:4455 #, no-wrap msgid "" "$ guix pull -l\n" "Generation 1\tJun 10 2018 00:18:18\n" " guix 65956ad\n" " repository URL: https://git.savannah.gnu.org/git/guix.git\n" " branch: origin/master\n" " commit: 65956ad3526ba09e1f7a40722c96c6ef7c0936fe\n" "\n" msgstr "" "$ guix pull -l\n" "Generation 1\t10. Juni 2018 00:18:18\n" " guix 65956ad\n" " Repository-URL: https://git.savannah.gnu.org/git/guix.git\n" " Branch: origin/master\n" " Commit: 65956ad3526ba09e1f7a40722c96c6ef7c0936fe\n" "\n" #. type: example #: guix-git/doc/guix.texi:4461 #, no-wrap msgid "" "Generation 2\tJun 11 2018 11:02:49\n" " guix e0cc7f6\n" " repository URL: https://git.savannah.gnu.org/git/guix.git\n" " branch: origin/master\n" " commit: e0cc7f669bec22c37481dd03a7941c7d11a64f1d\n" "\n" msgstr "" "Generation 2\t11. Juni 2018 11:02:49\n" " guix e0cc7f6\n" " Repository-URL: https://git.savannah.gnu.org/git/guix.git\n" " Branch: origin/master\n" " Commit: e0cc7f669bec22c37481dd03a7941c7d11a64f1d\n" "\n" #. type: example #: guix-git/doc/guix.texi:4467 #, no-wrap msgid "" "Generation 3\tJun 13 2018 23:31:07\t(current)\n" " guix 844cc1c\n" " repository URL: https://git.savannah.gnu.org/git/guix.git\n" " branch: origin/master\n" " commit: 844cc1c8f394f03b404c5bb3aee086922373490c\n" msgstr "" "Generation 3\t13. Juni 2018 23:31:07\t(aktuell)\n" " guix 844cc1c\n" " Repository-URL: https://git.savannah.gnu.org/git/guix.git\n" " Branch: origin/master\n" " Commit: 844cc1c8f394f03b404c5bb3aee086922373490c\n" #. type: Plain text #: guix-git/doc/guix.texi:4471 msgid "@xref{Invoking guix describe, @command{guix describe}}, for other ways to describe the current status of Guix." msgstr "Im Abschnitt @ref{Invoking guix describe, @command{guix describe}} werden andere Möglichkeiten erklärt, sich den momentanen Zustand von Guix beschreiben zu lassen." #. type: Plain text #: guix-git/doc/guix.texi:4476 msgid "This @code{~/.config/guix/current} profile works exactly like the profiles created by @command{guix package} (@pxref{Invoking guix package}). That is, you can list generations, roll back to the previous generation---i.e., the previous Guix---and so on:" msgstr "Das Profil @code{~/.config/guix/current} verhält sich genau wie die durch @command{guix package} erzeugten Profile (siehe @ref{Invoking guix package}). Das bedeutet, Sie können seine Generationen auflisten und es auf die vorherige Generation@tie{}– also das vorherige Guix@tie{}– zurücksetzen und so weiter:" #. type: example #: guix-git/doc/guix.texi:4482 #, no-wrap msgid "" "$ guix pull --roll-back\n" "switched from generation 3 to 2\n" "$ guix pull --delete-generations=1\n" "deleting /var/guix/profiles/per-user/charlie/current-guix-1-link\n" msgstr "" "$ guix pull --roll-back\n" "Von Generation „3“ zu „2“ gewechselt\n" "$ guix pull --delete-generations=1\n" "/var/guix/profiles/per-user/charlie/current-guix-1-link wird gelöscht\n" #. type: Plain text #: guix-git/doc/guix.texi:4486 msgid "You can also use @command{guix package} (@pxref{Invoking guix package}) to manage the profile by naming it explicitly:" msgstr "Sie können auch @command{guix package} benutzen (siehe @ref{Invoking guix package}), um das Profil zu verwalten, indem Sie es explizit angeben.:" #. type: example #: guix-git/doc/guix.texi:4491 #, no-wrap msgid "" "$ guix package -p ~/.config/guix/current --roll-back\n" "switched from generation 3 to 2\n" "$ guix package -p ~/.config/guix/current --delete-generations=1\n" "deleting /var/guix/profiles/per-user/charlie/current-guix-1-link\n" msgstr "" "$ guix package -p ~/.config/guix/current --roll-back\n" "switched from generation 3 to 2\n" "$ guix package -p ~/.config/guix/current --delete-generations=1\n" "deleting /var/guix/profiles/per-user/charlie/current-guix-1-link\n" #. type: Plain text #: guix-git/doc/guix.texi:4495 msgid "The @command{guix pull} command is usually invoked with no arguments, but it supports the following options:" msgstr "Der Befehl @command{guix pull} wird in der Regel ohne Befehlszeilenargumente aufgerufen, aber er versteht auch folgende Befehlszeilenoptionen:" #. type: item #: guix-git/doc/guix.texi:4497 guix-git/doc/guix.texi:4733 #, no-wrap msgid "--url=@var{url}" msgstr "--url=@var{URL}" #. type: itemx #: guix-git/doc/guix.texi:4498 guix-git/doc/guix.texi:4734 #, no-wrap msgid "--commit=@var{commit}" msgstr "--commit=@var{Commit}" #. type: item #: guix-git/doc/guix.texi:4499 guix-git/doc/guix.texi:4735 #: guix-git/doc/guix.texi:13883 #, no-wrap msgid "--branch=@var{branch}" msgstr "--branch=@var{Branch}" #. type: table #: guix-git/doc/guix.texi:4503 msgid "Download code for the @code{guix} channel from the specified @var{url}, at the given @var{commit} (a valid Git commit ID represented as a hexadecimal string or the name of a tag), or @var{branch}." msgstr "Code wird für den @code{guix}-Kanal von der angegebenen @var{URL} für den angegebenen @var{Commit} (eine gültige Commit-ID, dargestellt als hexadezimale Zeichenkette oder Namen eines Git-Tags) oder @var{Branch} heruntergeladen." #. type: cindex #: guix-git/doc/guix.texi:4504 guix-git/doc/guix.texi:5182 #, no-wrap msgid "@file{channels.scm}, configuration file" msgstr "@file{channels.scm}, Konfigurationsdatei" #. type: cindex #: guix-git/doc/guix.texi:4505 guix-git/doc/guix.texi:5183 #, no-wrap msgid "configuration file for channels" msgstr "Konfigurationsdatei für Kanäle" #. type: table #: guix-git/doc/guix.texi:4509 msgid "These options are provided for convenience, but you can also specify your configuration in the @file{~/.config/guix/channels.scm} file or using the @option{--channels} option (see below)." msgstr "Diese Befehlszeilenoptionen sind manchmal bequemer, aber Sie können Ihre Konfiguration auch in der Datei @file{~/.config/guix/channels.scm} oder über die Option @option{--channels} angeben (siehe unten)." #. type: item #: guix-git/doc/guix.texi:4510 guix-git/doc/guix.texi:4740 #, no-wrap msgid "--channels=@var{file}" msgstr "--channels=@var{Datei}" #. type: itemx #: guix-git/doc/guix.texi:4511 guix-git/doc/guix.texi:4741 #, no-wrap msgid "-C @var{file}" msgstr "-C @var{Datei}" #. type: table #: guix-git/doc/guix.texi:4517 msgid "Read the list of channels from @var{file} instead of @file{~/.config/guix/channels.scm} or @file{/etc/guix/channels.scm}. @var{file} must contain Scheme code that evaluates to a list of channel objects. @xref{Channels}, for more information." msgstr "Die Liste der Kanäle aus der angegebenen @var{Datei} statt aus @file{~/.config/guix/channels.scm} oder aus @file{/etc/guix/channels.scm} auslesen. Die @var{Datei} muss Scheme-Code enthalten, der zu einer Liste von Kanalobjekten ausgewertet wird. Siehe @ref{Channels} für nähere Informationen." #. type: item #: guix-git/doc/guix.texi:4518 guix-git/doc/guix.texi:4746 #, no-wrap msgid "--no-channel-files" msgstr "--no-channel-files" #. type: itemx #: guix-git/doc/guix.texi:4519 guix-git/doc/guix.texi:4747 #: guix-git/doc/guix.texi:12631 guix-git/doc/guix.texi:13466 #, no-wrap msgid "-q" msgstr "-q" #. type: table #: guix-git/doc/guix.texi:4522 guix-git/doc/guix.texi:4750 msgid "Inhibit loading of the user and system channel files, @file{~/.config/guix/channels.scm} and @file{/etc/guix/channels.scm}." msgstr "Unterdrückt das Laden der Kanaldatei des Benutzers @file{~/.config/guix/channels.scm} und der systemweiten Kanaldatei @file{/etc/guix/channels.scm}." #. type: cindex #: guix-git/doc/guix.texi:4523 #, no-wrap msgid "channel news" msgstr "Neuigkeiten über Kanäle" #. type: item #: guix-git/doc/guix.texi:4524 #, no-wrap msgid "--news" msgstr "--news" #. type: itemx #: guix-git/doc/guix.texi:4525 guix-git/doc/guix.texi:6248 #: guix-git/doc/guix.texi:6745 guix-git/doc/guix.texi:43091 #: guix-git/doc/guix.texi:47260 #, no-wrap msgid "-N" msgstr "-N" #. type: table #: guix-git/doc/guix.texi:4530 msgid "Display news written by channel authors for their users for changes made since the previous generation (@pxref{Channels, Writing Channel News}). When @option{--details} is passed, additionally display new and upgraded packages." msgstr "Neuigkeiten anzeigen, die Kanalautoren für ihre Nutzer geschrieben haben, um sie über Veränderungen seit der vorigen Generation in Kenntnis zu setzen (siehe @ref{Channels, Kanalneuigkeiten verfassen}). Wenn Sie @option{--details} übergeben, werden auch neue und aktualisierte Pakete gezeigt." #. type: table #: guix-git/doc/guix.texi:4533 msgid "You can view that information for previous generations with @command{guix pull -l}." msgstr "Sie können sich mit @command{guix pull -l} diese Informationen für vorherige Generationen ansehen." #. type: table #: guix-git/doc/guix.texi:4540 msgid "List all the generations of @file{~/.config/guix/current} or, if @var{pattern} is provided, the subset of generations that match @var{pattern}. The syntax of @var{pattern} is the same as with @code{guix package --list-generations} (@pxref{Invoking guix package})." msgstr "Alle Generationen von @file{~/.config/guix/current} bzw., wenn ein @var{Muster} angegeben wird, die dazu passenden Generationen auflisten. Die Syntax für das @var{Muster} ist dieselbe wie bei @code{guix package --list-generations} (siehe @ref{Invoking guix package})." #. type: table #: guix-git/doc/guix.texi:4545 msgid "By default, this prints information about the channels used in each revision as well as the corresponding news entries. If you pass @option{--details}, it will also print the list of packages added and upgraded in each generation compared to the previous one." msgstr "Nach Voreinstellung werden Informationen über die benutzten Kanäle in der jeweiligen Version sowie die zugehörigen Neuigkeiten ausgegeben. Wenn Sie @option{--details} übergeben, wird außerdem die Liste der neu hinzugefügten oder aktualisierten Pakete in jeder Generation verglichen mit der vorigen angezeigt." #. type: item #: guix-git/doc/guix.texi:4546 #, no-wrap msgid "--details" msgstr "--details" #. type: table #: guix-git/doc/guix.texi:4550 msgid "Instruct @option{--list-generations} or @option{--news} to display more information about the differences between subsequent generations---see above." msgstr "Bei @option{--list-generations} oder @option{--news} wird Guix angewiesen, mehr Informationen über die Unterschiede zwischen aufeinanderfolgenden Generationen anzuzeigen@tie{}– siehe oben." #. type: table #: guix-git/doc/guix.texi:4557 msgid "Roll back to the previous @dfn{generation} of @file{~/.config/guix/current}---i.e., undo the last transaction." msgstr "Zur vorherigen @dfn{Generation} von @file{~/.config/guix/current} zurückwechseln@tie{}– d.h.@: die letzte Transaktion rückgängig machen." #. type: table #: guix-git/doc/guix.texi:4581 msgid "If the current generation matches, it is @emph{not} deleted." msgstr "Falls die aktuelle Generation zum Muster passt, wird sie @emph{nicht} gelöscht." #. type: table #: guix-git/doc/guix.texi:4587 msgid "@xref{Invoking guix describe}, for a way to display information about the current generation only." msgstr "Im Abschnitt @ref{Invoking guix describe, @command{guix describe}} wird eine Möglichkeit erklärt, sich Informationen nur über die aktuelle Generation anzeigen zu lassen." #. type: table #: guix-git/doc/guix.texi:4591 msgid "Use @var{profile} instead of @file{~/.config/guix/current}." msgstr "Auf @var{Profil} anstelle von @file{~/.config/guix/current} arbeiten." #. type: item #: guix-git/doc/guix.texi:4592 guix-git/doc/guix.texi:12917 #: guix-git/doc/guix.texi:15194 #, no-wrap msgid "--dry-run" msgstr "--dry-run" #. type: itemx #: guix-git/doc/guix.texi:4593 guix-git/doc/guix.texi:12918 #: guix-git/doc/guix.texi:15195 guix-git/doc/guix.texi:15492 #, no-wrap msgid "-n" msgstr "-n" #. type: table #: guix-git/doc/guix.texi:4596 msgid "Show which channel commit(s) would be used and what would be built or substituted but do not actually do it." msgstr "Anzeigen, welche(r) Commit(s) für die Kanäle benutzt würde(n) und was jeweils erstellt oder substituiert würde, ohne es tatsächlich durchzuführen." #. type: item #: guix-git/doc/guix.texi:4597 guix-git/doc/guix.texi:43110 #: guix-git/doc/guix.texi:47508 #, no-wrap msgid "--allow-downgrades" msgstr "--allow-downgrades" #. type: table #: guix-git/doc/guix.texi:4600 msgid "Allow pulling older or unrelated revisions of channels than those currently in use." msgstr "Beziehen einer älteren oder mit der bisheriger Version eines Kanals @emph{nicht} zusammenhängenden Version zulassen." #. type: cindex #: guix-git/doc/guix.texi:4601 #, no-wrap msgid "downgrade attacks, protection against" msgstr "Downgrade Attacks, Schutz davor" #. type: table #: guix-git/doc/guix.texi:4606 msgid "By default, @command{guix pull} protects against so-called ``downgrade attacks'' whereby the Git repository of a channel would be reset to an earlier or unrelated revision of itself, potentially leading you to install older, known-vulnerable versions of software packages." msgstr "Nach Voreinstellung schützt @command{guix pull} den Nutzer vor Herabstufungsangriffen („Downgrade Attacks“). Damit werden Versuche bezeichnet, jemanden eine frühere oder unzusammenhängende Version des Git-Repositorys eines Kanals benutzen zu lassen, wodurch diese Person dazu gebracht werden kann, ältere Versionen von Softwarepaketen mit bekannten Schwachstellen zu installieren." #. type: quotation #: guix-git/doc/guix.texi:4610 guix-git/doc/guix.texi:43124 msgid "Make sure you understand its security implications before using @option{--allow-downgrades}." msgstr "Sie sollten verstehen, was es für die Sicherheit Ihres Rechners bedeutet, ehe Sie @option{--allow-downgrades} benutzen." #. type: item #: guix-git/doc/guix.texi:4612 #, no-wrap msgid "--disable-authentication" msgstr "--disable-authentication" #. type: table #: guix-git/doc/guix.texi:4614 msgid "Allow pulling channel code without authenticating it." msgstr "Beziehen von Kanalcode ohne Authentifizierung zulassen." #. type: cindex #: guix-git/doc/guix.texi:4615 guix-git/doc/guix.texi:5422 #, no-wrap msgid "authentication, of channel code" msgstr "Authentifizieren, des Codes eines Kanals" #. type: table #: guix-git/doc/guix.texi:4620 msgid "By default, @command{guix pull} authenticates code downloaded from channels by verifying that its commits are signed by authorized developers, and raises an error if this is not the case. This option instructs it to not perform any such verification." msgstr "Nach Voreinstellung wird durch @command{guix pull} von Kanälen heruntergeladener Code darauf überprüft, dass deren Commits durch autorisierte Entwickler signiert worden sind; andernfalls wird ein Fehler gemeldet. Mit dieser Befehlszeilenoption können Sie anweisen, keine solche Verifikation durchzuführen." #. type: quotation #: guix-git/doc/guix.texi:4624 msgid "Make sure you understand its security implications before using @option{--disable-authentication}." msgstr "Sie sollten verstehen, was es für die Sicherheit Ihres Rechners bedeutet, ehe Sie @option{--disable-authentication} benutzen." #. type: itemx #: guix-git/doc/guix.texi:4627 guix-git/doc/guix.texi:6231 #: guix-git/doc/guix.texi:6728 guix-git/doc/guix.texi:7234 #: guix-git/doc/guix.texi:13582 guix-git/doc/guix.texi:15637 #: guix-git/doc/guix.texi:15902 guix-git/doc/guix.texi:16596 #: guix-git/doc/guix.texi:43034 #, no-wrap msgid "-s @var{system}" msgstr "-s @var{System}" #. type: table #: guix-git/doc/guix.texi:4630 guix-git/doc/guix.texi:7237 msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the system type of the build host." msgstr "Versuchen, für die angegebene Art von @var{System} geeignete Binärdateien zu erstellen@tie{}– z.B.@: @code{i686-linux}@tie{}– statt für die Art von System, das die Erstellung durchführt." #. type: table #: guix-git/doc/guix.texi:4634 msgid "Use the bootstrap Guile to build the latest Guix. This option is only useful to Guix developers." msgstr "Das neueste Guix mit dem Bootstrap-Guile erstellen. Diese Befehlszeilenoption ist nur für Guix-Entwickler von Nutzen." #. type: Plain text #: guix-git/doc/guix.texi:4640 msgid "The @dfn{channel} mechanism allows you to instruct @command{guix pull} which repository and branch to pull from, as well as @emph{additional} repositories containing package modules that should be deployed. @xref{Channels}, for more information." msgstr "Mit Hilfe von @dfn{Kanälen} können Sie @command{guix pull} anweisen, von welchem Repository und welchem Branch Guix aktualisiert werden soll, sowie von welchen @emph{weiteren} Repositorys Paketmodule bezogen werden sollen. Im Abschnitt @ref{Channels} finden Sie nähere Informationen." #. type: Plain text #: guix-git/doc/guix.texi:4643 msgid "In addition, @command{guix pull} supports all the common build options (@pxref{Common Build Options})." msgstr "Außerdem unterstützt @command{guix pull} alle gemeinsamen Erstellungsoptionen (siehe @ref{Common Build Options})." #. type: section #: guix-git/doc/guix.texi:4645 #, no-wrap msgid "Invoking @command{guix time-machine}" msgstr "@command{guix time-machine} aufrufen" #. type: command{#1} #: guix-git/doc/guix.texi:4647 #, no-wrap msgid "guix time-machine" msgstr "guix time-machine" #. type: cindex #: guix-git/doc/guix.texi:4648 guix-git/doc/guix.texi:5302 #, no-wrap msgid "pinning, channels" msgstr "Festsetzen, bei Kanälen" #. type: cindex #: guix-git/doc/guix.texi:4649 guix-git/doc/guix.texi:4894 #: guix-git/doc/guix.texi:5303 #, no-wrap msgid "replicating Guix" msgstr "Nachbilden von Guix" #. type: cindex #: guix-git/doc/guix.texi:4650 guix-git/doc/guix.texi:5304 #, no-wrap msgid "reproducibility, of Guix" msgstr "Reproduzierbarkeit von Guix" #. type: Plain text #: guix-git/doc/guix.texi:4658 msgid "The @command{guix time-machine} command provides access to other revisions of Guix, for example to install older versions of packages, or to reproduce a computation in an identical environment. The revision of Guix to be used is defined by a commit or by a channel description file created by @command{guix describe} (@pxref{Invoking guix describe})." msgstr "Der Befehl @command{guix time-machine} erleichtert den Zugang zu anderen Versionen von Guix. Damit können ältere Versionen von Paketen installiert werden oder eine Berechnung in einer identischen Umgebung reproduziert werden. Die zu benutzende Guix-Version wird über eine Commit-Angabe oder eine Kanalbeschreibungsdatei, wie sie durch @command{guix describe} erzeugt werden kann, festgelegt (siehe @ref{Invoking guix describe})." #. type: Plain text #: guix-git/doc/guix.texi:4662 msgid "Let's assume that you want to travel to those days of November 2020 when version 1.2.0 of Guix was released and, once you're there, run the @command{guile} of that time:" msgstr "Sagen wir, Sie würden gerne in der Zeit zurückreisen zu den Tagen um November 2020, als die Version 1.2.0 von Guix veröffentlicht worden ist, und außerdem möchten Sie nach Ihrer Ankunft den damaligen @command{guile}-Befehl ausführen:" #. type: example #: guix-git/doc/guix.texi:4666 #, no-wrap msgid "" "guix time-machine --commit=v1.2.0 -- \\\n" " environment -C --ad-hoc guile -- guile\n" msgstr "" "guix time-machine --commit=v1.2.0 -- \\\n" " environment -C --ad-hoc guile -- guile\n" #. type: Plain text #: guix-git/doc/guix.texi:4680 msgid "The command above fetches Guix@tie{}1.2.0 (and possibly other channels specified by your @file{channels.scm} configuration files---see below) and runs its @command{guix environment} command to spawn an environment in a container running @command{guile} (@command{guix environment} has since been subsumed by @command{guix shell}; @pxref{Invoking guix shell}). It's like driving a DeLorean@footnote{If you don't know what a DeLorean is, consider traveling back to the 1980's. (@uref{https://www.imdb.com/title/tt0088763/, Back to the Future (1985)})}! The first @command{guix time-machine} invocation can be expensive: it may have to download or even build a large number of packages; the result is cached though and subsequent commands targeting the same commit are almost instantaneous." msgstr "Mit obigem Befehl wird Guix@tie{}1.2.0 geladen (möglicherweise auch andere Kanäle, die in Ihren @file{channels.scm} genannten Konfigurationsdateien festgelegt sind@tie{}– siehe unten) und daraufhin dessen Befehl @command{guix environment} ausgeführt, um eine Umgebung, in einen Container verpackt, zu betreten, wo dann @command{guile} gestartet wird (@command{guix environment} ist mittlerweile Teil von @command{guix shell}, siehe @ref{Invoking guix shell}). Es ist so, als würden Sie einen DeLorean fahren@footnote{Wenn Sie DeLorean nicht kennen, sollten Sie eine Zeitreise in die 1980er in Betracht ziehen. (@uref{https://www.imdb.com/title/tt0088763/, Zurück in die Zukunft (1985)})}! Der erste Aufruf von @command{guix time-machine} kann lange dauern, weil vielleicht viele Pakete heruntergeladen oder sogar erstellt werden müssen, aber das Ergebnis bleibt in einem Zwischenspeicher und danach geschehen Befehle für denselben Commit fast sofort." #. type: Plain text #: guix-git/doc/guix.texi:4686 msgid "As for @command{guix pull}, in the absence of any options, @command{time-machine} fetches the latest commits of the channels specified in @file{~/.config/guix/channels.scm}, @file{/etc/guix/channels.scm}, or the default channels; the @option{-q} option lets you ignore these configuration files. The command:" msgstr "Wie auch bei @command{guix pull} werden, wenn keine abweichenden Befehlszeilenoptionen angegeben wurden, mit @command{time-machine} die neuesten Commits derjenigen Kanäle geladen, die in @file{~/.config/guix/channels.scm}, @file{/etc/guix/channels.scm} oder den vorgegebenen Kanälen festgelegt sind. Die Konfigurationsdateien können Sie mit der Befehlszeilenoption @option{-q} ignorieren lassen. Mit dem Befehl:" #. type: example #: guix-git/doc/guix.texi:4689 #, no-wrap msgid "guix time-machine -q -- build hello\n" msgstr "guix time-machine -q -- build hello\n" #. type: Plain text #: guix-git/doc/guix.texi:4695 msgid "will thus build the package @code{hello} as defined in the main branch of Guix, without any additional channel, which is in general a newer revision of Guix than you have installed. Time travel works in both directions!" msgstr "wird dementsprechend das Paket @code{hello} erstellt, so wie es auf Guix’ Haupt-Branch ohne zusätzliche Kanäle definiert ist, was in der Regel einer neueren Guix-Version entspricht als der, die Sie installiert haben. Zeitreisen funktionieren also in beide Richtungen!" #. type: quotation #: guix-git/doc/guix.texi:4703 msgid "The history of Guix is immutable and @command{guix time-machine} provides the exact same software as they are in a specific Guix revision. Naturally, no security fixes are provided for old versions of Guix or its channels. A careless use of @command{guix time-machine} opens the door to security vulnerabilities. @xref{Invoking guix pull, @option{--allow-downgrades}}." msgstr "Vergangene Commits zu Guix sind unveränderlich und @command{guix time-machine} bietet genau dieselbe Software, wie sie in einer damaligen Guix-Version bestanden hat. Demzufolge werden auch @emph{keine} Sicherheitspatches für alte Versionen von Guix oder dessen Kanäle nachgeliefert. Unbedachter Gebrauch der @command{guix time-machine} lässt Sicherheitsschwachstellen freien Raum. Siehe @ref{Invoking guix pull, @option{--allow-downgrades}}." #. type: Plain text #: guix-git/doc/guix.texi:4710 msgid "@command{guix time-machine} raises an error when attempting to travel to commits older than ``v0.16.0'' (commit @samp{4a0b87f0}), dated Dec.@: 2018. This is one of the oldest commits supporting the channel mechanism that makes ``time travel'' possible." msgstr "Einen Fehler meldet @command{guix time-machine}, wenn Sie eine Zeitreise zu einem älteren Commit als „v0.16.0“ (Commit @samp{4a0b87f0}) vom Dezember 2018 versuchen. Es handelt sich um einen der frühesten Commits, der den Kanalmechanismus unterstützt hat, durch den „Zeitreisen“ möglich werden." #. type: quotation #: guix-git/doc/guix.texi:4720 msgid "Although it should technically be possible to travel to such an old commit, the ease to do so will largely depend on the availability of binary substitutes. When traveling to a distant past, some packages may not easily build from source anymore. One such example are old versions of OpenSSL whose tests would fail after a certain date. This particular problem can be worked around by running a @dfn{virtual build machine} with its clock set to the right time (@pxref{build-vm, Virtual Build Machines})." msgstr "Technisch gesehen sollte es zwar möglich sein, so einen alten Commit von Guix zu besuchen, aber Sie müssen unter Umständen einige Hürden überwinden, falls keine Substitute der Binärdateien mehr angeboten werden. Wenn Sie in die ferne Vergangenheit reisen, können manche Pakete vielleicht nicht mehr so einfach aus ihrem Quellcode erstellt werden. Ein Beispiel dafür sind alte Versionen von OpenSSL, dessen Tests fehlschlagen, wenn ein bestimmtes Datum vergangen ist. Dieses spezielle Problem lässt sich umgehen, indem Sie eine @dfn{virtuelle Erstellungsmaschine} einrichten, deren Uhr Sie auf einen passenden Zeitpunkt zurückdrehen (siehe @ref{build-vm, Virtuelle Erstellungsmaschinen})." #. type: example #: guix-git/doc/guix.texi:4726 #, no-wrap msgid "guix time-machine @var{options}@dots{} -- @var{command} @var {arg}@dots{}\n" msgstr "guix time-machine @var{Optionen}…@: -- @var{Befehl} @var {Argument}…\n" #. type: Plain text #: guix-git/doc/guix.texi:4731 msgid "where @var{command} and @var{arg}@dots{} are passed unmodified to the @command{guix} command of the specified revision. The @var{options} that define this revision are the same as for @command{guix pull} (@pxref{Invoking guix pull}):" msgstr "Dabei werden der @var{Befehl} und jedes @var{Argument}…@: unverändert an den @command{guix}-Befehl der angegebenen Version übergeben. Die @var{Optionen}, die die Version definieren, sind dieselben wie bei @command{guix pull} (siehe @ref{Invoking guix pull}):" #. type: table #: guix-git/doc/guix.texi:4739 msgid "Use the @code{guix} channel from the specified @var{url}, at the given @var{commit} (a valid Git commit ID represented as a hexadecimal string or the name of a tag), or @var{branch}." msgstr "Den @code{guix}-Kanal von der angegebenen @var{URL} benutzen, für den angegebenen @var{Commit} (eine gültige Commit-ID, dargestellt als hexadezimale Zeichenkette oder Namen eines Git-Tags) oder @var{Branch}." #. type: table #: guix-git/doc/guix.texi:4745 msgid "Read the list of channels from @var{file}. @var{file} must contain Scheme code that evaluates to a list of channel objects. @xref{Channels} for more information." msgstr "Die Liste der Kanäle aus der angegebenen @var{Datei} auslesen. Die @var{Datei} muss Scheme-Code enthalten, der zu einer Liste von Kanalobjekten ausgewertet wird. Siehe @ref{Channels} für nähere Informationen." #. type: table #: guix-git/doc/guix.texi:4754 msgid "Thus, @command{guix time-machine -q} is equivalent to the following Bash command, using the ``process substitution'' syntax (@pxref{Process Substitution,,, bash, The GNU Bash Reference Manual}):" msgstr "Anstelle von @command{guix time-machine -q} können Sie daher auch den folgenden Bash-Befehl verwenden, der die Syntax für „Prozesssubstitutionen“ verwendet (siehe @ref{Process Substitution,,, bash, Referenzhandbuch zu GNU Bash}):" #. type: example #: guix-git/doc/guix.texi:4757 #, no-wrap msgid "guix time-machine -C <(echo %default-channels) @dots{}\n" msgstr "guix time-machine -C <(echo %default-channels) …\n" #. type: Plain text #: guix-git/doc/guix.texi:4764 msgid "Note that @command{guix time-machine} can trigger builds of channels and their dependencies, and these are controlled by the standard build options (@pxref{Common Build Options})." msgstr "Beachten Sie, dass durch @command{guix time-machine} Erstellungen von Kanälen und deren Abhängigkeiten ausgelöst werden können, welche durch die gemeinsamen Erstellungsoptionen gesteuert werden können (siehe @ref{Common Build Options})." #. type: quotation #: guix-git/doc/guix.texi:4772 msgid "The functionality described here is a ``technology preview'' as of version @value{VERSION}. As such, the interface is subject to change." msgstr "Die hier beschriebenen Funktionalitäten sind in der Version @value{VERSION} bloß eine „Technologie-Vorschau“, daher kann sich die Schnittstelle in Zukunft noch ändern." #. type: cindex #: guix-git/doc/guix.texi:4774 guix-git/doc/guix.texi:12581 #, no-wrap msgid "inferiors" msgstr "Untergeordnete" #. type: cindex #: guix-git/doc/guix.texi:4775 #, no-wrap msgid "composition of Guix revisions" msgstr "Mischen von Guix-Versionen" #. type: Plain text #: guix-git/doc/guix.texi:4780 msgid "Sometimes you might need to mix packages from the revision of Guix you're currently running with packages available in a different revision of Guix. Guix @dfn{inferiors} allow you to achieve that by composing different Guix revisions in arbitrary ways." msgstr "Manchmal könnten Sie Pakete aus der gerade laufenden Fassung von Guix mit denen mischen wollen, die in einer anderen Guix-Version verfügbar sind. Guix-@dfn{Untergeordnete} ermöglichen dies, indem Sie verschiedene Guix-Versionen beliebig mischen können." #. type: cindex #: guix-git/doc/guix.texi:4781 guix-git/doc/guix.texi:4844 #, no-wrap msgid "inferior packages" msgstr "untergeordnete Pakete" #. type: Plain text #: guix-git/doc/guix.texi:4787 msgid "Technically, an ``inferior'' is essentially a separate Guix process connected to your main Guix process through a REPL (@pxref{Invoking guix repl}). The @code{(guix inferior)} module allows you to create inferiors and to communicate with them. It also provides a high-level interface to browse and manipulate the packages that an inferior provides---@dfn{inferior packages}." msgstr "Aus technischer Sicht ist ein „Untergeordneter“ im Kern ein separater Guix-Prozess, der über eine REPL (siehe @ref{Invoking guix repl}) mit Ihrem Haupt-Guix-Prozess verbunden ist. Das Modul @code{(guix inferior)} ermöglicht es Ihnen, Untergeordnete zu erstellen und mit ihnen zu kommunizieren. Dadurch steht Ihnen auch eine hochsprachliche Schnittstelle zur Verfügung, um die von einem Untergeordneten angebotenen Pakete zu durchsuchen und zu verändern@tie{}– @dfn{untergeordnete Pakete}." #. type: Plain text #: guix-git/doc/guix.texi:4797 msgid "When combined with channels (@pxref{Channels}), inferiors provide a simple way to interact with a separate revision of Guix. For example, let's assume you want to install in your profile the current @code{guile} package, along with the @code{guile-json} as it existed in an older revision of Guix---perhaps because the newer @code{guile-json} has an incompatible API and you want to run your code against the old API@. To do that, you could write a manifest for use by @code{guix package --manifest} (@pxref{Writing Manifests}); in that manifest, you would create an inferior for that old Guix revision you care about, and you would look up the @code{guile-json} package in the inferior:" msgstr "In Kombination mit Kanälen (siehe @ref{Channels}) bieten Untergeordnete eine einfache Möglichkeit, mit einer anderen Version von Guix zu interagieren. Nehmen wir zum Beispiel an, Sie wollen das aktuelle @code{guile}-Paket in Ihr Profil installieren, zusammen mit dem @code{guile-json}, wie es in einer früheren Guix-Version existiert hat@tie{}– vielleicht weil das neuere @code{guile-json} eine inkompatible API hat und Sie daher Ihren Code mit der alten API benutzen möchten. Dazu könnten Sie ein Manifest für @code{guix package --manifest} schreiben (siehe @ref{Writing Manifests}); in diesem Manifest würden Sie einen Untergeordneten für diese alte Guix-Version erzeugen, für die Sie sich interessieren, und aus diesem Untergeordneten das @code{guile-json}-Paket holen:" #. type: lisp #: guix-git/doc/guix.texi:4801 #, no-wrap msgid "" "(use-modules (guix inferior) (guix channels)\n" " (srfi srfi-1)) ;for 'first'\n" "\n" msgstr "" "(use-modules (guix inferior) (guix channels)\n" " (srfi srfi-1)) ;für die Prozedur 'first'\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:4810 #, no-wrap msgid "" "(define channels\n" " ;; This is the old revision from which we want to\n" " ;; extract guile-json.\n" " (list (channel\n" " (name 'guix)\n" " (url \"https://git.savannah.gnu.org/git/guix.git\")\n" " (commit\n" " \"65956ad3526ba09e1f7a40722c96c6ef7c0936fe\"))))\n" "\n" msgstr "" "(define channels\n" " ;; Dies ist die alte Version, aus der wir\n" " ;; guile-json extrahieren möchten.\n" " (list (channel\n" " (name 'guix)\n" " (url \"https://git.savannah.gnu.org/git/guix.git\")\n" " (commit\n" " \"65956ad3526ba09e1f7a40722c96c6ef7c0936fe\"))))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:4814 #, no-wrap msgid "" "(define inferior\n" " ;; An inferior representing the above revision.\n" " (inferior-for-channels channels))\n" "\n" msgstr "" "(define inferior\n" " ;; Ein Untergeordneter, der obige Version repräsentiert.\n" " (inferior-for-channels channels))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:4820 #, no-wrap msgid "" ";; Now create a manifest with the current \"guile\" package\n" ";; and the old \"guile-json\" package.\n" "(packages->manifest\n" " (list (first (lookup-inferior-packages inferior \"guile-json\"))\n" " (specification->package \"guile\")))\n" msgstr "" ";; Daraus erzeugen wir jetzt ein Manifest mit dem aktuellen\n" ";; „guile“-Paket und dem alten „guile-json“-Paket.\n" "(packages->manifest\n" " (list (first (lookup-inferior-packages inferior \"guile-json\"))\n" " (specification->package \"guile\")))\n" #. type: Plain text #: guix-git/doc/guix.texi:4825 msgid "On its first run, @command{guix package --manifest} might have to build the channel you specified before it can create the inferior; subsequent runs will be much faster because the Guix revision will be cached." msgstr "Bei seiner ersten Ausführung könnte für @command{guix package --manifest} erst der angegebene Kanal erstellt werden müssen, bevor der Untergeordnete erstellt werden kann; nachfolgende Durchläufe sind wesentlich schneller, weil diese Guix-Version bereits zwischengespeichert ist." #. type: Plain text #: guix-git/doc/guix.texi:4828 msgid "The @code{(guix inferior)} module provides the following procedures to open an inferior:" msgstr "Folgende Prozeduren werden im Modul @code{(guix inferior)} angeboten, um einen Untergeordneten zu öffnen:" #. type: deffn #: guix-git/doc/guix.texi:4829 #, no-wrap msgid "{Procedure} inferior-for-channels channels [#:cache-directory] [#:ttl]" msgstr "{Prozedur} inferior-for-channels Kanäle [#:cache-directory] [#:ttl]" #. type: deffn #: guix-git/doc/guix.texi:4833 msgid "Return an inferior for @var{channels}, a list of channels. Use the cache at @var{cache-directory}, where entries can be reclaimed after @var{ttl} seconds. This procedure opens a new connection to the build daemon." msgstr "Liefert einen Untergeordneten für die @var{Kanäle}, einer Liste von Kanälen. Dazu wird der Zwischenspeicher im Verzeichnis @var{cache-directory} benutzt, dessen Einträge nach @var{ttl} Sekunden gesammelt werden dürfen. Mit dieser Prozedur wird eine neue Verbindung zum Erstellungs-Daemon geöffnet." #. type: deffn #: guix-git/doc/guix.texi:4836 msgid "As a side effect, this procedure may build or substitute binaries for @var{channels}, which can take time." msgstr "Als Nebenwirkung erstellt oder substituiert diese Prozedur unter Umständen Binärdateien für die @var{Kanäle}, was einige Zeit in Anspruch nehmen kann." #. type: deffn #: guix-git/doc/guix.texi:4838 #, no-wrap msgid "{Procedure} open-inferior directory [#:command \"bin/guix\"]" msgstr "{Prozedur} open-inferior Verzeichnis [#:command \"bin/guix\"]" #. type: deffn #: guix-git/doc/guix.texi:4842 msgid "Open the inferior Guix in @var{directory}, running @code{@var{directory}/@var{command} repl} or equivalent. Return @code{#f} if the inferior could not be launched." msgstr "Öffnet das untergeordnete Guix mit dem Befehl @var{command} im angegebenen @var{Verzeichnis} durch Ausführung von @code{@var{Verzeichnis}/@var{command} repl} oder entsprechend. Liefert @code{#f}, wenn der Untergeordnete nicht gestartet werden konnte." #. type: Plain text #: guix-git/doc/guix.texi:4847 msgid "The procedures listed below allow you to obtain and manipulate inferior packages." msgstr "Die im Folgenden aufgeführten Prozeduren ermöglichen es Ihnen, untergeordnete Pakete abzurufen und zu verändern." #. type: deffn #: guix-git/doc/guix.texi:4848 #, no-wrap msgid "{Procedure} inferior-packages inferior" msgstr "{Prozedur} inferior-packages Untergeordneter" #. type: deffn #: guix-git/doc/guix.texi:4850 msgid "Return the list of packages known to @var{inferior}." msgstr "Liefert die Liste der Pakete in @var{Untergeordneter}." #. type: deffn #: guix-git/doc/guix.texi:4852 #, no-wrap msgid "{Procedure} lookup-inferior-packages inferior name [version]" msgstr "{Prozedur} lookup-inferior-packages Untergeordneter Name [Version]" #. type: deffn #: guix-git/doc/guix.texi:4856 msgid "Return the sorted list of inferior packages matching @var{name} in @var{inferior}, with highest version numbers first. If @var{version} is true, return only packages with a version number prefixed by @var{version}." msgstr "Liefert die sortierte Liste der untergeordneten Pakete in @var{Untergeordneter}, die zum Muster @var{Name} in @var{Untergeordneter} passen, dabei kommen höhere Versionsnummern zuerst. Wenn @var{Version} auf wahr gesetzt ist, werden nur Pakete geliefert, deren Versionsnummer mit dem Präfix @var{Version} beginnt." #. type: deffn #: guix-git/doc/guix.texi:4858 #, no-wrap msgid "{Procedure} inferior-package? obj" msgstr "{Prozedur} inferior-package? Objekt" #. type: deffn #: guix-git/doc/guix.texi:4860 msgid "Return true if @var{obj} is an inferior package." msgstr "Liefert wahr, wenn das @var{Objekt} ein Untergeordneter ist." #. type: deffn #: guix-git/doc/guix.texi:4862 #, no-wrap msgid "{Procedure} inferior-package-name package" msgstr "{Prozedur} inferior-package-name Paket" #. type: deffnx #: guix-git/doc/guix.texi:4863 #, no-wrap msgid "{Procedure} inferior-package-version package" msgstr "{Prozedur} inferior-package-version Paket" #. type: deffnx #: guix-git/doc/guix.texi:4864 #, no-wrap msgid "{Procedure} inferior-package-synopsis package" msgstr "{Prozedur} inferior-package-synopsis Paket" #. type: deffnx #: guix-git/doc/guix.texi:4865 #, no-wrap msgid "{Procedure} inferior-package-description package" msgstr "{Prozedur} inferior-package-description Paket" #. type: deffnx #: guix-git/doc/guix.texi:4866 #, no-wrap msgid "{Procedure} inferior-package-home-page package" msgstr "{Prozedur} inferior-package-home-page Paket" #. type: deffnx #: guix-git/doc/guix.texi:4867 #, no-wrap msgid "{Procedure} inferior-package-location package" msgstr "{Prozedur} inferior-package-location Paket" #. type: deffnx #: guix-git/doc/guix.texi:4868 #, no-wrap msgid "{Procedure} inferior-package-inputs package" msgstr "{Prozedur} inferior-package-inputs Paket" #. type: deffnx #: guix-git/doc/guix.texi:4869 #, no-wrap msgid "{Procedure} inferior-package-native-inputs package" msgstr "{Prozedur} inferior-package-native-inputs Paket" #. type: deffnx #: guix-git/doc/guix.texi:4870 #, no-wrap msgid "{Procedure} inferior-package-propagated-inputs package" msgstr "{Prozedur} inferior-package-propagated-inputs Paket" #. type: deffnx #: guix-git/doc/guix.texi:4871 #, no-wrap msgid "{Procedure} inferior-package-transitive-propagated-inputs package" msgstr "{Prozedur} inferior-package-transitive-propagated-inputs Paket" #. type: deffnx #: guix-git/doc/guix.texi:4872 #, no-wrap msgid "{Procedure} inferior-package-native-search-paths package" msgstr "{Prozedur} inferior-package-native-search-paths Paket" #. type: deffnx #: guix-git/doc/guix.texi:4873 #, no-wrap msgid "{Procedure} inferior-package-transitive-native-search-paths package" msgstr "{Prozedur} inferior-package-transitive-native-search-paths Paket" #. type: deffnx #: guix-git/doc/guix.texi:4874 #, no-wrap msgid "{Procedure} inferior-package-search-paths package" msgstr "{Prozedur} inferior-package-search-paths Paket" #. type: deffn #: guix-git/doc/guix.texi:4879 msgid "These procedures are the counterpart of package record accessors (@pxref{package Reference}). Most of them work by querying the inferior @var{package} comes from, so the inferior must still be live when you call these procedures." msgstr "Diese Prozeduren sind das Gegenstück zu den Zugriffsmethoden des Verbunds „package“ für Pakete (siehe @ref{package Reference}). Die meisten davon funktionieren durch eine Abfrage auf dem Untergeordneten, von dem das @var{Paket} kommt, weshalb der Untergeordnete noch lebendig sein muss, wenn Sie diese Prozeduren aufrufen." #. type: Plain text #: guix-git/doc/guix.texi:4889 msgid "Inferior packages can be used transparently like any other package or file-like object in G-expressions (@pxref{G-Expressions}). They are also transparently handled by the @code{packages->manifest} procedure, which is commonly used in manifests (@pxref{Invoking guix package, the @option{--manifest} option of @command{guix package}}). Thus you can insert an inferior package pretty much anywhere you would insert a regular package: in manifests, in the @code{packages} field of your @code{operating-system} declaration, and so on." msgstr "Untergeordnete Pakete können transparent wie jedes andere Paket oder dateiartige Objekt in G-Ausdrücken verwendet werden (siehe @ref{G-Expressions}). Sie werden auch transparent wie reguläre Pakete von der Prozedur @code{packages->manifest} behandelt, welche oft in Manifesten benutzt wird (siehe @ref{Invoking guix package, die Befehlszeilenoption @option{--manifest} von @command{guix package}}). Somit können Sie ein untergeordnetes Paket ziemlich überall dort verwenden, wo Sie ein reguläres Paket einfügen würden: in Manifesten, im Feld @code{packages} Ihrer @code{operating-system}-Deklaration und so weiter." #. type: section #: guix-git/doc/guix.texi:4891 #, no-wrap msgid "Invoking @command{guix describe}" msgstr "@command{guix describe} aufrufen" #. type: command{#1} #: guix-git/doc/guix.texi:4895 #, no-wrap msgid "guix describe" msgstr "guix describe" #. type: Plain text #: guix-git/doc/guix.texi:4903 msgid "Often you may want to answer questions like: ``Which revision of Guix am I using?'' or ``Which channels am I using?'' This is useful information in many situations: if you want to @emph{replicate} an environment on a different machine or user account, if you want to report a bug or to determine what change in the channels you are using caused it, or if you want to record your system state for reproducibility purposes. The @command{guix describe} command answers these questions." msgstr "Sie könnten sich des Öfteren Fragen stellen wie: „Welche Version von Guix benutze ich gerade?“ oder „Welche Kanäle benutze ich?“ Diese Informationen sind in vielen Situationen nützlich: wenn Sie eine Umgebung auf einer anderen Maschine oder mit einem anderen Benutzerkonto @emph{nachbilden} möchten, wenn Sie einen Fehler melden möchten, wenn Sie festzustellen versuchen, welche Änderung an den von Ihnen verwendeten Kanälen diesen Fehler verursacht hat, oder wenn Sie Ihren Systemzustand zum Zweck der Reproduzierbarkeit festhalten möchten. Der Befehl @command{guix describe} gibt Ihnen Antwort auf diese Fragen." #. type: Plain text #: guix-git/doc/guix.texi:4907 msgid "When run from a @command{guix pull}ed @command{guix}, @command{guix describe} displays the channel(s) that it was built from, including their repository URL and commit IDs (@pxref{Channels}):" msgstr "Wenn Sie ihn aus einem mit @command{guix pull} bezogenen @command{guix} heraus ausführen, zeigt Ihnen @command{guix describe} die Kanäle an, aus denen es erstellt wurde, jeweils mitsamt ihrer Repository-URL und Commit-ID (siehe @ref{Channels}):" #. type: example #: guix-git/doc/guix.texi:4915 #, no-wrap msgid "" "$ guix describe\n" "Generation 10\tSep 03 2018 17:32:44\t(current)\n" " guix e0fa68c\n" " repository URL: https://git.savannah.gnu.org/git/guix.git\n" " branch: master\n" " commit: e0fa68c7718fffd33d81af415279d6ddb518f727\n" msgstr "" "$ guix describe\n" "Generation 10\t03. September 2018 17:32:44\t(aktuell)\n" " guix e0fa68c\n" " Repository-URL: https://git.savannah.gnu.org/git/guix.git\n" " Branch: master\n" " Commit: e0fa68c7718fffd33d81af415279d6ddb518f727\n" #. type: Plain text #: guix-git/doc/guix.texi:4924 msgid "If you're familiar with the Git version control system, this is similar in spirit to @command{git describe}; the output is also similar to that of @command{guix pull --list-generations}, but limited to the current generation (@pxref{Invoking guix pull, the @option{--list-generations} option}). Because the Git commit ID shown above unambiguously refers to a snapshot of Guix, this information is all it takes to describe the revision of Guix you're using, and also to replicate it." msgstr "Wenn Sie mit dem Versionskontrollsystem Git vertraut sind, erkennen Sie vielleicht die Ähnlichkeit zu @command{git describe}; die Ausgabe ähnelt auch der von @command{guix pull --list-generations} eingeschränkt auf die aktuelle Generation (siehe @ref{Invoking guix pull, die Befehlszeilenoption @option{--list-generations}}). Weil die oben gezeigte Git-Commit-ID eindeutig eine bestimmte Version von Guix bezeichnet, genügt diese Information, um die von Ihnen benutzte Version von Guix zu beschreiben, und auch, um sie nachzubilden." #. type: Plain text #: guix-git/doc/guix.texi:4927 msgid "To make it easier to replicate Guix, @command{guix describe} can also be asked to return a list of channels instead of the human-readable description above:" msgstr "Damit es leichter ist, Guix nachzubilden, kann Ihnen @command{guix describe} auch eine Liste der Kanäle statt einer menschenlesbaren Beschreibung wie oben liefern:" #. type: example #: guix-git/doc/guix.texi:4940 #, no-wrap msgid "" "$ guix describe -f channels\n" "(list (channel\n" " (name 'guix)\n" " (url \"https://git.savannah.gnu.org/git/guix.git\")\n" " (commit\n" " \"e0fa68c7718fffd33d81af415279d6ddb518f727\")\n" " (introduction\n" " (make-channel-introduction\n" " \"9edb3f66fd807b096b48283debdcddccfea34bad\"\n" " (openpgp-fingerprint\n" " \"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA\")))))\n" msgstr "" "$ guix describe -f channels\n" "(list (channel\n" " (name 'guix)\n" " (url \"https://git.savannah.gnu.org/git/guix.git\")\n" " (commit\n" " \"e0fa68c7718fffd33d81af415279d6ddb518f727\")\n" " (introduction\n" " (make-channel-introduction\n" " \"9edb3f66fd807b096b48283debdcddccfea34bad\"\n" " (openpgp-fingerprint\n" " \"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA\")))))\n" #. type: Plain text #: guix-git/doc/guix.texi:4949 msgid "You can save this to a file and feed it to @command{guix pull -C} on some other machine or at a later point in time, which will instantiate @emph{this exact Guix revision} (@pxref{Invoking guix pull, the @option{-C} option}). From there on, since you're able to deploy the same revision of Guix, you can just as well @emph{replicate a complete software environment}. We humbly think that this is @emph{awesome}, and we hope you'll like it too!" msgstr "Sie können die Ausgabe in einer Datei speichern, die Sie an @command{guix pull -C} auf einer anderen Maschine oder zu einem späteren Zeitpunkt übergeben, wodurch dann eine Instanz @emph{von genau derselben Guix-Version} installiert wird (siehe @ref{Invoking guix pull, die Befehlszeilenoption @option{-C}}). Daraufhin können Sie, weil Sie jederzeit dieselbe Version von Guix installieren können, auch gleich @emph{eine vollständige Softwareumgebung genau nachbilden}. Wir halten das trotz aller Bescheidenheit für @emph{klasse} und hoffen, dass Ihnen das auch gefällt!" #. type: Plain text #: guix-git/doc/guix.texi:4952 msgid "The details of the options supported by @command{guix describe} are as follows:" msgstr "Die genauen Befehlszeilenoptionen, die @command{guix describe} unterstützt, lauten wie folgt:" #. type: item #: guix-git/doc/guix.texi:4954 guix-git/doc/guix.texi:6947 #: guix-git/doc/guix.texi:16723 #, no-wrap msgid "--format=@var{format}" msgstr "--format=@var{Format}" #. type: itemx #: guix-git/doc/guix.texi:4955 guix-git/doc/guix.texi:6948 #: guix-git/doc/guix.texi:16724 #, no-wrap msgid "-f @var{format}" msgstr "-f @var{Format}" #. type: table #: guix-git/doc/guix.texi:4957 guix-git/doc/guix.texi:16726 msgid "Produce output in the specified @var{format}, one of:" msgstr "Die Ausgabe im angegebenen @var{Format} generieren, was eines der Folgenden sein muss:" #. type: item #: guix-git/doc/guix.texi:4959 #, no-wrap msgid "human" msgstr "human" #. type: table #: guix-git/doc/guix.texi:4961 msgid "produce human-readable output;" msgstr "für menschenlesbare Ausgabe," #. type: cindex #: guix-git/doc/guix.texi:4961 guix-git/doc/guix.texi:5181 #, no-wrap msgid "channels" msgstr "channels" #. type: table #: guix-git/doc/guix.texi:4965 msgid "produce a list of channel specifications that can be passed to @command{guix pull -C} or installed as @file{~/.config/guix/channels.scm} (@pxref{Invoking guix pull});" msgstr "eine Liste von Kanalspezifikationen erzeugen, die an @command{guix pull -C} übergeben werden oder als @file{~/.config/guix/channels.scm} eingesetzt werden können (siehe @ref{Invoking guix pull})," #. type: item #: guix-git/doc/guix.texi:4965 #, no-wrap msgid "channels-sans-intro" msgstr "channels-sans-intro" #. type: table #: guix-git/doc/guix.texi:4971 msgid "like @code{channels}, but omit the @code{introduction} field; use it to produce a channel specification suitable for Guix version 1.1.0 or earlier---the @code{introduction} field has to do with channel authentication (@pxref{Channels, Channel Authentication}) and is not supported by these older versions;" msgstr "verhält sich wie @code{channels}, aber ohne das @code{introduction}-Feld; benutzen Sie es, um eine Kanalspezifikation zu erzeugen, die für die Guix-Version 1.1.0 oder früher geeignet ist@tie{}– das @code{introduction}-Feld ist für Kanalauthentifizierung gedacht (siehe @ref{Channels, Kanalauthentifizierung}), die von diesen älteren Versionen nicht unterstützt wird," #. type: item #: guix-git/doc/guix.texi:4971 guix-git/doc/guix.texi:14246 #, no-wrap msgid "json" msgstr "json" #. type: cindex #: guix-git/doc/guix.texi:4972 #, no-wrap msgid "JSON" msgstr "JSON" #. type: table #: guix-git/doc/guix.texi:4974 msgid "produce a list of channel specifications in JSON format;" msgstr "generiert eine Liste von Kanalspezifikationen im JSON-Format," #. type: item #: guix-git/doc/guix.texi:4974 guix-git/doc/guix.texi:16728 #, no-wrap msgid "recutils" msgstr "recutils" #. type: table #: guix-git/doc/guix.texi:4976 msgid "produce a list of channel specifications in Recutils format." msgstr "generiert eine Liste von Kanalspezifikationen im Recutils-Format." #. type: item #: guix-git/doc/guix.texi:4978 #, no-wrap msgid "--list-formats" msgstr "--list-formats" #. type: table #: guix-git/doc/guix.texi:4980 msgid "Display available formats for @option{--format} option." msgstr "Verfügbare Formate für die Befehlszeilenoption @option{--format} anzeigen." #. type: table #: guix-git/doc/guix.texi:4984 msgid "Display information about @var{profile}." msgstr "Informationen über das @var{Profil} anzeigen." #. type: section #: guix-git/doc/guix.texi:4987 #, no-wrap msgid "Invoking @command{guix archive}" msgstr "@command{guix archive} aufrufen" #. type: command{#1} #: guix-git/doc/guix.texi:4989 #, no-wrap msgid "guix archive" msgstr "guix archive" #. type: cindex #: guix-git/doc/guix.texi:4990 #, no-wrap msgid "archive" msgstr "Archiv" #. type: cindex #: guix-git/doc/guix.texi:4991 #, no-wrap msgid "exporting files from the store" msgstr "Exportieren von Dateien aus dem Store" #. type: cindex #: guix-git/doc/guix.texi:4992 #, no-wrap msgid "importing files to the store" msgstr "Importieren von Dateien in den Store" #. type: Plain text #: guix-git/doc/guix.texi:4998 msgid "The @command{guix archive} command allows users to @dfn{export} files from the store into a single archive, and to later @dfn{import} them on a machine that runs Guix. In particular, it allows store files to be transferred from one machine to the store on another machine." msgstr "Der Befehl @command{guix archive} ermöglicht es Nutzern, Dateien im Store in eine einzelne Archivdatei zu @dfn{exportieren} und diese später auf einer Maschine, auf der Guix läuft, zu @dfn{importieren}. Insbesondere können so Store-Objekte von einer Maschine in den Store einer anderen Maschine übertragen werden." #. type: quotation #: guix-git/doc/guix.texi:5002 msgid "If you're looking for a way to produce archives in a format suitable for tools other than Guix, @pxref{Invoking guix pack}." msgstr "Wenn Sie nach einer Möglichkeit suchen, Archivdateien für andere Werkzeuge als Guix zu erstellen, finden Sie Informationen dazu im Abschnitt @ref{Invoking guix pack}." #. type: cindex #: guix-git/doc/guix.texi:5004 #, no-wrap msgid "exporting store items" msgstr "Store-Objekte exportieren" #. type: Plain text #: guix-git/doc/guix.texi:5006 msgid "To export store files as an archive to standard output, run:" msgstr "Führen Sie Folgendes aus, um Store-Dateien als ein Archiv auf die Standardausgabe zu exportieren:" #. type: example #: guix-git/doc/guix.texi:5009 #, no-wrap msgid "guix archive --export @var{options} @var{specifications}...\n" msgstr "guix archive --export @var{Optionen} @var{Spezifikationen}…\n" #. type: Plain text #: guix-git/doc/guix.texi:5016 msgid "@var{specifications} may be either store file names or package specifications, as for @command{guix package} (@pxref{Invoking guix package}). For instance, the following command creates an archive containing the @code{gui} output of the @code{git} package and the main output of @code{emacs}:" msgstr "@var{Spezifikationen} sind dabei entweder die Namen von Store-Dateien oder Paketspezifikationen wie bei @command{guix package} (siehe @ref{Invoking guix package}). Zum Beispiel erzeugt der folgende Befehl ein Archiv der @code{gui}-Ausgabe des Pakets @code{git} sowie die Hauptausgabe von @code{emacs}:" #. type: example #: guix-git/doc/guix.texi:5019 #, no-wrap msgid "guix archive --export git:gui /gnu/store/...-emacs-24.3 > great.nar\n" msgstr "guix archive --export git:gui /gnu/store/…-emacs-24.3 > groß.nar\n" #. type: Plain text #: guix-git/doc/guix.texi:5024 msgid "If the specified packages are not built yet, @command{guix archive} automatically builds them. The build process may be controlled with the common build options (@pxref{Common Build Options})." msgstr "Wenn die angegebenen Pakete noch nicht erstellt worden sind, werden sie durch @command{guix archive} automatisch erstellt. Der Erstellungsprozess kann durch die gemeinsamen Erstellungsoptionen gesteuert werden (siehe @ref{Common Build Options})." #. type: Plain text #: guix-git/doc/guix.texi:5027 msgid "To transfer the @code{emacs} package to a machine connected over SSH, one would run:" msgstr "Um das @code{emacs}-Paket auf eine über SSH verbundene Maschine zu übertragen, würde man dies ausführen:" #. type: example #: guix-git/doc/guix.texi:5030 #, no-wrap msgid "guix archive --export -r emacs | ssh the-machine guix archive --import\n" msgstr "guix archive --export -r emacs | ssh die-maschine guix archive --import\n" #. type: Plain text #: guix-git/doc/guix.texi:5035 msgid "Similarly, a complete user profile may be transferred from one machine to another like this:" msgstr "Auf gleiche Art kann auch ein vollständiges Benutzerprofil von einer Maschine auf eine andere übertragen werden:" #. type: example #: guix-git/doc/guix.texi:5039 #, no-wrap msgid "" "guix archive --export -r $(readlink -f ~/.guix-profile) | \\\n" " ssh the-machine guix archive --import\n" msgstr "" "guix archive --export -r $(readlink -f ~/.guix-profile) | \\\n" " ssh die-maschine guix archive --import\n" #. type: Plain text #: guix-git/doc/guix.texi:5049 msgid "However, note that, in both examples, all of @code{emacs} and the profile as well as all of their dependencies are transferred (due to @option{-r}), regardless of what is already available in the store on the target machine. The @option{--missing} option can help figure out which items are missing from the target store. The @command{guix copy} command simplifies and optimizes this whole process, so this is probably what you should use in this case (@pxref{Invoking guix copy})." msgstr "Jedoch sollten Sie in beiden Beispielen beachten, dass alles, was zu @code{emacs}, dem Profil oder deren Abhängigkeiten (wegen @option{-r}) gehört, übertragen wird, egal ob es schon im Store der Zielmaschine vorhanden ist oder nicht. Mit der Befehlszeilenoption @option{--missing} lässt sich herausfinden, welche Objekte im Ziel-Store noch fehlen. Der Befehl @command{guix copy} vereinfacht und optimiert diesen gesamten Prozess, ist also, was Sie in diesem Fall wahrscheinlich eher benutzen wollten (siehe @ref{Invoking guix copy})." #. type: cindex #: guix-git/doc/guix.texi:5050 #, no-wrap msgid "nar, archive format" msgstr "Nar, Archivformat" #. type: cindex #: guix-git/doc/guix.texi:5051 #, no-wrap msgid "normalized archive (nar)" msgstr "Normalisiertes Archiv (Nar)" #. type: cindex #: guix-git/doc/guix.texi:5052 #, no-wrap msgid "nar bundle, archive format" msgstr "Nar-Bündel, Archivformat" #. type: Plain text #: guix-git/doc/guix.texi:5057 msgid "Each store item is written in the @dfn{normalized archive} or @dfn{nar} format (described below), and the output of @command{guix archive --export} (and input of @command{guix archive --import}) is a @dfn{nar bundle}." msgstr "Dabei wird jedes Store-Objekt als „normalisiertes Archiv“, kurz „Nar“, formatiert (was im Folgenden beschrieben wird) und die Ausgabe von @command{guix archive --export} (bzw.@: die Eingabe von @command{guix archive --import}) ist ein @dfn{Nar-Bündel}." #. type: Plain text #: guix-git/doc/guix.texi:5067 msgid "The nar format is comparable in spirit to `tar', but with differences that make it more appropriate for our purposes. First, rather than recording all Unix metadata for each file, the nar format only mentions the file type (regular, directory, or symbolic link); Unix permissions and owner/group are dismissed. Second, the order in which directory entries are stored always follows the order of file names according to the C locale collation order. This makes archive production fully deterministic." msgstr "Das Nar-Format folgt einem ähnlichen Gedanken wie beim „tar“-Format, unterscheidet sich aber auf eine für unsere Zwecke geeignetere Weise. Erstens werden im Nar-Format nicht sämtliche Unix-Metadaten aller Dateien aufgenommen, sondern nur der Dateityp (ob es sich um eine reguläre Datei, ein Verzeichnis oder eine symbolische Verknüpfung handelt). Unix-Dateiberechtigungen sowie Besitzer und Gruppe werden nicht gespeichert. Zweitens entspricht die Reihenfolge, in der der Inhalt von Verzeichnissen abgelegt wird, immer der Reihenfolge, in der die Dateinamen gemäß der C-Locale sortiert würden. Dadurch wird die Erstellung von Archivdateien völlig deterministisch." #. type: Plain text #: guix-git/doc/guix.texi:5071 msgid "That nar bundle format is essentially the concatenation of zero or more nars along with metadata for each store item it contains: its file name, references, corresponding derivation, and a digital signature." msgstr "Das Nar-Bündel-Format setzt sich im Prinzip aus null oder mehr aneinandergehängten Nars zusammen mit Metadaten für jedes enthaltene Store-Objekt, nämlich dessen Dateinamen, Referenzen, der zugehörigen Ableitung sowie einer digitalen Signatur." #. type: Plain text #: guix-git/doc/guix.texi:5077 msgid "When exporting, the daemon digitally signs the contents of the archive, and that digital signature is appended. When importing, the daemon verifies the signature and rejects the import in case of an invalid signature or if the signing key is not authorized." msgstr "Beim Exportieren versieht der Daemon den Inhalt des Archivs mit einer digitalen Signatur, auch Beglaubigung genannt. Diese digitale Signatur wird an das Archiv angehängt. Beim Importieren verifiziert der Daemon die Signatur und lehnt den Import ab, falls die Signatur ungültig oder der Signierschlüssel nicht autorisiert ist." #. type: Plain text #: guix-git/doc/guix.texi:5079 msgid "The main options are:" msgstr "Die wichtigsten Befehlszeilenoptionen sind:" #. type: item #: guix-git/doc/guix.texi:5081 #, no-wrap msgid "--export" msgstr "--export" #. type: table #: guix-git/doc/guix.texi:5084 msgid "Export the specified store files or packages (see below). Write the resulting archive to the standard output." msgstr "Exportiert die angegebenen Store-Dateien oder Pakete (siehe unten) und schreibt das resultierende Archiv auf die Standardausgabe." #. type: table #: guix-git/doc/guix.texi:5087 msgid "Dependencies are @emph{not} included in the output, unless @option{--recursive} is passed." msgstr "Abhängigkeiten @emph{fehlen} in der Ausgabe, außer wenn @option{--recursive} angegeben wurde." #. type: itemx #: guix-git/doc/guix.texi:5088 guix-git/doc/guix.texi:13890 #: guix-git/doc/guix.texi:13937 guix-git/doc/guix.texi:14073 #: guix-git/doc/guix.texi:14104 guix-git/doc/guix.texi:14136 #: guix-git/doc/guix.texi:14240 guix-git/doc/guix.texi:14321 #: guix-git/doc/guix.texi:14362 guix-git/doc/guix.texi:14413 #: guix-git/doc/guix.texi:14438 guix-git/doc/guix.texi:14470 #: guix-git/doc/guix.texi:14503 guix-git/doc/guix.texi:14519 #: guix-git/doc/guix.texi:14539 guix-git/doc/guix.texi:14587 #: guix-git/doc/guix.texi:14623 guix-git/doc/guix.texi:14650 #, no-wrap msgid "-r" msgstr "-r" #. type: item #: guix-git/doc/guix.texi:5089 guix-git/doc/guix.texi:13889 #: guix-git/doc/guix.texi:13936 guix-git/doc/guix.texi:14072 #: guix-git/doc/guix.texi:14103 guix-git/doc/guix.texi:14135 #: guix-git/doc/guix.texi:14239 guix-git/doc/guix.texi:14320 #: guix-git/doc/guix.texi:14361 guix-git/doc/guix.texi:14412 #: guix-git/doc/guix.texi:14437 guix-git/doc/guix.texi:14469 #: guix-git/doc/guix.texi:14502 guix-git/doc/guix.texi:14518 #: guix-git/doc/guix.texi:14538 guix-git/doc/guix.texi:14586 #: guix-git/doc/guix.texi:14622 guix-git/doc/guix.texi:14649 #: guix-git/doc/guix.texi:14698 #, no-wrap msgid "--recursive" msgstr "--recursive" #. type: table #: guix-git/doc/guix.texi:5094 msgid "When combined with @option{--export}, this instructs @command{guix archive} to include dependencies of the given items in the archive. Thus, the resulting archive is self-contained: it contains the closure of the exported store items." msgstr "Zusammen mit @option{--export} wird @command{guix archive} hiermit angewiesen, Abhängigkeiten der angegebenen Objekte auch ins Archiv aufzunehmen. Das resultierende Archiv ist somit eigenständig; es enthält den Abschluss der exportierten Store-Objekte." #. type: item #: guix-git/doc/guix.texi:5095 #, no-wrap msgid "--import" msgstr "--import" #. type: table #: guix-git/doc/guix.texi:5100 msgid "Read an archive from the standard input, and import the files listed therein into the store. Abort if the archive has an invalid digital signature, or if it is signed by a public key not among the authorized keys (see @option{--authorize} below)." msgstr "Ein Archiv von der Standardeingabe lesen und darin enthaltende Dateien in den Store importieren. Der Import bricht ab, wenn das Archiv keine gültige digitale Signatur hat oder wenn es von einem öffentlichen Schlüssel signiert wurde, der keiner der autorisierten Schlüssel ist (siehe @option{--authorize} weiter unten)." #. type: item #: guix-git/doc/guix.texi:5101 #, no-wrap msgid "--missing" msgstr "--missing" #. type: table #: guix-git/doc/guix.texi:5105 msgid "Read a list of store file names from the standard input, one per line, and write on the standard output the subset of these files missing from the store." msgstr "Eine Liste der Store-Dateinamen von der Standardeingabe lesen, je ein Name pro Zeile, und auf die Standardausgabe die Teilmenge dieser Dateien schreiben, die noch nicht im Store vorliegt." #. type: item #: guix-git/doc/guix.texi:5106 #, no-wrap msgid "--generate-key[=@var{parameters}]" msgstr "--generate-key[=@var{Parameter}]" #. type: cindex #: guix-git/doc/guix.texi:5107 #, no-wrap msgid "signing, archives" msgstr "Signieren, von Archiven" #. type: table #: guix-git/doc/guix.texi:5114 msgid "Generate a new key pair for the daemon. This is a prerequisite before archives can be exported with @option{--export}. This operation is usually instantaneous but it can take time if the system's entropy pool needs to be refilled. On Guix System, @code{guix-service-type} takes care of generating this key pair the first boot." msgstr "Ein neues Schlüsselpaar für den Daemon erzeugen. Dies ist erforderlich, damit Archive mit @option{--export} exportiert werden können. Normalerweise wird diese Option sofort umgesetzt, jedoch kann sie, wenn erst der Entropie-Pool neu gefüllt werden muss, einige Zeit in Anspruch nehmen. Auf Guix System kümmert sich der @code{guix-service-type} darum, dass beim ersten Systemstart das Schlüsselpaar erzeugt wird." #. type: table #: guix-git/doc/guix.texi:5124 msgid "The generated key pair is typically stored under @file{/etc/guix}, in @file{signing-key.pub} (public key) and @file{signing-key.sec} (private key, which must be kept secret). When @var{parameters} is omitted, an ECDSA key using the Ed25519 curve is generated, or, for Libgcrypt versions before 1.6.0, it is a 4096-bit RSA key. Alternatively, @var{parameters} can specify @code{genkey} parameters suitable for Libgcrypt (@pxref{General public-key related Functions, @code{gcry_pk_genkey},, gcrypt, The Libgcrypt Reference Manual})." msgstr "Das erzeugte Schlüsselpaar wird typischerweise unter @file{/etc/guix} gespeichert, in den Dateien @file{signing-key.pub} (für den öffentlichen Schlüssel) und @file{signing-key.sec} (für den privaten Schlüssel, der geheim gehalten werden muss). Wurden keine @var{Parameters} angegeben, wird ein ECDSA-Schlüssel unter Verwendung der Kurve Ed25519 erzeugt, oder, falls die Libgcrypt-Version älter als 1.6.0 ist, ein 4096-Bit-RSA-Schlüssel. Sonst geben die @var{Parameter} für Libgcrypt geeignete Parameter für @code{genkey} an (siehe @ref{General public-key related Functions, @code{gcry_pk_genkey},, gcrypt, Referenzhandbuch von Libgcrypt})." #. type: item #: guix-git/doc/guix.texi:5125 #, no-wrap msgid "--authorize" msgstr "--authorize" #. type: cindex #: guix-git/doc/guix.texi:5126 #, no-wrap msgid "authorizing, archives" msgstr "Autorisieren, von Archiven" #. type: table #: guix-git/doc/guix.texi:5130 msgid "Authorize imports signed by the public key passed on standard input. The public key must be in ``s-expression advanced format''---i.e., the same format as the @file{signing-key.pub} file." msgstr "Mit dem auf der Standardeingabe übergebenen öffentlichen Schlüssel signierte Importe autorisieren. Der öffentliche Schlüssel muss als „advanced“-formatierter S-Ausdruck gespeichert sein, d.h.@: im selben Format wie die Datei @file{signing-key.pub}." #. type: table #: guix-git/doc/guix.texi:5137 msgid "The list of authorized keys is kept in the human-editable file @file{/etc/guix/acl}. The file contains @url{https://people.csail.mit.edu/rivest/Sexp.txt, ``advanced-format s-expressions''} and is structured as an access-control list in the @url{https://theworld.com/~cme/spki.txt, Simple Public-Key Infrastructure (SPKI)}." msgstr "Die Liste autorisierter Schlüssel wird in der Datei @file{/etc/guix/acl} gespeichert, die auch von Hand bearbeitet werden kann. Die Datei enthält @url{https://people.csail.mit.edu/rivest/Sexp.txt, „advanced“-formatierte S-Ausdrücke} und ist als eine Access Control List für die @url{https://theworld.com/~cme/spki.txt, Simple Public-Key Infrastructure (SPKI)} aufgebaut." #. type: item #: guix-git/doc/guix.texi:5138 #, no-wrap msgid "--extract=@var{directory}" msgstr "--extract=@var{Verzeichnis}" #. type: itemx #: guix-git/doc/guix.texi:5139 #, no-wrap msgid "-x @var{directory}" msgstr "-x @var{Verzeichnis}" #. type: table #: guix-git/doc/guix.texi:5143 msgid "Read a single-item archive as served by substitute servers (@pxref{Substitutes}) and extract it to @var{directory}. This is a low-level operation needed in only very narrow use cases; see below." msgstr "Ein Archiv mit einem einzelnen Objekt lesen, wie es von Substitutservern geliefert wird (siehe @ref{Substitutes}), und ins @var{Verzeichnis} entpacken. Dies ist eine systemnahe Operation, die man nur selten direkt benutzt; siehe unten." #. type: table #: guix-git/doc/guix.texi:5146 msgid "For example, the following command extracts the substitute for Emacs served by @code{@value{SUBSTITUTE-SERVER-1}} to @file{/tmp/emacs}:" msgstr "Zum Beispiel entpackt folgender Befehl das Substitut für Emacs, wie es von @code{@value{SUBSTITUTE-SERVER-1}} geliefert wird, nach @file{/tmp/emacs}:" #. type: example #: guix-git/doc/guix.texi:5151 #, no-wrap msgid "" "$ wget -O - \\\n" " https://@value{SUBSTITUTE-SERVER-1}/nar/gzip/@dots{}-emacs-24.5 \\\n" " | gunzip | guix archive -x /tmp/emacs\n" msgstr "" "$ wget -O - \\\n" " https://@value{SUBSTITUTE-SERVER-1}/nar/gzip/…-emacs-24.5 \\\n" " | gunzip | guix archive -x /tmp/emacs\n" #. type: table #: guix-git/doc/guix.texi:5158 msgid "Single-item archives are different from multiple-item archives produced by @command{guix archive --export}; they contain a single store item, and they do @emph{not} embed a signature. Thus this operation does @emph{no} signature verification and its output should be considered unsafe." msgstr "Archive mit nur einem einzelnen Objekt unterscheiden sich von Archiven für mehrere Dateien, wie sie @command{guix archive --export} erzeugt; sie enthalten nur ein einzelnes Store-Objekt und @emph{keine} eingebettete Signatur. Beim Entpacken findet also @emph{keine} Signaturprüfung statt und ihrer Ausgabe sollte so erst einmal nicht vertraut werden." #. type: table #: guix-git/doc/guix.texi:5162 msgid "The primary purpose of this operation is to facilitate inspection of archive contents coming from possibly untrusted substitute servers (@pxref{Invoking guix challenge})." msgstr "Der eigentliche Zweck dieser Operation ist, die Inspektion von Archivinhalten von Substitutservern möglich zu machen, auch wenn diesen unter Umständen nicht vertraut wird (siehe @ref{Invoking guix challenge})." #. type: item #: guix-git/doc/guix.texi:5163 #, no-wrap msgid "--list" msgstr "--list" #. type: itemx #: guix-git/doc/guix.texi:5164 guix-git/doc/guix.texi:14308 #: guix-git/doc/guix.texi:14355 #, no-wrap msgid "-t" msgstr "-t" #. type: table #: guix-git/doc/guix.texi:5168 msgid "Read a single-item archive as served by substitute servers (@pxref{Substitutes}) and print the list of files it contains, as in this example:" msgstr "Ein Archiv mit einem einzelnen Objekt lesen, wie es von Substitutservern geliefert wird (siehe @ref{Substitutes}), und die Dateien darin ausgeben, wie in diesem Beispiel:" #. type: example #: guix-git/doc/guix.texi:5173 #, no-wrap msgid "" "$ wget -O - \\\n" " https://@value{SUBSTITUTE-SERVER-1}/nar/lzip/@dots{}-emacs-26.3 \\\n" " | lzip -d | guix archive -t\n" msgstr "" "$ wget -O - \\\n" " https://@value{SUBSTITUTE-SERVER-1}/nar/lzip/…-emacs-26.3 \\\n" " | lzip -d | guix archive -t\n" #. type: cindex #: guix-git/doc/guix.texi:5184 #, no-wrap msgid "@command{guix pull}, configuration file" msgstr "@command{guix pull}, Konfigurationsdatei" #. type: cindex #: guix-git/doc/guix.texi:5185 #, no-wrap msgid "configuration of @command{guix pull}" msgstr "Konfiguration von @command{guix pull}" #. type: Plain text #: guix-git/doc/guix.texi:5196 msgid "Guix and its package collection are updated by running @command{guix pull}. By default @command{guix pull} downloads and deploys Guix itself from the official GNU@tie{}Guix repository. This can be customized by providing a file specifying the set of @dfn{channels} to pull from (@pxref{Invoking guix pull}). A channel specifies the URL and branch of a Git repository to be deployed, and @command{guix pull} can be instructed to pull from one or more channels. In other words, channels can be used to @emph{customize} and to @emph{extend} Guix, as we will see below. Guix is able to take into account security concerns and deal with authenticated updates." msgstr "Guix und die Sammlung darin verfügbarer Pakete können Sie durch Ausführen von @command{guix pull} aktualisieren. Standardmäßig lädt @command{guix pull} Guix selbst vom offiziellen Repository von GNU@tie{}Guix herunter und installiert es. Diesen Vorgang können Sie anpassen, indem Sie eine Datei mit den @dfn{Kanälen} angeben, die Sie möchten (siehe @ref{Invoking guix pull}). Ein Kanal enthält eine Angabe der URL und eines Branches eines zu installierenden Git-Repositorys. Sie können @command{guix pull} veranlassen, die Aktualisierungen von einem oder mehreren Kanälen zu beziehen. Mit anderen Worten können Kanäle benutzt werden, um Guix @emph{anzupassen} und zu @emph{erweitern}, wie wir im Folgenden sehen werden. Guix ist in der Lage, dabei Sicherheitsbedenken zu berücksichtigen und Aktualisierungen zu authentifizieren." #. type: section #: guix-git/doc/guix.texi:5210 guix-git/doc/guix.texi:5359 #: guix-git/doc/guix.texi:5360 #, no-wrap msgid "Customizing the System-Wide Guix" msgstr "Anpassung des systemweiten Guix" #. type: menuentry #: guix-git/doc/guix.texi:5210 msgid "Default channels on Guix System." msgstr "Voreingestellte Guix-Kanäle auf Guix System." #. type: cindex #: guix-git/doc/guix.texi:5215 #, no-wrap msgid "extending the package collection (channels)" msgstr "Paketsammlung erweitern (Kanäle)" #. type: cindex #: guix-git/doc/guix.texi:5216 #, no-wrap msgid "variant packages (channels)" msgstr "Paketvarianten (Kanäle)" #. type: Plain text #: guix-git/doc/guix.texi:5220 msgid "You can specify @emph{additional channels} to pull from. To use a channel, write @code{~/.config/guix/channels.scm} to instruct @command{guix pull} to pull from it @emph{in addition} to the default Guix channel(s):" msgstr "Sie können auch @emph{weitere Kanäle} als Bezugsquelle angeben. Um einen Kanal zu benutzen, tragen Sie ihn in @code{~/.config/guix/channels.scm} ein, damit @command{guix pull} diesen Kanal @emph{zusätzlich} zu den standardmäßigen Guix-Kanälen als Paketquelle verwendet:" #. type: vindex #: guix-git/doc/guix.texi:5221 #, no-wrap msgid "%default-channels" msgstr "%default-channels" #. type: lisp #: guix-git/doc/guix.texi:5228 #, no-wrap msgid "" ";; Add variant packages to those Guix provides.\n" "(cons (channel\n" " (name 'variant-packages)\n" " (url \"https://example.org/variant-packages.git\"))\n" " %default-channels)\n" msgstr "" ";; Paketvarianten zu denen von Guix dazunehmen.\n" "(cons (channel\n" " (name 'paketvarianten)\n" " (url \"https://example.org/variant-packages.git\"))\n" " %default-channels)\n" #. type: Plain text #: guix-git/doc/guix.texi:5238 msgid "Note that the snippet above is (as always!)@: Scheme code; we use @code{cons} to add a channel the list of channels that the variable @code{%default-channels} is bound to (@pxref{Pairs, @code{cons} and lists,, guile, GNU Guile Reference Manual}). With this file in place, @command{guix pull} builds not only Guix but also the package modules from your own repository. The result in @file{~/.config/guix/current} is the union of Guix with your own package modules:" msgstr "Beachten Sie, dass der obige Schnipsel (wie immer!)@: Scheme-Code ist; mit @code{cons} fügen wir einen Kanal zur Liste der Kanäle hinzu, an die die Variable @code{%default-channels} gebunden ist (siehe @ref{Pairs, @code{cons} and lists,, guile, Referenzhandbuch zu GNU Guile}). Mit diesem Dateiinhalt wird @command{guix pull} nun nicht mehr nur Guix, sondern auch die Paketmodule aus Ihrem Repository erstellen. Das Ergebnis in @file{~/.config/guix/current} ist so die Vereinigung von Guix und Ihren eigenen Paketmodulen." #. type: example #: guix-git/doc/guix.texi:5250 #, no-wrap msgid "" "$ guix describe\n" "Generation 19\tAug 27 2018 16:20:48\n" " guix d894ab8\n" " repository URL: https://git.savannah.gnu.org/git/guix.git\n" " branch: master\n" " commit: d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\n" " variant-packages dd3df5e\n" " repository URL: https://example.org/variant-packages.git\n" " branch: master\n" " commit: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\n" msgstr "" "$ guix describe\n" "Generation 19\t27. August 2018 16:20:48\n" " guix d894ab8\n" " Repository-URL: https://git.savannah.gnu.org/git/guix.git\n" " Branch: master\n" " Commit: d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\n" " paketvarianten dd3df5e\n" " Repository-URL: https://example.org/variant-packages.git\n" " Branch: master\n" " Commit: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\n" #. type: Plain text #: guix-git/doc/guix.texi:5257 msgid "The output of @command{guix describe} above shows that we're now running Generation@tie{}19 and that it includes both Guix and packages from the @code{variant-packages} channel (@pxref{Invoking guix describe})." msgstr "Obige Ausgabe von @command{guix describe} zeigt an, dass jetzt Generation@tie{}19 läuft und diese sowohl Guix als auch Pakete aus dem Kanal @code{paketvarianten} enthält (siehe @ref{Invoking guix describe})." #. type: Plain text #: guix-git/doc/guix.texi:5266 msgid "The channel called @code{guix} specifies where Guix itself---its command-line tools as well as its package collection---should be downloaded. For instance, suppose you want to update from another copy of the Guix repository at @code{example.org}, and specifically the @code{super-hacks} branch, you can write in @code{~/.config/guix/channels.scm} this specification:" msgstr "Der Kanal namens @code{guix} gibt an, wovon Guix selbst@tie{}– seine Befehlszeilenwerkzeuge und seine Paketsammlung@tie{}– heruntergeladen werden sollen. Wenn Sie zum Beispiel mit einer anderen Kopie des Guix-Repositorys arbeiten möchten und diese auf @code{example.org} zu finden ist, und zwar im Branch namens @code{super-hacks}, dann schreiben Sie folgende Spezifikation in @code{~/.config/guix/channels.scm}:" #. type: lisp #: guix-git/doc/guix.texi:5273 #, no-wrap msgid "" ";; Tell 'guix pull' to use another repo.\n" "(list (channel\n" " (name 'guix)\n" " (url \"https://example.org/another-guix.git\")\n" " (branch \"super-hacks\")))\n" msgstr "" ";; 'guix pull' ein anderes Repository benutzen lassen.\n" "(list (channel\n" " (name 'guix)\n" " (url \"https://example.org/anderes-guix.git\")\n" " (branch \"super-hacks\")))\n" #. type: Plain text #: guix-git/doc/guix.texi:5279 msgid "From there on, @command{guix pull} will fetch code from the @code{super-hacks} branch of the repository at @code{example.org}. The authentication concern is addressed below (@pxref{Channel Authentication})." msgstr "Ab dann wird @command{guix pull} seinen Code vom Branch @code{super-hacks} des Repositorys auf @code{example.org} beziehen. Wie man dessen Autorisierung bewerkstelligt, können Sie im Folgenden lesen (siehe @ref{Channel Authentication})." #. type: Plain text #: guix-git/doc/guix.texi:5289 msgid "Note that you can specify a local directory on the @code{url} field above if the channel that you intend to use resides on a local file system. However, in this case @command{guix} checks said directory for ownership before any further processing. This means that if the user is not the directory owner, but wants to use it as their default, they will then need to set it as a safe directory in their global git configuration file. Otherwise, @command{guix} will refuse to even read it. Supposing your system-wide local directory is at @code{/src/guix.git}, you would then create a git configuration file at @code{~/.gitconfig} with the following contents:" msgstr "Wir weisen darauf hin, dass Sie oben im @code{url}-Feld den Namen eines lokalen Verzeichnisses angeben können, wenn sich der Kanal, den Sie benutzen möchten, auf einem lokalen Dateisystem befindet. Allerdings wird @command{guix} dabei überprüfen, ob das besagte Verzeichnis auch Ihrem Benutzer gehört, bevor es mit der Verarbeitung fortfährt. Das bedeutet, dass Benutzer, die ein Verzeichnis standardmäßig beziehen möchten, das ihnen @emph{nicht} gehört, einen Eintrag in deren globaler Git-Konfigurationsdatei machen müssen, um das Verzeichnis ausdrücklich als sicher einzustufen. Andernfalls wird sich @command{guix} weigern, es auch nur zu lesen. Wenn wir annehmen, dass ein systemweites lokales Verzeichnis unter @code{/src/guix.git} benutzt werden soll, müsste dafür eine Git-Konfigurationsdatei namens @code{~/.gitconfig} mit folgendem Inhalt angelegt werden:" #. type: example #: guix-git/doc/guix.texi:5293 #, no-wrap msgid "" "[safe]\n" " directory = /src/guix.git\n" msgstr "" "[safe]\n" " directory = /src/guix.git\n" #. type: Plain text #: guix-git/doc/guix.texi:5298 msgid "This also applies to the root user unless when called with @command{sudo} by the directory owner." msgstr "Dies gilt auch für den Administratorbenutzer @code{root}, @emph{außer} wenn der Besitzer des Verzeichnisses einen Aufruf mit @command{sudo} macht." #. type: Plain text #: guix-git/doc/guix.texi:5310 msgid "The @command{guix describe} command shows precisely which commits were used to build the instance of Guix we're using (@pxref{Invoking guix describe}). We can replicate this instance on another machine or at a different point in time by providing a channel specification ``pinned'' to these commits that looks like this:" msgstr "Der Befehl @command{guix describe} zeigt genau, aus welchen Commits die Guix-Instanz erstellt wurde, die Sie benutzen (siehe @ref{Invoking guix describe}). Sie können diese Instanz auf einer anderen Maschine oder zu einem späteren Zeitpunkt nachbilden, indem Sie eine Kanalspezifikation angeben, die auf diese Commits „festgesetzt“ ist." #. type: lisp #: guix-git/doc/guix.texi:5321 #, no-wrap msgid "" ";; Deploy specific commits of my channels of interest.\n" "(list (channel\n" " (name 'guix)\n" " (url \"https://git.savannah.gnu.org/git/guix.git\")\n" " (commit \"6298c3ffd9654d3231a6f25390b056483e8f407c\"))\n" " (channel\n" " (name 'variant-packages)\n" " (url \"https://example.org/variant-packages.git\")\n" " (commit \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n" msgstr "" ";; Ganz bestimmte Commits der relevanten Kanäle installieren.\n" "(list (channel\n" " (name 'guix)\n" " (url \"https://git.savannah.gnu.org/git/guix.git\")\n" " (commit \"6298c3ffd9654d3231a6f25390b056483e8f407c\"))\n" " (channel\n" " (name 'paketvarianten)\n" " (url \"https://example.org/variant-packages.git\")\n" " (commit \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n" #. type: Plain text #: guix-git/doc/guix.texi:5326 msgid "To obtain this pinned channel specification, the easiest way is to run @command{guix describe} and to save its output in the @code{channels} format in a file, like so:" msgstr "Um so eine festgesetzte Kanalspezifikation zu bekommen, ist es am einfachsten, @command{guix describe} auszuführen und seine Ausgabe in @code{channels}-Formatierung in einer Datei zu speichern. Das geht so:" #. type: example #: guix-git/doc/guix.texi:5329 #, no-wrap msgid "guix describe -f channels > channels.scm\n" msgstr "guix describe -f channels > channels.scm\n" #. type: Plain text #: guix-git/doc/guix.texi:5335 msgid "The resulting @file{channels.scm} file can be passed to the @option{-C} option of @command{guix pull} (@pxref{Invoking guix pull}) or @command{guix time-machine} (@pxref{Invoking guix time-machine}), as in this example:" msgstr "Die erzeugte Datei @file{channels.scm} kann mit der Befehlszeilenoption @option{-C} von @command{guix pull} (siehe @ref{Invoking guix pull}) oder von @command{guix time-machine} (siehe @ref{Invoking guix time-machine}) übergeben werden. Ein Beispiel:" #. type: example #: guix-git/doc/guix.texi:5338 #, no-wrap msgid "guix time-machine -C channels.scm -- shell python -- python3\n" msgstr "guix time-machine -C channels.scm -- shell python -- python3\n" #. type: Plain text #: guix-git/doc/guix.texi:5344 msgid "Given the @file{channels.scm} file, the command above will always fetch the @emph{exact same Guix instance}, then use that instance to run the exact same Python (@pxref{Invoking guix shell}). On any machine, at any time, it ends up running the exact same binaries, bit for bit." msgstr "Anhand der Datei @file{channels.scm} ist festgelegt, dass der obige Befehl immer @emph{genau dieselbe Guix-Instanz} lädt und dann mit dieser Instanz genau dasselbe Python startet (siehe @ref{Invoking guix shell}). So werden auf jeder beliebigen Maschine zu jedem beliebigen Zeitpunkt genau dieselben Binärdateien ausgeführt, Bit für Bit." #. type: cindex #: guix-git/doc/guix.texi:5345 #, no-wrap msgid "lock files" msgstr "Lockfiles" #. type: Plain text #: guix-git/doc/guix.texi:5353 msgid "Pinned channels address a problem similar to ``lock files'' as implemented by some deployment tools---they let you pin and reproduce a set of packages. In the case of Guix though, you are effectively pinning the entire package set as defined at the given channel commits; in fact, you are pinning all of Guix, including its core modules and command-line tools. You're also getting strong guarantees that you are, indeed, obtaining the exact same software." msgstr "Das Problem, das solche festgesetzten Kanäle lösen, ist ähnlich zu dem, wofür andere Werkzeuge zur Softwareauslieferung „Lockfiles“ einsetzen@tie{}– ein Satz von Paketen wird reproduzierbar auf eine bestimmte Version festgesetzt. Im Fall von Guix werden allerdings sämtliche mit Guix ausgelieferte Pakete auf die angegebenen Commits fixiert; tatsächlich sogar der ganze Rest von Guix mitsamt seinen Kernmodulen und Programmen für die Befehlszeile. Dazu wird sicher garantiert, dass Sie wirklich genau dieselbe Software vorfinden werden." #. type: Plain text #: guix-git/doc/guix.texi:5358 msgid "This gives you super powers, allowing you to track the provenance of binary artifacts with very fine grain, and to reproduce software environments at will---some sort of ``meta reproducibility'' capabilities, if you will. @xref{Inferiors}, for another way to take advantage of these super powers." msgstr "Das verleiht Ihnen Superkräfte, mit denen Sie die Provenienz binärer Artefakte sehr feinkörnig nachverfolgen können und Software-Umgebungen nach Belieben nachbilden können. Sie können es als eine Art Fähigkeit zur „Meta-Reproduzierbarkeit“ auffassen, wenn Sie möchten. Der Abschnitt @ref{Inferiors} beschreibt eine weitere Möglichkeit, diese Superkräfte zu nutzen." #. type: cindex #: guix-git/doc/guix.texi:5362 #, no-wrap msgid "system-wide Guix, customization" msgstr "systemweites Guix, Anpassung" #. type: cindex #: guix-git/doc/guix.texi:5363 #, no-wrap msgid "channels, for the default Guix" msgstr "Kanäle, im standardmäßigen Guix" #. type: Plain text #: guix-git/doc/guix.texi:5369 msgid "If you're running Guix System or building system images with it, maybe you will want to customize the system-wide @command{guix} it provides---specifically, @file{/run/current-system/profile/bin/guix}. For example, you might want to provide additional channels or to pin its revision." msgstr "Wenn bei Ihnen Guix System läuft oder Sie Guix System benutzen, um Abbilder („Images“) zu erstellen, möchten Sie vielleicht Anpassungen vornehmen, welches @command{guix} darin systemweit verfügbar ist@tie{}– um genau zu sein, an @file{/run/current-system/profile/bin/guix}. Zum Beispiel könnten Sie zusätzliche Kanäle vorsehen oder genau festschreiben, welche Version es verwendet." #. type: Plain text #: guix-git/doc/guix.texi:5373 msgid "This can be done using the @code{guix-for-channels} procedure, which returns a package for the given channels, and using it as part of your operating system configuration, as in this example:" msgstr "Dazu verwenden Sie die Prozedur @code{guix-for-channels}, die ein Paket für die angegebenen Pakete zurückliefert, welche sie in Ihrer Betriebssystemkonfiguration so benutzen wie in diesem Beispiel:" #. type: lisp #: guix-git/doc/guix.texi:5377 #, fuzzy, no-wrap #| msgid "" #| "(use-modules (gnu packages base) (guix packages))\n" #| "\n" msgid "" "(use-modules (gnu packages package-management)\n" " (guix channels))\n" "\n" msgstr "" "(use-modules (gnu packages base) (guix packages))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:5387 #, no-wrap msgid "" "(define my-channels\n" " ;; Channels that should be available to\n" " ;; /run/current-system/profile/bin/guix.\n" " (append\n" " (list (channel\n" " (name 'guix-science)\n" " (url \"https://github.com/guix-science/guix-science\")\n" " (branch \"master\")))\n" " %default-channels))\n" "\n" msgstr "" "(define meine-kanäle\n" " ;; Die Kanäle, die in /run/current-system/profile/bin/guix\n" " ;; verfügbar sein sollen.\n" " (append\n" " (list (channel\n" " (name 'guix-science)\n" " (url \"https://github.com/guix-science/guix-science\")\n" " (branch \"master\")))\n" " %default-channels))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:5398 #, no-wrap msgid "" "(operating-system\n" " ;; @dots{}\n" " (services\n" " ;; Change the package used by 'guix-service-type'.\n" " (modify-services %base-services\n" " (guix-service-type\n" " config => (guix-configuration\n" " (inherit config)\n" " (channels my-channels)\n" " (guix (guix-for-channels my-channels)))))))\n" msgstr "" "(operating-system\n" " ;; …\n" " (services\n" " ;; Ändern, welches Paket 'guix-service-type' verwendet.\n" " (modify-services %base-services\n" " (guix-service-type\n" " config => (guix-configuration\n" " (inherit config)\n" " (channels meine-kanäle)\n" " (guix (guix-for-channels meine-kanäle)))))))\n" #. type: Plain text #: guix-git/doc/guix.texi:5406 msgid "The resulting operating system will have both the @code{guix} and the @code{guix-science} channels visible by default. The @code{channels} field of @code{guix-configuration} above further ensures that @file{/etc/guix/channels.scm}, which is used by @command{guix pull}, specifies the same set of channels (@pxref{guix-configuration-channels, @code{channels} field of @code{guix-configuration}})." msgstr "Das Ergebnis ist ein Betriebssystem, in dem sowohl der @code{guix}-Kanal als auch der Kanal @code{guix-science} als Voreinstellung sichtbar sind. Das Feld @code{channels} in der obigen @code{guix-configuration} bewirkt zudem, dass die Datei @file{/etc/guix/channels.scm}, die von @command{guix pull} benutzt wird, dieselben Kanäle angibt (siehe @ref{guix-configuration-channels, das Feld @code{channels} in @code{guix-configuration}})." #. type: Plain text #: guix-git/doc/guix.texi:5409 msgid "The @code{(gnu packages package-management)} module exports the @code{guix-for-channels} procedure, described below." msgstr "Das Modul @code{(gnu packages package-management)} exportiert die Prozedur @code{guix-for-channels}, die im Folgenden beschrieben wird." #. type: deffn #: guix-git/doc/guix.texi:5410 #, no-wrap msgid "{Procedure} guix-for-channels @var{channels}" msgstr "{Prozedur} guix-for-channels @var{Kanäle}" #. type: deffn #: guix-git/doc/guix.texi:5412 msgid "Return a package corresponding to @var{channels}." msgstr "Liefert ein Paket mit jedem der @var{Kanäle}." #. type: deffn #: guix-git/doc/guix.texi:5416 msgid "The result is a ``regular'' package, which can be used in @code{guix-configuration} as shown above or in any other place that expects a package." msgstr "Das Ergebnis ist ein „normales“ Paket, das für die Nutzung in @code{guix-configuration} geeignet ist, wie oben gezeigt, aber auch überall sonst wo ein Paket erwartet wird." #. type: anchor{#1} #: guix-git/doc/guix.texi:5422 msgid "channel-authentication" msgstr "channel-authentication" #. type: Plain text #: guix-git/doc/guix.texi:5428 msgid "The @command{guix pull} and @command{guix time-machine} commands @dfn{authenticate} the code retrieved from channels: they make sure each commit that is fetched is signed by an authorized developer. The goal is to protect from unauthorized modifications to the channel that would lead users to run malicious code." msgstr "Die Befehle @command{guix pull} und @command{guix time-machine} @dfn{authentifizieren} den von Kanälen bezogenen Code. Es wird geprüft, dass jeder geladene Commit von einem autorisierten Entwickler signiert wurde. Das Ziel ist, Sie vor unautorisierten Änderungen am Kanal, die Nutzer bösartigen Code ausführen lassen, zu schützen." #. type: Plain text #: guix-git/doc/guix.texi:5433 msgid "As a user, you must provide a @dfn{channel introduction} in your channels file so that Guix knows how to authenticate its first commit. A channel specification, including its introduction, looks something along these lines:" msgstr "Als Nutzer müssen Sie eine @dfn{Kanaleinführung} („Channel Introduction“) in Ihrer Kanaldatei angeben, damit Guix weiß, wie der erste Commit authentifiziert werden kann. Eine Kanalspezifikation, zusammen mit seiner Einführung, sieht in etwa so aus:" #. type: lisp #: guix-git/doc/guix.texi:5443 #, no-wrap msgid "" "(channel\n" " (name 'some-channel)\n" " (url \"https://example.org/some-channel.git\")\n" " (introduction\n" " (make-channel-introduction\n" " \"6f0d8cc0d88abb59c324b2990bfee2876016bb86\"\n" " (openpgp-fingerprint\n" " \"CABB A931 C0FF EEC6 900D 0CFB 090B 1199 3D9A EBB5\"))))\n" msgstr "" "(channel\n" " (name 'ein-kanal)\n" " (url \"https://example.org/ein-kanal.git\")\n" " (introduction\n" " (make-channel-introduction\n" " \"6f0d8cc0d88abb59c324b2990bfee2876016bb86\"\n" " (openpgp-fingerprint\n" " \"CABB A931 C0FF EEC6 900D 0CFB 090B 1199 3D9A EBB5\"))))\n" #. type: Plain text #: guix-git/doc/guix.texi:5449 msgid "The specification above shows the name and URL of the channel. The call to @code{make-channel-introduction} above specifies that authentication of this channel starts at commit @code{6f0d8cc@dots{}}, which is signed by the OpenPGP key with fingerprint @code{CABB A931@dots{}}." msgstr "Obige Spezifikation zeigt den Namen und die URL des Kanals. Der Aufruf von @code{make-channel-introduction}, den Sie oben sehen, gibt an, dass die Authentifizierung dieses Kanals bei Commit @code{6f0d8cc…} beginnt, welcher mit dem OpenPGP-Schlüssel mit Fingerabdruck @code{CABB A931…} signiert ist." #. type: Plain text #: guix-git/doc/guix.texi:5455 msgid "For the main channel, called @code{guix}, you automatically get that information from your Guix installation. For other channels, include the channel introduction provided by the channel authors in your @file{channels.scm} file. Make sure you retrieve the channel introduction from a trusted source since that is the root of your trust." msgstr "Für den Hauptkanal mit Namen @code{guix} bekommen Sie diese Informationen automatisch mit Ihrer Guix-Installation. Für andere Kanäle tragen Sie die Kanaleinführung, die Ihnen die Kanalautoren mitteilen, in die Datei @file{channels.scm} ein. Achten Sie dabei darauf, die Kanaleinführung von einer vertrauenswürdigen Quelle zu bekommen, denn sie stellt die Wurzel all Ihren Vertrauens dar." #. type: Plain text #: guix-git/doc/guix.texi:5457 msgid "If you're curious about the authentication mechanics, read on!" msgstr "Wenn Sie neugierig sind, wie die Authentifizierung funktioniert, lesen Sie weiter!" #. type: Plain text #: guix-git/doc/guix.texi:5468 msgid "When running @command{guix pull}, Guix will first compile the definitions of every available package. This is an expensive operation for which substitutes (@pxref{Substitutes}) may be available. The following snippet in @file{channels.scm} will ensure that @command{guix pull} uses the latest commit with available substitutes for the package definitions: this is done by querying the continuous integration server at @url{https://ci.guix.gnu.org}." msgstr "Wenn Sie @command{guix pull} ausführen, wird Guix als Erstes die Definition jedes verfügbaren Pakets kompilieren. Das ist eine teure Operation, für die es aber Substitute geben könnte (siehe @ref{Substitutes}). Mit dem folgenden Schnipsel in @file{channels.scm} wird sichergestellt, dass @command{guix pull} den neuesten Commit benutzt, für den bereits Substitute für die Paketdefinitionen vorliegen. Dazu wird der Server für Kontinuierliche Integration auf @url{https://ci.guix.gnu.org} angefragt." #. type: lisp #: guix-git/doc/guix.texi:5471 #, no-wrap msgid "" "(use-modules (guix ci))\n" "\n" msgstr "" "(use-modules (guix ci))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:5475 #, no-wrap msgid "" "(list (channel-with-substitutes-available\n" " %default-guix-channel\n" " \"https://ci.guix.gnu.org\"))\n" msgstr "" "(list (channel-with-substitutes-available\n" " %default-guix-channel\n" " \"https://ci.guix.gnu.org\"))\n" #. type: Plain text #: guix-git/doc/guix.texi:5482 msgid "Note that this does not mean that all the packages that you will install after running @command{guix pull} will have available substitutes. It only ensures that @command{guix pull} will not try to compile package definitions. This is particularly useful when using machines with limited resources." msgstr "Beachten Sie: Das heißt @emph{nicht}, dass für alle Pakete, die Sie installieren werden, nachdem Sie @command{guix pull} durchgeführt haben, bereits Substitute vorliegen. Es wird nur sichergestellt, dass @command{guix pull} keine Paketdefinitionen zu kompilieren versucht. Das hilft besonders auf Maschinen mit eingeschränkten Rechenressourcen." #. type: cindex #: guix-git/doc/guix.texi:5486 #, no-wrap msgid "personal packages (channels)" msgstr "Eigene Pakete (Kanäle)" #. type: cindex #: guix-git/doc/guix.texi:5487 #, no-wrap msgid "channels, for personal packages" msgstr "Kanäle, für eigene Pakete" #. type: Plain text #: guix-git/doc/guix.texi:5493 msgid "Let's say you have a bunch of custom package variants or personal packages that you think would make little sense to contribute to the Guix project, but would like to have these packages transparently available to you at the command line. By creating a @dfn{channel}, you can use and publish such a package collection. This involves the following steps:" msgstr "Sagen wir, Sie haben ein paar eigene Paketvarianten oder persönliche Pakete, von denen Sie meinen, dass sie @emph{nicht} geeignet sind, ins Guix-Projekt selbst aufgenommen zu werden, die Ihnen aber dennoch wie andere Pakete auf der Befehlszeile zur Verfügung stehen sollen. Indem Sie einen @dfn{Kanal} damit anlegen, wird Ihre Sammlung von Paketen nutzbar und Sie können sie mit anderen teilen. Dazu sind folgende Schritte nötig:" #. type: enumerate #: guix-git/doc/guix.texi:5498 msgid "A channel lives in a Git repository so the first step, when creating a channel, is to create its repository:" msgstr "Kanäle werden in Git-Repositorys verwaltet, daher ist der erste Schritt beim Anlegen eines Kanals, dass Sie sein Repository erzeugen." #. type: example #: guix-git/doc/guix.texi:5503 #, no-wrap msgid "" "mkdir my-channel\n" "cd my-channel\n" "git init\n" msgstr "" "mkdir my-channel\n" "cd my-channel\n" "git init\n" #. type: enumerate #: guix-git/doc/guix.texi:5511 msgid "The next step is to create files containing package modules (@pxref{Package Modules}), each of which will contain one or more package definitions (@pxref{Defining Packages}). A channel can provide things other than packages, such as build systems or services; we're using packages as it's the most common use case." msgstr "Im nächsten Schritt erzeugen Sie Dateien für Paketmodule (siehe @ref{Package Modules}). In jeder können eine oder mehrere Paketdefinitionen stehen (siehe @ref{Defining Packages}). Über einen Kanal können Sie auch andere Dinge als nur Pakete bekommen, etwa Erstellungssysteme oder Dienste; hier geht es um Pakete, weil sie der häufigste Verwendungszweck sind." #. type: enumerate #: guix-git/doc/guix.texi:5516 msgid "For example, Alice might want to provide a module called @code{(alice packages greetings)} that will provide her favorite ``hello world'' implementations. To do that Alice will create a directory corresponding to that module name." msgstr "Ein Beispiel: Alice könnte ein Modul mit dem Namen @code{(alice packages greetings)} bereitstellen für ihre Lieblings-Hallo-Welt-Implementierungen. Zu diesem Zweck würde Alice ein Verzeichnis entsprechend dem Modulnamen erzeugen." #. type: example #: guix-git/doc/guix.texi:5521 #, no-wrap msgid "" "mkdir -p alice/packages\n" "$EDITOR alice/packages/greetings.scm\n" "git add alice/packages/greetings.scm\n" msgstr "" "mkdir -p alice/packages\n" "$EDITOR alice/packages/greetings.scm\n" "git add alice/packages/greetings.scm\n" #. type: enumerate #: guix-git/doc/guix.texi:5527 msgid "You can name your package modules however you like; the main constraint to keep in mind is to avoid name clashes with other package collections, which is why our hypothetical Alice wisely chose the @code{(alice packages @dots{})} name space." msgstr "Welchen Namen Sie einem Paketmodul geben möchten, bleibt Ihnen überlassen. Behalten Sie nur die Einschränkung im Kopf, dass sich der Name von anderen Paketsammlungen unterscheiden muss, deshalb trifft Alice aus unserem Beispiel die weise Entscheidung für @code{(alice packages …)} als Namensraum." #. type: enumerate #: guix-git/doc/guix.texi:5531 msgid "Note that you can also place modules in a sub-directory of the repository; @pxref{Package Modules in a Sub-directory}, for more info on that." msgstr "Es sei erwähnt, dass Sie Paketmodule auch in einem Unterverzeichnis innerhalb des Repositorys ablegen können; siehe dazu @ref{Package Modules in a Sub-directory}." #. type: enumerate #: guix-git/doc/guix.texi:5538 msgid "With this first module in place, the next step is to test the packages it provides. This can be done with @command{guix build}, which needs to be told to look for modules in the Git checkout. For example, assuming @code{(alice packages greetings)} provides a package called @code{hi-from-alice}, Alice will run this command from the Git checkout:" msgstr "Nachdem das erste Modul eingerichtet ist, geht es als nächster Schritt ans Testen der angebotenen Pakete. Dazu können Sie @command{guix build} verwenden, wobei Sie mitteilen, dass es die Module aus dem Git-Checkout verwenden soll. Nehmen wir zum Beispiel an, in @code{(alice packages greetings)} wird ein Paket namens @code{hi-from-alice} angeboten. Dann führt Alice aus dem Git-Checkout diesen Befehl aus:" #. type: example #: guix-git/doc/guix.texi:5541 #, no-wrap msgid "guix build -L. hi-from-alice\n" msgstr "guix build -L. hi-from-alice\n" #. type: enumerate #: guix-git/doc/guix.texi:5546 msgid "... where @code{-L.} adds the current directory to Guile's load path (@pxref{Load Paths,,, guile, GNU Guile Reference Manual})." msgstr "Hier wird mit @code{-L.} das aktuelle Verzeichnis zu Guiles Ladepfad hinzugefügt (siehe @ref{Load Paths,,, guile, Referenzhandbuch zu GNU Guile})." #. type: enumerate #: guix-git/doc/guix.texi:5550 msgid "It might take Alice a few iterations to obtain satisfying package definitions. Eventually Alice will commit this file:" msgstr "Es kann ein paar Versuche dauern, aber bald ist Alice zufrieden mit ihren Paketdefinitionen und committet die Datei:" #. type: example #: guix-git/doc/guix.texi:5553 #, no-wrap msgid "git commit\n" msgstr "git commit\n" #. type: enumerate #: guix-git/doc/guix.texi:5559 msgid "As a channel author, consider bundling authentication material with your channel so that users can authenticate it. @xref{Channel Authentication}, and @ref{Specifying Channel Authorizations}, for info on how to do it." msgstr "Als Kanalautor möchten Sie vielleicht Materialien mitliefern, damit dessen Nutzer ihn authentifizieren können. Siehe @ref{Channel Authentication} und @ref{Specifying Channel Authorizations} für Informationen, wie das geht." #. type: enumerate #: guix-git/doc/guix.texi:5564 msgid "To use Alice's channel, anyone can now add it to their channel file (@pxref{Specifying Additional Channels}) and run @command{guix pull} (@pxref{Invoking guix pull}):" msgstr "Wenn jemand also Alice’ Kanal benutzen möchte, muss er diese Kanalautorisierungen nur in seiner Kanaldatei eintragen (siehe @ref{Specifying Additional Channels}) und @command{guix pull} ausführen (siehe @ref{Invoking guix pull}):" #. type: example #: guix-git/doc/guix.texi:5568 #, no-wrap msgid "" "$EDITOR ~/.config/guix/channels.scm\n" "guix pull\n" msgstr "" "$EDITOR ~/.config/guix/channels.scm\n" "guix pull\n" #. type: enumerate #: guix-git/doc/guix.texi:5574 msgid "Guix will now behave as if the root directory of that channel's Git repository had been permanently added to the Guile load path. In this example, @code{(alice packages greetings)} will automatically be found by the @command{guix} command." msgstr "Von nun an verhält sich Guix so, als hätte man das Wurzelverzeichnis des Git-Repositorys jenes Kanals dauerhaft zu Guiles Ladepfad hinzugefügt. In Alice’ Fall wird also @code{(alice packages greetings)} automatisch durch den @command{guix}-Befehl gefunden." #. type: Plain text #: guix-git/doc/guix.texi:5577 msgid "Voilà!" msgstr "Erledigt!" #. type: quotation #: guix-git/doc/guix.texi:5581 guix-git/doc/guix.texi:7010 #: guix-git/doc/guix.texi:7050 guix-git/doc/guix.texi:13400 #: guix-git/doc/guix.texi:17531 guix-git/doc/guix.texi:25866 #: guix-git/doc/guix.texi:25873 guix-git/doc/guix.texi:33939 #: guix-git/doc/guix.texi:40111 #, no-wrap msgid "Warning" msgstr "Warnung" #. type: quotation #: guix-git/doc/guix.texi:5584 msgid "Before you publish your channel, we would like to share a few words of caution:" msgstr "Ehe Sie Ihren Kanal der Welt zur Verfügung stellen, möchten wir Ihnen auch ein paar Worte der Warnung mit auf den Weg geben:" #. type: itemize #: guix-git/doc/guix.texi:5592 msgid "Before publishing a channel, please consider contributing your package definitions to Guix proper (@pxref{Contributing}). Guix as a project is open to free software of all sorts, and packages in Guix proper are readily available to all Guix users and benefit from the project's quality assurance process." msgstr "Bevor Sie einen Kanal veröffentlichen, überlegen Sie sich bitte erst, ob Sie die Pakete nicht besser zum eigentlichen Guix-Projekt beisteuern (siehe @ref{Contributing}). Das Guix-Projekt ist gegenüber allen Arten freier Software offen und zum eigentlichen Guix gehörende Pakete stehen allen Guix-Nutzern zur Verfügung, außerdem profitieren sie von Guix’ Qualitätssicherungsprozess." #. type: itemize #: guix-git/doc/guix.texi:5599 msgid "Package modules and package definitions are Scheme code that uses various programming interfaces (APIs). We, Guix developers, never change APIs gratuitously, but we do @emph{not} commit to freezing APIs either. When you maintain package definitions outside Guix, we consider that @emph{the compatibility burden is on you}." msgstr "Bedenken Sie, dass Paketmodule und Paketdefinitionen Scheme-Code sind, der verschiedene Programmierschnittstellen (APIs) benutzt. Wir, die Entwickler von Guix, ändern APIs nie einfach so, versprechen aber auch @emph{nicht}, APIs nicht zu verändern. Wenn Sie Paketdefinitionen außerhalb von Guix betreuen, sehen wir es als @emph{Ihre Aufgabe an, deren Kompatibilität sicherzustellen}." #. type: itemize #: guix-git/doc/guix.texi:5603 msgid "Corollary: if you're using an external channel and that channel breaks, please @emph{report the issue to the channel authors}, not to the Guix project." msgstr "Das bedeutet auch, dass Sie, wenn Sie einen externen Kanal verwenden und dieser kaputt geht, Sie dies bitte @emph{den Autoren des Kanals} und nicht dem Guix-Projekt melden." #. type: quotation #: guix-git/doc/guix.texi:5610 msgid "You've been warned! Having said this, we believe external channels are a practical way to exert your freedom to augment Guix' package collection and to share your improvements, which are basic tenets of @uref{https://www.gnu.org/philosophy/free-sw.html, free software}. Please email us at @email{guix-devel@@gnu.org} if you'd like to discuss this." msgstr "Wir haben Sie gewarnt! Allerdings denken wir auch, dass externe Kanäle eine praktische Möglichkeit sind, die Paketsammlung von Guix zu ergänzen und Ihre Verbesserungen mit anderen zu teilen, wie es dem Grundgedanken @uref{https://www.gnu.org/philosophy/free-sw.html, freier Software} entspricht. Bitte schicken Sie eine E-Mail an @email{guix-devel@@gnu.org}, wenn Sie dies diskutieren möchten." #. type: cindex #: guix-git/doc/guix.texi:5617 #, no-wrap msgid "subdirectory, channels" msgstr "Unterverzeichnis, Kanäle" #. type: Plain text #: guix-git/doc/guix.texi:5621 msgid "As a channel author, you may want to keep your channel modules in a sub-directory. If your modules are in the sub-directory @file{guix}, you must add a meta-data file @file{.guix-channel} that contains:" msgstr "Als Kanalautor möchten Sie vielleicht Ihre Kanalmodule in einem Unterverzeichnis anlegen. Wenn sich Ihre Module im Unterverzeichnis @file{guix} befinden, müssen Sie eine Datei @file{.guix-channel} mit Metadaten einfügen:" #. type: lisp #: guix-git/doc/guix.texi:5626 #, no-wrap msgid "" "(channel\n" " (version 0)\n" " (directory \"guix\"))\n" msgstr "" "(channel\n" " (version 0)\n" " (directory \"guix\"))\n" #. type: Plain text #: guix-git/doc/guix.texi:5633 msgid "The modules must be @b{underneath} the specified directory, as the @code{directory} changes Guile's @code{load-path}. For example, if @file{.guix-channel} has @code{(directory \"base\")}, then a module defined as @code{(define-module (gnu packages fun))} must be located at @code{base/gnu/packages/fun.scm}." msgstr "Die Module müssen sich @b{unterhalb} des als @code{directory} angegebenen Verzeichnisses befinden, weil @code{directory} Guiles Einstellung für @code{load-path} verändert. Zum Beispiel muss sich, wenn in @file{.guix-channel} @code{(directory \"base\")} eingetragen ist, ein Modul, was als @code{(define-module (gnu packages fun))} definiert ist, in @code{base/gnu/packages/fun.scm} befinden." #. type: Plain text #: guix-git/doc/guix.texi:5639 msgid "Doing this allows for only parts of a repository to be used as a channel, as Guix expects valid Guile modules when pulling. For instance, @command{guix deploy} machine configuration files are not valid Guile modules, and treating them as such would make @command{guix pull} fail." msgstr "Dadurch ist es möglich, nur einen Teil eines Repositorys als Kanal zu benutzen, was nützlich ist, weil Guix verlangt, dass beim Beziehen von Kanälen alle Guile-Module darin auch gültig sind. Zum Beispiel handelt es sich bei Konfigurationsdateien der Maschinen für @command{guix deploy} @emph{nicht} um gültige Guile-Module und sie zu beziehen würde @command{guix pull} fehlschlagen lassen." #. type: cindex #: guix-git/doc/guix.texi:5643 #, no-wrap msgid "dependencies, channels" msgstr "Abhängigkeiten, bei Kanälen" #. type: cindex #: guix-git/doc/guix.texi:5644 #, no-wrap msgid "meta-data, channels" msgstr "Metadaten, bei Kanälen" #. type: Plain text #: guix-git/doc/guix.texi:5649 msgid "Channel authors may decide to augment a package collection provided by other channels. They can declare their channel to be dependent on other channels in a meta-data file @file{.guix-channel}, which is to be placed in the root of the channel repository." msgstr "Kanalautoren können auch beschließen, die Paketsammlung von anderen Kanälen zu erweitern. Dazu können sie in einer Metadatendatei @file{.guix-channel} deklarieren, dass ihr Kanal von anderen Kanälen abhängt. Diese Datei muss im Wurzelverzeichnis des Kanal-Repositorys platziert werden." #. type: Plain text #: guix-git/doc/guix.texi:5651 msgid "The meta-data file should contain a simple S-expression like this:" msgstr "Die Metadatendatei sollte einen einfachen S-Ausdruck wie diesen enthalten:" #. type: lisp #: guix-git/doc/guix.texi:5659 #, no-wrap msgid "" "(channel\n" " (version 0)\n" " (dependencies\n" " (channel\n" " (name some-collection)\n" " (url \"https://example.org/first-collection.git\")\n" "\n" msgstr "" "(channel\n" " (version 0)\n" " (dependencies\n" " (channel\n" " (name irgendeine-sammlung)\n" " (url \"https://example.org/erste-sammlung.git\")\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:5671 #, no-wrap msgid "" " ;; The 'introduction' bit below is optional: you would\n" " ;; provide it for dependencies that can be authenticated.\n" " (introduction\n" " (channel-introduction\n" " (version 0)\n" " (commit \"a8883b58dc82e167c96506cf05095f37c2c2c6cd\")\n" " (signer \"CABB A931 C0FF EEC6 900D 0CFB 090B 1199 3D9A EBB5\"))))\n" " (channel\n" " (name some-other-collection)\n" " (url \"https://example.org/second-collection.git\")\n" " (branch \"testing\"))))\n" msgstr "" " ;; Der Teil mit der 'introduction' hier ist optional. Sie geben hier\n" " ;; die Kanaleinführung an, wenn diese Abhängigkeiten authentifiziert\n" " ;; werden können.\n" " (introduction\n" " (channel-introduction\n" " (version 0)\n" " (commit \"a8883b58dc82e167c96506cf05095f37c2c2c6cd\")\n" " (signer \"CABB A931 C0FF EEC6 900D 0CFB 090B 1199 3D9A EBB5\"))))\n" " (channel\n" " (name eine-andere-sammlung)\n" " (url \"https://example.org/zweite-sammlung.git\")\n" " (branch \"testing\"))))\n" #. type: Plain text #: guix-git/doc/guix.texi:5677 msgid "In the above example this channel is declared to depend on two other channels, which will both be fetched automatically. The modules provided by the channel will be compiled in an environment where the modules of all these declared channels are available." msgstr "Im Beispiel oben wird deklariert, dass dieser Kanal von zwei anderen Kanälen abhängt, die beide automatisch geladen werden. Die vom Kanal angebotenen Module werden in einer Umgebung kompiliert, in der die Module all dieser deklarierten Kanäle verfügbar sind." #. type: Plain text #: guix-git/doc/guix.texi:5681 msgid "For the sake of reliability and maintainability, you should avoid dependencies on channels that you don't control, and you should aim to keep the number of dependencies to a minimum." msgstr "Um Verlässlichkeit und Wartbarkeit zu gewährleisten, sollten Sie darauf verzichten, eine Abhängigkeit von Kanälen herzustellen, die Sie nicht kontrollieren, außerdem sollten Sie sich auf eine möglichst kleine Anzahl von Abhängigkeiten beschränken." #. type: cindex #: guix-git/doc/guix.texi:5685 #, no-wrap msgid "channel authorizations" msgstr "Kanalautorisierungen" #. type: anchor{#1} #: guix-git/doc/guix.texi:5699 msgid "channel-authorizations" msgstr "channel-authorizations" #. type: Plain text #: guix-git/doc/guix.texi:5699 msgid "As we saw above, Guix ensures the source code it pulls from channels comes from authorized developers. As a channel author, you need to specify the list of authorized developers in the @file{.guix-authorizations} file in the channel's Git repository. The authentication rule is simple: each commit must be signed by a key listed in the @file{.guix-authorizations} file of its parent commit(s)@footnote{Git commits form a @dfn{directed acyclic graph} (DAG). Each commit can have zero or more parents; ``regular'' commits have one parent and merge commits have two parent commits. Read @uref{https://eagain.net/articles/git-for-computer-scientists/, @i{Git for Computer Scientists}} for a great overview.} The @file{.guix-authorizations} file looks like this:" msgstr "Wie wir oben gesehen haben, wird durch Guix sichergestellt, dass von Kanälen geladener Code von autorisierten Entwicklern stammt. Als Kanalautor müssen Sie die Liste der autorisierten Entwickler in der Datei @file{.guix-authorizations} im Git-Repository des Kanals festlegen. Die Regeln für die Authentifizierung sind einfach: Jeder Commit muss mit einem Schlüssel signiert sein, der in der Datei @file{.guix-authorizations} seines bzw.@: seiner Elterncommits steht@footnote{Git-Commits bilden einen @dfn{gerichteten azyklischen Graphen} (englisch „directed acyclic graph“, kurz DAG). Jeder Commit kann null oder mehr Eltern haben; in der Regel haben Commits einen Elterncommit, Mergecommits haben zwei. Lesen Sie @uref{https://eagain.net/articles/git-for-computer-scientists/, @i{Git for Computer Scientists}} für eine gelungene Übersicht.} Die Datei @file{.guix-authorizations} sieht so aus:" #. type: lisp #: guix-git/doc/guix.texi:5702 #, no-wrap msgid "" ";; Example '.guix-authorizations' file.\n" "\n" msgstr "" ";; Beispiel für eine '.guix-authorizations'-Datei.\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:5705 #, no-wrap msgid "" "(authorizations\n" " (version 0) ;current file format version\n" "\n" msgstr "" "(authorizations\n" " (version 0) ;aktuelle Version des Dateiformats\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:5712 #, no-wrap msgid "" " ((\"AD17 A21E F8AE D8F1 CC02 DBD9 F8AE D8F1 765C 61E3\"\n" " (name \"alice\"))\n" " (\"2A39 3FFF 68F4 EF7A 3D29 12AF 68F4 EF7A 22FB B2D5\"\n" " (name \"bob\"))\n" " (\"CABB A931 C0FF EEC6 900D 0CFB 090B 1199 3D9A EBB5\"\n" " (name \"charlie\"))))\n" msgstr "" " ((\"AD17 A21E F8AE D8F1 CC02 DBD9 F8AE D8F1 765C 61E3\"\n" " (name \"alice\"))\n" " (\"2A39 3FFF 68F4 EF7A 3D29 12AF 68F4 EF7A 22FB B2D5\"\n" " (name \"bob\"))\n" " (\"CABB A931 C0FF EEC6 900D 0CFB 090B 1199 3D9A EBB5\"\n" " (name \"charlie\"))))\n" #. type: Plain text #: guix-git/doc/guix.texi:5716 msgid "Each fingerprint is followed by optional key/value pairs, as in the example above. Currently these key/value pairs are ignored." msgstr "Auf jeden Fingerabdruck folgen optional Schlüssel-/Wert-Paare wie im obigen Beispiel. Derzeit werden diese Schlüssel-/Wert-Paare ignoriert." #. type: Plain text #: guix-git/doc/guix.texi:5721 msgid "This authentication rule creates a chicken-and-egg issue: how do we authenticate the first commit? Related to that: how do we deal with channels whose repository history contains unsigned commits and lack @file{.guix-authorizations}? And how do we fork existing channels?" msgstr "Diese Authentifizierungsregel hat ein Henne-Ei-Problem zur Folge: Wie authentifizieren wir den ersten Commit? Und damit zusammenhängend: Was tun wir, wenn die Historie eines Kanal-Repositorys @emph{nicht} signierte Commits enthält und eine @file{.guix-authorizations}-Datei fehlt? Und wie legen wir eine Abspaltung („Fork“) existierender Kanäle an?" #. type: cindex #: guix-git/doc/guix.texi:5722 #, no-wrap msgid "channel introduction" msgstr "Kanaleinführung" #. type: Plain text #: guix-git/doc/guix.texi:5731 msgid "Channel introductions answer these questions by describing the first commit of a channel that should be authenticated. The first time a channel is fetched with @command{guix pull} or @command{guix time-machine}, the command looks up the introductory commit and verifies that it is signed by the specified OpenPGP key. From then on, it authenticates commits according to the rule above. Authentication fails if the target commit is neither a descendant nor an ancestor of the introductory commit." msgstr "Kanaleinführungen beantworten diese Fragen, indem sie den ersten Commit eines Kanals angeben, der authentifiziert werden soll. Das erste Mal, wenn ein Kanal durch @command{guix pull} oder @command{guix time-machine} geladen wird, wird nachgeschaut, was der einführende Commit ist und ob er mit dem angegebenen OpenPGP-Schlüssel signiert wurde. Von da an werden Commits gemäß obiger Regel authentifiziert. Damit die Authentifizierung erfolgreich ist, muss der Ziel-Commit entweder Nachkomme oder Vorgänger des einführenden Commits sein." #. type: Plain text #: guix-git/doc/guix.texi:5738 msgid "Additionally, your channel must provide all the OpenPGP keys that were ever mentioned in @file{.guix-authorizations}, stored as @file{.key} files, which can be either binary or ``ASCII-armored''. By default, those @file{.key} files are searched for in the branch named @code{keyring} but you can specify a different branch name in @code{.guix-channel} like so:" msgstr "Außerdem muss Ihr Kanal alle OpenPGP-Schlüssel zur Verfügung stellen, die jemals in @file{.guix-authorizations} erwähnt wurden, gespeichert in Form von @file{.key}-Dateien, entweder als Binärdateien oder mit „ASCII-Hülle“. Nach Vorgabe wird nach diesen @file{.key}-Dateien im Branch namens @code{keyring} gesucht, aber Sie können wie hier einen anderen Branchnamen in @code{.guix-channel} angeben:" #. type: lisp #: guix-git/doc/guix.texi:5743 #, no-wrap msgid "" "(channel\n" " (version 0)\n" " (keyring-reference \"my-keyring-branch\"))\n" msgstr "" "(channel\n" " (version 0)\n" " (keyring-reference \"my-keyring-branch\"))\n" #. type: Plain text #: guix-git/doc/guix.texi:5747 msgid "To summarize, as the author of a channel, there are three things you have to do to allow users to authenticate your code:" msgstr "Zusammenfassen haben Kanalautoren drei Dinge zu tun, damit Nutzer deren Code authentifizieren können:" #. type: enumerate #: guix-git/doc/guix.texi:5753 msgid "Export the OpenPGP keys of past and present committers with @command{gpg --export} and store them in @file{.key} files, by default in a branch named @code{keyring} (we recommend making it an @dfn{orphan branch})." msgstr "Exportieren Sie die OpenPGP-Schlüssel früherer und aktueller Committer mittels @command{gpg --export} und speichern Sie sie in @file{.key}-Dateien, nach Vorgabe gespeichert in einem Branch namens @code{keyring} (wir empfehlen, dass Sie diesen als einen @dfn{verwaisten Branch}, d.h.@: einen „Orphan Branch“, anlegen)." #. type: enumerate #: guix-git/doc/guix.texi:5758 msgid "Introduce an initial @file{.guix-authorizations} in the channel's repository. Do that in a signed commit (@pxref{Commit Access}, for information on how to sign Git commits.)" msgstr "Sie müssen eine anfängliche @file{.guix-authorizations}-Datei im Kanalrepository platzieren. Der Commit dazu muss signiert sein (siehe @ref{Commit Access} für Informationen, wie Sie Git-Commits signieren)." #. type: enumerate #: guix-git/doc/guix.texi:5764 msgid "Advertise the channel introduction, for instance on your channel's web page. The channel introduction, as we saw above, is the commit/key pair---i.e., the commit that introduced @file{.guix-authorizations}, and the fingerprint of the OpenPGP used to sign it." msgstr "Sie müssen veröffentlichen, wie die Kanaleinführung aussieht, zum Beispiel auf der Webseite des Kanals. Die Kanaleinführung besteht, wie wir oben gesehen haben, aus einem Paar aus Commit und Schlüssel@tie{}– für denjenigen Commit, der @file{.guix-authorizations} hinzugefügt hat, mit dem Fingerabdruck des OpenPGP-Schlüssels, mit dem er signiert wurde." #. type: Plain text #: guix-git/doc/guix.texi:5769 msgid "Before pushing to your public Git repository, you can run @command{guix git authenticate} to verify that you did sign all the commits you are about to push with an authorized key:" msgstr "Bevor Sie auf Ihr öffentliches Git-Repository pushen, können Sie @command{guix git authenticate} ausführen, um zu überprüfen, dass Sie alle Commits, die Sie pushen würden, mit einem autorisierten Schlüssel signiert haben:" #. type: example #: guix-git/doc/guix.texi:5772 #, no-wrap msgid "guix git authenticate @var{commit} @var{signer}\n" msgstr "guix git authenticate @var{Commit} @var{Unterzeichner}\n" #. type: Plain text #: guix-git/doc/guix.texi:5777 msgid "where @var{commit} and @var{signer} are your channel introduction. @xref{Invoking guix git authenticate}, for details." msgstr "Dabei sind @var{Commit} und @var{Unterzeichner} Ihre Kanaleinführung. Siehe @ref{Invoking guix git authenticate} für die Details." #. type: Plain text #: guix-git/doc/guix.texi:5784 msgid "Publishing a signed channel requires discipline: any mistake, such as an unsigned commit or a commit signed by an unauthorized key, will prevent users from pulling from your channel---well, that's the whole point of authentication! Pay attention to merges in particular: merge commits are considered authentic if and only if they are signed by a key present in the @file{.guix-authorizations} file of @emph{both} branches." msgstr "Um einen signierten Kanal anzubieten, ist Disziplin vonnöten: Jeder Fehler, wie z.B.@: ein unsignierter Commit oder ein mit einem unautorisierten Schlüssel signierter Commit, verhindert, das Nutzer den Kanal benutzen können@tie{}– naja, das ist ja auch der Zweck der Authentifizierung! Passen Sie besonders bei Merges auf: Merge-Commits werden dann und nur dann als authentisch angesehen, wenn sie mit einem Schlüssel aus der @file{.guix-authorizations}-Datei @emph{beider} Branches signiert wurden." #. type: cindex #: guix-git/doc/guix.texi:5788 #, no-wrap msgid "primary URL, channels" msgstr "primäre URL, bei Kanälen" #. type: Plain text #: guix-git/doc/guix.texi:5791 msgid "Channel authors can indicate the primary URL of their channel's Git repository in the @file{.guix-channel} file, like so:" msgstr "Kanalautoren können die primäre URL des Git-Repositorys ihres Kanals in der Datei @file{.guix-channel} hinterlegen, etwa so:" #. type: lisp #: guix-git/doc/guix.texi:5796 #, no-wrap msgid "" "(channel\n" " (version 0)\n" " (url \"https://example.org/guix.git\"))\n" msgstr "" "(channel\n" " (version 0)\n" " (url \"https://example.org/guix.git\"))\n" #. type: Plain text #: guix-git/doc/guix.texi:5803 msgid "This allows @command{guix pull} to determine whether it is pulling code from a mirror of the channel; when that is the case, it warns the user that the mirror might be stale and displays the primary URL@. That way, users cannot be tricked into fetching code from a stale mirror that does not receive security updates." msgstr "Dadurch kann der Befehl @command{guix pull} feststellen, ob er Code von einem Spiegelserver des Kanals lädt. In diesem Fall wird der Benutzer davor gewarnt, dass Spiegelserver veraltete Versionen anbieten könnten, und die eigentliche, primäre URL anzeigen. Auf diese Weise wird verhindert, dass Nutzer manipuliert werden, Code von einem veralteten Spiegelserver zu benutzen, der keine Sicherheitsaktualisierungen bekommt." #. type: Plain text #: guix-git/doc/guix.texi:5807 msgid "This feature only makes sense for authenticated repositories, such as the official @code{guix} channel, for which @command{guix pull} ensures the code it fetches is authentic." msgstr "Diese Funktionalität ergibt nur bei authentifizierbaren Repositorys Sinn, wie zum Beispiel dem offiziellen @code{guix}-Kanal, für den @command{guix pull} sicherstellt, dass geladener Code authentisch ist." #. type: cindex #: guix-git/doc/guix.texi:5811 #, no-wrap msgid "news, for channels" msgstr "Neuigkeiten, bei Kanälen" #. type: Plain text #: guix-git/doc/guix.texi:5815 msgid "Channel authors may occasionally want to communicate to their users information about important changes in the channel. You'd send them all an email, but that's not convenient." msgstr "Kanalautoren möchten ihren Nutzern vielleicht manchmal Informationen über wichtige Änderungen im Kanal zukommen lassen. Man könnte allen eine E-Mail schicken, aber das wäre unbequem." #. type: Plain text #: guix-git/doc/guix.texi:5820 msgid "Instead, channels can provide a @dfn{news file}; when the channel users run @command{guix pull}, that news file is automatically read and @command{guix pull --news} can display the announcements that correspond to the new commits that have been pulled, if any." msgstr "Stattdessen können Kanäle eine Datei mit Neuigkeiten („News File“) anbieten: Wenn die Kanalnutzer @command{guix pull} ausführen, wird diese Datei automatisch ausgelesen. Mit @command{guix pull --news} kann man sich die Ankündigungen anzeigen lassen, die den neu gepullten Commits entsprechen, falls es welche gibt." #. type: Plain text #: guix-git/doc/guix.texi:5823 msgid "To do that, channel authors must first declare the name of the news file in their @file{.guix-channel} file:" msgstr "Dazu müssen Kanalautoren zunächst den Namen der Datei mit Neuigkeiten in der Datei @file{.guix-channel} nennen:" #. type: lisp #: guix-git/doc/guix.texi:5828 #, no-wrap msgid "" "(channel\n" " (version 0)\n" " (news-file \"etc/news.txt\"))\n" msgstr "" "(channel\n" " (version 0)\n" " (news-file \"etc/news.txt\"))\n" #. type: Plain text #: guix-git/doc/guix.texi:5832 msgid "The news file itself, @file{etc/news.txt} in this example, must look something like this:" msgstr "Die Datei mit Neuigkeiten, @file{etc/news.txt} in diesem Beispiel, muss selbst etwa so aussehen:" #. type: lisp #: guix-git/doc/guix.texi:5845 #, no-wrap msgid "" "(channel-news\n" " (version 0)\n" " (entry (tag \"the-bug-fix\")\n" " (title (en \"Fixed terrible bug\")\n" " (fr \"Oh la la\"))\n" " (body (en \"@@emph@{Good news@}! It's fixed!\")\n" " (eo \"Certe ĝi pli bone funkcias nun!\")))\n" " (entry (commit \"bdcabe815cd28144a2d2b4bc3c5057b051fa9906\")\n" " (title (en \"Added a great package\")\n" " (ca \"Què vol dir guix?\"))\n" " (body (en \"Don't miss the @@code@{hello@} package!\"))))\n" msgstr "" "(channel-news\n" " (version 0)\n" " (entry (tag \"the-bug-fix\")\n" " (title (en \"Fixed terrible bug\")\n" " (fr \"Oh la la\"))\n" " (body (en \"@@emph@{Good news@}! It's fixed!\")\n" " (eo \"Certe ĝi pli bone funkcias nun!\")))\n" " (entry (commit \"bdcabe815cd28144a2d2b4bc3c5057b051fa9906\")\n" " (title (en \"Added a great package\")\n" " (ca \"Què vol dir guix?\"))\n" " (body (en \"Don't miss the @@code@{hello@} package!\"))))\n" #. type: Plain text #: guix-git/doc/guix.texi:5852 msgid "While the news file is using the Scheme syntax, avoid naming it with a @file{.scm} extension or else it will get picked up when building the channel and yield an error since it is not a valid module. Alternatively, you can move the channel module to a subdirectory and store the news file in another directory." msgstr "Obwohl die Datei für Neuigkeiten Scheme-Syntax verwendet, sollten Sie ihr keinen Dateinamen mit der Endung @file{.scm} geben, sonst wird sie bei der Erstellung des Kanals miteinbezogen und dann zu einem Fehler führen, weil es sich bei ihr um kein gültiges Modul handelt. Alternativ können Sie auch das Kanalmodul in einem Unterverzeichnis platzieren und die Datei für Neuigkeiten in einem Verzeichnis außerhalb platzieren." #. type: Plain text #: guix-git/doc/guix.texi:5857 msgid "The file consists of a list of @dfn{news entries}. Each entry is associated with a commit or tag: it describes changes made in this commit, possibly in preceding commits as well. Users see entries only the first time they obtain the commit the entry refers to." msgstr "Die Datei setzt sich aus einer Liste von Einträgen mit Neuigkeiten („News Entries“) zusammen. Jeder Eintrag ist mit einem Commit oder einem Git-Tag assoziiert und beschreibt die Änderungen, die in diesem oder auch vorangehenden Commits gemacht wurden. Benutzer sehen die Einträge nur beim erstmaligen Übernehmen des Commits, auf den sich der jeweilige Eintrag bezieht." #. type: Plain text #: guix-git/doc/guix.texi:5863 msgid "The @code{title} field should be a one-line summary while @code{body} can be arbitrarily long, and both can contain Texinfo markup (@pxref{Overview,,, texinfo, GNU Texinfo}). Both the title and body are a list of language tag/message tuples, which allows @command{guix pull} to display news in the language that corresponds to the user's locale." msgstr "Das @code{title}-Feld sollte eine einzeilige Zusammenfassung sein, während @code{body} beliebig lang sein kann. Beide können Texinfo-Auszeichnungen enthalten (siehe @ref{Overview,,, texinfo, GNU Texinfo}). Sowohl @code{title} als auch @code{body} sind dabei eine Liste aus Tupeln mit jeweils Sprachcode und Mitteilung, wodurch @command{guix pull} Neuigkeiten in derjenigen Sprache anzeigen kann, die der vom Nutzer eingestellten Locale entspricht." #. type: Plain text #: guix-git/doc/guix.texi:5869 msgid "If you want to translate news using a gettext-based workflow, you can extract translatable strings with @command{xgettext} (@pxref{xgettext Invocation,,, gettext, GNU Gettext Utilities}). For example, assuming you write news entries in English first, the command below creates a PO file containing the strings to translate:" msgstr "Wenn Sie Neuigkeiten mit einem gettext-basierten Arbeitsablauf übersetzen möchten, können Sie übersetzbare Zeichenketten mit @command{xgettext} extrahieren (siehe @ref{xgettext Invocation,,, gettext, GNU Gettext Utilities}). Unter der Annahme, dass Sie Einträge zu Neuigkeiten zunächst auf Englisch verfassen, können Sie mit diesem Befehl eine PO-Datei erzeugen, die die zu übersetzenden Zeichenketten enthält:" #. type: example #: guix-git/doc/guix.texi:5872 #, no-wrap msgid "xgettext -o news.po -l scheme -ken etc/news.txt\n" msgstr "xgettext -o news.po -l scheme -ken etc/news.txt\n" #. type: Plain text #: guix-git/doc/guix.texi:5876 msgid "To sum up, yes, you could use your channel as a blog. But beware, this is @emph{not quite} what your users might expect." msgstr "Kurz gesagt, ja, Sie können Ihren Kanal sogar als Blog missbrauchen. Aber das ist @emph{nicht ganz}, was Ihre Nutzer erwarten dürften." #. type: cindex #: guix-git/doc/guix.texi:5881 #, no-wrap msgid "software development" msgstr "Softwareentwicklung" #. type: Plain text #: guix-git/doc/guix.texi:5885 msgid "If you are a software developer, Guix provides tools that you should find helpful---independently of the language you're developing in. This is what this chapter is about." msgstr "Wenn Sie ein Software-Entwickler sind, gibt Ihnen Guix Werkzeuge an die Hand, die Sie für hilfreich erachten dürften@tie{}– ganz unabhängig davon, in welcher Sprache Sie entwickeln. Darum soll es in diesem Kapitel gehen." #. type: Plain text #: guix-git/doc/guix.texi:5891 msgid "The @command{guix shell} command provides a convenient way to set up one-off software environments, be it for development purposes or to run a command without installing it in your profile. The @command{guix pack} command allows you to create @dfn{application bundles} that can be easily distributed to users who do not run Guix." msgstr "Der Befehl @command{guix shell} stellt eine bequeme Möglichkeit dar, Umgebungen für einmalige Nutzungen zu erschaffen, etwa zur Entwicklung an einem Programm oder um einen Befehl auszuführen, den Sie nicht in Ihr Profil installieren möchten. Der Befehl @command{guix pack} macht es Ihnen möglich, @dfn{Anwendungsbündel} zu erstellen, die leicht an Nutzer verteilt werden können, die kein Guix benutzen." #. type: section #: guix-git/doc/guix.texi:5901 #, no-wrap msgid "Invoking @command{guix shell}" msgstr "@command{guix shell} aufrufen" #. type: cindex #: guix-git/doc/guix.texi:5903 #, no-wrap msgid "reproducible build environments" msgstr "reproduzierbare Erstellungsumgebungen" #. type: cindex #: guix-git/doc/guix.texi:5904 #, no-wrap msgid "development environments" msgstr "Entwicklungsumgebungen" #. type: command{#1} #: guix-git/doc/guix.texi:5905 guix-git/doc/guix.texi:6445 #, no-wrap msgid "guix environment" msgstr "guix environment" #. type: command{#1} #: guix-git/doc/guix.texi:5906 #, no-wrap msgid "guix shell" msgstr "guix shell" #. type: cindex #: guix-git/doc/guix.texi:5907 #, no-wrap msgid "environment, package build environment" msgstr "Umgebung, Paketerstellungsumgebung" #. type: Plain text #: guix-git/doc/guix.texi:5912 msgid "The purpose of @command{guix shell} is to make it easy to create one-off software environments, without changing one's profile. It is typically used to create development environments; it is also a convenient way to run applications without ``polluting'' your profile." msgstr "Der Zweck von @command{guix shell} ist, dass Sie Software-Umgebungen für außergewöhnliche Fälle einfach aufsetzen können, ohne dass Sie Ihr Profil ändern müssen. Normalerweise braucht man so etwas für Entwicklungsumgebungen, aber auch wenn Sie Anwendungen ausführen wollen, ohne Ihr Profil mit ihnen zu verunreinigen." #. type: quotation #: guix-git/doc/guix.texi:5918 msgid "The @command{guix shell} command was recently introduced to supersede @command{guix environment} (@pxref{Invoking guix environment}). If you are familiar with @command{guix environment}, you will notice that it is similar but also---we hope!---more convenient." msgstr "Der Befehl @command{guix shell} wurde erst kürzlich eingeführt als Neuauflage von @command{guix environment} (siehe @ref{Invoking guix environment}). Wenn Sie mit @command{guix environment} vertraut sind, werden Sie die Ähnlichkeit bemerken, aber wir hoffen, der neue Befehl erweist sich als praktischer." #. type: example #: guix-git/doc/guix.texi:5924 #, no-wrap msgid "guix shell [@var{options}] [@var{package}@dots{}]\n" msgstr "guix shell [@var{Optionen}] [@var{Pakete}…]\n" #. type: Plain text #: guix-git/doc/guix.texi:5929 msgid "The following example creates an environment containing Python and NumPy, building or downloading any missing package, and runs the @command{python3} command in that environment:" msgstr "Folgendes Beispiel zeigt, wie Sie eine Umgebung erzeugen lassen, die Python und NumPy enthält,@tie{}– jedes dazu fehlende Paket wird erstellt oder heruntergeladen@tie{}–, und in der Umgebung dann @command{python3} ausführen." #. type: example #: guix-git/doc/guix.texi:5932 #, no-wrap msgid "guix shell python python-numpy -- python3\n" msgstr "guix shell python python-numpy -- python3\n" #. type: Plain text #: guix-git/doc/guix.texi:5941 msgid "Note that it is necessary to include the main @code{python} package in this command even if it is already installed into your environment. This is so that the shell environment knows to set @env{PYTHONPATH} and other related variables. The shell environment cannot check the previously installed environment, because then it would be non-deterministic. This is true for most libraries: their corresponding language package should be included in the shell invocation." msgstr "Wir betonen, dass Sie auch das zu Grunde liegende @code{python}-Paket in dem Befehl angeben müssen, sogar wenn Python schon in Ihre Umgebung installiert ist. Das bewirkt, dass in der Shell-Umgebung @env{PYTHONPATH} und andere zugehörige Variable gesetzt werden können. Die Shell-Umgebung kann dafür nicht darauf zurückgreifen, was vorher in der Umgebung installiert war, weil es nichtdeterministisch wäre. Das gilt für die meisten Bibliotheken: Auch das zu deren Programmiersprache gehörige Paket muss im Shell-Aufruf angegeben werden." #. type: cindex #: guix-git/doc/guix.texi:5943 #, no-wrap msgid "shebang, for @command{guix shell}" msgstr "Shebang, bei @command{guix shell}" #. type: quotation #: guix-git/doc/guix.texi:5947 msgid "@command{guix shell} can be also be used as a script interpreter, also known as @dfn{shebang}. Here is an example self-contained Python script making use of this feature:" msgstr "@command{guix shell} kann auch als Skript-Interpretierer dienen; man spricht auch von einem @dfn{Shebang}. Hier ist ein Beispiel, wie es in einem eigenständigen Python-Skript benutzt werden kann:" #. type: example #: guix-git/doc/guix.texi:5952 #, no-wrap msgid "" "#!/usr/bin/env -S guix shell python python-numpy -- python3\n" "import numpy\n" "print(\"This is numpy\", numpy.version.version)\n" msgstr "" "#!/usr/bin/env -S guix shell python python-numpy -- python3\n" "import numpy\n" "print(\"Hier spricht numpy\", numpy.version.version)\n" #. type: quotation #: guix-git/doc/guix.texi:5956 msgid "You may pass any @command{guix shell} option, but there's one caveat: the Linux kernel has a limit of 127 bytes on shebang length." msgstr "Sie können beliebige Befehlszeilenoptionen auf diese Weise an @command{guix shell} übergeben, doch beachten Sie: Der Linux-Kernel beschränkt die Länge eines Shebangs auf maximal 127 Bytes." #. type: Plain text #: guix-git/doc/guix.texi:5961 msgid "Development environments can be created as in the example below, which spawns an interactive shell containing all the dependencies and environment variables needed to work on Inkscape:" msgstr "Entwicklungsumgebungen erzeugen Sie wie im folgenden Beispiel, wo eine interaktive Shell gestartet wird, in der alle Abhängigkeiten und Variable vorliegen, die zur Arbeit an Inkscape nötig sind:" #. type: example #: guix-git/doc/guix.texi:5964 #, no-wrap msgid "guix shell --development inkscape\n" msgstr "guix shell --development inkscape\n" #. type: Plain text #: guix-git/doc/guix.texi:5970 msgid "Exiting the shell places the user back in the original environment before @command{guix shell} was invoked. The next garbage collection (@pxref{Invoking guix gc}) may clean up packages that were installed in the environment and that are no longer used outside of it." msgstr "Sobald er die Shell beendet, findet sich der Benutzer in der ursprünglichen Umgebung wieder, in der er sich vor dem Aufruf von @command{guix shell} befand. Beim nächsten Durchlauf des Müllsammlers (siehe @ref{Invoking guix gc}) dürfen Pakete von der Platte gelöscht werden, die innerhalb der Umgebung installiert worden sind und außerhalb nicht länger benutzt werden." #. type: Plain text #: guix-git/doc/guix.texi:5974 msgid "As an added convenience, @command{guix shell} will try to do what you mean when it is invoked interactively without any other arguments as in:" msgstr "Um die Nutzung zu vereinfachen, wird @command{guix shell}, wenn Sie es interaktiv ohne Befehlszeilenargumente aufrufen, das bewirken, was es dann vermutlich soll. Also:" #. type: example #: guix-git/doc/guix.texi:5977 #, no-wrap msgid "guix shell\n" msgstr "guix shell\n" #. type: Plain text #: guix-git/doc/guix.texi:5989 msgid "If it finds a @file{manifest.scm} in the current working directory or any of its parents, it uses this manifest as though it was given via @code{--manifest}. Likewise, if it finds a @file{guix.scm} in the same directories, it uses it to build a development profile as though both @code{--development} and @code{--file} were present. In either case, the file will only be loaded if the directory it resides in is listed in @file{~/.config/guix/shell-authorized-directories}. This provides an easy way to define, share, and enter development environments." msgstr "Wenn im aktuellen Arbeitsverzeichnis oder irgendeinem übergeordneten Verzeichnis eine Datei @file{manifest.scm} vorkommt, wird sie so behandelt, als hätten Sie sie mit @code{--manifest} übergeben. Ebenso wird mit einer Datei @file{guix.scm}, wenn sie in selbigen Verzeichnissen enthalten ist, eine Entwicklungsumgebung hergestellt, als wären @code{--development} und @code{--file} beide angegeben worden. So oder so wird die jeweilige Datei nur dann geladen, wenn das Verzeichnis, in dem sie steckt, in @file{~/.config/guix/shell-authorized-directories} aufgeführt ist. Damit lassen sich Entwicklungsumgebungen leicht definieren, teilen und betreten." #. type: Plain text #: guix-git/doc/guix.texi:6000 msgid "By default, the shell session or command runs in an @emph{augmented} environment, where the new packages are added to search path environment variables such as @code{PATH}. You can, instead, choose to create an @emph{isolated} environment containing nothing but the packages you asked for. Passing the @option{--pure} option clears environment variable definitions found in the parent environment@footnote{Be sure to use the @option{--check} option the first time you use @command{guix shell} interactively to make sure the shell does not undo the effect of @option{--pure}.}; passing @option{--container} goes one step further by spawning a @dfn{container} isolated from the rest of the system:" msgstr "Vorgegeben ist, dass für die Shell-Sitzung bzw.@: den Befehl eine @emph{ergänzte} Umgebung aufgebaut wird, in der die neuen Pakete zu Suchpfad-Umgebungsvariablen wie @code{PATH} hinzugefügt werden. Sie können stattdessen auch beschließen, eine @emph{isolierte} Umgebung anzufordern mit nichts als den Paketen, die Sie angegeben haben. Wenn Sie die Befehlszeilenoption @option{--pure} angeben, werden alle Definitionen von Umgebungsvariablen aus der Elternumgebung gelöscht@footnote{Denken Sie daran, wenn Sie das erste Mal @command{guix shell} interaktiv benutzen, mit der Befehlszeilenoption @option{--check} zu prüfen, dass die Shell-Einstellungen die Wirkung von @option{--pure} nicht wieder zurücknehmen.}. Wenn Sie @option{--container} angeben, wird die Shell darüber hinaus in einem @dfn{Container} vom restlichen System isoliert:" #. type: example #: guix-git/doc/guix.texi:6003 #, no-wrap msgid "guix shell --container emacs gcc-toolchain\n" msgstr "guix shell --container emacs gcc-toolchain\n" #. type: Plain text #: guix-git/doc/guix.texi:6011 msgid "The command above spawns an interactive shell in a container where nothing but @code{emacs}, @code{gcc-toolchain}, and their dependencies is available. The container lacks network access and shares no files other than the current working directory with the surrounding environment. This is useful to prevent access to system-wide resources such as @file{/usr/bin} on foreign distros." msgstr "Dieser Befehl startet eine interaktive Shell in einem Container, der den Zugriff auf alles außer @code{emacs}, @code{gcc-toolchain} und deren Abhängigkeiten unterbindet. Im Container haben Sie keinen Netzwerkzugriff und es werden außer dem aktuellen Arbeitsverzeichnis keine Dateien mit der äußeren Umgebung geteilt. Das dient dazu, den Zugriff auf systemweite Ressourcen zu verhindern, wie @file{/usr/bin} auf Fremddistributionen." #. type: Plain text #: guix-git/doc/guix.texi:6016 msgid "This @option{--container} option can also prove useful if you wish to run a security-sensitive application, such as a web browser, in an isolated environment. For example, the command below launches Ungoogled-Chromium in an isolated environment, which:" msgstr "Diese @option{--container}-Befehlszeilenoption kann sich aber auch als nützlich erweisen, um Anwendungen mit hohem Sicherheitsrisiko wie z.B.@: Webbrowser in eine isolierte Umgebung eingesperrt auszuführen. Folgender Befehl startet zum Beispiel Ungoogled-Chromium in einer isolierten Umgebung, für die gilt:" #. type: item #: guix-git/doc/guix.texi:6017 #, no-wrap msgid "shares network access with the host" msgstr "Netzwerkzugriff des Wirtssystems wird geteilt" #. type: item #: guix-git/doc/guix.texi:6018 #, no-wrap msgid "inherits host's environment variables @code{DISPLAY} and @code{XAUTHORITY}" msgstr "Umgebungsvariable @code{DISPLAY} und @code{XAUTHORITY} bleiben erhalten" #. type: item #: guix-git/doc/guix.texi:6019 #, no-wrap msgid "has access to host's authentication records from the @code{XAUTHORITY}" msgstr "hat Zugriff auf Wirts-Autorisierungsinformationen für @code{XAUTHORITY}" #. type: code{#1} #: guix-git/doc/guix.texi:6021 guix-git/doc/guix.texi:11213 #: guix-git/doc/guix.texi:31807 #, no-wrap msgid "file" msgstr "file" #. type: item #: guix-git/doc/guix.texi:6021 #, no-wrap msgid "has no information about host's current directory" msgstr "das aktuelle Arbeitsverzeichnis des Wirts ist unbekannt" #. type: example #: guix-git/doc/guix.texi:6028 #, no-wrap msgid "" "guix shell --container --network --no-cwd ungoogled-chromium \\\n" " --preserve='^XAUTHORITY$' --expose=\"$@{XAUTHORITY@}\" \\\n" " --preserve='^DISPLAY$' -- chromium\n" msgstr "" "guix shell --container --network --no-cwd ungoogled-chromium \\\n" " --preserve='^XAUTHORITY$' --expose=\"$@{XAUTHORITY@}\" \\\n" " --preserve='^DISPLAY$' -- chromium\n" #. type: vindex #: guix-git/doc/guix.texi:6030 guix-git/doc/guix.texi:6496 #, no-wrap msgid "GUIX_ENVIRONMENT" msgstr "GUIX_ENVIRONMENT" #. type: Plain text #: guix-git/doc/guix.texi:6036 msgid "@command{guix shell} defines the @env{GUIX_ENVIRONMENT} variable in the shell it spawns; its value is the file name of the profile of this environment. This allows users to, say, define a specific prompt for development environments in their @file{.bashrc} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}):" msgstr "@command{guix shell} definiert die Variable @env{GUIX_ENVIRONMENT} in der neu erzeugten Shell. Ihr Wert ist der Dateiname des Profils dieser neuen Umgebung. Das könnten Nutzer verwenden, um zum Beispiel eine besondere Prompt als Eingabeaufforderung für Entwicklungsumgebungen in ihrer @file{.bashrc} festzulegen (siehe @ref{Bash Startup Files,,, bash, Referenzhandbuch von GNU Bash}):" #. type: example #: guix-git/doc/guix.texi:6042 guix-git/doc/guix.texi:6508 #, no-wrap msgid "" "if [ -n \"$GUIX_ENVIRONMENT\" ]\n" "then\n" " export PS1=\"\\u@@\\h \\w [dev]\\$ \"\n" "fi\n" msgstr "" "if [ -n \"$GUIX_ENVIRONMENT\" ]\n" "then\n" " export PS1=\"\\u@@\\h \\w [dev]\\$ \"\n" "fi\n" #. type: Plain text #: guix-git/doc/guix.texi:6046 guix-git/doc/guix.texi:6512 msgid "...@: or to browse the profile:" msgstr "…@: oder um ihr Profil durchzusehen:" #. type: example #: guix-git/doc/guix.texi:6049 guix-git/doc/guix.texi:6515 #, no-wrap msgid "$ ls \"$GUIX_ENVIRONMENT/bin\"\n" msgstr "$ ls \"$GUIX_ENVIRONMENT/bin\"\n" #. type: Plain text #: guix-git/doc/guix.texi:6052 guix-git/doc/guix.texi:6591 msgid "The available options are summarized below." msgstr "Im Folgenden werden die verfügbaren Befehlszeilenoptionen zusammengefasst." #. type: item #: guix-git/doc/guix.texi:6054 guix-git/doc/guix.texi:6593 #: guix-git/doc/guix.texi:13630 #, no-wrap msgid "--check" msgstr "--check" #. type: table #: guix-git/doc/guix.texi:6059 msgid "Set up the environment and check whether the shell would clobber environment variables. It's a good idea to use this option the first time you run @command{guix shell} for an interactive session to make sure your setup is correct." msgstr "Hiermit wird die Umgebung angelegt und gemeldet, ob die Shell Umgebungsvariable überschreiben würde. Es ist eine gute Idee, diese Befehlszeilenoption anzugeben, wenn Sie zum ersten Mal @command{guix shell} zum Starten einer interaktiven Sitzung einsetzen, um sicherzugehen, dass Ihre Shell richtig eingestellt ist." #. type: table #: guix-git/doc/guix.texi:6063 msgid "For example, if the shell modifies the @env{PATH} environment variable, report it since you would get a different environment than what you asked for." msgstr "Wenn die Shell zum Beispiel den Wert der Umgebungsvariablen @env{PATH} ändert, meldet dies @option{--check}, weil Sie dadurch nicht die Umgebung bekämen, die Sie angefordert haben." #. type: table #: guix-git/doc/guix.texi:6071 msgid "Such problems usually indicate that the shell startup files are unexpectedly modifying those environment variables. For example, if you are using Bash, make sure that environment variables are set or modified in @file{~/.bash_profile} and @emph{not} in @file{~/.bashrc}---the former is sourced only by log-in shells. @xref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}, for details on Bash start-up files." msgstr "In der Regel sind solche Probleme ein Zeichen dafür, dass Dateien, die beim Start der Shell geladen werden, die Umgebungsvariablen unerwartet verändern. Wenn Sie zum Beispiel Bash benutzen, vergewissern Sie sich, dass Umgebungsvariable in @file{~/.bash_profile} festgelegt oder geändert werden, @emph{nicht} in @file{~/.bashrc}@tie{}– erstere Datei wird nur von Login-Shells mit „source“ geladen. Siehe @ref{Bash Startup Files,,, bash, Referenzhandbuch zu GNU Bash} für Details über beim Starten von Bash gelesene Dateien." #. type: anchor{#1} #: guix-git/doc/guix.texi:6073 msgid "shell-development-option" msgstr "shell-development-option" #. type: item #: guix-git/doc/guix.texi:6073 #, no-wrap msgid "--development" msgstr "--development" #. type: table #: guix-git/doc/guix.texi:6080 msgid "Cause @command{guix shell} to include in the environment the dependencies of the following package rather than the package itself. This can be combined with other packages. For instance, the command below starts an interactive shell containing the build-time dependencies of GNU@tie{}Guile, plus Autoconf, Automake, and Libtool:" msgstr "Lässt @command{guix shell} die Abhängigkeiten des danach angegebenen Pakets anstelle des Pakets in die Umgebung aufnehmen. Es kann mit anderen Paketen kombiniert werden. Zum Beispiel wird mit folgendem Befehl eine interaktive Shell gestartet, die die zum Erstellen nötigen Abhängigkeiten von GNU@tie{}Guile sowie Autoconf, Automake und Libtool enthält:" #. type: example #: guix-git/doc/guix.texi:6083 #, no-wrap msgid "guix shell -D guile autoconf automake libtool\n" msgstr "guix shell -D guile autoconf automake libtool\n" #. type: item #: guix-git/doc/guix.texi:6085 guix-git/doc/guix.texi:6614 #: guix-git/doc/guix.texi:7205 guix-git/doc/guix.texi:13497 #: guix-git/doc/guix.texi:14783 guix-git/doc/guix.texi:15283 #: guix-git/doc/guix.texi:15481 guix-git/doc/guix.texi:15891 #: guix-git/doc/guix.texi:16610 guix-git/doc/guix.texi:43025 #: guix-git/doc/guix.texi:47502 #, no-wrap msgid "--expression=@var{expr}" msgstr "--expression=@var{Ausdruck}" #. type: itemx #: guix-git/doc/guix.texi:6086 guix-git/doc/guix.texi:6615 #: guix-git/doc/guix.texi:7206 guix-git/doc/guix.texi:13498 #: guix-git/doc/guix.texi:14784 guix-git/doc/guix.texi:15284 #: guix-git/doc/guix.texi:15482 guix-git/doc/guix.texi:15892 #: guix-git/doc/guix.texi:16611 guix-git/doc/guix.texi:43026 #: guix-git/doc/guix.texi:47503 #, no-wrap msgid "-e @var{expr}" msgstr "-e @var{Ausdruck}" #. type: table #: guix-git/doc/guix.texi:6089 guix-git/doc/guix.texi:6618 msgid "Create an environment for the package or list of packages that @var{expr} evaluates to." msgstr "Eine Umgebung für das Paket oder die Liste von Paketen erzeugen, zu der der @var{Ausdruck} ausgewertet wird." #. type: table #: guix-git/doc/guix.texi:6091 guix-git/doc/guix.texi:6620 #: guix-git/doc/guix.texi:15288 msgid "For example, running:" msgstr "Zum Beispiel startet dies:" #. type: example #: guix-git/doc/guix.texi:6094 #, no-wrap msgid "guix shell -D -e '(@@ (gnu packages maths) petsc-openmpi)'\n" msgstr "guix shell -D -e '(@@ (gnu packages maths) petsc-openmpi)'\n" #. type: table #: guix-git/doc/guix.texi:6098 guix-git/doc/guix.texi:6627 msgid "starts a shell with the environment for this specific variant of the PETSc package." msgstr "eine Shell mit der Umgebung für eben diese bestimmte Variante des Pakets PETSc." #. type: table #: guix-git/doc/guix.texi:6100 guix-git/doc/guix.texi:6629 msgid "Running:" msgstr "Wenn man dies ausführt:" #. type: example #: guix-git/doc/guix.texi:6103 #, no-wrap msgid "guix shell -e '(@@ (gnu) %base-packages)'\n" msgstr "guix shell -e '(@@ (gnu) %base-packages)'\n" #. type: table #: guix-git/doc/guix.texi:6106 guix-git/doc/guix.texi:6635 msgid "starts a shell with all the base system packages available." msgstr "bekommt man eine Shell, in der alle Basis-Pakete verfügbar sind." #. type: table #: guix-git/doc/guix.texi:6109 guix-git/doc/guix.texi:6638 msgid "The above commands only use the default output of the given packages. To select other outputs, two element tuples can be specified:" msgstr "Die obigen Befehle benutzen nur die Standard-Ausgabe des jeweiligen Pakets. Um andere Ausgaben auszuwählen, können zweielementige Tupel spezifiziert werden:" #. type: example #: guix-git/doc/guix.texi:6112 #, no-wrap msgid "guix shell -e '(list (@@ (gnu packages bash) bash) \"include\")'\n" msgstr "guix shell -e '(list (@@ (gnu packages bash) bash) \"include\")'\n" #. type: table #: guix-git/doc/guix.texi:6117 msgid "@xref{package-development-manifest, @code{package->development-manifest}}, for information on how to write a manifest for the development environment of a package." msgstr "Siehe @ref{package-development-manifest, @code{package->development-manifest}}, für Informationen, wie Sie die Entwicklungsumgebung für ein Paket in einem Manifest wiedergeben." #. type: item #: guix-git/doc/guix.texi:6118 guix-git/doc/guix.texi:13471 #, no-wrap msgid "--file=@var{file}" msgstr "--file=@var{Datei}" #. type: table #: guix-git/doc/guix.texi:6122 msgid "Create an environment containing the package or list of packages that the code within @var{file} evaluates to." msgstr "Eine Umgebung erstellen mit dem Paket oder der Liste von Paketen, zu der der Code in der @var{Datei} ausgewertet wird." #. type: lisp #: guix-git/doc/guix.texi:6128 guix-git/doc/guix.texi:6653 #, no-wrap msgid "@verbatiminclude environment-gdb.scm\n" msgstr "@verbatiminclude environment-gdb.scm\n" #. type: table #: guix-git/doc/guix.texi:6132 msgid "With the file above, you can enter a development environment for GDB by running:" msgstr "Mit so einer Datei können Sie eine Entwicklungsumgebung für GDB betreten, indem Sie dies ausführen:" #. type: example #: guix-git/doc/guix.texi:6135 #, no-wrap msgid "guix shell -D -f gdb-devel.scm\n" msgstr "guix shell -D -f gdb-devel.scm\n" #. type: anchor{#1} #: guix-git/doc/guix.texi:6138 msgid "shell-manifest" msgstr "shell-manifest" #. type: table #: guix-git/doc/guix.texi:6143 guix-git/doc/guix.texi:6660 msgid "Create an environment for the packages contained in the manifest object returned by the Scheme code in @var{file}. This option can be repeated several times, in which case the manifests are concatenated." msgstr "Eine Umgebung für die Pakete erzeugen, die im Manifest-Objekt enthalten sind, das vom Scheme-Code in der @var{Datei} geliefert wird. Wenn diese Befehlszeilenoption mehrmals wiederholt angegeben wird, werden die Manifeste aneinandergehängt." #. type: table #: guix-git/doc/guix.texi:6147 guix-git/doc/guix.texi:6664 msgid "This is similar to the same-named option in @command{guix package} (@pxref{profile-manifest, @option{--manifest}}) and uses the same manifest files." msgstr "Dies verhält sich ähnlich wie die gleichnamige Option des Befehls @command{guix package} (siehe @ref{profile-manifest, @option{--manifest}}) und benutzt auch dieselben Manifestdateien." #. type: table #: guix-git/doc/guix.texi:6150 msgid "@xref{Writing Manifests}, for information on how to write a manifest. See @option{--export-manifest} below on how to obtain a first manifest." msgstr "Siehe @ref{Writing Manifests} für Informationen dazu, wie man ein Manifest schreibt. Siehe @option{--export-manifest} im folgenden Text, um zu erfahren, wie Sie ein erstes Manifest erhalten." #. type: anchor{#1} #: guix-git/doc/guix.texi:6153 msgid "shell-export-manifest" msgstr "shell-export-manifest" #. type: table #: guix-git/doc/guix.texi:6156 msgid "Write to standard output a manifest suitable for @option{--manifest} corresponding to given command-line options." msgstr "Auf die Standardausgabe ein Manifest ausgeben, das mit @option{--manifest} genutzt werden kann und den angegebenen Befehlszeilenoptionen entspricht." #. type: table #: guix-git/doc/guix.texi:6160 msgid "This is a way to ``convert'' command-line arguments into a manifest. For example, imagine you are tired of typing long lines and would like to get a manifest equivalent to this command line:" msgstr "Auf diese Weise können Sie die Argumente der Befehlszeile in eine Manifestdatei verwandeln. Nehmen wir an, Sie wären es leid, lange Befehlszeilen abzutippen, und hätten stattdessen lieber ein gleichbedeutendes Manifest:" #. type: example #: guix-git/doc/guix.texi:6163 #, no-wrap msgid "guix shell -D guile git emacs emacs-geiser emacs-geiser-guile\n" msgstr "guix shell -D guile git emacs emacs-geiser emacs-geiser-guile\n" #. type: table #: guix-git/doc/guix.texi:6166 msgid "Just add @option{--export-manifest} to the command line above:" msgstr "Fügen Sie einfach @option{--export-manifest} zu der obigen Befehlszeile hinzu:" #. type: example #: guix-git/doc/guix.texi:6170 #, no-wrap msgid "" "guix shell --export-manifest \\\n" " -D guile git emacs emacs-geiser emacs-geiser-guile\n" msgstr "" "guix shell --export-manifest \\\n" " -D guile git emacs emacs-geiser emacs-geiser-guile\n" #. type: table #: guix-git/doc/guix.texi:6174 msgid "... and you get a manifest along these lines:" msgstr "… und schon sehen Sie ein Manifest, was so ähnlich aussieht:" #. type: lisp #: guix-git/doc/guix.texi:6184 #, no-wrap msgid "" "(concatenate-manifests\n" " (list (specifications->manifest\n" " (list \"git\"\n" " \"emacs\"\n" " \"emacs-geiser\"\n" " \"emacs-geiser-guile\"))\n" " (package->development-manifest\n" " (specification->package \"guile\"))))\n" msgstr "" "(concatenate-manifests\n" " (list (specifications->manifest\n" " (list \"git\"\n" " \"emacs\"\n" " \"emacs-geiser\"\n" " \"emacs-geiser-guile\"))\n" " (package->development-manifest\n" " (specification->package \"guile\"))))\n" #. type: table #: guix-git/doc/guix.texi:6189 msgid "You can store it into a file, say @file{manifest.scm}, and from there pass it to @command{guix shell} or indeed pretty much any @command{guix} command:" msgstr "Diese Ausgabe können Sie in einer Datei speichern, nennen wir sie @file{manifest.scm}, die Sie dann an @command{guix shell} oder so ziemlich jeden beliebigen @command{guix}-Befehl übergeben:" #. type: example #: guix-git/doc/guix.texi:6192 guix-git/doc/guix.texi:8697 #, no-wrap msgid "guix shell -m manifest.scm\n" msgstr "guix shell -m manifest.scm\n" #. type: table #: guix-git/doc/guix.texi:6197 msgid "Voilà, you've converted a long command line into a manifest! That conversion process honors package transformation options (@pxref{Package Transformation Options}) so it should be lossless." msgstr "Na bitte. Aus der langen Befehlszeile ist ein Manifest geworden! Beim Verwandlungsvorgang werden Paketumwandlungsoptionen berücksichtigt (siehe @ref{Package Transformation Options}), d.h.@: er sollte verlustfrei sein." #. type: table #: guix-git/doc/guix.texi:6203 guix-git/doc/guix.texi:6700 msgid "Create an environment containing the packages installed in @var{profile}. Use @command{guix package} (@pxref{Invoking guix package}) to create and manage profiles." msgstr "Eine Umgebung mit den Paketen erzeugen, die im @var{Profil} installiert sind. Benutzen Sie @command{guix package} (siehe @ref{Invoking guix package}), um Profile anzulegen und zu verwalten." #. type: item #: guix-git/doc/guix.texi:6204 guix-git/doc/guix.texi:6701 #, no-wrap msgid "--pure" msgstr "--pure" #. type: table #: guix-git/doc/guix.texi:6208 guix-git/doc/guix.texi:6705 msgid "Unset existing environment variables when building the new environment, except those specified with @option{--preserve} (see below). This has the effect of creating an environment in which search paths only contain package inputs." msgstr "Bestehende Umgebungsvariable deaktivieren, wenn die neue Umgebung erzeugt wird, mit Ausnahme der mit @option{--preserve} angegebenen Variablen (siehe unten). Dies bewirkt, dass eine Umgebung erzeugt wird, in der die Suchpfade nur Paketeingaben nennen und sonst nichts." #. type: item #: guix-git/doc/guix.texi:6209 guix-git/doc/guix.texi:6706 #, no-wrap msgid "--preserve=@var{regexp}" msgstr "--preserve=@var{Regexp}" #. type: itemx #: guix-git/doc/guix.texi:6210 guix-git/doc/guix.texi:6707 #, no-wrap msgid "-E @var{regexp}" msgstr "-E @var{Regexp}" #. type: table #: guix-git/doc/guix.texi:6215 guix-git/doc/guix.texi:6712 msgid "When used alongside @option{--pure}, preserve the environment variables matching @var{regexp}---in other words, put them on a ``white list'' of environment variables that must be preserved. This option can be repeated several times." msgstr "Wenn das hier zusammen mit @option{--pure} angegeben wird, bleiben die zum regulären Ausdruck @var{Regexp} passenden Umgebungsvariablen erhalten@tie{}– mit anderen Worten werden sie auf eine „weiße Liste“ von Umgebungsvariablen gesetzt, die erhalten bleiben müssen. Diese Befehlszeilenoption kann mehrmals wiederholt werden." #. type: example #: guix-git/doc/guix.texi:6219 #, no-wrap msgid "" "guix shell --pure --preserve=^SLURM openmpi @dots{} \\\n" " -- mpirun @dots{}\n" msgstr "" "guix shell --pure --preserve=^SLURM openmpi …@: \\\n" " -- mpirun …\n" #. type: table #: guix-git/doc/guix.texi:6225 guix-git/doc/guix.texi:6722 msgid "This example runs @command{mpirun} in a context where the only environment variables defined are @env{PATH}, environment variables whose name starts with @samp{SLURM}, as well as the usual ``precious'' variables (@env{HOME}, @env{USER}, etc.)." msgstr "In diesem Beispiel wird @command{mpirun} in einem Kontext ausgeführt, in dem die einzig definierten Umgebungsvariablen @env{PATH} und solche sind, deren Name mit @samp{SLURM} beginnt, sowie die üblichen besonders „kostbaren“ Variablen (@env{HOME}, @env{USER}, etc.)." #. type: item #: guix-git/doc/guix.texi:6226 guix-git/doc/guix.texi:6723 #, no-wrap msgid "--search-paths" msgstr "--search-paths" #. type: table #: guix-git/doc/guix.texi:6229 guix-git/doc/guix.texi:6726 msgid "Display the environment variable definitions that make up the environment." msgstr "Die Umgebungsvariablendefinitionen anzeigen, aus denen die Umgebung besteht." #. type: table #: guix-git/doc/guix.texi:6233 guix-git/doc/guix.texi:6730 msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}." msgstr "Versuchen, für das angegebene @var{System} zu erstellen@tie{}– z.B.@: @code{i686-linux}." #. type: item #: guix-git/doc/guix.texi:6234 guix-git/doc/guix.texi:6731 #, no-wrap msgid "--container" msgstr "--container" #. type: itemx #: guix-git/doc/guix.texi:6235 guix-git/doc/guix.texi:6732 #, no-wrap msgid "-C" msgstr "-C" #. type: item #: guix-git/doc/guix.texi:6236 guix-git/doc/guix.texi:6557 #: guix-git/doc/guix.texi:6733 guix-git/doc/guix.texi:16459 #: guix-git/doc/guix.texi:42989 guix-git/doc/guix.texi:47241 #, no-wrap msgid "container" msgstr "container" #. type: table #: guix-git/doc/guix.texi:6242 guix-git/doc/guix.texi:6739 msgid "Run @var{command} within an isolated container. The current working directory outside the container is mapped inside the container. Additionally, unless overridden with @option{--user}, a dummy home directory is created that matches the current user's home directory, and @file{/etc/passwd} is configured accordingly." msgstr "Den @var{Befehl} in einer isolierten Umgebung (einem sogenannten „Container“) ausführen. Das aktuelle Arbeitsverzeichnis außerhalb des Containers wird in den Container zugeordnet. Zusätzlich wird, wenn es mit der Befehlszeilenoption @option{--user} nicht anders spezifiziert wurde, ein stellvertretendes persönliches Verzeichnis erzeugt, dessen Inhalt der des wirklichen persönlichen Verzeichnisses ist, sowie eine passend konfigurierte Datei @file{/etc/passwd}." #. type: table #: guix-git/doc/guix.texi:6246 guix-git/doc/guix.texi:6743 msgid "The spawned process runs as the current user outside the container. Inside the container, it has the same UID and GID as the current user, unless @option{--user} is passed (see below)." msgstr "Der erzeugte Prozess läuft außerhalb des Containers als der momentane Nutzer. Innerhalb des Containers hat er dieselbe UID und GID wie der momentane Nutzer, außer die Befehlszeilenoption @option{--user} wird übergeben (siehe unten)." #. type: item #: guix-git/doc/guix.texi:6247 guix-git/doc/guix.texi:6744 #: guix-git/doc/guix.texi:43090 guix-git/doc/guix.texi:47259 #, no-wrap msgid "--network" msgstr "--network" #. type: table #: guix-git/doc/guix.texi:6252 guix-git/doc/guix.texi:6749 msgid "For containers, share the network namespace with the host system. Containers created without this flag only have access to the loopback device." msgstr "Bei isolierten Umgebungen („Containern“) wird hiermit der Netzwerk-Namensraum mit dem des Wirtssystems geteilt. Container, die ohne diese Befehlszeilenoption erzeugt wurden, haben nur Zugriff auf das Loopback-Gerät." #. type: item #: guix-git/doc/guix.texi:6253 guix-git/doc/guix.texi:6750 #, no-wrap msgid "--link-profile" msgstr "--link-profile" #. type: itemx #: guix-git/doc/guix.texi:6254 guix-git/doc/guix.texi:6751 #, no-wrap msgid "-P" msgstr "-P" #. type: table #: guix-git/doc/guix.texi:6262 msgid "For containers, link the environment profile to @file{~/.guix-profile} within the container and set @code{GUIX_ENVIRONMENT} to that. This is equivalent to making @file{~/.guix-profile} a symlink to the actual profile within the container. Linking will fail and abort the environment if the directory already exists, which will certainly be the case if @command{guix shell} was invoked in the user's home directory." msgstr "Bei isolierten Umgebungen („Containern“) wird das Umgebungsprofil im Container als @file{~/.guix-profile} verknüpft und @file{~/.guix-profile} dann in @code{GUIX_ENVIRONMENT} gespeichert. Das ist äquivalent dazu, @file{~/.guix-profile} im Container zu einer symbolischen Verknüpfung auf das tatsächliche Profil zu machen. Wenn das Verzeichnis bereits existiert, schlägt das Verknüpfen fehl und die Umgebung wird nicht hergestellt. Dieser Fehler wird immer eintreten, wenn @command{guix shell} im persönlichen Verzeichnis des Benutzers aufgerufen wurde." #. type: table #: guix-git/doc/guix.texi:6268 guix-git/doc/guix.texi:6765 msgid "Certain packages are configured to look in @file{~/.guix-profile} for configuration files and data;@footnote{For example, the @code{fontconfig} package inspects @file{~/.guix-profile/share/fonts} for additional fonts.} @option{--link-profile} allows these programs to behave as expected within the environment." msgstr "Bestimmte Pakete sind so eingerichtet, dass sie in @file{~/.guix-profile} nach Konfigurationsdateien und Daten suchen,@footnote{Zum Beispiel inspiziert das Paket @code{fontconfig} das Verzeichnis @file{~/.guix-profile/share/fonts}, um zusätzliche Schriftarten zu finden.} weshalb @option{--link-profile} benutzt werden kann, damit sich diese Programme auch in der isolierten Umgebung wie erwartet verhalten." #. type: item #: guix-git/doc/guix.texi:6269 guix-git/doc/guix.texi:6766 #: guix-git/doc/guix.texi:16029 #, no-wrap msgid "--user=@var{user}" msgstr "--user=@var{Benutzer}" #. type: itemx #: guix-git/doc/guix.texi:6270 guix-git/doc/guix.texi:6767 #: guix-git/doc/guix.texi:16030 #, no-wrap msgid "-u @var{user}" msgstr "-u @var{Benutzer}" #. type: table #: guix-git/doc/guix.texi:6277 guix-git/doc/guix.texi:6774 msgid "For containers, use the username @var{user} in place of the current user. The generated @file{/etc/passwd} entry within the container will contain the name @var{user}, the home directory will be @file{/home/@var{user}}, and no user GECOS data will be copied. Furthermore, the UID and GID inside the container are 1000. @var{user} need not exist on the system." msgstr "Bei isolierten Umgebungen („Containern“) wird der Benutzername @var{Benutzer} anstelle des aktuellen Benutzers benutzt. Der erzeugte Eintrag in @file{/etc/passwd} im Container wird also den Namen @var{Benutzer} enthalten und das persönliche Verzeichnis wird den Namen @file{/home/BENUTZER} tragen; keine GECOS-Daten über den Nutzer werden in die Umgebung übernommen. Des Weiteren sind UID und GID innerhalb der isolierten Umgebung auf 1000 gesetzt. @var{Benutzer} muss auf dem System nicht existieren." #. type: table #: guix-git/doc/guix.texi:6282 guix-git/doc/guix.texi:6779 msgid "Additionally, any shared or exposed path (see @option{--share} and @option{--expose} respectively) whose target is within the current user's home directory will be remapped relative to @file{/home/USER}; this includes the automatic mapping of the current working directory." msgstr "Zusätzlich werden alle geteilten oder exponierten Pfade (siehe jeweils @option{--share} und @option{--expose}), deren Ziel innerhalb des persönlichen Verzeichnisses des aktuellen Benutzers liegt, relativ zu @file{/home/BENUTZER} erscheinen, einschließlich der automatischen Zuordnung des aktuellen Arbeitsverzeichnisses." #. type: example #: guix-git/doc/guix.texi:6289 #, no-wrap msgid "" "# will expose paths as /home/foo/wd, /home/foo/test, and /home/foo/target\n" "cd $HOME/wd\n" "guix shell --container --user=foo \\\n" " --expose=$HOME/test \\\n" " --expose=/tmp/target=$HOME/target\n" msgstr "" "# wird Pfade als /home/foo/wd, /home/foo/test und /home/foo/target exponieren\n" "cd $HOME/wd\n" "guix shell --container --user=foo \\\n" " --expose=$HOME/test \\\n" " --expose=/tmp/target=$HOME/target\n" #. type: table #: guix-git/doc/guix.texi:6294 guix-git/doc/guix.texi:6791 msgid "While this will limit the leaking of user identity through home paths and each of the user fields, this is only one useful component of a broader privacy/anonymity solution---not one in and of itself." msgstr "Obwohl dies das Datenleck von Nutzerdaten durch Pfade im persönlichen Verzeichnis und die Benutzereinträge begrenzt, kann dies nur als Teil einer größeren Lösung für Datenschutz und Anonymität sinnvoll eingesetzt werden. Es sollte nicht für sich allein dazu eingesetzt werden." #. type: item #: guix-git/doc/guix.texi:6295 guix-git/doc/guix.texi:6792 #, no-wrap msgid "--no-cwd" msgstr "--no-cwd" #. type: table #: guix-git/doc/guix.texi:6302 guix-git/doc/guix.texi:6799 msgid "For containers, the default behavior is to share the current working directory with the isolated container and immediately change to that directory within the container. If this is undesirable, @option{--no-cwd} will cause the current working directory to @emph{not} be automatically shared and will change to the user's home directory within the container instead. See also @option{--user}." msgstr "In isolierten Umgebungen („Containern“) ist das vorgegebene Verhalten, das aktuelle Arbeitsverzeichnis mit dem isolierten Container zu teilen und in der Umgebung sofort in dieses Verzeichnis zu wechseln. Wenn das nicht gewünscht wird, kann das Angeben von @option{--no-cwd} dafür sorgen, dass das Arbeitsverzeichnis @emph{nicht} automatisch geteilt wird und stattdessen in das Persönliche Verzeichnis („Home“-Verzeichnis) gewechselt wird. Siehe auch @option{--user}." #. type: item #: guix-git/doc/guix.texi:6303 guix-git/doc/guix.texi:6800 #: guix-git/doc/guix.texi:47263 #, no-wrap msgid "--expose=@var{source}[=@var{target}]" msgstr "--expose=@var{Quelle}[=@var{Ziel}]" #. type: itemx #: guix-git/doc/guix.texi:6304 guix-git/doc/guix.texi:6801 #: guix-git/doc/guix.texi:47264 #, no-wrap msgid "--share=@var{source}[=@var{target}]" msgstr "--share=@var{Quelle}[=@var{Ziel}]" #. type: table #: guix-git/doc/guix.texi:6310 guix-git/doc/guix.texi:6807 msgid "For containers, @option{--expose} (resp. @option{--share}) exposes the file system @var{source} from the host system as the read-only (resp. writable) file system @var{target} within the container. If @var{target} is not specified, @var{source} is used as the target mount point in the container." msgstr "Bei isolierten Umgebungen („Containern“) wird das Dateisystem unter @var{Quelle} vom Wirtssystem als Nur-Lese-Dateisystem @var{Ziel} (bzw.@: für @option{--share} auch mit Schreibrechten) im Container zugänglich gemacht. Wenn kein @var{Ziel} angegeben wurde, wird die @var{Quelle} auch als Ziel-Einhängepunkt in der isolierten Umgebung benutzt." #. type: table #: guix-git/doc/guix.texi:6314 guix-git/doc/guix.texi:6811 msgid "The example below spawns a Guile REPL in a container in which the user's home directory is accessible read-only via the @file{/exchange} directory:" msgstr "Im folgenden Beispiel wird eine Guile-REPL in einer isolierten Umgebung gestartet, in der das persönliche Verzeichnis des Benutzers als Verzeichnis @file{/austausch} nur für Lesezugriffe zugänglich gemacht wurde:" #. type: example #: guix-git/doc/guix.texi:6317 #, no-wrap msgid "guix shell --container --expose=$HOME=/exchange guile -- guile\n" msgstr "guix shell --container --expose=$HOME=/austausch guile -- guile\n" #. type: cindex #: guix-git/doc/guix.texi:6319 #, no-wrap msgid "symbolic links, guix shell" msgstr "symbolische Verknüpfungen, guix shell" #. type: item #: guix-git/doc/guix.texi:6320 guix-git/doc/guix.texi:7251 #, no-wrap msgid "--symlink=@var{spec}" msgstr "--symlink=@var{Spezifikation}" #. type: itemx #: guix-git/doc/guix.texi:6321 guix-git/doc/guix.texi:7252 #, no-wrap msgid "-S @var{spec}" msgstr "-S @var{Spezifikation}" #. type: table #: guix-git/doc/guix.texi:6324 msgid "For containers, create the symbolic links specified by @var{spec}, as documented in @ref{pack-symlink-option}." msgstr "Für Container werden hiermit die in der @var{Spezifikation} angegebenen symbolischen Verknüpfungen hergestellt. Siehe die Dokumentation in @ref{pack-symlink-option}." #. type: cindex #: guix-git/doc/guix.texi:6325 #, no-wrap msgid "file system hierarchy standard (FHS)" msgstr "File System Hierarchy Standard (FHS)" #. type: cindex #: guix-git/doc/guix.texi:6326 #, no-wrap msgid "FHS (file system hierarchy standard)" msgstr "FHS (File System Hierarchy Standard)" #. type: item #: guix-git/doc/guix.texi:6327 guix-git/doc/guix.texi:6816 #, no-wrap msgid "--emulate-fhs" msgstr "--emulate-fhs" #. type: item #: guix-git/doc/guix.texi:6328 guix-git/doc/guix.texi:6817 #, no-wrap msgid "-F" msgstr "-F" #. type: table #: guix-git/doc/guix.texi:6334 msgid "When used with @option{--container}, emulate a @uref{https://refspecs.linuxfoundation.org/fhs.shtml, Filesystem Hierarchy Standard (FHS)} configuration within the container, providing @file{/bin}, @file{/lib}, and other directories and files specified by the FHS." msgstr "Wenn Sie dies zusammen mit @option{--container} angeben, wird im Container eine Konfiguration emuliert, die dem @uref{https://refspecs.linuxfoundation.org/fhs.shtml, Filesystem Hierarchy Standard (FHS)} folgt, so dass es @file{/bin}, @file{/lib} und weitere Verzeichnisse gibt, wie es der FHS vorschreibt." #. type: table #: guix-git/doc/guix.texi:6345 msgid "As Guix deviates from the FHS specification, this option sets up the container to more closely mimic that of other GNU/Linux distributions. This is useful for reproducing other development environments, testing, and using programs which expect the FHS specification to be followed. With this option, the container will include a version of glibc that will read @file{/etc/ld.so.cache} within the container for the shared library cache (contrary to glibc in regular Guix usage) and set up the expected FHS directories: @file{/bin}, @file{/etc}, @file{/lib}, and @file{/usr} from the container's profile." msgstr "Obwohl Guix vom FHS-Standard abweicht, kann das System in Ihrem Container mit dieser Befehlszeilenoption zu anderen GNU/Linux-Distributionen ähnlicher werden. Dadurch lassen sich dortige Entwicklungsumgebungen reproduzieren und Sie können Programme testen und benutzen, die das Befolgen des FHS-Standards voraussetzen. Wenn die Option angegeben wird, enthält der Container eine Version von glibc, die die im Container befindliche @file{/etc/ld.so.cache} als Zwischenspeicher gemeinsamer Bibliotheken ausliest (anders als glibc im normalen Gebrauch von Guix), und die im FHS verlangten Verzeichnisse @file{/bin}, @file{/etc}, @file{/lib} und @file{/usr} werden aus dem Profil des Containers übernommen." #. type: cindex #: guix-git/doc/guix.texi:6346 #, no-wrap msgid "nested containers, for @command{guix shell}" msgstr "Verschachteln von Containern, bei @command{guix shell}" #. type: cindex #: guix-git/doc/guix.texi:6347 #, no-wrap msgid "container nesting, for @command{guix shell}" msgstr "Container verschachteln, bei @command{guix shell}" #. type: item #: guix-git/doc/guix.texi:6348 #, no-wrap msgid "--nesting" msgstr "--nesting" #. type: itemx #: guix-git/doc/guix.texi:6349 #, no-wrap msgid "-W" msgstr "-W" #. type: table #: guix-git/doc/guix.texi:6355 msgid "When used with @option{--container}, provide Guix @emph{inside} the container and arrange so that it can interact with the build daemon that runs outside the container. This is useful if you want, within your isolated container, to create other containers, as in this sample session:" msgstr "Wenn Sie dies zusammen mit @option{--container} angeben, wird Guix im Container verfügbar gemacht, so dass man sich von innerhalb mit dem Erstellungs-Daemon verbinden kann, der außerhalb des Containers läuft. Das können Sie gebrauchen, wenn Sie vom isolierten Container aus wiederum andere Container erzeugen lassen können wollen wie in dieser Beispielsitzung:" #. type: example #: guix-git/doc/guix.texi:6361 #, no-wrap msgid "" "$ guix shell -CW coreutils\n" "[env]$ guix shell -C guile -- guile -c '(display \"hello!\\n\")'\n" "hello!\n" "[env]$ exit\n" msgstr "" "$ guix shell -CW coreutils\n" "[env]$ guix shell -C guile -- guile -c '(display \"Hallo!\\n\")'\n" "Hallo!\n" "[env]$ exit\n" #. type: table #: guix-git/doc/guix.texi:6366 msgid "The session above starts a container with @code{coreutils} programs available in @env{PATH}. From there, we spawn @command{guix shell} to create a @emph{nested} container that provides nothing but Guile." msgstr "In der Sitzung wird ein Container gestartet, in dem die @code{coreutils}-Programme in @env{PATH} zur Verfügung stehen. Von da aus legen wir mit @command{guix shell} einen inneren, @emph{verschachtelten} Container an, der außer Guile nichts verfügbar macht." #. type: table #: guix-git/doc/guix.texi:6369 msgid "Another example is evaluating a @file{guix.scm} file that is untrusted, as shown here:" msgstr "Ein weiteres Anwendungsbeispiel ist, wenn Sie eine @file{guix.scm} auswerten möchten, der Sie @emph{nicht} vertrauen, wie hier:" #. type: example #: guix-git/doc/guix.texi:6372 #, no-wrap msgid "guix shell -CW -- guix build -f guix.scm\n" msgstr "guix shell -CW -- guix build -f guix.scm\n" #. type: table #: guix-git/doc/guix.texi:6376 msgid "The @command{guix build} command as executed above can only access the current directory." msgstr "Durch einen so durchgeführten Befehl @command{guix build} sind nur Zugriffe auf Ihr aktuelles Arbeitsverzeichnis möglich." #. type: table #: guix-git/doc/guix.texi:6378 msgid "Under the hood, the @option{-W} option does several things:" msgstr "Intern werden für die Befehlszeilenoption @option{-W} mehrere Einstellungen vorgenommen:" #. type: itemize #: guix-git/doc/guix.texi:6383 msgid "map the daemon's socket (by default @file{/var/guix/daemon-socket/socket}) inside the container;" msgstr "Der Socket für den Daemon (in der Vorgabeeinstellung ist das @file{/var/guix/daemon-socket/socket}) wird im Container verfügbar gemacht." #. type: itemize #: guix-git/doc/guix.texi:6387 msgid "map the whole store (by default @file{/gnu/store}) inside the container such that store items made available by nested @command{guix} invocations are visible;" msgstr "Der gesamte Store (in der Vorgabeeinstellung ist das @file{/gnu/store}) wird im Container verfügbar gemacht, damit auf Store-Objekte von verschachtelten @command{guix}-Aufrufen zugegriffen werden kann." #. type: itemize #: guix-git/doc/guix.texi:6391 msgid "add the currently-used @command{guix} command to the profile in the container, such that @command{guix describe} returns the same state inside and outside the container;" msgstr "Der aktuell benutzte @command{guix}-Befehl wird zum Profil innerhalb des Containers hinzugefügt, so dass @command{guix describe} innerhalb und außerhalb des Containers den gleichen Zustand ausgibt." #. type: itemize #: guix-git/doc/guix.texi:6395 msgid "share the cache (by default @file{~/.cache/guix}) with the host, to speed up operations such as @command{guix time-machine} and @command{guix shell}." msgstr "Der Zwischenspeicher (in der Vorgabeeinstellung ist das @file{~/.cache/guix}) des Wirtssystems wird mit Schreibzugriff zugänglich gemacht. Dadurch können Befehle wie @command{guix time-machine} und @command{guix shell} effizient ablaufen." #. type: item #: guix-git/doc/guix.texi:6397 #, no-wrap msgid "--rebuild-cache" msgstr "--rebuild-cache" #. type: cindex #: guix-git/doc/guix.texi:6398 #, no-wrap msgid "caching, of profiles" msgstr "Zwischenspeichern, von Profilen" #. type: cindex #: guix-git/doc/guix.texi:6399 #, no-wrap msgid "caching, in @command{guix shell}" msgstr "Zwischenspeichern, bei @command{guix shell}" #. type: table #: guix-git/doc/guix.texi:6405 msgid "In most cases, @command{guix shell} caches the environment so that subsequent uses are instantaneous. Least-recently used cache entries are periodically removed. The cache is also invalidated, when using @option{--file} or @option{--manifest}, anytime the corresponding file is modified." msgstr "In der Regel wird @command{guix shell} die Umgebung zwischenspeichern, damit weitere Aufrufe sie ohne Verzögerung verwenden können. Am längsten @emph{nicht} verwendete („least recently used“) Einträge im Zwischenspeicher werden bei @command{guix shell} regelmäßig entfernt. Auch wenn Sie @option{--file} oder @option{--manifest} nutzen, wird der Zwischenspeicher ungültig, sobald die entsprechende Datei geändert wurde." #. type: table #: guix-git/doc/guix.texi:6411 msgid "The @option{--rebuild-cache} forces the cached environment to be refreshed. This is useful when using @option{--file} or @option{--manifest} and the @command{guix.scm} or @command{manifest.scm} file has external dependencies, or if its behavior depends, say, on environment variables." msgstr "Mit der Befehlszeilenoption @option{--rebuild-cache} wird die zwischengespeicherte Umgebung erneuert. Sie können @option{--rebuild-cache} verwenden, wenn Sie @option{--file} oder @option{--manifest} nutzen und die Datei @command{guix.scm} oder @command{manifest.scm} auf externe Abhängigkeiten verweist oder eine andere Umgebung ergeben sollte, wenn sich zum Beispiel Umgebungsvariable geändert haben." #. type: item #: guix-git/doc/guix.texi:6412 guix-git/doc/guix.texi:6598 #: guix-git/doc/guix.texi:7280 guix-git/doc/guix.texi:13659 #: guix-git/doc/guix.texi:43095 #, no-wrap msgid "--root=@var{file}" msgstr "--root=@var{Datei}" #. type: itemx #: guix-git/doc/guix.texi:6413 guix-git/doc/guix.texi:6599 #: guix-git/doc/guix.texi:7281 guix-git/doc/guix.texi:13660 #: guix-git/doc/guix.texi:43096 #, no-wrap msgid "-r @var{file}" msgstr "-r @var{Datei}" #. type: cindex #: guix-git/doc/guix.texi:6414 guix-git/doc/guix.texi:6600 #, no-wrap msgid "persistent environment" msgstr "persistente Umgebung" #. type: cindex #: guix-git/doc/guix.texi:6415 guix-git/doc/guix.texi:6601 #, no-wrap msgid "garbage collector root, for environments" msgstr "Müllsammlerwurzel, für Umgebungen" #. type: table #: guix-git/doc/guix.texi:6418 guix-git/doc/guix.texi:6604 msgid "Make @var{file} a symlink to the profile for this environment, and register it as a garbage collector root." msgstr "Die @var{Datei} zu einer symbolischen Verknüpfung auf das Profil dieser Umgebung machen und als eine Müllsammlerwurzel registrieren." #. type: table #: guix-git/doc/guix.texi:6421 guix-git/doc/guix.texi:6607 msgid "This is useful if you want to protect your environment from garbage collection, to make it ``persistent''." msgstr "Das ist nützlich, um seine Umgebung vor dem Müllsammler zu schützen und sie „persistent“ zu machen." #. type: table #: guix-git/doc/guix.texi:6427 msgid "When this option is omitted, @command{guix shell} caches profiles so that subsequent uses of the same environment are instantaneous---this is comparable to using @option{--root} except that @command{guix shell} takes care of periodically removing the least-recently used garbage collector roots." msgstr "Wenn diese Option weggelassen wird, wird das Profil von @command{guix shell} zwischengespeichert, damit weitere Aufrufe es ohne Verzögerung verwenden können. Das ist vergleichbar damit, wenn Sie @option{--root} angeben, jedoch wird @command{guix shell} die am längsten @emph{nicht} verwendeten Müllsammlerwurzeln („least recently used“) regelmäßig entfernt." #. type: table #: guix-git/doc/guix.texi:6434 msgid "In some cases, @command{guix shell} does not cache profiles---e.g., if transformation options such as @option{--with-latest} are used. In those cases, the environment is protected from garbage collection only for the duration of the @command{guix shell} session. This means that next time you recreate the same environment, you could have to rebuild or re-download packages." msgstr "In manchen Fällen wird @command{guix shell} keinen Zwischenspeicher für die Profile anlegen, z.B.@: wenn Umwandlungsoptionen wie @option{--with-latest} angegeben wurde. Das bedeutet, die Umgebung ist nur, solange die Sitzung von @command{guix shell} besteht, vor dem Müllsammler sicher. Dann müssen Sie, wenn Sie das nächste Mal dieselbe Umgebung neu erzeugen, vielleicht Pakete neu erstellen oder neu herunterladen." #. type: table #: guix-git/doc/guix.texi:6436 msgid "@xref{Invoking guix gc}, for more on GC roots." msgstr "@ref{Invoking guix gc} hat mehr Informationen über Müllsammlerwurzeln." #. type: Plain text #: guix-git/doc/guix.texi:6441 msgid "@command{guix shell} also supports all of the common build options that @command{guix build} supports (@pxref{Common Build Options}) as well as package transformation options (@pxref{Package Transformation Options})." msgstr "@command{guix shell} unterstützt auch alle gemeinsamen Erstellungsoptionen, die von @command{guix build} unterstützt werden (siehe @ref{Common Build Options}), und die Paketumwandlungsoptionen (siehe @ref{Package Transformation Options})." #. type: section #: guix-git/doc/guix.texi:6443 #, no-wrap msgid "Invoking @command{guix environment}" msgstr "@command{guix environment} aufrufen" #. type: Plain text #: guix-git/doc/guix.texi:6449 msgid "The purpose of @command{guix environment} is to assist in creating development environments." msgstr "Der Zweck von @command{guix environment} ist es, dass Sie Entwicklungsumgebungen leicht anlegen können." #. type: quotation #: guix-git/doc/guix.texi:6450 #, no-wrap msgid "Deprecation warning" msgstr "Diese Funktionalität wird demnächst verschwinden" #. type: quotation #: guix-git/doc/guix.texi:6454 msgid "The @command{guix environment} command is deprecated in favor of @command{guix shell}, which performs similar functions but is more convenient to use. @xref{Invoking guix shell}." msgstr "Der Befehl @command{guix environment} gilt als veraltet. Stattdessen sollten Sie @command{guix shell} benutzen, was einen ähnlichen Zweck erfüllt, aber leichter zu benutzen ist. Siehe @ref{Invoking guix shell}." #. type: quotation #: guix-git/doc/guix.texi:6459 msgid "Being deprecated, @command{guix environment} is slated for eventual removal, but the Guix project is committed to keeping it until May 1st, 2023. Please get in touch with us at @email{guix-devel@@gnu.org} if you would like to discuss it." msgstr "Veraltet heißt, @command{guix environment} wird letztendlich entfernt, aber das Guix-Projekt wird gewährleisten, dass @command{guix environment} bis zum 1.@: Mai 2023 verfügbar bleibt. Reden Sie mit uns unter @email{guix-devel@@gnu.org}, wenn Sie dabei mitdiskutieren möchten!" #. type: example #: guix-git/doc/guix.texi:6465 #, no-wrap msgid "guix environment @var{options} @var{package}@dots{}\n" msgstr "guix environment @var{Optionen} @var{Paket}…\n" #. type: Plain text #: guix-git/doc/guix.texi:6469 msgid "The following example spawns a new shell set up for the development of GNU@tie{}Guile:" msgstr "Folgendes Beispiel zeigt, wie eine neue Shell gestartet wird, auf der alles für die Entwicklung von GNU@tie{}Guile eingerichtet ist:" #. type: example #: guix-git/doc/guix.texi:6472 #, no-wrap msgid "guix environment guile\n" msgstr "guix environment guile\n" #. type: Plain text #: guix-git/doc/guix.texi:6489 msgid "If the needed dependencies are not built yet, @command{guix environment} automatically builds them. The environment of the new shell is an augmented version of the environment that @command{guix environment} was run in. It contains the necessary search paths for building the given package added to the existing environment variables. To create a ``pure'' environment, in which the original environment variables have been unset, use the @option{--pure} option@footnote{Users sometimes wrongfully augment environment variables such as @env{PATH} in their @file{~/.bashrc} file. As a consequence, when @command{guix environment} launches it, Bash may read @file{~/.bashrc}, thereby introducing ``impurities'' in these environment variables. It is an error to define such environment variables in @file{.bashrc}; instead, they should be defined in @file{.bash_profile}, which is sourced only by log-in shells. @xref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}, for details on Bash start-up files.}." msgstr "Wenn benötigte Abhängigkeiten noch nicht erstellt worden sind, wird @command{guix environment} sie automatisch erstellen lassen. Die Umgebung der neuen Shell ist eine ergänzte Version der Umgebung, in der @command{guix environment} ausgeführt wurde. Sie enthält neben den existierenden Umgebungsvariablen auch die nötigen Suchpfade, um das angegebene Paket erstellen zu können. Um eine „reine“ Umgebung zu erstellen, in der die ursprünglichen Umgebungsvariablen nicht mehr vorkommen, kann die Befehlszeilenoption @option{--pure} benutzt werden@footnote{Manchmal ergänzen Nutzer fälschlicherweise Umgebungsvariable wie @env{PATH} in ihrer @file{~/.bashrc}-Datei. Das hat zur Folge, dass wenn @command{guix environment} Bash startet, selbige @file{~/.bashrc} von Bash gelesen wird und die neuen Umgebungen somit „verunreinigt“. Es ist ein Fehler, solche Umgebungsvariable in @file{.bashrc} zu definieren, stattdessen sollten sie in @file{.bash_profile} geschrieben werden, was nur von Login-Shells mit „source“ geladen wird. Siehe @ref{Bash Startup Files,,, bash, Referenzhandbuch zu GNU Bash} für Details über beim Starten von Bash gelesene Dateien}." #. type: Plain text #: guix-git/doc/guix.texi:6495 msgid "Exiting from a Guix environment is the same as exiting from the shell, and will place the user back in the old environment before @command{guix environment} was invoked. The next garbage collection (@pxref{Invoking guix gc}) will clean up packages that were installed from within the environment and are no longer used outside of it." msgstr "Eine Guix-Umgebung zu verlassen ist gleichbedeutend mit dem Verlassen der Shell; danach findet sich der Benutzer in der alten Umgebung wieder, in der er sich vor dem Aufruf von @command{guix environment} befand. Beim nächsten Durchlauf des Müllsammlers (siehe @ref{Invoking guix gc}) werden Pakete von der Platte gelöscht, die innerhalb der Umgebung installiert worden sind und außerhalb nicht länger benutzt werden." #. type: Plain text #: guix-git/doc/guix.texi:6502 msgid "@command{guix environment} defines the @env{GUIX_ENVIRONMENT} variable in the shell it spawns; its value is the file name of the profile of this environment. This allows users to, say, define a specific prompt for development environments in their @file{.bashrc} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}):" msgstr "@command{guix environment} definiert die Variable @env{GUIX_ENVIRONMENT} in der neu erzeugten Shell. Ihr Wert ist der Dateiname des Profils dieser neuen Umgebung. Das könnten Nutzer verwenden, um zum Beispiel eine besondere Prompt als Eingabeaufforderung für Entwicklungsumgebungen in ihrer @file{.bashrc} festzulegen (siehe @ref{Bash Startup Files,,, bash, Referenzhandbuch von GNU Bash}):" #. type: Plain text #: guix-git/doc/guix.texi:6521 msgid "Additionally, more than one package may be specified, in which case the union of the inputs for the given packages are used. For example, the command below spawns a shell where all of the dependencies of both Guile and Emacs are available:" msgstr "Des Weiteren kann mehr als ein Paket angegeben werden. In diesem Fall wird die Vereinigung der Eingaben der jeweiligen Pakete zugänglich gemacht. Zum Beispiel erzeugt der folgende Befehl eine Shell, in der alle Abhängigkeiten von sowohl Guile als auch Emacs verfügbar sind:" #. type: example #: guix-git/doc/guix.texi:6524 #, no-wrap msgid "guix environment guile emacs\n" msgstr "guix environment guile emacs\n" #. type: Plain text #: guix-git/doc/guix.texi:6529 msgid "Sometimes an interactive shell session is not desired. An arbitrary command may be invoked by placing the @code{--} token to separate the command from the rest of the arguments:" msgstr "Manchmal will man keine interaktive Shell-Sitzung. Ein beliebiger Befehl kann aufgerufen werden, indem Sie nach Angabe der Pakete noch @code{--} vor den gewünschten Befehl schreiben, um ihn von den übrigen Argumenten abzutrennen:" #. type: example #: guix-git/doc/guix.texi:6532 #, no-wrap msgid "guix environment guile -- make -j4\n" msgstr "guix environment guile -- make -j4\n" #. type: Plain text #: guix-git/doc/guix.texi:6538 msgid "In other situations, it is more convenient to specify the list of packages needed in the environment. For example, the following command runs @command{python} from an environment containing Python@tie{}3 and NumPy:" msgstr "In anderen Situationen ist es bequemer, aufzulisten, welche Pakete in der Umgebung benötigt werden. Zum Beispiel führt der folgende Befehl @command{python} aus einer Umgebung heraus aus, in der Python@tie{}3 und NumPy enthalten sind:" #. type: example #: guix-git/doc/guix.texi:6541 #, no-wrap msgid "guix environment --ad-hoc python-numpy python -- python3\n" msgstr "guix environment --ad-hoc python-numpy python -- python3\n" #. type: Plain text #: guix-git/doc/guix.texi:6552 msgid "Furthermore, one might want the dependencies of a package and also some additional packages that are not build-time or runtime dependencies, but are useful when developing nonetheless. Because of this, the @option{--ad-hoc} flag is positional. Packages appearing before @option{--ad-hoc} are interpreted as packages whose dependencies will be added to the environment. Packages appearing after are interpreted as packages that will be added to the environment directly. For example, the following command creates a Guix development environment that additionally includes Git and strace:" msgstr "Man kann auch sowohl die Abhängigkeiten eines Pakets haben wollen als auch ein paar zusätzliche Pakete, die nicht Erstellungs- oder Laufzeitabhängigkeiten davon sind, aber trotzdem bei der Entwicklung nützlich sind. Deshalb hängt die Wirkung von der Position der Befehlszeilenoption @option{--ad-hoc} ab. Pakete, die links von @option{--ad-hoc} stehen, werden als Pakete interpretiert, deren Abhängigkeiten zur Umgebung hinzugefügt werden. Pakete, die rechts stehen, werden selbst zur Umgebung hinzugefügt. Zum Beispiel erzeugt der folgende Befehl eine Guix-Entwicklungsumgebung, die zusätzlich Git und strace umfasst:" #. type: example #: guix-git/doc/guix.texi:6555 #, no-wrap msgid "guix environment --pure guix --ad-hoc git strace\n" msgstr "guix environment --pure guix --ad-hoc git strace\n" #. type: Plain text #: guix-git/doc/guix.texi:6565 msgid "Sometimes it is desirable to isolate the environment as much as possible, for maximal purity and reproducibility. In particular, when using Guix on a host distro that is not Guix System, it is desirable to prevent access to @file{/usr/bin} and other system-wide resources from the development environment. For example, the following command spawns a Guile REPL in a ``container'' where only the store and the current working directory are mounted:" msgstr "Manchmal ist es wünschenswert, die Umgebung so viel wie möglich zu isolieren, um maximale Reinheit und Reproduzierbarkeit zu bekommen. Insbesondere ist es wünschenswert, den Zugriff auf @file{/usr/bin} und andere Systemressourcen aus der Entwicklungsumgebung heraus zu verhindern, wenn man Guix auf einer fremden Wirtsdistribution benutzt, die nicht Guix System ist. Zum Beispiel startet der folgende Befehl eine Guile-REPL in einer isolierten Umgebung, einem sogenannten „Container“, in der nur der Store und das aktuelle Arbeitsverzeichnis eingebunden sind:" #. type: example #: guix-git/doc/guix.texi:6568 #, no-wrap msgid "guix environment --ad-hoc --container guile -- guile\n" msgstr "guix environment --ad-hoc --container guile -- guile\n" #. type: quotation #: guix-git/doc/guix.texi:6572 msgid "The @option{--container} option requires Linux-libre 3.19 or newer." msgstr "Die Befehlszeilenoption @option{--container} funktioniert nur mit Linux-libre 3.19 oder neuer." #. type: cindex #: guix-git/doc/guix.texi:6574 #, no-wrap msgid "certificates" msgstr "Zertifikate" #. type: Plain text #: guix-git/doc/guix.texi:6581 msgid "Another typical use case for containers is to run security-sensitive applications such as a web browser. To run Eolie, we must expose and share some files and directories; we include @code{nss-certs} and expose @file{/etc/ssl/certs/} for HTTPS authentication; finally we preserve the @env{DISPLAY} environment variable since containerized graphical applications won't display without it." msgstr "Ein weiterer typischer Anwendungsfall für Container ist, gegenüber Sicherheitslücken anfällige Anwendungen auszuführen, z.B.@: Webbrowser. Um Eolie auszuführen, müssen wir den Zugriff auf manche Dateien und Verzeichnisse über @option{--expose} und @option{--share} gewähren. Wir lassen @code{nss-certs} bereitstellen und machen @file{/etc/ssl/certs/} für die HTTPS-Authentifizierung sichtbar. Zu guter Letzt behalten wir die @env{DISPLAY}-Umgebungsvariable bei, weil isolierte grafische Anwendungen ohne sie nicht angezeigt werden können." #. type: example #: guix-git/doc/guix.texi:6588 #, no-wrap msgid "" "guix environment --preserve='^DISPLAY$' --container --network \\\n" " --expose=/etc/machine-id \\\n" " --expose=/etc/ssl/certs/ \\\n" " --share=$HOME/.local/share/eolie/=$HOME/.local/share/eolie/ \\\n" " --ad-hoc eolie nss-certs dbus -- eolie\n" msgstr "" "guix environment --preserve='^DISPLAY$' --container --network \\\n" " --expose=/etc/machine-id \\\n" " --expose=/etc/ssl/certs/ \\\n" " --share=$HOME/.local/share/eolie/=$HOME/.local/share/eolie/ \\\n" " --ad-hoc eolie nss-certs dbus -- eolie\n" #. type: table #: guix-git/doc/guix.texi:6597 msgid "Set up the environment and check whether the shell would clobber environment variables. @xref{Invoking guix shell, @option{--check}}, for more info." msgstr "Hiermit wird die Umgebung angelegt und gemeldet, ob die Shell Umgebungsvariable überschreiben würde. Siehe @ref{Invoking guix shell, @option{--check}} für weitere Informationen." #. type: table #: guix-git/doc/guix.texi:6613 msgid "When this option is omitted, the environment is protected from garbage collection only for the duration of the @command{guix environment} session. This means that next time you recreate the same environment, you could have to rebuild or re-download packages. @xref{Invoking guix gc}, for more on GC roots." msgstr "Wird diese Option weggelassen, ist die Umgebung nur, solange die Sitzung von @command{guix environment} besteht, vor dem Müllsammler sicher. Das bedeutet, wenn Sie das nächste Mal dieselbe Umgebung neu erzeugen, müssen Sie vielleicht Pakete neu erstellen oder neu herunterladen. @ref{Invoking guix gc} hat mehr Informationen über Müllsammlerwurzeln." #. type: example #: guix-git/doc/guix.texi:6623 #, no-wrap msgid "guix environment -e '(@@ (gnu packages maths) petsc-openmpi)'\n" msgstr "guix environment -e '(@@ (gnu packages maths) petsc-openmpi)'\n" #. type: example #: guix-git/doc/guix.texi:6632 #, no-wrap msgid "guix environment --ad-hoc -e '(@@ (gnu) %base-packages)'\n" msgstr "guix environment --ad-hoc -e '(@@ (gnu) %base-packages)'\n" #. type: example #: guix-git/doc/guix.texi:6641 #, no-wrap msgid "guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) \"include\")'\n" msgstr "guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) \"include\")'\n" #. type: item #: guix-git/doc/guix.texi:6643 #, no-wrap msgid "--load=@var{file}" msgstr "--load=@var{Datei}" #. type: itemx #: guix-git/doc/guix.texi:6644 #, no-wrap msgid "-l @var{file}" msgstr "-l @var{Datei}" #. type: table #: guix-git/doc/guix.texi:6647 msgid "Create an environment for the package or list of packages that the code within @var{file} evaluates to." msgstr "Eine Umgebung erstellen für das Paket oder die Liste von Paketen, zu der der Code in der @var{Datei} ausgewertet wird." #. type: table #: guix-git/doc/guix.texi:6668 msgid "@xref{shell-export-manifest, @command{guix shell --export-manifest}}, for information on how to ``convert'' command-line options into a manifest." msgstr "Siehe @ref{shell-export-manifest, @command{guix shell --export-manifest}} für Informationen, wie Sie Befehlszeilenoptionen in ein Manifest „verwandeln“ können." #. type: item #: guix-git/doc/guix.texi:6669 #, no-wrap msgid "--ad-hoc" msgstr "--ad-hoc" #. type: table #: guix-git/doc/guix.texi:6674 msgid "Include all specified packages in the resulting environment, as if an @i{ad hoc} package were defined with them as inputs. This option is useful for quickly creating an environment without having to write a package expression to contain the desired inputs." msgstr "Alle angegebenen Pakete in der resultierenden Umgebung einschließen, als wären sie Eingaben eines @i{ad hoc} definierten Pakets. Diese Befehlszeilenoption ist nützlich, um schnell Umgebungen aufzusetzen, ohne dafür einen Paketausdruck schreiben zu müssen, der die gewünschten Eingaben enthält." #. type: table #: guix-git/doc/guix.texi:6676 msgid "For instance, the command:" msgstr "Zum Beispiel wird mit diesem Befehl:" #. type: example #: guix-git/doc/guix.texi:6679 #, no-wrap msgid "guix environment --ad-hoc guile guile-sdl -- guile\n" msgstr "guix environment --ad-hoc guile guile-sdl -- guile\n" #. type: table #: guix-git/doc/guix.texi:6683 msgid "runs @command{guile} in an environment where Guile and Guile-SDL are available." msgstr "@command{guile} in einer Umgebung ausgeführt, in der sowohl Guile als auch Guile-SDL zur Verfügung stehen." #. type: table #: guix-git/doc/guix.texi:6688 msgid "Note that this example implicitly asks for the default output of @code{guile} and @code{guile-sdl}, but it is possible to ask for a specific output---e.g., @code{glib:bin} asks for the @code{bin} output of @code{glib} (@pxref{Packages with Multiple Outputs})." msgstr "Beachten Sie, dass in diesem Beispiel implizit die vorgegebene Ausgabe von @code{guile} und @code{guile-sdl} verwendet wird, es aber auch möglich ist, eine bestimmte Ausgabe auszuwählen@tie{}– z.B.@: wird mit @code{glib:bin} die Ausgabe @code{bin} von @code{glib} gewählt (siehe @ref{Packages with Multiple Outputs})." #. type: table #: guix-git/doc/guix.texi:6694 msgid "This option may be composed with the default behavior of @command{guix environment}. Packages appearing before @option{--ad-hoc} are interpreted as packages whose dependencies will be added to the environment, the default behavior. Packages appearing after are interpreted as packages that will be added to the environment directly." msgstr "Diese Befehlszeilenoption kann mit dem standardmäßigen Verhalten von @command{guix environment} verbunden werden. Pakete, die vor @option{--ad-hoc} aufgeführt werden, werden als Pakete interpretiert, deren Abhängigkeiten zur Umgebung hinzugefügt werden, was dem standardmäßigen Verhalten entspricht. Pakete, die danach aufgeführt werden, werden selbst zur Umgebung hinzugefügt." #. type: example #: guix-git/doc/guix.texi:6716 #, no-wrap msgid "" "guix environment --pure --preserve=^SLURM --ad-hoc openmpi @dots{} \\\n" " -- mpirun @dots{}\n" msgstr "" "guix environment --pure --preserve=^SLURM --ad-hoc openmpi …@: \\\n" " -- mpirun …\n" #. type: table #: guix-git/doc/guix.texi:6759 msgid "For containers, link the environment profile to @file{~/.guix-profile} within the container and set @code{GUIX_ENVIRONMENT} to that. This is equivalent to making @file{~/.guix-profile} a symlink to the actual profile within the container. Linking will fail and abort the environment if the directory already exists, which will certainly be the case if @command{guix environment} was invoked in the user's home directory." msgstr "Bei isolierten Umgebungen („Containern“) wird das Umgebungsprofil im Container als @file{~/.guix-profile} verknüpft und @file{~/.guix-profile} dann in @code{GUIX_ENVIRONMENT} gespeichert. Das ist äquivalent dazu, @file{~/.guix-profile} im Container zu einer symbolischen Verknüpfung auf das tatsächliche Profil zu machen. Wenn das Verzeichnis bereits existiert, schlägt das Verknüpfen fehl und die Umgebung wird nicht hergestellt. Dieser Fehler wird immer eintreten, wenn @command{guix environment} im persönlichen Verzeichnis des Benutzers aufgerufen wurde." #. type: example #: guix-git/doc/guix.texi:6786 #, no-wrap msgid "" "# will expose paths as /home/foo/wd, /home/foo/test, and /home/foo/target\n" "cd $HOME/wd\n" "guix environment --container --user=foo \\\n" " --expose=$HOME/test \\\n" " --expose=/tmp/target=$HOME/target\n" msgstr "" "# wird Pfade als /home/foo/wd, /home/foo/test und /home/foo/target exponieren\n" "cd $HOME/wd\n" "guix environment --container --user=foo \\\n" " --expose=$HOME/test \\\n" " --expose=/tmp/target=$HOME/target\n" #. type: example #: guix-git/doc/guix.texi:6814 #, no-wrap msgid "guix environment --container --expose=$HOME=/exchange --ad-hoc guile -- guile\n" msgstr "guix environment --container --expose=$HOME=/austausch --ad-hoc guile -- guile\n" #. type: table #: guix-git/doc/guix.texi:6831 msgid "For containers, emulate a Filesystem Hierarchy Standard (FHS) configuration within the container, see @uref{https://refspecs.linuxfoundation.org/fhs.shtml, the official specification}. As Guix deviates from the FHS specification, this option sets up the container to more closely mimic that of other GNU/Linux distributions. This is useful for reproducing other development environments, testing, and using programs which expect the FHS specification to be followed. With this option, the container will include a version of @code{glibc} which will read @code{/etc/ld.so.cache} within the container for the shared library cache (contrary to @code{glibc} in regular Guix usage) and set up the expected FHS directories: @code{/bin}, @code{/etc}, @code{/lib}, and @code{/usr} from the container's profile." msgstr "In Containern wird eine Konfiguration emuliert, die dem Filesystem Hierarchy Standard (FHS) folgt, siehe @uref{https://refspecs.linuxfoundation.org/fhs.shtml, dessen offizielle Spezifikation}. Obwohl Guix vom FHS-Standard abweicht, kann das System in Ihrem Container mit dieser Befehlszeilenoption zu anderen GNU/Linux-Distributionen ähnlicher werden. Dadurch lassen sich dortige Entwicklungsumgebungen reproduzieren und Sie können Programme testen und benutzen, die das Befolgen des FHS-Standards voraussetzen. Wenn die Option angegeben wird, enthält der Container eine Version von glibc, die die im Container befindliche @file{/etc/ld.so.cache} als Zwischenspeicher gemeinsamer Bibliotheken ausliest (anders als glibc im normalen Gebrauch von Guix), und die im FHS verlangten Verzeichnisse @file{/bin}, @file{/etc}, @file{/lib} und @file{/usr} werden aus dem Profil des Containers übernommen." #. type: Plain text #: guix-git/doc/guix.texi:6838 msgid "@command{guix environment} also supports all of the common build options that @command{guix build} supports (@pxref{Common Build Options}) as well as package transformation options (@pxref{Package Transformation Options})." msgstr "@command{guix environment} unterstützt auch alle gemeinsamen Erstellungsoptionen, die von @command{guix build} unterstützt werden (siehe @ref{Common Build Options}), und die Paketumwandlungsoptionen (siehe @ref{Package Transformation Options})." #. type: section #: guix-git/doc/guix.texi:6840 #, no-wrap msgid "Invoking @command{guix pack}" msgstr "@command{guix pack} aufrufen" #. type: command{#1} #: guix-git/doc/guix.texi:6842 #, no-wrap msgid "guix pack" msgstr "guix pack" #. type: Plain text #: guix-git/doc/guix.texi:6848 msgid "Occasionally you want to pass software to people who are not (yet!) lucky enough to be using Guix. You'd tell them to run @command{guix package -i @var{something}}, but that's not possible in this case. This is where @command{guix pack} comes in." msgstr "Manchmal möchten Sie Software an Leute weitergeben, die (noch!) nicht das Glück haben, Guix zu benutzen. Mit Guix würden sie nur @command{guix package -i @var{irgendetwas}} einzutippen brauchen, aber wenn sie kein Guix haben, muss es anders gehen. Hier kommt @command{guix pack} ins Spiel." #. type: quotation #: guix-git/doc/guix.texi:6853 msgid "If you are looking for ways to exchange binaries among machines that already run Guix, @pxref{Invoking guix copy}, @ref{Invoking guix publish}, and @ref{Invoking guix archive}." msgstr "Wenn Sie aber nach einer Möglichkeit suchen, Binärdateien unter Maschinen auszutauschen, auf denen Guix bereits läuft, sollten Sie einen Blick auf die Abschnitte @ref{Invoking guix copy}, @ref{Invoking guix publish} und @ref{Invoking guix archive} werfen." #. type: cindex #: guix-git/doc/guix.texi:6855 #, no-wrap msgid "pack" msgstr "Pack" #. type: cindex #: guix-git/doc/guix.texi:6856 #, no-wrap msgid "bundle" msgstr "Bündel" #. type: cindex #: guix-git/doc/guix.texi:6857 #, no-wrap msgid "application bundle" msgstr "Anwendungsbündel" #. type: cindex #: guix-git/doc/guix.texi:6858 #, no-wrap msgid "software bundle" msgstr "Software-Bündel" #. type: Plain text #: guix-git/doc/guix.texi:6867 msgid "The @command{guix pack} command creates a shrink-wrapped @dfn{pack} or @dfn{software bundle}: it creates a tarball or some other archive containing the binaries of the software you're interested in, and all its dependencies. The resulting archive can be used on any machine that does not have Guix, and people can run the exact same binaries as those you have with Guix. The pack itself is created in a bit-reproducible fashion, so anyone can verify that it really contains the build results that you pretend to be shipping." msgstr "Der Befehl @command{guix pack} erzeugt ein gut verpacktes @dfn{Software-Bündel}: Konkret wird dadurch ein Tarball oder eine andere Art von Archiv mit den Binärdateien der Software erzeugt, die Sie sich gewünscht haben, zusammen mit all ihren Abhängigkeiten. Der resultierende Archiv kann auch auf jeder Maschine genutzt werden, die kein Guix hat, und jeder kann damit genau dieselben Binärdateien benutzen, die Ihnen unter Guix zur Verfügung stehen. Das Bündel wird dabei auf eine Bit für Bit reproduzierbare Art erzeugt, damit auch jeder nachprüfen kann, dass darin wirklich diejenigen Binärdateien enthalten sind, von denen Sie es behaupten." #. type: Plain text #: guix-git/doc/guix.texi:6870 msgid "For example, to create a bundle containing Guile, Emacs, Geiser, and all their dependencies, you can run:" msgstr "Um zum Beispiel ein Bündel mit Guile, Emacs, Geiser und all ihren Abhängigkeiten zu erzeugen, führen Sie diesen Befehl aus:" #. type: example #: guix-git/doc/guix.texi:6875 #, no-wrap msgid "" "$ guix pack guile emacs emacs-geiser\n" "@dots{}\n" "/gnu/store/@dots{}-pack.tar.gz\n" msgstr "" "$ guix pack guile emacs emacs-geiser\n" "…\n" "/gnu/store/…-pack.tar.gz\n" #. type: Plain text #: guix-git/doc/guix.texi:6883 msgid "The result here is a tarball containing a @file{/gnu/store} directory with all the relevant packages. The resulting tarball contains a @dfn{profile} with the three packages of interest; the profile is the same as would be created by @command{guix package -i}. It is this mechanism that is used to create Guix's own standalone binary tarball (@pxref{Binary Installation})." msgstr "Als Ergebnis erhalten Sie einen Tarball mit einem Verzeichnis @file{/gnu/store}, worin sich alles relevanten Pakete befinden. Der resultierende Tarball enthält auch ein @dfn{Profil} mit den drei angegebenen Paketen; es ist dieselbe Art von Profil, die auch @command{guix package -i} erzeugen würde. Mit diesem Mechanismus wird auch der binäre Tarball zur Installation von Guix erzeugt (siehe @ref{Binary Installation})." #. type: Plain text #: guix-git/doc/guix.texi:6888 msgid "Users of this pack would have to run @file{/gnu/store/@dots{}-profile/bin/guile} to run Guile, which you may find inconvenient. To work around it, you can create, say, a @file{/opt/gnu/bin} symlink to the profile:" msgstr "Benutzer des Bündels müssten dann aber zum Beispiel @file{/gnu/store/…-profile/bin/guile} eintippen, um Guile auszuführen, was Ihnen zu unbequem sein könnte. Ein Ausweg wäre, dass Sie etwa eine symbolische Verknüpfung @file{/opt/gnu/bin} auf das Profil anlegen:" #. type: example #: guix-git/doc/guix.texi:6891 #, no-wrap msgid "guix pack -S /opt/gnu/bin=bin guile emacs emacs-geiser\n" msgstr "guix pack -S /opt/gnu/bin=bin guile emacs emacs-geiser\n" #. type: Plain text #: guix-git/doc/guix.texi:6895 msgid "That way, users can happily type @file{/opt/gnu/bin/guile} and enjoy." msgstr "Benutzer müssten dann nur noch @file{/opt/gnu/bin/guile} eintippen, um Guile zu genießen." #. type: cindex #: guix-git/doc/guix.texi:6896 #, no-wrap msgid "relocatable binaries, with @command{guix pack}" msgstr "verschiebliche Binärdateien, mit @command{guix pack}" #. type: Plain text #: guix-git/doc/guix.texi:6904 msgid "What if the recipient of your pack does not have root privileges on their machine, and thus cannot unpack it in the root file system? In that case, you will want to use the @option{--relocatable} option (see below). This option produces @dfn{relocatable binaries}, meaning they can be placed anywhere in the file system hierarchy: in the example above, users can unpack your tarball in their home directory and directly run @file{./opt/gnu/bin/guile}." msgstr "Doch was ist, wenn die Empfängerin Ihres Bündels keine Administratorrechte auf ihrer Maschine hat, das Bündel also nicht ins Wurzelverzeichnis ihres Dateisystems entpacken kann? Dann möchten Sie vielleicht die Befehlszeilenoption @option{--relocatable} benutzen (siehe weiter unten). Mit dieser Option werden @dfn{verschiebliche Binärdateien} erzeugt, die auch in einem beliebigen anderen Verzeichnis in der Dateisystemhierarchie abgelegt und von dort ausgeführt werden können. Man könnte sagen, sie sind pfad-agnostisch. In obigem Beispiel würden Benutzer Ihren Tarball in ihr Persönliches Verzeichnis (das „Home“-Verzeichnis) entpacken und von dort den Befehl @file{./opt/gnu/bin/guile} ausführen." #. type: cindex #: guix-git/doc/guix.texi:6905 #, no-wrap msgid "Docker, build an image with guix pack" msgstr "Docker, ein Abbild erstellen mit guix pack" #. type: Plain text #: guix-git/doc/guix.texi:6908 msgid "Alternatively, you can produce a pack in the Docker image format using the following command:" msgstr "Eine weitere Möglichkeit ist, das Bündel im Format eines Docker-Abbilds (englisch Docker-Image) zu erzeugen. Das geht mit dem folgenden Befehl:" #. type: example #: guix-git/doc/guix.texi:6911 #, no-wrap msgid "guix pack -f docker -S /bin=bin guile guile-readline\n" msgstr "guix pack -f docker -S /bin=bin guile guile-readline\n" #. type: Plain text #: guix-git/doc/guix.texi:6916 msgid "The result is a tarball that can be passed to the @command{docker load} command, followed by @code{docker run}:" msgstr "Das Ergebnis ist ein Tarball, der dem Befehl @command{docker load} übergeben werden kann, gefolgt von @code{docker run}:" #. type: example #: guix-git/doc/guix.texi:6920 #, no-wrap msgid "" "docker load < @var{file}\n" "docker run -ti guile-guile-readline /bin/guile\n" msgstr "" "docker load < @var{Datei}\n" "docker run -ti guile-guile-readline /bin/guile\n" #. type: Plain text #: guix-git/doc/guix.texi:6927 msgid "where @var{file} is the image returned by @command{guix pack}, and @code{guile-guile-readline} is its ``image tag''. See the @uref{https://docs.docker.com/engine/reference/commandline/load/, Docker documentation} for more information." msgstr "Dabei steht @var{Datei} für das durch @command{guix pack} gelieferte Abbild und @code{guile-guile-readline} für den „Image-Tag“, der diesem zugewiesen wurde. In der @uref{https://docs.docker.com/engine/reference/commandline/load/, Dokumentation von Docker} finden Sie nähere Informationen." #. type: cindex #: guix-git/doc/guix.texi:6928 #, no-wrap msgid "Singularity, build an image with guix pack" msgstr "Singularity, ein Abbild erstellen mit guix pack" #. type: cindex #: guix-git/doc/guix.texi:6929 #, no-wrap msgid "SquashFS, build an image with guix pack" msgstr "SquashFS, ein Abbild erstellen mit guix pack" #. type: Plain text #: guix-git/doc/guix.texi:6932 msgid "Yet another option is to produce a SquashFS image with the following command:" msgstr "Und noch eine weitere Möglichkeit ist, dass Sie ein SquashFS-Abbild mit folgendem Befehl erzeugen:" #. type: example #: guix-git/doc/guix.texi:6935 #, no-wrap msgid "guix pack -f squashfs bash guile emacs emacs-geiser\n" msgstr "guix pack -f squashfs bash guile emacs emacs-geiser\n" #. type: Plain text #: guix-git/doc/guix.texi:6943 msgid "The result is a SquashFS file system image that can either be mounted or directly be used as a file system container image with the @uref{https://www.sylabs.io/docs/, Singularity container execution environment}, using commands like @command{singularity shell} or @command{singularity exec}." msgstr "Das Ergebnis ist ein SquashFS-Dateisystemabbild, dass entweder als Dateisystem eingebunden oder mit Hilfe der @uref{https://www.sylabs.io/docs/, Singularity-Container-Ausführungsumgebung} als Dateisystemcontainer benutzt werden kann, mit Befehlen wie @command{singularity shell} oder @command{singularity exec}." #. type: Plain text #: guix-git/doc/guix.texi:6945 msgid "Several command-line options allow you to customize your pack:" msgstr "Es gibt mehrere Befehlszeilenoptionen, mit denen Sie Ihr Bündel anpassen können:" #. type: table #: guix-git/doc/guix.texi:6950 msgid "Produce a pack in the given @var{format}." msgstr "Generiert ein Bündel im angegebenen @var{Format}." #. type: table #: guix-git/doc/guix.texi:6952 msgid "The available formats are:" msgstr "Die verfügbaren Formate sind:" #. type: item #: guix-git/doc/guix.texi:6954 #, no-wrap msgid "tarball" msgstr "tarball" #. type: table #: guix-git/doc/guix.texi:6957 msgid "This is the default format. It produces a tarball containing all the specified binaries and symlinks." msgstr "Das standardmäßig benutzte Format. Damit wird ein Tarball generiert, der alle angegebenen Binärdateien und symbolischen Verknüpfungen enthält." #. type: item #: guix-git/doc/guix.texi:6958 #, no-wrap msgid "docker" msgstr "docker" #. type: table #: guix-git/doc/guix.texi:6967 msgid "This produces a tarball that follows the @uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, Docker Image Specification}. By default, the ``repository name'' as it appears in the output of the @command{docker images} command is computed from package names passed on the command line or in the manifest file. Alternatively, the ``repository name'' can also be configured via the @option{--image-tag} option. Refer to @option{--help-docker-format} for more information on such advanced options." msgstr "Generiert einen Tarball gemäß des @uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, Standards für Docker-Abbilder}. Der „Repository-Name“, wie er in der Ausgabe des Befehls @command{docker images} erscheint, wird in der Vorgabeeinstellung anhand der Paketnamen berechnet, die auf der Befehlszeile oder in der Manifest-Datei angegeben wurden. Sie können den Repository-Namen auch über die Befehlszeilenoption @option{--image-tag} festlegen. Siehe die Ausgabe mit @option{--help-docker-format} für mehr Details zu solchen weitergehenden Optionen." #. type: item #: guix-git/doc/guix.texi:6968 #, no-wrap msgid "squashfs" msgstr "squashfs" #. type: table #: guix-git/doc/guix.texi:6972 msgid "This produces a SquashFS image containing all the specified binaries and symlinks, as well as empty mount points for virtual file systems like procfs." msgstr "Generiert ein SquashFS-Abbild, das alle angegebenen Binärdateien und symbolischen Verknüpfungen enthält, sowie leere Einhängepunkte für virtuelle Dateisysteme wie procfs." #. type: quotation #: guix-git/doc/guix.texi:6978 msgid "Singularity @emph{requires} you to provide @file{/bin/sh} in the image. For that reason, @command{guix pack -f squashfs} always implies @code{-S /bin=bin}. Thus, your @command{guix pack} invocation must always start with something like:" msgstr "Für Singularity @emph{müssen} Sie eine @file{/bin/sh} in das Abbild aufnehmen. Aus diesem Grund gilt für @command{guix pack -f squashfs} implizit immer auch @code{-S /bin=bin}. Daher muss Ihr Aufruf von @command{guix pack} immer ungefähr so beginnen:" #. type: example #: guix-git/doc/guix.texi:6981 #, no-wrap msgid "guix pack -f squashfs bash @dots{}\n" msgstr "guix pack -f squashfs bash …\n" #. type: quotation #: guix-git/doc/guix.texi:6986 msgid "If you forget the @code{bash} (or similar) package, @command{singularity run} and @command{singularity exec} will fail with an unhelpful ``no such file or directory'' message." msgstr "Wenn Sie vergessen, das @code{bash}-Paket (oder etwas Ähnliches) zu bündeln, werden @command{singularity run} und @command{singularity exec} mit der wenig hilfreichen Meldung „Datei oder Verzeichnis nicht gefunden“ scheitern." #. type: item #: guix-git/doc/guix.texi:6988 #, no-wrap msgid "deb" msgstr "deb" #. type: cindex #: guix-git/doc/guix.texi:6989 #, no-wrap msgid "Debian, build a .deb package with guix pack" msgstr "Debian, ein .deb-Paket mit guix pack erstellen" #. type: table #: guix-git/doc/guix.texi:6997 msgid "This produces a Debian archive (a package with the @samp{.deb} file extension) containing all the specified binaries and symbolic links, that can be installed on top of any dpkg-based GNU(/Linux) distribution. Advanced options can be revealed via the @option{--help-deb-format} option. They allow embedding control files for more fine-grained control, such as activating specific triggers or providing a maintainer configure script to run arbitrary setup code upon installation." msgstr "Hiermit wird ein Debian-Archiv erzeugt (ein Paket mit der Dateinamenserweiterung „@code{.deb}“), in dem alle angegebenen Binärdateien und symbolischen Verknüpfungen enthalten sind. Es kann auf jeder dpkg-basierten GNU(/Linux)-Distribution installiert werden. Fortgeschrittene Optionen werden Ihnen angezeigt, wenn Sie die Befehlszeilenoption @option{--help-deb-format} angeben. Mit jenen können Control-Dateien hinzugefügt werden für eine genaue Steuerung z.B.@: welche bestimmten Trigger aktiviert werden oder um mit einem Betreuerskript beliebigen Konfigurations-Code einzufügen, der bei Installation ausgeführt werden soll." #. type: example #: guix-git/doc/guix.texi:7000 #, no-wrap msgid "guix pack -f deb -C xz -S /usr/bin/hello=bin/hello hello\n" msgstr "guix pack -f deb -C xz -S /usr/bin/hello=bin/hello hello\n" #. type: quotation #: guix-git/doc/guix.texi:7008 msgid "Because archives produced with @command{guix pack} contain a collection of store items and because each @command{dpkg} package must not have conflicting files, in practice that means you likely won't be able to install more than one such archive on a given system. You can nonetheless pack as many Guix packages as you want in one such archive." msgstr "Weil in den mit @command{guix pack} erzeugten Archiven eine Ansammlung von Store-Objekten enthalten ist und weil in jedem @command{dpkg}-Paket keine im Konflikt stehenden Dateien enthalten sein dürfen, können Sie @i{de facto} wahrscheinlich nur ein einziges mit @command{guix pack} erzeugtes „@code{.deb}“-Archiv je System installieren. Allerdings dürfen beliebig viele Guix-Pakete Teil dieses einen Archivs sein." #. type: quotation #: guix-git/doc/guix.texi:7016 msgid "@command{dpkg} will assume ownership of any files contained in the pack that it does @emph{not} know about. It is unwise to install Guix-produced @samp{.deb} files on a system where @file{/gnu/store} is shared by other software, such as a Guix installation or other, non-deb packs." msgstr "@command{dpkg} übernimmt die Zuständigkeit für alle Dateien, die im Bündel enthalten sind, auch wenn es die Dateien @emph{nicht} kennt. Es ist unklug, mit Guix erzeugte „@code{.deb}“-Dateien auf einem System zu installieren, auf dem @file{/gnu/store} bereits von anderer Software verwendet wird, also wenn z.B.@: Guix bereits installiert ist oder andere Nicht-@code{deb}-Bündel installiert sind." #. type: item #: guix-git/doc/guix.texi:7018 #, no-wrap msgid "rpm" msgstr "rpm" #. type: cindex #: guix-git/doc/guix.texi:7019 #, no-wrap msgid "RPM, build an RPM archive with guix pack" msgstr "RPM, ein RPM-Archiv erstellen mit guix pack" #. type: table #: guix-git/doc/guix.texi:7025 msgid "This produces an RPM archive (a package with the @samp{.rpm} file extension) containing all the specified binaries and symbolic links, that can be installed on top of any RPM-based GNU/Linux distribution. The RPM format embeds checksums for every file it contains, which the @command{rpm} command uses to validate the integrity of the archive." msgstr "Hiermit wird ein RPM-Archiv erzeugt (ein Paket mit der Dateinamenserweiterung „@code{.rpm}“), in dem alle angegebenen Binärdateien und symbolischen Verknüpfungen enthalten sind. Es kann auf jeder RPM-basierten GNU/Linux-Distribution installiert werden. Beim RPM-Format werden Prüfsummen zu jeder enthaltenen Datei eingebettet, welche der @command{rpm}-Befehl benutzt, um die Integrität des Archivs zu gewährleisten." #. type: table #: guix-git/doc/guix.texi:7030 msgid "Advanced RPM-related options are revealed via the @option{--help-rpm-format} option. These options allow embedding maintainer scripts that can run before or after the installation of the RPM archive, for example." msgstr "Fortgeschrittene RPM-bezogene Befehlszeilenoptionen werden Ihnen angezeigt, wenn Sie die Befehlszeilenoption @option{--help-rpm-format} angeben. Mit diesen Befehlszeilenoptionen können Paketbetreuer Skripte einbinden, die zum Beispiel vor oder nach der Installation des RPM-Archivs ablaufen sollen." #. type: table #: guix-git/doc/guix.texi:7034 msgid "The RPM format supports relocatable packages via the @option{--prefix} option of the @command{rpm} command, which can be handy to install an RPM package to a specific prefix." msgstr "Das RPM-Format kennt verschiebbare Pakete. Mit der Befehlszeilenoption @option{--prefix} des @command{rpm}-Befehls ist es Ihnen möglich, ein RPM-Paket unter ein angegebenes Präfix zu installieren." #. type: example #: guix-git/doc/guix.texi:7037 #, no-wrap msgid "guix pack -f rpm -R -C xz -S /usr/bin/hello=bin/hello hello\n" msgstr "guix pack -f rpm -R -C xz -S /usr/bin/hello=bin/hello hello\n" #. type: example #: guix-git/doc/guix.texi:7041 #, no-wrap msgid "sudo rpm --install --prefix=/opt /gnu/store/...-hello.rpm\n" msgstr "sudo rpm --install --prefix=/opt /gnu/store/…-hello.rpm\n" #. type: quotation #: guix-git/doc/guix.texi:7048 msgid "Contrary to Debian packages, conflicting but @emph{identical} files in RPM packages can be installed simultaneously, which means multiple @command{guix pack}-produced RPM packages can usually be installed side by side without any problem." msgstr "Anders als bei Debian-Paketen dürfen mehrere RPM-Pakete gleichzeitig installiert werden, wenn Dateien darin im Konflikt stehen, aber identisch sind. Es ist daher in der Regel problemlos möglich, mehrere mit @command{guix pack} erzeugte RPM-Pakete nebeneinander zu installieren." #. type: quotation #: guix-git/doc/guix.texi:7058 msgid "@command{rpm} assumes ownership of any files contained in the pack, which means it will remove @file{/gnu/store} upon uninstalling a Guix-generated RPM package, unless the RPM package was installed with the @option{--prefix} option of the @command{rpm} command. It is unwise to install Guix-produced @samp{.rpm} packages on a system where @file{/gnu/store} is shared by other software, such as a Guix installation or other, non-rpm packs." msgstr "@command{rpm} übernimmt die Zuständigkeit für alle Dateien, die im Bündel enthalten sind. Folglich wird @command{rpm} das Verzeichnis @file{/gnu/store} einfach löschen, sobald Sie ein mit Guix erzeugtes RPM-Paket deinstallieren, wenn Sie bei der Installation @emph{nicht} die Befehlszeilenoption @option{--prefix} des @command{rpm}-Befehls benutzt haben. Es ist unklug, mit Guix erzeugte „@code{.rpm}“-Dateien auf einem System zu installieren, auf dem @file{/gnu/store} bereits von anderer Software verwendet wird, also wenn z.B.@: Guix bereits installiert ist oder andere Nicht-@code{rpm}-Bündel installiert sind." #. type: cindex #: guix-git/doc/guix.texi:7062 #, no-wrap msgid "relocatable binaries" msgstr "verschiebliche Binärdateien" #. type: item #: guix-git/doc/guix.texi:7063 #, no-wrap msgid "--relocatable" msgstr "--relocatable" #. type: table #: guix-git/doc/guix.texi:7067 msgid "Produce @dfn{relocatable binaries}---i.e., binaries that can be placed anywhere in the file system hierarchy and run from there." msgstr "Erzeugt @dfn{verschiebliche Binärdateien}@tie{}– also pfad-agnostische, „portable“ Binärdateien, die an einer beliebigen Stelle in der Dateisystemhierarchie platziert und von dort ausgeführt werden können." #. type: table #: guix-git/doc/guix.texi:7075 msgid "When this option is passed once, the resulting binaries require support for @dfn{user namespaces} in the kernel Linux; when passed @emph{twice}@footnote{Here's a trick to memorize it: @code{-RR}, which adds PRoot support, can be thought of as the abbreviation of ``Really Relocatable''. Neat, isn't it?}, relocatable binaries fall to back to other techniques if user namespaces are unavailable, and essentially work anywhere---see below for the implications." msgstr "Wenn diese Befehlszeilenoption einmal übergeben wird, funktionieren die erzeugten Binärdateien nur dann, wenn @dfn{Benutzernamensräume} des Linux-Kernels unterstützt werden. Wenn sie @emph{zweimal}@footnote{Es gibt einen Trick, wie Sie sich das merken können: @code{-RR}, womit PRoot-Unterstützung hinzugefügt wird, kann man sich als Abkürzung für „Rundum Relocatable“ oder englisch „Really Relocatable“ vorstellen. Ist das nicht prima?} übergeben wird, laufen die Binärdateien notfalls mit anderen Methoden, wenn keine Benutzernamensräume zur Verfügung stehen, funktionieren also ziemlich überall@tie{}– siehe unten für die Auswirkungen." #. type: table #: guix-git/doc/guix.texi:7077 msgid "For example, if you create a pack containing Bash with:" msgstr "Zum Beispiel können Sie ein Bash enthalltendes Bündel erzeugen mit:" #. type: example #: guix-git/doc/guix.texi:7080 #, no-wrap msgid "guix pack -RR -S /mybin=bin bash\n" msgstr "guix pack -RR -S /meine-bin=bin bash\n" #. type: table #: guix-git/doc/guix.texi:7085 msgid "...@: you can copy that pack to a machine that lacks Guix, and from your home directory as a normal user, run:" msgstr "…@: Sie können dieses dann auf eine Maschine ohne Guix kopieren und als normaler Nutzer aus Ihrem Persönlichen Verzeichnis (auch „Home“-Verzeichnis genannt) dann ausführen mit:" #. type: example #: guix-git/doc/guix.texi:7089 #, no-wrap msgid "" "tar xf pack.tar.gz\n" "./mybin/sh\n" msgstr "" "tar xf pack.tar.gz\n" "./meine-bin/sh\n" #. type: table #: guix-git/doc/guix.texi:7097 msgid "In that shell, if you type @code{ls /gnu/store}, you'll notice that @file{/gnu/store} shows up and contains all the dependencies of @code{bash}, even though the machine actually lacks @file{/gnu/store} altogether! That is probably the simplest way to deploy Guix-built software on a non-Guix machine." msgstr "Wenn Sie in der so gestarteten Shell dann @code{ls /gnu/store} eintippen, sehen Sie, dass Ihnen angezeigt wird, in @file{/gnu/store} befänden sich alle Abhängigkeiten von @code{bash}, obwohl auf der Maschine überhaupt kein Verzeichnis @file{/gnu/store} existiert! Dies ist vermutlich die einfachste Art, mit Guix erstellte Software für eine Maschine ohne Guix auszuliefern." #. type: quotation #: guix-git/doc/guix.texi:7103 msgid "By default, relocatable binaries rely on the @dfn{user namespace} feature of the kernel Linux, which allows unprivileged users to mount or change root. Old versions of Linux did not support it, and some GNU/Linux distributions turn it off." msgstr "Wenn die Voreinstellung verwendet wird, funktionieren verschiebliche Binärdateien nur mit @dfn{Benutzernamensräumen} (englisch @dfn{User namespaces}), einer Funktionalität des Linux-Kernels, mit der Benutzer ohne besondere Berechtigungen Dateisysteme einbinden (englisch „mount“) oder die Wurzel des Dateisystems wechseln können („change root“, kurz „chroot“). Alte Versionen von Linux haben diese Funktionalität noch nicht unterstützt und manche Distributionen von GNU/Linux schalten sie ab." #. type: quotation #: guix-git/doc/guix.texi:7109 msgid "To produce relocatable binaries that work even in the absence of user namespaces, pass @option{--relocatable} or @option{-R} @emph{twice}. In that case, binaries will try user namespace support and fall back to another @dfn{execution engine} if user namespaces are not supported. The following execution engines are supported:" msgstr "Um verschiebliche Binärdateien zu erzeugen, die auch ohne Benutzernamensräume funktionieren, können Sie die Befehlszeilenoption @option{--relocatable} oder @option{-R} @emph{zweimal} angeben. In diesem Fall werden die Binärdateien zuerst überprüfen, ob Benutzernamensräume unterstützt werden, und sonst notfalls einen anderen @dfn{Ausführungstreiber} benutzen, um das Programm auszuführen, wenn Benutzernamensräume nicht unterstützt werden. Folgende Ausführungstreiber werden unterstützt:" #. type: item #: guix-git/doc/guix.texi:7111 guix-git/doc/guix.texi:21098 #, no-wrap msgid "default" msgstr "default" #. type: table #: guix-git/doc/guix.texi:7114 msgid "Try user namespaces and fall back to PRoot if user namespaces are not supported (see below)." msgstr "Es wird versucht, Benutzernamensräume zu verwenden. Sind Benutzernamensräume nicht verfügbar (siehe unten), wird auf PRoot zurückgegriffen." #. type: item #: guix-git/doc/guix.texi:7115 #, no-wrap msgid "performance" msgstr "performance" #. type: table #: guix-git/doc/guix.texi:7118 msgid "Try user namespaces and fall back to Fakechroot if user namespaces are not supported (see below)." msgstr "Es wird versucht, Benutzernamensräume zu verwenden. Sind Benutzernamensräume nicht verfügbar (siehe unten), wird auf Fakechroot zurückgegriffen." #. type: item #: guix-git/doc/guix.texi:7119 #, no-wrap msgid "userns" msgstr "userns" #. type: table #: guix-git/doc/guix.texi:7122 msgid "Run the program through user namespaces and abort if they are not supported." msgstr "Das Programm wird mit Hilfe von Benutzernamensräumen ausgeführt. Wenn sie nicht unterstützt werden, bricht das Programm ab." #. type: item #: guix-git/doc/guix.texi:7123 #, no-wrap msgid "proot" msgstr "proot" #. type: table #: guix-git/doc/guix.texi:7130 msgid "Run through PRoot. The @uref{https://proot-me.github.io/, PRoot} program provides the necessary support for file system virtualization. It achieves that by using the @code{ptrace} system call on the running program. This approach has the advantage to work without requiring special kernel support, but it incurs run-time overhead every time a system call is made." msgstr "Durch PRoot ausführen. Das Programm @uref{https://proot-me.github.io/, PRoot} bietet auch Unterstützung für Dateisystemvirtualisierung, indem der Systemaufruf @code{ptrace} auf das laufende Programm angewendet wird. Dieser Ansatz funktioniert auch ohne besondere Kernel-Unterstützung, aber das Programm braucht mehr Zeit, um selbst Systemaufrufe durchzuführen." #. type: item #: guix-git/doc/guix.texi:7131 #, no-wrap msgid "fakechroot" msgstr "fakechroot" #. type: table #: guix-git/doc/guix.texi:7139 msgid "Run through Fakechroot. @uref{https://github.com/dex4er/fakechroot/, Fakechroot} virtualizes file system accesses by intercepting calls to C library functions such as @code{open}, @code{stat}, @code{exec}, and so on. Unlike PRoot, it incurs very little overhead. However, it does not always work: for example, some file system accesses made from within the C library are not intercepted, and file system accesses made @i{via} direct syscalls are not intercepted either, leading to erratic behavior." msgstr "Durch Fakechroot laufen lassen. @uref{https://github.com/dex4er/fakechroot/, Fakechroot} virtualisiert Dateisystemzugriffe, indem Aufrufe von Funktionen der C-Bibliothek wie @code{open}, @code{stat}, @code{exec} und so weiter abgefangen werden. Anders als bei PRoot entsteht dabei kaum Mehraufwand. Jedoch funktioniert das nicht immer, zum Beispiel werden manche Dateisystemzugriffe aus der C-Bibliothek heraus @emph{nicht} abgefangen, ebenso wenig wie Dateisystemaufrufe über direkte Systemaufrufe, was zu fehlerbehaftetem Verhalten führt." #. type: vindex #: guix-git/doc/guix.texi:7141 #, no-wrap msgid "GUIX_EXECUTION_ENGINE" msgstr "GUIX_EXECUTION_ENGINE" #. type: quotation #: guix-git/doc/guix.texi:7145 msgid "When running a wrapped program, you can explicitly request one of the execution engines listed above by setting the @env{GUIX_EXECUTION_ENGINE} environment variable accordingly." msgstr "Wenn Sie ein verpacktes Programm ausführen, können Sie einen der oben angeführten Ausführungstreiber ausdrücklich anfordern, indem Sie die Umgebungsvariable @env{GUIX_EXECUTION_ENGINE} entsprechend festlegen." #. type: cindex #: guix-git/doc/guix.texi:7147 #, no-wrap msgid "entry point, for Docker and Singularity images" msgstr "Einsprungpunkt, für Docker- und Singularity-Abbilder" #. type: item #: guix-git/doc/guix.texi:7148 #, no-wrap msgid "--entry-point=@var{command}" msgstr "--entry-point=@var{Befehl}" #. type: table #: guix-git/doc/guix.texi:7153 msgid "Use @var{command} as the @dfn{entry point} of the resulting pack, if the pack format supports it---currently @code{docker} and @code{squashfs} (Singularity) support it. @var{command} must be relative to the profile contained in the pack." msgstr "Den @var{Befehl} als den @dfn{Einsprungpunkt} des erzeugten Bündels verwenden, wenn das Bündelformat einen solchen unterstützt@tie{}– derzeit tun das @code{docker} und @code{squashfs} (Singularity). Der @var{Befehl} wird relativ zum Profil ausgeführt, das sich im Bündel befindet." #. type: table #: guix-git/doc/guix.texi:7157 msgid "The entry point specifies the command that tools like @code{docker run} or @code{singularity run} automatically start by default. For example, you can do:" msgstr "Der Einsprungpunkt gibt den Befehl an, der mit @code{docker run} oder @code{singularity run} beim Start nach Voreinstellung automatisch ausgeführt wird. Zum Beispiel können Sie das hier benutzen:" #. type: example #: guix-git/doc/guix.texi:7160 #, no-wrap msgid "guix pack -f docker --entry-point=bin/guile guile\n" msgstr "guix pack -f docker --entry-point=bin/guile guile\n" #. type: table #: guix-git/doc/guix.texi:7164 msgid "The resulting pack can easily be loaded and @code{docker run} with no extra arguments will spawn @code{bin/guile}:" msgstr "Dann kann das erzeugte Bündel mit z.B.@: @code{docker run} ohne weitere Befehlszeilenargumente einfach geladen und ausgeführt werden, um @code{bin/guile} zu starten:" #. type: example #: guix-git/doc/guix.texi:7168 #, no-wrap msgid "" "docker load -i pack.tar.gz\n" "docker run @var{image-id}\n" msgstr "" "docker load -i pack.tar.gz\n" "docker run @var{Abbild-ID}\n" #. type: cindex #: guix-git/doc/guix.texi:7170 #, no-wrap msgid "entry point arguments, for docker images" msgstr "Einsprungpunktargumente, für Docker-Abbilder" #. type: item #: guix-git/doc/guix.texi:7171 #, no-wrap msgid "--entry-point-argument=@var{command}" msgstr "--entry-point-argument=@var{Befehl}" #. type: itemx #: guix-git/doc/guix.texi:7172 #, no-wrap msgid "-A @var{command}" msgstr "-A @var{Befehl}" #. type: table #: guix-git/doc/guix.texi:7176 msgid "Use @var{command} as an argument to @dfn{entry point} of the resulting pack. This option is only valid in conjunction with @code{--entry-point} and can appear multiple times on the command line." msgstr "@var{Befehl} als Argument zum @dfn{Einsprungpunkt} des erzeugten Bündels mitgeben. Diese Befehlszeilenoption wirkt sich nur in Verbindung mit @code{--entry-point} aus und sie darf auf der Befehlszeile mehrmals angegeben werden." #. type: example #: guix-git/doc/guix.texi:7179 #, no-wrap msgid "guix pack -f docker --entry-point=bin/guile --entry-point-argument=\"--help\" guile\n" msgstr "guix pack -f docker --entry-point=bin/guile --entry-point-argument=\"--help\" guile\n" #. type: cindex #: guix-git/doc/guix.texi:7181 #, no-wrap msgid "maximum layers argument, for docker images" msgstr "maximale Schichtenanzahl, für Docker-Abbilder" #. type: item #: guix-git/doc/guix.texi:7182 #, no-wrap msgid "--max-layers=@code{n}" msgstr "--max-layers=@code{n}" #. type: table #: guix-git/doc/guix.texi:7185 msgid "Specifies the maximum number of Docker image layers allowed when building an image." msgstr "Gibt an, auf wie viele Schichten ein Docker-Abbild höchstens aufgeteilt werden soll, wenn das Abbild erzeugt wird." #. type: example #: guix-git/doc/guix.texi:7188 #, no-wrap msgid "guix pack -f docker --max-layers=100 guile\n" msgstr "guix pack -f docker --max-layers=100 guile\n" #. type: table #: guix-git/doc/guix.texi:7194 msgid "This option allows you to limit the number of layers in a Docker image. Docker images are comprised of multiple layers, and each layer adds to the overall size and complexity of the image. By setting a maximum number of layers, you can control the following effects:" msgstr "Mit dieser Befehlszeilenoption können Sie begrenzen, wie kleinteilig ein Docker-Abbild geschichtet werden soll. Docker-Abbilder können auf mehrere Schichten aufgeteilt werden, wobei das Abbild mit jeder Schicht größer und komplexer wird. Indem Sie die Anzahl Schichten begrenzen, bestimmen Sie, inwieweit folgende Wirkungen erzielt werden sollen:" #. type: item #: guix-git/doc/guix.texi:7196 #, no-wrap msgid "Disk Usage:" msgstr "Platzverbrauch:" #. type: itemize #: guix-git/doc/guix.texi:7199 msgid "Increasing the number of layers can help optimize the disk space required to store multiple images built with a similar package graph." msgstr "Wenn Sie mehr Schichten verwenden, können sich eher mehrere Abbilder gemeinsame Abschnitte ihres Paketgraphen teilen, wenn sich dieser ähnelt." #. type: item #: guix-git/doc/guix.texi:7200 #, no-wrap msgid "Pulling:" msgstr "Ladezeit:" #. type: itemize #: guix-git/doc/guix.texi:7203 msgid "When transferring images between different nodes or systems, having more layers can reduce the time required to pull the image." msgstr "Bei der Übertragung der Abbilder auf andere Knoten oder Systeme müssen Sie bei mehrschichtigen Abbildern in diesem Fall weniger lang warten." #. type: table #: guix-git/doc/guix.texi:7208 guix-git/doc/guix.texi:14786 #: guix-git/doc/guix.texi:15484 guix-git/doc/guix.texi:15894 #: guix-git/doc/guix.texi:16613 msgid "Consider the package @var{expr} evaluates to." msgstr "Als Paket benutzen, wozu der @var{Ausdruck} ausgewertet wird." #. type: table #: guix-git/doc/guix.texi:7212 msgid "This has the same purpose as the same-named option in @command{guix build} (@pxref{Additional Build Options, @option{--expression} in @command{guix build}})." msgstr "Der Zweck hiervon ist derselbe wie bei der gleichnamigen Befehlszeilenoption in @command{guix build} (siehe @ref{Additional Build Options, @option{--expression} in @command{guix build}})." #. type: anchor{#1} #: guix-git/doc/guix.texi:7214 msgid "pack-manifest" msgstr "pack-manifest" #. type: table #: guix-git/doc/guix.texi:7219 msgid "Use the packages contained in the manifest object returned by the Scheme code in @var{file}. This option can be repeated several times, in which case the manifests are concatenated." msgstr "Die Pakete benutzen, die im Manifest-Objekt aufgeführt sind, das vom Scheme-Code in der angegebenen @var{Datei} geliefert wird. Wenn diese Befehlszeilenoption mehrmals wiederholt angegeben wird, werden die Manifeste aneinandergehängt." #. type: table #: guix-git/doc/guix.texi:7227 msgid "This has a similar purpose as the same-named option in @command{guix package} (@pxref{profile-manifest, @option{--manifest}}) and uses the same manifest files. It allows you to define a collection of packages once and use it both for creating profiles and for creating archives for use on machines that do not have Guix installed. Note that you can specify @emph{either} a manifest file @emph{or} a list of packages, but not both." msgstr "Dies hat einen ähnlichen Zweck wie die gleichnamige Befehlszeilenoption in @command{guix package} (siehe @ref{profile-manifest, @option{--manifest}}) und benutzt dieselben Regeln für Manifest-Dateien. Damit können Sie eine Reihe von Paketen einmal definieren und dann sowohl zum Erzeugen von Profilesn als auch zum Erzeugen von Archiven benutzen, letztere für Maschinen, auf denen Guix nicht installiert ist. Beachten Sie, dass Sie @emph{entweder} eine Manifest-Datei @emph{oder} eine Liste von Paketen angeben können, aber nicht beides." #. type: table #: guix-git/doc/guix.texi:7232 msgid "@xref{Writing Manifests}, for information on how to write a manifest. @xref{shell-export-manifest, @command{guix shell --export-manifest}}, for information on how to ``convert'' command-line options into a manifest." msgstr "Siehe @ref{Writing Manifests} für Informationen dazu, wie man ein Manifest schreibt. Siehe @ref{shell-export-manifest, @command{guix shell --export-manifest}} für Informationen, wie Sie Befehlszeilenoptionen in ein Manifest „verwandeln“ können." #. type: item #: guix-git/doc/guix.texi:7238 guix-git/doc/guix.texi:13615 #: guix-git/doc/guix.texi:43038 #, no-wrap msgid "--target=@var{triplet}" msgstr "--target=@var{Tripel}" #. type: cindex #: guix-git/doc/guix.texi:7239 guix-git/doc/guix.texi:7731 #: guix-git/doc/guix.texi:13616 #, no-wrap msgid "cross-compilation" msgstr "Cross-Kompilieren" #. type: table #: guix-git/doc/guix.texi:7243 guix-git/doc/guix.texi:43042 msgid "Cross-build for @var{triplet}, which must be a valid GNU triplet, such as @code{\"aarch64-linux-gnu\"} (@pxref{Specifying target triplets, GNU configuration triplets,, autoconf, Autoconf})." msgstr "Lässt für das angegebene @var{Tripel} cross-erstellen, dieses muss ein gültiges GNU-Tripel wie z.B.@: @code{\"aarch64-linux-gnu\"} sein (siehe @ref{Specifying target triplets, GNU-Tripel für configure,, autoconf, Autoconf})." #. type: item #: guix-git/doc/guix.texi:7244 #, no-wrap msgid "--compression=@var{tool}" msgstr "--compression=@var{Werkzeug}" #. type: itemx #: guix-git/doc/guix.texi:7245 #, no-wrap msgid "-C @var{tool}" msgstr "-C @var{Werkzeug}" #. type: table #: guix-git/doc/guix.texi:7249 msgid "Compress the resulting tarball using @var{tool}---one of @code{gzip}, @code{zstd}, @code{bzip2}, @code{xz}, @code{lzip}, or @code{none} for no compression." msgstr "Komprimiert den resultierenden Tarball mit dem angegebenen @var{Werkzeug}@tie{}– dieses kann @code{gzip}, @code{zstd}, @code{bzip2}, @code{xz}, @code{lzip} oder @code{none} für keine Kompression sein." #. type: anchor{#1} #: guix-git/doc/guix.texi:7251 msgid "pack-symlink-option" msgstr "pack-symlink-option" #. type: table #: guix-git/doc/guix.texi:7255 msgid "Add the symlinks specified by @var{spec} to the pack. This option can appear several times." msgstr "Fügt die in der @var{Spezifikation} festgelegten symbolischen Verknüpfungen zum Bündel hinzu. Diese Befehlszeilenoption darf mehrmals vorkommen." #. type: table #: guix-git/doc/guix.texi:7259 msgid "@var{spec} has the form @code{@var{source}=@var{target}}, where @var{source} is the symlink that will be created and @var{target} is the symlink target." msgstr "Die @var{Spezifikation} muss von der Form @code{@var{Quellort}=@var{Zielort}} sein, wobei der @var{Quellort} der Ort der symbolischen Verknüpfung, die erstellt wird, und @var{Zielort} das Ziel der symbolischen Verknüpfung ist." #. type: table #: guix-git/doc/guix.texi:7262 msgid "For instance, @code{-S /opt/gnu/bin=bin} creates a @file{/opt/gnu/bin} symlink pointing to the @file{bin} sub-directory of the profile." msgstr "Zum Beispiel wird mit @code{-S /opt/gnu/bin=bin} eine symbolische Verknüpfung @file{/opt/gnu/bin} auf das Unterverzeichnis @file{bin} im Profil erzeugt." #. type: item #: guix-git/doc/guix.texi:7263 guix-git/doc/guix.texi:43049 #, no-wrap msgid "--save-provenance" msgstr "--save-provenance" #. type: table #: guix-git/doc/guix.texi:7267 msgid "Save provenance information for the packages passed on the command line. Provenance information includes the URL and commit of the channels in use (@pxref{Channels})." msgstr "Provenienzinformationen für die auf der Befehlszeile übergebenen Pakete speichern. Zu den Provenienzinformationen gehören die URL und der Commit jedes benutzten Kanals (siehe @ref{Channels})." #. type: table #: guix-git/doc/guix.texi:7273 msgid "Provenance information is saved in the @file{/gnu/store/@dots{}-profile/manifest} file in the pack, along with the usual package metadata---the name and version of each package, their propagated inputs, and so on. It is useful information to the recipient of the pack, who then knows how the pack was (supposedly) obtained." msgstr "Provenienzinformationen werden in der Datei @file{/gnu/store/…-profile/manifest} im Bündel zusammen mit den üblichen Paketmetadaten abgespeichert@tie{}– also Name und Version jedes Pakets, welche Eingaben dabei propagiert werden und so weiter. Die Informationen nützen den Empfängern des Bündels, weil sie dann wissen, woraus das Bündel (angeblich) besteht." #. type: table #: guix-git/doc/guix.texi:7279 msgid "This option is not enabled by default because, like timestamps, provenance information contributes nothing to the build process. In other words, there is an infinity of channel URLs and commit IDs that can lead to the same pack. Recording such ``silent'' metadata in the output thus potentially breaks the source-to-binary bitwise reproducibility property." msgstr "Der Vorgabe nach wird diese Befehlszeilenoption @emph{nicht} verwendet, weil Provenienzinformationen genau wie Zeitstempel nichts zum Erstellungsprozess beitragen. Mit anderen Worten gibt es unendlich viele Kanal-URLs und Commit-IDs, aus denen dasselbe Bündel stammen könnte. Wenn solche „stillen“ Metadaten Teil des Ausgabe sind, dann wird also die bitweise Reproduzierbarkeit von Quellcode zu Binärdateien eingeschränkt." #. type: cindex #: guix-git/doc/guix.texi:7282 #, no-wrap msgid "garbage collector root, for packs" msgstr "Müllsammlerwurzel, für Bündel" #. type: table #: guix-git/doc/guix.texi:7285 msgid "Make @var{file} a symlink to the resulting pack, and register it as a garbage collector root." msgstr "Die @var{Datei} zu einer symbolischen Verknüpfung auf das erzeugte Bündel machen und als Müllsammlerwurzel registrieren." #. type: item #: guix-git/doc/guix.texi:7286 #, no-wrap msgid "--localstatedir" msgstr "--localstatedir" #. type: itemx #: guix-git/doc/guix.texi:7287 #, no-wrap msgid "--profile-name=@var{name}" msgstr "--profile-name=@var{Name}" #. type: table #: guix-git/doc/guix.texi:7292 msgid "Include the ``local state directory'', @file{/var/guix}, in the resulting pack, and notably the @file{/var/guix/profiles/per-user/root/@var{name}} profile---by default @var{name} is @code{guix-profile}, which corresponds to @file{~root/.guix-profile}." msgstr "Das „lokale Zustandsverzeichnis“ @file{/var/guix} ins resultierende Bündel aufnehmen, speziell auch das Profil @file{/var/guix/profiles/per-user/root/@var{Name}}@tie{}– der vorgegebene @var{Name} ist @code{guix-profile}, was @file{~root/.guix-profile} entspricht." #. type: table #: guix-git/doc/guix.texi:7298 msgid "@file{/var/guix} contains the store database (@pxref{The Store}) as well as garbage-collector roots (@pxref{Invoking guix gc}). Providing it in the pack means that the store is ``complete'' and manageable by Guix; not providing it pack means that the store is ``dead'': items cannot be added to it or removed from it after extraction of the pack." msgstr "@file{/var/guix} enthält die Store-Datenbank (siehe @ref{The Store}) sowie die Müllsammlerwurzeln (siehe @ref{Invoking guix gc}). Es ins Bündel aufzunehmen, bedeutet, dass der enthaltene Store „vollständig“ ist und von Guix verwaltet werden kann, andernfalls wäre der Store im Bündel „tot“ und nach dem Auspacken des Bündels könnte Guix keine Objekte mehr dort hinzufügen oder entfernen." #. type: table #: guix-git/doc/guix.texi:7301 msgid "One use case for this is the Guix self-contained binary tarball (@pxref{Binary Installation})." msgstr "Ein Anwendungsfall hierfür ist der eigenständige, alle Komponenten umfassende binäre Tarball von Guix (siehe @ref{Binary Installation})." #. type: item #: guix-git/doc/guix.texi:7302 guix-git/doc/guix.texi:43043 #, no-wrap msgid "--derivation" msgstr "--derivation" #. type: itemx #: guix-git/doc/guix.texi:7303 guix-git/doc/guix.texi:13655 #: guix-git/doc/guix.texi:43044 #, no-wrap msgid "-d" msgstr "-d" #. type: table #: guix-git/doc/guix.texi:7305 msgid "Print the name of the derivation that builds the pack." msgstr "Den Namen der Ableitung ausgeben, die das Bündel erstellt." #. type: table #: guix-git/doc/guix.texi:7309 msgid "Use the bootstrap binaries to build the pack. This option is only useful to Guix developers." msgstr "Mit den Bootstrap-Binärdateien das Bündel erstellen. Diese Option ist nur für Guix-Entwickler nützlich." #. type: Plain text #: guix-git/doc/guix.texi:7314 msgid "In addition, @command{guix pack} supports all the common build options (@pxref{Common Build Options}) and all the package transformation options (@pxref{Package Transformation Options})." msgstr "Außerdem unterstützt @command{guix pack} alle gemeinsamen Erstellungsoptionen (siehe @ref{Common Build Options}) und alle Paketumwandlungsoptionen (siehe @ref{Package Transformation Options})." #. type: cindex #: guix-git/doc/guix.texi:7319 #, no-wrap msgid "GCC" msgstr "GCC" #. type: cindex #: guix-git/doc/guix.texi:7320 #, no-wrap msgid "ld-wrapper" msgstr "ld-wrapper" #. type: cindex #: guix-git/doc/guix.texi:7321 #, no-wrap msgid "linker wrapper" msgstr "Wrapper für den Binder/Linker" #. type: cindex #: guix-git/doc/guix.texi:7322 #, no-wrap msgid "toolchain, for C development" msgstr "Toolchain, für die Entwicklung mit C" #. type: cindex #: guix-git/doc/guix.texi:7323 #, no-wrap msgid "toolchain, for Fortran development" msgstr "Toolchain, für die Entwicklung mit Fortran" #. type: Plain text #: guix-git/doc/guix.texi:7330 msgid "If you need a complete toolchain for compiling and linking C or C++ source code, use the @code{gcc-toolchain} package. This package provides a complete GCC toolchain for C/C++ development, including GCC itself, the GNU C Library (headers and binaries, plus debugging symbols in the @code{debug} output), Binutils, and a linker wrapper." msgstr "Wenn Sie einen vollständigen Werkzeugsatz zum Kompilieren und Binden von Quellcode in C oder C++ brauchen, werden Sie das Paket @code{gcc-toolchain} haben wollen. Das Paket bietet eine vollständige GCC-Toolchain für die Entwicklung mit C/C++, einschließlich GCC selbst, der GNU-C-Bibliothek (Header-Dateien und Binärdateien samt Symbolen zur Fehlersuche/Debugging in der @code{debug}-Ausgabe), Binutils und einen Wrapper für den Binder/Linker." #. type: Plain text #: guix-git/doc/guix.texi:7336 msgid "The wrapper's purpose is to inspect the @code{-L} and @code{-l} switches passed to the linker, add corresponding @code{-rpath} arguments, and invoke the actual linker with this new set of arguments. You can instruct the wrapper to refuse to link against libraries not in the store by setting the @env{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} environment variable to @code{no}." msgstr "Der Zweck des Wrappers ist, die an den Binder übergebenen Befehlszeilenoptionen mit @code{-L} und @code{-l} zu überprüfen und jeweils passende Argumente mit @code{-rpath} anzufügen, womit dann der echte Binder aufgerufen wird. Standardmäßig weigert sich der Binder-Wrapper, mit Bibliotheken außerhalb des Stores zu binden, um „Reinheit“ zu gewährleisten. Das kann aber stören, wenn man die Toolchain benutzt, um mit lokalen Bibliotheken zu binden. Um Referenzen auf Bibliotheken außerhalb des Stores zu erlauben, müssen Sie die Umgebungsvariable @env{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} setzen." #. type: Plain text #: guix-git/doc/guix.texi:7340 msgid "The package @code{gfortran-toolchain} provides a complete GCC toolchain for Fortran development. For other languages, please use @samp{guix search gcc toolchain} (@pxref{guix-search,, Invoking guix package})." msgstr "Das Paket @code{gfortran-toolchain} stellt eine vollständige GCC-Toolchain für die Entwicklung mit Fortran zur Verfügung. Pakete für die Entwicklung mit anderen Sprachen suchen Sie bitte mit @samp{guix search gcc toolchain} (siehe @ref{guix-search,, Invoking guix package})." #. type: section #: guix-git/doc/guix.texi:7343 #, no-wrap msgid "Invoking @command{guix git authenticate}" msgstr "@command{guix git authenticate} aufrufen" #. type: command{#1} #: guix-git/doc/guix.texi:7345 #, no-wrap msgid "guix git authenticate" msgstr "guix git authenticate" #. type: cindex #: guix-git/doc/guix.texi:7346 #, no-wrap msgid "authentication, of Git checkouts" msgstr "Authentifizieren, eines Git-Checkouts" #. type: cindex #: guix-git/doc/guix.texi:7347 #, no-wrap msgid "Git checkout authentication" msgstr "Git-Checkout authentifizieren" #. type: Plain text #: guix-git/doc/guix.texi:7355 msgid "The @command{guix git authenticate} command authenticates a Git checkout following the same rule as for channels (@pxref{channel-authentication, channel authentication}). That is, starting from a given commit, it ensures that all subsequent commits are signed by an OpenPGP key whose fingerprint appears in the @file{.guix-authorizations} file of its parent commit(s)." msgstr "Der Befehl @command{guix git authenticate} authentifiziert ein Git-Checkout nach derselben Regel wie für Kanäle (siehe @ref{channel-authentication, Kanalauthentifizierung}). Das bedeutet, dass angefangen beim angegebenen Commit sichergestellt wird, dass alle nachfolgenden Commits mit einem OpenPGP-Schlüssel signiert worden sind, dessen Fingerabdruck in der @file{.guix-authorizations}-Datei seines bzw.@: seiner jeweiligen Elterncommits aufgeführt ist." #. type: Plain text #: guix-git/doc/guix.texi:7360 msgid "You will find this command useful if you maintain a channel. But in fact, this authentication mechanism is useful in a broader context, so you might want to use it for Git repositories that have nothing to do with Guix." msgstr "Sie werden diesen Befehl zu schätzen wissen, wenn Sie einen Kanal betreuen. Tatsächlich ist dieser Authentifizierungsmechanismus aber auch bei weiteren Dingen nützlich; vielleicht möchten Sie ihn für Git-Repositorys einsetzen, die gar nichts mit Guix zu tun haben?" #. type: example #: guix-git/doc/guix.texi:7365 #, no-wrap msgid "guix git authenticate @var{commit} @var{signer} [@var{options}@dots{}]\n" msgstr "guix git authenticate @var{Commit} @var{Unterzeichner} [@var{Optionen}…]\n" #. type: cindex #: guix-git/doc/guix.texi:7367 #, no-wrap msgid "introduction, for Git authentication" msgstr "Einführung, bei Git-Authentifizierung" #. type: Plain text #: guix-git/doc/guix.texi:7377 msgid "By default, this command authenticates the Git checkout in the current directory; it outputs nothing and exits with exit code zero on success and non-zero on failure. @var{commit} above denotes the first commit where authentication takes place, and @var{signer} is the OpenPGP fingerprint of public key used to sign @var{commit}. Together, they form a @dfn{channel introduction} (@pxref{channel-authentication, channel introduction}). On your first successful run, the introduction is recorded in the @file{.git/config} file of your checkout, allowing you to omit them from subsequent invocations:" msgstr "Nach Vorgabe wird mit diesem Befehl das Git-Checkout im aktuellen Arbeitsverzeichnis authentifiziert. Es wird bei Erfolg nichts ausgegeben und der Exit-Status null zurückgeliefert; bei einem Fehler wird ein von null verschiedener Exit-Status zurückgeliefert. @var{Commit} gibt den ersten Commit an, der authentifiziert wird, und @var{Unterzeichner} ist der OpenPGP-Fingerabdruck des öffentlichen Schlüssels, mit dem der @var{Commit} signiert wurde. Zusammen bilden sie eine „Kanaleinführung“ (siehe @ref{channel-authentication, Kanaleinführung}). Bei Ihrer ersten erfolgreichen Ausführung wird die Einführung in der Datei @file{.git/config} in Ihrem Checkout gespeichert, so dass Sie sie bei späteren Aufrufen nicht mehr anzugeben brauchen:" #. type: example #: guix-git/doc/guix.texi:7380 #, no-wrap msgid "guix git authenticate [@var{options}@dots{}]\n" msgstr "guix git authenticate [@var{Optionen}…]\n" #. type: Plain text #: guix-git/doc/guix.texi:7386 msgid "Should you have branches that require different introductions, you can specify them directly in @file{.git/config}. For example, if the branch called @code{personal-fork} has a different introduction than other branches, you can extend @file{.git/config} along these lines:" msgstr "" #. type: smallexample #: guix-git/doc/guix.texi:7392 #, no-wrap msgid "" "[guix \"authentication-personal-fork\"]\n" "\tintroduction-commit = cabba936fd807b096b48283debdcddccfea3900d\n" "\tintroduction-signer = C0FF EECA BBA9 E6A8 0D1D E643 A2A0 6DF2 A33A 54FA\n" "\tkeyring = keyring\n" msgstr "" #. type: Plain text #: guix-git/doc/guix.texi:7398 msgid "The first run also attempts to install pre-push and post-merge hooks, such that @command{guix git authenticate} is invoked as soon as you run @command{git push}, @command{git pull}, and related commands; it does not overwrite preexisting hooks though." msgstr "" #. type: Plain text #: guix-git/doc/guix.texi:7401 #, fuzzy #| msgid "Several command-line options allow you to customize your pack:" msgid "The command-line options described below allow you to fine-tune the process." msgstr "Es gibt mehrere Befehlszeilenoptionen, mit denen Sie Ihr Bündel anpassen können:" #. type: item #: guix-git/doc/guix.texi:7403 #, no-wrap msgid "--repository=@var{directory}" msgstr "--repository=@var{Verzeichnis}" #. type: itemx #: guix-git/doc/guix.texi:7404 #, no-wrap msgid "-r @var{directory}" msgstr "-r @var{Verzeichnis}" #. type: table #: guix-git/doc/guix.texi:7407 msgid "Open the Git repository in @var{directory} instead of the current directory." msgstr "Das Git-Repository im @var{Verzeichnis} statt im aktuellen Verzeichnis öffnen." #. type: item #: guix-git/doc/guix.texi:7408 #, no-wrap msgid "--keyring=@var{reference}" msgstr "--keyring=@var{Referenz}" #. type: itemx #: guix-git/doc/guix.texi:7409 #, no-wrap msgid "-k @var{reference}" msgstr "-k @var{Referenz}" #. type: table #: guix-git/doc/guix.texi:7415 msgid "Load OpenPGP keyring from @var{reference}, the reference of a branch such as @code{origin/keyring} or @code{my-keyring}. The branch must contain OpenPGP public keys in @file{.key} files, either in binary form or ``ASCII-armored''. By default the keyring is loaded from the branch named @code{keyring}." msgstr "Den OpenPGP-Schlüsselbund („Keyring“) von der angegebenen @var{Referenz} laden, einem Verweis auf einen Branch wie @code{origin/keyring} oder @code{my-keyring}. Der Branch muss öffentliche Schlüssel im OpenPGP-Format in @file{.key}-Dateien enthalten, entweder als Binärdateien oder mit „ASCII-Hülle“. Nach Vorgabe wird der Schlüsselbund von einem Branch namens @code{keyring} geladen." #. type: item #: guix-git/doc/guix.texi:7416 #, no-wrap msgid "--end=@var{commit}" msgstr "--end=@var{Commit}" #. type: table #: guix-git/doc/guix.texi:7418 msgid "Authenticate revisions up to @var{commit}." msgstr "Revisionen bis @var{Commit} authentifizieren." #. type: table #: guix-git/doc/guix.texi:7421 msgid "Display commit signing statistics upon completion." msgstr "Nach Abschluss Statistiken über die signierten Commits anzeigen." #. type: item #: guix-git/doc/guix.texi:7422 #, no-wrap msgid "--cache-key=@var{key}" msgstr "--cache-key=@var{Schlüssel}" #. type: table #: guix-git/doc/guix.texi:7426 msgid "Previously-authenticated commits are cached in a file under @file{~/.cache/guix/authentication}. This option forces the cache to be stored in file @var{key} in that directory." msgstr "Bereits authentifizierte Commits werden in einer Datei unter @file{~/.cache/guix/authentication} zwischengespeichert. Diese Option erzwingt, dass der Speicher innerhalb dieses Verzeichnisses in der Datei @var{Schlüssel} angelegt wird." #. type: item #: guix-git/doc/guix.texi:7427 #, no-wrap msgid "--historical-authorizations=@var{file}" msgstr "--historical-authorizations=@var{Datei}" #. type: table #: guix-git/doc/guix.texi:7434 msgid "By default, any commit whose parent commit(s) lack the @file{.guix-authorizations} file is considered inauthentic. In contrast, this option considers the authorizations in @var{file} for any commit that lacks @file{.guix-authorizations}. The format of @var{file} is the same as that of @file{.guix-authorizations} (@pxref{channel-authorizations, @file{.guix-authorizations} format})." msgstr "Nach Vorgabe wird jeder Commit, dessen Elterncommit(s) die Datei @file{.guix-authorizations} fehlt, als gefälscht angesehen. Mit dieser Option werden dagegen die Autorisierungen in der @var{Datei} für jeden Commit ohne @file{.guix-authorizations} verwendet. Das Format der @var{Datei} ist dasselbe wie bei @file{.guix-authorizations} (siehe @ref{channel-authorizations, Format von @file{.guix-authorizations}})." #. type: Plain text #: guix-git/doc/guix.texi:7447 msgid "GNU Guix provides several Scheme programming interfaces (APIs) to define, build, and query packages. The first interface allows users to write high-level package definitions. These definitions refer to familiar packaging concepts, such as the name and version of a package, its build system, and its dependencies. These definitions can then be turned into concrete build actions." msgstr "GNU Guix bietet mehrere Programmierschnittstellen (APIs) in der Programmiersprache Scheme an, mit denen Software-Pakete definiert, erstellt und gesucht werden können. Die erste Schnittstelle erlaubt es Nutzern, ihre eigenen Paketdefinitionen in einer Hochsprache zu schreiben. Diese Definitionen nehmen Bezug auf geläufige Konzepte der Paketverwaltung, wie den Namen und die Version eines Pakets, sein Erstellungssystem (Build System) und seine Abhängigkeiten (Dependencies). Diese Definitionen können dann in konkrete Erstellungsaktionen umgewandelt werden." #. type: Plain text #: guix-git/doc/guix.texi:7453 msgid "Build actions are performed by the Guix daemon, on behalf of users. In a standard setup, the daemon has write access to the store---the @file{/gnu/store} directory---whereas users do not. The recommended setup also has the daemon perform builds in chroots, under specific build users, to minimize interference with the rest of the system." msgstr "Erstellungsaktionen werden vom Guix-Daemon für dessen Nutzer durchgeführt. Bei einer normalen Konfiguration hat der Daemon Schreibzugriff auf den Store, also das Verzeichnis @file{/gnu/store}, Nutzer hingegen nicht. Die empfohlene Konfiguration lässt den Daemon die Erstellungen in chroot-Umgebungen durchführen, mit eigenen Benutzerkonten für „Erstellungsbenutzer“, um gegenseitige Beeinflussung der Erstellung und des übrigen Systems zu minimieren." #. type: Plain text #: guix-git/doc/guix.texi:7462 msgid "Lower-level APIs are available to interact with the daemon and the store. To instruct the daemon to perform a build action, users actually provide it with a @dfn{derivation}. A derivation is a low-level representation of the build actions to be taken, and the environment in which they should occur---derivations are to package definitions what assembly is to C programs. The term ``derivation'' comes from the fact that build results @emph{derive} from them." msgstr "Systemnahe APIs stehen zur Verfügung, um mit dem Daemon und dem Store zu interagieren. Um den Daemon anzuweisen, eine Erstellungsaktion durchzuführen, versorgen ihn Nutzer jeweils mit einer @dfn{Ableitung}. Eine Ableitung ist, wie durchzuführende Erstellungsaktionen, sowie die Umgebungen, in denen sie durchzuführen sind, in Guix eigentlich intern dargestellt werden. Ableitungen verhalten sich zu Paketdefinitionen vergleichbar mit Assembler-Code zu C-Programmen. Der Begriff „Ableitung“ kommt daher, dass Erstellungsergebnisse daraus @emph{abgeleitet} werden." #. type: Plain text #: guix-git/doc/guix.texi:7466 msgid "This chapter describes all these APIs in turn, starting from high-level package definitions. @xref{Source Tree Structure}, for a more general overview of the source code." msgstr "Dieses Kapitel beschreibt der Reihe nach all diese Programmierschnittstellen (APIs), angefangen mit hochsprachlichen Paketdefinitionen. Siehe @ref{Source Tree Structure} für einen Gesamtüberblick über den Quellcode." #. type: Plain text #: guix-git/doc/guix.texi:7498 msgid "From a programming viewpoint, the package definitions of the GNU distribution are provided by Guile modules in the @code{(gnu packages @dots{})} name space@footnote{Note that packages under the @code{(gnu packages @dots{})} module name space are not necessarily ``GNU packages''. This module naming scheme follows the usual Guile module naming convention: @code{gnu} means that these modules are distributed as part of the GNU system, and @code{packages} identifies modules that define packages.} (@pxref{Modules, Guile modules,, guile, GNU Guile Reference Manual}). For instance, the @code{(gnu packages emacs)} module exports a variable named @code{emacs}, which is bound to a @code{<package>} object (@pxref{Defining Packages})." msgstr "Aus Programmierersicht werden die Paketdefinitionen der GNU-Distribution als Guile-Module in Namensräumen wie @code{(gnu packages …)} sichtbar gemacht@footnote{Beachten Sie, dass Pakete unter dem Modulnamensraum @code{(gnu packages …)} nicht notwendigerweise auch „GNU-Pakete“ sind. Dieses Schema für die Benennung von Modulen folgt lediglich den üblichen Guile-Konventionen: @code{gnu} bedeutet, dass die Module als Teil des GNU-Systems ausgeliefert werden, und @code{packages} gruppiert Module mit Paketdefinitionen.} (siehe @ref{Modules, Guile-Module,, guile, Referenzhandbuch zu GNU Guile}). Zum Beispiel exportiert das Modul @code{(gnu packages emacs)} eine Variable namens @code{emacs}, die an ein @code{<package>}-Objekt gebunden ist (siehe @ref{Defining Packages})." #. type: Plain text #: guix-git/doc/guix.texi:7505 msgid "The @code{(gnu packages @dots{})} module name space is automatically scanned for packages by the command-line tools. For instance, when running @code{guix install emacs}, all the @code{(gnu packages @dots{})} modules are scanned until one that exports a package object whose name is @code{emacs} is found. This package search facility is implemented in the @code{(gnu packages)} module." msgstr "Der Modulnamensraum @code{(gnu packages …)} wird von Befehlszeilenwerkzeugen automatisch nach Paketen durchsucht. Wenn Sie zum Beispiel @code{guix install emacs} ausführen, werden alle @code{(gnu packages …)}-Module durchlaufen, bis eines gefunden wird, das ein Paketobjekt mit dem Namen @code{emacs} exportiert. Diese Paketsuchfunktion ist im Modul @code{(gnu packages)} implementiert." #. type: cindex #: guix-git/doc/guix.texi:7507 #, no-wrap msgid "package module search path" msgstr "Paketmodulsuchpfad" #. type: Plain text #: guix-git/doc/guix.texi:7516 msgid "Users can store package definitions in modules with different names---e.g., @code{(my-packages emacs)}@footnote{Note that the file name and module name must match. For instance, the @code{(my-packages emacs)} module must be stored in a @file{my-packages/emacs.scm} file relative to the load path specified with @option{--load-path} or @env{GUIX_PACKAGE_PATH}. @xref{Modules and the File System,,, guile, GNU Guile Reference Manual}, for details.}. There are two ways to make these package definitions visible to the user interfaces:" msgstr "Benutzer können Paketdefinitionen auch in Modulen mit anderen Namen unterbringen@tie{}– z.B.@: @code{(my-packages emacs)}@footnote{Beachten Sie, dass Dateiname und Modulname übereinstimmen müssen. Zum Beispiel muss das Modul @code{(my-packages emacs)} in einer Datei @file{my-packages/emacs.scm} relativ zum mit @option{--load-path} oder @env{GUIX_PACKAGE_PATH} angegebenen Ladepfad stehen. Siehe @ref{Modules and the File System,,, guile, Referenzhandbuch zu GNU Guile} für Details.}. Es gibt zwei Arten, solche Paketdefinitionen für die Benutzungsschnittstelle sichtbar zu machen:" #. type: enumerate #: guix-git/doc/guix.texi:7523 msgid "By adding the directory containing your package modules to the search path with the @code{-L} flag of @command{guix package} and other commands (@pxref{Common Build Options}), or by setting the @env{GUIX_PACKAGE_PATH} environment variable described below." msgstr "Eine Möglichkeit ist, das Verzeichnis, in dem Ihre Paketmodule stehen, mit der Befehlszeilenoption @code{-L} von @command{guix package} und anderen Befehlen (siehe @ref{Common Build Options}) oder durch Setzen der unten beschriebenen Umgebungsvariablen @env{GUIX_PACKAGE_PATH} zum Suchpfad hinzuzufügen." #. type: enumerate #: guix-git/doc/guix.texi:7529 msgid "By defining a @dfn{channel} and configuring @command{guix pull} so that it pulls from it. A channel is essentially a Git repository containing package modules. @xref{Channels}, for more information on how to define and use channels." msgstr "Die andere Möglichkeit ist, einen @dfn{Kanal} zu definieren und @command{guix pull} so zu konfigurieren, dass es davon seine Module bezieht. Ein Kanal ist im Kern nur ein Git-Repository, in welchem Paketmodule liegen. Siehe @ref{Channels} für mehr Informationen, wie Kanäle definiert und benutzt werden." #. type: Plain text #: guix-git/doc/guix.texi:7532 msgid "@env{GUIX_PACKAGE_PATH} works similarly to other search path variables:" msgstr "@env{GUIX_PACKAGE_PATH} funktioniert ähnlich wie andere Variable mit Suchpfaden:" #. type: defvr #: guix-git/doc/guix.texi:7533 #, no-wrap msgid "{Environment Variable} GUIX_PACKAGE_PATH" msgstr "{Umgebungsvariable} GUIX_PACKAGE_PATH" #. type: defvr #: guix-git/doc/guix.texi:7537 msgid "This is a colon-separated list of directories to search for additional package modules. Directories listed in this variable take precedence over the own modules of the distribution." msgstr "Dies ist eine doppelpunktgetrennte Liste von Verzeichnissen, die nach zusätzlichen Paketmodulen durchsucht werden. In dieser Variablen aufgelistete Verzeichnisse haben Vorrang vor den Modulen, die zur Distribution gehören." #. type: Plain text #: guix-git/doc/guix.texi:7545 msgid "The distribution is fully @dfn{bootstrapped} and @dfn{self-contained}: each package is built based solely on other packages in the distribution. The root of this dependency graph is a small set of @dfn{bootstrap binaries}, provided by the @code{(gnu packages bootstrap)} module. For more information on bootstrapping, @pxref{Bootstrapping}." msgstr "Die Distribution wird komplett von Grund auf initialisiert@tie{}– man sagt zur Initialisierung auch @dfn{Bootstrapping}@tie{}– und sie ist @dfn{eigenständig} („self-contained“): Jedes Paket wird nur auf Basis von anderen Paketen in der Distribution erstellt. Die Wurzel dieses Abhängigkeitsgraphen ist ein kleiner Satz von Initialisierungsbinärdateien, den @dfn{Bootstrap-Binärdateien}, die im Modul @code{(gnu packages bootstrap)} verfügbar gemacht werden. Für mehr Informationen über Bootstrapping, siehe @ref{Bootstrapping}." #. type: Plain text #: guix-git/doc/guix.texi:7553 msgid "The high-level interface to package definitions is implemented in the @code{(guix packages)} and @code{(guix build-system)} modules. As an example, the package definition, or @dfn{recipe}, for the GNU Hello package looks like this:" msgstr "Mit den Modulen @code{(guix packages)} und @code{(guix build-system)} können Paketdefinitionen auf einer hohen Abstraktionsebene geschrieben werden. Zum Beispiel sieht die Paketdefinition bzw. das @dfn{Rezept} für das Paket von GNU Hello so aus:" #. type: lisp #: guix-git/doc/guix.texi:7561 #, no-wrap msgid "" "(define-module (gnu packages hello)\n" " #:use-module (guix packages)\n" " #:use-module (guix download)\n" " #:use-module (guix build-system gnu)\n" " #:use-module (guix licenses)\n" " #:use-module (gnu packages gawk))\n" "\n" msgstr "" "(define-module (gnu packages hello)\n" " #:use-module (guix packages)\n" " #:use-module (guix download)\n" " #:use-module (guix build-system gnu)\n" " #:use-module (guix licenses)\n" " #:use-module (gnu packages gawk))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:7580 #, 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" " (arguments '(#:configure-flags '(\"--enable-silent-rules\")))\n" " (inputs (list gawk))\n" " (synopsis \"Hello, GNU world: An example GNU package\")\n" " (description \"Guess what GNU Hello prints!\")\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" " (arguments '(#:configure-flags '(\"--enable-silent-rules\")))\n" " (inputs (list gawk))\n" " (synopsis \"Hello, GNU world: An example GNU package\")\n" " (description \"Guess what GNU Hello prints!\")\n" " (home-page \"https://www.gnu.org/software/hello/\")\n" " (license gpl3+)))\n" #. type: Plain text #: guix-git/doc/guix.texi:7590 msgid "Without being a Scheme expert, the reader may have guessed the meaning of the various fields here. This expression binds the variable @code{hello} to a @code{<package>} object, which is essentially a record (@pxref{SRFI-9, Scheme records,, guile, GNU Guile Reference Manual}). This package object can be inspected using procedures found in the @code{(guix packages)} module; for instance, @code{(package-name hello)} returns---surprise!---@code{\"hello\"}." msgstr "Auch ohne ein Experte in Scheme zu sein, könnten Leser erraten haben, was die verschiedenen Felder dabei bedeuten. Dieser Ausdruck bindet die Variable @code{hello} an ein @code{<package>}-Objekt, was an sich nur ein Verbund (Record) ist (siehe @ref{SRFI-9, Scheme-Verbünde,, guile, Referenzhandbuch zu GNU Guile}). Die Felder dieses Paket-Objekts lassen sich mit den Prozeduren aus dem Modul @code{(guix packages)} auslesen, zum Beispiel liefert @code{(package-name hello)}@tie{}– Überraschung!@tie{}– @code{\"hello\"}." #. type: Plain text #: guix-git/doc/guix.texi:7594 msgid "With luck, you may be able to import part or all of the definition of the package you are interested in from another repository, using the @code{guix import} command (@pxref{Invoking guix import})." msgstr "Mit etwas Glück können Sie die Definition vielleicht teilweise oder sogar ganz aus einer anderen Paketsammlung importieren, indem Sie den Befehl @code{guix import} verwenden (siehe @ref{Invoking guix import})." #. type: Plain text #: guix-git/doc/guix.texi:7600 msgid "In the example above, @code{hello} is defined in a module of its own, @code{(gnu packages hello)}. Technically, this is not strictly necessary, but it is convenient to do so: all the packages defined in modules under @code{(gnu packages @dots{})} are automatically known to the command-line tools (@pxref{Package Modules})." msgstr "In obigem Beispiel wurde @code{hello} in einem eigenen Modul ganz für sich alleine definiert, und zwar @code{(gnu packages hello)}. Technisch gesehen muss es nicht unbedingt in einem solchen Modul definiert werden, aber es ist bequem, denn alle Module unter @code{(gnu packages …)} werden automatisch von den Befehlszeilenwerkzeugen gefunden (siehe @ref{Package Modules})." #. type: Plain text #: guix-git/doc/guix.texi:7602 msgid "There are a few points worth noting in the above package definition:" msgstr "Ein paar Dinge sind noch erwähnenswert in der obigen Paketdefinition:" #. type: itemize #: guix-git/doc/guix.texi:7609 msgid "The @code{source} field of the package is an @code{<origin>} object (@pxref{origin Reference}, for the complete reference). Here, the @code{url-fetch} method from @code{(guix download)} is used, meaning that the source is a file to be downloaded over FTP or HTTP." msgstr "Das @code{source}-Feld für die Quelle des Pakets ist ein @code{<origin>}-Objekt, was den Paketursprung angibt (siehe @ref{origin Reference} für eine vollständige Referenz). Hier wird dafür die Methode @code{url-fetch} aus dem Modul @code{(guix download)} benutzt, d.h.@: die Quelle ist eine Datei, die über FTP oder HTTP heruntergeladen werden soll." #. type: itemize #: guix-git/doc/guix.texi:7612 msgid "The @code{mirror://gnu} prefix instructs @code{url-fetch} to use one of the GNU mirrors defined in @code{(guix download)}." msgstr "Das Präfix @code{mirror://gnu} lässt @code{url-fetch} einen der GNU-Spiegelserver benutzen, die in @code{(guix download)} definiert sind." #. type: itemize #: guix-git/doc/guix.texi:7619 msgid "The @code{sha256} field specifies the expected SHA256 hash of the file being downloaded. It is mandatory, and allows Guix to check the integrity of the file. The @code{(base32 @dots{})} form introduces the base32 representation of the hash. You can obtain this information with @code{guix download} (@pxref{Invoking guix download}) and @code{guix hash} (@pxref{Invoking guix hash})." msgstr "Das Feld @code{sha256} legt den erwarteten SHA256-Hashwert der herunterzuladenden Datei fest. Ihn anzugeben ist Pflicht und er ermöglicht es Guix, die Integrität der Datei zu überprüfen. Die Form @code{(base32 …)} geht der base32-Darstellung des Hash-Wertes voraus. Sie finden die base32-Darstellung mit Hilfe der Befehle @code{guix download} (siehe @ref{Invoking guix download}) und @code{guix hash} (siehe @ref{Invoking guix hash})." #. type: cindex #: guix-git/doc/guix.texi:7620 #, no-wrap msgid "patches" msgstr "Patches" #. type: itemize #: guix-git/doc/guix.texi:7624 msgid "When needed, the @code{origin} form can also have a @code{patches} field listing patches to be applied, and a @code{snippet} field giving a Scheme expression to modify the source code." msgstr "Wenn nötig kann in der @code{origin}-Form auch ein @code{patches}-Feld stehen, wo anzuwendende Patches aufgeführt werden, sowie ein @code{snippet}-Feld mit einem Scheme-Ausdruck mit den Anweisungen, wie der Quellcode zu modifizieren ist." #. type: cindex #: guix-git/doc/guix.texi:7626 #, no-wrap msgid "GNU Build System" msgstr "GNU-Erstellungssystem" #. type: itemize #: guix-git/doc/guix.texi:7632 msgid "The @code{build-system} field specifies the procedure to build the package (@pxref{Build Systems}). Here, @code{gnu-build-system} represents the familiar GNU Build System, where packages may be configured, built, and installed with the usual @code{./configure && make && make check && make install} command sequence." msgstr "Das Feld @code{build-system} legt fest, mit welcher Prozedur das Paket erstellt werden soll (siehe @ref{Build Systems}). In diesem Beispiel steht @code{gnu-build-system} für das wohlbekannte GNU-Erstellungssystem, wo Pakete mit der üblichen Befehlsfolge @code{./configure && make && make check && make install} konfiguriert, erstellt und installiert werden." #. type: itemize #: guix-git/doc/guix.texi:7636 msgid "When you start packaging non-trivial software, you may need tools to manipulate those build phases, manipulate files, and so on. @xref{Build Utilities}, for more on this." msgstr "Sobald Sie anfangen, Pakete für nichttriviale Software zu schreiben, könnten Sie Werkzeuge benötigen, um jene Erstellungsphasen abzuändern, Dateien zu verändern oder Ähnliches. Siehe @ref{Build Utilities} für mehr Informationen dazu." #. type: itemize #: guix-git/doc/guix.texi:7642 msgid "The @code{arguments} field specifies options for the build system (@pxref{Build Systems}). Here it is interpreted by @code{gnu-build-system} as a request run @file{configure} with the @option{--enable-silent-rules} flag." msgstr "Das Feld @code{arguments} gibt an, welche Optionen dem Erstellungssystem mitgegeben werden sollen (siehe @ref{Build Systems}). In diesem Fall interpretiert @code{gnu-build-system} diese als Auftrag, @file{configure} mit der Befehlszeilenoption @option{--enable-silent-rules} auszuführen." #. type: findex #: guix-git/doc/guix.texi:7643 guix-git/doc/guix.texi:7646 #, no-wrap msgid "quote" msgstr "quote" #. type: cindex #: guix-git/doc/guix.texi:7644 #, no-wrap msgid "quoting" msgstr "Maskierung" #. type: findex #: guix-git/doc/guix.texi:7645 #, no-wrap msgid "'" msgstr "'" #. type: cindex #: guix-git/doc/guix.texi:7647 #, no-wrap msgid "backquote (quasiquote)" msgstr "Backquote (Quasimaskierung)" #. type: findex #: guix-git/doc/guix.texi:7648 #, no-wrap msgid "`" msgstr "`" #. type: findex #: guix-git/doc/guix.texi:7649 #, no-wrap msgid "quasiquote" msgstr "quasiquote" #. type: cindex #: guix-git/doc/guix.texi:7650 #, no-wrap msgid "comma (unquote)" msgstr "Komma (Demaskierung)" #. type: findex #: guix-git/doc/guix.texi:7651 #, no-wrap msgid "," msgstr "," #. type: findex #: guix-git/doc/guix.texi:7652 #, no-wrap msgid "unquote" msgstr "unquote" #. type: itemize #: guix-git/doc/guix.texi:7662 msgid "What about these quote (@code{'}) characters? They are Scheme syntax to introduce a literal list; @code{'} is synonymous with @code{quote}. Sometimes you'll also see @code{`} (a backquote, synonymous with @code{quasiquote}) and @code{,} (a comma, synonymous with @code{unquote}). @xref{Expression Syntax, quoting,, guile, GNU Guile Reference Manual}, for details. Here the value of the @code{arguments} field is a list of arguments passed to the build system down the road, as with @code{apply} (@pxref{Fly Evaluation, @code{apply},, guile, GNU Guile Reference Manual})." msgstr "Was hat es mit diesen einfachen Anführungszeichen (@code{'}) auf sich? Sie gehören zur Syntax von Scheme und führen eine wörtlich zu interpretierende Datenliste ein; dies nennt sich Maskierung oder Quotierung. @code{'} ist synonym mit @code{quote}. Ihnen könnte auch @code{`} begegnen (ein Backquote, stattdessen kann man auch das längere Synonym @code{quasiquote} schreiben); damit können wir eine wörtlich als Daten interpretierte Liste einführen, aber bei dieser „Quasimaskierung“ kann @code{,} (ein Komma, oder dessen Synonym @code{unquote}) benutzt werden, um den ausgewerteten Wert eines Ausdrucks in diese Liste einzufügen. @ref{Expression Syntax, Quotierung,, guile, Referenzhandbuch zu GNU Guile} enthält weitere Details. Hierbei ist also der Wert des @code{arguments}-Feldes eine Liste von Argumenten, die an das Erstellungssystem weitergereicht werden, wie bei @code{apply} (siehe @ref{Fly Evaluation, @code{apply},, guile, Referenzhandbuch zu GNU Guile})." #. type: itemize #: guix-git/doc/guix.texi:7668 msgid "The hash-colon (@code{#:}) sequence defines a Scheme @dfn{keyword} (@pxref{Keywords,,, guile, GNU Guile Reference Manual}), and @code{#:configure-flags} is a keyword used to pass a keyword argument to the build system (@pxref{Coding With Keywords,,, guile, GNU Guile Reference Manual})." msgstr "Ein Doppelkreuz gefolgt von einem Doppelpunkt (@code{#:}) definiert ein Scheme-@dfn{Schlüsselwort} (siehe @ref{Keywords,,, guile, Referenzhandbuch zu GNU Guile}) und @code{#:configure-flags} ist ein Schlüsselwort, um eine Befehlszeilenoption an das Erstellungssystem mitzugeben (siehe @ref{Coding With Keywords,,, guile, Referenzhandbuch zu GNU Guile})." #. type: itemize #: guix-git/doc/guix.texi:7674 msgid "The @code{inputs} field specifies inputs to the build process---i.e., build-time or run-time dependencies of the package. Here, we add an input, a reference to the @code{gawk} variable; @code{gawk} is itself bound to a @code{<package>} object." msgstr "Das Feld @code{inputs} legt Eingaben an den Erstellungsprozess fest@tie{}– d.h.@: Abhängigkeiten des Pakets zur Erstellungs- oder Laufzeit. Hier fügen wir eine Eingabe hinzu, eine Referenz auf die Variable @code{gawk}; @var{gawk} ist auch selbst wiederum an ein @code{<package>}-Objekt als Variablenwert gebunden." #. type: itemize #: guix-git/doc/guix.texi:7678 msgid "Note that GCC, Coreutils, Bash, and other essential tools do not need to be specified as inputs here. Instead, @code{gnu-build-system} takes care of ensuring that they are present (@pxref{Build Systems})." msgstr "Beachten Sie, dass GCC, Coreutils, Bash und andere essenzielle Werkzeuge hier nicht als Eingaben aufgeführt werden müssen. Stattdessen sorgt schon @code{gnu-build-system} dafür, dass diese vorhanden sein müssen (siehe @ref{Build Systems})." #. type: itemize #: guix-git/doc/guix.texi:7682 msgid "However, any other dependencies need to be specified in the @code{inputs} field. Any dependency not specified here will simply be unavailable to the build process, possibly leading to a build failure." msgstr "Sämtliche anderen Abhängigkeiten müssen aber im @code{inputs}-Feld aufgezählt werden. Jede hier nicht angegebene Abhängigkeit wird während des Erstellungsprozesses schlicht nicht verfügbar sein, woraus ein Erstellungsfehler resultieren kann." #. type: Plain text #: guix-git/doc/guix.texi:7685 msgid "@xref{package Reference}, for a full description of possible fields." msgstr "Siehe @ref{package Reference} für eine umfassende Beschreibung aller erlaubten Felder." #. type: cindex #: guix-git/doc/guix.texi:7687 #, no-wrap msgid "Scheme programming language, getting started" msgstr "Scheme-Programmiersprache, Einstieg in die" #. type: quotation #: guix-git/doc/guix.texi:7692 msgid "Intimidated by the Scheme language or curious about it? The Cookbook has a short section to get started that recaps some of the things shown above and explains the fundamentals. @xref{A Scheme Crash Course,,, guix-cookbook, GNU Guix Cookbook}, for more information." msgstr "Fühlen Sie sich eingeschüchtert von der Scheme-Sprache oder wurde Ihre Neugier geweckt? Im Kochbuch gibt es einen kurzen Abschnitt, wie man anfängt. Dort werden einige der oben gezeigten Dinge wiederholt und die Grundlagen erklärt. Siehe @ref{Ein Schnellkurs in Scheme,,, guix-cookbook.de, GNU-Guix-Kochbuch} für weitere Informationen." #. type: Plain text #: guix-git/doc/guix.texi:7704 msgid "Once a package definition is in place, the package may actually be built using the @code{guix build} command-line tool (@pxref{Invoking guix build}), troubleshooting any build failures you encounter (@pxref{Debugging Build Failures}). You can easily jump back to the package definition using the @command{guix edit} command (@pxref{Invoking guix edit}). @xref{Packaging Guidelines}, for more information on how to test package definitions, and @ref{Invoking guix lint}, for information on how to check a definition for style conformance." msgstr "Sobald eine Paketdefinition eingesetzt wurde, können Sie das Paket mit Hilfe des Befehlszeilenwerkzeugs @code{guix build} dann auch tatsächlich erstellen (siehe @ref{Invoking guix build}) und dabei jegliche Erstellungsfehler, auf die Sie stoßen, beseitigen (siehe @ref{Debugging Build Failures}). Sie können den Befehl @command{guix edit} benutzen, um leicht zur Paketdefinition zurückzuspringen (siehe @ref{Invoking guix edit}). Unter @ref{Packaging Guidelines} finden Sie mehr Informationen darüber, wie Sie Paketdefinitionen testen, und unter @ref{Invoking guix lint} finden Sie Informationen, wie Sie prüfen, ob eine Definition alle Stilkonventionen einhält." #. type: vindex #: guix-git/doc/guix.texi:7704 #, no-wrap msgid "GUIX_PACKAGE_PATH" msgstr "GUIX_PACKAGE_PATH" #. type: Plain text #: guix-git/doc/guix.texi:7708 msgid "Lastly, @pxref{Channels}, for information on how to extend the distribution by adding your own package definitions in a ``channel''." msgstr "Zuletzt finden Sie unter @ref{Channels} Informationen, wie Sie die Distribution um Ihre eigenen Pakete in einem „Kanal“ erweitern." #. type: Plain text #: guix-git/doc/guix.texi:7712 msgid "Finally, updating the package definition to a new upstream version can be partly automated by the @command{guix refresh} command (@pxref{Invoking guix refresh})." msgstr "Zu all dem sei auch erwähnt, dass Sie das Aktualisieren einer Paketdefinition auf eine vom Anbieter neu veröffentlichte Version mit dem Befehl @command{guix refresh} teilweise automatisieren können (siehe @ref{Invoking guix refresh})." #. type: Plain text #: guix-git/doc/guix.texi:7718 msgid "Behind the scenes, a derivation corresponding to the @code{<package>} object is first computed by the @code{package-derivation} procedure. That derivation is stored in a @file{.drv} file under @file{/gnu/store}. The build actions it prescribes may then be realized by using the @code{build-derivations} procedure (@pxref{The Store})." msgstr "Hinter den Kulissen wird die einem @code{<package>}-Objekt entsprechende Ableitung zuerst durch @code{package-derivation} berechnet. Diese Ableitung wird in der @file{.drv}-Datei unter @file{/gnu/store} gespeichert. Die von ihr vorgeschriebenen Erstellungsaktionen können dann durch die Prozedur @code{build-derivations} umgesetzt werden (siehe @ref{The Store})." #. type: deffn #: guix-git/doc/guix.texi:7719 #, no-wrap msgid "{Procedure} package-derivation store package [system]" msgstr "{Prozedur} package-derivation Store Paket [System]" #. type: deffn #: guix-git/doc/guix.texi:7722 msgid "Return the @code{<derivation>} object of @var{package} for @var{system} (@pxref{Derivations})." msgstr "Das @code{<derivation>}-Objekt zum @var{Paket} für das angegebene @var{System} liefern (siehe @ref{Derivations})." #. type: deffn #: guix-git/doc/guix.texi:7728 msgid "@var{package} must be a valid @code{<package>} object, and @var{system} must be a string denoting the target system type---e.g., @code{\"x86_64-linux\"} for an x86_64 Linux-based GNU system. @var{store} must be a connection to the daemon, which operates on the store (@pxref{The Store})." msgstr "Als @var{Paket} muss ein gültiges @code{<package>}-Objekt angegeben werden und das @var{System} muss eine Zeichenkette sein, die das Zielsystem angibt@tie{}– z.B.@: @code{\"x86_64-linux\"} für ein auf x86_64 laufendes, Linux-basiertes GNU-System. @var{Store} muss eine Verbindung zum Daemon sein, der die Operationen auf dem Store durchführt (siehe @ref{The Store})." #. type: Plain text #: guix-git/doc/guix.texi:7734 msgid "Similarly, it is possible to compute a derivation that cross-builds a package for some other system:" msgstr "Auf ähnliche Weise kann eine Ableitung berechnet werden, die ein Paket für ein anderes System cross-erstellt." #. type: deffn #: guix-git/doc/guix.texi:7735 #, no-wrap msgid "{Procedure} package-cross-derivation store package target [system]" msgstr "{Prozedur} package-cross-derivation Store Paket Ziel [System]" #. type: deffn #: guix-git/doc/guix.texi:7738 msgid "Return the @code{<derivation>} object of @var{package} cross-built from @var{system} to @var{target}." msgstr "Liefert das @code{<derivation>}-Objekt, um das @var{Paket} zu cross-erstellen vom @var{System} aus für das @var{Ziel}-System." #. type: deffn #: guix-git/doc/guix.texi:7742 msgid "@var{target} must be a valid GNU triplet denoting the target hardware and operating system, such as @code{\"aarch64-linux-gnu\"} (@pxref{Specifying Target Triplets,,, autoconf, Autoconf})." msgstr "Als @var{Ziel} muss ein gültiges GNU-Tripel angegeben werden, was die Ziel-Hardware und das zugehörige Betriebssystem beschreibt, wie z.B.@: @code{\"aarch64-linux-gnu\"} (siehe @ref{Specifying Target Triplets,,, autoconf, Autoconf})." #. type: Plain text #: guix-git/doc/guix.texi:7746 msgid "Once you have package definitions, you can easily define @emph{variants} of those packages. @xref{Defining Package Variants}, for more on that." msgstr "Wenn Sie einmal Paketdefinitionen fertig verfasst haben, können Sie leicht @emph{Varianten} derselben Pakete definieren. Siehe @ref{Defining Package Variants} für mehr Informationen dazu." #. type: subsection #: guix-git/doc/guix.texi:7754 #, no-wrap msgid "@code{package} Reference" msgstr "@code{package}-Referenz" #. type: Plain text #: guix-git/doc/guix.texi:7758 msgid "This section summarizes all the options available in @code{package} declarations (@pxref{Defining Packages})." msgstr "Dieser Abschnitt fasst alle in @code{package}-Deklarationen zur Verfügung stehenden Optionen zusammen (siehe @ref{Defining Packages})." #. type: deftp #: guix-git/doc/guix.texi:7759 #, no-wrap msgid "{Data Type} package" msgstr "{Datentyp} package" #. type: deftp #: guix-git/doc/guix.texi:7761 msgid "This is the data type representing a package recipe." msgstr "Dieser Datentyp steht für ein Paketrezept." #. type: table #: guix-git/doc/guix.texi:7765 msgid "The name of the package, as a string." msgstr "Der Name des Pakets als Zeichenkette." #. type: code{#1} #: guix-git/doc/guix.texi:7766 guix-git/doc/guix.texi:8824 #, no-wrap msgid "version" msgstr "version" #. type: table #: guix-git/doc/guix.texi:7769 msgid "The version of the package, as a string. @xref{Version Numbers}, for guidelines." msgstr "Die Version des Pakets als Zeichenkette. Siehe @ref{Version Numbers}, wo erklärt wird, worauf Sie achten müssen." #. type: code{#1} #: guix-git/doc/guix.texi:7770 guix-git/doc/guix.texi:15339 #: guix-git/doc/guix.texi:18130 guix-git/doc/guix.texi:18844 #, no-wrap msgid "source" msgstr "source" #. type: table #: guix-git/doc/guix.texi:7777 msgid "An object telling how the source code for the package should be acquired. Most of the time, this is an @code{origin} object, which denotes a file fetched from the Internet (@pxref{origin Reference}). It can also be any other ``file-like'' object such as a @code{local-file}, which denotes a file from the local file system (@pxref{G-Expressions, @code{local-file}})." msgstr "Ein Objekt, das beschreibt, wie der Quellcode des Pakets bezogen werden soll. Meistens ist es ein @code{origin}-Objekt, welches für eine aus dem Internet heruntergeladene Datei steht (siehe @ref{origin Reference}). Es kann aber auch ein beliebiges anderes „dateiähnliches“ Objekt sein, wie z.B.@: ein @code{local-file}, was eine Datei im lokalen Dateisystem bezeichnet (siehe @ref{G-Expressions, @code{local-file}})." #. type: code{#1} #: guix-git/doc/guix.texi:7778 #, no-wrap msgid "build-system" msgstr "build-system" #. type: table #: guix-git/doc/guix.texi:7781 msgid "The build system that should be used to build the package (@pxref{Build Systems})." msgstr "Das Erstellungssystem, mit dem das Paket erstellt werden soll (siehe @ref{Build Systems})." #. type: item #: guix-git/doc/guix.texi:7782 guix-git/doc/guix.texi:21877 #, no-wrap msgid "@code{arguments} (default: @code{'()})" msgstr "@code{arguments} (Vorgabe: @code{'()})" #. type: table #: guix-git/doc/guix.texi:7786 msgid "The arguments that should be passed to the build system (@pxref{Build Systems}). This is a list, typically containing sequential keyword-value pairs, as in this example:" msgstr "Die Argumente, die an das Erstellungssystem übergeben werden sollen (siehe @ref{Build Systems}). Dies ist eine Liste, typischerweise eine Reihe von Schlüssel-Wert-Paaren wie in diesem Beispiel:" #. type: lisp #: guix-git/doc/guix.texi:7795 #, no-wrap msgid "" "(package\n" " (name \"example\")\n" " ;; several fields omitted\n" " (arguments\n" " (list #:tests? #f ;skip tests\n" " #:make-flags #~'(\"VERBOSE=1\") ;pass flags to 'make'\n" " #:configure-flags #~'(\"--enable-frobbing\"))))\n" msgstr "" "(package\n" " (name \"beispiel\")\n" " ;; hier würden noch ein paar Felder stehen\n" " (arguments\n" " (list #:tests? #f ;Tests überspringen\n" " #:make-flags #~'(\"VERBOSE=1\") ;Optionen für 'make'\n" " #:configure-flags #~'(\"--enable-frobbing\"))))\n" #. type: table #: guix-git/doc/guix.texi:7802 msgid "The exact set of supported keywords depends on the build system (@pxref{Build Systems}), but you will find that almost all of them honor @code{#:configure-flags}, @code{#:make-flags}, @code{#:tests?}, and @code{#:phases}. The @code{#:phases} keyword in particular lets you modify the set of build phases for your package (@pxref{Build Phases})." msgstr "Welche Schlüsselwortargumente genau unterstützt werden, hängt vom jeweiligen Erstellungssystem ab (siehe @ref{Build Systems}), doch werden Sie feststellen, dass fast alle @code{#:configure-flags}, @code{#:make-flags}, @code{#:tests?} und @code{#:phases} berücksichtigen. Insbesondere können Sie mit dem Schlüsselwort @code{#:phases} den Satz von Erstellungsphasen, der für Ihr Paket zum Einsatz kommt, ändern (siehe @ref{Build Phases})." #. type: table #: guix-git/doc/guix.texi:7806 msgid "The REPL has dedicated commands to interactively inspect values of some of these arguments, as a convenient debugging aid (@pxref{Using Guix Interactively})." msgstr "Auf der REPL können Sie sich mit speziellen Befehlen interaktiv anzeigen lassen, welchen Wert einige dieser Argumente haben, um Ihnen bei der Fehlersuche zu helfen (siehe @ref{Using Guix Interactively})." #. type: quotation #: guix-git/doc/guix.texi:7807 guix-git/doc/guix.texi:7844 #, no-wrap msgid "Compatibility Note" msgstr "Anmerkung zur Kompatibilität" #. type: quotation #: guix-git/doc/guix.texi:7811 msgid "Until version 1.3.0, the @code{arguments} field would typically use @code{quote} (@code{'}) or @code{quasiquote} (@code{`}) and no G-expressions, like so:" msgstr "Bis Version 1.3.0 hat man im @code{arguments}-Feld üblicherweise @code{quote} (@code{'}) oder @code{quasiquote} (@code{`}) geschrieben, statt G-Ausdrücke zu verwenden, etwa so:" #. type: lisp #: guix-git/doc/guix.texi:7818 #, no-wrap msgid "" "(package\n" " ;; several fields omitted\n" " (arguments ;old-style quoted arguments\n" " '(#:tests? #f\n" " #:configure-flags '(\"--enable-frobbing\"))))\n" msgstr "" "(package\n" " ;; hier würden noch ein paar Felder stehen\n" " (arguments ;quotierte Argumente, die im alten Stil benutzt wurden\n" " '(#:tests? #f\n" " #:configure-flags '(\"--enable-frobbing\"))))\n" #. type: quotation #: guix-git/doc/guix.texi:7823 msgid "To convert from that style to the one shown above, you can run @code{guix style -S arguments @var{package}} (@pxref{Invoking guix style})." msgstr "Um ein Paket vom diesem Stil in den darüber umzuwandeln, können Sie @code{guix style -S arguments @var{Paket}} ausführen (siehe @ref{Invoking guix style})." #. type: item #: guix-git/doc/guix.texi:7825 #, no-wrap msgid "@code{inputs} (default: @code{'()})" msgstr "@code{inputs} (Vorgabe: @code{'()})" #. type: itemx #: guix-git/doc/guix.texi:7826 #, no-wrap msgid "@code{native-inputs} (default: @code{'()})" msgstr "@code{native-inputs} (Vorgabe: @code{'()})" #. type: itemx #: guix-git/doc/guix.texi:7827 #, no-wrap msgid "@code{propagated-inputs} (default: @code{'()})" msgstr "@code{propagated-inputs} (Vorgabe: @code{'()})" #. type: cindex #: guix-git/doc/guix.texi:7828 #, no-wrap msgid "inputs, of packages" msgstr "Eingaben, von Paketen" #. type: table #: guix-git/doc/guix.texi:7835 msgid "These fields list dependencies of the package. Each element of these lists is either a package, origin, or other ``file-like object'' (@pxref{G-Expressions}); to specify the output of that file-like object that should be used, pass a two-element list where the second element is the output (@pxref{Packages with Multiple Outputs}, for more on package outputs). For example, the list below specifies three inputs:" msgstr "In diesen Feldern wird eine Liste der Abhängigkeiten des Pakets aufgeführt. Dabei ist jedes Listenelement ein „package“-, „origin“- oder sonstiges dateiartiges Objekt (siehe @ref{G-Expressions}). Um die zu benutzende Ausgabe zu benennen, übergeben Sie eine zweielementige Liste mit der Ausgabe als zweitem Element (siehe @ref{Packages with Multiple Outputs} für mehr Informationen zu Paketausgaben). Im folgenden Beispiel etwa werden drei Eingaben festgelegt:" #. type: lisp #: guix-git/doc/guix.texi:7839 #, no-wrap msgid "" "(list libffi libunistring\n" " `(,glib \"bin\")) ;the \"bin\" output of GLib\n" msgstr "" "(list libffi libunistring\n" " `(,glib \"bin\")) ;Ausgabe \"bin\" von GLib\n" #. type: table #: guix-git/doc/guix.texi:7843 msgid "In the example above, the @code{\"out\"} output of @code{libffi} and @code{libunistring} is used." msgstr "Im obigen Beispiel wird die Ausgabe @code{\"out\"} für @code{libffi} und @code{libunistring} benutzt." #. type: quotation #: guix-git/doc/guix.texi:7851 msgid "Until version 1.3.0, input lists were a list of tuples, where each tuple has a label for the input (a string) as its first element, a package, origin, or derivation as its second element, and optionally the name of the output thereof that should be used, which defaults to @code{\"out\"}. For example, the list below is equivalent to the one above, but using the @dfn{old input style}:" msgstr "Bis Version 1.3.0 waren Eingabelisten noch Listen von Tupeln, wobei jedes Tupel eine Bezeichnung für die Eingabe (als Zeichenkette) als erstes Element, dann ein „package“-, „origin“- oder „derivation“-Objekt (Paket, Ursprung oder Ableitung) als zweites Element und optional die Benennung der davon zu benutzenden Ausgabe umfasste; letztere hatte als Vorgabewert @code{\"out\"}. Im folgenden Beispiel wird dasselbe wie oben angegeben, aber im @dfn{alten Stil für Eingaben}:" #. type: lisp #: guix-git/doc/guix.texi:7857 #, no-wrap msgid "" ";; Old input style (deprecated).\n" "`((\"libffi\" ,libffi)\n" " (\"libunistring\" ,libunistring)\n" " (\"glib:bin\" ,glib \"bin\")) ;the \"bin\" output of GLib\n" msgstr "" ";; Alter Eingabenstil (veraltet).\n" "`((\"libffi\" ,libffi)\n" " (\"libunistring\" ,libunistring)\n" " (\"glib:bin\" ,glib \"bin\")) ;Ausgabe \"bin\" von GLib\n" #. type: quotation #: guix-git/doc/guix.texi:7863 msgid "This style is now deprecated; it is still supported but support will be removed in a future version. It should not be used for new package definitions. @xref{Invoking guix style}, on how to migrate to the new style." msgstr "Dieser Stil gilt als veraltet. Er wird bislang unterstützt, aber er wird in einer zukünftigen Version entfernt werden. Man sollte ihn nicht für neue Paketdefinitionen gebrauchen. Siehe @ref{Invoking guix style} für eine Erklärung, wie Sie zum neuen Stil migrieren." #. type: cindex #: guix-git/doc/guix.texi:7865 #, no-wrap msgid "cross compilation, package dependencies" msgstr "Cross-Kompilieren, Paketabhängigkeiten" #. type: table #: guix-git/doc/guix.texi:7871 msgid "The distinction between @code{native-inputs} and @code{inputs} is necessary when considering cross-compilation. When cross-compiling, dependencies listed in @code{inputs} are built for the @emph{target} architecture; conversely, dependencies listed in @code{native-inputs} are built for the architecture of the @emph{build} machine." msgstr "Die Unterscheidung zwischen @code{native-inputs} und @code{inputs} ist wichtig, damit Cross-Kompilieren möglich ist. Beim Cross-Kompilieren werden als @code{inputs} aufgeführte Abhängigkeiten für die Ziel-Prozessorarchitektur (@emph{target}) erstellt, andersherum werden als @code{native-inputs} aufgeführte Abhängigkeiten für die Prozessorarchitektur der erstellenden Maschine (@emph{build}) erstellt." #. type: table #: guix-git/doc/guix.texi:7876 msgid "@code{native-inputs} is typically used to list tools needed at build time, but not at run time, such as Autoconf, Automake, pkg-config, Gettext, or Bison. @command{guix lint} can report likely mistakes in this area (@pxref{Invoking guix lint})." msgstr "@code{native-inputs} listet typischerweise die Werkzeuge auf, die während der Erstellung gebraucht werden, aber nicht zur Laufzeit des Programms gebraucht werden. Beispiele sind Autoconf, Automake, pkg-config, Gettext oder Bison. @command{guix lint} kann melden, ob wahrscheinlich Fehler in der Auflistung sind (siehe @ref{Invoking guix lint})." #. type: anchor{#1} #: guix-git/doc/guix.texi:7884 msgid "package-propagated-inputs" msgstr "package-propagated-inputs" #. type: table #: guix-git/doc/guix.texi:7884 msgid "Lastly, @code{propagated-inputs} is similar to @code{inputs}, but the specified packages will be automatically installed to profiles (@pxref{Features, the role of profiles in Guix}) alongside the package they belong to (@pxref{package-cmd-propagated-inputs, @command{guix package}}, for information on how @command{guix package} deals with propagated inputs)." msgstr "Schließlich ist @code{propagated-inputs} ähnlich wie @code{inputs}, aber die angegebenen Pakete werden automatisch mit ins Profil installiert (siehe @ref{Features, die Rolle von Profilen in Guix}), wenn das Paket installiert wird, zu dem sie gehören (siehe @ref{package-cmd-propagated-inputs, @command{guix package}} für Informationen darüber, wie @command{guix package} mit propagierten Eingaben umgeht)." #. type: table #: guix-git/doc/guix.texi:7888 msgid "For example this is necessary when packaging a C/C++ library that needs headers of another library to compile, or when a pkg-config file refers to another one @i{via} its @code{Requires} field." msgstr "Dies ist zum Beispiel nötig, wenn Sie ein Paket für eine C-/C++-Bibliothek schreiben, die Header-Dateien einer anderen Bibliothek braucht, um mit ihr kompilieren zu können, oder wenn sich eine pkg-config-Datei auf eine andere über ihren @code{Requires}-Eintrag bezieht." #. type: table #: guix-git/doc/guix.texi:7895 msgid "Another example where @code{propagated-inputs} is useful is for languages that lack a facility to record the run-time search path akin to the @code{RUNPATH} of ELF files; this includes Guile, Python, Perl, and more. When packaging libraries written in those languages, ensure they can find library code they depend on at run time by listing run-time dependencies in @code{propagated-inputs} rather than @code{inputs}." msgstr "Noch ein Beispiel, wo @code{propagated-inputs} nützlich ist, sind Sprachen, die den Laufzeit-Suchpfad @emph{nicht} zusammen mit dem Programm abspeichern (@emph{nicht} wie etwa im @code{RUNPATH} bei ELF-Dateien), also Sprachen wie Guile, Python, Perl und weitere. Wenn Sie ein Paket für eine in solchen Sprachen geschriebene Bibliothek schreiben, dann sorgen Sie dafür, dass es zur Laufzeit den von ihr benötigten Code finden kann, indem Sie ihre Laufzeit-Abhängigkeiten in @code{propagated-inputs} statt in @code{inputs} aufführen." #. type: item #: guix-git/doc/guix.texi:7896 #, no-wrap msgid "@code{outputs} (default: @code{'(\"out\")})" msgstr "@code{outputs} (Vorgabe: @code{'(\"out\")})" #. type: table #: guix-git/doc/guix.texi:7899 msgid "The list of output names of the package. @xref{Packages with Multiple Outputs}, for typical uses of additional outputs." msgstr "Die Liste der Benennungen der Ausgaben des Pakets. Der Abschnitt @ref{Packages with Multiple Outputs} beschreibt übliche Nutzungen zusätzlicher Ausgaben." #. type: item #: guix-git/doc/guix.texi:7900 #, no-wrap msgid "@code{native-search-paths} (default: @code{'()})" msgstr "@code{native-search-paths} (Vorgabe: @code{'()})" #. type: item #: guix-git/doc/guix.texi:7901 guix-git/doc/guix.texi:8843 #, no-wrap msgid "@code{search-paths} (default: @code{'()})" msgstr "@code{search-paths} (Vorgabe: @code{'()})" #. type: table #: guix-git/doc/guix.texi:7905 msgid "A list of @code{search-path-specification} objects describing search-path environment variables honored by the package. @xref{Search Paths}, for more on search path specifications." msgstr "Eine Liste von @code{search-path-specification}-Objekten, die Umgebungsvariable für von diesem Paket beachtete Suchpfade („search paths“) beschreiben. Siehe @ref{Search Paths}, wenn Sie mehr über Suchpfadspezifikationen erfahren möchten." #. type: table #: guix-git/doc/guix.texi:7911 msgid "As for inputs, the distinction between @code{native-search-paths} and @code{search-paths} only matters when cross-compiling. In a cross-compilation context, @code{native-search-paths} applies exclusively to native inputs whereas @code{search-paths} applies only to host inputs." msgstr "Wie auch bei Eingaben wird zwischen @code{native-search-paths} und @code{search-paths} nur dann ein Unterschied gemacht, wenn Sie cross-kompilieren. Beim Cross-Kompilieren bezieht sich @code{native-search-paths} ausschließlich auf native Eingaben, wohingegen sich die @code{search-paths} ausschließlich auf Eingaben für den „Host“ genannten Rechner beziehen." #. type: table #: guix-git/doc/guix.texi:7918 msgid "Packages such as cross-compilers care about target inputs---for instance, our (modified) GCC cross-compiler has @env{CROSS_C_INCLUDE_PATH} in @code{search-paths}, which allows it to pick @file{.h} files for the target system and @emph{not} those of native inputs. For the majority of packages though, only @code{native-search-paths} makes sense." msgstr "Für Pakete wie z.B.@: Cross-Compiler sind die Ziel-Eingaben wichtig, z.B.@: hat unser (angepasster) GCC-Cross-Compiler einen Eintrag für @env{CROSS_C_INCLUDE_PATH} in @code{search-paths}, damit er @file{.h}-Dateien für das Zielsystem auswählt und @emph{nicht} die aus nativen Eingaben. Für die meisten Pakete ist aber einzig @code{native-search-paths} von Bedeutung." #. type: item #: guix-git/doc/guix.texi:7919 #, no-wrap msgid "@code{replacement} (default: @code{#f})" msgstr "@code{replacement} (Vorgabe: @code{#f})" #. type: table #: guix-git/doc/guix.texi:7923 msgid "This must be either @code{#f} or a package object that will be used as a @dfn{replacement} for this package. @xref{Security Updates, grafts}, for details." msgstr "Dies muss entweder @code{#f} oder ein package-Objekt sein, das als Ersatz (@dfn{replacement}) dieses Pakets benutzt werden soll. Im Abschnitt zu @ref{Security Updates, Veredelungen} wird dies erklärt." #. type: item #: guix-git/doc/guix.texi:7924 guix-git/doc/guix.texi:15331 #, no-wrap msgid "synopsis" msgstr "synopsis" #. type: table #: guix-git/doc/guix.texi:7926 msgid "A one-line description of the package." msgstr "Eine einzeilige Beschreibung des Pakets." #. type: code{#1} #: guix-git/doc/guix.texi:7927 guix-git/doc/guix.texi:15332 #: guix-git/doc/guix.texi:43809 guix-git/doc/guix.texi:43969 #, no-wrap msgid "description" msgstr "description" #. type: table #: guix-git/doc/guix.texi:7930 msgid "A more elaborate description of the package, as a string in Texinfo syntax." msgstr "Eine ausführlichere Beschreibung des Pakets, als eine Zeichenkette in Texinfo-Syntax." #. type: code{#1} #: guix-git/doc/guix.texi:7931 #, no-wrap msgid "license" msgstr "license" #. type: cindex #: guix-git/doc/guix.texi:7932 #, no-wrap msgid "license, of packages" msgstr "Lizenz, von Paketen" #. type: table #: guix-git/doc/guix.texi:7935 msgid "The license of the package; a value from @code{(guix licenses)}, or a list of such values." msgstr "Die Lizenz des Pakets; benutzt werden kann ein Wert aus dem Modul @code{(guix licenses)} oder eine Liste solcher Werte." #. type: itemx #: guix-git/doc/guix.texi:7936 guix-git/doc/guix.texi:15340 #, no-wrap msgid "home-page" msgstr "home-page" #. type: table #: guix-git/doc/guix.texi:7938 msgid "The URL to the home-page of the package, as a string." msgstr "Die URL, die die Homepage des Pakets angibt, als Zeichenkette." #. type: item #: guix-git/doc/guix.texi:7939 #, no-wrap msgid "@code{supported-systems} (default: @code{%supported-systems})" msgstr "@code{supported-systems} (Vorgabe: @code{%supported-systems})" #. type: table #: guix-git/doc/guix.texi:7942 msgid "The list of systems supported by the package, as strings of the form @code{architecture-kernel}, for example @code{\"x86_64-linux\"}." msgstr "Die Liste der vom Paket unterstützten Systeme als Zeichenketten der Form @code{Architektur-Kernel}, zum Beispiel @code{\"x86_64-linux\"}." #. type: item #: guix-git/doc/guix.texi:7943 #, no-wrap msgid "@code{location} (default: source location of the @code{package} form)" msgstr "@code{location} (Vorgabe: die Stelle im Quellcode, wo die @code{package}-Form steht)" #. type: table #: guix-git/doc/guix.texi:7947 msgid "The source location of the package. It is useful to override this when inheriting from another package, in which case this field is not automatically corrected." msgstr "Wo im Quellcode das Paket definiert wurde. Es ist sinnvoll, dieses Feld manuell zuzuweisen, wenn das Paket von einem anderen Paket erbt, weil dann dieses Feld nicht automatisch berichtigt wird." #. type: defmac #: guix-git/doc/guix.texi:7950 #, no-wrap msgid "this-package" msgstr "this-package" #. type: defmac #: guix-git/doc/guix.texi:7953 msgid "When used in the @emph{lexical scope} of a package field definition, this identifier resolves to the package being defined." msgstr "Wenn dies im @emph{lexikalischen Geltungsbereich} der Definition eines Feldes im Paket steht, bezieht sich dieser Bezeichner auf das Paket, das gerade definiert wird." #. type: defmac #: guix-git/doc/guix.texi:7956 msgid "The example below shows how to add a package as a native input of itself when cross-compiling:" msgstr "Das folgende Beispiel zeigt, wie man ein Paket als native Eingabe von sich selbst beim Cross-Kompilieren deklariert:" #. type: lisp #: guix-git/doc/guix.texi:7961 #, no-wrap msgid "" "(package\n" " (name \"guile\")\n" " ;; ...\n" "\n" msgstr "" "(package\n" " (name \"guile\")\n" " ;; …\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:7967 #, no-wrap msgid "" " ;; When cross-compiled, Guile, for example, depends on\n" " ;; a native version of itself. Add it here.\n" " (native-inputs (if (%current-target-system)\n" " (list this-package)\n" " '())))\n" msgstr "" " ;; Wenn es cross-kompiliert wird, hängt zum Beispiel\n" " ;; Guile von einer nativen Version von sich selbst ab.\n" " ;; Wir fügen sie hier hinzu.\n" " (native-inputs (if (%current-target-system)\n" " (list this-package)\n" " '())))\n" #. type: defmac #: guix-git/doc/guix.texi:7970 msgid "It is an error to refer to @code{this-package} outside a package definition." msgstr "Es ist ein Fehler, außerhalb einer Paketdefinition auf @code{this-package} zu verweisen." #. type: Plain text #: guix-git/doc/guix.texi:7974 msgid "The following helper procedures are provided to help deal with package inputs." msgstr "Die folgenden Hilfsprozeduren sind für den Umgang mit Paketeingaben gedacht." #. type: deffn #: guix-git/doc/guix.texi:7975 #, no-wrap msgid "{Procedure} lookup-package-input package name" msgstr "{Prozedur} lookup-package-input Paket Name" #. type: deffnx #: guix-git/doc/guix.texi:7976 #, no-wrap msgid "{Procedure} lookup-package-native-input package name" msgstr "{Prozedur} lookup-package-native-input Paket Name" #. type: deffnx #: guix-git/doc/guix.texi:7977 #, no-wrap msgid "{Procedure} lookup-package-propagated-input package name" msgstr "{Prozedur} lookup-package-propagated-input Paket Name" #. type: deffnx #: guix-git/doc/guix.texi:7978 #, no-wrap msgid "{Procedure} lookup-package-direct-input package name" msgstr "{Prozedur} lookup-package-direct-input Paket Name" #. type: deffn #: guix-git/doc/guix.texi:7981 msgid "Look up @var{name} among @var{package}'s inputs (or native, propagated, or direct inputs). Return it if found, @code{#f} otherwise." msgstr "@var{Name} unter den (nativen, propagierten, direkten) Eingaben von @var{Paket} suchen und die Eingabe zurückliefern, wenn sie gefunden wird, ansonsten @code{#f}." #. type: deffn #: guix-git/doc/guix.texi:7984 msgid "@var{name} is the name of a package depended on. Here's how you might use it:" msgstr "@var{Name} ist der Name eines Pakets, von dem eine Abhängigkeit besteht. So benutzen Sie die Prozeduren:" #. type: lisp #: guix-git/doc/guix.texi:7987 #, no-wrap msgid "" "(use-modules (guix packages) (gnu packages base))\n" "\n" msgstr "" "(use-modules (guix packages) (gnu packages base))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:7990 #, no-wrap msgid "" "(lookup-package-direct-input coreutils \"gmp\")\n" "@result{} #<package gmp@@6.2.1 @dots{}>\n" msgstr "" "(lookup-package-direct-input coreutils \"gmp\")\n" "@result{} #<package gmp@@6.2.1 …>\n" #. type: deffn #: guix-git/doc/guix.texi:7994 msgid "In this example we obtain the @code{gmp} package that is among the direct inputs of @code{coreutils}." msgstr "In diesem Beispiel erhalten wir das @code{gmp}-Paket, das zu den direkten Eingaben von @code{coreutils} gehört." #. type: cindex #: guix-git/doc/guix.texi:7996 #, no-wrap msgid "development inputs, of a package" msgstr "Entwicklungseingaben, von Paketen" #. type: cindex #: guix-git/doc/guix.texi:7997 #, no-wrap msgid "implicit inputs, of a package" msgstr "implizite Eingaben, von Paketen" #. type: Plain text #: guix-git/doc/guix.texi:8002 msgid "Sometimes you will want to obtain the list of inputs needed to @emph{develop} a package---all the inputs that are visible when the package is compiled. This is what the @code{package-development-inputs} procedure returns." msgstr "Manchmal werden Sie die Liste der zur Entwicklung an einem Paket nötigen Eingaben brauchen, d.h.@: alle Eingaben, die beim Kompilieren des Pakets sichtbar gemacht werden. Diese Liste wird von der Prozedur @code{package-development-inputs} geliefert." #. type: deffn #: guix-git/doc/guix.texi:8003 #, no-wrap msgid "{Procedure} package-development-inputs package [system] [#:target #f]" msgstr "{Prozedur} package-development-inputs Paket [System] [#:target #f]" #. type: deffn #: guix-git/doc/guix.texi:8009 msgid "Return the list of inputs required by @var{package} for development purposes on @var{system}. When @var{target} is true, return the inputs needed to cross-compile @var{package} from @var{system} to @var{target}, where @var{target} is a triplet such as @code{\"aarch64-linux-gnu\"}." msgstr "Liefert die Liste derjenigen Eingaben, die das @var{Paket} zu Entwicklungszwecken für @var{System} braucht. Wenn @var{target} wahr ist, muss dafür ein Ziel wie das GNU-Tripel @code{\"aarch64-linux-gnu\"} übergeben werden, damit die Eingaben zum Cross-Kompilieren von @var{Paket} zurückgeliefert werden." #. type: deffn #: guix-git/doc/guix.texi:8013 msgid "Note that the result includes both explicit inputs and implicit inputs---inputs automatically added by the build system (@pxref{Build Systems}). Let us take the @code{hello} package to illustrate that:" msgstr "Beachten Sie, dass dazu sowohl explizite als auch implizite Eingaben gehören. Mit impliziten Eingaben meinen wir solche, die vom Erstellungssystem automatisch hinzugefügt werden (siehe @ref{Build Systems}). Nehmen wir das Paket @code{hello} zur Illustration:" #. type: lisp #: guix-git/doc/guix.texi:8016 #, no-wrap msgid "" "(use-modules (gnu packages base) (guix packages))\n" "\n" msgstr "" "(use-modules (gnu packages base) (guix packages))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:8019 #, no-wrap msgid "" "hello\n" "@result{} #<package hello@@2.10 gnu/packages/base.scm:79 7f585d4f6790>\n" "\n" msgstr "" "hello\n" "@result{} #<package hello@@2.10 gnu/packages/base.scm:79 7f585d4f6790>\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:8022 #, no-wrap msgid "" "(package-direct-inputs hello)\n" "@result{} ()\n" "\n" msgstr "" "(package-direct-inputs hello)\n" "@result{} ()\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:8025 #, no-wrap msgid "" "(package-development-inputs hello)\n" "@result{} ((\"source\" @dots{}) (\"tar\" #<package tar@@1.32 @dots{}>) @dots{})\n" msgstr "" "(package-development-inputs hello)\n" "@result{} ((\"source\" …) (\"tar\" #<package tar@@1.32 …>) …)\n" #. type: deffn #: guix-git/doc/guix.texi:8034 msgid "In this example, @code{package-direct-inputs} returns the empty list, because @code{hello} has zero explicit dependencies. Conversely, @code{package-development-inputs} includes inputs implicitly added by @code{gnu-build-system} that are required to build @code{hello}: tar, gzip, GCC, libc, Bash, and more. To visualize it, @command{guix graph hello} would show you explicit inputs, whereas @command{guix graph -t bag hello} would include implicit inputs (@pxref{Invoking guix graph})." msgstr "Für dieses Beispiel liefert @code{package-direct-inputs} die leere Liste zurück, weil @code{hello} keinerlei explizite Abhängigkeiten hat. Zu @code{package-development-inputs} gehören auch durch @code{gnu-build-system} implizit hinzugefügte Eingaben, die für die Erstellung von @code{hello} gebraucht werden, nämlich tar, gzip, GCC, libc, Bash und weitere. Wenn Sie sich das anschauen wollen, zeigt Ihnen @command{guix graph hello} die expliziten Eingaben, dagegen zeigt @command{guix graph -t bag hello} auch die impliziten Eingaben (siehe @ref{Invoking guix graph})." #. type: Plain text #: guix-git/doc/guix.texi:8040 msgid "Because packages are regular Scheme objects that capture a complete dependency graph and associated build procedures, it is often useful to write procedures that take a package and return a modified version thereof according to some parameters. Below are a few examples." msgstr "Weil Pakete herkömmliche Scheme-Objekte sind, die einen vollständigen Abhängigkeitsgraphen und die zugehörigen Erstellungsprozeduren umfassen, bietet es sich oftmals an, Prozeduren zu schreiben, die ein Paket entgegennehmen und in Abhängigkeit bestimmter Parameter eine abgeänderte Fassung desselben zurückliefern. Es folgen einige Beispiele." #. type: cindex #: guix-git/doc/guix.texi:8041 #, no-wrap msgid "tool chain, choosing a package's tool chain" msgstr "Toolchain, für ein Paket auswählen" #. type: deffn #: guix-git/doc/guix.texi:8042 #, no-wrap msgid "{Procedure} package-with-c-toolchain package toolchain" msgstr "{Prozedur} package-with-c-toolchain Paket Toolchain" #. type: deffn #: guix-git/doc/guix.texi:8047 msgid "Return a variant of @var{package} that uses @var{toolchain} instead of the default GNU C/C++ toolchain. @var{toolchain} must be a list of inputs (label/package tuples) providing equivalent functionality, such as the @code{gcc-toolchain} package." msgstr "Liefert eine Variante des @var{Paket}s, die die angegebene @var{Toolchain} anstelle der vorgegebenen GNU-C/C++-Toolchain benutzt. Als @var{Toolchain} muss eine Liste von Eingaben (als Tupel aus Bezeichnung und bezeichnetem Paket) angegeben werden, die eine gleichartige Funktion erfüllen, wie zum Beispiel das Paket @code{gcc-toolchain}." #. type: deffn #: guix-git/doc/guix.texi:8051 msgid "The example below returns a variant of the @code{hello} package built with GCC@tie{}10.x and the rest of the GNU tool chain (Binutils and the GNU C Library) instead of the default tool chain:" msgstr "Das folgende Beispiel liefert eine Variante des Pakets @code{hello}, die mit GCC@tie{}10.x und den übrigen Komponenten der GNU-Toolchain (Binutils und GNU-C-Bibliothek) erstellt wurde statt mit der vorgegebenen Toolchain:" #. type: lisp #: guix-git/doc/guix.texi:8055 #, no-wrap msgid "" "(let ((toolchain (specification->package \"gcc-toolchain@@10\")))\n" " (package-with-c-toolchain hello `((\"toolchain\" ,toolchain))))\n" msgstr "" "(let ((toolchain (specification->package \"gcc-toolchain@@10\")))\n" " (package-with-c-toolchain hello `((\"toolchain\" ,toolchain))))\n" #. type: deffn #: guix-git/doc/guix.texi:8063 msgid "The build tool chain is part of the @dfn{implicit inputs} of packages---it's usually not listed as part of the various ``inputs'' fields and is instead pulled in by the build system. Consequently, this procedure works by changing the build system of @var{package} so that it pulls in @var{toolchain} instead of the defaults. @ref{Build Systems}, for more on build systems." msgstr "Die Erstellungs-Toolchain gehört zu den @dfn{impliziten Eingaben} von Paketen@tie{}– sie wird normalerweise nicht ausdrücklich unter den verschiedenen „inputs“-Feldern mit verschiedenen Arten von Eingaben aufgeführt, stattdessen kommt sie über das Erstellungssystem dazu. Daher funktioniert diese Prozedur intern so, dass sie das Erstellungssystem des @var{Paket}s verändert, damit es die ausgewählte @var{Toolchain} statt der vorgegebenen benutzt. Siehe @ref{Build Systems} für weitere Informationen zu Erstellungssystemen." #. type: subsection #: guix-git/doc/guix.texi:8066 #, no-wrap msgid "@code{origin} Reference" msgstr "@code{origin}-Referenz" #. type: Plain text #: guix-git/doc/guix.texi:8074 msgid "This section documents @dfn{origins}. An @code{origin} declaration specifies data that must be ``produced''---downloaded, usually---and whose content hash is known in advance. Origins are primarily used to represent the source code of packages (@pxref{Defining Packages}). For that reason, the @code{origin} form allows you to declare patches to apply to the original source code as well as code snippets to modify it." msgstr "In diesem Abschnitt werden Paketursprünge@tie{}– englisch @dfn{Origins}@tie{}– beschrieben. Eine @code{origin}-Deklaration legt Daten fest, die „produziert“ werden müssen@tie{}– normalerweise heißt das heruntergeladen. Die Hash-Prüfsumme von deren Inhalt muss dabei im Voraus bekannt sein. Ursprünge werden in erster Linie benutzt, um den Quellcode von Paketen zu repräsentieren (siehe @ref{Defining Packages}). Aus diesem Grund können Sie mit der @code{origin}-Form Patches angeben, die auf den ursprünglichen Quellcode angewandt werden sollen, oder auch Schnipsel von Code, der Veränderungen daran vornimmt." #. type: deftp #: guix-git/doc/guix.texi:8075 #, no-wrap msgid "{Data Type} origin" msgstr "{Datentyp} origin" #. type: deftp #: guix-git/doc/guix.texi:8077 msgid "This is the data type representing a source code origin." msgstr "Mit diesem Datentyp wird ein Ursprung, von dem Quellcode geladen werden kann, beschrieben." #. type: code{#1} #: guix-git/doc/guix.texi:8079 guix-git/doc/guix.texi:32204 #, no-wrap msgid "uri" msgstr "uri" #. type: table #: guix-git/doc/guix.texi:8084 msgid "An object containing the URI of the source. The object type depends on the @code{method} (see below). For example, when using the @var{url-fetch} method of @code{(guix download)}, the valid @code{uri} values are: a URL represented as a string, or a list thereof." msgstr "Ein Objekt, was die URI des Quellcodes enthält. Der Objekttyp hängt von der @code{Methode} ab (siehe unten). Zum Beispiel sind, wenn die @var{url-fetch}-Methode aus @code{(guix download)} benutzt wird, die gültigen Werte für @code{uri}: eine URL dargestellt als Zeichenkette oder eine Liste solcher URLs." #. type: cindex #: guix-git/doc/guix.texi:8085 #, no-wrap msgid "fixed-output derivations, for download" msgstr "Ableitungen mit fester Ausgabe, zum Herunterladen" #. type: code{#1} #: guix-git/doc/guix.texi:8086 #, no-wrap msgid "method" msgstr "method" #. type: table #: guix-git/doc/guix.texi:8093 msgid "A monadic procedure that handles the given URI@. The procedure must accept at least three arguments: the value of the @code{uri} field and the hash algorithm and hash value specified by the @code{hash} field. It must return a store item or a derivation in the store monad (@pxref{The Store Monad}); most methods return a fixed-output derivation (@pxref{Derivations})." msgstr "Eine monadische Prozedur, um die angegebene URL zu benutzen. Die Prozedur muss mindestens drei Argumente akzeptieren: den Wert des @code{uri}-Feldes, den Hash-Algorithmus und den Hash-Wert, der im @code{hash}-Feld angegeben wird. Sie muss ein Store-Objekt oder eine Ableitung in der Store-Monade liefern (siehe @ref{The Store Monad}). Die meisten Methoden liefern eine Ableitung mit fester Ausgabe (siehe @ref{Derivations})." #. type: table #: guix-git/doc/guix.texi:8097 msgid "Commonly used methods include @code{url-fetch}, which fetches data from a URL, and @code{git-fetch}, which fetches data from a Git repository (see below)." msgstr "Zu den häufig benutzten Methoden gehören @code{url-fetch}, das Daten von einer URL lädt, und @code{git-fetch}, das Daten aus einem Git-Repository lädt (siehe unten)." #. type: code{#1} #: guix-git/doc/guix.texi:8098 #, no-wrap msgid "sha256" msgstr "sha256" #. type: table #: guix-git/doc/guix.texi:8102 msgid "A bytevector containing the SHA-256 hash of the source. This is equivalent to providing a @code{content-hash} SHA256 object in the @code{hash} field described below." msgstr "Ein Byte-Vektor mit dem SHA-256-Hash des Quellcodes. Seine Funktion ist dieselbe wie das Angeben eines @code{content-hash}-SHA256-Objekts im weiter unten beschriebenen @code{hash}-Feld." #. type: code{#1} #: guix-git/doc/guix.texi:8103 #, no-wrap msgid "hash" msgstr "hash" #. type: table #: guix-git/doc/guix.texi:8106 msgid "The @code{content-hash} object of the source---see below for how to use @code{content-hash}." msgstr "Das @code{content-hash}-Objekt des Quellcodes. Siehe unten für eine Erklärung, wie Sie @code{content-hash} benutzen." #. type: table #: guix-git/doc/guix.texi:8110 msgid "You can obtain this information using @code{guix download} (@pxref{Invoking guix download}) or @code{guix hash} (@pxref{Invoking guix hash})." msgstr "Diese Informationen liefert Ihnen der Befehl @code{guix download} (siehe @ref{Invoking guix download}) oder @code{guix hash} (siehe @ref{Invoking guix hash})." #. type: item #: guix-git/doc/guix.texi:8111 #, no-wrap msgid "@code{file-name} (default: @code{#f})" msgstr "@code{file-name} (Vorgabe: @code{#f})" #. type: table #: guix-git/doc/guix.texi:8117 msgid "The file name under which the source code should be saved. When this is @code{#f}, a sensible default value will be used in most cases. In case the source is fetched from a URL, the file name from the URL will be used. For version control checkouts, it is recommended to provide the file name explicitly because the default is not very descriptive." msgstr "Der Dateiname, unter dem der Quellcode abgespeichert werden soll. Wenn er auf @code{#f} steht, wird ein vernünftiger Name automatisch gewählt. Falls der Quellcode von einer URL geladen wird, wird der Dateiname aus der URL genommen. Wenn der Quellcode von einem Versionskontrollsystem bezogen wird, empfiehlt es sich, den Dateinamen ausdrücklich anzugeben, weil dann keine sprechende Benennung automatisch gefunden werden kann." #. type: item #: guix-git/doc/guix.texi:8118 #, no-wrap msgid "@code{patches} (default: @code{'()})" msgstr "@code{patches} (Vorgabe: @code{'()})" #. type: table #: guix-git/doc/guix.texi:8121 msgid "A list of file names, origins, or file-like objects (@pxref{G-Expressions, file-like objects}) pointing to patches to be applied to the source." msgstr "Eine Liste von Dateinamen, Ursprüngen oder dateiähnlichen Objekten (siehe @ref{G-Expressions, dateiartige Objekte}) mit Patches, welche auf den Quellcode anzuwenden sind." #. type: table #: guix-git/doc/guix.texi:8125 msgid "This list of patches must be unconditional. In particular, it cannot depend on the value of @code{%current-system} or @code{%current-target-system}." msgstr "Die Liste von Patches kann nicht von Parametern der Erstellung abhängen. Insbesondere kann sie nicht vom Wert von @code{%current-system} oder @code{%current-target-system} abḧängen." #. type: item #: guix-git/doc/guix.texi:8126 #, no-wrap msgid "@code{snippet} (default: @code{#f})" msgstr "@code{snippet} (Vorgabe: @code{#f})" #. type: table #: guix-git/doc/guix.texi:8130 msgid "A G-expression (@pxref{G-Expressions}) or S-expression that will be run in the source directory. This is a convenient way to modify the source, sometimes more convenient than a patch." msgstr "Ein im Quellcode-Verzeichnis auszuführender G-Ausdruck (siehe @ref{G-Expressions}) oder S-Ausdruck. Hiermit kann der Quellcode bequem modifiziert werden, manchmal ist dies bequemer als mit einem Patch." #. type: item #: guix-git/doc/guix.texi:8131 #, no-wrap msgid "@code{patch-flags} (default: @code{'(\"-p1\")})" msgstr "@code{patch-flags} (Vorgabe: @code{'(\"-p1\")})" #. type: table #: guix-git/doc/guix.texi:8134 msgid "A list of command-line flags that should be passed to the @code{patch} command." msgstr "Eine Liste der Befehlszeilenoptionen, die dem @code{patch}-Befehl übergeben werden sollen." #. type: item #: guix-git/doc/guix.texi:8135 #, no-wrap msgid "@code{patch-inputs} (default: @code{#f})" msgstr "@code{patch-inputs} (Vorgabe: @code{#f})" #. type: table #: guix-git/doc/guix.texi:8139 msgid "Input packages or derivations to the patching process. When this is @code{#f}, the usual set of inputs necessary for patching are provided, such as GNU@tie{}Patch." msgstr "Eingabepakete oder -ableitungen für den Patch-Prozess. Bei @code{#f} werden die üblichen Patcheingaben wie GNU@tie{}Patch bereitgestellt." #. type: item #: guix-git/doc/guix.texi:8140 guix-git/doc/guix.texi:32062 #, no-wrap msgid "@code{modules} (default: @code{'()})" msgstr "@code{modules} (Vorgabe: @code{'()})" #. type: table #: guix-git/doc/guix.texi:8143 msgid "A list of Guile modules that should be loaded during the patching process and while running the code in the @code{snippet} field." msgstr "Eine Liste von Guile-Modulen, die während des Patch-Prozesses und während der Ausführung des @code{snippet}-Felds geladen sein sollen." #. type: item #: guix-git/doc/guix.texi:8144 #, no-wrap msgid "@code{patch-guile} (default: @code{#f})" msgstr "@code{patch-guile} (Vorgabe: @code{#f})" #. type: table #: guix-git/doc/guix.texi:8147 msgid "The Guile package that should be used in the patching process. When this is @code{#f}, a sensible default is used." msgstr "Welches Guile-Paket für den Patch-Prozess benutzt werden soll. Bei @code{#f} wird ein vernünftiger Vorgabewert angenommen." #. type: deftp #: guix-git/doc/guix.texi:8150 #, no-wrap msgid "{Data Type} content-hash @var{value} [@var{algorithm}]" msgstr "{Datentyp} content-hash @var{Wert} [@var{Algorithmus}]" #. type: deftp #: guix-git/doc/guix.texi:8154 msgid "Construct a content hash object for the given @var{algorithm}, and with @var{value} as its hash value. When @var{algorithm} is omitted, assume it is @code{sha256}." msgstr "Erzeugt ein Inhaltshash-Objekt für den gegebenen @var{Algorithmus} und benutzt dabei den @var{Wert} als dessen Hashwert. Wenn kein @var{Algorithmus} angegeben wird, wird @code{sha256} angenommen." #. type: deftp #: guix-git/doc/guix.texi:8157 msgid "@var{value} can be a literal string, in which case it is base32-decoded, or it can be a bytevector." msgstr "Als @var{Wert} kann ein Zeichenketten-Literal, was base32-dekodiert wird, oder ein Byte-Vektor angegeben werden." #. type: deftp #: guix-git/doc/guix.texi:8159 msgid "The following forms are all equivalent:" msgstr "Folgende Formen sind äquivalent:" #. type: lisp #: guix-git/doc/guix.texi:8168 #, no-wrap msgid "" "(content-hash \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\")\n" "(content-hash \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\"\n" " sha256)\n" "(content-hash (base32\n" " \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\"))\n" "(content-hash (base64 \"kkb+RPaP7uyMZmu4eXPVkM4BN8yhRd8BTHLslb6f/Rc=\")\n" " sha256)\n" msgstr "" "(content-hash \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\")\n" "(content-hash \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\"\n" " sha256)\n" "(content-hash (base32\n" " \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\"))\n" "(content-hash (base64 \"kkb+RPaP7uyMZmu4eXPVkM4BN8yhRd8BTHLslb6f/Rc=\")\n" " sha256)\n" #. type: deftp #: guix-git/doc/guix.texi:8173 msgid "Technically, @code{content-hash} is currently implemented as a macro. It performs sanity checks at macro-expansion time, when possible, such as ensuring that @var{value} has the right size for @var{algorithm}." msgstr "Als interne Implementierung wird für @code{content-hash} derzeit ein Makro benutzt. Es überprüft, wenn möglich, zum Zeitpunkt der Makroumschreibung, ob die Angaben in Ordnung sind, z.B.@: ob der @var{Wert} die richtige Größe für den angegebenen @var{Algorithmus} hat." #. type: Plain text #: guix-git/doc/guix.texi:8179 msgid "As we have seen above, how exactly the data an origin refers to is retrieved is determined by its @code{method} field. The @code{(guix download)} module provides the most common method, @code{url-fetch}, described below." msgstr "Wie wir oben gesehen haben, hängt es von der im @code{method}-Feld angegebenen Methode ab, wie die in einem Paketursprung verwiesenen Daten geladen werden. Das Modul @code{(guix download)} stellt die am häufigsten benutzte Methode zur Verfügung, nämlich @code{url-fetch}, die im Folgenden beschrieben wird." #. type: deffn #: guix-git/doc/guix.texi:8180 #, no-wrap msgid "{Procedure} url-fetch url hash-algo hash [name] [#:executable? #f]" msgstr "{Prozedur} url-fetch URL Hash-Algo Hash [Name] [#:executable? #f]" #. type: deffn #: guix-git/doc/guix.texi:8187 msgid "Return a fixed-output derivation that fetches data from @var{url} (a string, or a list of strings denoting alternate URLs), which is expected to have hash @var{hash} of type @var{hash-algo} (a symbol). By default, the file name is the base name of URL; optionally, @var{name} can specify a different file name. When @var{executable?} is true, make the downloaded file executable." msgstr "Liefert eine Ableitung mit fester Ausgabe, die Daten von der @var{URL} lädt (einer Zeichenkette oder Liste von Zeichenketten für alternativ mögliche URLs). Es wird erwartet, dass die Daten @var{Hash} als Prüfsumme haben, gemäß dem Algorithmus, der in @var{Hash-Algo} (einem Symbol) angegebenen wurde. Nach Vorgabe ergibt sich der Dateiname aus dem Basisnamen der URL; optional kann in @var{Name} ein anderslautender Name festgelegt werden. Wenn @var{executable?} wahr ist, wird die heruntergeladene Datei als ausführbar markiert." #. type: deffn #: guix-git/doc/guix.texi:8190 msgid "When one of the URL starts with @code{mirror://}, then its host part is interpreted as the name of a mirror scheme, taken from @file{%mirror-file}." msgstr "Wenn eine der URL mit @code{mirror://} beginnt, wird der „Host Part“ an deren Anfang als Name eines Spiegelserver-Schemas aufgefasst, wie es in @file{%mirror-file} steht." #. type: deffn #: guix-git/doc/guix.texi:8193 msgid "Alternatively, when URL starts with @code{file://}, return the corresponding file name in the store." msgstr "Alternativ wird, wenn die URL mit @code{file://} beginnt, der zugehörige Dateiname in den Store eingefügt und zurückgeliefert." #. type: Plain text #: guix-git/doc/guix.texi:8199 msgid "Likewise, the @code{(guix git-download)} module defines the @code{git-fetch} origin method, which fetches data from a Git version control repository, and the @code{git-reference} data type to describe the repository and revision to fetch." msgstr "Ebenso ist im Modul @code{(guix git-download)} die @code{git-fetch}-Methode für Paketursprünge definiert. Sie lädt Daten aus einem Repository des Versionskontrollsystems Git. Der Datentyp @code{git-reference} beschreibt dabei das Repository und den daraus zu ladenden Commit." #. type: deffn #: guix-git/doc/guix.texi:8200 #, no-wrap msgid "{Procedure} git-fetch ref hash-algo hash" msgstr "{Prozedur} git-fetch Ref Hash-Algo Hash" #. type: deffn #: guix-git/doc/guix.texi:8205 msgid "Return a fixed-output derivation that fetches @var{ref}, a @code{<git-reference>} object. The output is expected to have recursive hash @var{hash} of type @var{hash-algo} (a symbol). Use @var{name} as the file name, or a generic name if @code{#f}." msgstr "Liefert eine Ableitung mit fester Ausgabe, die @var{Ref} lädt, ein @code{<git-reference>}-Objekt. Es wird erwartet, dass die Ausgabe rekursiv die Prüfsumme @var{Hash} aufweist (ein „rekursiver Hash“) gemäß dem Typ @var{Hash-Algo} (einem Symbol). Als Dateiname wird @var{Name} verwendet, oder ein generischer Name, falls @var{Name} @code{#f} ist." #. type: deffn #: guix-git/doc/guix.texi:8207 #, no-wrap msgid "{Procedure} git-fetch/lfs ref hash-algo hash" msgstr "{Prozedur} git-fetch/lfs Ref Hash-Algo Hash" #. type: deffn #: guix-git/doc/guix.texi:8212 msgid "This is a variant of the @code{git-fetch} procedure that supports the Git @acronym{LFS, Large File Storage} extension. This may be useful to pull some binary test data to run the test suite of a package, for example." msgstr "Dies ist eine Variante der Prozedur @code{git-fetch}, die die Git-Erweiterung @acronym{LFS, Large File Storage} unterstützt. Sie kann zum Beispiel dabei helfen, binäre Testdaten herunterzuladen, die im Testkatalog eines Pakets gebraucht werden." #. type: deftp #: guix-git/doc/guix.texi:8214 #, no-wrap msgid "{Data Type} git-reference" msgstr "{Datentyp} git-reference" #. type: deftp #: guix-git/doc/guix.texi:8217 msgid "This data type represents a Git reference for @code{git-fetch} to retrieve." msgstr "Dieser Datentyp steht für eine Git-Referenz, die @code{git-fetch} laden soll." #. type: code{#1} #: guix-git/doc/guix.texi:8219 guix-git/doc/guix.texi:8267 #: guix-git/doc/guix.texi:8291 guix-git/doc/guix.texi:8326 #: guix-git/doc/guix.texi:29473 #, no-wrap msgid "url" msgstr "url" #. type: table #: guix-git/doc/guix.texi:8221 msgid "The URL of the Git repository to clone." msgstr "Die URL des zu klonenden Git-Repositorys." #. type: code{#1} #: guix-git/doc/guix.texi:8222 #, no-wrap msgid "commit" msgstr "commit" #. type: table #: guix-git/doc/guix.texi:8227 msgid "This string denotes either the commit to fetch (a hexadecimal string), or the tag to fetch. You can also use a ``short'' commit ID or a @command{git describe} style identifier such as @code{v1.0.1-10-g58d7909c97}." msgstr "Diese Zeichenkette gibt entweder den zu ladenden Commit an (als Zeichenkette aus Hexadezimalzeichen) oder sie entspricht dem zu ladenden Tag. Sie können auch eine „kurze“ Commit-Zeichenkette oder einen Bezeichner wie von @command{git describe}, z.B.@: @code{v1.0.1-10-g58d7909c97}, verwenden." #. type: item #: guix-git/doc/guix.texi:8228 guix-git/doc/guix.texi:8297 #, no-wrap msgid "@code{recursive?} (default: @code{#f})" msgstr "@code{recursive?} (Vorgabe: @code{#f})" #. type: table #: guix-git/doc/guix.texi:8230 msgid "This Boolean indicates whether to recursively fetch Git sub-modules." msgstr "Dieser boolesche Wert gibt an, ob Git-Submodule rekursiv geladen werden sollen." #. type: deftp #: guix-git/doc/guix.texi:8234 msgid "The example below denotes the @code{v2.10} tag of the GNU@tie{}Hello repository:" msgstr "Im folgenden Beispiel wird der Tag @code{v2.10} des Repositorys für GNU@tie{}Hello bezeichnet:" #. type: lisp #: guix-git/doc/guix.texi:8239 #, no-wrap msgid "" "(git-reference\n" " (url \"https://git.savannah.gnu.org/git/hello.git\")\n" " (commit \"v2.10\"))\n" msgstr "" "(git-reference\n" " (url \"https://git.savannah.gnu.org/git/hello.git\")\n" " (commit \"v2.10\"))\n" #. type: deftp #: guix-git/doc/guix.texi:8243 msgid "This is equivalent to the reference below, which explicitly names the commit:" msgstr "Das ist äquivalent zu folgender Referenz, wo der Commit ausdrücklich benannt wird:" #. type: lisp #: guix-git/doc/guix.texi:8248 #, no-wrap msgid "" "(git-reference\n" " (url \"https://git.savannah.gnu.org/git/hello.git\")\n" " (commit \"dc7dc56a00e48fe6f231a58f6537139fe2908fb9\"))\n" msgstr "" "(git-reference\n" " (url \"https://git.savannah.gnu.org/git/hello.git\")\n" " (commit \"dc7dc56a00e48fe6f231a58f6537139fe2908fb9\"))\n" #. type: Plain text #: guix-git/doc/guix.texi:8254 msgid "For Mercurial repositories, the module @code{(guix hg-download)} defines the @code{hg-fetch} origin method and @code{hg-reference} data type for support of the Mercurial version control system." msgstr "Bei Mercurial-Repositorys finden Sie im Modul @code{(guix hg-download)} Definitionen für die Methode @code{hg-fetch} für Paketursprünge sowie den Datentyp @code{hg-reference}. Mit ihnen wird das Versionskontrollsystem Mercurial unterstützt." #. type: deffn #: guix-git/doc/guix.texi:8255 #, no-wrap msgid "{Procedure} hg-fetch ref hash-algo hash [name]" msgstr "{Prozedur} hg-fetch Ref Hash-Algo Hash [Name]" #. type: deffn #: guix-git/doc/guix.texi:8260 msgid "Return a fixed-output derivation that fetches @var{ref}, a @code{<hg-reference>} object. The output is expected to have recursive hash @var{hash} of type @var{hash-algo} (a symbol). Use @var{name} as the file name, or a generic name if @code{#f}." msgstr "Liefert eine Ableitung mit fester Ausgabe, die @var{Ref} lädt, ein @code{<hg-reference>}-Objekt. Es wird erwartet, dass die Ausgabe rekursiv die Prüfsumme @var{Hash} aufweist (ein „rekursiver Hash“) gemäß dem Typ @var{Hash-Algo} (einem Symbol). Als Dateiname wird @var{Name} verwendet, oder ein generischer Name, falls @var{Name} @code{#f} ist." #. type: deftp #: guix-git/doc/guix.texi:8262 #, no-wrap msgid "{Data Type} hg-reference" msgstr "{Datentyp} hg-reference" #. type: deftp #: guix-git/doc/guix.texi:8265 msgid "This data type represents a Mercurial reference for @code{hg-fetch} to retrieve." msgstr "Dieser Datentyp steht für eine Mercurial-Referenz, die @code{hg-fetch} laden soll." #. type: table #: guix-git/doc/guix.texi:8269 msgid "The URL of the Mercurial repository to clone." msgstr "Die URL des zu klonenden Mercurial-Repositorys." #. type: code{#1} #: guix-git/doc/guix.texi:8270 #, fuzzy, no-wrap #| msgid "channels" msgid "changeset" msgstr "channels" #. type: table #: guix-git/doc/guix.texi:8272 #, fuzzy #| msgid "This string denotes revision to fetch specified as a number." msgid "This string denotes changeset to fetch." msgstr "Diese Zeichenkette gibt die zu ladende Revision als Zahl an." #. type: Plain text #: guix-git/doc/guix.texi:8278 msgid "For Subversion repositories, the module @code{(guix svn-download)} defines the @code{svn-fetch} origin method and @code{svn-reference} data type for support of the Subversion version control system." msgstr "Bei Subversion-Repositorys finden Sie im Modul @code{(guix svn-download)} Definitionen für die Methode @code{svn-fetch} für Paketursprünge sowie den Datentyp @code{svn-reference}. Mit ihnen wird das Versionskontrollsystem Subversion unterstützt." #. type: deffn #: guix-git/doc/guix.texi:8279 #, no-wrap msgid "{Procedure} svn-fetch ref hash-algo hash [name]" msgstr "{Prozedur} svn-fetch Ref Hash-Algo Hash [Name]" #. type: deffn #: guix-git/doc/guix.texi:8284 msgid "Return a fixed-output derivation that fetches @var{ref}, a @code{<svn-reference>} object. The output is expected to have recursive hash @var{hash} of type @var{hash-algo} (a symbol). Use @var{name} as the file name, or a generic name if @code{#f}." msgstr "Liefert eine Ableitung mit fester Ausgabe, die @var{Ref} lädt, ein @code{<svn-reference>}-Objekt. Es wird erwartet, dass die Ausgabe rekursiv die Prüfsumme @var{Hash} aufweist (ein „rekursiver Hash“) gemäß dem Typ @var{Hash-Algo} (einem Symbol). Als Dateiname wird @var{Name} verwendet, oder ein generischer Name, falls @var{Name} @code{#f} ist." #. type: deftp #: guix-git/doc/guix.texi:8286 #, no-wrap msgid "{Data Type} svn-reference" msgstr "{Datentyp} svn-reference" #. type: deftp #: guix-git/doc/guix.texi:8289 msgid "This data type represents a Subversion reference for @code{svn-fetch} to retrieve." msgstr "Dieser Datentyp steht für eine Subversion-Referenz, die @code{svn-fetch} laden soll." #. type: table #: guix-git/doc/guix.texi:8293 msgid "The URL of the Subversion repository to clone." msgstr "Die URL des zu klonenden Subversion-Repositorys." #. type: code{#1} #: guix-git/doc/guix.texi:8294 guix-git/doc/guix.texi:8329 #: guix-git/doc/guix.texi:8356 #, no-wrap msgid "revision" msgstr "revision" #. type: table #: guix-git/doc/guix.texi:8296 guix-git/doc/guix.texi:8331 msgid "This string denotes revision to fetch specified as a number." msgstr "Diese Zeichenkette gibt die zu ladende Revision als Zahl an." #. type: table #: guix-git/doc/guix.texi:8300 msgid "This Boolean indicates whether to recursively fetch Subversion ``externals''." msgstr "Dieser boolesche Wert gibt an, ob Subversions „externe Verweise“ rekursiv geladen werden sollen." #. type: item #: guix-git/doc/guix.texi:8301 #, no-wrap msgid "@code{user-name} (default: @code{#f})" msgstr "@code{user-name} (Vorgabe: @code{#f})" #. type: table #: guix-git/doc/guix.texi:8304 msgid "The name of an account that has read-access to the repository, if the repository isn't public." msgstr "Der Name eines Kontos mit Lesezugriff auf das Repository, wenn das Repository nicht öffentlich ist." #. type: item #: guix-git/doc/guix.texi:8305 guix-git/doc/guix.texi:18556 #: guix-git/doc/guix.texi:18611 #, no-wrap msgid "@code{password} (default: @code{#f})" msgstr "@code{password} (Vorgabe: @code{#f})" #. type: table #: guix-git/doc/guix.texi:8307 msgid "Password to access the Subversion repository, if required." msgstr "Das Passwort zum Zugriff auf das Subversion-Repository, wenn nötig." #. type: Plain text #: guix-git/doc/guix.texi:8313 msgid "For Bazaar repositories, the module @code{(guix bzr-download)} defines the @code{bzr-fetch} origin method and @code{bzr-reference} data type for support of the Bazaar version control system." msgstr "Bei Bazaar-Repositorys finden Sie im Modul @code{(guix bzr-download)} Definitionen für die Methode @code{bzr-fetch} für Paketursprünge sowie den Datentyp @code{bzr-reference}. Mit ihnen wird das Versionskontrollsystem Bazaar unterstützt." #. type: deffn #: guix-git/doc/guix.texi:8314 #, no-wrap msgid "{Procedure} bzr-fetch ref hash-algo hash [name]" msgstr "{Prozedur} bzr-fetch Ref Hash-Algo Hash [Name]" #. type: deffn #: guix-git/doc/guix.texi:8319 msgid "Return a fixed-output derivation that fetches @var{ref}, a @code{<bzr-reference>} object. The output is expected to have recursive hash @var{hash} of type @var{hash-algo} (a symbol). Use @var{name} as the file name, or a generic name if @code{#f}." msgstr "Liefert eine Ableitung mit fester Ausgabe, die @var{Ref} lädt, ein @code{<bzr-reference>}-Objekt. Es wird erwartet, dass die Ausgabe rekursiv die Prüfsumme @var{Hash} aufweist (ein „rekursiver Hash“) gemäß dem Typ @var{Hash-Algo} (einem Symbol). Als Dateiname wird @var{Name} verwendet, oder ein generischer Name, falls @var{Name} @code{#f} ist." #. type: deftp #: guix-git/doc/guix.texi:8321 #, no-wrap msgid "{Data Type} bzr-reference" msgstr "{Datentyp} bzr-reference" #. type: deftp #: guix-git/doc/guix.texi:8324 msgid "This data type represents a Bazaar reference for @code{bzr-fetch} to retrieve." msgstr "Dieser Datentyp steht für eine Bazaar-Referenz, die @code{bzr-fetch} laden soll." #. type: table #: guix-git/doc/guix.texi:8328 msgid "The URL of the Bazaar repository to clone." msgstr "Die URL des zu klonenden Bazaar-Repositorys." #. type: Plain text #: guix-git/doc/guix.texi:8337 #, fuzzy #| msgid "For Subversion repositories, the module @code{(guix svn-download)} defines the @code{svn-fetch} origin method and @code{svn-reference} data type for support of the Subversion version control system." msgid "For CVS repositories, the module @code{(guix cvs-download)} defines the @code{cvs-fetch} origin method and @code{cvs-reference} data type for support of the Concurrent Versions System (CVS)." msgstr "Bei Subversion-Repositorys finden Sie im Modul @code{(guix svn-download)} Definitionen für die Methode @code{svn-fetch} für Paketursprünge sowie den Datentyp @code{svn-reference}. Mit ihnen wird das Versionskontrollsystem Subversion unterstützt." #. type: deffn #: guix-git/doc/guix.texi:8338 #, fuzzy, no-wrap #| msgid "{Procedure} svn-fetch ref hash-algo hash [name]" msgid "{Procedure} cvs-fetch ref hash-algo hash [name]" msgstr "{Prozedur} svn-fetch Ref Hash-Algo Hash [Name]" #. type: deffn #: guix-git/doc/guix.texi:8343 msgid "Return a fixed-output derivation that fetches @var{ref}, a @code{<cvs-reference>} object. The output is expected to have recursive hash @var{hash} of type @var{hash-algo} (a symbol). Use @var{name} as the file name, or a generic name if @code{#f}." msgstr "Liefert eine Ableitung mit fester Ausgabe, die @var{Ref} lädt, ein @code{<cvs-reference>}-Objekt. Es wird erwartet, dass die Ausgabe rekursiv die Prüfsumme @var{Hash} aufweist (ein „rekursiver Hash“) gemäß dem Typ @var{Hash-Algo} (einem Symbol). Als Dateiname wird @var{Name} verwendet, oder ein generischer Name, falls @var{Name} @code{#f} ist." #. type: deftp #: guix-git/doc/guix.texi:8345 #, fuzzy, no-wrap #| msgid "{Data Type} svn-reference" msgid "{Data Type} cvs-reference" msgstr "{Datentyp} svn-reference" #. type: deftp #: guix-git/doc/guix.texi:8348 msgid "This data type represents a CVS reference for @code{cvs-fetch} to retrieve." msgstr "Dieser Datentyp steht für eine CVS-Referenz, die @code{cvs-fetch} laden soll." #. type: code{#1} #: guix-git/doc/guix.texi:8350 #, fuzzy, no-wrap #| msgid "home-directory" msgid "root-directory" msgstr "home-directory" #. type: table #: guix-git/doc/guix.texi:8352 #, fuzzy #| msgid "The getmail directory to use." msgid "The CVS root directory." msgstr "Welches getmail-Verzeichnis benutzt werden soll." #. type: item #: guix-git/doc/guix.texi:8353 guix-git/doc/guix.texi:15776 #, no-wrap msgid "module" msgstr "Modul" #. type: table #: guix-git/doc/guix.texi:8355 msgid "Module to fetch." msgstr "" #. type: table #: guix-git/doc/guix.texi:8358 msgid "Revision to fetch." msgstr "" #. type: deftp #: guix-git/doc/guix.texi:8361 #, fuzzy #| msgid "The example below shows how to add two entries to @file{/etc/hosts}:" msgid "The example below denotes a version of gnu-standards to fetch:" msgstr "Das folgende Beispiel zeigt, wie man zwei Einträge zu @file{/etc/hosts} hinzufügt:" #. type: lisp #: guix-git/doc/guix.texi:8367 #, no-wrap msgid "" "(cvs-reference\n" " (root-directory \":pserver:anonymous@@cvs.savannah.gnu.org:/sources/gnustandards\")\n" " (module \"gnustandards\")\n" " (revision \"2020-11-25\"))\n" msgstr "" #. type: cindex #: guix-git/doc/guix.texi:8374 #, no-wrap msgid "customizing packages" msgstr "Pakete anpassen" #. type: cindex #: guix-git/doc/guix.texi:8375 #, no-wrap msgid "variants, of packages" msgstr "Varianten, von Paketen" #. type: Plain text #: guix-git/doc/guix.texi:8385 msgid "One of the nice things with Guix is that, given a package definition, you can easily @emph{derive} variants of that package---for a different upstream version, with different dependencies, different compilation options, and so on. Some of these custom packages can be defined straight from the command line (@pxref{Package Transformation Options}). This section describes how to define package variants in code. This can be useful in ``manifests'' (@pxref{Writing Manifests}) and in your own package collection (@pxref{Creating a Channel}), among others!" msgstr "Eine der schönen Sachen an Guix ist, dass Sie aus einer Paketdefinition leicht Varianten desselben Pakets @emph{ableiten} können@tie{}– solche, die vom Anbieter eine andere Paketversion nehmen, als im Guix-Repository angegeben, solche mit anderen Abhängigkeiten, anders gearteten Compiler-Optionen und mehr. Manche dieser eigenen Pakete lassen sich direkt aus der Befehlszeile definieren (siehe @ref{Package Transformation Options}). Dieser Abschnitt beschreibt, wie man Paketvarianten mit Code definiert. Das kann in „Manifesten“ nützlich sein (siehe @ref{Writing Manifests}) und in Ihrer eigenen Paketsammlung (siehe @ref{Creating a Channel}), unter anderem!" #. type: cindex #: guix-git/doc/guix.texi:8386 #, no-wrap msgid "inherit, for package definitions" msgstr "inherit, für Paketdefinitionen" #. type: Plain text #: guix-git/doc/guix.texi:8393 msgid "As discussed earlier, packages are first-class objects in the Scheme language. The @code{(guix packages)} module provides the @code{package} construct to define new package objects (@pxref{package Reference}). The easiest way to define a package variant is using the @code{inherit} keyword together with @code{package}. This allows you to inherit from a package definition while overriding the fields you want." msgstr "Wie zuvor erörtert, sind Pakete Objekte erster Klasse in der Scheme-Sprache. Das Modul @code{(guix packages)} stellt das @code{package}-Konstrukt zur Verfügung, mit dem neue Paketobjekte definiert werden können (siehe @ref{package Reference}). Am einfachsten ist es, eine Paketvariante zu definieren, indem Sie das @code{inherit}-Schlüsselwort mit einem @code{package}-Objekt verwenden. Dadurch können Sie die Felder einer Paketdefinition erben lassen, aber die Felder selbst festlegen, die Sie festlegen möchten." #. type: Plain text #: guix-git/doc/guix.texi:8398 msgid "For example, given the @code{hello} variable, which contains a definition for the current version of GNU@tie{}Hello, here's how you would define a variant for version 2.2 (released in 2006, it's vintage!):" msgstr "Betrachten wir zum Beispiel die Variable @code{hello}, die eine Definition für die aktuelle Version von GNU@tie{}Hello enthält. So können Sie eine Variante für Version 2.2 definieren (welche 2006 veröffentlicht wurde@tie{}– ein guter Jahrgang!):" #. type: lisp #: guix-git/doc/guix.texi:8401 #, no-wrap msgid "" "(use-modules (gnu packages base)) ;for 'hello'\n" "\n" msgstr "" "(use-modules (gnu packages base)) ;für „hello“\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:8413 #, no-wrap msgid "" "(define hello-2.2\n" " (package\n" " (inherit hello)\n" " (version \"2.2\")\n" " (source (origin\n" " (method url-fetch)\n" " (uri (string-append \"mirror://gnu/hello/hello-\" version\n" " \".tar.gz\"))\n" " (sha256\n" " (base32\n" " \"0lappv4slgb5spyqbh6yl5r013zv72yqg2pcl30mginf3wdqd8k9\"))))))\n" msgstr "" "(define hello-2.2\n" " (package\n" " (inherit hello)\n" " (version \"2.2\")\n" " (source (origin\n" " (method url-fetch)\n" " (uri (string-append \"mirror://gnu/hello/hello-\" version\n" " \".tar.gz\"))\n" " (sha256\n" " (base32\n" " \"0lappv4slgb5spyqbh6yl5r013zv72yqg2pcl30mginf3wdqd8k9\"))))))\n" #. type: Plain text #: guix-git/doc/guix.texi:8423 msgid "The example above corresponds to what the @option{--with-version} or @option{--with-source} package transformations option do. Essentially @code{hello-2.2} preserves all the fields of @code{hello}, except @code{version} and @code{source}, which it overrides. Note that the original @code{hello} variable is still there, in the @code{(gnu packages base)} module, unchanged. When you define a custom package like this, you are really @emph{adding} a new package definition; the original one remains available." msgstr "Das obige Beispiel entspricht dem, was Sie mit den Paketumwandlungsoptionen @option{--with-version} oder @option{--with-source} erreichen können. Im Kern erhält @code{hello-2.2} alle Felder von @code{hello} mit Ausnahme von @code{version} und @code{source}, die ersetzt werden (die beiden unterliegen einem „Override“). Beachten Sie, dass es die ursprüngliche @code{hello}-Variable weiterhin gibt, sie bleibt unverändert in dem Modul @code{(gnu packages base)}. Wenn Sie auf diese Weise ein eigenes Paket definieren, fügen Sie tatsächlich eine neue Paketdefinition hinzu; das Original bleibt erhalten." #. type: Plain text #: guix-git/doc/guix.texi:8429 msgid "You can just as well define variants with a different set of dependencies than the original package. For example, the default @code{gdb} package depends on @code{guile}, but since that is an optional dependency, you can define a variant that removes that dependency like so:" msgstr "Genauso gut können Sie Varianten mit einer anderen Menge von Abhängigkeiten als im ursprünglichen Paket definieren. Zum Beispiel hängt das vorgegebene @code{gdb}-Paket von @code{guile} ab, aber weil es eine optionale Abhängigkeit ist, können Sie eine Variante definieren, die jene Abhängigkeit entfernt, etwa so:" #. type: lisp #: guix-git/doc/guix.texi:8432 #, no-wrap msgid "" "(use-modules (gnu packages gdb)) ;for 'gdb'\n" "\n" msgstr "" "(use-modules (gnu packages gdb)) ;für „gdb“\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:8438 #, no-wrap msgid "" "(define gdb-sans-guile\n" " (package\n" " (inherit gdb)\n" " (inputs (modify-inputs (package-inputs gdb)\n" " (delete \"guile\")))))\n" msgstr "" "(define gdb-sans-guile\n" " (package\n" " (inherit gdb)\n" " (inputs (modify-inputs (package-inputs gdb)\n" " (delete \"guile\")))))\n" #. type: Plain text #: guix-git/doc/guix.texi:8444 msgid "The @code{modify-inputs} form above removes the @code{\"guile\"} package from the @code{inputs} field of @code{gdb}. The @code{modify-inputs} macro is a helper that can prove useful anytime you want to remove, add, or replace package inputs." msgstr "Mit obiger @code{modify-inputs}-Form wird das @code{\"guile\"}-Paket aus den Eingaben im @code{inputs}-Feld von @code{gdb} entfernt. Das @code{modify-inputs}-Makro hilft Ihnen, wann immer Sie etwas aus den Paketeingaben entfernen, hinzufügen oder ersetzen möchten." #. type: defmac #: guix-git/doc/guix.texi:8445 #, no-wrap msgid "modify-inputs inputs clauses" msgstr "modify-inputs Eingaben Klauseln" #. type: defmac #: guix-git/doc/guix.texi:8449 msgid "Modify the given package inputs, as returned by @code{package-inputs} & co., according to the given clauses. Each clause must have one of the following forms:" msgstr "Ändert die übergebenen Paketeingaben, die @code{package-inputs} & Co.@: liefern können, entsprechend der angegebenen Klauseln. Jede Klausel muss eine der folgenden Formen aufweisen:" #. type: item #: guix-git/doc/guix.texi:8451 #, no-wrap msgid "(delete @var{name}@dots{})" msgstr "(delete @var{Name}…)" #. type: table #: guix-git/doc/guix.texi:8453 msgid "Delete from the inputs packages with the given @var{name}s (strings)." msgstr "Die Pakete mit den angegebenen @var{Name}n (als Zeichenketten) aus den Eingaben entfernen." #. type: item #: guix-git/doc/guix.texi:8454 #, no-wrap msgid "(prepend @var{package}@dots{})" msgstr "(prepend @var{Paket}…)" #. type: table #: guix-git/doc/guix.texi:8456 msgid "Add @var{package}s to the front of the input list." msgstr "Jedes @var{Paket} vorne an die Eingabenliste anstellen." #. type: item #: guix-git/doc/guix.texi:8457 #, no-wrap msgid "(append @var{package}@dots{})" msgstr "(append @var{Paket}…)" #. type: table #: guix-git/doc/guix.texi:8459 msgid "Add @var{package}s to the end of the input list." msgstr "Jedes @var{Paket} am Ende der Eingabenliste anhängen." #. type: item #: guix-git/doc/guix.texi:8460 #, no-wrap msgid "(replace @var{name} @var{replacement})" msgstr "(replace @var{Name} @var{Ersatz})" #. type: table #: guix-git/doc/guix.texi:8462 msgid "Replace the package called @var{name} with @var{replacement}." msgstr "Das Paket namens @var{Name} durch @var{Ersatz} ersetzen." #. type: defmac #: guix-git/doc/guix.texi:8466 msgid "The example below removes the GMP and ACL inputs of Coreutils and adds libcap to the front of the input list:" msgstr "Mit folgendem Beispiel werden die Eingaben GMP und ACL unter denen von Coreutils weggelassen und libcap wird an dem Anfang hinzugefügt:" #. type: lisp #: guix-git/doc/guix.texi:8471 #, no-wrap msgid "" "(modify-inputs (package-inputs coreutils)\n" " (delete \"gmp\" \"acl\")\n" " (prepend libcap))\n" msgstr "" "(modify-inputs (package-inputs coreutils)\n" " (delete \"gmp\" \"acl\")\n" " (prepend libcap))\n" #. type: defmac #: guix-git/doc/guix.texi:8475 msgid "The example below replaces the @code{guile} package from the inputs of @code{guile-redis} with @code{guile-2.2}:" msgstr "Mit folgendem Beispiel wird das @code{guile}-Paket unter den Eingaben von @code{guile-redis} weggelassen und stattdessen wird @code{guile-2.2} verwendet:" #. type: lisp #: guix-git/doc/guix.texi:8479 #, no-wrap msgid "" "(modify-inputs (package-inputs guile-redis)\n" " (replace \"guile\" guile-2.2))\n" msgstr "" "(modify-inputs (package-inputs guile-redis)\n" " (replace \"guile\" guile-2.2))\n" #. type: defmac #: guix-git/doc/guix.texi:8483 msgid "The last type of clause is @code{append}, to add inputs at the back of the list." msgstr "Die letzte Art Klausel ist @code{append}, was bedeutet, dass Eingaben hinten an die Liste angehängt werden." #. type: Plain text #: guix-git/doc/guix.texi:8492 msgid "In some cases, you may find it useful to write functions (``procedures'', in Scheme parlance) that return a package based on some parameters. For example, consider the @code{luasocket} library for the Lua programming language. We want to create @code{luasocket} packages for major versions of Lua. One way to do that is to define a procedure that takes a Lua package and returns a @code{luasocket} package that depends on it:" msgstr "Manchmal bietet es sich an, Funktionen (also „Prozeduren“, wie Scheme-Anwender sagen) zu schreiben, die ein Paket abhängig von bestimmten Parametern zurückliefern. Als Beispiel betrachten wir die @code{luasocket}-Bibliothek für die Programmiersprache Lua. Wir möchten @code{luasocket}-Pakete für die hauptsächlichen Versionen von Lua verfügbar machen. Eine Möglichkeit, das zu erreichen, ist, eine Prozedur zu definieren, die ein Lua-Paket nimmt und ein von diesem abhängiges @code{luasocket}-Paket liefert." #. type: lisp #: guix-git/doc/guix.texi:8502 #, no-wrap msgid "" "(define (make-lua-socket name lua)\n" " ;; Return a luasocket package built with LUA.\n" " (package\n" " (name name)\n" " (version \"3.0\")\n" " ;; several fields omitted\n" " (inputs (list lua))\n" " (synopsis \"Socket library for Lua\")))\n" "\n" msgstr "" "(define (make-lua-socket name lua)\n" " ;; Liefert ein luasocket-Paket, das mit LUA erstellt wird.\n" " (package\n" " (name name)\n" " (version \"3.0\")\n" " ;; hier würden noch ein paar Felder stehen\n" " (inputs (list lua))\n" " (synopsis \"Socket library for Lua\")))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:8505 #, no-wrap msgid "" "(define-public lua5.1-socket\n" " (make-lua-socket \"lua5.1-socket\" lua-5.1))\n" "\n" msgstr "" "(define-public lua5.1-socket\n" " (make-lua-socket \"lua5.1-socket\" lua-5.1))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:8508 #, no-wrap msgid "" "(define-public lua5.2-socket\n" " (make-lua-socket \"lua5.2-socket\" lua-5.2))\n" msgstr "" "(define-public lua5.2-socket\n" " (make-lua-socket \"lua5.2-socket\" lua-5.2))\n" #. type: Plain text #: guix-git/doc/guix.texi:8516 msgid "Here we have defined packages @code{lua5.1-socket} and @code{lua5.2-socket} by calling @code{make-lua-socket} with different arguments. @xref{Procedures,,, guile, GNU Guile Reference Manual}, for more info on procedures. Having top-level public definitions for these two packages means that they can be referred to from the command line (@pxref{Package Modules})." msgstr "Damit haben wir Pakete @code{lua5.1-socket} und @code{lua5.2-socket} definiert, indem wir @code{make-lua-socket} mit verschiedenen Argumenten aufgerufen haben. Siehe @ref{Procedures,,, guile, Referenzhandbuch von GNU Guile} für mehr Informationen über Prozeduren. Weil wir mit @code{define-public} öffentlich sichtbare Definitionen auf oberster Ebene („top-level“) für diese beiden Pakete angegeben haben, kann man sie von der Befehlszeile aus benutzen (siehe @ref{Package Modules})." #. type: cindex #: guix-git/doc/guix.texi:8517 #, no-wrap msgid "package transformations" msgstr "Paketumwandlungen" #. type: Plain text #: guix-git/doc/guix.texi:8522 msgid "These are pretty simple package variants. As a convenience, the @code{(guix transformations)} module provides a high-level interface that directly maps to the more sophisticated package transformation options (@pxref{Package Transformation Options}):" msgstr "Bei diesen handelt es sich um sehr einfache Paketvarianten. Bequemer ist es dann, mit dem Modul @code{(guix transformations)} eine hochsprachliche Schnittstelle einzusetzen, die auf die komplexeren Paketumwandlungsoptionen direkt abbildet (siehe @ref{Package Transformation Options}):" #. type: deffn #: guix-git/doc/guix.texi:8523 #, no-wrap msgid "{Procedure} options->transformation opts" msgstr "{Prozedur} options->transformation Optionen" #. type: deffn #: guix-git/doc/guix.texi:8527 msgid "Return a procedure that, when passed an object to build (package, derivation, etc.), applies the transformations specified by @var{opts} and returns the resulting objects. @var{opts} must be a list of symbol/string pairs such as:" msgstr "Liefert eine Prozedur, die gegeben ein zu erstellendes Objekt (ein Paket, eine Ableitung oder Ähnliches) die durch @var{Optionen} festgelegten Umwandlungen daran umsetzt und die sich ergebenden Objekte zurückliefert. @var{Optionen} muss eine Liste von Paaren aus Symbol und Zeichenkette sein wie:" #. type: lisp #: guix-git/doc/guix.texi:8531 #, no-wrap msgid "" "((with-branch . \"guile-gcrypt=master\")\n" " (without-tests . \"libgcrypt\"))\n" msgstr "" "((with-branch . \"guile-gcrypt=master\")\n" " (without-tests . \"libgcrypt\"))\n" #. type: deffn #: guix-git/doc/guix.texi:8535 msgid "Each symbol names a transformation and the corresponding string is an argument to that transformation." msgstr "Jedes Symbol benennt eine Umwandlung. Die entsprechende Zeichenkette ist ein Argument an diese Umwandlung." #. type: Plain text #: guix-git/doc/guix.texi:8538 msgid "For instance, a manifest equivalent to this command:" msgstr "Zum Beispiel wäre ein gleichwertiges Manifest zu diesem Befehl:" #. type: example #: guix-git/doc/guix.texi:8543 #, no-wrap msgid "" "guix build guix \\\n" " --with-branch=guile-gcrypt=master \\\n" " --with-debug-info=zlib\n" msgstr "" "guix build guix \\\n" " --with-branch=guile-gcrypt=master \\\n" " --with-debug-info=zlib\n" #. type: Plain text #: guix-git/doc/guix.texi:8547 msgid "... would look like this:" msgstr "… dieses hier:" #. type: lisp #: guix-git/doc/guix.texi:8550 #, no-wrap msgid "" "(use-modules (guix transformations))\n" "\n" msgstr "" "(use-modules (guix transformations))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:8556 #, no-wrap msgid "" "(define transform\n" " ;; The package transformation procedure.\n" " (options->transformation\n" " '((with-branch . \"guile-gcrypt=master\")\n" " (with-debug-info . \"zlib\"))))\n" "\n" msgstr "" "(define transform\n" " ;; Die Prozedur zur Paketumwandlung.\n" " (options->transformation\n" " '((with-branch . \"guile-gcrypt=master\")\n" " (with-debug-info . \"zlib\"))))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:8559 #, no-wrap msgid "" "(packages->manifest\n" " (list (transform (specification->package \"guix\"))))\n" msgstr "" "(packages->manifest\n" " (list (transform (specification->package \"guix\"))))\n" #. type: cindex #: guix-git/doc/guix.texi:8561 #, no-wrap msgid "input rewriting" msgstr "Eingaben umschreiben" #. type: cindex #: guix-git/doc/guix.texi:8562 #, no-wrap msgid "dependency graph rewriting" msgstr "Abhängigkeitsgraphen umschreiben" #. type: Plain text #: guix-git/doc/guix.texi:8569 msgid "The @code{options->transformation} procedure is convenient, but it's perhaps also not as flexible as you may like. How is it implemented? The astute reader probably noticed that most package transformation options go beyond the superficial changes shown in the first examples of this section: they involve @dfn{input rewriting}, whereby the dependency graph of a package is rewritten by replacing specific inputs by others." msgstr "Die Prozedur @code{options->transformation} lässt sich einfach benutzen, ist aber vielleicht nicht so flexibel, wie Sie es sich wünschen. Wie sieht ihre Implementierung aus? Aufmerksamen Lesern mag aufgefallen sein, dass die meisten Paketumwandlungen die oberflächlichen Änderungen aus den ersten Beispielen in diesem Abschnitt übersteigen: Sie @dfn{schreiben Eingaben um}, was im Abhängigkeitsgraphen bestimmte Eingaben durch andere ersetzt." #. type: Plain text #: guix-git/doc/guix.texi:8573 msgid "Dependency graph rewriting, for the purposes of swapping packages in the graph, is what the @code{package-input-rewriting} procedure in @code{(guix packages)} implements." msgstr "Das Umschreiben des Abhängigkeitsgraphen, damit Pakete im Graphen ausgetauscht werden, ist in der Prozedur @code{package-input-rewriting} aus @code{(guix packages)} implementiert." #. type: deffn #: guix-git/doc/guix.texi:8574 #, no-wrap msgid "{Procedure} package-input-rewriting replacements [rewrite-name] [#:deep? #t]" msgstr "{Prozedur} package-input-rewriting Ersetzungen [umgeschriebener-Name] [#:deep? #t]" #. type: deffn #: guix-git/doc/guix.texi:8580 msgid "Return a procedure that, when passed a package, replaces its direct and indirect dependencies, including implicit inputs when @var{deep?} is true, according to @var{replacements}. @var{replacements} is a list of package pairs; the first element of each pair is the package to replace, and the second one is the replacement." msgstr "Eine Prozedur liefern, die für ein ihr übergebenes Paket dessen direkte und indirekte Abhängigkeit gemäß den @var{Ersetzungen} umschreibt, einschließlich ihrer impliziten Eingaben, wenn @var{deep?} wahr ist. @var{Ersetzungen} ist eine Liste von Paketpaaren; das erste Element eines Paares ist das zu ersetzende Paket und das zweite ist, wodurch es ersetzt werden soll." #. type: deffn #: guix-git/doc/guix.texi:8583 msgid "Optionally, @var{rewrite-name} is a one-argument procedure that takes the name of a package and returns its new name after rewrite." msgstr "Optional kann als @var{umgeschriebener-Name} eine ein Argument nehmende Prozedur angegeben werden, die einen Paketnamen nimmt und den Namen nach dem Umschreiben zurückliefert." #. type: table #: guix-git/doc/guix.texi:8587 guix-git/doc/guix.texi:13241 msgid "Consider this example:" msgstr "Betrachten Sie dieses Beispiel:" #. type: lisp #: guix-git/doc/guix.texi:8593 #, no-wrap msgid "" "(define libressl-instead-of-openssl\n" " ;; This is a procedure to replace OPENSSL by LIBRESSL,\n" " ;; recursively.\n" " (package-input-rewriting `((,openssl . ,libressl))))\n" "\n" msgstr "" "(define libressl-statt-openssl\n" " ;; Dies ist eine Prozedur, mit der OPENSSL durch LIBRESSL\n" " ;; rekursiv ersetzt wird.\n" " (package-input-rewriting `((,openssl . ,libressl))))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:8596 #, no-wrap msgid "" "(define git-with-libressl\n" " (libressl-instead-of-openssl git))\n" msgstr "" "(define git-mit-libressl\n" " (libressl-statt-openssl git))\n" #. type: Plain text #: guix-git/doc/guix.texi:8604 msgid "Here we first define a rewriting procedure that replaces @var{openssl} with @var{libressl}. Then we use it to define a @dfn{variant} of the @var{git} package that uses @var{libressl} instead of @var{openssl}. This is exactly what the @option{--with-input} command-line option does (@pxref{Package Transformation Options, @option{--with-input}})." msgstr "Hier definieren wir zuerst eine Umschreibeprozedur, die @var{openssl} durch @var{libressl} ersetzt. Dann definieren wir damit eine @dfn{Variante} des @var{git}-Pakets, die @var{libressl} statt @var{openssl} benutzt. Das ist genau, was auch die Befehlszeilenoption @option{--with-input} tut (siehe @ref{Package Transformation Options, @option{--with-input}})." #. type: Plain text #: guix-git/doc/guix.texi:8607 msgid "The following variant of @code{package-input-rewriting} can match packages to be replaced by name rather than by identity." msgstr "Die folgende Variante von @code{package-input-rewriting} kann für die Ersetzung passende Pakete anhand ihres Namens finden, statt zu prüfen, ob der Wert identisch ist." #. type: deffn #: guix-git/doc/guix.texi:8608 #, no-wrap msgid "{Procedure} package-input-rewriting/spec @var{replacements} [#:deep? #t]" msgstr "{Prozedur} package-input-rewriting/spec @var{Ersetzungen} [#:deep? #t]" #. type: deffn #: guix-git/doc/guix.texi:8612 msgid "Return a procedure that, given a package, applies the given @var{replacements} to all the package graph, including implicit inputs unless @var{deep?} is false." msgstr "Liefert eine Prozedur, die für ein gegebenes Paket die angegebenen @var{Ersetzungen} auf dessen gesamten Paketgraphen anwendet (einschließlich impliziter Eingaben, außer wenn @var{deep?} falsch ist)." #. type: deffn #: guix-git/doc/guix.texi:8618 msgid "@var{replacements} is a list of spec/procedures pair; each spec is a package specification such as @code{\"gcc\"} or @code{\"guile@@2\"}, and each procedure takes a matching package and returns a replacement for that package. Matching packages that have the @code{hidden?} property set are not replaced." msgstr "@var{Ersetzungen} muss dabei eine Liste von Paaren aus je einer Spezifikation und Prozedur sein. Dabei ist jede Spezifikation eine Paketspezifikation wie @code{\"gcc\"} oder @code{\"guile@@2\"} und jede Prozedur nimmt ein passendes Paket und liefert dafür einen Ersatz für das Paket. Wenn ein Paket passend ist, aber die Eigenschaft @code{hidden?} gesetzt ist, wird es nicht ersetzt." #. type: Plain text #: guix-git/doc/guix.texi:8621 msgid "The example above could be rewritten this way:" msgstr "Das obige Beispiel könnte auch so geschrieben werden:" #. type: lisp #: guix-git/doc/guix.texi:8626 #, no-wrap msgid "" "(define libressl-instead-of-openssl\n" " ;; Replace all the packages called \"openssl\" with LibreSSL.\n" " (package-input-rewriting/spec `((\"openssl\" . ,(const libressl)))))\n" msgstr "" "(define libressl-statt-openssl\n" " ;; Rekursiv alle Pakete namens \"openssl\" durch LibreSSL ersetzen.\n" " (package-input-rewriting/spec `((\"openssl\" . ,(const libressl)))))\n" #. type: Plain text #: guix-git/doc/guix.texi:8631 msgid "The key difference here is that, this time, packages are matched by spec and not by identity. In other words, any package in the graph that is called @code{openssl} will be replaced." msgstr "Der Hauptunterschied ist hier, dass diesmal Pakete zur Spezifikation passen müssen und nicht deren Wert identisch sein muss, damit sie ersetzt werden. Mit anderen Worten wird jedes Paket im Graphen ersetzt, das @code{openssl} heißt." #. type: Plain text #: guix-git/doc/guix.texi:8635 msgid "A more generic procedure to rewrite a package dependency graph is @code{package-mapping}: it supports arbitrary changes to nodes in the graph." msgstr "Eine allgemeiner anwendbare Prozedur, um den Abhängigkeitsgraphen eines Pakets umzuschreiben, ist @code{package-mapping}. Sie unterstützt beliebige Änderungen an den Knoten des Graphen." #. type: deffn #: guix-git/doc/guix.texi:8636 #, no-wrap msgid "{Procedure} package-mapping proc [cut?] [#:deep? #f]" msgstr "{Prozedur} package-mapping Prozedur [Schnitt?] [#:deep? #f]" #. type: deffn #: guix-git/doc/guix.texi:8641 msgid "Return a procedure that, given a package, applies @var{proc} to all the packages depended on and returns the resulting package. The procedure stops recursion when @var{cut?} returns true for a given package. When @var{deep?} is true, @var{proc} is applied to implicit inputs as well." msgstr "Liefert eine Prozedur, die, wenn ihr ein Paket übergeben wird, die an @code{package-mapping} übergebene @var{Prozedur} auf alle vom Paket abhängigen Pakete anwendet. Die Prozedur liefert das resultierende Paket. Wenn @var{Schnitt?} für ein Paket davon einen wahren Wert liefert, findet kein rekursiver Abstieg in dessen Abhängigkeiten statt. Steht @var{deep?} auf wahr, wird die @var{Prozedur} auch auf implizite Eingaben angewandt." #. type: quotation #: guix-git/doc/guix.texi:8643 #, no-wrap msgid "Tips" msgstr "Tipps" #. type: quotation #: guix-git/doc/guix.texi:8647 msgid "Understanding what a variant really looks like can be difficult as one starts combining the tools shown above. There are several ways to inspect a package before attempting to build it that can prove handy:" msgstr "Es kann kompliziert werden, zu verstehen, was für eine Variante sich nach Behandlung mit einem Gemisch aus obigen Werkzeugen ergibt. Abhilfe leisten Mittel, mit denen Sie die Pakete untersuchen können:" #. type: itemize #: guix-git/doc/guix.texi:8653 msgid "You can inspect the package interactively at the REPL, for instance to view its inputs, the code of its build phases, or its configure flags (@pxref{Using Guix Interactively})." msgstr "Sie können das Paket interaktiv auf der REPL untersuchen, um sich zum Beispiel die benutzten Eingaben, den Code in Erstellungsphasen oder die an configure übergebenen Befehlszeilenoptionen anzuschauen (siehe @ref{Using Guix Interactively})." #. type: itemize #: guix-git/doc/guix.texi:8657 msgid "When rewriting dependencies, @command{guix graph} can often help visualize the changes that are made (@pxref{Invoking guix graph})." msgstr "Wenn Sie die Abhängigkeiten umschreiben, können Sie mit @command{guix graph} oftmals leichter visualisiert bekommen, welche Änderungen passieren (siehe @ref{Invoking guix graph})." #. type: cindex #: guix-git/doc/guix.texi:8663 #, no-wrap msgid "manifest" msgstr "manifest" #. type: cindex #: guix-git/doc/guix.texi:8664 #, no-wrap msgid "bill of materials (manifests)" msgstr "Bill of Materials (Manifeste)" #. type: Plain text #: guix-git/doc/guix.texi:8675 msgid "@command{guix} commands let you specify package lists on the command line. This is convenient, but as the command line becomes longer and less trivial, it quickly becomes more convenient to have that package list in what we call a @dfn{manifest}. A manifest is some sort of a ``bill of materials'' that defines a package set. You would typically come up with a code snippet that builds the manifest, store it in a file, say @file{manifest.scm}, and then pass that file to the @option{-m} (or @option{--manifest}) option that many @command{guix} commands support. For example, here's what a manifest for a simple package set might look like:" msgstr "Sie können die Paketlisten für @command{guix}-Befehle auf der Befehlszeile angeben. Das ist bequem, bis die Paketlisten länger und weniger trivial werden. Dann nämlich wird es bald bequemer, die Paketliste in einer Form zu haben, die wir ein @dfn{Manifest} nennen. Neudeutsch kann man ein Manifest wie eine „Bill of Materials“, eine Stückliste oder Güterliste auffassen, womit ein Satz von Paketen festgelegt wird. Im Normalfall denken Sie sich ein Code-Schnipsel aus, mit dem das Manifest erstellt wird, bringen den Code in einer Datei unter, sagen wir @file{manifest.scm}, und übergeben diese Datei mit der Befehlszeilenoption @option{-m} (oder @option{--manifest}), die von vielen @command{guix}-Befehlen unterstützt wird. Zum Beispiel könnte so ein Manifest für einen einfachen Satz Pakete aussehen:" #. type: lisp #: guix-git/doc/guix.texi:8679 #, no-wrap msgid "" ";; Manifest for three packages.\n" "(specifications->manifest '(\"gcc-toolchain\" \"make\" \"git\"))\n" msgstr "" ";; Manifest dreier Pakete.\n" "(specifications->manifest '(\"gcc-toolchain\" \"make\" \"git\"))\n" #. type: Plain text #: guix-git/doc/guix.texi:8685 msgid "Once you have that manifest, you can pass it, for example, to @command{guix package} to install just those three packages to your profile (@pxref{profile-manifest, @option{-m} option of @command{guix package}}):" msgstr "Sobald Sie das Manifest haben, können Sie es an z.B.@: @command{guix package} übergeben, was dann nur genau diese drei Pakete in Ihr Profil installiert (siehe @ref{profile-manifest, die Befehlszeilenoption @option{-m} von @command{guix package}}):" #. type: example #: guix-git/doc/guix.texi:8688 #, no-wrap msgid "guix package -m manifest.scm\n" msgstr "guix package -m manifest.scm\n" #. type: Plain text #: guix-git/doc/guix.texi:8694 msgid "... or you can pass it to @command{guix shell} (@pxref{shell-manifest, @command{-m} option of @command{guix shell}}) to spawn an ephemeral environment:" msgstr "… oder Sie übergeben das Manifest an @command{guix shell} (siehe @ref{shell-manifest, die Befehlszeilenoption @option{-m} von @command{guix shell}}) und richten sich so eine vergängliche Umgebung ein:" #. type: Plain text #: guix-git/doc/guix.texi:8704 msgid "... or you can pass it to @command{guix pack} in pretty much the same way (@pxref{pack-manifest, @option{-m} option of @command{guix pack}}). You can store the manifest under version control, share it with others so they can easily get set up, etc." msgstr "… oder Sie übergeben das Manifest an @command{guix pack}, was ziemlich genauso geht (siehe @ref{pack-manifest, die Befehlszeilenoption @option{-m} von @command{guix pack}}). Ein Manifest können Sie unter Versionskontrolle stellen oder es mit anderen Teilen, um deren System schnell auf den gleichen Stand zu bringen, und vieles mehr." #. type: Plain text #: guix-git/doc/guix.texi:8710 msgid "But how do you write your first manifest? To get started, maybe you'll want to write a manifest that mirrors what you already have in a profile. Rather than start from a blank page, @command{guix package} can generate a manifest for you (@pxref{export-manifest, @command{guix package --export-manifest}}):" msgstr "Doch wie schreibt man eigentlich sein erstes Manifest? Für den Anfang möchten Sie vielleicht ein Manifest, das dem nachempfunden ist, was Sie schon in einem Ihrer Profile haben. Statt bei null anzufangen, können Sie sich mit @command{guix package} ein Manifest generieren lassen (siehe @ref{export-manifest, @command{guix package --export-manifest}}):" #. type: example #: guix-git/doc/guix.texi:8715 #, no-wrap msgid "" "# Write to 'manifest.scm' a manifest corresponding to the\n" "# default profile, ~/.guix-profile.\n" "guix package --export-manifest > manifest.scm\n" msgstr "" "# Wir schreiben in 'manifest.scm' ein Manifest, das dem\n" "# Standardprofil ~/.guix-profile entspricht.\n" "guix package --export-manifest > manifest.scm\n" #. type: Plain text #: guix-git/doc/guix.texi:8720 msgid "Or maybe you'll want to ``translate'' command-line arguments into a manifest. In that case, @command{guix shell} can help (@pxref{shell-export-manifest, @command{guix shell --export-manifest}}):" msgstr "Oder vielleicht möchten Sie die Argumente von der Befehlszeile in ein Manifest übertragen. Dabei kann @command{guix shell} helfen (siehe @ref{shell-export-manifest, @command{guix shell --export-manifest}}):" #. type: example #: guix-git/doc/guix.texi:8724 #, no-wrap msgid "" "# Write a manifest for the packages specified on the command line.\n" "guix shell --export-manifest gcc-toolchain make git > manifest.scm\n" msgstr "" "# Wir schreiben ein Manifest für die auf der Befehlszeile\n" "# angegebenen Pakete.\n" "guix shell --export-manifest gcc-toolchain make git > manifest.scm\n" #. type: Plain text #: guix-git/doc/guix.texi:8730 msgid "In both cases, the @option{--export-manifest} option tries hard to generate a faithful manifest; in particular, it takes package transformation options into account (@pxref{Package Transformation Options})." msgstr "In beiden Fällen werden bei der Befehlszeilenoption @option{--export-manifest} etliche Feinheiten berücksichtigt, um ein originalgetreues Manifest zu erzeugen. Insbesondere werden Paketumwandlungsoptionen wiedergegeben (siehe @ref{Package Transformation Options})." #. type: quotation #: guix-git/doc/guix.texi:8736 msgid "Manifests are @emph{symbolic}: they refer to packages of the channels @emph{currently in use} (@pxref{Channels}). In the example above, @code{gcc-toolchain} might refer to version 11 today, but it might refer to version 13 two years from now." msgstr "Manifeste sind @emph{symbolisch}: Sie beziehen sich auf die Pakete, die in den @emph{aktuell verwendeten} Kanälen enthalten sind (siehe @ref{Channels}). Im obigen Beispiel bezieht sich @code{gcc-toolchain} heute vielleicht auf Version 11, aber in zwei Jahren kann es Version 13 heißen." #. type: quotation #: guix-git/doc/guix.texi:8741 msgid "If you want to ``pin'' your software environment to specific package versions and variants, you need an additional piece of information: the list of channel revisions in use, as returned by @command{guix describe}. @xref{Replicating Guix}, for more information." msgstr "Wenn Sie wollen, dass immer dieselben Paketversionen und -varianten in Ihre Software-Umgebung aufgenommen werden, sind mehr Informationen nötig, nämlich welche Kanalversionen zur Zeit in Benutzung sind. Das sagt uns @command{guix describe}. Siehe @ref{Replicating Guix} für weitere Informationen." #. type: Plain text #: guix-git/doc/guix.texi:8746 msgid "Once you've obtained your first manifest, perhaps you'll want to customize it. Since your manifest is code, you now have access to all the Guix programming interfaces!" msgstr "Sobald Sie sich Ihr erstes Manifest beschafft haben, möchten Sie vielleicht Anpassungen daran vornehmen. Da es sich beim Manifest um Code handelt, stehen Ihnen alle Guix-Programmierschnittstellen zur Verfügung!" #. type: Plain text #: guix-git/doc/guix.texi:8752 msgid "Let's assume you want a manifest to deploy a custom variant of GDB, the GNU Debugger, that does not depend on Guile, together with another package. Building on the example seen in the previous section (@pxref{Defining Package Variants}), you can write a manifest along these lines:" msgstr "Nehmen wir an, Sie hätten gerne ein Manifest, um eine angepasste Variante von GDB, dem GNU-Debugger, einzusetzen, die von Guile @emph{nicht} abhängt, zusammen mit noch einem anderen Paket. Um auf dem Beispiel aus dem vorigen Abschnitt aufzubauen (siehe @ref{Defining Package Variants}), können Sie das Manifest z.B.@: folgendermaßen schreiben:" #. type: lisp #: guix-git/doc/guix.texi:8757 #, no-wrap msgid "" "(use-modules (guix packages)\n" " (gnu packages gdb) ;for 'gdb'\n" " (gnu packages version-control)) ;for 'git'\n" "\n" msgstr "" "(use-modules (guix packages)\n" " (gnu packages gdb) ;für 'gdb'\n" " (gnu packages version-control)) ;für 'git'\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:8764 #, no-wrap msgid "" ";; Define a variant of GDB without a dependency on Guile.\n" "(define gdb-sans-guile\n" " (package\n" " (inherit gdb)\n" " (inputs (modify-inputs (package-inputs gdb)\n" " (delete \"guile\")))))\n" "\n" msgstr "" ";; Eine Variante von GDB ohne Abhängigkeit von Guile definieren.\n" "(define gdb-sans-guile\n" " (package\n" " (inherit gdb)\n" " (inputs (modify-inputs (package-inputs gdb)\n" " (delete \"guile\")))))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:8767 #, no-wrap msgid "" ";; Return a manifest containing that one package plus Git.\n" "(packages->manifest (list gdb-sans-guile git))\n" msgstr "" ";; Liefert ein Manifest mit diesem Paket und außerdem Git.\n" "(packages->manifest (list gdb-sans-guile git))\n" #. type: Plain text #: guix-git/doc/guix.texi:8778 msgid "Note that in this example, the manifest directly refers to the @code{gdb} and @code{git} variables, which are bound to a @code{package} object (@pxref{package Reference}), instead of calling @code{specifications->manifest} to look up packages by name as we did before. The @code{use-modules} form at the top lets us access the core package interface (@pxref{Defining Packages}) and the modules that define @code{gdb} and @code{git} (@pxref{Package Modules}). Seamlessly, we're weaving all this together---the possibilities are endless, unleash your creativity!" msgstr "Beachten Sie, in diesem Beispiel nimmt das Manifest direkt Bezug auf die Variablen @code{gdb} und @code{git}, die an je ein Paketobjekt vom Typ @code{package} gebunden sind (siehe @ref{package Reference}), statt wie zuvor @code{specifications->manifest} aufzurufen und damit die Pakete anhand deren Namens zu finden. Die @code{use-modules}-Form am Dateianfang gibt uns Zugriff auf den Kern der Paketschnittstelle (siehe @ref{Defining Packages}) und die Module, in denen @code{gdb} und @code{git} definiert sind (siehe @ref{Package Modules}). Nahtlos können wir all dies miteinander verknüpfen@tie{}– grenzenlose Möglichkeiten eröffnen sich; lassen Sie Ihrer Kreativität freien Lauf!" #. type: Plain text #: guix-git/doc/guix.texi:8782 msgid "The data type for manifests as well as supporting procedures are defined in the @code{(guix profiles)} module, which is automatically available to code passed to @option{-m}. The reference follows." msgstr "Der Datentyp für Manifeste sowie Prozeduren, um mit ihm umzugehen, sind definiert im Modul @code{(guix profiles)}. In Code, den Sie mit @option{-m} übergeben, wird es automatisch verfügbar gemacht. Nun folgt die Referenz dazu." #. type: deftp #: guix-git/doc/guix.texi:8783 #, no-wrap msgid "{Data Type} manifest" msgstr "{Datentyp} manifest" #. type: deftp #: guix-git/doc/guix.texi:8785 msgid "Data type representing a manifest." msgstr "Der Datentyp, der ein Manifest repräsentiert." #. type: deftp #: guix-git/doc/guix.texi:8787 msgid "It currently has one field:" msgstr "Zurzeit gibt es darin ein Feld:" #. type: item #: guix-git/doc/guix.texi:8789 #, no-wrap msgid "entries" msgstr "entries" #. type: table #: guix-git/doc/guix.texi:8791 msgid "This must be a list of @code{manifest-entry} records---see below." msgstr "Dies muss eine Liste von @code{manifest-entry}-Verbundsobjekten sein, wie hier beschrieben." #. type: deftp #: guix-git/doc/guix.texi:8794 #, no-wrap msgid "{Data Type} manifest-entry" msgstr "{Datentyp} manifest-entry" #. type: deftp #: guix-git/doc/guix.texi:8800 msgid "Data type representing a manifest entry. A manifest entry contains essential metadata: a name and version string, the object (usually a package) for that entry, the desired output (@pxref{Packages with Multiple Outputs}), and a number of optional pieces of information detailed below." msgstr "Der Datentyp steht für einen Eintrag im Manifest. Zu so einem Manifesteintrag gehören im Wesentlichen Metadaten: der Name und die Version als Zeichenkette, das Objekt selbst (meistens ein Paket), welche Ausgabe man davon haben will (siehe @ref{Packages with Multiple Outputs}) und noch ein paar optionale Informationen, wie wir im Folgenden näher ausführen." #. type: deftp #: guix-git/doc/guix.texi:8805 msgid "Most of the time, you won't build a manifest entry directly; instead, you will pass a package to @code{package->manifest-entry}, described below. In some unusual cases though, you might want to create manifest entries for things that are @emph{not} packages, as in this example:" msgstr "Die meiste Zeit basteln Sie sich die Manifesteinträge nicht selber zusammen, sondern Sie übergeben ein Paket an @code{package->manifest-entry}, siehe unten. Aber es könnte Ihnen ein außergewöhnlicher Fall unterkommen, wo Sie einen Manifesteintrag für etwas erzeugen wollen, das @emph{kein} Paket ist, wie in diesem Beispiel:" #. type: lisp #: guix-git/doc/guix.texi:8818 #, no-wrap msgid "" ";; Manually build a single manifest entry for a non-package object.\n" "(let ((hello (program-file \"hello\" #~(display \"Hi!\"))))\n" " (manifest-entry\n" " (name \"foo\")\n" " (version \"42\")\n" " (item\n" " (computed-file \"hello-directory\"\n" " #~(let ((bin (string-append #$output \"/bin\")))\n" " (mkdir #$output) (mkdir bin)\n" " (symlink #$hello\n" " (string-append bin \"/hello\")))))))\n" msgstr "" ";; Für ein Nicht-Paketobjekt einen einzelnen Manifesteintrag von Hand schreiben.\n" "(let ((hello (program-file \"hello\" #~(display \"Hi!\"))))\n" " (manifest-entry\n" " (name \"foo\")\n" " (version \"42\")\n" " (item\n" " (computed-file \"verzeichnis-mit-hello\"\n" " #~(let ((bin (string-append #$output \"/bin\")))\n" " (mkdir #$output) (mkdir bin)\n" " (symlink #$hello\n" " (string-append bin \"/hello\")))))))\n" #. type: deftp #: guix-git/doc/guix.texi:8821 msgid "The available fields are the following:" msgstr "Diese Felder stehen zur Verfügung:" #. type: table #: guix-git/doc/guix.texi:8826 msgid "Name and version string for this entry." msgstr "Name und Version für diesen Eintrag als Zeichenkette." #. type: code{#1} #: guix-git/doc/guix.texi:8827 #, no-wrap msgid "item" msgstr "item" #. type: table #: guix-git/doc/guix.texi:8830 msgid "A package or other file-like object (@pxref{G-Expressions, file-like objects})." msgstr "Ein Paket oder anderes dateiartiges Objekt (siehe @ref{G-Expressions, dateiartige Objekte})." #. type: item #: guix-git/doc/guix.texi:8831 #, no-wrap msgid "@code{output} (default: @code{\"out\"})" msgstr "@code{output} (Vorgabe: @code{\"out\"})" #. type: table #: guix-git/doc/guix.texi:8834 msgid "Output of @code{item} to use, in case @code{item} has multiple outputs (@pxref{Packages with Multiple Outputs})." msgstr "Welche der Ausgaben von @code{item} genommen werden soll, sofern @code{item} mehrere Ausgaben umfasst (siehe @ref{Packages with Multiple Outputs})." #. type: item #: guix-git/doc/guix.texi:8835 guix-git/doc/guix.texi:17882 #: guix-git/doc/guix.texi:18333 #, no-wrap msgid "@code{dependencies} (default: @code{'()})" msgstr "@code{dependencies} (Vorgabe: @code{'()})" #. type: table #: guix-git/doc/guix.texi:8838 msgid "List of manifest entries this entry depends on. When building a profile, dependencies are added to the profile." msgstr "Die Liste der Manifesteinträge, von denen dieser Eintrag abhängt. Wenn ein Profil erstellt wird, werden die aufgeführten Abhängigkeiten zum Profil hinzugefügt." #. type: table #: guix-git/doc/guix.texi:8842 msgid "Typically, the propagated inputs of a package (@pxref{package Reference, @code{propagated-inputs}}) end up having a corresponding manifest entry in among the dependencies of the package's own manifest entry." msgstr "In der Regel landen die propagierten Eingaben eines Pakets (siehe @ref{package Reference, @code{propagated-inputs}}) in je einem Manifesteintrag unter den Abhängigkeiten des Manifesteintrags des Pakets." #. type: table #: guix-git/doc/guix.texi:8846 msgid "The list of search path specifications honored by this entry (@pxref{Search Paths})." msgstr "Die Liste der Suchpfadspezifikationen, die für diesen Eintrag beachtet werden (siehe @ref{Search Paths})." #. type: item #: guix-git/doc/guix.texi:8847 #, no-wrap msgid "@code{properties} (default: @code{'()})" msgstr "@code{properties} (Vorgabe: @code{'()})" #. type: table #: guix-git/doc/guix.texi:8850 msgid "List of symbol/value pairs. When building a profile, those properties get serialized." msgstr "Eine Liste von Paaren aus jeweils einem Symbol und dem Wert dazu. Beim Erstellen eines Profils werden die Eigenschaften serialisiert." #. type: table #: guix-git/doc/guix.texi:8854 msgid "This can be used to piggyback additional metadata---e.g., the transformations applied to a package (@pxref{Package Transformation Options})." msgstr "So kann man den Paketen zusätzliche Metadaten aufschnallen wie z.B.@: welche Umwandlungsoptionen darauf angewendet wurden (siehe @ref{Package Transformation Options})." #. type: item #: guix-git/doc/guix.texi:8855 #, no-wrap msgid "@code{parent} (default: @code{(delay #f)})" msgstr "@code{parent} (Vorgabe: @code{(delay #f)})" #. type: table #: guix-git/doc/guix.texi:8857 msgid "A promise pointing to the ``parent'' manifest entry." msgstr "Ein Versprechen (unter englischsprechenden Schemern bekannt als „Promise“), das auf den übergeordneten Manifesteintrag zeigt." #. type: table #: guix-git/doc/guix.texi:8860 msgid "This is used as a hint to provide context when reporting an error related to a manifest entry coming from a @code{dependencies} field." msgstr "Es wird benutzt, um in auf Manifesteinträge in @code{dependencies} bezogenen Fehlermeldungen Hinweise auf den Kontext zu geben." #. type: deffn #: guix-git/doc/guix.texi:8863 #, no-wrap msgid "{Procedure} concatenate-manifests lst" msgstr "{Prozedur} concatenate-manifests Liste" #. type: deffn #: guix-git/doc/guix.texi:8866 msgid "Concatenate the manifests listed in @var{lst} and return the resulting manifest." msgstr "Fasst die Manifeste in der @var{Liste} zu einem zusammen und liefert es zurück." #. type: deffn #: guix-git/doc/guix.texi:8870 #, no-wrap msgid "{Procedure} package->manifest-entry package [output] [#:properties]" msgstr "{Prozedur} package->manifest-entry Paket [Ausgabe] [#:properties]" #. type: deffn #: guix-git/doc/guix.texi:8878 msgid "Return a manifest entry for the @var{output} of package @var{package}, where @var{output} defaults to @code{\"out\"}, and with the given @var{properties}. By default @var{properties} is the empty list or, if one or more package transformations were applied to @var{package}, it is an association list representing those transformations, suitable as an argument to @code{options->transformation} (@pxref{Defining Package Variants, @code{options->transformation}})." msgstr "Liefert einen Manifesteintrag für die @var{Ausgabe} von @var{Paket}, wobei @var{Ausgabe} als Vorgabewert @code{\"out\"} hat. Als Eigenschaften werden die @var{properties} benutzt; vorgegeben ist die leere Liste oder, wenn eine oder mehrere Paketumwandlungen auf das @var{Paket} angewendet wurden, eine assoziative Liste mit diesen Umwandlungen, die als Argument an @code{options->transformation} gegeben werden kann (siehe @ref{Defining Package Variants, @code{options->transformation}})." #. type: deffn #: guix-git/doc/guix.texi:8881 msgid "The code snippet below builds a manifest with an entry for the default output and the @code{send-email} output of the @code{git} package:" msgstr "Mit folgendem Code-Schnipsel wird ein Manifest mit einem Eintrag für die Standardausgabe sowie die Ausgabe namens @code{send-email} des Pakets @code{git} erstellt:" #. type: lisp #: guix-git/doc/guix.texi:8884 guix-git/doc/guix.texi:8901 #, no-wrap msgid "" "(use-modules (gnu packages version-control))\n" "\n" msgstr "" "(use-modules (gnu packages version-control))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:8887 #, no-wrap msgid "" "(manifest (list (package->manifest-entry git)\n" " (package->manifest-entry git \"send-email\")))\n" msgstr "" "(manifest (list (package->manifest-entry git)\n" " (package->manifest-entry git \"send-email\")))\n" #. type: deffn #: guix-git/doc/guix.texi:8890 #, no-wrap msgid "{Procedure} packages->manifest packages" msgstr "{Prozedur} packages->manifest Pakete" #. type: deffn #: guix-git/doc/guix.texi:8895 msgid "Return a list of manifest entries, one for each item listed in @var{packages}. Elements of @var{packages} can be either package objects or package/string tuples denoting a specific output of a package." msgstr "Liefert eine Liste von Manifesteinträgen, jeweils einer für jedes Listenelement in @var{Pakete}. In @var{Pakete} können Paketobjekte oder Tupel aus Paket und Zeichenkette stehen, wobei die Zeichenkette die Paketausgabe angibt." #. type: deffn #: guix-git/doc/guix.texi:8898 msgid "Using this procedure, the manifest above may be rewritten more concisely:" msgstr "Mithilfe dieser Prozedur kann man das obige Manifest auch kürzer aufschreiben:" #. type: lisp #: guix-git/doc/guix.texi:8903 #, no-wrap msgid "(packages->manifest (list git `(,git \"send-email\")))\n" msgstr "(packages->manifest (list git `(,git \"send-email\")))\n" #. type: anchor{#1} #: guix-git/doc/guix.texi:8907 msgid "package-development-manifest" msgstr "package-development-manifest" #. type: deffn #: guix-git/doc/guix.texi:8907 #, no-wrap msgid "{Procedure} package->development-manifest package [system] [#:target]" msgstr "{Prozedur} package->development-manifest Paket [System] [#:target]" #. type: deffn #: guix-git/doc/guix.texi:8912 msgid "Return a manifest for the @dfn{development inputs} of @var{package} for @var{system}, optionally when cross-compiling to @var{target}. Development inputs include both explicit and implicit inputs of @var{package}." msgstr "Liefert ein Manifest mit den @dfn{Entwicklungseingaben} des @var{Pakets} für @var{System}. Optional kann mit @var{target} das Zielsystem zum Cross-Kompilieren angegeben werden. Zu den Entwicklungseingaben gehören die expliziten und impliziten Eingaben vom @var{Paket}." #. type: deffn #: guix-git/doc/guix.texi:8920 msgid "Like the @option{-D} option of @command{guix shell} (@pxref{shell-development-option, @command{guix shell -D}}), the resulting manifest describes the environment in which one can develop @var{package}. For example, suppose you're willing to set up a development environment for Inkscape, with the addition of Git for version control; you can describe that ``bill of materials'' with the following manifest:" msgstr "Genau wie bei der Option @option{-D} für @command{guix shell} (siehe @ref{shell-development-option, @command{guix shell -D}}) beschreibt das sich daraus ergebende Manifest die Umgebung, um am @var{Paket} als Entwickler mitzuarbeiten. Wenn Sie zum Beispiel eine Entwicklungsumgebung für Inkscape aufsetzen wollen und darin auch Git für die Versionskontrolle zur Verfügung haben möchten, geben Sie diese Bestandteilliste mit folgendem Manifest wieder:" #. type: lisp #: guix-git/doc/guix.texi:8924 #, no-wrap msgid "" "(use-modules (gnu packages inkscape) ;for 'inkscape'\n" " (gnu packages version-control)) ;for 'git'\n" "\n" msgstr "" "(use-modules (gnu packages inkscape) ;für 'inkscape'\n" " (gnu packages version-control)) ;für 'git'\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:8928 #, no-wrap msgid "" "(concatenate-manifests\n" " (list (package->development-manifest inkscape)\n" " (packages->manifest (list git))))\n" msgstr "" "(concatenate-manifests\n" " (list (package->development-manifest inkscape)\n" " (packages->manifest (list git))))\n" #. type: deffn #: guix-git/doc/guix.texi:8935 msgid "In this example, the development manifest that @code{package->development-manifest} returns includes the compiler (GCC), the many supporting libraries (Boost, GLib, GTK, etc.), and a couple of additional development tools---these are the dependencies @command{guix show inkscape} lists." msgstr "Dieses Beispiel zeigt, wie @code{package->development-manifest} ein Entwicklungsmanifest mit einem Compiler (GCC), den vielen benutzten Bibliotheken (Boost, GLib, GTK, etc.) und noch ein paar zusätzlichen Entwicklungswerkzeugen liefert@tie{}– das sagen uns die von @command{guix show inkscape} aufgeführten Abhängigkeiten." #. type: Plain text #: guix-git/doc/guix.texi:8942 msgid "Last, the @code{(gnu packages)} module provides higher-level facilities to build manifests. In particular, it lets you look up packages by name---see below." msgstr "Zum Schluss sind im Modul @code{(gnu packages)} noch Abstraktionen enthalten, um Manifeste anzufertigen. Dazu gehört, Pakete anhand ihres Namens zu finden@tie{}– siehe unten." #. type: deffn #: guix-git/doc/guix.texi:8943 #, no-wrap msgid "{Procedure} specifications->manifest specs" msgstr "{Prozedur} specifications->manifest Spezifikationen" #. type: deffn #: guix-git/doc/guix.texi:8948 msgid "Given @var{specs}, a list of specifications such as @code{\"emacs@@25.2\"} or @code{\"guile:debug\"}, return a manifest. Specs have the format that command-line tools such as @command{guix install} and @command{guix package} understand (@pxref{Invoking guix package})." msgstr "Liefert ein Manifest für die @var{Spezifikationen}, einer Liste von Spezifikationen wie @code{\"emacs@@25.2\"} oder @code{\"guile:debug\"}. Das Format für die Spezifikationen ist dasselbe wie bei den Befehlszeilenwerkzeugen @command{guix install}, @command{guix package} und so weiter (siehe @ref{Invoking guix package})." #. type: deffn #: guix-git/doc/guix.texi:8951 msgid "As an example, it lets you rewrite the Git manifest that we saw earlier like this:" msgstr "Ein Beispiel wäre diese Möglichkeit, das zuvor gezeigte Git-Manifest anders zu formulieren wie hier:" #. type: lisp #: guix-git/doc/guix.texi:8954 #, no-wrap msgid "(specifications->manifest '(\"git\" \"git:send-email\"))\n" msgstr "(specifications->manifest '(\"git\" \"git:send-email\"))\n" #. type: deffn #: guix-git/doc/guix.texi:8960 msgid "Notice that we do not need to worry about @code{use-modules}, importing the right set of modules, and referring to the right variables. Instead, we directly refer to packages in the same way as on the command line, which can often be more convenient." msgstr "Man bemerke, dass wir uns nicht um @code{use-modules} kümmern müssen, um die richtige Auswahl von Modulen zu importieren und die richtigen Variablen zu referenzieren. Stattdessen nehmen wir auf Pakete direkt auf die Weise Bezug, die wir von der Befehlszeile kennen. Wie praktisch!" #. type: cindex #: guix-git/doc/guix.texi:8968 #, no-wrap msgid "build system" msgstr "Erstellungssystem" #. type: Plain text #: guix-git/doc/guix.texi:8973 msgid "Each package definition specifies a @dfn{build system} and arguments for that build system (@pxref{Defining Packages}). This @code{build-system} field represents the build procedure of the package, as well as implicit dependencies of that build procedure." msgstr "Jede Paketdefinition legt ein @dfn{Erstellungssystem} („build system“) sowie dessen Argumente fest (siehe @ref{Defining Packages}). Das @code{build-system}-Feld steht für die Erstellungsprozedur des Pakets sowie für weitere implizite Eingaben für die Erstellungsprozedur." #. type: Plain text #: guix-git/doc/guix.texi:8977 msgid "Build systems are @code{<build-system>} objects. The interface to create and manipulate them is provided by the @code{(guix build-system)} module, and actual build systems are exported by specific modules." msgstr "Erstellungssysteme sind @code{<build-system>}-Objekte. Die Schnittstelle, um solche zu erzeugen und zu verändern, ist im Modul @code{(guix build-system)} zu finden, und die eigentlichen Erstellungssysteme werden jeweils von ihren eigenen Modulen exportiert." #. type: cindex #: guix-git/doc/guix.texi:8978 #, no-wrap msgid "bag (low-level package representation)" msgstr "Bag (systemnahe Paketrepräsentation)" #. type: Plain text #: guix-git/doc/guix.texi:8988 msgid "Under the hood, build systems first compile package objects to @dfn{bags}. A @dfn{bag} is like a package, but with less ornamentation---in other words, a bag is a lower-level representation of a package, which includes all the inputs of that package, including some that were implicitly added by the build system. This intermediate representation is then compiled to a derivation (@pxref{Derivations}). The @code{package-with-c-toolchain} is an example of a way to change the implicit inputs that a package's build system pulls in (@pxref{package Reference, @code{package-with-c-toolchain}})." msgstr "Intern funktionieren Erstellungssysteme, indem erst Paketobjekte zu @dfn{Bags} kompiliert werden. Eine Bag (deutsch: Beutel, Sack) ist wie ein Paket, aber mit weniger Zierrat@tie{}– anders gesagt ist eine Bag eine systemnähere Darstellung eines Pakets, die sämtliche Eingaben des Pakets einschließlich vom Erstellungssystem hinzugefügter Eingaben enthält. Diese Zwischendarstellung wird dann zur eigentlichen Ableitung kompiliert (siehe @ref{Derivations}). Die Prozedur @code{package-with-c-toolchain} ist zum Beispiel eine Möglichkeit, wie die durch das Erstellungssystem hinzugenommenen impliziten Eingaben abgeändert werden können (siehe @ref{package Reference, @code{package-with-c-toolchain}})." #. type: Plain text #: guix-git/doc/guix.texi:8996 msgid "Build systems accept an optional list of @dfn{arguments}. In package definitions, these are passed @i{via} the @code{arguments} field (@pxref{Defining Packages}). They are typically keyword arguments (@pxref{Optional Arguments, keyword arguments in Guile,, guile, GNU Guile Reference Manual}). The value of these arguments is usually evaluated in the @dfn{build stratum}---i.e., by a Guile process launched by the daemon (@pxref{Derivations})." msgstr "Erstellungssysteme akzeptieren optional eine Liste von @dfn{Argumenten}. In Paketdefinitionen werden diese über das @code{arguments}-Feld übergeben (siehe @ref{Defining Packages}). Sie sind in der Regel Schlüsselwort-Argumente (siehe @ref{Optional Arguments, Schlüsselwort-Argumente in Guile,, guile, Referenzhandbuch zu GNU Guile}). Der Wert dieser Argumente wird normalerweise vom Erstellungssystem in der @dfn{Erstellungsschicht} ausgewertet, d.h.@: von einem durch den Daemon gestarteten Guile-Prozess (siehe @ref{Derivations})." #. type: Plain text #: guix-git/doc/guix.texi:9000 msgid "The main build system is @code{gnu-build-system}, which implements the standard build procedure for GNU and many other packages. It is provided by the @code{(guix build-system gnu)} module." msgstr "Das häufigste Erstellungssystem ist @code{gnu-build-system}, was die übliche Erstellungsprozedur für GNU-Pakete und viele andere Pakete darstellt. Es wird vom Modul @code{(guix build-system gnu)} bereitgestellt." #. type: defvar #: guix-git/doc/guix.texi:9001 #, no-wrap msgid "gnu-build-system" msgstr "gnu-build-system" #. type: defvar #: guix-git/doc/guix.texi:9005 msgid "@code{gnu-build-system} represents the GNU Build System, and variants thereof (@pxref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards})." msgstr "@code{gnu-build-system} steht für das GNU-Erstellungssystem und Varianten desselben (siehe @ref{Configuration, Konfiguration und Makefile-Konventionen,, standards, GNU Coding Standards})." #. type: cindex #: guix-git/doc/guix.texi:9006 guix-git/doc/guix.texi:10193 #: guix-git/doc/guix.texi:10816 #, no-wrap msgid "build phases" msgstr "Erstellungsphasen" #. type: defvar #: guix-git/doc/guix.texi:9013 msgid "In a nutshell, packages using it are configured, built, and installed with the usual @code{./configure && make && make check && make install} command sequence. In practice, a few additional steps are often needed. All these steps are split up in separate @dfn{phases}. @xref{Build Phases}, for more info on build phases and ways to customize them." msgstr "Kurz gefasst werden Pakete, die es benutzen, konfiguriert, erstellt und installiert mit der üblichen Befehlsfolge @code{./configure && make && make check && make install}. In der Praxis braucht man oft noch ein paar weitere Schritte. Alle Schritte sind in voneinander getrennte @dfn{Phasen} unterteilt. Siehe @ref{Build Phases} für mehr Informationen zu Erstellungsphasen und wie man sie anpassen kann." #. type: defvar #: guix-git/doc/guix.texi:9020 msgid "In addition, this build system ensures that the ``standard'' environment for GNU packages is available. This includes tools such as GCC, libc, Coreutils, Bash, Make, Diffutils, grep, and sed (see the @code{(guix build-system gnu)} module for a complete list). We call these the @dfn{implicit inputs} of a package, because package definitions do not have to mention them." msgstr "Zusätzlich stellt dieses Erstellungssystem sicher, dass die „Standard“-Umgebung für GNU-Pakete zur Verfügung steht. Diese umfasst Werkzeuge wie GCC, libc, Coreutils, Bash, Make, Diffutils, grep und sed (siehe das Modul @code{(guix build-system gnu)} für eine vollständige Liste). Wir bezeichnen sie als @dfn{implizite Eingaben} eines Pakets, weil Paketdefinitionen sie nicht aufführen müssen." #. type: defvar #: guix-git/doc/guix.texi:9024 msgid "This build system supports a number of keyword arguments, which can be passed @i{via} the @code{arguments} field of a package. Here are some of the main parameters:" msgstr "Dieses Erstellungssystem unterstützt eine Reihe von Schlüsselwortargumenten, die über das @code{arguments}-Feld eines Pakets übergeben werden können. Hier sind einige der wichtigen Parameter:" #. type: item #: guix-git/doc/guix.texi:9026 #, no-wrap msgid "#:phases" msgstr "#:phases" #. type: table #: guix-git/doc/guix.texi:9029 msgid "This argument specifies build-side code that evaluates to an alist of build phases. @xref{Build Phases}, for more information." msgstr "Mit diesem Argument wird erstellungsseitiger Code angegeben, der zu einer assoziativen Liste von Erstellungsphasen ausgewertet wird. Siehe @ref{Build Phases} für nähere Informationen." #. type: item #: guix-git/doc/guix.texi:9030 #, no-wrap msgid "#:configure-flags" msgstr "#:configure-flags" #. type: table #: guix-git/doc/guix.texi:9033 msgid "This is a list of flags (strings) passed to the @command{configure} script. @xref{Defining Packages}, for an example." msgstr "Diese Liste von Befehlszeilenoptionen (als Zeichenketten) werden dem @command{configure}-Skript übergeben. Siehe @ref{Defining Packages} für ein Beispiel." #. type: item #: guix-git/doc/guix.texi:9034 #, no-wrap msgid "#:make-flags" msgstr "#:make-flags" #. type: table #: guix-git/doc/guix.texi:9038 msgid "This list of strings contains flags passed as arguments to @command{make} invocations in the @code{build}, @code{check}, and @code{install} phases." msgstr "Diese Zeichenkettenliste enthält Befehlszeilenoptionen, die als Argumente an @command{make}-Aufrufe in den Phasen @code{build}, @code{check} und @code{install} übergeben werden." #. type: item #: guix-git/doc/guix.texi:9039 #, no-wrap msgid "#:out-of-source?" msgstr "#:out-of-source?" #. type: table #: guix-git/doc/guix.texi:9042 msgid "This Boolean, @code{#f} by default, indicates whether to run builds in a build directory separate from the source tree." msgstr "Dieser Boolesche Ausdruck, nach Vorgabe steht er auf @code{#f}, zeigt an, ob Erstellungen in einem gesonderten Erstellungsverzeichnis abseits des Quellbaums ausgeführt werden sollen." #. type: table #: guix-git/doc/guix.texi:9047 msgid "When it is true, the @code{configure} phase creates a separate build directory, changes to that directory, and runs the @code{configure} script from there. This is useful for packages that require it, such as @code{glibc}." msgstr "Wenn es auf wahr steht, wird in der @code{configure}-Phase eigens ein Erstellungsverzeichnis angelegt, dorthin gewechselt und das @code{configure}-Skript von dort ausgeführt. Das ist nützlich bei Paketen, die so etwas voraussetzen, wie @code{glibc}." #. type: item #: guix-git/doc/guix.texi:9048 #, no-wrap msgid "#:tests?" msgstr "#:tests?" #. type: table #: guix-git/doc/guix.texi:9051 msgid "This Boolean, @code{#t} by default, indicates whether the @code{check} phase should run the package's test suite." msgstr "Dieser Boolesche Ausdruck, nach Vorgabe steht er auf @code{#t}, zeigt an, ob in der @code{check}-Phase der Testkatalog des Pakets ausgeführt werden soll." #. type: item #: guix-git/doc/guix.texi:9052 #, no-wrap msgid "#:test-target" msgstr "#:test-target" #. type: table #: guix-git/doc/guix.texi:9055 msgid "This string, @code{\"check\"} by default, gives the name of the makefile target used by the @code{check} phase." msgstr "In dieser Zeichenkette, nach Vorgabe @code{\"check\"}, wird der Name des Makefile-Ziels angegeben, das die @code{check}-Phase benutzt." #. type: item #: guix-git/doc/guix.texi:9056 #, no-wrap msgid "#:parallel-build?" msgstr "#:parallel-build?" #. type: itemx #: guix-git/doc/guix.texi:9057 #, no-wrap msgid "#:parallel-tests?" msgstr "#:parallel-tests?" #. type: table #: guix-git/doc/guix.texi:9064 msgid "These Boolean values specify whether to build, respectively run the test suite, in parallel, with the @code{-j} flag of @command{make}. When they are true, @code{make} is passed @code{-j@var{n}}, where @var{n} is the number specified as the @option{--cores} option of @command{guix-daemon} or that of the @command{guix} client command (@pxref{Common Build Options, @option{--cores}})." msgstr "Mit diesen Booleschen Werten wird festgelegt, ob die Erstellung respektive der Testkatalog parallel ausgeführt werden soll, indem die Befehlszeilenoption @code{-j} an @command{make} übergeben wird. Wenn die Werte wahr sind, wird an @code{make} die Option @code{-j@var{n}} übergeben, wobei @var{n} die Zahl ist, die in der @option{--cores}-Befehlszeilenoption an @command{guix-daemon} oder an den @command{guix}-Clientbefehl übergeben wurde (siehe @ref{Common Build Options, @option{--cores}})." #. type: cindex #: guix-git/doc/guix.texi:9065 guix-git/doc/guix.texi:10333 #, no-wrap msgid "RUNPATH, validation" msgstr "RUNPATH, Validierung" #. type: item #: guix-git/doc/guix.texi:9066 #, no-wrap msgid "#:validate-runpath?" msgstr "#:validate-runpath?" #. type: table #: guix-git/doc/guix.texi:9072 msgid "This Boolean, @code{#t} by default, determines whether to ``validate'' the @code{RUNPATH} of ELF binaries (@code{.so} shared libraries as well as executables) previously installed by the @code{install} phase. @xref{phase-validate-runpath, the @code{validate-runpath} phase}, for details." msgstr "Dieser Boolesche Ausdruck, nach Vorgabe @code{#t}, bestimmt, ob der in ELF-Binärdateien, die in der @code{install}-Phase installiert worden sind, eingetragene @code{RUNPATH} „validiert“ werden soll. ELF-Binärdateien sind gemeinsame Bibliotheken („Shared Libraries“ mit Dateiendung @code{.so}) sowie ausführbare Dateien. Siehe @ref{phase-validate-runpath, die Phase @code{validate-runpath}} für die Details." #. type: item #: guix-git/doc/guix.texi:9073 #, no-wrap msgid "#:substitutable?" msgstr "#:substitutable?" #. type: table #: guix-git/doc/guix.texi:9077 msgid "This Boolean, @code{#t} by default, tells whether the package outputs should be substitutable---i.e., whether users should be able to obtain substitutes for them instead of building locally (@pxref{Substitutes})." msgstr "Dieser Boolesche Ausdruck, nach Vorgabe @code{#t}, sagt aus, ob Paketausgaben substituierbar sein sollen, d.h.@: ob Benutzer Substitute dafür beziehen können sollen, statt sie lokal erstellen zu müssen (siehe @ref{Substitutes})." #. type: item #: guix-git/doc/guix.texi:9078 #, no-wrap msgid "#:allowed-references" msgstr "#:allowed-references" #. type: itemx #: guix-git/doc/guix.texi:9079 #, no-wrap msgid "#:disallowed-references" msgstr "#:disallowed-references" #. type: table #: guix-git/doc/guix.texi:9084 msgid "When true, these arguments must be a list of dependencies that must not appear among the references of the build results. If, upon build completion, some of these references are retained, the build process fails." msgstr "Wenn für diese Argumente ein wahrer Wert angegeben wird, muss er einer Liste von Abhängigkeiten entsprechen, die @emph{nicht} unter den Referenzen der Erstellungsergebnisse vorkommen dürfen. Wenn nach dem Ende der Erstellung eine solche Referenz noch vorhanden ist, schlägt der Erstellungsvorgang fehl." #. type: table #: guix-git/doc/guix.texi:9089 msgid "This is useful to ensure that a package does not erroneously keep a reference to some of it build-time inputs, in cases where doing so would, for example, unnecessarily increase its size (@pxref{Invoking guix size})." msgstr "Sie eignen sich, um zu garantieren, dass ein Paket nicht fälschlich seine Abhängigkeiten aus der Erstellungszeit weiter referenziert, wenn das, zum Beispiel, die Größe unnötig in die Höhe treiben würde." #. type: defvar #: guix-git/doc/guix.texi:9092 msgid "Most other build systems support these keyword arguments." msgstr "Auch die meisten anderen Erstellungssysteme unterstützen diese Schlüsselwortargumente." #. type: Plain text #: guix-git/doc/guix.texi:9099 msgid "Other @code{<build-system>} objects are defined to support other conventions and tools used by free software packages. They inherit most of @code{gnu-build-system}, and differ mainly in the set of inputs implicitly added to the build process, and in the list of phases executed. Some of these build systems are listed below." msgstr "Andere @code{<build-system>}-Objekte werden definiert, um andere Konventionen und Werkzeuge von Paketen für freie Software zu unterstützen. Die anderen Erstellungssysteme erben den Großteil vom @code{gnu-build-system} und unterscheiden sich hauptsächlich darin, welche Eingaben dem Erstellungsprozess implizit hinzugefügt werden und welche Liste von Phasen durchlaufen wird. Manche dieser Erstellungssysteme sind im Folgenden aufgeführt." #. type: defvar #: guix-git/doc/guix.texi:9100 #, no-wrap msgid "agda-build-system" msgstr "agda-build-system" #. type: defvar #: guix-git/doc/guix.texi:9103 msgid "This variable is exported by @code{(guix build-system agda)}. It implements a build procedure for Agda libraries." msgstr "Diese Variable wird vom Modul @code{(guix build-system agda)} exportiert. Sie implementiert eine Erstellungsprozedur für Agda-Bibliotheken." #. type: defvar #: guix-git/doc/guix.texi:9106 msgid "It adds @code{agda} to the set of inputs. A different Agda can be specified with the @code{#:agda} key." msgstr "Das Erstellungssystem fügt @code{agda} zu den Eingaben hinzu. Ein anderes Agda-Paket kann mit dem Schlüssel @code{#:agda} angegeben werden." #. type: defvar #: guix-git/doc/guix.texi:9112 msgid "The @code{#:plan} key is a list of cons cells @code{(@var{regexp} . @var{parameters})}, where @var{regexp} is a regexp that should match the @code{.agda} files to build, and @var{parameters} is an optional list of parameters that will be passed to @code{agda} when type-checking it." msgstr "Für den Schlüssel @code{#:plan} wird eine Liste von Cons-Zellen der Form @code{(@var{Regexp} . @var{Parameterliste})} angegeben, wobei @var{Regexp} ein regulärer Ausdruck ist, der auf die zu erstellenden @code{.agda}-Dateien passt, und @var{Parameterliste} eine Liste von Parametern sein kann, die an @code{agda} bei dessen Typprüfung übergeben werden." #. type: defvar #: guix-git/doc/guix.texi:9118 msgid "When the library uses Haskell to generate a file containing all imports, the convenience @code{#:gnu-and-haskell?} can be set to @code{#t} to add @code{ghc} and the standard inputs of @code{gnu-build-system} to the input list. You will still need to manually add a phase or tweak the @code{'build} phase, as in the definition of @code{agda-stdlib}." msgstr "Wenn die Bibliothek Haskell benutzt, um eine Datei zu erzeugen, in der alle importierten Module stehen, können Sie @code{#:gnu-and-haskell?} auf @code{#t} setzen, damit automatisch @code{ghc} und die Standardeingaben des @code{gnu-build-system} zur Liste der Eingaben hinzugefügt werden. Sie werden trotzdem von Hand eine Phase hinzufügen oder die @code{'build}-Phase anpassen müssen, wie es in der Definition von @code{agda-stdlib} gemacht worden ist." #. type: defvar #: guix-git/doc/guix.texi:9121 #, no-wrap msgid "ant-build-system" msgstr "ant-build-system" #. type: defvar #: guix-git/doc/guix.texi:9125 msgid "This variable is exported by @code{(guix build-system ant)}. It implements the build procedure for Java packages that can be built with @url{https://ant.apache.org/, Ant build tool}." msgstr "Diese Variable wird vom Modul @code{(guix build-system ant)} exportiert. Sie implementiert die Erstellungsprozedur für Java-Pakete, die mit dem @url{https://ant.apache.org/, Ant build tool} erstellt werden können." #. type: defvar #: guix-git/doc/guix.texi:9130 msgid "It adds both @code{ant} and the @dfn{Java Development Kit} (JDK) as provided by the @code{icedtea} package to the set of inputs. Different packages can be specified with the @code{#:ant} and @code{#:jdk} parameters, respectively." msgstr "Sowohl @code{ant} als auch der @dfn{Java Development Kit} (JDK), wie er vom Paket @code{icedtea} bereitgestellt wird, werden zu den Eingaben hinzugefügt. Wenn andere Pakete dafür benutzt werden sollen, können sie jeweils mit den Parametern @code{#:ant} und @code{#:jdk} festgelegt werden." #. type: defvar #: guix-git/doc/guix.texi:9136 msgid "When the original package does not provide a suitable Ant build file, the parameter @code{#:jar-name} can be used to generate a minimal Ant build file @file{build.xml} with tasks to build the specified jar archive. In this case the parameter @code{#:source-dir} can be used to specify the source sub-directory, defaulting to ``src''." msgstr "Falls das ursprüngliche Paket über keine nutzbare Ant-Erstellungsdatei („Ant-Buildfile“) verfügt, kann aus der Angabe im Parameter @code{#:jar-name} eine minimale Ant-Erstellungsdatei @file{build.xml} erzeugt werden, in der die für die Erstellung durchzuführenden Aufgaben (Tasks) für die Erstellung des angegebenen Jar-Archivs stehen. In diesem Fall kann der Parameter @code{#:source-dir} benutzt werden, um das Unterverzeichnis mit dem Quellcode anzugeben; sein Vorgabewert ist „src“." #. type: defvar #: guix-git/doc/guix.texi:9144 msgid "The @code{#:main-class} parameter can be used with the minimal ant buildfile to specify the main class of the resulting jar. This makes the jar file executable. The @code{#:test-include} parameter can be used to specify the list of junit tests to run. It defaults to @code{(list \"**/*Test.java\")}. The @code{#:test-exclude} can be used to disable some tests. It defaults to @code{(list \"**/Abstract*.java\")}, because abstract classes cannot be run as tests." msgstr "Der Parameter @code{#:main-class} kann mit einer minimalen Ant-Erstellungsdatei benutzt werden, um die Hauptklasse des resultierenden Jar-Archivs anzugeben. Dies ist nötig, wenn die Jar-Datei ausführbar sein soll. Mit dem Parameter @code{#:test-include} kann eine Liste angegeben werden, welche Junit-Tests auszuführen sind. Der Vorgabewert ist @code{(list \"**/*Test.java\")}. Mit @code{#:test-exclude} kann ein Teil der Testdateien ignoriert werden. Der Vorgabewert ist @code{(list \"**/Abstract*.java\")}, weil abstrakte Klassen keine ausführbaren Tests enthalten können." #. type: defvar #: guix-git/doc/guix.texi:9148 msgid "The parameter @code{#:build-target} can be used to specify the Ant task that should be run during the @code{build} phase. By default the ``jar'' task will be run." msgstr "Der Parameter @code{#:build-target} kann benutzt werden, um die Ant-Aufgabe (Task) anzugeben, die während der @code{build}-Phase ausgeführt werden soll. Vorgabe ist, dass die Aufgabe (Task) „jar“ ausgeführt wird." #. type: defvar #: guix-git/doc/guix.texi:9151 #, no-wrap msgid "android-ndk-build-system" msgstr "android-ndk-build-system" #. type: cindex #: guix-git/doc/guix.texi:9152 #, no-wrap msgid "Android distribution" msgstr "Android-Distribution" #. type: cindex #: guix-git/doc/guix.texi:9153 #, no-wrap msgid "Android NDK build system" msgstr "Android-NDK-Erstellungssystem" #. type: defvar #: guix-git/doc/guix.texi:9157 msgid "This variable is exported by @code{(guix build-system android-ndk)}. It implements a build procedure for Android NDK (native development kit) packages using a Guix-specific build process." msgstr "Diese Variable wird von @code{(guix build-system android-ndk)} exportiert. Sie implementiert eine Erstellungsprozedur für das Android NDK (Native Development Kit) benutzende Pakete mit einem Guix-spezifischen Erstellungsprozess." #. type: defvar #: guix-git/doc/guix.texi:9161 msgid "The build system assumes that packages install their public interface (header) files to the subdirectory @file{include} of the @code{out} output and their libraries to the subdirectory @file{lib} the @code{out} output." msgstr "Für das Erstellungssystem wird angenommen, dass Pakete die zu ihrer öffentlichen Schnittstelle gehörenden Header-Dateien im Unterverzeichnis @file{include} der Ausgabe @code{out} und ihre Bibliotheken im Unterverzeichnis @file{lib} der Ausgabe @code{out} platzieren." #. type: defvar #: guix-git/doc/guix.texi:9164 msgid "It's also assumed that the union of all the dependencies of a package has no conflicting files." msgstr "Ebenso wird angenommen, dass es keine im Konflikt stehenden Dateien unter der Vereinigung aller Abhängigkeiten gibt." #. type: defvar #: guix-git/doc/guix.texi:9167 msgid "For the time being, cross-compilation is not supported - so right now the libraries and header files are assumed to be host tools." msgstr "Derzeit wird Cross-Kompilieren hierfür nicht unterstützt, also wird dabei vorausgesetzt, dass Bibliotheken und Header-Dateien dieselben wie im Wirtssystem sind." #. type: defvar #: guix-git/doc/guix.texi:9170 #, no-wrap msgid "asdf-build-system/source" msgstr "asdf-build-system/source" #. type: defvarx #: guix-git/doc/guix.texi:9171 #, no-wrap msgid "asdf-build-system/sbcl" msgstr "asdf-build-system/sbcl" #. type: defvarx #: guix-git/doc/guix.texi:9172 #, no-wrap msgid "asdf-build-system/ecl" msgstr "asdf-build-system/ecl" #. type: defvar #: guix-git/doc/guix.texi:9178 msgid "These variables, exported by @code{(guix build-system asdf)}, implement build procedures for Common Lisp packages using @url{https://common-lisp.net/project/asdf/, ``ASDF''}. ASDF is a system definition facility for Common Lisp programs and libraries." msgstr "Diese Variablen, die vom Modul @code{(guix build-system asdf)} exportiert werden, implementieren Erstellungsprozeduren für Common-Lisp-Pakete, welche @url{https://common-lisp.net/project/asdf/, „ASDF“} benutzen. ASDF dient der Systemdefinition für Common-Lisp-Programme und -Bibliotheken." #. type: defvar #: guix-git/doc/guix.texi:9185 msgid "The @code{asdf-build-system/source} system installs the packages in source form, and can be loaded using any common lisp implementation, via ASDF@. The others, such as @code{asdf-build-system/sbcl}, install binary systems in the format which a particular implementation understands. These build systems can also be used to produce executable programs, or lisp images which contain a set of packages pre-loaded." msgstr "Das Erstellungssystem @code{asdf-build-system/source} installiert die Pakete in Quellcode-Form und kann @i{via} ASDF mit jeder Common-Lisp-Implementierung geladen werden. Die anderen Erstellungssysteme wie @code{asdf-build-system/sbcl} installieren binäre Systeme in dem Format, das von einer bestimmten Implementierung verstanden wird. Diese Erstellungssysteme können auch benutzt werden, um ausführbare Programme zu erzeugen oder um Lisp-Abbilder mit einem vorab geladenen Satz von Paketen zu erzeugen." #. type: defvar #: guix-git/doc/guix.texi:9189 msgid "The build system uses naming conventions. For binary packages, the package name should be prefixed with the lisp implementation, such as @code{sbcl-} for @code{asdf-build-system/sbcl}." msgstr "Das Erstellungssystem benutzt gewisse Namenskonventionen. Bei Binärpaketen sollte dem Paketnamen die Lispimplementierung als Präfix vorangehen, z.B.@: @code{sbcl-} für @code{asdf-build-system/sbcl}." #. type: defvar #: guix-git/doc/guix.texi:9193 msgid "Additionally, the corresponding source package should be labeled using the same convention as Python packages (@pxref{Python Modules}), using the @code{cl-} prefix." msgstr "Zudem sollte das entsprechende Quellcode-Paket mit der Konvention wie bei Python-Paketen (siehe @ref{Python Modules}) ein @code{cl-} als Präfix bekommen." #. type: defvar #: guix-git/doc/guix.texi:9201 msgid "In order to create executable programs and images, the build-side procedures @code{build-program} and @code{build-image} can be used. They should be called in a build phase after the @code{create-asdf-configuration} phase, so that the system which was just built can be used within the resulting image. @code{build-program} requires a list of Common Lisp expressions to be passed as the @code{#:entry-program} argument." msgstr "Um ausführbare Programme und Abbilder zu erzeugen, können die erstellungsseitigen Prozeduren @code{build-program} und @code{build-image} benutzt werden. Sie sollten in einer Erstellungsphase nach der @code{create-asdf-configuration}-Phase aufgerufen werden, damit das gerade erstellte System Teil des resultierenden Abbilds sein kann. An @code{build-program} muss eine Liste von Common-Lisp-Ausdrücken über das Argument @code{#:entry-program} übergeben werden." #. type: defvar #: guix-git/doc/guix.texi:9210 msgid "By default, all the @file{.asd} files present in the sources are read to find system definitions. The @code{#:asd-files} parameter can be used to specify the list of @file{.asd} files to read. Furthermore, if the package defines a system for its tests in a separate file, it will be loaded before the tests are run if it is specified by the @code{#:test-asd-file} parameter. If it is not set, the files @code{<system>-tests.asd}, @code{<system>-test.asd}, @code{tests.asd}, and @code{test.asd} will be tried if they exist." msgstr "Vorgegeben ist, alle @file{.asd}-Dateien im Quellverzeichnis zu lesen, um zu ermitteln, welche Systeme definiert sind. Mit dem Parameter @code{#:asd-files} kann die Liste zu lesender @file{.asd}-Dateien festgelegt werden. Außerdem wird bei Paketen, für deren Tests ein System in einer separaten Datei definiert wurde, dieses System geladen, bevor die Tests ablaufen, wenn es im Parameter @code{#:test-asd-file} steht. Ist dafür kein Wert gesetzt, werden die Dateien @code{<system>-tests.asd}, @code{<system>-test.asd}, @code{tests.asd} und @code{test.asd} durchsucht, wenn sie existieren." #. type: defvar #: guix-git/doc/guix.texi:9215 msgid "If for some reason the package must be named in a different way than the naming conventions suggest, or if several systems must be compiled, the @code{#:asd-systems} parameter can be used to specify the list of system names." msgstr "Wenn aus irgendeinem Grund der Paketname nicht den Namenskonventionen folgen kann oder wenn mehrere Systeme kompiliert werden, kann der Parameter @code{#:asd-systems} benutzt werden, um die Liste der Systemnamen anzugeben." #. type: defvar #: guix-git/doc/guix.texi:9218 #, no-wrap msgid "cargo-build-system" msgstr "cargo-build-system" #. type: cindex #: guix-git/doc/guix.texi:9219 #, no-wrap msgid "Rust programming language" msgstr "Rust-Programmiersprache" #. type: cindex #: guix-git/doc/guix.texi:9220 #, no-wrap msgid "Cargo (Rust build system)" msgstr "Cargo (Rust-Erstellungssystem)" #. type: defvar #: guix-git/doc/guix.texi:9224 msgid "This variable is exported by @code{(guix build-system cargo)}. It supports builds of packages using Cargo, the build tool of the @uref{https://www.rust-lang.org, Rust programming language}." msgstr "Diese Variable wird vom Modul @code{(guix build-system cargo)} exportiert. Damit können Pakete mit Cargo erstellt werden, dem Erstellungswerkzeug der @uref{https://www.rust-lang.org, Rust-Programmiersprache}." #. type: defvar #: guix-git/doc/guix.texi:9227 msgid "It adds @code{rustc} and @code{cargo} to the set of inputs. A different Rust package can be specified with the @code{#:rust} parameter." msgstr "Das Erstellungssystem fügt @code{rustc} und @code{cargo} zu den Eingaben hinzu. Ein anderes Rust-Paket kann mit dem Parameter @code{#:rust} angegeben werden." #. type: defvar #: guix-git/doc/guix.texi:9237 msgid "Regular cargo dependencies should be added to the package definition similarly to other packages; those needed only at build time to native-inputs, others to inputs. If you need to add source-only crates then you should add them to via the @code{#:cargo-inputs} parameter as a list of name and spec pairs, where the spec can be a package or a source definition. Note that the spec must evaluate to a path to a gzipped tarball which includes a @code{Cargo.toml} file at its root, or it will be ignored. Similarly, cargo dev-dependencies should be added to the package definition via the @code{#:cargo-development-inputs} parameter." msgstr "Normale cargo-Abhängigkeiten sollten so wie bei anderen Paketen in die Paketdefinition eingetragen werden; wenn sie nur zur Erstellungszeit gebraucht werden, gehören sie in @code{native-inputs}, sonst in @code{inputs}. Wenn die Abhängigkeiten Crates sind, die nur als Quellcode vorliegen, sollten sie zusätzlich über den Parameter @code{#:cargo-inputs} als eine Liste von Paaren aus Name und Spezifikation hinzugefügt, wobei als Spezifikation ein Paket oder eine Quellcode-Definition angegeben werden kann. Beachten Sie, dass die Spezifikation zu einem mit gzip komprimierten Tarball ausgewertet werden muss, der eine Datei @code{Cargo.toml} in seinem Wurzelverzeichnis enthält, ansonsten wird sie ignoriert. Analog sollten solche Abhängigkeiten, die in cargo als „dev-dependencies“ deklariert werden, zur Paketdefinition über den Parameter @code{#:cargo-development-inputs} hinzugefügt werden." #. type: defvar #: guix-git/doc/guix.texi:9247 msgid "In its @code{configure} phase, this build system will make any source inputs specified in the @code{#:cargo-inputs} and @code{#:cargo-development-inputs} parameters available to cargo. It will also remove an included @code{Cargo.lock} file to be recreated by @code{cargo} during the @code{build} phase. The @code{package} phase will run @code{cargo package} to create a source crate for future use. The @code{install} phase installs the binaries defined by the crate. Unless @code{install-source? #f} is defined it will also install a source crate repository of itself and unpacked sources, to ease in future hacking on rust packages." msgstr "In seiner @code{configure}-Phase sorgt dieses Erstellungssystem dafür, dass cargo alle Quellcodeeingaben zur Verfügung stehen, die in den Parametern @code{#:cargo-inputs} und @code{#:cargo-development-inputs} angegeben wurden. Außerdem wird eine enthaltene @code{Cargo.lock}-Datei entfernt, damit @code{cargo} selbige während der @code{build}-Phase neu erzeugt. Die @code{package}-Phase führt @code{cargo package} aus, um eine Quellcode-Crate zur späteren Nutzung zu erzeugen. Die @code{install}-Phase installiert die in der Crate definierten Binärdateien. Wenn @emph{nicht} @code{install-source? #f} definiert ist, werden auch ein Verzeichnis mit dem eigenen Quellcode in einer Crate und auch der unverpackte Quellcode installiert, damit es leichter ist, später an Rust-Paketen zu hacken." #. type: defvar #: guix-git/doc/guix.texi:9249 #, no-wrap msgid "chicken-build-system" msgstr "chicken-build-system" #. type: defvar #: guix-git/doc/guix.texi:9254 msgid "This variable is exported by @code{(guix build-system chicken)}. It builds @uref{https://call-cc.org/, CHICKEN Scheme} modules, also called ``eggs'' or ``extensions''. CHICKEN generates C source code, which then gets compiled by a C compiler, in this case GCC." msgstr "Diese Variable wird von @code{(guix build-system chicken)} exportiert. Mit ihr werden Module von @uref{https://call-cc.org/, CHICKEN Scheme} kompiliert. Sie sind auch bekannt als „Eggs“ oder als „Erweiterungen“. CHICKEN erzeugt C-Quellcode, der dann von einem C-Compiler kompiliert wird; in diesem Fall vom GCC." #. type: defvar #: guix-git/doc/guix.texi:9257 msgid "This build system adds @code{chicken} to the package inputs, as well as the packages of @code{gnu-build-system}." msgstr "Dieses Erstellungssystem fügt @code{chicken} neben den Paketen des @code{gnu-build-system} zu den Paketeingaben hinzu." #. type: defvar #: guix-git/doc/guix.texi:9261 msgid "The build system can't (yet) deduce the egg's name automatically, so just like with @code{go-build-system} and its @code{#:import-path}, you should define @code{#:egg-name} in the package's @code{arguments} field." msgstr "Das Erstellungssystem kann den Namen des Eggs (noch) nicht automatisch herausfinden, also müssen Sie, ähnlich wie beim @code{#:import-path} des @code{go-build-system}, im @code{arguments}-Feld des Pakets den @code{#:egg-name} festlegen." #. type: defvar #: guix-git/doc/guix.texi:9263 msgid "For example, if you are packaging the @code{srfi-1} egg:" msgstr "Zum Beispiel würden Sie so vorgehen, um ein Paket für das Egg @code{srfi-1} zu schreiben:" #. type: lisp #: guix-git/doc/guix.texi:9266 #, no-wrap msgid "(arguments '(#:egg-name \"srfi-1\"))\n" msgstr "(arguments '(#:egg-name \"srfi-1\"))\n" #. type: defvar #: guix-git/doc/guix.texi:9271 msgid "Egg dependencies must be defined in @code{propagated-inputs}, not @code{inputs} because CHICKEN doesn't embed absolute references in compiled eggs. Test dependencies should go to @code{native-inputs}, as usual." msgstr "Abhängigkeiten von Eggs müssen in @code{propagated-inputs} genannt werden und @emph{nicht} in @code{inputs}, weil CHICKEN keine absoluten Referenzen in kompilierte Eggs einbettet. Abhängigkeiten für Tests sollten wie üblich in @code{native-inputs} stehen." #. type: defvar #: guix-git/doc/guix.texi:9273 #, no-wrap msgid "copy-build-system" msgstr "copy-build-system" #. type: defvar #: guix-git/doc/guix.texi:9277 msgid "This variable is exported by @code{(guix build-system copy)}. It supports builds of simple packages that don't require much compiling, mostly just moving files around." msgstr "Diese Variable wird vom Modul @code{(guix build-system copy)} exportiert. Damit können einfache Pakete erstellt werden, für die nur wenig kompiliert werden muss, sondern in erster Linie Dateien kopiert werden." #. type: defvar #: guix-git/doc/guix.texi:9282 msgid "It adds much of the @code{gnu-build-system} packages to the set of inputs. Because of this, the @code{copy-build-system} does not require all the boilerplate code often needed for the @code{trivial-build-system}." msgstr "Dadurch wird ein Großteil der @code{gnu-build-system} zur Menge der Paketeingaben hinzugefügt. Deswegen kann man bei Nutzung des @code{copy-build-system} auf große Teile des Codes verzichten, der beim @code{trivial-build-system} anfallen würde." #. type: defvar #: guix-git/doc/guix.texi:9287 msgid "To further simplify the file installation process, an @code{#:install-plan} argument is exposed to let the packager specify which files go where. The install plan is a list of @code{(@var{source} @var{target} [@var{filters}])}. @var{filters} are optional." msgstr "Um den Dateiinstallationsvorgang weiter zu vereinfachen, wird ein Argument @code{#:install-plan} zur Verfügung gestellt, mit dem der Paketautor angeben kann, welche Dateien wohin gehören. Der Installationsplan ist eine Liste aus @code{(@var{Quelle} @var{Ziel} [@var{Filter}])}. Die @var{Filter} sind optional." #. type: item #: guix-git/doc/guix.texi:9289 #, no-wrap msgid "When @var{source} matches a file or directory without trailing slash, install it to @var{target}." msgstr "Wenn die @var{Quelle} einer Datei oder einem Verzeichnis ohne Schrägstrich am Ende entspricht, wird sie nach @var{Ziel} installiert." #. type: item #: guix-git/doc/guix.texi:9291 #, no-wrap msgid "If @var{target} has a trailing slash, install @var{source} basename beneath @var{target}." msgstr "Hat das @var{Ziel} einen Schrägstrich am Ende, wird mit dem Basisnamen der @var{Quelle} innerhalb von @var{Ziel} installiert." #. type: item #: guix-git/doc/guix.texi:9292 #, no-wrap msgid "Otherwise install @var{source} as @var{target}." msgstr "Andernfalls wird die @var{Quelle} als @var{Ziel} installiert." #. type: item #: guix-git/doc/guix.texi:9295 #, no-wrap msgid "When @var{source} is a directory with a trailing slash, or when @var{filters} are used," msgstr "Falls es sich bei der @var{Quelle} um ein Verzeichnis mit Schrägstrich am Ende handelt oder wenn @var{Filter} benutzt werden," #. type: itemize #: guix-git/doc/guix.texi:9298 msgid "the trailing slash of @var{target} is implied with the same meaning as above." msgstr "so ist der Schrägstrich am Ende von @var{Ziel} mit der Bedeutung wie oben implizit." #. type: item #: guix-git/doc/guix.texi:9299 #, no-wrap msgid "Without @var{filters}, install the full @var{source} @emph{content} to @var{target}." msgstr "Ohne Angabe von @var{Filter}n wird der gesamte @emph{Inhalt} der @var{Quelle} nach @var{Ziel} installiert." #. type: item #: guix-git/doc/guix.texi:9300 #, no-wrap msgid "With @var{filters} among @code{#:include}, @code{#:include-regexp}, @code{#:exclude}," msgstr "Werden @var{Filter} als @code{#:include}, @code{#:include-regexp}, @code{#:exclude}" #. type: itemize #: guix-git/doc/guix.texi:9303 msgid "@code{#:exclude-regexp}, only select files are installed depending on the filters. Each filters is specified by a list of strings." msgstr "oder @code{#:exclude-regexp} aufgeführt, werden je nach Filter nur die ausgewählten Dateien installiert. Jeder Filter wird als Liste von Zeichenketten angegeben." #. type: item #: guix-git/doc/guix.texi:9304 #, no-wrap msgid "With @code{#:include}, install all the files which the path suffix matches" msgstr "Bei @code{#:include} werden all die Dateien installiert, deren Pfad als Suffix" #. type: itemize #: guix-git/doc/guix.texi:9306 msgid "at least one of the elements in the given list." msgstr "zu mindestens einem der Elemente der angegebenen Liste passt." #. type: item #: guix-git/doc/guix.texi:9306 #, no-wrap msgid "With @code{#:include-regexp}, install all the files which the" msgstr "Bei @code{#:include-regexp} werden all die Dateien installiert, deren" #. type: itemize #: guix-git/doc/guix.texi:9309 msgid "subpaths match at least one of the regular expressions in the given list." msgstr "Unterpfad zu mindestens einem der regulären Ausdrücke in der angegebenen Liste passt." #. type: item #: guix-git/doc/guix.texi:9309 #, no-wrap msgid "The @code{#:exclude} and @code{#:exclude-regexp} filters" msgstr "Die Filter @code{#:exclude} und @code{#:exclude-regexp}" #. type: itemize #: guix-git/doc/guix.texi:9314 msgid "are the complement of their inclusion counterpart. Without @code{#:include} flags, install all files but those matching the exclusion filters. If both inclusions and exclusions are specified, the exclusions are done on top of the inclusions." msgstr "bewirken das Gegenteil ihrer Include-Entsprechungen. Ohne @code{#:include}-Angaben werden alle Dateien außer den zu den Exclude-Filtern passenden installiert. Werden sowohl @code{#:include} als auch @code{#:exclude} angegeben, werden zuerst die @code{#:include}-Angaben beachtet und danach wird durch @code{#:exclude} gefiltert." #. type: itemize #: guix-git/doc/guix.texi:9318 msgid "In all cases, the paths relative to @var{source} are preserved within @var{target}." msgstr "In jedem Fall bleiben die Pfade relativ zur @var{Quelle} innerhalb des @var{Ziel}s erhalten." #. type: defvar #: guix-git/doc/guix.texi:9321 msgid "Examples:" msgstr "Beispiele:" #. type: item #: guix-git/doc/guix.texi:9323 #, no-wrap msgid "@code{(\"foo/bar\" \"share/my-app/\")}: Install @file{bar} to @file{share/my-app/bar}." msgstr "@code{(\"foo/bar\" \"share/my-app/\")}: Installiert @file{bar} nach @file{share/my-app/bar}." #. type: item #: guix-git/doc/guix.texi:9324 #, no-wrap msgid "@code{(\"foo/bar\" \"share/my-app/baz\")}: Install @file{bar} to @file{share/my-app/baz}." msgstr "@code{(\"foo/bar\" \"share/my-app/baz\")}: Installiert @file{bar} nach @file{share/my-app/baz}." #. type: item #: guix-git/doc/guix.texi:9325 #, no-wrap msgid "@code{(\"foo/\" \"share/my-app\")}: Install the content of @file{foo} inside @file{share/my-app}," msgstr "@code{(\"foo/\" \"share/my-app\")}: Installiert den Inhalt von @file{foo} innerhalb von @file{share/my-app}." #. type: itemize #: guix-git/doc/guix.texi:9327 msgid "e.g., install @file{foo/sub/file} to @file{share/my-app/sub/file}." msgstr "Zum Beispiel wird @file{foo/sub/datei} nach @file{share/my-app/sub/datei} installiert." #. type: item #: guix-git/doc/guix.texi:9327 #, no-wrap msgid "@code{(\"foo/\" \"share/my-app\" #:include (\"sub/file\"))}: Install only @file{foo/sub/file} to" msgstr "@code{(\"foo/\" \"share/my-app\" #:include (\"sub/datei\"))}: Installiert nur @file{foo/sub/datei}" #. type: itemize #: guix-git/doc/guix.texi:9329 msgid "@file{share/my-app/sub/file}." msgstr "nach @file{share/my-app/sub/datei}." #. type: item #: guix-git/doc/guix.texi:9329 #, no-wrap msgid "@code{(\"foo/sub\" \"share/my-app\" #:include (\"file\"))}: Install @file{foo/sub/file} to" msgstr "@code{(\"foo/sub\" \"share/my-app\" #:include (\"datei\"))}: Installiert @file{foo/sub/datei}" #. type: itemize #: guix-git/doc/guix.texi:9331 msgid "@file{share/my-app/file}." msgstr "nach @file{share/my-app/datei}." #. type: defvar #: guix-git/doc/guix.texi:9334 #, no-wrap msgid "vim-build-system" msgstr "vim-build-system" #. type: defvar #: guix-git/doc/guix.texi:9339 msgid "This variable is exported by @code{(guix build-system vim)}. It is an extension of the @code{copy-build-system}, installing Vim and Neovim plugins into locations where these two text editors know to find their plugins, using their packpaths." msgstr "Diese Variable wird vom Modul @code{(guix build-system vim)} exportiert. Sie ist eine Erweiterung des @code{copy-build-system}, mit der Plugins für Vim und Neovim an die Stelle installiert werden, die von den beiden Texteditoren als „packpaths“ erwartet wird." #. type: defvar #: guix-git/doc/guix.texi:9344 msgid "Packages which are prefixed with @code{vim-} will be installed in Vim's packpath, while those prefixed with @code{neovim-} will be installed in Neovim's packpath. If there is a @code{doc} directory with the plugin then helptags will be generated automatically." msgstr "Pakete, die mit dem Präfix @code{vim-} beginnen, werden in den Packpath von Vim installiert und die, die mit dem Präfix @code{neovim-} beginnen, werden in den Packpath von Neovim installiert. Wenn ein Verzeichnis @code{doc} beim Plugin enthalten ist, werden automatisch Helptags generiert." #. type: defvar #: guix-git/doc/guix.texi:9346 msgid "There are a couple of keywords added with the @code{vim-build-system}:" msgstr "Für @code{vim-build-system} stehen ein paar mehr Schlüsselwörter zur Verfügung:" #. type: item #: guix-git/doc/guix.texi:9347 #, no-wrap msgid "With @code{plugin-name} it is possible to set the name of the plugin." msgstr "Mit @code{plugin-name} ist es möglich, den Namen des Plugins anzugeben." #. type: itemize #: guix-git/doc/guix.texi:9351 msgid "While by default this is set to the name and version of the package, it is often more helpful to set this to name which the upstream author calls their plugin. This is the name used for @command{:packadd} from inside Vim." msgstr "Vorgegeben ist hierfür der Name und die Version des Pakets, aber hilfreicher ist, den Namen anzugeben, der vom Autor beim Anbieter für das Plugin hinterlegt wurde. Dieser Name ist der, den Sie in Vim für @command{:packadd} benutzen." #. type: item #: guix-git/doc/guix.texi:9351 #, no-wrap msgid "With @code{install-plan} it is possible to augment the built-in" msgstr "" #. type: itemize #: guix-git/doc/guix.texi:9356 msgid "install-plan of the @code{vim-build-system}. This is particularly helpful if you have files which should be installed in other locations. For more information about using the @code{install-plan}, see the @code{copy-build-system} (@pxref{Build Systems, @code{copy-build-system}})." msgstr "" #. type: item #: guix-git/doc/guix.texi:9356 #, no-wrap msgid "With @code{#:vim} it is possible to add this package to Vim's packpath," msgstr "" #. type: itemize #: guix-git/doc/guix.texi:9359 msgid "in addition to if it is added automatically because of the @code{vim-} prefix in the package's name." msgstr "" #. type: item #: guix-git/doc/guix.texi:9359 #, no-wrap msgid "With @code{#:neovim} it is possible to add this package to Neovim's" msgstr "" #. type: itemize #: guix-git/doc/guix.texi:9362 msgid "packpath, in addition to if it is added automatically because of the @code{neovim-} prefix in the package's name." msgstr "" #. type: item #: guix-git/doc/guix.texi:9362 #, no-wrap msgid "With @code{#:mode} it is possible to adjust the path which the plugin is" msgstr "" #. type: itemize #: guix-git/doc/guix.texi:9367 msgid "installed into. By default the plugin is installed into @code{start} and other options are available, including @code{opt}. Adding a plugin into @code{opt} will mean you will need to run, for example, @command{:packadd foo} to load the @code{foo} plugin from inside of Vim." msgstr "" #. type: cindex #: guix-git/doc/guix.texi:9370 #, no-wrap msgid "Clojure (programming language)" msgstr "Clojure (Programmiersprache)" #. type: cindex #: guix-git/doc/guix.texi:9371 #, no-wrap msgid "simple Clojure build system" msgstr "einfaches Clojure-Erstellungssystem" #. type: defvar #: guix-git/doc/guix.texi:9372 #, no-wrap msgid "clojure-build-system" msgstr "clojure-build-system" #. type: defvar #: guix-git/doc/guix.texi:9377 msgid "This variable is exported by @code{(guix build-system clojure)}. It implements a simple build procedure for @uref{https://clojure.org/, Clojure} packages using plain old @code{compile} in Clojure. Cross-compilation is not supported yet." msgstr "Diese Variable wird durch das Modul @code{(guix build-system clojure)} exportiert. Sie implementiert eine einfache Erstellungsprozedur für in @uref{https://clojure.org/, Clojure} geschriebene Pakete mit dem guten alten @code{compile} in Clojure. Cross-Kompilieren wird noch nicht unterstützt." #. type: defvar #: guix-git/doc/guix.texi:9381 msgid "It adds @code{clojure}, @code{icedtea} and @code{zip} to the set of inputs. Different packages can be specified with the @code{#:clojure}, @code{#:jdk} and @code{#:zip} parameters, respectively." msgstr "Das Erstellungssystem fügt @code{clojure}, @code{icedtea} und @code{zip} zu den Eingaben hinzu. Sollen stattdessen andere Pakete benutzt werden, können diese jeweils mit den Parametern @code{#:clojure}, @code{#:jdk} und @code{#:zip} spezifiziert werden." #. type: defvar #: guix-git/doc/guix.texi:9387 msgid "A list of source directories, test directories and jar names can be specified with the @code{#:source-dirs}, @code{#:test-dirs} and @code{#:jar-names} parameters, respectively. Compile directory and main class can be specified with the @code{#:compile-dir} and @code{#:main-class} parameters, respectively. Other parameters are documented below." msgstr "Eine Liste der Quellcode-Verzeichnisse, Test-Verzeichnisse und Namen der Jar-Dateien können jeweils über die Parameter @code{#:source-dirs}, @code{#:test-dirs} und @code{#:jar-names} angegeben werden. Das Verzeichnis, in das kompiliert wird, sowie die Hauptklasse können jeweils mit den Parametern @code{#:compile-dir} und @code{#:main-class} angegeben werden. Andere Parameter sind im Folgenden dokumentiert." #. type: defvar #: guix-git/doc/guix.texi:9390 msgid "This build system is an extension of @code{ant-build-system}, but with the following phases changed:" msgstr "Dieses Erstellungssystem ist eine Erweiterung des @code{ant-build-system}, bei der aber die folgenden Phasen geändert wurden:" #. type: item #: guix-git/doc/guix.texi:9393 guix-git/doc/guix.texi:9969 #: guix-git/doc/guix.texi:10154 guix-git/doc/guix.texi:10203 #: guix-git/doc/guix.texi:10311 guix-git/doc/guix.texi:42815 #: guix-git/doc/guix.texi:47410 #, no-wrap msgid "build" msgstr "build" #. type: table #: guix-git/doc/guix.texi:9402 msgid "This phase calls @code{compile} in Clojure to compile source files and runs @command{jar} to create jars from both source files and compiled files according to the include list and exclude list specified in @code{#:aot-include} and @code{#:aot-exclude}, respectively. The exclude list has priority over the include list. These lists consist of symbols representing Clojure libraries or the special keyword @code{#:all} representing all Clojure libraries found under the source directories. The parameter @code{#:omit-source?} decides if source should be included into the jars." msgstr "Diese Phase ruft @code{compile} in Clojure auf, um Quelldateien zu kompilieren, und führt @command{jar} aus, um Jar-Dateien aus sowohl Quelldateien als auch kompilierten Dateien zu erzeugen, entsprechend der jeweils in @code{#:aot-include} und @code{#:aot-exclude} festgelegten Listen aus in der Menge der Quelldateien eingeschlossenen und ausgeschlossenen Bibliotheken. Die Ausschlussliste hat Vorrang vor der Einschlussliste. Diese Listen setzen sich aus Symbolen zusammen, die für Clojure-Bibliotheken stehen oder dem Schlüsselwort @code{#:all} entsprechen, was für alle im Quellverzeichis gefundenen Clojure-Bibliotheken steht. Der Parameter @code{#:omit-source?} entscheidet, ob Quelldateien in die Jar-Archive aufgenommen werden sollen." #. type: item #: guix-git/doc/guix.texi:9403 guix-git/doc/guix.texi:9973 #: guix-git/doc/guix.texi:10158 guix-git/doc/guix.texi:10316 #, no-wrap msgid "check" msgstr "check" #. type: table #: guix-git/doc/guix.texi:9410 msgid "This phase runs tests according to the include list and exclude list specified in @code{#:test-include} and @code{#:test-exclude}, respectively. Their meanings are analogous to that of @code{#:aot-include} and @code{#:aot-exclude}, except that the special keyword @code{#:all} now stands for all Clojure libraries found under the test directories. The parameter @code{#:tests?} decides if tests should be run." msgstr "In dieser Phase werden Tests auf die durch Einschluss- und Ausschlussliste @code{#:test-include} bzw. @code{#:test-exclude} angegebenen Dateien ausgeführt. Deren Bedeutung ist analog zu @code{#:aot-include} und @code{#:aot-exclude}, außer dass das besondere Schlüsselwort @code{#:all} jetzt für alle Clojure-Bibliotheken in den Test-Verzeichnissen steht. Der Parameter @code{#:tests?} entscheidet, ob Tests ausgeführt werden sollen." #. type: item #: guix-git/doc/guix.texi:9411 guix-git/doc/guix.texi:9979 #: guix-git/doc/guix.texi:10164 guix-git/doc/guix.texi:10207 #: guix-git/doc/guix.texi:10322 #, no-wrap msgid "install" msgstr "install" #. type: table #: guix-git/doc/guix.texi:9413 msgid "This phase installs all jars built previously." msgstr "In dieser Phase werden alle zuvor erstellten Jar-Dateien installiert." #. type: defvar #: guix-git/doc/guix.texi:9416 msgid "Apart from the above, this build system also contains an additional phase:" msgstr "Zusätzlich zu den bereits angegebenen enthält dieses Erstellungssystem noch eine weitere Phase." #. type: item #: guix-git/doc/guix.texi:9419 #, no-wrap msgid "install-doc" msgstr "install-doc" #. type: table #: guix-git/doc/guix.texi:9424 msgid "This phase installs all top-level files with base name matching @code{%doc-regex}. A different regex can be specified with the @code{#:doc-regex} parameter. All files (recursively) inside the documentation directories specified in @code{#:doc-dirs} are installed as well." msgstr "Diese Phase installiert alle Dateien auf oberster Ebene, deren Basisnamen ohne Verzeichnisangabe zu @code{%doc-regex} passen. Ein anderer regulärer Ausdruck kann mit dem Parameter @code{#:doc-regex} verwendet werden. All die so gefundenen oder (rekursiv) in den mit @code{#:doc-dirs} angegebenen Dokumentationsverzeichnissen liegenden Dateien werden installiert." #. type: defvar #: guix-git/doc/guix.texi:9427 #, no-wrap msgid "cmake-build-system" msgstr "cmake-build-system" #. type: defvar #: guix-git/doc/guix.texi:9431 msgid "This variable is exported by @code{(guix build-system cmake)}. It implements the build procedure for packages using the @url{https://www.cmake.org, CMake build tool}." msgstr "Diese Variable wird von @code{(guix build-system cmake)} exportiert. Sie implementiert die Erstellungsprozedur für Pakete, die das @url{https://www.cmake.org, CMake-Erstellungswerkzeug} benutzen." #. type: defvar #: guix-git/doc/guix.texi:9435 msgid "It automatically adds the @code{cmake} package to the set of inputs. Which package is used can be specified with the @code{#:cmake} parameter." msgstr "Das Erstellungssystem fügt automatisch das Paket @code{cmake} zu den Eingaben hinzu. Welches Paket benutzt wird, kann mit dem Parameter @code{#:cmake} geändert werden." #. type: defvar #: guix-git/doc/guix.texi:9442 msgid "The @code{#:configure-flags} parameter is taken as a list of flags passed to the @command{cmake} command. The @code{#:build-type} parameter specifies in abstract terms the flags passed to the compiler; it defaults to @code{\"RelWithDebInfo\"} (short for ``release mode with debugging information''), which roughly means that code is compiled with @code{-O2 -g}, as is the case for Autoconf-based packages by default." msgstr "Der Parameter @code{#:configure-flags} wird als Liste von Befehlszeilenoptionen aufgefasst, die an den Befehl @command{cmake} übergeben werden. Der Parameter @code{#:build-type} abstrahiert, welche Befehlszeilenoptionen dem Compiler übergeben werden; der Vorgabewert ist @code{\"RelWithDebInfo\"} (kurz für „release mode with debugging information“), d.h.@: kompiliert wird für eine Produktivumgebung und Informationen zur Fehlerbehebung liegen bei, was ungefähr @code{-O2 -g} entspricht, wie bei der Vorgabe für Autoconf-basierte Pakete." #. type: defvar #: guix-git/doc/guix.texi:9444 #, no-wrap msgid "composer-build-system" msgstr "composer-build-system" #. type: defvar #: guix-git/doc/guix.texi:9448 msgid "This variable is exported by @code{(guix build-system composer)}. It implements the build procedure for packages using @url{https://getcomposer.org/, Composer}, the PHP package manager." msgstr "Diese Variable wird von @code{(guix build-system composer)} exportiert. Sie implementiert die Erstellungsprozedur für Pakete, die auf die PHP-Paketverwaltung @url{https://getcomposer.org/, Composer} zugeschnitten sind." #. type: defvar #: guix-git/doc/guix.texi:9451 msgid "It automatically adds the @code{php} package to the set of inputs. Which package is used can be specified with the @code{#:php} parameter." msgstr "Das Erstellungssystem fügt automatisch das Paket @code{php} zu den Eingaben hinzu. Welches Paket benutzt wird, kann mit dem Parameter @code{#:php} geändert werden." #. type: defvar #: guix-git/doc/guix.texi:9456 msgid "The @code{#:test-target} parameter is used to control which script is run for the tests. By default, the @code{test} script is run if it exists. If the script does not exist, the build system will run @code{phpunit} from the source directory, assuming there is a @file{phpunit.xml} file." msgstr "Mit dem Parameter @code{#:test-target} stellen Sie ein, welcher Skript die Tests laufen lässt. Vorgegeben ist, den Skript @code{test} zu starten, wenn er existiert. Wenn der Skript @emph{nicht} existiert, wird durch das Erstellungssystem @code{phpunit} im Quellverzeichnis ausgeführt, sofern eine Datei @file{phpunit.xml} existiert." #. type: defvar #: guix-git/doc/guix.texi:9458 #, no-wrap msgid "dune-build-system" msgstr "dune-build-system" #. type: defvar #: guix-git/doc/guix.texi:9465 msgid "This variable is exported by @code{(guix build-system dune)}. It supports builds of packages using @uref{https://dune.build/, Dune}, a build tool for the OCaml programming language. It is implemented as an extension of the @code{ocaml-build-system} which is described below. As such, the @code{#:ocaml} and @code{#:findlib} parameters can be passed to this build system." msgstr "Diese Variable wird vom Modul @code{(guix build-system dune)} exportiert. Sie unterstützt es, Pakete mit @uref{https://dune.build/, Dune} zu erstellen, einem Erstellungswerkzeug für die Programmiersprache OCaml, und ist als Erweiterung des unten beschriebenen OCaml-Erstellungssystems @code{ocaml-build-system} implementiert. Als solche können auch die Parameter @code{#:ocaml} und @code{#:findlib} an dieses Erstellungssystem übergeben werden." #. type: defvar #: guix-git/doc/guix.texi:9469 msgid "It automatically adds the @code{dune} package to the set of inputs. Which package is used can be specified with the @code{#:dune} parameter." msgstr "Das Erstellungssystem fügt automatisch das Paket @code{dune} zu den Eingaben hinzu. Welches Paket benutzt wird, kann mit dem Parameter @code{#:dune} geändert werden." #. type: defvar #: guix-git/doc/guix.texi:9473 msgid "There is no @code{configure} phase because dune packages typically don't need to be configured. The @code{#:build-flags} parameter is taken as a list of flags passed to the @code{dune} command during the build." msgstr "Es gibt keine @code{configure}-Phase, weil dune-Pakete typischerweise nicht konfiguriert werden müssen. Vom Parameter @code{#:build-flags} wird erwartet, dass es sich um eine Liste von Befehlszeilenoptionen handelt, die zur Erstellung an den @code{dune}-Befehl übergeben werden." #. type: defvar #: guix-git/doc/guix.texi:9477 msgid "The @code{#:jbuild?} parameter can be passed to use the @code{jbuild} command instead of the more recent @code{dune} command while building a package. Its default value is @code{#f}." msgstr "Der Parameter @code{#:jbuild?} kann übergeben werden, um den Befehl @code{jbuild} anstelle des neueren @code{dune}-Befehls aufzurufen, um das Paket zu erstellen. Der Vorgabewert ist @code{#f}." #. type: defvar #: guix-git/doc/guix.texi:9482 msgid "The @code{#:package} parameter can be passed to specify a package name, which is useful when a package contains multiple packages and you want to build only one of them. This is equivalent to passing the @code{-p} argument to @code{dune}." msgstr "Mit dem Parameter @code{#:package} kann ein Paketname angegeben werden, wenn im Paket mehrere Pakete enthalten sind und nur eines davon erstellt werden soll. Es ist äquivalent dazu, die Befehlszeilenoption @code{-p} an @code{dune} zu übergeben." #. type: defvar #: guix-git/doc/guix.texi:9485 #, no-wrap msgid "elm-build-system" msgstr "elm-build-system" #. type: defvar #: guix-git/doc/guix.texi:9489 msgid "This variable is exported by @code{(guix build-system elm)}. It implements a build procedure for @url{https://elm-lang.org, Elm} packages similar to @samp{elm install}." msgstr "Diese Variable wird von @code{(guix build-system elm)} exportiert. Sie implementiert eine Erstellungsprozedur für @url{https://elm-lang.org, Elm-Pakete} ähnlich wie @samp{elm install}." #. type: defvar #: guix-git/doc/guix.texi:9497 msgid "The build system adds an Elm compiler package to the set of inputs. The default compiler package (currently @code{elm-sans-reactor}) can be overridden using the @code{#:elm} argument. Additionally, Elm packages needed by the build system itself are added as implicit inputs if they are not already present: to suppress this behavior, use the @code{#:implicit-elm-package-inputs?} argument, which is primarily useful for bootstrapping." msgstr "Mit dem Erstellungssystem wird ein Elm-Compiler-Paket zu der Menge der Eingaben hinzugefügt. Anstelle des vorgegebenen Compiler-Pakets (derzeit ist es @code{elm-sans-reactor}) kann das stattdessen zu verwendende Compiler-Paket im Argument @code{#:elm} angegeben werden. Zudem werden Elm-Pakete, die vom Erstellungssystem selbst vorausgesetzt werden, als implizite Eingaben hinzugefügt, wenn sie noch keine sind; wenn Sie das verhindern möchten, übergeben Sie das Argument @code{#:implicit-elm-package-inputs?}, was in erster Linie zum Bootstrapping gebraucht wird." #. type: defvar #: guix-git/doc/guix.texi:9501 msgid "The @code{\"dependencies\"} and @code{\"test-dependencies\"} in an Elm package's @file{elm.json} file correspond to @code{propagated-inputs} and @code{inputs}, respectively." msgstr "Die Einträge für @code{\"dependencies\"} und @code{\"test-dependencies\"} in der Datei @file{elm.json} eines Elm-Pakets werden jeweils mit @code{propagated-inputs} bzw.@: @code{inputs} wiedergegeben." #. type: defvar #: guix-git/doc/guix.texi:9505 msgid "Elm requires a particular structure for package names: @pxref{Elm Packages} for more details, including utilities provided by @code{(guix build-system elm)}." msgstr "In Elm wird von Paketnamen eine bestimmte Struktur verlangt. Siehe @ref{Elm Packages} für mehr Details auch zu den Werkzeugen in @code{(guix build-system elm)}, um damit umzugehen." #. type: defvar #: guix-git/doc/guix.texi:9507 msgid "There are currently a few noteworthy limitations to @code{elm-build-system}:" msgstr "Derzeit gelten für @code{elm-build-system} ein paar nennenswerte Einschränkungen:" #. type: itemize #: guix-git/doc/guix.texi:9518 msgid "The build system is focused on @dfn{packages} in the Elm sense of the word: Elm @dfn{projects} which declare @code{@{ \"type\": \"package\" @}} in their @file{elm.json} files. Using @code{elm-build-system} to build Elm @dfn{applications} (which declare @code{@{ \"type\": \"application\" @}}) is possible, but requires ad-hoc modifications to the build phases. For examples, see the definitions of the @code{elm-todomvc} example application and the @code{elm} package itself (because the front-end for the @samp{elm reactor} command is an Elm application)." msgstr "Der Fokus für das Erstellungssystem liegt auf dem, was in Elm @dfn{Pakete} genannt wird, also auf @dfn{Projekten in Elm}, für die @code{@{ \"type\": \"package\" @}} in deren @file{elm.json}-Dateien deklariert wurde. Wenn jemand mit @code{elm-build-system} @dfn{Elm-Anwendungen} erstellen möchte (für die @code{@{ \"type\": \"application\" @}} deklariert wurde), ist das möglich, aber es müssen eigens Änderungen an den Erstellungsphasen vorgenommen werden. Beispiele sind in den Definitionen der Beispielanwendung @code{elm-todomvc} und im @code{elm}-Paket selbst zu finden (weil die Web-Oberfläche des Befehls @samp{elm reactor} eine Elm-Anwendung ist)." #. type: itemize #: guix-git/doc/guix.texi:9530 msgid "Elm supports multiple versions of a package coexisting simultaneously under @env{ELM_HOME}, but this does not yet work well with @code{elm-build-system}. This limitation primarily affects Elm applications, because they specify exact versions for their dependencies, whereas Elm packages specify supported version ranges. As a workaround, the example applications mentioned above use the @code{patch-application-dependencies} procedure provided by @code{(guix build elm-build-system)} to rewrite their @file{elm.json} files to refer to the package versions actually present in the build environment. Alternatively, Guix package transformations (@pxref{Defining Package Variants}) could be used to rewrite an application's entire dependency graph." msgstr "In Elm können mehrere Versionen desselben Pakets nebeneinander unter @env{ELM_HOME} vorkommen, aber mit @code{elm-build-system} klappt das noch nicht so gut. Diese Einschränkung gilt vor allem für Elm-Anwendungen, weil dort die Versionen ihrer Abhängigkeiten genau festgelegt werden, während Elm-Pakete mit einem Bereich von Versionen umgehen können. Ein Ausweg wird in der oben genannten Beispielanwendung genommen, nämlich benutzt sie die Prozedur @code{patch-application-dependencies} aus @code{(guix build elm-build-system)}, um die @file{elm.json}-Dateien umzuschreiben, damit sie sich stattdessen auf die Paketversionen beziehen, die es in der Erstellungsumgebung tatsächlich gibt. Alternativ könnte man auch auf Guix-Paketumwandlungen zurückgreifen (siehe @ref{Defining Package Variants}), um den gesamten Abhängigkeitsgraphen einer Anwendung umzuschreiben." #. type: itemize #: guix-git/doc/guix.texi:9536 msgid "We are not yet able to run tests for Elm projects because neither @url{https://github.com/mpizenberg/elm-test-rs, @command{elm-test-rs}} nor the Node.js-based @url{https://github.com/rtfeldman/node-test-runner, @command{elm-test}} runner has been packaged for Guix yet." msgstr "Wir sind noch nicht so weit, dass wir den Testkatalog für Elm-Projekte durchlaufen lassen könnten, weil es in Guix weder ein Paket für @url{https://github.com/mpizenberg/elm-test-rs, @command{elm-test-rs}} noch für den Node.js-basierten @url{https://github.com/rtfeldman/node-test-runner, @command{elm-test}} gibt, um Testläufe durchzuführen." #. type: defvar #: guix-git/doc/guix.texi:9539 #, no-wrap msgid "go-build-system" msgstr "go-build-system" #. type: defvar #: guix-git/doc/guix.texi:9544 msgid "This variable is exported by @code{(guix build-system go)}. It implements a build procedure for Go packages using the standard @url{https://golang.org/cmd/go/#hdr-Compile_packages_and_dependencies, Go build mechanisms}." msgstr "Diese Variable wird vom Modul @code{(guix build-system go)} exportiert. Mit ihr ist eine Erstellungsprozedur für Go-Pakete implementiert, die dem normalen @url{https://golang.org/cmd/go/#hdr-Compile_packages_and_dependencies, Go-Erstellungsmechanismus} entspricht." #. type: defvar #: guix-git/doc/guix.texi:9555 msgid "The user is expected to provide a value for the key @code{#:import-path} and, in some cases, @code{#:unpack-path}. The @url{https://golang.org/doc/code.html#ImportPaths, import path} corresponds to the file system path expected by the package's build scripts and any referring packages, and provides a unique way to refer to a Go package. It is typically based on a combination of the package source code's remote URI and file system hierarchy structure. In some cases, you will need to unpack the package's source code to a different directory structure than the one indicated by the import path, and @code{#:unpack-path} should be used in such cases." msgstr "Beim Aufruf wird ein Wert für den Schlüssel @code{#:import-path} und manchmal auch für @code{#:unpack-path} erwartet. Der @url{https://golang.org/doc/code.html#ImportPaths, „import path“} entspricht dem Dateisystempfad, den die Erstellungsskripts des Pakets und darauf Bezug nehmende Pakete erwarten; durch ihn wird ein Go-Paket eindeutig bezeichnet. Typischerweise setzt er sich aus einer Kombination der entfernten URI des Paketquellcodes und der Dateisystemhierarchie zusammen. Manchmal ist es nötig, den Paketquellcode in ein anderes als das vom „import path“ bezeichnete Verzeichnis zu entpacken; diese andere Verzeichnisstruktur sollte dann als @code{#:unpack-path} angegeben werden." #. type: defvar #: guix-git/doc/guix.texi:9560 msgid "Packages that provide Go libraries should install their source code into the built output. The key @code{#:install-source?}, which defaults to @code{#t}, controls whether or not the source code is installed. It can be set to @code{#f} for packages that only provide executable files." msgstr "Pakete, die Go-Bibliotheken zur Verfügung stellen, sollten ihren Quellcode auch in die Erstellungsausgabe installieren. Der Schlüssel @code{#:install-source?}, sein Vorgabewert ist @code{#t}, steuert, ob Quellcode installiert wird. Bei Paketen, die nur ausführbare Dateien liefern, kann der Wert auf @code{#f} gesetzt werden." #. type: defvar #: guix-git/doc/guix.texi:9567 msgid "Packages can be cross-built, and if a specific architecture or operating system is desired then the keywords @code{#:goarch} and @code{#:goos} can be used to force the package to be built for that architecture and operating system. The combinations known to Go can be found @url{https://golang.org/doc/install/source#environment, in their documentation}." msgstr "Cross-Erstellungen von Paketen sind möglich. Wenn für eine bestimmte Architektur oder ein bestimmtes Betriebssystem erstellt werden muss, kann man mit den Schlüsselwörtern @code{#:goarch} und @code{#:goos} erzwingen, dass das Paket für diese Architektur und dieses Betriebssystem erstellt wird. Die für Go nutzbaren Kombinationen sind @url{https://golang.org/doc/install/source#environment, in der Go-Dokumentation} nachlesbar." #. type: defvar #: guix-git/doc/guix.texi:9570 msgid "The key @code{#:go} can be used to specify the Go compiler package with which to build the package." msgstr "Nach dem Schlüsselwort @code{#:go} kann festgelegt werden, mit welchem Go-Compiler-Paket das Paket erstellt werden soll." #. type: defvar #: guix-git/doc/guix.texi:9573 #, no-wrap msgid "glib-or-gtk-build-system" msgstr "glib-or-gtk-build-system" #. type: defvar #: guix-git/doc/guix.texi:9576 msgid "This variable is exported by @code{(guix build-system glib-or-gtk)}. It is intended for use with packages making use of GLib or GTK+." msgstr "Diese Variable wird vom Modul @code{(guix build-system glib-or-gtk)} exportiert. Sie ist für Pakete gedacht, die GLib oder GTK benutzen." #. type: defvar #: guix-git/doc/guix.texi:9579 msgid "This build system adds the following two phases to the ones defined by @code{gnu-build-system}:" msgstr "Dieses Erstellungssystem fügt die folgenden zwei Phasen zu denen von @code{gnu-build-system} hinzu:" #. type: item #: guix-git/doc/guix.texi:9581 guix-git/doc/guix.texi:10180 #, no-wrap msgid "glib-or-gtk-wrap" msgstr "glib-or-gtk-wrap" #. type: table #: guix-git/doc/guix.texi:9588 msgid "The phase @code{glib-or-gtk-wrap} ensures that programs in @file{bin/} are able to find GLib ``schemas'' and @uref{https://developer.gnome.org/gtk3/stable/gtk-running.html, GTK+ modules}. This is achieved by wrapping the programs in launch scripts that appropriately set the @env{XDG_DATA_DIRS} and @env{GTK_PATH} environment variables." msgstr "Die Phase @code{glib-or-gtk-wrap} stellt sicher, dass Programme in @file{bin/} in der Lage sind, GLib-„Schemata“ und @uref{https://developer.gnome.org/gtk3/stable/gtk-running.html, GTK-Module} zu finden. Dazu wird für das Programm ein Wrapper-Skript erzeugt, dass das eigentliche Programm mit den richtigen Werten für die Umgebungsvariablen @env{XDG_DATA_DIRS} und @env{GTK_PATH} aufruft." #. type: table #: guix-git/doc/guix.texi:9595 msgid "It is possible to exclude specific package outputs from that wrapping process by listing their names in the @code{#:glib-or-gtk-wrap-excluded-outputs} parameter. This is useful when an output is known not to contain any GLib or GTK+ binaries, and where wrapping would gratuitously add a dependency of that output on GLib and GTK+." msgstr "Es ist möglich, bestimmte Paketausgaben von diesem Wrapping-Prozess auszunehmen, indem Sie eine Liste ihrer Namen im Parameter @code{#:glib-or-gtk-wrap-excluded-outputs} angeben. Das ist nützlich, wenn man von einer Ausgabe weiß, dass sie keine Binärdateien enthält, die GLib oder GTK benutzen, und diese Ausgabe durch das Wrappen ohne Not eine weitere Abhängigkeit von GLib und GTK bekäme." #. type: item #: guix-git/doc/guix.texi:9596 guix-git/doc/guix.texi:10184 #, no-wrap msgid "glib-or-gtk-compile-schemas" msgstr "glib-or-gtk-compile-schemas" #. type: table #: guix-git/doc/guix.texi:9604 msgid "The phase @code{glib-or-gtk-compile-schemas} makes sure that all @uref{https://developer.gnome.org/gio/stable/glib-compile-schemas.html, GSettings schemas} of GLib are compiled. Compilation is performed by the @command{glib-compile-schemas} program. It is provided by the package @code{glib:bin} which is automatically imported by the build system. The @code{glib} package providing @command{glib-compile-schemas} can be specified with the @code{#:glib} parameter." msgstr "Mit der Phase @code{glib-or-gtk-compile-schemas} wird sichergestellt, dass alle @uref{https://developer.gnome.org/gio/stable/glib-compile-schemas.html, GSettings-Schemata} für GLib kompiliert werden. Dazu wird das Programm @command{glib-compile-schemas} ausgeführt. Es kommt aus dem Paket @code{glib:bin}, was automatisch vom Erstellungssystem importiert wird. Welches @code{glib}-Paket dieses @command{glib-compile-schemas} bereitstellt, kann mit dem Parameter @code{#:glib} spezifiziert werden." #. type: defvar #: guix-git/doc/guix.texi:9607 msgid "Both phases are executed after the @code{install} phase." msgstr "Beide Phasen finden nach der @code{install}-Phase statt." #. type: defvar #: guix-git/doc/guix.texi:9609 #, no-wrap msgid "guile-build-system" msgstr "guile-build-system" #. type: defvar #: guix-git/doc/guix.texi:9616 msgid "This build system is for Guile packages that consist exclusively of Scheme code and that are so lean that they don't even have a makefile, let alone a @file{configure} script. It compiles Scheme code using @command{guild compile} (@pxref{Compilation,,, guile, GNU Guile Reference Manual}) and installs the @file{.scm} and @file{.go} files in the right place. It also installs documentation." msgstr "Dieses Erstellungssystem ist für Guile-Pakete gedacht, die nur aus Scheme-Code bestehen und so schlicht sind, dass sie nicht einmal ein Makefile und erst recht keinen @file{configure}-Skript enthalten. Hierzu wird Scheme-Code mit @command{guild compile} kompiliert (siehe @ref{Compilation,,, guile, Referenzhandbuch zu GNU Guile}) und die @file{.scm}- und @file{.go}-Dateien an den richtigen Pfad installiert. Auch Dokumentation wird installiert." #. type: defvar #: guix-git/doc/guix.texi:9619 msgid "This build system supports cross-compilation by using the @option{--target} option of @samp{guild compile}." msgstr "Das Erstellungssystem unterstützt Cross-Kompilieren durch die Befehlszeilenoption @option{--target} für @samp{guild compile}." #. type: defvar #: guix-git/doc/guix.texi:9622 msgid "Packages built with @code{guile-build-system} must provide a Guile package in their @code{native-inputs} field." msgstr "Mit @code{guile-build-system} erstellte Pakete müssen ein Guile-Paket in ihrem @code{native-inputs}-Feld aufführen." #. type: defvar #: guix-git/doc/guix.texi:9624 #, no-wrap msgid "julia-build-system" msgstr "julia-build-system" #. type: defvar #: guix-git/doc/guix.texi:9631 msgid "This variable is exported by @code{(guix build-system julia)}. It implements the build procedure used by @uref{https://julialang.org/, julia} packages, which essentially is similar to running @samp{julia -e 'using Pkg; Pkg.add(package)'} in an environment where @env{JULIA_LOAD_PATH} contains the paths to all Julia package inputs. Tests are run by calling @code{/test/runtests.jl}." msgstr "Diese Variable wird vom Modul @code{(guix build-system julia)} exportiert. Sie entspricht einer Implementierung der durch @uref{https://julialang.org/, Julia-Pakete} genutzten Erstellungsprozedur und verhält sich im Prinzip so, wie wenn man @samp{julia -e 'using Pkg; Pkg.add(paket)'} in einer Umgebung ausführt, in der die Umgebungsvariable @env{JULIA_LOAD_PATH} die Pfade aller Julia-Pakete unter den Paketeingaben enthält. Tests werden durch Aufruf von @code{/test/runtests.jl} ausgeführt." #. type: defvar #: guix-git/doc/guix.texi:9636 msgid "The Julia package name and uuid is read from the file @file{Project.toml}. These values can be overridden by passing the argument @code{#:julia-package-name} (which must be correctly capitalized) or @code{#:julia-package-uuid}." msgstr "Der Name des Julia-Pakets und seine UUID werden aus der Datei @file{Project.toml} ausgelesen. Durch Angabe des Arguments @code{#:julia-package-name} (die Groß-/Kleinschreibung muss stimmen) bzw.@: durch @code{#:julia-package-uuid} können andere Werte verwendet werden." #. type: defvar #: guix-git/doc/guix.texi:9640 msgid "Julia packages usually manage their binary dependencies via @code{JLLWrappers.jl}, a Julia package that creates a module (named after the wrapped library followed by @code{_jll.jl}." msgstr "Julia-Pakete verwalten ihre Abhängigkeiten zu Binärdateien für gewöhnlich mittels @code{JLLWrappers.jl}, einem Julia-Paket, das ein Modul erzeugt (benannt nach der Bibliothek, die zugänglich gemacht wird, gefolgt von @code{_jll.jl})." #. type: defvar #: guix-git/doc/guix.texi:9645 msgid "To add the binary path @code{_jll.jl} packages, you need to patch the files under @file{src/wrappers/}, replacing the call to the macro @code{JLLWrappers.@@generate_wrapper_header}, adding as a second argument containing the store path the binary." msgstr "Um die @code{_jll.jl}-Pakete mit den Pfaden zu Binärdateien hinzuzufügen, müssen Sie die Dateien in @file{src/wrappers/} patchen, um dem Aufruf an das Makro @code{JLLWrappers.@@generate_wrapper_header} noch ein zweites Argument mit dem Store-Pfad der Binärdatei mitzugeben." #. type: defvar #: guix-git/doc/guix.texi:9649 msgid "As an example, in the MbedTLS Julia package, we add a build phase (@pxref{Build Phases}) to insert the absolute file name of the wrapped MbedTLS package:" msgstr "Zum Beispiel fügen wir für das MbedTLS-Julia-Paket eine Erstellungsphase hinzu (siehe @ref{Build Phases}), in der der absolute Dateiname des zugänglich gemachten MbedTLS-Pakets hinzugefügt wird:" #. type: lisp #: guix-git/doc/guix.texi:9661 #, no-wrap msgid "" "(add-after 'unpack 'override-binary-path\n" " (lambda* (#:key inputs #:allow-other-keys)\n" " (for-each (lambda (wrapper)\n" " (substitute* wrapper\n" " ((\"generate_wrapper_header.*\")\n" " (string-append\n" " \"generate_wrapper_header(\\\"MbedTLS\\\", \\\"\"\n" " (assoc-ref inputs \"mbedtls\") \"\\\")\\n\"))))\n" " ;; There's a Julia file for each platform, override them all.\n" " (find-files \"src/wrappers/\" \"\\\\.jl$\"))))\n" msgstr "" "(add-after 'unpack 'override-binary-path\n" " (lambda* (#:key inputs #:allow-other-keys)\n" " (for-each (lambda (wrapper)\n" " (substitute* wrapper\n" " ((\"generate_wrapper_header.*\")\n" " (string-append\n" " \"generate_wrapper_header(\\\"MbedTLS\\\", \\\"\"\n" " (assoc-ref inputs \"mbedtls\") \"\\\")\\n\"))))\n" " ;; Es gibt eine Julia-Datei für jede Plattform,\n" " ;; wir ändern sie alle.\n" " (find-files \"src/wrappers/\" \"\\\\.jl$\"))))\n" #. type: defvar #: guix-git/doc/guix.texi:9667 msgid "Some older packages that aren't using @file{Project.toml} yet, will require this file to be created, too. It is internally done if the arguments @code{#:julia-package-name} and @code{#:julia-package-uuid} are provided." msgstr "Für manche ältere Pakete, die noch keine @file{Project.toml} benutzen, muss auch diese Datei erstellt werden. Das geht intern vonstatten, sofern die Argumente @code{#:julia-package-name} und @code{#:julia-package-uuid} übergeben werden." #. type: defvar #: guix-git/doc/guix.texi:9669 #, no-wrap msgid "maven-build-system" msgstr "maven-build-system" #. type: defvar #: guix-git/doc/guix.texi:9676 msgid "This variable is exported by @code{(guix build-system maven)}. It implements a build procedure for @uref{https://maven.apache.org, Maven} packages. Maven is a dependency and lifecycle management tool for Java. A user of Maven specifies dependencies and plugins in a @file{pom.xml} file that Maven reads. When Maven does not have one of the dependencies or plugins in its repository, it will download them and use them to build the package." msgstr "Diese Variable wird vom Modul @code{(guix build-system maven)} exportiert. Darin wird eine Erstellungsprozedur für @uref{https://maven.apache.org, Maven-Pakete} implementiert. Maven ist ein Werkzeug zur Verwaltung der Abhängigkeiten und des „Lebenszyklus“ eines Java-Projekts. Um Maven zu benutzen, werden Abhängigkeiten und Plugins in einer Datei @file{pom.xml} angegeben, die Maven ausliest. Wenn Maven Abhängigkeiten oder Plugins fehlen, lädt es sie herunter und erstellt damit das Paket." #. type: defvar #: guix-git/doc/guix.texi:9686 msgid "The maven build system ensures that maven will not try to download any dependency by running in offline mode. Maven will fail if a dependency is missing. Before running Maven, the @file{pom.xml} (and subprojects) are modified to specify the version of dependencies and plugins that match the versions available in the guix build environment. Dependencies and plugins must be installed in the fake maven repository at @file{lib/m2}, and are symlinked into a proper repository before maven is run. Maven is instructed to use that repository for the build and installs built artifacts there. Changed files are copied to the @file{lib/m2} directory of the package output." msgstr "Durch Guix’ Maven-Erstellungssystem wird gewährleistet, dass Maven im Offline-Modus läuft und somit nicht versucht, Abhängigkeiten herunterzuladen. Maven wird in einen Fehler laufen, wenn eine Abhängigkeit fehlt. Bevor Maven ausgeführt wird, wird der Inhalt der @file{pom.xml} (auch in Unterprojekten) so verändert, dass darin die diejenige Version von Abhängigkeiten und Plugins aufgeführt wird, die in Guix’ Erstellungsumgebung vorliegt. Abhängigkeiten und Plugins müssen in das vorgetäuschte Maven-Repository unter @file{lib/m2} installiert werden; bevor Maven ausgeführt wird, werden symbolische Verknüpfungen in ein echtes Repository hergestellt. Maven wird angewiesen, dieses Repository für die Erstellung zu verwenden und installiert erstellte Artefakte dorthin. Geänderte Dateien werden ins Verzeichnis @file{lib/m2} der Paketausgabe kopiert." #. type: defvar #: guix-git/doc/guix.texi:9689 msgid "You can specify a @file{pom.xml} file with the @code{#:pom-file} argument, or let the build system use the default @file{pom.xml} file in the sources." msgstr "Sie können eine @file{pom.xml}-Datei über das Argument @code{#:pom-file} festlegen oder die vom Erstellungssystem vorgegebene @file{pom.xml}-Datei im Quellverzeichnis verwenden lassen." #. type: defvar #: guix-git/doc/guix.texi:9695 msgid "In case you need to specify a dependency's version manually, you can use the @code{#:local-packages} argument. It takes an association list where the key is the groupId of the package and its value is an association list where the key is the artifactId of the package and its value is the version you want to override in the @file{pom.xml}." msgstr "Sollten Sie die Version einer Abhängigkeit manuell angeben müssen, können Sie dafür das Argument @code{#:local-packages} benutzen. Es nimmt eine assoziative Liste entgegen, deren Schlüssel jeweils die @code{groupId} des Pakets und deren Wert eine assoziative Liste ist, deren Schlüssel wiederum die @code{artifactId} des Pakets und deren Wert die einzusetzende Version in @file{pom.xml} ist." #. type: defvar #: guix-git/doc/guix.texi:9701 msgid "Some packages use dependencies or plugins that are not useful at runtime nor at build time in Guix. You can alter the @file{pom.xml} file to remove them using the @code{#:exclude} argument. Its value is an association list where the key is the groupId of the plugin or dependency you want to remove, and the value is a list of artifactId you want to remove." msgstr "Manche Pakete haben Abhängigkeiten oder Plugins, die weder zur Laufzeit noch zur Erstellungszeit in Guix sinnvoll sind. Sie können sie entfernen, indem Sie das @code{#:exclude}-Argument verwenden, um die @file{pom.xml}-Datei zu bearbeiten. Sein Wert ist eine assoziative Liste, deren Schlüssel die @code{groupId} des Plugins oder der Abhängigkeit ist, die Sie entfernen möchten, und deren Wert eine Liste von zu entfernenden @code{artifactId}-Vorkommen angibt." #. type: defvar #: guix-git/doc/guix.texi:9704 msgid "You can override the default @code{jdk} and @code{maven} packages with the corresponding argument, @code{#:jdk} and @code{#:maven}." msgstr "Sie können statt der vorgegebenen @code{jdk}- und @code{maven}-Pakete andere Pakete mit dem entsprechenden Argument, @code{#:jdk} bzw.@: @code{#:maven}, verwenden." #. type: defvar #: guix-git/doc/guix.texi:9709 msgid "The @code{#:maven-plugins} argument is a list of maven plugins used during the build, with the same format as the @code{inputs} fields of the package declaration. Its default value is @code{(default-maven-plugins)} which is also exported." msgstr "Mit dem Argument @code{#:maven-plugins} geben Sie eine Liste von Maven-Plugins zur Nutzung während der Erstellung an, im gleichen Format wie das @code{inputs}-Feld der Paketdeklaration. Der Vorgabewert ist @code{(default-maven-plugins)}; diese Variable wird exportiert, falls Sie sie benutzen möchten." #. type: defvar #: guix-git/doc/guix.texi:9711 #, no-wrap msgid "minetest-mod-build-system" msgstr "minetest-mod-build-system" #. type: defvar #: guix-git/doc/guix.texi:9717 msgid "This variable is exported by @code{(guix build-system minetest)}. It implements a build procedure for @uref{https://www.minetest.net, Minetest} mods, which consists of copying Lua code, images and other resources to the location Minetest searches for mods. The build system also minimises PNG images and verifies that Minetest can load the mod without errors." msgstr "Diese Variable wird vom Modul @code{(guix build-system minetest)} exportiert. Mit ihr ist ein Erstellungssystem für Mods für @uref{https://www.minetest.net, Minetest} implementiert, was bedeutet, Lua-Code, Bilder und andere Ressourcen an den Ort zu kopieren, wo Minetest nach Mods sucht. Das Erstellungssystem verkleinert auch PNG-Bilder und prüft, dass Minetest die Mod fehlerfrei laden kann." #. type: defvar #: guix-git/doc/guix.texi:9719 #, no-wrap msgid "minify-build-system" msgstr "minify-build-system" #. type: defvar #: guix-git/doc/guix.texi:9722 msgid "This variable is exported by @code{(guix build-system minify)}. It implements a minification procedure for simple JavaScript packages." msgstr "Diese Variable wird vom Modul @code{(guix build-system minify)} exportiert. Sie implementiert eine Prozedur zur Minifikation einfacher JavaScript-Pakete." #. type: defvar #: guix-git/doc/guix.texi:9728 msgid "It adds @code{uglify-js} to the set of inputs and uses it to compress all JavaScript files in the @file{src} directory. A different minifier package can be specified with the @code{#:uglify-js} parameter, but it is expected that the package writes the minified code to the standard output." msgstr "Es fügt @code{uglify-js} zur Menge der Eingaben hinzu und komprimiert damit alle JavaScript-Dateien im @file{src}-Verzeichnis. Ein anderes Programm zur Minifikation kann verwendet werden, indem es mit dem Parameter @code{#:uglify-js} angegeben wird; es wird erwartet, dass das angegebene Paket den minifizierten Code auf der Standardausgabe ausgibt." #. type: defvar #: guix-git/doc/guix.texi:9732 msgid "When the input JavaScript files are not all located in the @file{src} directory, the parameter @code{#:javascript-files} can be used to specify a list of file names to feed to the minifier." msgstr "Wenn die Eingabe-JavaScript-Dateien nicht alle im @file{src}-Verzeichnis liegen, kann mit dem Parameter @code{#:javascript-files} eine Liste der Dateinamen übergeben werden, auf die das Minifikationsprogramm aufgerufen wird." #. type: defvar #: guix-git/doc/guix.texi:9734 #, no-wrap msgid "mozilla-build-system" msgstr "mozilla-build-system" #. type: defvar #: guix-git/doc/guix.texi:9741 msgid "This variable is exported by @code{(guix build-system mozilla)}. It sets the @code{--target} and @code{--host} configuration flags to what software developed by Mozilla expects -- due to historical reasons, Mozilla software expects @code{--host} to be the system that is cross-compiled from and @code{--target} to be the system that is cross-compiled to, contrary to the standard Autotools conventions." msgstr "Diese Variable wird vom Modul @code{(guix build-system mozilla)} exportiert. Durch Sie werden die configure-Befehlszeilenoptionen @code{--target} und @code{--host} so verwendet, wie es bei von Mozilla entwickelter Software erwartet wird@tie{}– aus historischen Gründen wird bei Mozilla-Software für @code{--host} das System verlangt, von dem aus cross-kompiliert wird, und für @code{--target} das System, für das cross-kompiliert wird, entgegen der bei Autotools üblichen Konvention." #. type: defvar #: guix-git/doc/guix.texi:9743 #, no-wrap msgid "ocaml-build-system" msgstr "ocaml-build-system" #. type: defvar #: guix-git/doc/guix.texi:9749 msgid "This variable is exported by @code{(guix build-system ocaml)}. It implements a build procedure for @uref{https://ocaml.org, OCaml} packages, which consists of choosing the correct set of commands to run for each package. OCaml packages can expect many different commands to be run. This build system will try some of them." msgstr "Diese Variable wird vom Modul @code{(guix build-system ocaml)} exportiert. Mit ihr ist ein Erstellungssystem für @uref{https://ocaml.org, OCaml-Pakete} implementiert, was bedeutet, dass es die richtigen auszuführenden Befehle für das jeweilige Paket auswählt. OCaml-Pakete können sehr unterschiedliche Befehle erwarten. Dieses Erstellungssystem probiert manche davon durch." #. type: defvar #: guix-git/doc/guix.texi:9759 msgid "When the package has a @file{setup.ml} file present at the top-level, it will run @code{ocaml setup.ml -configure}, @code{ocaml setup.ml -build} and @code{ocaml setup.ml -install}. The build system will assume that this file was generated by @uref{http://oasis.forge.ocamlcore.org/, OASIS} and will take care of setting the prefix and enabling tests if they are not disabled. You can pass configure and build flags with the @code{#:configure-flags} and @code{#:build-flags}. The @code{#:test-flags} key can be passed to change the set of flags used to enable tests. The @code{#:use-make?} key can be used to bypass this system in the build and install phases." msgstr "Wenn im Paket eine Datei @file{setup.ml} auf oberster Ebene vorhanden ist, wird @code{ocaml setup.ml -configure}, @code{ocaml setup.ml -build} und @code{ocaml setup.ml -install} ausgeführt. Das Erstellungssystem wird annehmen, dass die Datei durch @uref{http://oasis.forge.ocamlcore.org/, OASIS} erzeugt wurde, und wird das Präfix setzen und Tests aktivieren, wenn diese nicht abgeschaltet wurden. Sie können Befehlszeilenoptionen zum Konfigurieren und Erstellen mit den Parametern @code{#:configure-flags} und @code{#:build-flags} übergeben. Der Schlüssel @code{#:test-flags} kann übergeben werden, um die Befehlszeilenoptionen zu ändern, mit denen die Tests aktiviert werden. Mit dem Parameter @code{#:use-make?} kann dieses Erstellungssystem für die build- und install-Phasen abgeschaltet werden." #. type: defvar #: guix-git/doc/guix.texi:9764 msgid "When the package has a @file{configure} file, it is assumed that it is a hand-made configure script that requires a different argument format than in the @code{gnu-build-system}. You can add more flags with the @code{#:configure-flags} key." msgstr "Verfügt das Paket über eine @file{configure}-Datei, wird angenommen, dass diese von Hand geschrieben wurde mit einem anderen Format für Argumente als bei einem Skript des @code{gnu-build-system}. Sie können weitere Befehlszeilenoptionen mit dem Schlüssel @code{#:configure-flags} hinzufügen." #. type: defvar #: guix-git/doc/guix.texi:9768 msgid "When the package has a @file{Makefile} file (or @code{#:use-make?} is @code{#t}), it will be used and more flags can be passed to the build and install phases with the @code{#:make-flags} key." msgstr "Falls dem Paket ein @file{Makefile} beiliegt (oder @code{#:use-make?} auf @code{#t} gesetzt wurde), wird dieses benutzt und weitere Befehlszeilenoptionen können mit dem Schlüssel @code{#:make-flags} zu den build- und install-Phasen hinzugefügt werden." #. type: defvar #: guix-git/doc/guix.texi:9776 msgid "Finally, some packages do not have these files and use a somewhat standard location for its build system. In that case, the build system will run @code{ocaml pkg/pkg.ml} or @code{ocaml pkg/build.ml} and take care of providing the path to the required findlib module. Additional flags can be passed via the @code{#:build-flags} key. Install is taken care of by @command{opam-installer}. In this case, the @code{opam} package must be added to the @code{native-inputs} field of the package definition." msgstr "Letztlich gibt es in manchen Pakete keine solchen Dateien, sie halten sich aber an bestimmte Konventionen, wo ihr eigenes Erstellungssystem zu finden ist. In diesem Fall führt Guix’ OCaml-Erstellungssystem @code{ocaml pkg/pkg.ml} oder @code{ocaml pkg/build.ml} aus und kümmert sich darum, dass der Pfad zu dem benötigten findlib-Modul passt. Weitere Befehlszeilenoptionen können über den Schlüssel @code{#:build-flags} übergeben werden. Um die Installation kümmert sich @command{opam-installer}. In diesem Fall muss das @code{opam}-Paket im @code{native-inputs}-Feld der Paketdefinition stehen." #. type: defvar #: guix-git/doc/guix.texi:9784 msgid "Note that most OCaml packages assume they will be installed in the same directory as OCaml, which is not what we want in guix. In particular, they will install @file{.so} files in their module's directory, which is usually fine because it is in the OCaml compiler directory. In guix though, these libraries cannot be found and we use @env{CAML_LD_LIBRARY_PATH}. This variable points to @file{lib/ocaml/site-lib/stubslibs} and this is where @file{.so} libraries should be installed." msgstr "Beachten Sie, dass die meisten OCaml-Pakete davon ausgehen, dass sie in dasselbe Verzeichnis wie OCaml selbst installiert werden, was wir in Guix aber nicht so haben wollen. Solche Pakete installieren ihre @file{.so}-Dateien in das Verzeichnis ihres Moduls, was für die meisten anderen Einrichtungen funktioniert, weil es im OCaml-Compilerverzeichnis liegt. Jedoch können so in Guix die Bibliotheken nicht gefunden werden, deswegen benutzen wir @env{CAML_LD_LIBRARY_PATH}. Diese Umgebungsvariable zeigt auf @file{lib/ocaml/site-lib/stubslibs} und dorthin sollten @file{.so}-Bibliotheken installiert werden." #. type: defvar #: guix-git/doc/guix.texi:9786 #, no-wrap msgid "python-build-system" msgstr "python-build-system" #. type: defvar #: guix-git/doc/guix.texi:9791 msgid "This variable is exported by @code{(guix build-system python)}. It implements the more or less standard build procedure used by Python packages, which consists in running @code{python setup.py build} and then @code{python setup.py install --prefix=/gnu/store/@dots{}}." msgstr "Diese Variable wird vom Modul @code{(guix build-system python)} exportiert. Sie implementiert mehr oder weniger die konventionelle Erstellungsprozedur, wie sie für Python-Pakete üblich ist, d.h.@: erst wird @code{python setup.py build} ausgeführt und dann @code{python setup.py install --prefix=/gnu/store/…}." #. type: defvar #: guix-git/doc/guix.texi:9796 msgid "For packages that install stand-alone Python programs under @code{bin/}, it takes care of wrapping these programs so that their @env{GUIX_PYTHONPATH} environment variable points to all the Python libraries they depend on." msgstr "Für Pakete, die eigenständige Python-Programme nach @code{bin/} installieren, sorgt dieses Erstellungssystem dafür, dass die Programme in ein Wrapper-Skript verpackt werden, welches die eigentlichen Programme mit einer Umgebungsvariablen @env{GUIX_PYTHONPATH} aufruft, die alle Python-Bibliotheken auflistet, von denen die Programme abhängen." #. type: defvar #: guix-git/doc/guix.texi:9802 msgid "Which Python package is used to perform the build can be specified with the @code{#:python} parameter. This is a useful way to force a package to be built for a specific version of the Python interpreter, which might be necessary if the package is only compatible with a single interpreter version." msgstr "Welches Python-Paket benutzt wird, um die Erstellung durchzuführen, kann mit dem Parameter @code{#:python} bestimmt werden. Das ist nützlich, wenn wir erzwingen wollen, dass ein Paket mit einer bestimmten Version des Python-Interpretierers arbeitet. Das kann nötig sein, wenn das Programm nur mit einer einzigen Interpretiererversion kompatibel ist." #. type: defvar #: guix-git/doc/guix.texi:9807 msgid "By default guix calls @code{setup.py} under control of @code{setuptools}, much like @command{pip} does. Some packages are not compatible with setuptools (and pip), thus you can disable this by setting the @code{#:use-setuptools?} parameter to @code{#f}." msgstr "Standardmäßig ruft Guix @code{setup.py} auf, was zu @code{setuptools} gehört, ähnlich wie es auch @command{pip} tut. Manche Pakete sind mit setuptools (und pip) inkompatibel, deswegen können Sie diese Einstellung abschalten, indem Sie den Parameter @code{#:use-setuptools?} auf @code{#f} setzen." #. type: defvar #: guix-git/doc/guix.texi:9813 msgid "If a @code{\"python\"} output is available, the package is installed into it instead of the default @code{\"out\"} output. This is useful for packages that include a Python package as only a part of the software, and thus want to combine the phases of @code{python-build-system} with another build system. Python bindings are a common usecase." msgstr "Wenn eine der Ausgaben @code{\"python\"} heißt, wird das Paket dort hinein installiert und @emph{nicht} in die vorgegebene Ausgabe @code{\"out\"}. Das ist für Pakete gedacht, bei denen ein Python-Paket nur einen Teil der Software ausmacht, man also die Phasen des @code{python-build-system} mit einem anderen Erstellungssystem zusammen verwenden wollen könnte. Oft kann man das bei Anbindungen für Python gebrauchen." #. type: defvar #: guix-git/doc/guix.texi:9815 #, no-wrap msgid "pyproject-build-system" msgstr "pyproject-build-system" #. type: defvar #: guix-git/doc/guix.texi:9820 msgid "This is a variable exported by @code{guix build-system pyproject}. It is based on @var{python-build-system}, and adds support for @file{pyproject.toml} and @url{https://peps.python.org/pep-0517/, PEP 517}. It also supports a variety of build backends and test frameworks." msgstr "Diese Variable wird vom Modul @code{guix build-system pyproject} exportiert. Es basiert auf @var{python-build-system} und fügt Unterstützung für @file{pyproject.toml} und @url{https://peps.python.org/pep-0517/, PEP 517} hinzu. Auch kommt Unterstützung für verschiedene Build Backends und Testrahmen hinzu." #. type: defvar #: guix-git/doc/guix.texi:9822 msgid "The API is slightly different from @var{python-build-system}:" msgstr "Die Programmierschnittstelle unterscheidet sich leicht von @var{python-build-system}:" #. type: itemize #: guix-git/doc/guix.texi:9825 msgid "@code{#:use-setuptools?} and @code{#:test-target} is removed." msgstr "@code{#:use-setuptools?} und @code{#:test-target} wurden entfernt." #. type: itemize #: guix-git/doc/guix.texi:9828 msgid "@code{#:build-backend} is added. It defaults to @code{#false} and will try to guess the appropriate backend based on @file{pyproject.toml}." msgstr "@code{#:build-backend} ist neu. Die Vorgabe dafür ist @code{#false}, so dass das richtige Backend wenn möglich aufgrund von @file{pyproject.toml} bestimmt wird." #. type: itemize #: guix-git/doc/guix.texi:9831 msgid "@code{#:test-backend} is added. It defaults to @code{#false} and will guess an appropriate test backend based on what is available in package inputs." msgstr "@code{#:test-backend} ist neu. Die Vorgabe dafür ist @code{#false}, so dass das richtige Test-Backend wenn möglich aufgrund der Paketeingaben gewählt wird." #. type: itemize #: guix-git/doc/guix.texi:9835 msgid "@code{#:test-flags} is added. The default is @code{'()}. These flags are passed as arguments to the test command. Note that flags for verbose output is always enabled on supported backends." msgstr "@code{#:test-flags} ist neu. Vorgegeben ist @code{'()}. Die Optionen darin werden als Befehlszeilenargumente an den Test-Befehl übermittelt. Beachten Sie, dass ausführliche Ausgaben immer aktiviert werden, falls dies für das Backend implementiert ist." #. type: defvar #: guix-git/doc/guix.texi:9841 msgid "It is considered ``experimental'' in that the implementation details are not set in stone yet, however users are encouraged to try it for new Python projects (even those using @file{setup.py}). The API is subject to change, but any breaking changes in the Guix channel will be dealt with." msgstr "Wir stufen es als „experimentell“ ein, weil die Details der Implementierung noch @emph{nicht} in Stein gemeißelt sind. Dennoch würden wir es begrüßen, wenn Sie es für neue Python-Projekte verwenden (auch für solche, die @file{setup.py} haben). Die Programmierschnittstelle wird sich noch ändern, aber wir werden uns um im Guix-Kanal aufkommende Probleme kümmern." #. type: defvar #: guix-git/doc/guix.texi:9844 msgid "Eventually this build system will be deprecated and merged back into @var{python-build-system}, probably some time in 2024." msgstr "Schlussendlich wird dieses Erstellungssystem für veraltet erklärt werden und in @var{python-build-system} aufgehen, wahrscheinlich irgendwann im Jahr 2024." #. type: defvar #: guix-git/doc/guix.texi:9846 #, no-wrap msgid "perl-build-system" msgstr "perl-build-system" #. type: defvar #: guix-git/doc/guix.texi:9858 msgid "This variable is exported by @code{(guix build-system perl)}. It implements the standard build procedure for Perl packages, which either consists in running @code{perl Build.PL --prefix=/gnu/store/@dots{}}, followed by @code{Build} and @code{Build install}; or in running @code{perl Makefile.PL PREFIX=/gnu/store/@dots{}}, followed by @code{make} and @code{make install}, depending on which of @code{Build.PL} or @code{Makefile.PL} is present in the package distribution. Preference is given to the former if both @code{Build.PL} and @code{Makefile.PL} exist in the package distribution. This preference can be reversed by specifying @code{#t} for the @code{#:make-maker?} parameter." msgstr "Diese Variable wird vom Modul @code{(guix build-system perl)} exportiert. Mit ihr wird die Standard-Erstellungsprozedur für Perl-Pakete implementiert, welche entweder darin besteht, @code{perl Build.PL --prefix=/gnu/store/…} gefolgt von @code{Build} und @code{Build install} auszuführen, oder @code{perl Makefile.PL PREFIX=/gnu/store/…} gefolgt von @code{make} und @code{make install} auszuführen, je nachdem, ob eine Datei @code{Build.PL} oder eine Datei @code{Makefile.PL} in der Paketdistribution vorliegt. Den Vorrang hat erstere, wenn sowohl @code{Build.PL} als auch @code{Makefile.PL} in der Paketdistribution existieren. Der Vorrang kann umgekehrt werden, indem @code{#t} für den Parameter @code{#:make-maker?} angegeben wird." #. type: defvar #: guix-git/doc/guix.texi:9862 msgid "The initial @code{perl Makefile.PL} or @code{perl Build.PL} invocation passes flags specified by the @code{#:make-maker-flags} or @code{#:module-build-flags} parameter, respectively." msgstr "Der erste Aufruf von @code{perl Makefile.PL} oder @code{perl Build.PL} übergibt die im Parameter @code{#:make-maker-flags} bzw. @code{#:module-build-flags} angegebenen Befehlszeilenoptionen, je nachdem, was verwendet wird." #. type: defvar #: guix-git/doc/guix.texi:9864 msgid "Which Perl package is used can be specified with @code{#:perl}." msgstr "Welches Perl-Paket dafür benutzt wird, kann mit @code{#:perl} angegeben werden." #. type: defvar #: guix-git/doc/guix.texi:9866 #, no-wrap msgid "renpy-build-system" msgstr "renpy-build-system" #. type: defvar #: guix-git/doc/guix.texi:9870 msgid "This variable is exported by @code{(guix build-system renpy)}. It implements the more or less standard build procedure used by Ren'py games, which consists of loading @code{#:game} once, thereby creating bytecode for it." msgstr "Diese Variable wird vom Modul @code{(guix build-system renpy)} exportiert. Sie implementiert mehr oder weniger die herkömmliche Erstellungsprozedur, die für Ren’py-Spiele benutzt wird. Das bedeutet, das @code{#:game} wird einmal geladen, wodurch Bytecode dafür erzeugt wird." #. type: defvar #: guix-git/doc/guix.texi:9873 msgid "It further creates a wrapper script in @code{bin/} and a desktop entry in @code{share/applications}, both of which can be used to launch the game." msgstr "Des Weiteren wird ein Wrapper-Skript in @code{bin/} und eine *.desktop-Datei in @code{share/applications} erzeugt. Mit beiden davon kann man das Spiel starten." #. type: defvar #: guix-git/doc/guix.texi:9877 msgid "Which Ren'py package is used can be specified with @code{#:renpy}. Games can also be installed in outputs other than ``out'' by using @code{#:output}." msgstr "Welches Ren’py-Paket benutzt wird, gibt man mit @code{#:renpy} an. Spiele können auch in andere Ausgaben als in „out“ installiert werden, indem man @code{#:output} benutzt." #. type: defvar #: guix-git/doc/guix.texi:9879 #, no-wrap msgid "qt-build-system" msgstr "qt-build-system" #. type: defvar #: guix-git/doc/guix.texi:9882 msgid "This variable is exported by @code{(guix build-system qt)}. It is intended for use with applications using Qt or KDE." msgstr "Diese Variable wird vom Modul @code{(guix build-system qt)} exportiert. Sie ist für Anwendungen gedacht, die Qt oder KDE benutzen." #. type: defvar #: guix-git/doc/guix.texi:9885 msgid "This build system adds the following two phases to the ones defined by @code{cmake-build-system}:" msgstr "Dieses Erstellungssystem fügt die folgenden zwei Phasen zu denen von @code{cmake-build-system} hinzu:" #. type: item #: guix-git/doc/guix.texi:9887 #, no-wrap msgid "check-setup" msgstr "check-setup" #. type: table #: guix-git/doc/guix.texi:9894 msgid "The phase @code{check-setup} prepares the environment for running the checks as commonly used by Qt test programs. For now this only sets some environment variables: @code{QT_QPA_PLATFORM=offscreen}, @code{DBUS_FATAL_WARNINGS=0} and @code{CTEST_OUTPUT_ON_FAILURE=1}." msgstr "Die Phase @code{check-setup} bereitet die Umgebung für Überprüfungen vor, wie sie von Qt-Test-Programmen üblicherweise benutzt werden. Zurzeit werden nur manche Umgebungsvariable gesetzt: @code{QT_QPA_PLATFORM=offscreen}, @code{DBUS_FATAL_WARNINGS=0} und @code{CTEST_OUTPUT_ON_FAILURE=1}." #. type: table #: guix-git/doc/guix.texi:9897 msgid "This phase is added before the @code{check} phase. It's a separate phase to ease adjusting if necessary." msgstr "Diese Phase wird vor der @code{check}-Phase hinzugefügt. Es handelt sich um eine eigene Phase, die nach Bedarf angepasst werden kann." #. type: item #: guix-git/doc/guix.texi:9898 #, no-wrap msgid "qt-wrap" msgstr "qt-wrap" #. type: table #: guix-git/doc/guix.texi:9904 msgid "The phase @code{qt-wrap} searches for Qt5 plugin paths, QML paths and some XDG in the inputs and output. In case some path is found, all programs in the output's @file{bin/}, @file{sbin/}, @file{libexec/} and @file{lib/libexec/} directories are wrapped in scripts defining the necessary environment variables." msgstr "In der Phase @code{qt-wrap} wird nach Qt5-Plugin-Pfaden, QML-Pfaden und manchen XDG-Daten in den Ein- und Ausgaben gesucht. Wenn solch ein Pfad gefunden wird, werden für alle Programme in den Verzeichnissen @file{bin/}, @file{sbin/}, @file{libexec/} und @file{lib/libexec/} in der Ausgabe Wrapper-Skripte erzeugt, die die nötigen Umgebungsvariablen definieren." #. type: table #: guix-git/doc/guix.texi:9910 msgid "It is possible to exclude specific package outputs from that wrapping process by listing their names in the @code{#:qt-wrap-excluded-outputs} parameter. This is useful when an output is known not to contain any Qt binaries, and where wrapping would gratuitously add a dependency of that output on Qt, KDE, or such." msgstr "Es ist möglich, bestimmte Paketausgaben von diesem Wrapping-Prozess auszunehmen, indem Sie eine Liste ihrer Namen im Parameter @code{#:qt-wrap-excluded-outputs} angeben. Das ist nützlich, wenn man von einer Ausgabe weiß, dass sie keine Qt-Binärdateien enthält, und diese Ausgabe durch das Wrappen ohne Not eine weitere Abhängigkeit von Qt, KDE oder Ähnlichem bekäme." #. type: table #: guix-git/doc/guix.texi:9912 msgid "This phase is added after the @code{install} phase." msgstr "Diese Phase wird nach der @code{install}-Phase hinzugefügt." #. type: defvar #: guix-git/doc/guix.texi:9915 #, no-wrap msgid "r-build-system" msgstr "r-build-system" #. type: defvar #: guix-git/doc/guix.texi:9923 msgid "This variable is exported by @code{(guix build-system r)}. It implements the build procedure used by @uref{https://r-project.org, R} packages, which essentially is little more than running @samp{R CMD INSTALL --library=/gnu/store/@dots{}} in an environment where @env{R_LIBS_SITE} contains the paths to all R package inputs. Tests are run after installation using the R function @code{tools::testInstalledPackage}." msgstr "Diese Variable wird vom Modul @code{(guix build-system r)} exportiert. Sie entspricht einer Implementierung der durch @uref{https://r-project.org, R-Pakete} genutzten Erstellungsprozedur, die wenig mehr tut, als @samp{R CMD INSTALL --library=/gnu/store/…} in einer Umgebung auszuführen, in der die Umgebungsvariable @env{R_LIBS_SITE} die Pfade aller R-Pakete unter den Paketeingaben enthält. Tests werden nach der Installation mit der R-Funktion @code{tools::testInstalledPackage} ausgeführt." #. type: defvar #: guix-git/doc/guix.texi:9925 #, no-wrap msgid "rakudo-build-system" msgstr "rakudo-build-system" #. type: defvar #: guix-git/doc/guix.texi:9933 msgid "This variable is exported by @code{(guix build-system rakudo)}. It implements the build procedure used by @uref{https://rakudo.org/, Rakudo} for @uref{https://perl6.org/, Perl6} packages. It installs the package to @code{/gnu/store/@dots{}/NAME-VERSION/share/perl6} and installs the binaries, library files and the resources, as well as wrap the files under the @code{bin/} directory. Tests can be skipped by passing @code{#f} to the @code{tests?} parameter." msgstr "Diese Variable wird vom Modul @code{(guix build-system rakudo)} exportiert. Sie implementiert die Erstellungsprozedur, die von @uref{https://rakudo.org/, Rakudo} für @uref{https://perl6.org/, Perl6-Pakete} benutzt wird. Pakete werden ins Verzeichnis @code{/gnu/store/…/NAME-VERSION/share/perl6} abgelegt und Binärdateien, Bibliotheksdateien und Ressourcen werden installiert, zudem werden die Dateien im Verzeichnis @code{bin/} in Wrapper-Skripte verpackt. Tests können übersprungen werden, indem man @code{#f} im Parameter @code{tests?} übergibt." #. type: defvar #: guix-git/doc/guix.texi:9941 msgid "Which rakudo package is used can be specified with @code{rakudo}. Which perl6-tap-harness package used for the tests can be specified with @code{#:prove6} or removed by passing @code{#f} to the @code{with-prove6?} parameter. Which perl6-zef package used for tests and installing can be specified with @code{#:zef} or removed by passing @code{#f} to the @code{with-zef?} parameter." msgstr "Welches rakudo-Paket benutzt werden soll, kann mit dem Parameter @code{rakudo} angegeben werden. Das perl6-tap-harness-Paket, das für die Tests benutzt wird, kann mit @code{#:prove6} ausgewählt werden; es kann auch entfernt werden, indem man @code{#f} für den Parameter @code{with-prove6?} übergibt. Welches perl6-zef-Paket für Tests und Installation verwendet wird, kann mit dem Parameter @code{#:zef} angegeben werden; es kann auch entfernt werden, indem man @code{#f} für den Parameter @code{with-zef?} übergibt." #. type: defvar #: guix-git/doc/guix.texi:9943 #, no-wrap msgid "rebar-build-system" msgstr "rebar-build-system" #. type: defvar #: guix-git/doc/guix.texi:9947 msgid "This variable is exported by @code{(guix build-system rebar)}. It implements a build procedure around @uref{https://rebar3.org,rebar3}, a build system for programs written in the Erlang language." msgstr "Diese Variable wird von @code{(guix build-system rebar)} exportiert. Sie implementiert eine Erstellungsprozedur, die auf @uref{https://rebar3.org,rebar3} aufbaut, einem Erstellungssystem für Programme, die in der Sprache Erlang geschrieben sind." #. type: defvar #: guix-git/doc/guix.texi:9951 msgid "It adds both @code{rebar3} and the @code{erlang} to the set of inputs. Different packages can be specified with the @code{#:rebar} and @code{#:erlang} parameters, respectively." msgstr "Das Erstellungssystem fügt sowohl @code{rebar3} als auch @code{erlang} zu den Eingaben hinzu. Sollen stattdessen andere Pakete benutzt werden, können diese jeweils mit den Parametern @code{#:rebar} und @code{#:erlang} spezifiziert werden." #. type: defvar #: guix-git/doc/guix.texi:9954 msgid "This build system is based on @code{gnu-build-system}, but with the following phases changed:" msgstr "Dieses Erstellungssystem basiert auf @code{gnu-build-system}, bei dem aber die folgenden Phasen geändert wurden:" #. type: item #: guix-git/doc/guix.texi:9957 guix-git/doc/guix.texi:10296 #, no-wrap msgid "unpack" msgstr "unpack" #. type: table #: guix-git/doc/guix.texi:9963 msgid "This phase, after unpacking the source like the @code{gnu-build-system} does, checks for a file @code{contents.tar.gz} at the top-level of the source. If this file exists, it will be unpacked, too. This eases handling of package hosted at @uref{https://hex.pm/}, the Erlang and Elixir package repository." msgstr "Diese Phase entpackt die Quelle wie es auch das @code{gnu-build-system} tut, schaut nach einer Datei @code{contents.tar.gz} auf der obersten Ebene des Quellbaumes und wenn diese existiert, wird auch sie entpackt. Das erleichtert den Umgang mit Paketen, die auf @uref{https://hex.pm/}, der Paketsammlung für Erlang und Elixir, angeboten werden." #. type: item #: guix-git/doc/guix.texi:9964 #, no-wrap msgid "bootstrap" msgstr "bootstrap" #. type: item #: guix-git/doc/guix.texi:9965 guix-git/doc/guix.texi:10148 #: guix-git/doc/guix.texi:10199 guix-git/doc/guix.texi:10306 #, no-wrap msgid "configure" msgstr "configure" #. type: table #: guix-git/doc/guix.texi:9968 msgid "There are no @code{bootstrap} and @code{configure} phase because erlang packages typically don’t need to be configured." msgstr "Die Phasen @code{bootstrap} und @code{configure} fehlen, weil Erlang-Pakete normalerweise nicht konfiguriert werden müssen." #. type: table #: guix-git/doc/guix.texi:9972 msgid "This phase runs @code{rebar3 compile} with the flags listed in @code{#:rebar-flags}." msgstr "In dieser Phase wird @code{rebar3 compile} mit den Befehlszeilenoptionen aus @code{#:rebar-flags} ausgeführt." #. type: table #: guix-git/doc/guix.texi:9978 msgid "Unless @code{#:tests? #f} is passed, this phase runs @code{rebar3 eunit}, or some other target specified with @code{#:test-target}, with the flags listed in @code{#:rebar-flags}," msgstr "Sofern @emph{nicht} @code{#:tests? #f} übergeben wird, wird in dieser Phase @code{rebar3 eunit} ausgeführt oder das Gleiche auf ein anderes bei @code{#:test-target} angegebenes Ziel. Dabei werden die Befehlszeilenoptionen aus @code{#:rebar-flags} übergeben." #. type: table #: guix-git/doc/guix.texi:9982 msgid "This installs the files created in the @i{default} profile, or some other profile specified with @code{#:install-profile}." msgstr "Hier werden die im standardmäßigen Profil @i{default} erzeugten Dateien installiert oder die aus einem mit @code{#:install-profile} angegebenen anderen Profil." #. type: defvar #: guix-git/doc/guix.texi:9986 #, no-wrap msgid "texlive-build-system" msgstr "texlive-build-system" #. type: defvar #: guix-git/doc/guix.texi:9991 msgid "This variable is exported by @code{(guix build-system texlive)}. It is used to build TeX packages in batch mode with a specified engine. The build system sets the @env{TEXINPUTS} variable to find all TeX source files in the inputs." msgstr "Diese Variable wird vom Modul @code{(guix build-system texlive)} exportiert. Mit ihr werden TeX-Pakete in Stapelverarbeitung („batch mode“) mit der angegebenen Engine erstellt. Das Erstellungssystem setzt die Variable @env{TEXINPUTS} so, dass alle TeX-Quelldateien unter den Eingaben gefunden werden können." #. type: defvar #: guix-git/doc/guix.texi:9998 msgid "By default it tries to run @code{luatex} on all @file{.ins} files, and if it fails to find any, on all @file{.dtx} files. A different engine and format can be specified with, respectively, the @code{#:tex-engine} and @code{#:tex-format} arguments. Different build targets can be specified with the @code{#:build-targets} argument, which expects a list of file names." msgstr "Standardmäßig wird versucht, @code{luatex} auf allen Dateien mit der Dateiendung @file{.ins} auszuführen, und wenn keine gefunden werden, wird es auf allen @file{.dtx}-Dateien ausgeführt. Eine andere Engine oder ein anderes Format kann mit dem Argument @code{#:tex-engine} bzw.@: @code{#:tex-format} angegeben werden. Verschiedene Erstellungsziele können mit dem Argument @code{#:build-targets} festgelegt werden, das eine Liste von Dateinamen erwartet." #. type: defvar #: guix-git/doc/guix.texi:10005 msgid "It also generates font metrics (i.e., @file{.tfm} files) out of Metafont files whenever possible. Likewise, it can also create TeX formats (i.e., @file{.fmt} files) listed in the @code{#:create-formats} argument, and generate a symbolic link from @file{bin/} directory to any script located in @file{texmf-dist/scripts/}, provided its file name is listed in @code{#:link-scripts} argument." msgstr "Es werden außerdem Font-Metriken (d.h.@: @file{.tfm}-Dateien) aus Metafont-Dateien erzeugt, wenn möglich. Auch können formatierte Dateien für TeX (d.h.@: @file{.fmt}-Dateien) erzeugt werden, die im Argument @code{#:create-formats} aufzulisten sind, und es wird je eine symbolische Verknüpfung im @file{bin/}-Verzeichnis zu in @file{texmf-dist/scripts/} befindlichen Skripts angelegt, wenn der Name der Datei im Argument @code{#:link-scripts} aufgelistet ist." #. type: defvar #: guix-git/doc/guix.texi:10009 msgid "The build system adds @code{texlive-bin} from @code{(gnu packages tex)} to the native inputs. It can be overridden with the @code{#:texlive-bin} argument." msgstr "Das Erstellungssystem fügt @code{texlive-bin} aus dem Modul @code{(gnu packages tex)} zu den nativen Eingaben hinzu. Das zu benutzende Paket kann mit dem Argument @code{#:texlive-bin} geändert werden." #. type: defvar #: guix-git/doc/guix.texi:10016 msgid "The package @code{texlive-latex-bin}, from the same module, contains most of the tools for building TeX Live packages; for convenience, it is also added by default to the native inputs. However, this can be troublesome when building a dependency of @code{texlive-latex-bin} itself. In this particular situation, the @code{#:texlive-latex-bin?} argument should be set to @code{#f}." msgstr "Das Paket @code{texlive-latex-bin} aus demselben Modul enthält den Großteil der Werkzeuge zum Erstellen von TeX-Live-Paketen; weil es praktisch ist, wird es auch in der Vorgabeeinstellung zu den nativen Eingaben hinzugefügt. Das kann jedoch störend sein, wenn eine Abhängigkeit von @code{texlive-latex-bin} selbst erstellt wird. In diesem speziellen Fall sollten Sie das Argument @code{#:texlive-latex-bin?} auf @code{#f} setzen." #. type: defvar #: guix-git/doc/guix.texi:10018 #, no-wrap msgid "ruby-build-system" msgstr "ruby-build-system" #. type: defvar #: guix-git/doc/guix.texi:10022 msgid "This variable is exported by @code{(guix build-system ruby)}. It implements the RubyGems build procedure used by Ruby packages, which involves running @code{gem build} followed by @code{gem install}." msgstr "Diese Variable wird vom Modul @code{(guix build-system ruby)} exportiert. Sie steht für eine Implementierung der RubyGems-Erstellungsprozedur, die für Ruby-Pakete benutzt wird, wobei @code{gem build} gefolgt von @code{gem install} ausgeführt wird." #. type: defvar #: guix-git/doc/guix.texi:10030 msgid "The @code{source} field of a package that uses this build system typically references a gem archive, since this is the format that Ruby developers use when releasing their software. The build system unpacks the gem archive, potentially patches the source, runs the test suite, repackages the gem, and installs it. Additionally, directories and tarballs may be referenced to allow building unreleased gems from Git or a traditional source release tarball." msgstr "Das @code{source}-Feld eines Pakets, das dieses Erstellungssystem benutzt, verweist typischerweise auf ein Gem-Archiv, weil Ruby-Entwickler dieses Format benutzen, wenn sie ihre Software veröffentlichen. Das Erstellungssystem entpackt das Gem-Archiv, spielt eventuell Patches für den Quellcode ein, führt die Tests aus, verpackt alles wieder in ein Gem-Archiv und installiert dieses. Neben Gem-Archiven darf das Feld auch auf Verzeichnisse und Tarballs verweisen, damit es auch möglich ist, unveröffentlichte Gems aus einem Git-Repository oder traditionelle Quellcode-Veröffentlichungen zu benutzen." #. type: defvar #: guix-git/doc/guix.texi:10034 msgid "Which Ruby package is used can be specified with the @code{#:ruby} parameter. A list of additional flags to be passed to the @command{gem} command can be specified with the @code{#:gem-flags} parameter." msgstr "Welches Ruby-Paket benutzt werden soll, kann mit dem Parameter @code{#:ruby} festgelegt werden. Eine Liste zusätzlicher Befehlszeilenoptionen für den Aufruf des @command{gem}-Befehls kann mit dem Parameter @code{#:gem-flags} angegeben werden." #. type: defvar #: guix-git/doc/guix.texi:10036 #, no-wrap msgid "waf-build-system" msgstr "waf-build-system" #. type: defvar #: guix-git/doc/guix.texi:10042 msgid "This variable is exported by @code{(guix build-system waf)}. It implements a build procedure around the @code{waf} script. The common phases---@code{configure}, @code{build}, and @code{install}---are implemented by passing their names as arguments to the @code{waf} script." msgstr "Diese Variable wird durch das Modul @code{(guix build-system waf)} exportiert. Damit ist eine Erstellungsprozedur rund um das @code{waf}-Skript implementiert. Die üblichen Phasen@tie{}– @code{configure}, @code{build} und @code{install}@tie{}– sind implementiert, indem deren Namen als Argumente an das @code{waf}-Skript übergeben werden." #. type: defvar #: guix-git/doc/guix.texi:10046 msgid "The @code{waf} script is executed by the Python interpreter. Which Python package is used to run the script can be specified with the @code{#:python} parameter." msgstr "Das @code{waf}-Skript wird vom Python-Interpetierer ausgeführt. Mit welchem Python-Paket das Skript ausgeführt werden soll, kann mit dem Parameter @code{#:python} angegeben werden." #. type: defvar #: guix-git/doc/guix.texi:10048 #, no-wrap msgid "zig-build-system" msgstr "zig-build-system" #. type: defvar #: guix-git/doc/guix.texi:10052 msgid "This variable is exported by @code{(guix build-system zig)}. It implements the build procedures for the @uref{https://ziglang.org/, Zig} build system (@command{zig build} command)." msgstr "Diese Variable wird von @code{(guix build-system zig)} exportiert. Sie implementiert die Erstellungsprozeduren für Pakete, die das für @url{https://ziglang.org/, Zig} vorgesehene Erstellungssystem (den Befehl @command{zig build}) benutzen." #. type: defvar #: guix-git/doc/guix.texi:10055 msgid "Selecting this build system adds @code{zig} to the package inputs, in addition to the packages of @code{gnu-build-system}." msgstr "Dieses Erstellungssystem fügt @code{zig} neben den Paketen des @code{gnu-build-system} zu den Paketeingaben hinzu." #. type: defvar #: guix-git/doc/guix.texi:10062 msgid "There is no @code{configure} phase because Zig packages typically do not need to be configured. The @code{#:zig-build-flags} parameter is a list of flags that are passed to the @code{zig} command during the build. The @code{#:zig-test-flags} parameter is a list of flags that are passed to the @code{zig test} command during the @code{check} phase. The default compiler package can be overridden with the @code{#:zig} argument." msgstr "Es gibt keine @code{configure}-Phase, weil Zig-Pakete typischerweise nicht konfiguriert werden müssen. Für den Parameter @code{#:zig-build-flags} geben Sie eine Liste von Befehlszeilenoptionen an, die zur Erstellung an den Befehl @code{zig} übergeben werden. Für den Parameter @code{#:zig-test-flags} geben Sie eine Liste von Befehlszeilenoptionen an, die während der @code{check}-Phase an den Befehl @code{zig test} übergeben werden. Sie können einen anderen Compiler als vorgegeben verwenden, indem Sie das Argument @code{#:zig} angeben." #. type: defvar #: guix-git/doc/guix.texi:10067 msgid "The optional @code{zig-release-type} parameter declares the type of release. Possible values are: @code{safe}, @code{fast}, or @code{small}. The default value is @code{#f}, which causes the release flag to be omitted from the @code{zig} command. That results in a @code{debug} build." msgstr "Mit dem optionalen Parameter @code{zig-release-type} deklarieren Sie, für welche Art von Release optimiert wird. Diese Werte sind möglich: @code{safe} (sicher), @code{fast} (schnell) oder @code{small} (klein). Vorgegeben ist der Wert @code{#f}, durch den kein Release als Befehlszeilenoption an den @code{zig}-Befehl übergeben wird. Dadurch wird eine @code{debug}-Version zur Fehlersuche erstellt." #. type: defvar #: guix-git/doc/guix.texi:10069 #, no-wrap msgid "scons-build-system" msgstr "scons-build-system" #. type: defvar #: guix-git/doc/guix.texi:10075 msgid "This variable is exported by @code{(guix build-system scons)}. It implements the build procedure used by the SCons software construction tool. This build system runs @code{scons} to build the package, @code{scons test} to run tests, and then @code{scons install} to install the package." msgstr "Diese Variable wird vom Modul @code{(guix build-system scons)} exportiert. Sie steht für eine Implementierung der Erstellungsprozedur, die das SCons-Softwarekonstruktionswerkzeug („software construction tool“) benutzt. Das Erstellungssystem führt @code{scons} aus, um das Paket zu erstellen, führt mit @code{scons test} Tests aus und benutzt @code{scons install}, um das Paket zu installieren." #. type: defvar #: guix-git/doc/guix.texi:10082 msgid "Additional flags to be passed to @code{scons} can be specified with the @code{#:scons-flags} parameter. The default build and install targets can be overridden with @code{#:build-targets} and @code{#:install-targets} respectively. The version of Python used to run SCons can be specified by selecting the appropriate SCons package with the @code{#:scons} parameter." msgstr "Zusätzliche Optionen, die an @code{scons} übergeben werden sollen, können mit dem Parameter @code{#:scons-flags} angegeben werden. Die voreingestellten Erstellungs- und Installationsziele können jeweils durch @code{#:build-targets} und @code{#:install-targets} ersetzt werden. Die Python-Version, die benutzt werden soll, um SCons auszuführen, kann festgelegt werden, indem das passende SCons-Paket mit dem Parameter @code{#:scons} ausgewählt wird." #. type: defvar #: guix-git/doc/guix.texi:10084 #, no-wrap msgid "haskell-build-system" msgstr "haskell-build-system" #. type: defvar #: guix-git/doc/guix.texi:10098 msgid "This variable is exported by @code{(guix build-system haskell)}. It implements the Cabal build procedure used by Haskell packages, which involves running @code{runhaskell Setup.hs configure --prefix=/gnu/store/@dots{}} and @code{runhaskell Setup.hs build}. Instead of installing the package by running @code{runhaskell Setup.hs install}, to avoid trying to register libraries in the read-only compiler store directory, the build system uses @code{runhaskell Setup.hs copy}, followed by @code{runhaskell Setup.hs register}. In addition, the build system generates the package documentation by running @code{runhaskell Setup.hs haddock}, unless @code{#:haddock? #f} is passed. Optional Haddock parameters can be passed with the help of the @code{#:haddock-flags} parameter. If the file @code{Setup.hs} is not found, the build system looks for @code{Setup.lhs} instead." msgstr "Diese Variable wird vom Modul @code{(guix build-system haskell)} exportiert. Sie bietet Zugang zur Cabal-Erstellungsprozedur, die von Haskell-Paketen benutzt wird, was bedeutet, @code{runhaskell Setup.hs configure --prefix=/gnu/store/…} und @code{runhaskell Setup.hs build} auszuführen. Statt das Paket mit dem Befehl @code{runhaskell Setup.hs install} zu installieren, benutzt das Erstellungssystem @code{runhaskell Setup.hs copy} gefolgt von @code{runhaskell Setup.hs register}, um keine Bibliotheken im Store-Verzeichnis des Compilers zu speichern, auf dem keine Schreibberechtigung besteht. Zusätzlich generiert das Erstellungssystem Dokumentation durch Ausführen von @code{runhaskell Setup.hs haddock}, außer @code{#:haddock? #f} wurde übergeben. Optional können an Haddock Parameter mit Hilfe des Parameters @code{#:haddock-flags} übergeben werden. Wird die Datei @code{Setup.hs} nicht gefunden, sucht das Erstellungssystem stattdessen nach @code{Setup.lhs}." #. type: defvar #: guix-git/doc/guix.texi:10101 msgid "Which Haskell compiler is used can be specified with the @code{#:haskell} parameter which defaults to @code{ghc}." msgstr "Welcher Haskell-Compiler benutzt werden soll, kann über den @code{#:haskell}-Parameter angegeben werden. Als Vorgabewert verwendet er @code{ghc}." #. type: defvar #: guix-git/doc/guix.texi:10103 #, no-wrap msgid "dub-build-system" msgstr "dub-build-system" #. type: defvar #: guix-git/doc/guix.texi:10108 msgid "This variable is exported by @code{(guix build-system dub)}. It implements the Dub build procedure used by D packages, which involves running @code{dub build} and @code{dub run}. Installation is done by copying the files manually." msgstr "Diese Variable wird vom Modul @code{(guix build-system dub)} exportiert. Sie verweist auf eine Implementierung des Dub-Erstellungssystems, das von D-Paketen benutzt wird. Dabei werden @code{dub build} und @code{dub run} ausgeführt. Die Installation wird durch manuelles Kopieren der Dateien durchgeführt." #. type: defvar #: guix-git/doc/guix.texi:10111 msgid "Which D compiler is used can be specified with the @code{#:ldc} parameter which defaults to @code{ldc}." msgstr "Welcher D-Compiler benutzt wird, kann mit dem Parameter @code{#:ldc} festgelegt werden, was als Vorgabewert @code{ldc} benutzt." #. type: defvar #: guix-git/doc/guix.texi:10114 #, no-wrap msgid "emacs-build-system" msgstr "emacs-build-system" #. type: defvar #: guix-git/doc/guix.texi:10118 msgid "This variable is exported by @code{(guix build-system emacs)}. It implements an installation procedure similar to the packaging system of Emacs itself (@pxref{Packages,,, emacs, The GNU Emacs Manual})." msgstr "Diese Variable wird vom Modul @code{(guix build-system emacs)} exportiert. Darin wird eine Installationsprozedur ähnlich der des Paketsystems von Emacs selbst implementiert (siehe @ref{Packages,,, emacs, The GNU Emacs Manual})." #. type: defvar #: guix-git/doc/guix.texi:10124 msgid "It first creates the @code{@code{package}-autoloads.el} file, then it byte compiles all Emacs Lisp files. Differently from the Emacs packaging system, the Info documentation files are moved to the standard documentation directory and the @file{dir} file is deleted. The Elisp package files are installed directly under @file{share/emacs/site-lisp}." msgstr "Zunächst wird eine Datei @code{@code{Paket}-autoloads.el} erzeugt, dann werden alle Emacs-Lisp-Dateien zu Bytecode kompiliert. Anders als beim Emacs-Paketsystem werden die Info-Dokumentationsdateien in das Standardverzeichnis für Dokumentation verschoben und die Datei @file{dir} gelöscht. Die Dateien des Elisp-Pakets werden direkt in @file{share/emacs/site-lisp} installiert." #. type: defvar #: guix-git/doc/guix.texi:10126 #, no-wrap msgid "font-build-system" msgstr "font-build-system" #. type: defvar #: guix-git/doc/guix.texi:10132 msgid "This variable is exported by @code{(guix build-system font)}. It implements an installation procedure for font packages where upstream provides pre-compiled TrueType, OpenType, etc.@: font files that merely need to be copied into place. It copies font files to standard locations in the output directory." msgstr "Diese Variable wird vom Modul @code{(guix build-system font)} exportiert. Mit ihr steht eine Installationsprozedur für Schriftarten-Pakete zur Verfügung für vom Anbieter vorkompilierte TrueType-, OpenType- und andere Schriftartendateien, die nur an die richtige Stelle kopiert werden müssen. Dieses Erstellungssystem kopiert die Schriftartendateien an den Konventionen folgende Orte im Ausgabeverzeichnis." #. type: defvar #: guix-git/doc/guix.texi:10134 #, no-wrap msgid "meson-build-system" msgstr "meson-build-system" #. type: defvar #: guix-git/doc/guix.texi:10138 msgid "This variable is exported by @code{(guix build-system meson)}. It implements the build procedure for packages that use @url{https://mesonbuild.com, Meson} as their build system." msgstr "Diese Variable wird vom Modul @code{(guix build-system meson)} exportiert. Sie enthält die Erstellungsprozedur für Pakete, die @url{https://mesonbuild.com, Meson} als ihr Erstellungssystem benutzen." #. type: defvar #: guix-git/doc/guix.texi:10142 msgid "It adds both Meson and @uref{https://ninja-build.org/, Ninja} to the set of inputs, and they can be changed with the parameters @code{#:meson} and @code{#:ninja} if needed." msgstr "Mit ihr werden sowohl Meson als auch @uref{https://ninja-build.org/, Ninja} zur Menge der Eingaben hinzugefügt; die Pakete dafür können mit den Parametern @code{#:meson} und @code{#:ninja} geändert werden, wenn nötig." #. type: defvar #: guix-git/doc/guix.texi:10145 msgid "This build system is an extension of @code{gnu-build-system}, but with the following phases changed to some specific for Meson:" msgstr "Dieses Erstellungssystem ist eine Erweiterung für das @code{gnu-build-system}, aber mit Änderungen an den folgenden Phasen, die Meson-spezifisch sind:" #. type: table #: guix-git/doc/guix.texi:10153 msgid "The phase runs @code{meson} with the flags specified in @code{#:configure-flags}. The flag @option{--buildtype} is always set to @code{debugoptimized} unless something else is specified in @code{#:build-type}." msgstr "Diese Phase führt den @code{meson}-Befehl mit den in @code{#:configure-flags} angegebenen Befehlszeilenoptionen aus. Die Befehlszeilenoption @option{--build-type} wird immer auf @code{debugoptimized} gesetzt, solange nichts anderes mit dem Parameter @code{#:build-type} angegeben wurde." #. type: table #: guix-git/doc/guix.texi:10157 msgid "The phase runs @code{ninja} to build the package in parallel by default, but this can be changed with @code{#:parallel-build?}." msgstr "Diese Phase ruft @code{ninja} auf, um das Paket standardmäßig parallel zu erstellen. Die Vorgabeeinstellung, dass parallel erstellt wird, kann verändert werden durch Setzen von @code{#:parallel-build?}." #. type: table #: guix-git/doc/guix.texi:10163 msgid "The phase runs @samp{meson test} with a base set of options that cannot be overridden. This base set of options can be extended via the @code{#:test-options} argument, for example to select or skip a specific test suite." msgstr "Die Phase führt @samp{meson test} mit einer unveränderlichen Grundmenge von Optionen aus. Diese Grundmenge können Sie mit dem Argument @code{#:test-options} erweitern, um zum Beispiel einen bestimmten Testkatalog auszuwählen oder zu überspringen." #. type: table #: guix-git/doc/guix.texi:10166 msgid "The phase runs @code{ninja install} and can not be changed." msgstr "Diese Phase führt @code{ninja install} aus und kann nicht verändert werden." #. type: defvar #: guix-git/doc/guix.texi:10169 msgid "Apart from that, the build system also adds the following phases:" msgstr "Dazu fügt das Erstellungssystem noch folgende neue Phasen:" #. type: item #: guix-git/doc/guix.texi:10172 #, no-wrap msgid "fix-runpath" msgstr "fix-runpath" #. type: table #: guix-git/doc/guix.texi:10179 msgid "This phase ensures that all binaries can find the libraries they need. It searches for required libraries in subdirectories of the package being built, and adds those to @code{RUNPATH} where needed. It also removes references to libraries left over from the build phase by @code{meson}, such as test dependencies, that aren't actually required for the program to run." msgstr "In dieser Phase wird sichergestellt, dass alle Binärdateien die von ihnen benötigten Bibliotheken finden können. Die benötigten Bibliotheken werden in den Unterverzeichnissen des Pakets, das erstellt wird, gesucht, und zum @code{RUNPATH} hinzugefügt, wann immer es nötig ist. Auch werden diejenigen Referenzen zu Bibliotheken aus der Erstellungsphase wieder entfernt, die bei @code{meson} hinzugefügt wurden, aber eigentlich zur Laufzeit nicht gebraucht werden, wie Abhängigkeiten nur für Tests." #. type: table #: guix-git/doc/guix.texi:10183 guix-git/doc/guix.texi:10187 msgid "This phase is the phase provided by @code{glib-or-gtk-build-system}, and it is not enabled by default. It can be enabled with @code{#:glib-or-gtk?}." msgstr "Diese Phase ist dieselbe, die auch im @code{glib-or-gtk-build-system} zur Verfügung gestellt wird, und mit Vorgabeeinstellungen wird sie nicht durchlaufen. Wenn sie gebraucht wird, kann sie mit dem Parameter @code{#:glib-or-gtk?} aktiviert werden." #. type: defvar #: guix-git/doc/guix.texi:10190 #, no-wrap msgid "linux-module-build-system" msgstr "linux-module-build-system" #. type: defvar #: guix-git/doc/guix.texi:10192 msgid "@code{linux-module-build-system} allows building Linux kernel modules." msgstr "Mit @code{linux-module-build-system} können Linux-Kernelmodule erstellt werden." #. type: defvar #: guix-git/doc/guix.texi:10196 msgid "This build system is an extension of @code{gnu-build-system}, but with the following phases changed:" msgstr "Dieses Erstellungssystem ist eine Erweiterung des @code{gnu-build-system}, bei der aber die folgenden Phasen geändert wurden:" #. type: table #: guix-git/doc/guix.texi:10202 msgid "This phase configures the environment so that the Linux kernel's Makefile can be used to build the external kernel module." msgstr "Diese Phase konfiguriert die Umgebung so, dass das externe Kernel-Modul durch das Makefile des Linux-Kernels erstellt werden kann." #. type: table #: guix-git/doc/guix.texi:10206 msgid "This phase uses the Linux kernel's Makefile in order to build the external kernel module." msgstr "Diese Phase benutzt das Makefile des Linux-Kernels, um das externe Kernel-Modul zu erstellen." #. type: table #: guix-git/doc/guix.texi:10210 msgid "This phase uses the Linux kernel's Makefile in order to install the external kernel module." msgstr "Diese Phase benutzt das Makefile des Linux-Kernels zur Installation des externen Kernel-Moduls." #. type: defvar #: guix-git/doc/guix.texi:10215 msgid "It is possible and useful to specify the Linux kernel to use for building the module (in the @code{arguments} form of a package using the @code{linux-module-build-system}, use the key @code{#:linux} to specify it)." msgstr "Es ist möglich und hilfreich, den für die Erstellung des Moduls zu benutzenden Linux-Kernel anzugeben (in der @code{arguments}-Form eines Pakets, dass das @code{linux-module-build-system} als Erstellungssystem benutzt, wird dazu der Schlüssel @code{#:linux} benutzt)." #. type: defvar #: guix-git/doc/guix.texi:10217 #, no-wrap msgid "node-build-system" msgstr "node-build-system" #. type: defvar #: guix-git/doc/guix.texi:10222 msgid "This variable is exported by @code{(guix build-system node)}. It implements the build procedure used by @uref{https://nodejs.org, Node.js}, which implements an approximation of the @code{npm install} command, followed by an @code{npm test} command." msgstr "Diese Variable wird vom Modul @code{(guix build-system node)} exportiert. Sie stellt eine Implementierung der Erstellungsprozedur von @uref{https://nodejs.org, Node.js} dar, die annäherungsweise der Funktion des Befehls @code{npm install} gefolgt vom Befehl @code{npm test} entspricht." #. type: defvar #: guix-git/doc/guix.texi:10226 msgid "Which Node.js package is used to interpret the @code{npm} commands can be specified with the @code{#:node} parameter which defaults to @code{node}." msgstr "Welches Node.js-Paket zur Interpretation der @code{npm}-Befehle benutzt wird, kann mit dem Parameter @code{#:node} angegeben werden. Dessen Vorgabewert ist @code{node}." #. type: defvar #: guix-git/doc/guix.texi:10228 #, no-wrap msgid "tree-sitter-build-system" msgstr "tree-sitter-build-system" #. type: defvar #: guix-git/doc/guix.texi:10236 msgid "This variable is exported by @code{(guix build-system tree-sitter)}. It implements procedures to compile grammars for the @url{https://tree-sitter.github.io/tree-sitter/, Tree-sitter} parsing library. It essentially runs @code{tree-sitter generate} to translate @code{grammar.js} grammars to JSON and then to C. Which it then compiles to native code." msgstr "Diese Variable wird vom Modul @code{(guix build-system tree-sitter)} exportiert. Sie implementiert, wie Grammatiken für @url{https://tree-sitter.github.io/tree-sitter/, Tree-sitter}, einer Bibliothek zur Syntaxanalyse, kompiliert werden. Dazu wird hauptsächlich @code{tree-sitter generate} ausgeführt, um Grammatiken in @code{grammar.js}-Dateien nach JSON und anschließend nach C zu übersetzen. Daraus wird dann Maschinencode kompiliert." #. type: defvar #: guix-git/doc/guix.texi:10240 msgid "Tree-sitter packages may support multiple grammars, so this build system supports a @code{#:grammar-directories} keyword to specify a list of locations where a @code{grammar.js} file may be found." msgstr "Tree-sitter-Pakete können mehrere Grammatiken enthalten. Deswegen ermöglicht es dieses Erstellungssystem, mit einem Schlüsselwort @code{#:grammar-directories} eine Liste von Orten anzugeben, wo je eine @code{grammar.js} zu finden ist." #. type: defvar #: guix-git/doc/guix.texi:10244 msgid "Grammars sometimes depend on each other, such as C++ depending on C and TypeScript depending on JavaScript. You may use inputs to declare such dependencies." msgstr "In manchen Fällen hängt die eine Grammatik von der anderen ab, etwa wenn C++ von C abhängt oder TypeScript von JavaScript. Solche Abhängigkeiten können Sie als Eingaben unter @code{#:inputs} angeben." #. type: Plain text #: guix-git/doc/guix.texi:10251 msgid "Lastly, for packages that do not need anything as sophisticated, a ``trivial'' build system is provided. It is trivial in the sense that it provides basically no support: it does not pull any implicit inputs, and does not have a notion of build phases." msgstr "Letztlich gibt es für die Pakete, die bei weitem nichts so komplexes brauchen, ein „triviales“ Erstellungssystem. Es ist in dem Sinn trivial, dass es praktisch keine Hilfestellungen gibt: Es fügt keine impliziten Eingaben hinzu und hat kein Konzept von Erstellungsphasen." #. type: defvar #: guix-git/doc/guix.texi:10252 #, no-wrap msgid "trivial-build-system" msgstr "trivial-build-system" #. type: defvar #: guix-git/doc/guix.texi:10254 msgid "This variable is exported by @code{(guix build-system trivial)}." msgstr "Diese Variable wird vom Modul @code{(guix build-system trivial)} exportiert." #. type: defvar #: guix-git/doc/guix.texi:10259 msgid "This build system requires a @code{#:builder} argument. This argument must be a Scheme expression that builds the package output(s)---as with @code{build-expression->derivation} (@pxref{Derivations, @code{build-expression->derivation}})." msgstr "Diesem Erstellungssystem muss im Argument @code{#:builder} ein Scheme-Ausdruck übergeben werden, der die Paketausgabe(n) erstellt@tie{}– wie bei @code{build-expression->derivation} (siehe @ref{Derivations, @code{build-expression->derivation}})." #. type: defvar #: guix-git/doc/guix.texi:10261 #, no-wrap msgid "channel-build-system" msgstr "channel-build-system" #. type: defvar #: guix-git/doc/guix.texi:10263 msgid "This variable is exported by @code{(guix build-system channel)}." msgstr "Diese Variable wird vom Modul @code{(guix build-system channel)} exportiert." #. type: defvar #: guix-git/doc/guix.texi:10269 msgid "This build system is meant primarily for internal use. A package using this build system must have a channel specification as its @code{source} field (@pxref{Channels}); alternatively, its source can be a directory name, in which case an additional @code{#:commit} argument must be supplied to specify the commit being built (a hexadecimal string)." msgstr "Dieses Erstellungssystem ist in erster Linie auf interne Nutzung ausgelegt. Ein Paket mit diesem Erstellungssystem muss im @code{source}-Feld eine Kanalspezifikation stehen haben (siehe @ref{Channels}); alternativ kann für @code{source} der Name eines Verzeichnisses angegeben werden, dann muss aber ein Argument @code{#:commit} mit dem gewünschten Commit (einer hexadezimalen Zeichenkette) übergeben werden, so dass dieser erstellt wird." #. type: defvar #: guix-git/doc/guix.texi:10272 msgid "Optionally, a @code{#:channels} argument specifying additional channels can be provided." msgstr "Optional kann ein @code{#:channels}-Argument mit zusätzlichen Kanälen angegeben werden." #. type: defvar #: guix-git/doc/guix.texi:10275 msgid "The resulting package is a Guix instance of the given channel(s), similar to how @command{guix time-machine} would build it." msgstr "Damit ergit sich ein Paket mit einer Guix-Instanz der angegebenen Kanäle, ähnlich der, die @command{guix time-machine} erstellen würde." #. type: cindex #: guix-git/doc/guix.texi:10280 #, no-wrap msgid "build phases, for packages" msgstr "Erstellungsphasen, bei Paketen" #. type: Plain text #: guix-git/doc/guix.texi:10286 msgid "Almost all package build systems implement a notion @dfn{build phases}: a sequence of actions that the build system executes, when you build the package, leading to the installed byproducts in the store. A notable exception is the ``bare-bones'' @code{trivial-build-system} (@pxref{Build Systems})." msgstr "Fast alle Erstellungssysteme für Pakete implementieren ein Konzept von @dfn{Erstellungsphasen}: einer Abfolge von Aktionen, die vom Erstellungssystem ausgeführt werden, wenn Sie das Paket erstellen. Dabei fallen in den Store installierte Nebenerzeugnisse an. Eine Ausnahme ist der Erwähnung wert: das magere @code{trivial-build-system} (siehe @ref{Build Systems})." #. type: Plain text #: guix-git/doc/guix.texi:10290 msgid "As discussed in the previous section, those build systems provide a standard list of phases. For @code{gnu-build-system}, the main build phases are the following:" msgstr "Wie im letzten Abschnitt erläutert, stellen diese Erstellungssysteme eine standardisierte Liste von Phasen zur Verfügung. Für @code{gnu-build-system} sind dies die hauptsächlichen Erstellungsphasen:" #. type: item #: guix-git/doc/guix.texi:10292 #, no-wrap msgid "set-paths" msgstr "set-paths" #. type: table #: guix-git/doc/guix.texi:10295 msgid "Define search path environment variables for all the input packages, including @env{PATH} (@pxref{Search Paths})." msgstr "Suchpfade in Umgebungsvariablen definieren. Dies geschieht für alle Eingabepakete. @env{PATH} wird so auch festgelegt. Siehe @ref{Search Paths}." #. type: table #: guix-git/doc/guix.texi:10300 msgid "Unpack the source tarball, and change the current directory to the extracted source tree. If the source is actually a directory, copy it to the build tree, and enter that directory." msgstr "Den Quell-Tarball entpacken und das Arbeitsverzeichnis wechseln in den entpackten Quellbaum. Wenn die Quelle bereits ein Verzeichnis ist, wird es in den Quellbaum kopiert und dorthin gewechselt." #. type: item #: guix-git/doc/guix.texi:10301 #, no-wrap msgid "patch-source-shebangs" msgstr "patch-source-shebangs" #. type: table #: guix-git/doc/guix.texi:10305 msgid "Patch shebangs encountered in source files so they refer to the right store file names. For instance, this changes @code{#!/bin/sh} to @code{#!/gnu/store/@dots{}-bash-4.3/bin/sh}." msgstr "„Shebangs“ in Quelldateien beheben, damit Sie sich auf die richtigen Store-Dateipfade beziehen. Zum Beispiel könnte @code{#!/bin/sh} zu @code{#!/gnu/store/…-bash-4.3/bin/sh} geändert werden." #. type: table #: guix-git/doc/guix.texi:10310 msgid "Run the @file{configure} script with a number of default options, such as @option{--prefix=/gnu/store/@dots{}}, as well as the options specified by the @code{#:configure-flags} argument." msgstr "Das Skript @file{configure} mit einigen vorgegebenen Befehlszeilenoptionen ausführen, wie z.B.@: mit @option{--prefix=/gnu/store/…}, sowie mit den im @code{#:configure-flags}-Argument angegebenen Optionen." #. type: table #: guix-git/doc/guix.texi:10315 msgid "Run @code{make} with the list of flags specified with @code{#:make-flags}. If the @code{#:parallel-build?} argument is true (the default), build with @code{make -j}." msgstr "@code{make} ausführen mit den Optionen aus der Liste in @code{#:make-flags}. Wenn das Argument @code{#:parallel-build?} auf wahr gesetzt ist (was der Vorgabewert ist), wird @code{make -j} zum Erstellen ausgeführt." #. type: table #: guix-git/doc/guix.texi:10321 msgid "Run @code{make check}, or some other target specified with @code{#:test-target}, unless @code{#:tests? #f} is passed. If the @code{#:parallel-tests?} argument is true (the default), run @code{make check -j}." msgstr "@code{make check} (oder statt @code{check} ein anderes bei @code{#:test-target} angegebenes Ziel) ausführen, außer falls @code{#:tests? #f} gesetzt ist. Wenn das Argument @code{#:parallel-tests?} auf wahr gesetzt ist (der Vorgabewert), führe @code{make check -j} aus." #. type: table #: guix-git/doc/guix.texi:10324 msgid "Run @code{make install} with the flags listed in @code{#:make-flags}." msgstr "@code{make install} mit den in @code{#:make-flags} aufgelisteten Optionen ausführen." #. type: item #: guix-git/doc/guix.texi:10325 #, no-wrap msgid "patch-shebangs" msgstr "patch-shebangs" #. type: table #: guix-git/doc/guix.texi:10327 msgid "Patch shebangs on the installed executable files." msgstr "Shebangs in den installierten ausführbaren Dateien beheben." #. type: item #: guix-git/doc/guix.texi:10328 #, no-wrap msgid "strip" msgstr "strip" #. type: table #: guix-git/doc/guix.texi:10332 msgid "Strip debugging symbols from ELF files (unless @code{#:strip-binaries?} is false), copying them to the @code{debug} output when available (@pxref{Installing Debugging Files})." msgstr "Symbole zur Fehlerbehebung aus ELF-Dateien entfernen (außer @code{#:strip-binaries?} ist auf falsch gesetzt) und in die @code{debug}-Ausgabe kopieren, falls diese verfügbar ist (siehe @ref{Installing Debugging Files})." #. type: anchor{#1} #: guix-git/doc/guix.texi:10335 msgid "phase-validate-runpath" msgstr "phase-validate-runpath" #. type: item #: guix-git/doc/guix.texi:10335 #, no-wrap msgid "validate-runpath" msgstr "validate-runpath" #. type: table #: guix-git/doc/guix.texi:10338 msgid "Validate the @code{RUNPATH} of ELF binaries, unless @code{#:validate-runpath?} is false (@pxref{Build Systems})." msgstr "Den @code{RUNPATH} von ELF-Binärdateien validieren, sofern @code{#:validate-runpath?} falsch ist (siehe @ref{Build Systems})." #. type: table #: guix-git/doc/guix.texi:10346 msgid "This validation step consists in making sure that all the shared libraries needed by an ELF binary, which are listed as @code{DT_NEEDED} entries in its @code{PT_DYNAMIC} segment, appear in the @code{DT_RUNPATH} entry of that binary. In other words, it ensures that running or using those binaries will not result in a ``file not found'' error at run time. @xref{Options, @option{-rpath},, ld, The GNU Linker}, for more information on @code{RUNPATH}." msgstr "Die Validierung besteht darin, sicherzustellen, dass jede gemeinsame Bibliothek, die von einer ELF-Binärdatei gebraucht wird (sie sind in @code{DT_NEEDED}-Einträgen im @code{PT_DYNAMIC}-Segment der ELF-Datei aufgeführt), im @code{DT_RUNPATH}-Eintrag der Datei gefunden wird. Mit anderen Worten wird gewährleistet, dass es beim Ausführen oder Benutzen einer solchen Binärdatei nicht zur Laufzeit zu einem Fehler kommt, eine Datei würde nicht gefunden. Siehe @ref{Options, @option{-rpath},, ld, The GNU Linker} für mehr Informationen zum @code{RUNPATH}." #. type: Plain text #: guix-git/doc/guix.texi:10356 msgid "Other build systems have similar phases, with some variations. For example, @code{cmake-build-system} has same-named phases but its @code{configure} phases runs @code{cmake} instead of @code{./configure}. Others, such as @code{python-build-system}, have a wholly different list of standard phases. All this code runs on the @dfn{build side}: it is evaluated when you actually build the package, in a dedicated build process spawned by the build daemon (@pxref{Invoking guix-daemon})." msgstr "Andere Erstellungssysteme haben ähnliche, aber etwas unterschiedliche Phasen. Zum Beispiel hat das @code{cmake-build-system} gleichnamige Phasen, aber seine @code{configure}-Phase führt @command{cmake} statt @command{./configure} aus. Andere Erstellungssysteme wie z.B.@: @code{python-build-system} haben eine völlig andere Liste von Standardphasen. Dieser gesamte Code läuft @dfn{erstellungsseitig}: Er wird dann ausgewertet, wenn Sie das Paket wirklich erstellen, in einem eigenen Erstellungprozess nur dafür, den der Erstellungs-Daemon erzeugt (siehe @ref{Invoking guix-daemon})." #. type: Plain text #: guix-git/doc/guix.texi:10363 msgid "Build phases are represented as association lists or ``alists'' (@pxref{Association Lists,,, guile, GNU Guile Reference Manual}) where each key is a symbol for the name of the phase and the associated value is a procedure that accepts an arbitrary number of arguments. By convention, those procedures receive information about the build in the form of @dfn{keyword parameters}, which they can use or ignore." msgstr "Erstellungsphasen werden durch assoziative Listen (kurz „Alists“) repräsentiert (siehe @ref{Association Lists,,, guile, Referenzhandbuch zu GNU Guile}) wo jeder Schlüssel ein Symbol für den Namen der Phase ist und der assoziierte Wert eine Prozedur ist, die eine beliebige Anzahl von Argumenten nimmt. Nach Konvention empfangen diese Prozeduren dadurch Informationen über die Erstellung in Form von @dfn{Schlüsselwort-Parametern}, die darin benutzt oder ignoriert werden können." #. type: vindex #: guix-git/doc/guix.texi:10364 #, no-wrap msgid "%standard-phases" msgstr "%standard-phases" #. type: Plain text #: guix-git/doc/guix.texi:10370 msgid "For example, here is how @code{(guix build gnu-build-system)} defines @code{%standard-phases}, the variable holding its alist of build phases@footnote{We present a simplified view of those build phases, but do take a look at @code{(guix build gnu-build-system)} to see all the details!}:" msgstr "Zum Beispiel werden die @code{%standard-phases}, das ist die Variable mit der Alist der Erstellungsphasen, in @code{(guix build gnu-build-system)} so definiert@footnote{Wir stellen hier nur eine vereinfachte Sicht auf diese Erstellungsphasen vor. Wenn Sie alle Details wollen, schauen Sie sich @code{(guix build gnu-build-system)} an!}:" #. type: lisp #: guix-git/doc/guix.texi:10373 #, no-wrap msgid "" ";; The build phases of 'gnu-build-system'.\n" "\n" msgstr "" ";; Die Erstellungsphasen von 'gnu-build-system'.\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:10377 #, no-wrap msgid "" "(define* (unpack #:key source #:allow-other-keys)\n" " ;; Extract the source tarball.\n" " (invoke \"tar\" \"xvf\" source))\n" "\n" msgstr "" "(define* (unpack #:key source #:allow-other-keys)\n" " ;; Quelltarball extrahieren.\n" " (invoke \"tar\" \"xvf\" source))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:10383 #, no-wrap msgid "" "(define* (configure #:key outputs #:allow-other-keys)\n" " ;; Run the 'configure' script. Install to output \"out\".\n" " (let ((out (assoc-ref outputs \"out\")))\n" " (invoke \"./configure\"\n" " (string-append \"--prefix=\" out))))\n" "\n" msgstr "" "(define* (configure #:key outputs #:allow-other-keys)\n" " ;; 'configure'-Skript ausführen. In Ausgabe \"out\" installieren.\n" " (let ((out (assoc-ref outputs \"out\")))\n" " (invoke \"./configure\"\n" " (string-append \"--prefix=\" out))))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:10387 #, no-wrap msgid "" "(define* (build #:allow-other-keys)\n" " ;; Compile.\n" " (invoke \"make\"))\n" "\n" msgstr "" "(define* (build #:allow-other-keys)\n" " ;; Kompilieren.\n" " (invoke \"make\"))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:10394 #, no-wrap msgid "" "(define* (check #:key (test-target \"check\") (tests? #true)\n" " #:allow-other-keys)\n" " ;; Run the test suite.\n" " (if tests?\n" " (invoke \"make\" test-target)\n" " (display \"test suite not run\\n\")))\n" "\n" msgstr "" "(define* (check #:key (test-target \"check\") (tests? #true)\n" " #:allow-other-keys)\n" " ;; Testkatalog ausführen.\n" " (if tests?\n" " (invoke \"make\" test-target)\n" " (display \"test suite not run\\n\")))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:10398 #, no-wrap msgid "" "(define* (install #:allow-other-keys)\n" " ;; Install files to the prefix 'configure' specified.\n" " (invoke \"make\" \"install\"))\n" "\n" msgstr "" "(define* (install #:allow-other-keys)\n" " ;; Dateien ins bei 'configure' festgelegte Präfix installieren.\n" " (invoke \"make\" \"install\"))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:10407 #, no-wrap msgid "" "(define %standard-phases\n" " ;; The list of standard phases (quite a few are omitted\n" " ;; for brevity). Each element is a symbol/procedure pair.\n" " (list (cons 'unpack unpack)\n" " (cons 'configure configure)\n" " (cons 'build build)\n" " (cons 'check check)\n" " (cons 'install install)))\n" msgstr "" "(define %standard-phases\n" " ;; Die Liste der Standardphasen (der Kürze halber lassen wir einige\n" " ;; aus). Jedes Element ist ein Paar aus Symbol und Prozedur.\n" " (list (cons 'unpack unpack)\n" " (cons 'configure configure)\n" " (cons 'build build)\n" " (cons 'check check)\n" " (cons 'install install)))\n" #. type: Plain text #: guix-git/doc/guix.texi:10417 msgid "This shows how @code{%standard-phases} is defined as a list of symbol/procedure pairs (@pxref{Pairs,,, guile, GNU Guile Reference Manual}). The first pair associates the @code{unpack} procedure with the @code{unpack} symbol---a name; the second pair defines the @code{configure} phase similarly, and so on. When building a package that uses @code{gnu-build-system} with its default list of phases, those phases are executed sequentially. You can see the name of each phase started and completed in the build log of packages that you build." msgstr "Hier sieht man wie @code{%standard-phases} als eine Liste von Paaren aus Symbol und Prozedur (siehe @ref{Pairs,,, guile, Referenzhandbuch zu GNU Guile}) definiert ist. Das erste Paar assoziiert die @code{unpack}-Prozedur mit dem @code{unpack}-Symbol@tie{}– es gibt einen Namen an. Das zweite Paar definiert die @code{configure}-Phase auf ähnliche Weise, ebenso die anderen. Wenn ein Paket erstellt wird, das @code{gnu-build-system} benutzt, werden diese Phasen der Reihe nach ausgeführt. Sie können beim Erstellen von Paketen im Erstellungsprotokoll den Namen jeder gestarteten und abgeschlossenen Phase sehen." #. type: Plain text #: guix-git/doc/guix.texi:10423 msgid "Let's now look at the procedures themselves. Each one is defined with @code{define*}: @code{#:key} lists keyword parameters the procedure accepts, possibly with a default value, and @code{#:allow-other-keys} specifies that other keyword parameters are ignored (@pxref{Optional Arguments,,, guile, GNU Guile Reference Manual})." msgstr "Schauen wir uns jetzt die Prozeduren selbst an. Jede davon wird mit @code{define*} definiert, dadurch können bei @code{#:key} die Schlüsselwortparameter aufgelistet werden, die die Prozedur annimmt, wenn gewünscht auch zusammen mit einem Vorgabewert, und durch @code{#:allow-other-keys} wird veranlasst, dass andere Schlüsselwortparameter ignoriert werden (siehe @ref{Optional Arguments,,, guile, Referenzhandbuch zu GNU Guile})." #. type: Plain text #: guix-git/doc/guix.texi:10439 msgid "The @code{unpack} procedure honors the @code{source} parameter, which the build system uses to pass the file name of the source tarball (or version control checkout), and it ignores other parameters. The @code{configure} phase only cares about the @code{outputs} parameter, an alist mapping package output names to their store file name (@pxref{Packages with Multiple Outputs}). It extracts the file name of for @code{out}, the default output, and passes it to @command{./configure} as the installation prefix, meaning that @command{make install} will eventually copy all the files in that directory (@pxref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards}). @code{build} and @code{install} ignore all their arguments. @code{check} honors the @code{test-target} argument, which specifies the name of the Makefile target to run tests; it prints a message and skips tests when @code{tests?} is false." msgstr "Die @code{unpack}-Prozedur berücksichtigt den @code{source}-Parameter; das Erstellungssystem benutzt ihn, um den Dateinamen des Quell-Tarballs (oder des Checkouts aus einer Versionskontrolle) zu finden. Die anderen Parameter ignoriert sie. Die @code{configure}-Phase interessiert sich nur für den @code{outputs}-Parameter, eine Alist, die die Namen von Paketausgaben auf ihre Dateinamen im Store abbildet (siehe @ref{Packages with Multiple Outputs}). Sie extrahiert den Dateinamen für @code{out}, die Standardausgabe, und gibt ihn an @command{./configure} als das Installationspräfix weiter, wodurch @command{make install} zum Schluss alle Dateien in dieses Verzeichnis kopieren wird (siehe @ref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards}). @code{build} und @code{install} ignorieren all ihre Argumente. @code{check} berücksichtigt das Argument @code{test-target}, worin der Name des Makefile-Ziels angegeben wird, um die Tests auszuführen. Es wird stattdessen eine Nachricht angezeigt und die Tests übersprungen, wenn @code{tests?} falsch ist." #. type: cindex #: guix-git/doc/guix.texi:10440 #, no-wrap msgid "build phases, customizing" msgstr "Erstellungsphasen, Anpassen der" #. type: Plain text #: guix-git/doc/guix.texi:10449 msgid "The list of phases used for a particular package can be changed with the @code{#:phases} parameter of the build system. Changing the set of build phases boils down to building a new alist of phases based on the @code{%standard-phases} alist described above. This can be done with standard alist procedures such as @code{alist-delete} (@pxref{SRFI-1 Association Lists,,, guile, GNU Guile Reference Manual}); however, it is more convenient to do so with @code{modify-phases} (@pxref{Build Utilities, @code{modify-phases}})." msgstr "Die Liste der Phasen, die für ein bestimmtes Paket benutzt werden, kann über den @code{#:phases}-Parameter an das Erstellungssystem geändert werden. Das Ändern des Satzes von Erstellungsphasen funktioniert so, dass eine neue Alist von Phasen aus der oben beschriebenen @code{%standard-phases}-Alist heraus erzeugt wird. Dazu können die Standardprozeduren zur Bearbeitung von assoziativen Listen wie @code{alist-delete} benutzt werden (siehe @ref{SRFI-1 Association Lists,,, guile, Referenzhandbuch zu GNU Guile}), aber es ist bequemer, dafür die Prozedur @code{modify-phases} zu benutzen (siehe @ref{Build Utilities, @code{modify-phases}})." #. type: Plain text #: guix-git/doc/guix.texi:10454 msgid "Here is an example of a package definition that removes the @code{configure} phase of @code{%standard-phases} and inserts a new phase before the @code{build} phase, called @code{set-prefix-in-makefile}:" msgstr "Hier ist ein Beispiel für eine Paketdefinition, die die @code{configure}-Phase aus @code{%standard-phases} entfernt und eine neue Phase vor der @code{build}-Phase namens @code{set-prefix-in-makefile} einfügt:" #. type: lisp #: guix-git/doc/guix.texi:10478 #, no-wrap msgid "" "(define-public example\n" " (package\n" " (name \"example\")\n" " ;; other fields omitted\n" " (build-system gnu-build-system)\n" " (arguments\n" " (list\n" " #:phases\n" " #~(modify-phases %standard-phases\n" " (delete 'configure)\n" " (add-before 'build 'set-prefix-in-makefile\n" " (lambda* (#:key inputs #:allow-other-keys)\n" " ;; Modify the makefile so that its\n" " ;; 'PREFIX' variable points to #$output and\n" " ;; 'XMLLINT' points to the correct path.\n" " (substitute* \"Makefile\"\n" " ((\"PREFIX =.*\")\n" " (string-append \"PREFIX = \" #$output \"\\n\"))\n" " ((\"XMLLINT =.*\")\n" " (string-append \"XMLLINT = \"\n" " (search-input-file inputs \"/bin/xmllint\")\n" " \"\\n\"))))))))))\n" msgstr "" "(define-public beispiel\n" " (package\n" " (name \"beispiel\")\n" " ;; wir lassen die anderen Felder aus\n" " (build-system gnu-build-system)\n" " (arguments\n" " (list\n" " #:phases\n" " #~(modify-phases %standard-phases\n" " (delete 'configure)\n" " (add-before 'build 'set-prefix-in-makefile\n" " (lambda* (#:key inputs #:allow-other-keys)\n" " ;; Makefile anpassen, damit die 'PREFIX'-\n" " ;; Variable auf #$output verweist und\n" " ;; 'XMLLINT' auf den richtigen Pfad verweist.\n" " (substitute* \"Makefile\"\n" " ((\"PREFIX =.*\")\n" " (string-append \"PREFIX = \" #$output \"\\n\"))\n" " ((\"XMLLINT =.*\")\n" " (string-append \"XMLLINT = \"\n" " (search-input-file inputs \"/bin/xmllint\")\n" " \"\\n\"))))))))))\n" #. type: Plain text #: guix-git/doc/guix.texi:10487 msgid "The new phase that is inserted is written as an anonymous procedure, introduced with @code{lambda*}; it looks for the @file{xmllint} executable under a @file{/bin} directory among the package's inputs (@pxref{package Reference}). It also honors the @code{outputs} parameter we have seen before. @xref{Build Utilities}, for more about the helpers used by this phase, and for more examples of @code{modify-phases}." msgstr "Die neu eingefügte Phase wurde als anonyme Prozedur geschrieben. Solche namenlosen Prozeduren schreibt man mit @code{lambda*}. Durch sie wird nach der ausführbaren Datei @file{xmllint} in jedem Verzeichnis @file{/bin} aller Paketeingaben gesucht (siehe @ref{package Reference}). Oben berücksichtigt sie den @code{outputs}-Parameter, den wir zuvor gesehen haben. Siehe @ref{Build Utilities} für mehr Informationen über die in dieser Phase benutzten Hilfsmittel und für mehr Beispiele zu @code{modify-phases}." #. type: quotation #: guix-git/doc/guix.texi:10491 msgid "You can inspect the code associated with a package's @code{#:phases} argument interactively, at the REPL (@pxref{Using Guix Interactively})." msgstr "Sie können den Code, der sich für das @code{#:phases}-Argument ergibt, interaktiv auf der REPL untersuchen (siehe @ref{Using Guix Interactively})." #. type: cindex #: guix-git/doc/guix.texi:10493 guix-git/doc/guix.texi:11846 #, no-wrap msgid "code staging" msgstr "Code-Staging" #. type: cindex #: guix-git/doc/guix.texi:10494 guix-git/doc/guix.texi:11847 #, no-wrap msgid "staging, of code" msgstr "Staging, von Code" #. type: Plain text #: guix-git/doc/guix.texi:10501 msgid "Keep in mind that build phases are code evaluated at the time the package is actually built. This explains why the whole @code{modify-phases} expression above is quoted (it comes after the @code{'} or apostrophe): it is @dfn{staged} for later execution. @xref{G-Expressions}, for an explanation of code staging and the @dfn{code strata} involved." msgstr "Sie sollten im Kopf behalten, dass Erstellungsphasen aus Code bestehen, der erst dann ausgewertet wird, wenn das Paket erstellt wird. Das ist der Grund, warum der gesamte @code{modify-phases}-Ausdruck oben quotiert wird. Quotiert heißt, er steht nach einem @code{'} oder Apostrophenzeichen: Er wird nicht sofort als Code ausgewertet, sondern nur zur späteren Ausführung vorgemerkt (wir sagen @dfn{staged}, siehe @ref{G-Expressions} für eine Erläuterung von Code-Staging und den beteiligten @dfn{Code-Schichten} (oder „Strata“)." #. type: Plain text #: guix-git/doc/guix.texi:10511 msgid "As soon as you start writing non-trivial package definitions (@pxref{Defining Packages}) or other build actions (@pxref{G-Expressions}), you will likely start looking for helpers for ``shell-like'' actions---creating directories, copying and deleting files recursively, manipulating build phases, and so on. The @code{(guix build utils)} module provides such utility procedures." msgstr "Sobald Sie anfangen, nichttriviale Paketdefinitionen (siehe @ref{Defining Packages}) oder andere Erstellungsaktionen (siehe @ref{G-Expressions}) zu schreiben, würden Sie sich wahrscheinlich darüber freuen, Helferlein für „Shell-artige“ Aktionen vordefiniert zu bekommen, also Code, den Sie benutzen können, um Verzeichnisse anzulegen, Dateien rekursiv zu kopieren oder zu löschen, Erstellungsphasen anzupassen und Ähnliches. Das Modul @code{(guix build utils)} macht solche nützlichen Werkzeugprozeduren verfügbar." #. type: Plain text #: guix-git/doc/guix.texi:10515 msgid "Most build systems load @code{(guix build utils)} (@pxref{Build Systems}). Thus, when writing custom build phases for your package definitions, you can usually assume those procedures are in scope." msgstr "Die meisten Erstellungssysteme laden @code{(guix build utils)} (siehe @ref{Build Systems}). Wenn Sie also eigene Erstellungsphasen für Ihre Paketdefinitionen schreiben, können Sie in den meisten Fällen annehmen, dass diese Prozeduren bei der Auswertung sichtbar sein werden." #. type: Plain text #: guix-git/doc/guix.texi:10520 msgid "When writing G-expressions, you can import @code{(guix build utils)} on the ``build side'' using @code{with-imported-modules} and then put it in scope with the @code{use-modules} form (@pxref{Using Guile Modules,,, guile, GNU Guile Reference Manual}):" msgstr "Beim Schreiben von G-Ausdrücken können Sie auf der „Erstellungsseite“ @code{(guix build utils)} mit @code{with-imported-modules} importieren und anschließend mit der @code{use-modules}-Form sichtbar machen (siehe @ref{Using Guile Modules,,, guile, Referenzhandbuch zu GNU Guile}):" #. type: lisp #: guix-git/doc/guix.texi:10527 #, no-wrap msgid "" "(with-imported-modules '((guix build utils)) ;import it\n" " (computed-file \"empty-tree\"\n" " #~(begin\n" " ;; Put it in scope.\n" " (use-modules (guix build utils))\n" "\n" msgstr "" "(with-imported-modules '((guix build utils)) ;importieren\n" " (computed-file \"leerer-verzeichnisbaum\"\n" " #~(begin\n" " ;; Sichtbar machen.\n" " (use-modules (guix build utils))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:10530 #, no-wrap msgid "" " ;; Happily use its 'mkdir-p' procedure.\n" " (mkdir-p (string-append #$output \"/a/b/c\")))))\n" msgstr "" " ;; Jetzt kann man problemlos 'mkdir-p' nutzen.\n" " (mkdir-p (string-append #$output \"/a/b/c\")))))\n" #. type: Plain text #: guix-git/doc/guix.texi:10534 msgid "The remainder of this section is the reference for most of the utility procedures provided by @code{(guix build utils)}." msgstr "Der Rest dieses Abschnitts stellt eine Referenz der meisten Werkzeugprozeduren dar, die @code{(guix build utils)} anbietet." #. type: subsection #: guix-git/doc/guix.texi:10537 #, no-wrap msgid "Dealing with Store File Names" msgstr "Umgehen mit Store-Dateinamen" #. type: Plain text #: guix-git/doc/guix.texi:10540 msgid "This section documents procedures that deal with store file names." msgstr "Dieser Abschnitt dokumentiert Prozeduren, die sich mit Dateinamen von Store-Objekten befassen." #. type: deffn #: guix-git/doc/guix.texi:10541 #, no-wrap msgid "{Procedure} %store-directory" msgstr "{Prozedur} %store-directory" #. type: deffn #: guix-git/doc/guix.texi:10543 msgid "Return the directory name of the store." msgstr "Liefert den Verzeichnisnamen des Stores." #. type: deffn #: guix-git/doc/guix.texi:10545 #, no-wrap msgid "{Procedure} store-file-name? file" msgstr "{Prozedur} store-file-name? Datei" #. type: deffn #: guix-git/doc/guix.texi:10547 msgid "Return true if @var{file} is in the store." msgstr "Liefert wahr zurück, wenn sich @var{Datei} innerhalb des Stores befindet." #. type: deffn #: guix-git/doc/guix.texi:10549 #, no-wrap msgid "{Procedure} strip-store-file-name file" msgstr "{Prozedur} strip-store-file-name Datei" #. type: deffn #: guix-git/doc/guix.texi:10552 msgid "Strip the @file{/gnu/store} and hash from @var{file}, a store file name. The result is typically a @code{\"@var{package}-@var{version}\"} string." msgstr "Liefert den Namen der @var{Datei}, die im Store liegt, ohne den Anfang @file{/gnu/store} und ohne die Prüfsumme am Namensanfang. Als Ergebnis ergibt sich typischerweise eine Zeichenkette aus @code{\"@var{Paket}-@var{Version}\"}." #. type: deffn #: guix-git/doc/guix.texi:10554 #, no-wrap msgid "{Procedure} package-name->name+version name" msgstr "{Prozedur} package-name->name+version Name" #. type: deffn #: guix-git/doc/guix.texi:10559 msgid "Given @var{name}, a package name like @code{\"foo-0.9.1b\"}, return two values: @code{\"foo\"} and @code{\"0.9.1b\"}. When the version part is unavailable, @var{name} and @code{#f} are returned. The first hyphen followed by a digit is considered to introduce the version part." msgstr "Liefert für den Paket-@var{Name}n (so etwas wie @code{\"foo-0.9.1b\"}) zwei Werte zurück: zum einen @code{\"foo\"} und zum anderen @code{\"0.9.1b\"}. Wenn der Teil mit der Version fehlt, werden der @var{Name} und @code{#f} zurückgeliefert. Am ersten Bindestrich, auf den eine Ziffer folgt, wird der Versionsteil abgetrennt." #. type: subsection #: guix-git/doc/guix.texi:10561 #, no-wrap msgid "File Types" msgstr "Dateitypen" #. type: Plain text #: guix-git/doc/guix.texi:10564 msgid "The procedures below deal with files and file types." msgstr "Bei den folgenden Prozeduren geht es um Dateien und Dateitypen." #. type: deffn #: guix-git/doc/guix.texi:10565 #, no-wrap msgid "{Procedure} directory-exists? dir" msgstr "{Prozedur} directory-exists? Verzeichnis" #. type: deffn #: guix-git/doc/guix.texi:10567 msgid "Return @code{#t} if @var{dir} exists and is a directory." msgstr "Liefert @code{#t}, wenn das @var{Verzeichnis} existiert und ein Verzeichnis ist." #. type: deffn #: guix-git/doc/guix.texi:10569 #, no-wrap msgid "{Procedure} executable-file? file" msgstr "{Prozedur} executable-file? Datei" #. type: deffn #: guix-git/doc/guix.texi:10571 msgid "Return @code{#t} if @var{file} exists and is executable." msgstr "Liefert @code{#t}, wenn die @var{Datei} existiert und ausführbar ist." #. type: deffn #: guix-git/doc/guix.texi:10573 #, no-wrap msgid "{Procedure} symbolic-link? file" msgstr "{Prozedur} symbolic-link? Datei" #. type: deffn #: guix-git/doc/guix.texi:10575 msgid "Return @code{#t} if @var{file} is a symbolic link (aka. a ``symlink'')." msgstr "Liefert @code{#t}, wenn die @var{Datei} eine symbolische Verknüpfung ist (auch bekannt als „Symlink“)." #. type: deffn #: guix-git/doc/guix.texi:10577 #, no-wrap msgid "{Procedure} elf-file? file" msgstr "{Prozedur} elf-file? Datei" #. type: deffnx #: guix-git/doc/guix.texi:10578 #, no-wrap msgid "{Procedure} ar-file? file" msgstr "{Prozedur} ar-file? Datei" #. type: deffnx #: guix-git/doc/guix.texi:10579 #, no-wrap msgid "{Procedure} gzip-file? file" msgstr "{Prozedur} gzip-file? Datei" #. type: deffn #: guix-git/doc/guix.texi:10582 msgid "Return @code{#t} if @var{file} is, respectively, an ELF file, an @code{ar} archive (such as a @file{.a} static library), or a gzip file." msgstr "Liefert @code{#t}, wenn die @var{Datei} jeweils eine ELF-Datei, ein @code{ar}-Archiv (etwa eine statische Bibliothek mit @file{.a}) oder eine gzip-Datei ist." #. type: deffn #: guix-git/doc/guix.texi:10584 #, no-wrap msgid "{Procedure} reset-gzip-timestamp file [#:keep-mtime? #t]" msgstr "{Prozedur} reset-gzip-timestamp Datei [#:keep-mtime? #t]" #. type: deffn #: guix-git/doc/guix.texi:10588 msgid "If @var{file} is a gzip file, reset its embedded timestamp (as with @command{gzip --no-name}) and return true. Otherwise return @code{#f}. When @var{keep-mtime?} is true, preserve @var{file}'s modification time." msgstr "Wenn die @var{Datei} eine gzip-Datei ist, wird ihr eingebetteter Zeitstempel zurückgesetzt (wie bei @command{gzip --no-name}) und wahr geliefert. Ansonsten wird @code{#f} geliefert. Wenn @var{keep-mtime?} wahr ist, wird der Zeitstempel der letzten Modifikation von @var{Datei} beibehalten." #. type: subsection #: guix-git/doc/guix.texi:10590 #, no-wrap msgid "File Manipulation" msgstr "Änderungen an Dateien" #. type: Plain text #: guix-git/doc/guix.texi:10597 msgid "The following procedures and macros help create, modify, and delete files. They provide functionality comparable to common shell utilities such as @command{mkdir -p}, @command{cp -r}, @command{rm -r}, and @command{sed}. They complement Guile's extensive, but low-level, file system interface (@pxref{POSIX,,, guile, GNU Guile Reference Manual})." msgstr "Die folgenden Prozeduren und Makros helfen beim Erstellen, Ändern und Löschen von Dateien. Sie machen Funktionen ähnlich zu Shell-Werkzeugen wie @command{mkdir -p}, @command{cp -r}, @command{rm -r} und @command{sed} verfügbar. Sie ergänzen Guiles ausgiebige aber kleinschrittige Dateisystemschnittstelle (siehe @ref{POSIX,,, guile, Referenzhandbuch zu GNU Guile})." #. type: defmac #: guix-git/doc/guix.texi:10598 #, no-wrap msgid "with-directory-excursion directory body @dots{}" msgstr "with-directory-excursion Verzeichnis Rumpf…" #. type: defmac #: guix-git/doc/guix.texi:10600 msgid "Run @var{body} with @var{directory} as the process's current directory." msgstr "Den @var{Rumpf} ausführen mit dem @var{Verzeichnis} als aktuellem Verzeichnis des Prozesses." #. type: defmac #: guix-git/doc/guix.texi:10607 msgid "Essentially, this macro changes the current directory to @var{directory} before evaluating @var{body}, using @code{chdir} (@pxref{Processes,,, guile, GNU Guile Reference Manual}). It changes back to the initial directory when the dynamic extent of @var{body} is left, be it @i{via} normal procedure return or @i{via} a non-local exit such as an exception." msgstr "Im Grunde ändert das Makro das aktuelle Arbeitsverzeichnis auf @var{Verzeichnis} bevor der @var{Rumpf} ausgewertet wird, mittels @code{chdir} (siehe @ref{Processes,,, guile, Referenzhandbuch zu GNU Guile}). Wenn der dynamische Bereich von @var{Rumpf} wieder verlassen wird, wechselt es wieder ins anfängliche Verzeichnis zurück, egal ob der @var{Rumpf} durch normales Zurückliefern eines Ergebnisses oder durch einen nichtlokalen Sprung wie etwa eine Ausnahme verlassen wurde." #. type: deffn #: guix-git/doc/guix.texi:10609 #, no-wrap msgid "{Procedure} mkdir-p dir" msgstr "{Prozedur} mkdir-p Verzeichnis" #. type: deffn #: guix-git/doc/guix.texi:10611 msgid "Create directory @var{dir} and all its ancestors." msgstr "Das @var{Verzeichnis} und all seine Vorgänger erstellen." #. type: deffn #: guix-git/doc/guix.texi:10613 #, no-wrap msgid "{Procedure} install-file file directory" msgstr "{Prozedur} install-file Datei Verzeichnis" #. type: deffn #: guix-git/doc/guix.texi:10616 msgid "Create @var{directory} if it does not exist and copy @var{file} in there under the same name." msgstr "@var{Verzeichnis} erstellen, wenn es noch nicht existiert, und die @var{Datei} mit ihrem Namen dorthin kopieren." #. type: deffn #: guix-git/doc/guix.texi:10618 #, no-wrap msgid "{Procedure} make-file-writable file" msgstr "{Prozedur} make-file-writable Datei" #. type: deffn #: guix-git/doc/guix.texi:10620 msgid "Make @var{file} writable for its owner." msgstr "Dem Besitzer der @var{Datei} Schreibberechtigung darauf erteilen." #. type: deffn #: guix-git/doc/guix.texi:10622 #, no-wrap msgid "{Procedure} copy-recursively source destination @" msgstr "{Prozedur} copy-recursively Quelle Zielort @" #. type: deffn #: guix-git/doc/guix.texi:10631 msgid "[#:log (current-output-port)] [#:follow-symlinks? #f] @ [#:copy-file copy-file] [#:keep-mtime? #f] [#:keep-permissions? #t] Copy @var{source} directory to @var{destination}. Follow symlinks if @var{follow-symlinks?} is true; otherwise, just preserve them. Call @var{copy-file} to copy regular files. When @var{keep-mtime?} is true, keep the modification time of the files in @var{source} on those of @var{destination}. When @var{keep-permissions?} is true, preserve file permissions. Write verbose output to the @var{log} port." msgstr "[#:log (current-output-port)] [#:follow-symlinks? #f] @ [#:copy-file copy-file] [#:keep-mtime? #f] [#:keep-permissions? #t] Das Verzeichnis @var{Quelle} rekursiv an den @var{Zielort} kopieren. Wenn @var{follow-symlinks?} wahr ist, folgt die Rekursion symbolischen Verknüpfungen, ansonsten werden die Verknüpfungen als solche beibehalten. Zum Kopieren regulärer Dateien wird @var{copy-file} aufgerufen. Wenn @var{keep-mtime?} wahr ist, bleibt der Zeitstempel der letzten Änderung an den Dateien in @var{Quelle} dabei bei denen am @var{Zielort} erhalten. Wenn @var{keep-permissions?} wahr ist, bleiben Dateiberechtigungen erhalten. Ein ausführliches Protokoll wird in den bei @var{log} angegebenen Port geschrieben." #. type: deffn #: guix-git/doc/guix.texi:10633 #, no-wrap msgid "{Procedure} delete-file-recursively dir [#:follow-mounts? #f]" msgstr "{Prozedur} delete-file-recursively Verzeichnis [#:follow-mounts? #f]" #. type: deffn #: guix-git/doc/guix.texi:10637 msgid "Delete @var{dir} recursively, like @command{rm -rf}, without following symlinks. Don't follow mount points either, unless @var{follow-mounts?} is true. Report but ignore errors." msgstr "Das @var{Verzeichnis} rekursiv löschen, wie bei @command{rm -rf}, ohne symbolischen Verknüpfungen zu folgen. Auch Einhängepunkten wird @emph{nicht} gefolgt, außer falls @var{follow-mounts?} wahr ist. Fehler dabei werden angezeigt aber ignoriert." #. type: defmac #: guix-git/doc/guix.texi:10639 #, no-wrap msgid "substitute* file @" msgstr "substitute* Datei @" #. type: defmac #: guix-git/doc/guix.texi:10644 msgid "((regexp match-var@dots{}) body@dots{}) @dots{} Substitute @var{regexp} in @var{file} by the string returned by @var{body}. @var{body} is evaluated with each @var{match-var} bound to the corresponding positional regexp sub-expression. For example:" msgstr "((Regexp Muster-Variable…) Rumpf…) … Den regulären Ausdruck @var{Regexp} in der @var{Datei} durch die durch @var{Rumpf} berechnete Zeichenkette ersetzen. Bei der Auswertung von @var{Rumpf} wird jede @var{Muster-Variable} an den Teilausdruck an der entsprechenden Position der Regexp gebunden. Zum Beispiel:" #. type: lisp #: guix-git/doc/guix.texi:10651 #, no-wrap msgid "" "(substitute* file\n" " ((\"hello\")\n" " \"good morning\\n\")\n" " ((\"foo([a-z]+)bar(.*)$\" all letters end)\n" " (string-append \"baz\" letters end)))\n" msgstr "" "(substitute* file\n" " ((\"Hallo\")\n" " \"Guten Morgen\\n\")\n" " ((\"foo([a-z]+)bar(.*)$\" alles Buchstaben Ende)\n" " (string-append \"baz\" Buchstaben Ende)))\n" #. type: defmac #: guix-git/doc/guix.texi:10657 msgid "Here, anytime a line of @var{file} contains @code{hello}, it is replaced by @code{good morning}. Anytime a line of @var{file} matches the second regexp, @code{all} is bound to the complete match, @code{letters} is bound to the first sub-expression, and @code{end} is bound to the last one." msgstr "Jedes Mal, wenn eine Zeile in der @var{Datei} den Text @code{Hallo} enthält, wird dieser durch @code{Guten Morgen} ersetzt. Jedes Mal, wenn eine Zeile zum zweiten regulären Ausdruck passt, wird @code{alles} an die vollständige Übereinstimmung gebunden, @code{Buchstaben} wird an den ersten Teilausdruck gebunden und @code{Ende} an den letzten." #. type: defmac #: guix-git/doc/guix.texi:10660 msgid "When one of the @var{match-var} is @code{_}, no variable is bound to the corresponding match substring." msgstr "Wird für eine @var{Muster-Variable} nur @code{_} geschrieben, so wird keine Variable an die Teilzeichenkette an der entsprechenden Position im Muster gebunden." #. type: defmac #: guix-git/doc/guix.texi:10663 msgid "Alternatively, @var{file} may be a list of file names, in which case they are all subject to the substitutions." msgstr "Alternativ kann statt einer @var{Datei} auch eine Liste von Dateinamen angegeben werden. In diesem Fall wird jede davon den Substitutionen unterzogen." #. type: defmac #: guix-git/doc/guix.texi:10668 msgid "Be careful about using @code{$} to match the end of a line; by itself it won't match the terminating newline of a line. For example, to match a whole line ending with a backslash, one needs a regex like @code{\"(.*)\\\\\\\\\\n$\"}." msgstr "Seien Sie vorsichtig bei der Nutzung von @code{$}, um auf das Ende einer Zeile zu passen. @code{$} passt nämlich @emph{nicht} auf den Zeilenumbruch am Ende einer Zeile. Wenn es zum Beispiel zu einer ganzen Zeile passen soll, an deren Ende ein Backslash steht, kann der benötigte reguläre Ausdruck etwa @code{\"(.*)\\\\\\\\\\n$\"} lauten." #. type: subsection #: guix-git/doc/guix.texi:10670 #, no-wrap msgid "File Search" msgstr "Dateien suchen" #. type: cindex #: guix-git/doc/guix.texi:10672 #, no-wrap msgid "file, searching" msgstr "Dateien, suchen" #. type: Plain text #: guix-git/doc/guix.texi:10674 msgid "This section documents procedures to search and filter files." msgstr "Dieser Abschnitt beschreibt Prozeduren, um Dateien zu suchen und zu filtern." #. type: deffn #: guix-git/doc/guix.texi:10675 #, no-wrap msgid "{Procedure} file-name-predicate regexp" msgstr "{Prozedur} file-name-predicate Regexp" #. type: deffn #: guix-git/doc/guix.texi:10678 msgid "Return a predicate that returns true when passed a file name whose base name matches @var{regexp}." msgstr "Liefert ein Prädikat, das gegeben einen Dateinamen, dessen Basisnamen auf @var{Regexp} passt, wahr liefert." #. type: deffn #: guix-git/doc/guix.texi:10680 #, no-wrap msgid "{Procedure} find-files dir [pred] @" msgstr "{Prozedur} find-files Verzeichnis [Prädikat] @" #. type: deffn #: guix-git/doc/guix.texi:10691 msgid "[#:stat lstat] [#:directories? #f] [#:fail-on-error? #f] Return the lexicographically sorted list of files under @var{dir} for which @var{pred} returns true. @var{pred} is passed two arguments: the absolute file name, and its stat buffer; the default predicate always returns true. @var{pred} can also be a regular expression, in which case it is equivalent to @code{(file-name-predicate @var{pred})}. @var{stat} is used to obtain file information; using @code{lstat} means that symlinks are not followed. If @var{directories?} is true, then directories will also be included. If @var{fail-on-error?} is true, raise an exception upon error." msgstr "[#:stat lstat] [#:directories? #f] [#:fail-on-error? #f] Liefert die lexikografisch sortierte Liste der Dateien innerhalb @var{Verzeichnis}, für die das @var{Prädikat} wahr liefert. An @var{Prädikat} werden zwei Argumente übergeben: Der absolute Dateiname und der zugehörige Stat-Puffer. Das vorgegebene Prädikat liefert immer wahr. Als @var{Prädikat} kann auch ein regulärer Ausdruck benutzt werden; in diesem Fall ist er äquivalent zu @code{(file-name-predicate @var{Prädikat})}. Mit @var{stat} werden Informationen über die Datei ermittelt; wenn dafür @code{lstat} benutzt wird, bedeutet das, dass symbolische Verknüpfungen nicht verfolgt werden. Wenn @var{directories?} wahr ist, dann werden auch Verzeichnisse aufgezählt. Wenn @var{fail-on-error?} wahr ist, dann wird bei einem Fehler eine Ausnahme ausgelöst." #. type: Plain text #: guix-git/doc/guix.texi:10695 msgid "Here are a few examples where we assume that the current directory is the root of the Guix source tree:" msgstr "Nun folgen ein paar Beispiele, wobei wir annehmen, dass das aktuelle Verzeichnis der Wurzel des Guix-Quellbaums entspricht." #. type: lisp #: guix-git/doc/guix.texi:10700 #, no-wrap msgid "" ";; List all the regular files in the current directory.\n" "(find-files \".\")\n" "@result{} (\"./.dir-locals.el\" \"./.gitignore\" @dots{})\n" "\n" msgstr "" ";; Alle regulären Dateien im aktuellen Verzeichnis auflisten.\n" "(find-files \".\")\n" "@result{} (\"./.dir-locals.el\" \"./.gitignore\" …)\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:10704 #, no-wrap msgid "" ";; List all the .scm files under gnu/services.\n" "(find-files \"gnu/services\" \"\\\\.scm$\")\n" "@result{} (\"gnu/services/admin.scm\" \"gnu/services/audio.scm\" @dots{})\n" "\n" msgstr "" ";; Alle .scm-Dateien unter gnu/services auflisten.\n" "(find-files \"gnu/services\" \"\\\\.scm$\")\n" "@result{} (\"gnu/services/admin.scm\" \"gnu/services/audio.scm\" …)\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:10708 #, no-wrap msgid "" ";; List ar files in the current directory.\n" "(find-files \".\" (lambda (file stat) (ar-file? file)))\n" "@result{} (\"./libformat.a\" \"./libstore.a\" @dots{})\n" msgstr "" ";; ar-Dateien im aktuellen Verzeichnis auflisten.\n" "(find-files \".\" (lambda (file stat) (ar-file? file)))\n" "@result{} (\"./libformat.a\" \"./libstore.a\" …)\n" #. type: deffn #: guix-git/doc/guix.texi:10710 #, no-wrap msgid "{Procedure} which program" msgstr "{Prozedur} which Programm" #. type: deffn #: guix-git/doc/guix.texi:10713 msgid "Return the complete file name for @var{program} as found in @code{$PATH}, or @code{#f} if @var{program} could not be found." msgstr "Liefert den vollständigen Dateinamen für das @var{Programm}, der in @code{$PATH} gesucht wird, oder @code{#f}, wenn das @var{Programm} nicht gefunden werden konnte." #. type: deffn #: guix-git/doc/guix.texi:10715 #, no-wrap msgid "{Procedure} search-input-file inputs name" msgstr "{Prozedur} search-input-file Eingaben Name" #. type: deffnx #: guix-git/doc/guix.texi:10716 #, no-wrap msgid "{Procedure} search-input-directory inputs name" msgstr "{Prozedur} search-input-directory Eingaben Name" #. type: deffn #: guix-git/doc/guix.texi:10721 msgid "Return the complete file name for @var{name} as found in @var{inputs}; @code{search-input-file} searches for a regular file and @code{search-input-directory} searches for a directory. If @var{name} could not be found, an exception is raised." msgstr "Liefert den vollständigen Dateinamen von @var{Name}, das in allen @var{Eingaben} gesucht wird. @code{search-input-file} sucht nach einer regulären Datei, während @code{search-input-directory} nach einem Verzeichnis sucht. Wenn der @var{Name} nicht vorkommt, wird eine Ausnahme ausgelöst." #. type: deffn #: guix-git/doc/guix.texi:10725 msgid "Here, @var{inputs} must be an association list like @code{inputs} and @code{native-inputs} as available to build phases (@pxref{Build Phases})." msgstr "Hierbei muss für @var{Eingaben} eine assoziative Liste wie @code{inputs} oder @code{native-inputs} übergeben werden, die für Erstellungsphasen zur Verfügung steht (siehe @ref{Build Phases})." #. type: Plain text #: guix-git/doc/guix.texi:10729 msgid "Here is a (simplified) example of how @code{search-input-file} is used in a build phase of the @code{wireguard-tools} package:" msgstr "Hier ist ein (vereinfachtes) Beispiel, wie @code{search-input-file} in einer Erstellungsphase des @code{wireguard-tools}-Pakets benutzt wird:" #. type: lisp #: guix-git/doc/guix.texi:10738 #, no-wrap msgid "" "(add-after 'install 'wrap-wg-quick\n" " (lambda* (#:key inputs outputs #:allow-other-keys)\n" " (let ((coreutils (string-append (assoc-ref inputs \"coreutils\")\n" " \"/bin\")))\n" " (wrap-program (search-input-file outputs \"bin/wg-quick\")\n" " #:sh (search-input-file inputs \"bin/bash\")\n" " `(\"PATH\" \":\" prefix ,(list coreutils))))))\n" msgstr "" "(add-after 'install 'wrap-wg-quick\n" " (lambda* (#:key inputs outputs #:allow-other-keys)\n" " (let ((coreutils (string-append (assoc-ref inputs \"coreutils\")\n" " \"/bin\")))\n" " (wrap-program (search-input-file outputs \"bin/wg-quick\")\n" " #:sh (search-input-file inputs \"bin/bash\")\n" " `(\"PATH\" \":\" prefix ,(list coreutils))))))\n" #. type: subsection #: guix-git/doc/guix.texi:10740 #, no-wrap msgid "Program Invocation" msgstr "Programme aufrufen" #. type: cindex #: guix-git/doc/guix.texi:10742 #, no-wrap msgid "program invocation, from Scheme" msgstr "Aufruf von Programmen, aus Scheme" #. type: cindex #: guix-git/doc/guix.texi:10743 #, no-wrap msgid "invoking programs, from Scheme" msgstr "Programme aufrufen, aus Scheme" #. type: Plain text #: guix-git/doc/guix.texi:10747 msgid "You'll find handy procedures to spawn processes in this module, essentially convenient wrappers around Guile's @code{system*} (@pxref{Processes, @code{system*},, guile, GNU Guile Reference Manual})." msgstr "Im Modul finden Sie Prozeduren, die geeignet sind, Prozesse zu erzeugen. Hauptsächlich handelt es sich um praktische Wrapper für Guiles @code{system*} (siehe @ref{Processes, @code{system*},, guile, Referenzhandbuch zu GNU Guile})." #. type: deffn #: guix-git/doc/guix.texi:10748 #, no-wrap msgid "{Procedure} invoke program args@dots{}" msgstr "{Prozedur} invoke Programm Argumente…" #. type: deffn #: guix-git/doc/guix.texi:10752 msgid "Invoke @var{program} with the given @var{args}. Raise an @code{&invoke-error} exception if the exit code is non-zero; otherwise return @code{#t}." msgstr "@var{Programm} mit @var{Argumente} aufrufen. Es wird eine @code{&invoke-error}-Ausnahme ausgelöst, wenn der Exit-Code ungleich null ist, ansonsten wird @code{#t} zurückgeliefert." #. type: deffn #: guix-git/doc/guix.texi:10756 msgid "The advantage compared to @code{system*} is that you do not need to check the return value. This reduces boilerplate in shell-script-like snippets for instance in package build phases." msgstr "Der Vorteil gegenüber @code{system*} ist, dass Sie den Rückgabewert nicht zu überprüfen brauchen. So vermeiden Sie umständlichen Code in Shell-Skript-haften Schnipseln etwa in Erstellungsphasen von Paketen." #. type: deffn #: guix-git/doc/guix.texi:10758 #, no-wrap msgid "{Procedure} invoke-error? c" msgstr "{Prozedur} invoke-error? c" #. type: deffn #: guix-git/doc/guix.texi:10760 msgid "Return true if @var{c} is an @code{&invoke-error} condition." msgstr "Liefert wahr, wenn @var{c} ein @code{&invoke-error}-Zustand ist." #. type: deffn #: guix-git/doc/guix.texi:10762 #, no-wrap msgid "{Procedure} invoke-error-program c" msgstr "{Prozedur} invoke-error-program c" #. type: deffnx #: guix-git/doc/guix.texi:10763 #, no-wrap msgid "{Procedure} invoke-error-arguments c" msgstr "{Prozedur} invoke-error-arguments c" #. type: deffnx #: guix-git/doc/guix.texi:10764 #, no-wrap msgid "{Procedure} invoke-error-exit-status c" msgstr "{Prozedur} invoke-error-exit-status c" #. type: deffnx #: guix-git/doc/guix.texi:10765 #, no-wrap msgid "{Procedure} invoke-error-term-signal c" msgstr "{Prozedur} invoke-error-term-signal c" #. type: deffnx #: guix-git/doc/guix.texi:10766 #, no-wrap msgid "{Procedure} invoke-error-stop-signal c" msgstr "{Prozedur} invoke-error-stop-signal c" #. type: deffn #: guix-git/doc/guix.texi:10768 msgid "Access specific fields of @var{c}, an @code{&invoke-error} condition." msgstr "Auf bestimmte Felder von @var{c} zugreifen, einem @code{&invoke-error}-Zustand." #. type: deffn #: guix-git/doc/guix.texi:10770 #, no-wrap msgid "{Procedure} report-invoke-error c [port]" msgstr "{Prozedur} report-invoke-error c Port" #. type: deffn #: guix-git/doc/guix.texi:10773 msgid "Report to @var{port} (by default the current error port) about @var{c}, an @code{&invoke-error} condition, in a human-friendly way." msgstr "Auf @var{Port} (nach Vorgabe der @code{current-error-port}) eine Meldung für @var{c}, einem @code{&invoke-error}-Zustand, menschenlesbar ausgeben." #. type: deffn #: guix-git/doc/guix.texi:10775 msgid "Typical usage would look like this:" msgstr "Normalerweise würden Sie das so benutzen:" #. type: lisp #: guix-git/doc/guix.texi:10779 #, no-wrap msgid "" "(use-modules (srfi srfi-34) ;for 'guard'\n" " (guix build utils))\n" "\n" msgstr "" "(use-modules (srfi srfi-34) ;für 'guard'\n" " (guix build utils))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:10783 #, no-wrap msgid "" "(guard (c ((invoke-error? c)\n" " (report-invoke-error c)))\n" " (invoke \"date\" \"--imaginary-option\"))\n" "\n" msgstr "" "(guard (c ((invoke-error? c)\n" " (report-invoke-error c)))\n" " (invoke \"date\" \"--imaginary-option\"))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:10785 #, no-wrap msgid "@print{} command \"date\" \"--imaginary-option\" failed with status 1\n" msgstr "@print{} command \"date\" \"--imaginary-option\" failed with status 1\n" #. type: deffn #: guix-git/doc/guix.texi:10788 #, no-wrap msgid "{Procedure} invoke/quiet program args@dots{}" msgstr "{Prozedur} invoke/quiet Programm Argumente…" #. type: deffn #: guix-git/doc/guix.texi:10794 msgid "Invoke @var{program} with @var{args} and capture @var{program}'s standard output and standard error. If @var{program} succeeds, print nothing and return the unspecified value; otherwise, raise a @code{&message} error condition that includes the status code and the output of @var{program}." msgstr "@var{Programm} mit @var{Argumente} aufrufen und dabei die Standardausgabe und Standardfehlerausgabe von @var{Programm} einfangen. Wenn @var{Programm} erfolgreich ausgeführt wird, wird @emph{nichts} ausgegeben und der unbestimmte Wert @code{*unspecified*} zurückgeliefert. Andernfalls wird ein @code{&message}-Fehlerzustand ausgelöst, der den Status-Code und die Ausgabe von @var{Programm} enthält." #. type: deffn #: guix-git/doc/guix.texi:10796 msgid "Here's an example:" msgstr "Hier ist ein Beispiel:" #. type: lisp #: guix-git/doc/guix.texi:10801 #, no-wrap msgid "" "(use-modules (srfi srfi-34) ;for 'guard'\n" " (srfi srfi-35) ;for 'message-condition?'\n" " (guix build utils))\n" "\n" msgstr "" "(use-modules (srfi srfi-34) ;für 'guard'\n" " (srfi srfi-35) ;für 'message-condition?'\n" " (guix build utils))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:10806 #, no-wrap msgid "" "(guard (c ((message-condition? c)\n" " (display (condition-message c))))\n" " (invoke/quiet \"date\") ;all is fine\n" " (invoke/quiet \"date\" \"--imaginary-option\"))\n" "\n" msgstr "" "(guard (c ((message-condition? c)\n" " (display (condition-message c))))\n" " (invoke/quiet \"date\") ;alles in Ordnung\n" " (invoke/quiet \"date\" \"--imaginary-option\"))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:10808 #, no-wrap msgid "" "@print{} 'date --imaginary-option' exited with status 1; output follows:\n" "\n" msgstr "" "@print{} 'date --imaginary-option' exited with status 1; output follows:\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:10811 #, no-wrap msgid "" " date: unrecognized option '--imaginary-option'\n" " Try 'date --help' for more information.\n" msgstr "" " date: Unbekannte Option »--imaginary-option«\n" " „date --help“ liefert weitere Informationen.\n" #. type: Plain text #: guix-git/doc/guix.texi:10823 msgid "The @code{(guix build utils)} also contains tools to manipulate build phases as used by build systems (@pxref{Build Systems}). Build phases are represented as association lists or ``alists'' (@pxref{Association Lists,,, guile, GNU Guile Reference Manual}) where each key is a symbol naming the phase and the associated value is a procedure (@pxref{Build Phases})." msgstr "@code{(guix build utils)} enthält auch Werkzeuge, um die von Erstellungssystemen benutzten Erstellungsphasen zu verändern (siehe @ref{Build Systems}). Erstellungsphasen werden durch assoziative Listen oder „Alists“ repräsentiert (siehe @ref{Association Lists,,, guile, Referenzhandbuch zu GNU Guile}), wo jeder Schlüssel ein Symbol ist, das den Namen der Phase angibt, und der assoziierte Wert eine Prozedur ist (siehe @ref{Build Phases})." #. type: Plain text #: guix-git/doc/guix.texi:10827 msgid "Guile core and the @code{(srfi srfi-1)} module both provide tools to manipulate alists. The @code{(guix build utils)} module complements those with tools written with build phases in mind." msgstr "Die zum Kern von Guile („Guile core“) gehörenden Prozeduren und das Modul @code{(srfi srfi-1)} stellen beide Werkzeuge zum Bearbeiten von Alists zur Verfügung. Das Modul @code{(guix build utils)} ergänzt sie um Werkzeuge, die speziell für Erstellungsphasen gedacht sind." #. type: cindex #: guix-git/doc/guix.texi:10828 #, no-wrap msgid "build phases, modifying" msgstr "Erstellungsphasen, Ändern von" #. type: defmac #: guix-git/doc/guix.texi:10829 #, no-wrap msgid "modify-phases phases clause@dots{}" msgstr "modify-phases Phasen Klausel…" #. type: defmac #: guix-git/doc/guix.texi:10832 msgid "Modify @var{phases} sequentially as per each @var{clause}, which may have one of the following forms:" msgstr "Die @var{Phasen} der Reihe nach entsprechend jeder @var{Klausel} ändern. Die Klauseln dürfen eine der folgenden Formen haben:" #. type: lisp #: guix-git/doc/guix.texi:10838 #, no-wrap msgid "" "(delete @var{old-phase-name})\n" "(replace @var{old-phase-name} @var{new-phase})\n" "(add-before @var{old-phase-name} @var{new-phase-name} @var{new-phase})\n" "(add-after @var{old-phase-name} @var{new-phase-name} @var{new-phase})\n" msgstr "" "(delete @var{alter-Phasenname})\n" "(replace @var{alter-Phasenname} @var{neue-Phase})\n" "(add-before @var{alter-Phasenname} @var{neuer-Phasenname} @var{neue-Phase})\n" "(add-after @var{alter-Phasenname} @var{neuer-Phasenname} @var{neue-Phase})\n" #. type: defmac #: guix-git/doc/guix.texi:10842 msgid "Where every @var{phase-name} above is an expression evaluating to a symbol, and @var{new-phase} an expression evaluating to a procedure." msgstr "Jeder @var{Phasenname} oben ist ein Ausdruck, der zu einem Symbol auswertet, und @var{neue-Phase} ist ein Ausdruck, der zu einer Prozedur auswertet." #. type: Plain text #: guix-git/doc/guix.texi:10853 msgid "The example below is taken from the definition of the @code{grep} package. It adds a phase to run after the @code{install} phase, called @code{fix-egrep-and-fgrep}. That phase is a procedure (@code{lambda*} is for anonymous procedures) that takes a @code{#:outputs} keyword argument and ignores extra keyword arguments (@pxref{Optional Arguments,,, guile, GNU Guile Reference Manual}, for more on @code{lambda*} and optional and keyword arguments.) The phase uses @code{substitute*} to modify the installed @file{egrep} and @file{fgrep} scripts so that they refer to @code{grep} by its absolute file name:" msgstr "Folgendes Beispiel stammt aus der Definition des @code{grep}-Pakets. Es fügt eine neue Phase namens @code{egrep-und-fgrep-korrigieren} hinzu, die auf die @code{install}-Phase folgen soll. Diese Phase ist eine Prozedur (@code{lambda*} bedeutet, sie ist eine Prozedur ohne eigenen Namen), die ein Schlüsselwort @code{#:outputs} bekommt und die restlichen Schlüsselwortargumente ignoriert (siehe @ref{Optional Arguments,,, guile, Referenzhandbuch zu GNU Guile} für mehr Informationen zu @code{lambda*} und optionalen sowie Schlüsselwort-Argumenten). In der Phase wird @code{substitute*} benutzt, um die installierten Skripte @file{egrep} und @file{fgrep} so zu verändern, dass sie @code{grep} anhand seines absoluten Dateinamens aufrufen:" #. type: lisp #: guix-git/doc/guix.texi:10866 #, no-wrap msgid "" "(modify-phases %standard-phases\n" " (add-after 'install 'fix-egrep-and-fgrep\n" " ;; Patch 'egrep' and 'fgrep' to execute 'grep' via its\n" " ;; absolute file name instead of searching for it in $PATH.\n" " (lambda* (#:key outputs #:allow-other-keys)\n" " (let* ((out (assoc-ref outputs \"out\"))\n" " (bin (string-append out \"/bin\")))\n" " (substitute* (list (string-append bin \"/egrep\")\n" " (string-append bin \"/fgrep\"))\n" " ((\"^exec grep\")\n" " (string-append \"exec \" bin \"/grep\")))))))\n" msgstr "" "(modify-phases %standard-phases\n" " (add-after 'install 'egrep-und-fgrep-korrigieren\n" " ;; 'egrep' und 'fgrep' patchen, damit diese 'grep' über den\n" " ;; absoluten Dateinamen ausführen, statt es in $PATH zu suchen.\n" " (lambda* (#:key outputs #:allow-other-keys)\n" " (let* ((out (assoc-ref outputs \"out\"))\n" " (bin (string-append out \"/bin\")))\n" " (substitute* (list (string-append bin \"/egrep\")\n" " (string-append bin \"/fgrep\"))\n" " ((\"^exec grep\")\n" " (string-append \"exec \" bin \"/grep\")))))))\n" #. type: Plain text #: guix-git/doc/guix.texi:10873 msgid "In the example below, phases are modified in two ways: the standard @code{configure} phase is deleted, presumably because the package does not have a @file{configure} script or anything similar, and the default @code{install} phase is replaced by one that manually copies the executable files to be installed:" msgstr "In dem Beispiel, das nun folgt, werden Phasen auf zweierlei Art geändert: Die Standard-@code{configure}-Phase wird gelöscht, meistens weil das Paket über kein @file{configure}-Skript oder etwas Ähnliches verfügt, und die vorgegebene @code{install}-Phase wird durch eine ersetzt, in der die zu installierenden ausführbaren Dateien manuell kopiert werden." #. type: lisp #: guix-git/doc/guix.texi:10885 #, no-wrap msgid "" "(modify-phases %standard-phases\n" " (delete 'configure) ;no 'configure' script\n" " (replace 'install\n" " (lambda* (#:key outputs #:allow-other-keys)\n" " ;; The package's Makefile doesn't provide an \"install\"\n" " ;; rule so do it by ourselves.\n" " (let ((bin (string-append (assoc-ref outputs \"out\")\n" " \"/bin\")))\n" " (install-file \"footswitch\" bin)\n" " (install-file \"scythe\" bin)))))\n" msgstr "" "(modify-phases %standard-phases\n" " (delete 'configure) ;kein 'configure'-Skript\n" " (replace 'install\n" " (lambda* (#:key outputs #:allow-other-keys)\n" " ;; Das Makefile im Paket enthält kein \"install\"-Ziel,\n" " ;; also müssen wir es selber machen.\n" " (let ((bin (string-append (assoc-ref outputs \"out\")\n" " \"/bin\")))\n" " (install-file \"footswitch\" bin)\n" " (install-file \"scythe\" bin)))))\n" #. type: subsection #: guix-git/doc/guix.texi:10889 #, no-wrap msgid "Wrappers" msgstr "Wrapper" #. type: cindex #: guix-git/doc/guix.texi:10891 #, no-wrap msgid "program wrappers" msgstr "Programme wrappen" #. type: cindex #: guix-git/doc/guix.texi:10892 #, no-wrap msgid "wrapping programs" msgstr "Wrappen, von Programmen" #. type: Plain text #: guix-git/doc/guix.texi:10898 msgid "It is not unusual for a command to require certain environment variables to be set for proper functioning, typically search paths (@pxref{Search Paths}). Failing to do that, the command might fail to find files or other commands it relies on, or it might pick the ``wrong'' ones---depending on the environment in which it runs. Examples include:" msgstr "Es kommt vor, dass Befehle nur richtig funktionieren, wenn bestimmte Umgebungsvariable festgelegt sind. Meistens geht es dabei um Suchpfade (siehe @ref{Search Paths}). Wenn man sie nicht zuweist, finden die Programme vielleicht benötigte Dateien oder andere Befehle @emph{nicht} oder sie nehmen die „falschen“, je nachdem, in welcher Umgebung man sie ausführt. Einige Beispiele:" #. type: itemize #: guix-git/doc/guix.texi:10902 msgid "a shell script that assumes all the commands it uses are in @env{PATH};" msgstr "ein Shell-Skript, wo erwartet wird, dass die darin benutzten Befehle in @env{PATH} zu finden sind," #. type: itemize #: guix-git/doc/guix.texi:10906 msgid "a Guile program that assumes all its modules are in @env{GUILE_LOAD_PATH} and @env{GUILE_LOAD_COMPILED_PATH};" msgstr "ein Guile-Programm, wo erwartet wird, dass dessen Module in @env{GUILE_LOAD_PATH} und @env{GUILE_LOAD_COMPILED_PATH} liegen," #. type: itemize #: guix-git/doc/guix.texi:10910 msgid "a Qt application that expects to find certain plugins in @env{QT_PLUGIN_PATH}." msgstr "eine Qt-Anwendung, für die bestimmte Plugins in @env{QT_PLUGIN_PATH} erwartet werden." #. type: Plain text #: guix-git/doc/guix.texi:10918 msgid "For a package writer, the goal is to make sure commands always work the same rather than depend on some external settings. One way to achieve that is to @dfn{wrap} commands in a thin script that sets those environment variables, thereby ensuring that those run-time dependencies are always found. The wrapper would be used to set @env{PATH}, @env{GUILE_LOAD_PATH}, or @env{QT_PLUGIN_PATH} in the examples above." msgstr "Das Ziel einer Paketautorin ist, dass Befehle immer auf gleiche Weise funktionieren statt von externen Einstellungen abhängig zu sein. Eine Möglichkeit, das zu bewerkstelligen, ist, Befehle in ein dünnes @dfn{Wrapper}-Skript einzukleiden, welches diese Umgebungsvariablen festlegt und so dafür sorgt, dass solche Laufzeitabhängigkeiten sicherlich gefunden werden. Der Wrapper würde in den obigen Beispielen also benutzt, um @env{PATH}, @env{GUILE_LOAD_PATH} oder @env{QT_PLUGIN_PATH} festzulegen." #. type: Plain text #: guix-git/doc/guix.texi:10921 msgid "To ease that task, the @code{(guix build utils)} module provides a couple of helpers to wrap commands." msgstr "Das Wrappen wird erleichtert durch ein paar Hilfsprozeduren im Modul @code{(guix build utils)}, mit denen Sie Befehle wrappen können." #. type: deffn #: guix-git/doc/guix.texi:10922 #, no-wrap msgid "{Procedure} wrap-program program [#:sh sh] [#:rest variables]" msgstr "{Prozedur} wrap-program Programm [#:sh sh] [#:rest Variable]" #. type: deffn #: guix-git/doc/guix.texi:10924 msgid "Make a wrapper for @var{program}. @var{variables} should look like this:" msgstr "Einen Wrapper für @var{Programm} anlegen. Die Liste @var{Variable} sollte so aussehen:" #. type: lisp #: guix-git/doc/guix.texi:10927 #, no-wrap msgid "'(@var{variable} @var{delimiter} @var{position} @var{list-of-directories})\n" msgstr "'(@var{Variable} @var{Trennzeichen} @var{Position} @var{Liste-von-Verzeichnissen})\n" #. type: deffn #: guix-git/doc/guix.texi:10931 msgid "where @var{delimiter} is optional. @code{:} will be used if @var{delimiter} is not given." msgstr "Das @var{Trennzeichen} ist optional. Wenn Sie keines angeben, wird @code{:} genommen." #. type: deffn #: guix-git/doc/guix.texi:10933 msgid "For example, this call:" msgstr "Zum Beispiel kopiert dieser Aufruf:" #. type: lisp #: guix-git/doc/guix.texi:10939 #, no-wrap msgid "" "(wrap-program \"foo\"\n" " '(\"PATH\" \":\" = (\"/gnu/.../bar/bin\"))\n" " '(\"CERT_PATH\" suffix (\"/gnu/.../baz/certs\"\n" " \"/qux/certs\")))\n" msgstr "" "(wrap-program \"foo\"\n" " '(\"PATH\" \":\" = (\"/gnu/…/bar/bin\"))\n" " '(\"CERT_PATH\" suffix (\"/gnu/…/baz/certs\"\n" " \"/qux/certs\")))\n" #. type: deffn #: guix-git/doc/guix.texi:10943 msgid "will copy @file{foo} to @file{.foo-real} and create the file @file{foo} with the following contents:" msgstr "@file{foo} nach @file{.foo-real} und erzeugt die Datei @file{foo} mit folgendem Inhalt:" #. type: example #: guix-git/doc/guix.texi:10949 #, no-wrap msgid "" "#!location/of/bin/bash\n" "export PATH=\"/gnu/.../bar/bin\"\n" "export CERT_PATH=\"$CERT_PATH$@{CERT_PATH:+:@}/gnu/.../baz/certs:/qux/certs\"\n" "exec -a $0 location/of/.foo-real \"$@@\"\n" msgstr "" "#!ort/mit/bin/bash\n" "export PATH=\"/gnu/…/bar/bin\"\n" "export CERT_PATH=\"$CERT_PATH$@{CERT_PATH:+:@}/gnu/…/baz/certs:/qux/certs\"\n" "exec -a $0 ort/mit/.foo-real \"$@@\"\n" #. type: deffn #: guix-git/doc/guix.texi:10954 msgid "If @var{program} has previously been wrapped by @code{wrap-program}, the wrapper is extended with definitions for @var{variables}. If it is not, @var{sh} will be used as the interpreter." msgstr "Wenn @var{Programm} bereits mit @code{wrap-program} gewrappt wurde, wird sein bestehender Wrapper um die Definitionen jeder Variable in der @var{Variable}-Liste ergänzt. Ansonsten wird ein Wrapper mit @var{sh} als Interpretierer angelegt." #. type: deffn #: guix-git/doc/guix.texi:10956 #, no-wrap msgid "{Procedure} wrap-script program [#:guile guile] [#:rest variables]" msgstr "{Prozedur} wrap-script Programm [#:guile guile] [#:rest Variable]" #. type: deffn #: guix-git/doc/guix.texi:10963 msgid "Wrap the script @var{program} such that @var{variables} are set first. The format of @var{variables} is the same as in the @code{wrap-program} procedure. This procedure differs from @code{wrap-program} in that it does not create a separate shell script. Instead, @var{program} is modified directly by prepending a Guile script, which is interpreted as a comment in the script's language." msgstr "Das Skript @var{Programm} in einen Wrapper wickeln, damit @var{Variable} vorher festgelegt werden. Das Format für @var{Variable} ist genau wie bei der Prozedur @code{wrap-program}. Der Unterschied zu @code{wrap-program} ist, dass kein getrenntes Shell-Skript erzeugt wird, sondern das @var{Programm} selbst abgeändert wird, indem zu Beginn von @var{Programm} ein Guile-Skript platziert wird. In der Sprache des Skripts wird das Guile-Skript als Kommentar interpretiert." #. type: deffn #: guix-git/doc/guix.texi:10966 msgid "Special encoding comments as supported by Python are recreated on the second line." msgstr "Besondere Kommentare zur Kodierung der Datei, wie es sie bei Python geben kann, werden auf der zweiten Zeile neu erzeugt." #. type: deffn #: guix-git/doc/guix.texi:10969 msgid "Note that this procedure can only be used once per file as Guile scripts are not supported." msgstr "Beachten Sie, dass diese Prozedur auf dieselbe Datei nur einmal angewandt werden kann, denn sie auf Guile-Skripts loszulassen wird @emph{nicht} unterstützt." #. type: cindex #: guix-git/doc/guix.texi:10974 #, no-wrap msgid "search path" msgstr "Suchpfad" #. type: Plain text #: guix-git/doc/guix.texi:10981 msgid "Many programs and libraries look for input data in a @dfn{search path}, a list of directories: shells like Bash look for executables in the command search path, a C compiler looks for @file{.h} files in its header search path, the Python interpreter looks for @file{.py} files in its search path, the spell checker has a search path for dictionaries, and so on." msgstr "Zahlreiche Programme und Bibliotheken suchen nach Eingabedaten in einem @dfn{Suchpfad}, d.h.@: einer Liste von Verzeichnissen: Shells wie Bash suchen ausführbare Dateien im Befehls-Suchpfad, ein C-Compiler sucht @file{.h}-Dateien in seinem Header-Suchpfad, der Python-Interpretierer sucht @file{.py}-Dateien in seinem Suchpfad, der Rechtschreibprüfer hat einen Suchpfad für Wörterbücher und so weiter." #. type: Plain text #: guix-git/doc/guix.texi:10989 msgid "Search paths can usually be defined or overridden @i{via} environment variables (@pxref{Environment Variables,,, libc, The GNU C Library Reference Manual}). For example, the search paths mentioned above can be changed by defining the @env{PATH}, @env{C_INCLUDE_PATH}, @env{PYTHONPATH} (or @env{GUIX_PYTHONPATH}), and @env{DICPATH} environment variables---you know, all these something-PATH variables that you need to get right or things ``won't be found''." msgstr "Suchpfade kann man für gewöhnlich über Umgebungsvariable festlegen (siehe @ref{Environment Variables,,, libc, Referenzhandbuch der GNU-C-Bibliothek}). Zum Beispiel ändern Sie die oben genannten Suchpfade, indem Sie den Wert der Umgebungsvariablen @env{PATH}, @env{C_INCLUDE_PATH}, @env{PYTHONPATH} (oder @env{GUIX_PYTHONPATH}) und @env{DICPATH} festlegen@tie{}– Sie wissen schon, diese Variablen, die auf @env{PATH} enden und wenn Sie etwas daran falsch machen, werden Dinge „nicht gefunden“." #. type: Plain text #: guix-git/doc/guix.texi:10999 msgid "You may have noticed from the command line that Guix ``knows'' which search path environment variables should be defined, and how. When you install packages in your default profile, the file @file{~/.guix-profile/etc/profile} is created, which you can ``source'' from the shell to set those variables. Likewise, if you ask @command{guix shell} to create an environment containing Python and NumPy, a Python library, and if you pass it the @option{--search-paths} option, it will tell you about @env{PATH} and @env{GUIX_PYTHONPATH} (@pxref{Invoking guix shell}):" msgstr "Vielleicht ist Ihnen auf der Befehlszeile aufgefallen, dass Guix Bescheid weiß, welche Umgebungsvariablen definiert sein müssen und wie. Wenn Sie Pakete in Ihr Standardprofil installieren, wird die Datei @file{~/.guix-profile/etc/profile} angelegt, die Sie mit @command{source} in Ihre Shell übernehmen können, damit die Variablen richtig festgelegt sind. Genauso werden Ihnen, wenn Sie mit @command{guix shell} eine Umgebung mit Python und der Python-Bibliothek NumPy erzeugen lassen und die Befehlszeilenoption @option{--search-paths} angeben, die Variablen @env{PATH} und @env{GUIX_PYTHONPATH} gezeigt (siehe @ref{Invoking guix shell}):" #. type: example #: guix-git/doc/guix.texi:11004 #, no-wrap msgid "" "$ guix shell python python-numpy --pure --search-paths\n" "export PATH=\"/gnu/store/@dots{}-profile/bin\"\n" "export GUIX_PYTHONPATH=\"/gnu/store/@dots{}-profile/lib/python3.9/site-packages\"\n" msgstr "" "$ guix shell python python-numpy --pure --search-paths\n" "export PATH=\"/gnu/store/@dots{}-profile/bin\"\n" "export GUIX_PYTHONPATH=\"/gnu/store/@dots{}-profile/lib/python3.9/site-packages\"\n" #. type: Plain text #: guix-git/doc/guix.texi:11008 msgid "When you omit @option{--search-paths}, it defines these environment variables right away, such that Python can readily find NumPy:" msgstr "Wenn Sie @option{--search-paths} weglassen, werden diese Umgebungsvariablen direkt festgelegt, so dass Python NumPy vorfinden kann:" #. type: example #: guix-git/doc/guix.texi:11017 #, no-wrap msgid "" "$ guix shell python python-numpy -- python3\n" "Python 3.9.6 (default, Jan 1 1970, 00:00:01)\n" "[GCC 10.3.0] on linux\n" "Type \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n" ">>> import numpy\n" ">>> numpy.version.version\n" "'1.20.3'\n" msgstr "" "$ guix shell python python-numpy -- python3\n" "Python 3.9.6 (default, Jan 1 1970, 00:00:01)\n" "[GCC 10.3.0] on linux\n" "Type \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n" ">>> import numpy\n" ">>> numpy.version.version\n" "'1.20.3'\n" #. type: Plain text #: guix-git/doc/guix.texi:11022 msgid "For this to work, the definition of the @code{python} package @emph{declares} the search path it cares about and its associated environment variable, @env{GUIX_PYTHONPATH}. It looks like this:" msgstr "Damit das funktioniert, wurden in der Definition des @code{python}-Pakets der dafür nötige Suchpfad und die zugehörige Umgebungsvariable @env{GUIX_PYTHONPATH} @emph{deklariert}. Das sieht so aus:" #. type: lisp #: guix-git/doc/guix.texi:11032 #, no-wrap msgid "" "(package\n" " (name \"python\")\n" " (version \"3.9.9\")\n" " ;; some fields omitted...\n" " (native-search-paths\n" " (list (search-path-specification\n" " (variable \"GUIX_PYTHONPATH\")\n" " (files (list \"lib/python/3.9/site-packages\"))))))\n" msgstr "" "(package\n" " (name \"python\")\n" " (version \"3.9.9\")\n" " ;; davor stehen andere Felder …\n" " (native-search-paths\n" " (list (search-path-specification\n" " (variable \"GUIX_PYTHONPATH\")\n" " (files (list \"lib/python/3.9/site-packages\"))))))\n" #. type: Plain text #: guix-git/doc/guix.texi:11047 msgid "What this @code{native-search-paths} field says is that, when the @code{python} package is used, the @env{GUIX_PYTHONPATH} environment variable must be defined to include all the @file{lib/python/3.9/site-packages} sub-directories encountered in its environment. (The @code{native-} bit means that, if we are in a cross-compilation environment, only native inputs may be added to the search path; @pxref{package Reference, @code{search-paths}}.) In the NumPy example above, the profile where @code{python} appears contains exactly one such sub-directory, and @env{GUIX_PYTHONPATH} is set to that. When there are several @file{lib/python/3.9/site-packages}---this is the case in package build environments---they are all added to @env{GUIX_PYTHONPATH}, separated by colons (@code{:})." msgstr "Die Aussage hinter dem @code{native-search-paths}-Feld ist, dass wenn das @code{python}-Paket benutzt wird, die Umgebungsvariable @env{GUIX_PYTHONPATH} so definiert wird, dass alle Unterverzeichnisse @file{lib/python/3.9/site-packages} in seiner Umgebung enthalten sind. (Mit @code{native-} meinen wir, dass in einer Umgebung zur Cross-Kompilierung nur native Eingaben zum Suchpfad hinzugefügt werden dürfen; siehe @ref{package Reference, @code{search-paths}}.) In unserem NumPy-Beispiel oben enthält das Profil, in dem @code{python} auftaucht, genau ein solches Unterverzeichnis, auf das @env{GUIX_PYTHONPATH} festgelegt wird. Wenn es mehrere @file{lib/python/3.9/site-packages} gibt@tie{}– etwa wenn wir über Erstellungsumgebungen reden@tie{}–, dann werden alle durch Doppelpunkte (@code{:}) getrennt zu @env{GUIX_PYTHONPATH} hinzugefügt." #. type: quotation #: guix-git/doc/guix.texi:11054 msgid "Notice that @env{GUIX_PYTHONPATH} is specified as part of the definition of the @code{python} package, and @emph{not} as part of that of @code{python-numpy}. This is because this environment variable ``belongs'' to Python, not NumPy: Python actually reads the value of that variable and honors it." msgstr "Wir weisen darauf hin, dass @env{GUIX_PYTHONPATH} als Teil der Definition des @code{python}-Pakets spezifiziert wird und @emph{nicht} als Teil von @code{python-numpy}. Der Grund ist, dass diese Umgebungsvariable zu Python „gehört“ und nicht zu NumPy: Python ist es, das den Wert der Variablen ausliest und befolgt." #. type: quotation #: guix-git/doc/guix.texi:11058 msgid "Corollary: if you create a profile that does not contain @code{python}, @code{GUIX_PYTHONPATH} will @emph{not} be defined, even if it contains packages that provide @file{.py} files:" msgstr "Daraus folgt, dass wenn Sie ein Profil ohne @code{python} erzeugen, @code{GUIX_PYTHONPATH} @emph{nicht} definiert wird, selbst wenn @file{.py}-Dateien zum Profil gehören:" #. type: example #: guix-git/doc/guix.texi:11062 #, no-wrap msgid "" "$ guix shell python-numpy --search-paths --pure\n" "export PATH=\"/gnu/store/@dots{}-profile/bin\"\n" msgstr "" "$ guix shell python-numpy --search-paths --pure\n" "export PATH=\"/gnu/store/@dots{}-profile/bin\"\n" #. type: quotation #: guix-git/doc/guix.texi:11066 msgid "This makes a lot of sense if we look at this profile in isolation: no software in this profile would read @env{GUIX_PYTHONPATH}." msgstr "Das ist logisch, wenn wir das Profil alleine betrachten: Keine Software im Profil würde @env{GUIX_PYTHONPATH} auslesen." #. type: Plain text #: guix-git/doc/guix.texi:11076 msgid "Of course, there are many variations on that theme: some packages honor more than one search path, some use separators other than colon, some accumulate several directories in their search path, and so on. A more complex example is the search path of libxml2: the value of the @env{XML_CATALOG_FILES} environment variable is space-separated, it must contain a list of @file{catalog.xml} files (not directories), which are to be found in @file{xml} sub-directories---nothing less. The search path specification looks like this:" msgstr "Selbstverständlich gibt es mehr als nur eine Sorte Suchpfad: Es gibt Pakete, die mehrere Suchpfade berücksichtigen, solche mit anderen Trennzeichen als dem Doppelpunkt, solche, die im Suchpfad gleich mehrere Verzeichnisse aufnehmen, und so weiter. Ein weiterführendes Beispiel ist der Suchpfad von libxml2: Der Wert der Umgebungsvariablen @env{XML_CATALOG_FILES} wird durch Leerzeichen getrennt, er muss eine Liste von @file{catalog.xml}-Dateien (keinen Verzeichnissen) fassen und diese sind in @file{xml}-Unterverzeichnissen zu finden@tie{}– ganz schön anspruchsvoll. Die Suchpfadspezifikation dazu sieht so aus:" #. type: lisp #: guix-git/doc/guix.texi:11088 #, no-wrap msgid "" "(package\n" " (name \"libxml2\")\n" " ;; some fields omitted\n" " (native-search-paths\n" " (list (search-path-specification\n" " (variable \"XML_CATALOG_FILES\")\n" " (separator \" \")\n" " (files '(\"xml\"))\n" " (file-pattern \"^catalog\\\\.xml$\")\n" " (file-type 'regular)))))\n" msgstr "" "(package\n" " (name \"libxml2\")\n" " ;; davor stehen andere Felder …\n" " (native-search-paths\n" " (list (search-path-specification\n" " (variable \"XML_CATALOG_FILES\")\n" " (separator \" \")\n" " (files '(\"xml\"))\n" " (file-pattern \"^catalog\\\\.xml$\")\n" " (file-type 'regular)))))\n" #. type: Plain text #: guix-git/doc/guix.texi:11091 msgid "Worry not, search path specifications are usually not this tricky." msgstr "Keine Angst; die meisten Suchpfadspezifikationen sind einfacher." #. type: Plain text #: guix-git/doc/guix.texi:11095 msgid "The @code{(guix search-paths)} module defines the data type of search path specifications and a number of helper procedures. Below is the reference of search path specifications." msgstr "Im Modul @code{(guix search-paths)} wird der Datentyp für Suchpfadspezifikationen definiert sowie eine Reihe von Hilfsprozeduren. Es folgt nun die Referenz der Suchpfadspezifikationen." #. type: deftp #: guix-git/doc/guix.texi:11096 #, no-wrap msgid "{Data Type} search-path-specification" msgstr "{Datentyp} search-path-specification" #. type: deftp #: guix-git/doc/guix.texi:11098 msgid "The data type for search path specifications." msgstr "Der Datentyp für Suchpfadspezifikationen." #. type: code{#1} #: guix-git/doc/guix.texi:11100 #, no-wrap msgid "variable" msgstr "variable" #. type: table #: guix-git/doc/guix.texi:11102 msgid "The name of the environment variable for this search path (a string)." msgstr "Welchen Namen die Umgebungsvariable für diesen Suchpfad trägt (als Zeichenkette)." #. type: code{#1} #: guix-git/doc/guix.texi:11103 guix-git/doc/guix.texi:20647 #, no-wrap msgid "files" msgstr "files" #. type: table #: guix-git/doc/guix.texi:11106 msgid "The list of sub-directories (strings) that should be added to the search path." msgstr "Eine Liste der Unterverzeichnisse, die zum Suchpfad hinzugefügt werden sollen." #. type: item #: guix-git/doc/guix.texi:11107 #, no-wrap msgid "@code{separator} (default: @code{\":\"})" msgstr "@code{separator} (Vorgabe: @code{\":\"})" #. type: table #: guix-git/doc/guix.texi:11109 msgid "The string used to separate search path components." msgstr "Die Zeichenkette, wodurch Komponenten des Suchpfads voneinander getrennt werden." #. type: table #: guix-git/doc/guix.texi:11117 msgid "As a special case, a @code{separator} value of @code{#f} specifies a ``single-component search path''---in other words, a search path that cannot contain more than one element. This is useful in some cases, such as the @code{SSL_CERT_DIR} variable (honored by OpenSSL, cURL, and a few other packages) or the @code{ASPELL_DICT_DIR} variable (honored by the GNU Aspell spell checker), both of which must point to a single directory." msgstr "Für den Sonderfall, dass für @code{separator} der Wert @code{#f} gewählt wird, handelt es sich um einen „Suchpfad mit nur einer Komponente“, mit anderen Worten einen Suchpfad, der höchstens ein Element enthalten darf. Das ist für Fälle gedacht wie die @code{SSL_CERT_DIR}-Variable (die OpenSSL, cURL und ein paar andere Pakete beachten) oder die @code{ASPELL_DICT_DIR}-Variable (auf die das Rechtschreibprüfprogramm GNU@tie{}Aspell achtet), welche beide auf ein einzelnes Verzeichnis zeigen müssen." #. type: item #: guix-git/doc/guix.texi:11118 #, no-wrap msgid "@code{file-type} (default: @code{'directory})" msgstr "@code{file-type} (Vorgabe: @code{'directory})" #. type: table #: guix-git/doc/guix.texi:11122 msgid "The type of file being matched---@code{'directory} or @code{'regular}, though it can be any symbol returned by @code{stat:type} (@pxref{File System, @code{stat},, guile, GNU Guile Reference Manual})." msgstr "Welche Art von Datei passt@tie{}– hier kann @code{'directory} (für Verzeichnisse) oder @code{'regular} (für reguläre Dateien) angegeben werden, aber auch jedes andere Symbol, was @code{stat:type} zurückliefern kann (siehe @ref{File System, @code{stat},, guile, Referenzhandbuch zu GNU Guile})." #. type: table #: guix-git/doc/guix.texi:11125 msgid "In the libxml2 example above, we would match regular files; in the Python example, we would match directories." msgstr "Im libxml2-Beispiel oben sind es reguläre Dateien, die wir suchen, dagegen würde beim Python-Beispiel nach Verzeichnissen gesucht." #. type: item #: guix-git/doc/guix.texi:11126 #, no-wrap msgid "@code{file-pattern} (default: @code{#f})" msgstr "@code{file-pattern} (Vorgabe: @code{#f})" #. type: table #: guix-git/doc/guix.texi:11130 msgid "This must be either @code{#f} or a regular expression specifying files to be matched @emph{within} the sub-directories specified by the @code{files} field." msgstr "Das hier muss entweder @code{#f} oder ein regulärer Ausdruck sein, der angibt, welche Dateien @emph{innerhalb} der mit dem Feld @code{files} angegebenen Unterverzeichnisse darauf passen." #. type: table #: guix-git/doc/guix.texi:11132 msgid "Again, the libxml2 example shows a situation where this is needed." msgstr "Auch hier sehen Sie im libxml2-Beispiel eine Situation, wo dies gebraucht wird." #. type: Plain text #: guix-git/doc/guix.texi:11138 msgid "Some search paths are not tied by a single package but to many packages. To reduce duplications, some of them are pre-defined in @code{(guix search-paths)}." msgstr "Manche Suchpfade sind an mehr als ein Paket gekoppelt. Um sie nicht doppelt und dreifach zu spezifizieren, sind manche davon vordefiniert in @code{(guix search-paths)}." #. type: defvar #: guix-git/doc/guix.texi:11139 #, no-wrap msgid "$SSL_CERT_DIR" msgstr "$SSL_CERT_DIR" #. type: defvarx #: guix-git/doc/guix.texi:11140 #, no-wrap msgid "$SSL_CERT_FILE" msgstr "$SSL_CERT_FILE" #. type: defvar #: guix-git/doc/guix.texi:11143 msgid "These two search paths indicate where X.509 certificates can be found (@pxref{X.509 Certificates})." msgstr "Mit diesen beiden Suchpfaden wird angegeben, wo X.509-Zertifikate zu finden sind (siehe @ref{X.509 Certificates})." #. type: Plain text #: guix-git/doc/guix.texi:11146 msgid "These pre-defined search paths can be used as in the following example:" msgstr "Diese vordefinierten Suchpfade kann man wie im folgenden Beispiel benutzen:" #. type: lisp #: guix-git/doc/guix.texi:11152 #, no-wrap msgid "" "(package\n" " (name \"curl\")\n" " ;; some fields omitted ...\n" " (native-search-paths (list $SSL_CERT_DIR $SSL_CERT_FILE)))\n" msgstr "" "(package\n" " (name \"curl\")\n" " ;; eigentlich stehen hier noch ein paar Felder …\n" " (native-search-paths (list $SSL_CERT_DIR $SSL_CERT_FILE)))\n" #. type: Plain text #: guix-git/doc/guix.texi:11157 msgid "How do you turn search path specifications on one hand and a bunch of directories on the other hand in a set of environment variable definitions? That's the job of @code{evaluate-search-paths}." msgstr "Wie macht man aus Suchpfadspezifikationen einerseits und einem Haufen Verzeichnisse andererseits nun eine Menge von Definitionen für Umgebungsvariable? Das ist die Aufgabe von @code{evaluate-search-paths}." #. type: deffn #: guix-git/doc/guix.texi:11158 #, no-wrap msgid "{Procedure} evaluate-search-paths search-paths directories [getenv]" msgstr "{Prozedur} evaluate-search-paths Suchpfade Verzeichnisse [getenv]" #. type: deffn #: guix-git/doc/guix.texi:11163 msgid "Evaluate @var{search-paths}, a list of search-path specifications, for @var{directories}, a list of directory names, and return a list of specification/value pairs. Use @var{getenv} to determine the current settings and report only settings not already effective." msgstr "Die @var{Suchpfade} auswerten. Sie werden als Liste von Suchpfadspezifikationen übergeben und untersucht werden @var{Verzeichnisse}, eine Liste von Verzeichnisnamen. Das Ergebnis wird als Liste von Paaren aus Spezifikation und Wert zurückgeliefert. Wenn Sie @var{getenv} angeben, werden darüber die momentanen Festlegungen erfasst und nur die @emph{nicht} bereits gültigen gemeldet." #. type: Plain text #: guix-git/doc/guix.texi:11167 msgid "The @code{(guix profiles)} provides a higher-level helper procedure, @code{load-profile}, that sets the environment variables of a profile." msgstr "Das Modul @code{(guix profiles)} enthält eine zugeschnittenere Hilfsprozedur @code{load-profile}, mit der Umgebungsvariable eines Profils festgelegt werden." #. type: cindex #: guix-git/doc/guix.texi:11172 #, no-wrap msgid "store items" msgstr "Store-Objekte" #. type: cindex #: guix-git/doc/guix.texi:11173 #, no-wrap msgid "store paths" msgstr "Store-Pfade" #. type: Plain text #: guix-git/doc/guix.texi:11184 msgid "Conceptually, the @dfn{store} is the place where derivations that have been built successfully are stored---by default, @file{/gnu/store}. Sub-directories in the store are referred to as @dfn{store items} or sometimes @dfn{store paths}. The store has an associated database that contains information such as the store paths referred to by each store path, and the list of @emph{valid} store items---results of successful builds. This database resides in @file{@var{localstatedir}/guix/db}, where @var{localstatedir} is the state directory specified @i{via} @option{--localstatedir} at configure time, usually @file{/var}." msgstr "Konzeptionell ist der @dfn{Store} der Ort, wo Ableitungen nach erfolgreicher Erstellung gespeichert werden@tie{}– standardmäßig finden Sie ihn in @file{/gnu/store}. Unterverzeichnisse im Store werden @dfn{Store-Objekte} oder manchmal auch @dfn{Store-Pfade} genannt. Mit dem Store ist eine Datenbank assoziiert, die Informationen enthält wie zum Beispiel, welche Store-Pfade jeder Store-Pfad jeweils referenziert, und eine Liste, welche Store-Objekte @emph{gültig} sind, also Ergebnisse erfolgreicher Erstellungen sind. Die Datenbank befindet sich in @file{@var{localstatedir}/guix/db}, wobei @var{localstatedir} das mit @option{--localstatedir} bei der Ausführung von „configure“ angegebene Zustandsverzeichnis ist, normalerweise @file{/var}." #. type: Plain text #: guix-git/doc/guix.texi:11189 msgid "The store is @emph{always} accessed by the daemon on behalf of its clients (@pxref{Invoking guix-daemon}). To manipulate the store, clients connect to the daemon over a Unix-domain socket, send requests to it, and read the result---these are remote procedure calls, or RPCs." msgstr "Auf den Store wird @emph{nur} durch den Daemon im Auftrag seiner Clients zugegriffen (siehe @ref{Invoking guix-daemon}). Um den Store zu verändern, verbinden sich Clients über einen Unix-Socket mit dem Daemon, senden ihm entsprechende Anfragen und lesen dann dessen Antwort@tie{}– so etwas nennt sich entfernter Prozeduraufruf (englisch „Remote Procedure Call“ oder kurz RPC)." #. type: quotation #: guix-git/doc/guix.texi:11194 msgid "Users must @emph{never} modify files under @file{/gnu/store} directly. This would lead to inconsistencies and break the immutability assumptions of Guix's functional model (@pxref{Introduction})." msgstr "Benutzer dürfen @emph{niemals} Dateien in @file{/gnu/store} direkt verändern, sonst wären diese nicht mehr konsistent und die Grundannahmen im funktionalen Modell von Guix, dass die Objekte unveränderlich sind, wären dahin (siehe @ref{Introduction})." #. type: quotation #: guix-git/doc/guix.texi:11198 msgid "@xref{Invoking guix gc, @command{guix gc --verify}}, for information on how to check the integrity of the store and attempt recovery from accidental modifications." msgstr "Siehe @ref{Invoking guix gc, @command{guix gc --verify}} für Informationen, wie die Integrität des Stores überprüft und nach versehentlichen Veränderungen unter Umständen wiederhergestellt werden kann." #. type: Plain text #: guix-git/doc/guix.texi:11205 msgid "The @code{(guix store)} module provides procedures to connect to the daemon, and to perform RPCs. These are described below. By default, @code{open-connection}, and thus all the @command{guix} commands, connect to the local daemon or to the URI specified by the @env{GUIX_DAEMON_SOCKET} environment variable." msgstr "Das Modul @code{(guix store)} bietet Prozeduren an, um sich mit dem Daemon zu verbinden und entfernte Prozeduraufrufe durchzuführen. Diese werden im Folgenden beschrieben. Das vorgegebene Verhalten von @code{open-connection}, und daher allen @command{guix}-Befehlen, ist, sich mit dem lokalen Daemon oder dem an der in der Umgebungsvariablen @env{GUIX_DAEMON_SOCKET} angegeben URL zu verbinden." #. type: defvr #: guix-git/doc/guix.texi:11206 #, no-wrap msgid "{Environment Variable} GUIX_DAEMON_SOCKET" msgstr "{Umgebungsvariable} GUIX_DAEMON_SOCKET" #. type: defvr #: guix-git/doc/guix.texi:11211 msgid "When set, the value of this variable should be a file name or a URI designating the daemon endpoint. When it is a file name, it denotes a Unix-domain socket to connect to. In addition to file names, the supported URI schemes are:" msgstr "Ist diese Variable gesetzt, dann sollte ihr Wert ein Dateipfad oder eine URI sein, worüber man sich mit dem Daemon verbinden kann. Ist der Wert der Pfad zu einer Datei, bezeichnet dieser einen Unix-Socket, mit dem eine Verbindung hergestellt werden soll. Ist er eine URI, so werden folgende URI-Schemata unterstützt:" #. type: itemx #: guix-git/doc/guix.texi:11214 #, no-wrap msgid "unix" msgstr "unix" #. type: table #: guix-git/doc/guix.texi:11218 msgid "These are for Unix-domain sockets. @code{file:///var/guix/daemon-socket/socket} is equivalent to @file{/var/guix/daemon-socket/socket}." msgstr "Für Unix-Sockets. @code{file:///var/guix/daemon-socket/socket} kann gleichbedeutend auch als @file{/var/guix/daemon-socket/socket} angegeben werden." #. type: table #: guix-git/doc/guix.texi:11227 msgid "These URIs denote connections over TCP/IP, without encryption nor authentication of the remote host. The URI must specify the host name and optionally a port number (by default port 44146 is used):" msgstr "Solche URIs benennen Verbindungen über TCP/IP ohne Verschlüsselung oder Authentifizierung des entfernten Rechners. Die URI muss den Hostnamen, also den Rechnernamen des entfernten Rechners, und optional eine Portnummer angeben (sonst wird als Vorgabe der Port 44146 benutzt):" #. type: example #: guix-git/doc/guix.texi:11230 #, no-wrap msgid "guix://master.guix.example.org:1234\n" msgstr "guix://master.guix.example.org:1234\n" #. type: table #: guix-git/doc/guix.texi:11235 msgid "This setup is suitable on local networks, such as clusters, where only trusted nodes may connect to the build daemon at @code{master.guix.example.org}." msgstr "Diese Konfiguration ist für lokale Netzwerke wie etwa in Rechen-Clustern geeignet, wo sich nur vertrauenswürdige Knoten mit dem Erstellungs-Daemon z.B.@: unter @code{master.guix.example.org} verbinden können." #. type: table #: guix-git/doc/guix.texi:11239 msgid "The @option{--listen} option of @command{guix-daemon} can be used to instruct it to listen for TCP connections (@pxref{Invoking guix-daemon, @option{--listen}})." msgstr "Die Befehlszeilenoption @option{--listen} von @command{guix-daemon} kann benutzt werden, damit er auf TCP-Verbindungen lauscht (siehe @ref{Invoking guix-daemon, @option{--listen}})." #. type: item #: guix-git/doc/guix.texi:11240 #, no-wrap msgid "ssh" msgstr "ssh" #. type: cindex #: guix-git/doc/guix.texi:11241 #, no-wrap msgid "SSH access to build daemons" msgstr "SSH-Zugriff auf Erstellungs-Daemons" #. type: table #: guix-git/doc/guix.texi:11247 msgid "These URIs allow you to connect to a remote daemon over SSH@. This feature requires Guile-SSH (@pxref{Requirements}) and a working @command{guile} binary in @env{PATH} on the destination machine. It supports public key and GSSAPI authentication. A typical URL might look like this:" msgstr "Mit solchen URIs kann eine Verbindung zu einem entfernten Daemon über SSH hergestellt werden. Diese Funktionalität setzt Guile-SSH voraus (siehe @ref{Requirements}) sowie eine funktionierende @command{guile}-Binärdatei, deren Ort im @env{PATH} der Zielmaschine eingetragen ist. Authentisierung über einen öffentlichen Schlüssel oder GSSAPI ist möglich. Eine typische URL sieht so aus:" #. type: example #: guix-git/doc/guix.texi:11250 #, no-wrap msgid "ssh://charlie@@guix.example.org:22\n" msgstr "ssh://charlie@@guix.example.org:22\n" #. type: table #: guix-git/doc/guix.texi:11254 msgid "As for @command{guix copy}, the usual OpenSSH client configuration files are honored (@pxref{Invoking guix copy})." msgstr "Was @command{guix copy} betrifft, richtet es sich nach den üblichen OpenSSH-Client-Konfigurationsdateien (siehe @ref{Invoking guix copy})." #. type: defvr #: guix-git/doc/guix.texi:11257 msgid "Additional URI schemes may be supported in the future." msgstr "In Zukunft könnten weitere URI-Schemata unterstützt werden." #. type: quotation #: guix-git/doc/guix.texi:11264 msgid "The ability to connect to remote build daemons is considered experimental as of @value{VERSION}. Please get in touch with us to share any problems or suggestions you may have (@pxref{Contributing})." msgstr "Die Fähigkeit, sich mit entfernten Erstellungs-Daemons zu verbinden, sehen wir als experimentell an, Stand @value{VERSION}. Bitte diskutieren Sie mit uns jegliche Probleme oder Vorschläge, die Sie haben könnten (siehe @ref{Contributing})." #. type: deffn #: guix-git/doc/guix.texi:11267 #, no-wrap msgid "{Procedure} open-connection [uri] [#:reserve-space? #t]" msgstr "{Prozedur} open-connection [URI] [#:reserve-space? #t]" #. type: deffn #: guix-git/doc/guix.texi:11272 msgid "Connect to the daemon over the Unix-domain socket at @var{uri} (a string). When @var{reserve-space?} is true, instruct it to reserve a little bit of extra space on the file system so that the garbage collector can still operate should the disk become full. Return a server object." msgstr "Sich mit dem Daemon über den Unix-Socket an @var{URI} verbinden (einer Zeichenkette). Wenn @var{reserve-space?} wahr ist, lässt ihn das etwas zusätzlichen Speicher im Dateisystem reservieren, damit der Müllsammler auch dann noch funktioniert, wenn die Platte zu voll wird. Liefert ein Server-Objekt." #. type: deffn #: guix-git/doc/guix.texi:11275 msgid "@var{file} defaults to @code{%default-socket-path}, which is the normal location given the options that were passed to @command{configure}." msgstr "@var{URI} nimmt standardmäßig den Wert von @code{%default-socket-path} an, was dem bei der Installation mit dem Aufruf von @command{configure} ausgewählten Vorgabeort entspricht, gemäß den Befehlszeilenoptionen, mit denen @command{configure} aufgerufen wurde." #. type: deffn #: guix-git/doc/guix.texi:11277 #, no-wrap msgid "{Procedure} close-connection server" msgstr "{Prozedur} close-connection Server" #. type: deffn #: guix-git/doc/guix.texi:11279 msgid "Close the connection to @var{server}." msgstr "Die Verbindung zum @var{Server} trennen." #. type: defvar #: guix-git/doc/guix.texi:11281 #, no-wrap msgid "current-build-output-port" msgstr "current-build-output-port" #. type: defvar #: guix-git/doc/guix.texi:11284 msgid "This variable is bound to a SRFI-39 parameter, which refers to the port where build and error logs sent by the daemon should be written." msgstr "Diese Variable ist an einen SRFI-39-Parameter gebunden, der auf den Scheme-Port verweist, an den vom Daemon empfangene Erstellungsprotokolle und Fehlerprotokolle geschrieben werden sollen." #. type: Plain text #: guix-git/doc/guix.texi:11288 msgid "Procedures that make RPCs all take a server object as their first argument." msgstr "Prozeduren, die entfernte Prozeduraufrufe durchführen, nehmen immer ein Server-Objekt als ihr erstes Argument." #. type: cindex #: guix-git/doc/guix.texi:11289 #, no-wrap msgid "invalid store items" msgstr "ungültige Store-Objekte" #. type: deffn #: guix-git/doc/guix.texi:11290 #, no-wrap msgid "{Procedure} valid-path? server path" msgstr "{Prozedur} valid-path? Server Pfad" #. type: deffn #: guix-git/doc/guix.texi:11295 msgid "Return @code{#t} when @var{path} designates a valid store item and @code{#f} otherwise (an invalid item may exist on disk but still be invalid, for instance because it is the result of an aborted or failed build)." msgstr "Liefert @code{#t}, wenn der @var{Pfad} ein gültiges Store-Objekt benennt, und sonst @code{#f} (ein ungültiges Objekt kann auf der Platte gespeichert sein, tatsächlich aber ungültig sein, zum Beispiel weil es das Ergebnis einer abgebrochenen oder fehlgeschlagenen Erstellung ist)." #. type: deffn #: guix-git/doc/guix.texi:11298 msgid "A @code{&store-protocol-error} condition is raised if @var{path} is not prefixed by the store directory (@file{/gnu/store})." msgstr "Ein @code{&store-protocol-error}-Fehlerzustand wird ausgelöst, wenn der @var{Pfad} nicht mit dem Store-Verzeichnis als Präfix beginnt (@file{/gnu/store})." #. type: deffn #: guix-git/doc/guix.texi:11300 #, no-wrap msgid "{Procedure} add-text-to-store server name text [references]" msgstr "{Prozedur} add-text-to-store Server Name Text [Referenzen]" #. type: deffn #: guix-git/doc/guix.texi:11304 msgid "Add @var{text} under file @var{name} in the store, and return its store path. @var{references} is the list of store paths referred to by the resulting store path." msgstr "Den @var{Text} im Store in einer Datei namens @var{Name} ablegen und ihren Store-Pfad zurückliefern. @var{Referenzen} ist die Liste der Store-Pfade, die der Store-Pfad dann referenzieren soll." #. type: deffn #: guix-git/doc/guix.texi:11306 #, no-wrap msgid "{Procedure} build-derivations store derivations [mode]" msgstr "{Prozedur} build-derivations Store Ableitungen [Modus]" #. type: deffn #: guix-git/doc/guix.texi:11310 msgid "Build @var{derivations}, a list of @code{<derivation>} objects, @file{.drv} file names, or derivation/output pairs, using the specified @var{mode}---@code{(build-mode normal)} by default." msgstr "Die @var{Ableitungen} erstellen (eine Liste von @code{<derivation>}-Objekten, @file{.drv}-Dateinamen oder Paaren aus je Ableitung und Ausgabe. Dabei gilt der angegebene @var{Modus}@tie{}– vorgegeben ist @code{(build-mode normal)}." #. type: Plain text #: guix-git/doc/guix.texi:11316 msgid "Note that the @code{(guix monads)} module provides a monad as well as monadic versions of the above procedures, with the goal of making it more convenient to work with code that accesses the store (@pxref{The Store Monad})." msgstr "Es sei erwähnt, dass im Modul @code{(guix monads)} eine Monade sowie monadische Versionen obiger Prozeduren angeboten werden, damit an Code, der auf den Store zugreift, bequemer gearbeitet werden kann (siehe @ref{The Store Monad})." #. type: i{#1} #: guix-git/doc/guix.texi:11319 msgid "This section is currently incomplete." msgstr "Dieser Abschnitt ist im Moment noch unvollständig." #. type: cindex #: guix-git/doc/guix.texi:11323 #, no-wrap msgid "derivations" msgstr "Ableitungen" #. type: Plain text #: guix-git/doc/guix.texi:11327 msgid "Low-level build actions and the environment in which they are performed are represented by @dfn{derivations}. A derivation contains the following pieces of information:" msgstr "Systemnahe Erstellungsaktionen sowie die Umgebung, in der selbige durchzuführen sind, werden durch @dfn{Ableitungen} dargestellt. Eine Ableitung enthält folgende Informationen:" #. type: itemize #: guix-git/doc/guix.texi:11332 msgid "The outputs of the derivation---derivations produce at least one file or directory in the store, but may produce more." msgstr "Die Ausgaben, die die Ableitung hat. Ableitungen erzeugen mindestens eine Datei bzw. ein Verzeichnis im Store, können aber auch mehrere erzeugen." #. type: cindex #: guix-git/doc/guix.texi:11334 #, no-wrap msgid "build-time dependencies" msgstr "Erstellungszeitabhängigkeiten" #. type: cindex #: guix-git/doc/guix.texi:11335 #, no-wrap msgid "dependencies, build-time" msgstr "Abhängigkeiten zur Erstellungszeit" #. type: itemize #: guix-git/doc/guix.texi:11339 msgid "The inputs of the derivation---i.e., its build-time dependencies---which may be other derivations or plain files in the store (patches, build scripts, etc.)." msgstr "Die Eingaben der Ableitung, also Abhängigkeiten zur Zeit ihrer Erstellung, die entweder andere Ableitungen oder einfache Dateien im Store sind (wie Patches, Erstellungsskripts usw.)." #. type: itemize #: guix-git/doc/guix.texi:11342 msgid "The system type targeted by the derivation---e.g., @code{x86_64-linux}." msgstr "Das System, wofür mit der Ableitung erstellt wird, also ihr Ziel@tie{}– z.B.@: @code{x86_64-linux}." #. type: itemize #: guix-git/doc/guix.texi:11346 msgid "The file name of a build script in the store, along with the arguments to be passed." msgstr "Der Dateiname eines Erstellungsskripts im Store, zusammen mit den Argumenten, mit denen es aufgerufen werden soll." #. type: itemize #: guix-git/doc/guix.texi:11349 msgid "A list of environment variables to be defined." msgstr "Eine Liste zu definierender Umgebungsvariabler." #. type: cindex #: guix-git/doc/guix.texi:11352 #, no-wrap msgid "derivation path" msgstr "Ableitungspfad" #. type: Plain text #: guix-git/doc/guix.texi:11360 msgid "Derivations allow clients of the daemon to communicate build actions to the store. They exist in two forms: as an in-memory representation, both on the client- and daemon-side, and as files in the store whose name end in @file{.drv}---these files are referred to as @dfn{derivation paths}. Derivations paths can be passed to the @code{build-derivations} procedure to perform the build actions they prescribe (@pxref{The Store})." msgstr "Ableitungen ermöglichen es den Clients des Daemons, diesem Erstellungsaktionen für den Store mitzuteilen. Es gibt davon zwei Arten, sowohl Darstellungen im Arbeitsspeicher jeweils für Client und Daemon als auch Dateien im Store, deren Namen auf @file{.drv} enden@tie{}– diese Dateien werden als @dfn{Ableitungspfade} bezeichnet. Ableitungspfade können an die Prozedur @code{build-derivations} übergeben werden, damit die darin niedergeschriebenen Erstellungsaktionen durchgeführt werden (siehe @ref{The Store})." #. type: cindex #: guix-git/doc/guix.texi:11361 #, no-wrap msgid "fixed-output derivations" msgstr "Ableitungen mit fester Ausgabe" #. type: Plain text #: guix-git/doc/guix.texi:11368 msgid "Operations such as file downloads and version-control checkouts for which the expected content hash is known in advance are modeled as @dfn{fixed-output derivations}. Unlike regular derivations, the outputs of a fixed-output derivation are independent of its inputs---e.g., a source code download produces the same result regardless of the download method and tools being used." msgstr "Operationen wie das Herunterladen von Dateien und Checkouts von unter Versionskontrolle stehenden Quelldateien, bei denen der Hash des Inhalts im Voraus bekannt ist, werden als @dfn{Ableitungen mit fester Ausgabe} modelliert. Anders als reguläre Ableitungen sind die Ausgaben von Ableitungen mit fester Ausgabe unabhängig von ihren Eingaben@tie{}– z.B.@: liefert das Herunterladen desselben Quellcodes dasselbe Ergebnis unabhängig davon, mit welcher Methode und welchen Werkzeugen er heruntergeladen wurde." #. type: item #: guix-git/doc/guix.texi:11369 guix-git/doc/guix.texi:15790 #, no-wrap msgid "references" msgstr "references" #. type: cindex #: guix-git/doc/guix.texi:11370 #, no-wrap msgid "run-time dependencies" msgstr "Laufzeitabhängigkeiten" #. type: cindex #: guix-git/doc/guix.texi:11371 #, no-wrap msgid "dependencies, run-time" msgstr "Abhängigkeiten, zur Laufzeit" #. type: Plain text #: guix-git/doc/guix.texi:11378 msgid "The outputs of derivations---i.e., the build results---have a set of @dfn{references}, as reported by the @code{references} RPC or the @command{guix gc --references} command (@pxref{Invoking guix gc}). References are the set of run-time dependencies of the build results. References are a subset of the inputs of the derivation; this subset is automatically computed by the build daemon by scanning all the files in the outputs." msgstr "Den Ausgaben von Ableitungen@tie{}– d.h.@: Erstellungergebnissen@tie{}– ist eine Liste von @dfn{Referenzen} zugeordnet, die auch der entfernte Prozeduraufruf @code{references} oder der Befehl @command{guix gc --references} liefert (siehe @ref{Invoking guix gc}). Referenzen sind die Menge der Laufzeitabhängigkeiten von Erstellungsergebnissen. Referenzen sind eine Teilmenge der Eingaben von Ableitungen; die Teilmenge wird automatisch ermittelt, indem der Erstellungsdaemon alle Dateien unter den Ausgaben nach Referenzen durchsucht." #. type: Plain text #: guix-git/doc/guix.texi:11383 msgid "The @code{(guix derivations)} module provides a representation of derivations as Scheme objects, along with procedures to create and otherwise manipulate derivations. The lowest-level primitive to create a derivation is the @code{derivation} procedure:" msgstr "Das Modul @code{(guix derivations)} stellt eine Repräsentation von Ableitungen als Scheme-Objekte zur Verfügung, zusammen mit Prozeduren, um Ableitungen zu erzeugen und zu manipulieren. Die am wenigsten abstrahierte Methode, eine Ableitung zu erzeugen, ist mit der Prozedur @code{derivation}:" #. type: deffn #: guix-git/doc/guix.texi:11384 #, no-wrap msgid "{Procedure} derivation store name builder args @" msgstr "{Prozedur} derivation Store Name Ersteller Argumente @" #. type: deffn #: guix-git/doc/guix.texi:11393 msgid "[#:outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:inputs '()] [#:env-vars '()] @ [#:system (%current-system)] [#:references-graphs #f] @ [#:allowed-references #f] [#:disallowed-references #f] @ [#:leaked-env-vars #f] [#:local-build? #f] @ [#:substitutable? #t] [#:properties '()] Build a derivation with the given arguments, and return the resulting @code{<derivation>} object." msgstr "[#:outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:inputs '()] [#:env-vars '()] @ [#:system (%current-system)] [#:references-graphs #f] @ [#:allowed-references #f] [#:disallowed-references #f] @ [#:leaked-env-vars #f] [#:local-build? #f] @ [#:substitutable? #t] [#:properties '()] Eine Ableitungen mit den @var{Argumente}n erstellen und das resultierende @code{<derivation>}-Objekt liefern." #. type: deffn #: guix-git/doc/guix.texi:11400 msgid "When @var{hash} and @var{hash-algo} are given, a @dfn{fixed-output derivation} is created---i.e., one whose result is known in advance, such as a file download. If, in addition, @var{recursive?} is true, then that fixed output may be an executable file or a directory and @var{hash} must be the hash of an archive containing this output." msgstr "Wurden @var{hash} und @var{hash-algo} angegeben, wird eine @dfn{Ableitung mit fester Ausgabe} erzeugt@tie{}– d.h.@: eine, deren Ausgabe schon im Voraus bekannt ist, wie z.B.@: beim Herunterladen einer Datei. Wenn des Weiteren auch @var{recursive?} wahr ist, darf die Ableitung mit fester Ausgabe eine ausführbare Datei oder ein Verzeichnis sein und @var{hash} muss die Prüfsumme eines Archivs mit dieser Ausgabe sein." #. type: deffn #: guix-git/doc/guix.texi:11405 msgid "When @var{references-graphs} is true, it must be a list of file name/store path pairs. In that case, the reference graph of each store path is exported in the build environment in the corresponding file, in a simple text format." msgstr "Ist @var{references-graphs} wahr, dann muss es eine Liste von Paaren aus je einem Dateinamen und einem Store-Pfad sein. In diesem Fall wird der Referenzengraph jedes Store-Pfads in einer Datei mit dem angegebenen Namen in der Erstellungsumgebung zugänglich gemacht, in einem einfachen Text-Format." #. type: deffn #: guix-git/doc/guix.texi:11410 msgid "When @var{allowed-references} is true, it must be a list of store items or outputs that the derivation's output may refer to. Likewise, @var{disallowed-references}, if true, must be a list of things the outputs may @emph{not} refer to." msgstr "Ist @var{allowed-references} ein wahr, muss es eine Liste von Store-Objekten oder Ausgaben sein, die die Ausgabe der Ableitung referenzieren darf. Ebenso muss @var{disallowed-references}, wenn es auf wahr gesetzt ist, eine Liste von Dingen bezeichnen, die die Ausgaben @emph{nicht} referenzieren dürfen." #. type: deffn #: guix-git/doc/guix.texi:11417 msgid "When @var{leaked-env-vars} is true, it must be a list of strings denoting environment variables that are allowed to ``leak'' from the daemon's environment to the build environment. This is only applicable to fixed-output derivations---i.e., when @var{hash} is true. The main use is to allow variables such as @code{http_proxy} to be passed to derivations that download files." msgstr "Ist @var{leaked-env-vars} wahr, muss es eine Liste von Zeichenketten sein, die Umgebungsvariable benennen, die aus der Umgebung des Daemons in die Erstellungsumgebung überlaufen@tie{}– ein „Leck“, englisch „leak“. Dies kann nur in Ableitungen mit fester Ausgabe benutzt werden, also wenn @var{hash} wahr ist. So ein Leck kann zum Beispiel benutzt werden, um Variable wie @code{http_proxy} an Ableitungen zu übergeben, die darüber Dateien herunterladen." #. type: deffn #: guix-git/doc/guix.texi:11422 msgid "When @var{local-build?} is true, declare that the derivation is not a good candidate for offloading and should rather be built locally (@pxref{Daemon Offload Setup}). This is the case for small derivations where the costs of data transfers would outweigh the benefits." msgstr "Ist @var{local-build?} wahr, wird die Ableitung als schlechter Kandidat für das Auslagern deklariert, der besser lokal erstellt werden sollte (siehe @ref{Daemon Offload Setup}). Dies betrifft kleine Ableitungen, wo das Übertragen der Daten aufwendiger als ihre Erstellung ist." #. type: deffn #: guix-git/doc/guix.texi:11427 msgid "When @var{substitutable?} is false, declare that substitutes of the derivation's output should not be used (@pxref{Substitutes}). This is useful, for instance, when building packages that capture details of the host CPU instruction set." msgstr "Ist @var{substitutable?} falsch, wird deklariert, dass für die Ausgabe der Ableitung keine Substitute benutzt werden sollen (siehe @ref{Substitutes}). Das ist nützlich, wenn Pakete erstellt werden, die Details über den Prozessorbefehlssatz des Wirtssystems auslesen." #. type: deffn #: guix-git/doc/guix.texi:11430 msgid "@var{properties} must be an association list describing ``properties'' of the derivation. It is kept as-is, uninterpreted, in the derivation." msgstr "@var{properties} muss eine assoziative Liste enthalten, die „Eigenschaften“ der Ableitungen beschreibt. Sie wird genau so, wie sie ist, in der Ableitung gespeichert." #. type: Plain text #: guix-git/doc/guix.texi:11436 msgid "Here's an example with a shell script as its builder, assuming @var{store} is an open connection to the daemon, and @var{bash} points to a Bash executable in the store:" msgstr "Hier ist ein Beispiel mit einem Shell-Skript, das als Ersteller benutzt wird. Es wird angenommen, dass @var{Store} eine offene Verbindung zum Daemon ist und @var{bash} auf eine ausführbare Bash im Store verweist:" #. type: lisp #: guix-git/doc/guix.texi:11441 #, no-wrap msgid "" "(use-modules (guix utils)\n" " (guix store)\n" " (guix derivations))\n" "\n" msgstr "" "(use-modules (guix utils)\n" " (guix store)\n" " (guix derivations))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:11450 #, no-wrap msgid "" "(let ((builder ; add the Bash script to the store\n" " (add-text-to-store store \"my-builder.sh\"\n" " \"echo hello world > $out\\n\" '())))\n" " (derivation store \"foo\"\n" " bash `(\"-e\" ,builder)\n" " #:inputs `((,bash) (,builder))\n" " #:env-vars '((\"HOME\" . \"/homeless\"))))\n" "@result{} #<derivation /gnu/store/@dots{}-foo.drv => /gnu/store/@dots{}-foo>\n" msgstr "" "(let ((builder ; das Ersteller-Bash-Skript in den Store einfügen\n" " (add-text-to-store store \"my-builder.sh\"\n" " \"echo Hallo Welt > $out\\n\" '())))\n" " (derivation store \"foo\"\n" " bash `(\"-e\" ,builder)\n" " #:inputs `((,bash) (,builder))\n" " #:env-vars '((\"HOME\" . \"/homeless\"))))\n" "@result{} #<derivation /gnu/store/…-foo.drv => /gnu/store/…-foo>\n" #. type: Plain text #: guix-git/doc/guix.texi:11457 msgid "As can be guessed, this primitive is cumbersome to use directly. A better approach is to write build scripts in Scheme, of course! The best course of action for that is to write the build code as a ``G-expression'', and to pass it to @code{gexp->derivation}. For more information, @pxref{G-Expressions}." msgstr "Wie man sehen kann, ist es umständlich, diese grundlegende Methode direkt zu benutzen. Natürlich ist es besser, Erstellungsskripts in Scheme zu schreiben! Am besten schreibt man den Erstellungscode als „G-Ausdruck“ und übergibt ihn an @code{gexp->derivation}. Mehr Informationen finden Sie im Abschnitt @ref{G-Expressions}." #. type: Plain text #: guix-git/doc/guix.texi:11462 msgid "Once upon a time, @code{gexp->derivation} did not exist and constructing derivations with build code written in Scheme was achieved with @code{build-expression->derivation}, documented below. This procedure is now deprecated in favor of the much nicer @code{gexp->derivation}." msgstr "Doch es gab einmal eine Zeit, zu der @code{gexp->derivation} noch nicht existiert hatte und wo das Zusammenstellen von Ableitungen mit Scheme-Erstellungscode noch mit @code{build-expression->derivation} bewerkstelligt wurde, was im Folgenden beschrieben wird. Diese Prozedur gilt als veraltet und man sollte nunmehr die viel schönere Prozedur @code{gexp->derivation} benutzen." #. type: deffn #: guix-git/doc/guix.texi:11463 #, no-wrap msgid "{Procedure} build-expression->derivation store name exp @" msgstr "{Prozedur} build-expression->derivation Store Name Ausdruck @" #. type: deffn #: guix-git/doc/guix.texi:11478 msgid "[#:system (%current-system)] [#:inputs '()] @ [#:outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:references-graphs #f] [#:allowed-references #f] @ [#:disallowed-references #f] @ [#:local-build? #f] [#:substitutable? #t] [#:guile-for-build #f] Return a derivation that executes Scheme expression @var{exp} as a builder for derivation @var{name}. @var{inputs} must be a list of @code{(name drv-path sub-drv)} tuples; when @var{sub-drv} is omitted, @code{\"out\"} is assumed. @var{modules} is a list of names of Guile modules from the current search path to be copied in the store, compiled, and made available in the load path during the execution of @var{exp}---e.g., @code{((guix build utils) (guix build gnu-build-system))}." msgstr "[#:system (%current-system)] [#:inputs '()] @ [#:outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:references-graphs #f] [#:allowed-references #f] @ [#:disallowed-references #f] @ [#:local-build? #f] [#:substitutable? #t] [#:guile-for-build #f] Liefert eine Ableitung, die den Scheme-Ausdruck @var{Ausdruck} als Ersteller einer Ableitung namens @var{Name} ausführt. @var{inputs} muss die Liste der Eingaben enthalten, jeweils als Tupel @code{(Name Ableitungspfad Unterableitung)}; wird keine @var{Unterableitung} angegeben, wird @code{\"out\"} angenommen. @var{Module} ist eine Liste der Namen von Guile-Modulen im momentanen Suchpfad, die in den Store kopiert, kompiliert und zur Verfügung gestellt werden, wenn der @var{Ausdruck} ausgeführt wird@tie{}– z.B.@: @code{((guix build utils) (guix build gnu-build-system))}." #. type: deffn #: guix-git/doc/guix.texi:11486 msgid "@var{exp} is evaluated in an environment where @code{%outputs} is bound to a list of output/path pairs, and where @code{%build-inputs} is bound to a list of string/output-path pairs made from @var{inputs}. Optionally, @var{env-vars} is a list of string pairs specifying the name and value of environment variables visible to the builder. The builder terminates by passing the result of @var{exp} to @code{exit}; thus, when @var{exp} returns @code{#f}, the build is considered to have failed." msgstr "Der @var{Ausdruck} wird in einer Umgebung ausgewertet, in der @code{%outputs} an eine Liste von Ausgabe-/Pfad-Paaren gebunden wurde und in der @code{%build-inputs} an eine Liste von Zeichenkette-/Ausgabepfad-Paaren gebunden wurde, die aus den @var{inputs}-Eingaben konstruiert worden ist. Optional kann in @var{env-vars} eine Liste von Paaren aus Zeichenketten stehen, die Name und Wert von für den Ersteller sichtbaren Umgebungsvariablen angeben. Der Ersteller terminiert, indem er @code{exit} mit dem Ergebnis des @var{Ausdruck}s aufruft; wenn also der @var{Ausdruck} den Wert @code{#f} liefert, wird angenommen, dass die Erstellung fehlgeschlagen ist." #. type: deffn #: guix-git/doc/guix.texi:11490 msgid "@var{exp} is built using @var{guile-for-build} (a derivation). When @var{guile-for-build} is omitted or is @code{#f}, the value of the @code{%guile-for-build} fluid is used instead." msgstr "@var{Ausdruck} wird mit einer Ableitung @var{guile-for-build} erstellt. Wird kein @var{guile-for-build} angegeben oder steht es auf @code{#f}, wird stattdessen der Wert der Fluiden @code{%guile-for-build} benutzt." #. type: deffn #: guix-git/doc/guix.texi:11495 msgid "See the @code{derivation} procedure for the meaning of @var{references-graphs}, @var{allowed-references}, @var{disallowed-references}, @var{local-build?}, and @var{substitutable?}." msgstr "Siehe die Erklärungen zur Prozedur @code{derivation} für die Bedeutung von @var{references-graphs}, @var{allowed-references}, @var{disallowed-references}, @var{local-build?} und @var{substitutable?}." #. type: Plain text #: guix-git/doc/guix.texi:11500 msgid "Here's an example of a single-output derivation that creates a directory containing one file:" msgstr "Hier ist ein Beispiel einer Ableitung mit nur einer Ausgabe, die ein Verzeichnis erzeugt, in dem eine einzelne Datei enthalten ist:" #. type: lisp #: guix-git/doc/guix.texi:11508 #, no-wrap msgid "" "(let ((builder '(let ((out (assoc-ref %outputs \"out\")))\n" " (mkdir out) ; create /gnu/store/@dots{}-goo\n" " (call-with-output-file (string-append out \"/test\")\n" " (lambda (p)\n" " (display '(hello guix) p))))))\n" " (build-expression->derivation store \"goo\" builder))\n" "\n" msgstr "" "(let ((builder '(let ((out (assoc-ref %outputs \"out\")))\n" " (mkdir out) ; das Verzeichnis\n" " ; /gnu/store/…-goo erstellen\n" " (call-with-output-file (string-append out \"/test\")\n" " (lambda (p)\n" " (display '(Hallo Guix) p))))))\n" " (build-expression->derivation store \"goo\" builder))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:11510 #, no-wrap msgid "@result{} #<derivation /gnu/store/@dots{}-goo.drv => @dots{}>\n" msgstr "@result{} #<derivation /gnu/store/…-goo.drv => …>\n" #. type: cindex #: guix-git/doc/guix.texi:11516 #, no-wrap msgid "monad" msgstr "Monade" #. type: Plain text #: guix-git/doc/guix.texi:11522 msgid "The procedures that operate on the store described in the previous sections all take an open connection to the build daemon as their first argument. Although the underlying model is functional, they either have side effects or depend on the current state of the store." msgstr "Die auf dem Store arbeitenden Prozeduren, die in den vorigen Abschnitten beschrieben wurden, nehmen alle eine offene Verbindung zum Erstellungs-Daemon als ihr erstes Argument entgegen. Obwohl das ihnen zu Grunde liegende Modell funktional ist, weisen sie doch alle Nebenwirkungen auf oder hängen vom momentanen Zustand des Stores ab." #. type: Plain text #: guix-git/doc/guix.texi:11528 msgid "The former is inconvenient: the connection to the build daemon has to be carried around in all those functions, making it impossible to compose functions that do not take that parameter with functions that do. The latter can be problematic: since store operations have side effects and/or depend on external state, they have to be properly sequenced." msgstr "Ersteres ist umständlich, weil die Verbindung zum Erstellungs-Daemon zwischen all diesen Funktionen durchgereicht werden muss, so dass eine Komposition mit Funktionen ohne diesen Parameter unmöglich wird. Letzteres kann problematisch sein, weil Operationen auf dem Store Nebenwirkungen und/oder Abhängigkeiten von externem Zustand haben und ihre Ausführungsreihenfolge deswegen eine Rolle spielt." #. type: cindex #: guix-git/doc/guix.texi:11529 #, no-wrap msgid "monadic values" msgstr "monadische Werte" #. type: cindex #: guix-git/doc/guix.texi:11530 #, no-wrap msgid "monadic functions" msgstr "monadische Funktionen" #. type: Plain text #: guix-git/doc/guix.texi:11540 msgid "This is where the @code{(guix monads)} module comes in. This module provides a framework for working with @dfn{monads}, and a particularly useful monad for our uses, the @dfn{store monad}. Monads are a construct that allows two things: associating ``context'' with values (in our case, the context is the store), and building sequences of computations (here computations include accesses to the store). Values in a monad---values that carry this additional context---are called @dfn{monadic values}; procedures that return such values are called @dfn{monadic procedures}." msgstr "Hier kommt das Modul @code{(guix monads)} ins Spiel. Im Rahmen dieses Moduls können @dfn{Monaden} benutzt werden und dazu gehört insbesondere eine für unsere Zwecke sehr nützliche Monade, die @dfn{Store-Monade}. Monaden sind ein Konstrukt, mit dem zwei Dinge möglich sind: eine Assoziation von Werten mit einem „Kontext“ (in unserem Fall ist das die Verbindung zum Store) und das Festlegen einer Reihenfolge für Berechnungen (hiermit sind auch Zugriffe auf den Store gemeint). Werte in einer Monade@tie{}– solche, die mit weiterem Kontext assoziiert sind@tie{}– werden @dfn{monadische Werte} genannt; Prozeduren, die solche Werte liefern, heißen @dfn{monadische Prozeduren}." #. type: Plain text #: guix-git/doc/guix.texi:11542 msgid "Consider this ``normal'' procedure:" msgstr "Betrachten Sie folgende „normale“ Prozedur:" #. type: lisp #: guix-git/doc/guix.texi:11551 #, no-wrap msgid "" "(define (sh-symlink store)\n" " ;; Return a derivation that symlinks the 'bash' executable.\n" " (let* ((drv (package-derivation store bash))\n" " (out (derivation->output-path drv))\n" " (sh (string-append out \"/bin/bash\")))\n" " (build-expression->derivation store \"sh\"\n" " `(symlink ,sh %output))))\n" msgstr "" "(define (sh-symlink store)\n" " ;; Eine Ableitung liefern, die mit der ausführbaren Datei „bash“\n" " ;; symbolisch verknüpft.\n" " (let* ((drv (package-derivation store bash))\n" " (out (derivation->output-path drv))\n" " (sh (string-append out \"/bin/bash\")))\n" " (build-expression->derivation store \"sh\"\n" " `(symlink ,sh %output))))\n" #. type: Plain text #: guix-git/doc/guix.texi:11555 msgid "Using @code{(guix monads)} and @code{(guix gexp)}, it may be rewritten as a monadic function:" msgstr "Unter Verwendung von @code{(guix monads)} und @code{(guix gexp)} lässt sie sich als monadische Funktion aufschreiben:" #. type: lisp #: guix-git/doc/guix.texi:11563 #, no-wrap msgid "" "(define (sh-symlink)\n" " ;; Same, but return a monadic value.\n" " (mlet %store-monad ((drv (package->derivation bash)))\n" " (gexp->derivation \"sh\"\n" " #~(symlink (string-append #$drv \"/bin/bash\")\n" " #$output))))\n" msgstr "" "(define (sh-symlink)\n" " ;; Ebenso, liefert aber einen monadischen Wert.\n" " (mlet %store-monad ((drv (package->derivation bash)))\n" " (gexp->derivation \"sh\"\n" " #~(symlink (string-append #$drv \"/bin/bash\")\n" " #$output))))\n" #. type: Plain text #: guix-git/doc/guix.texi:11570 msgid "There are several things to note in the second version: the @code{store} parameter is now implicit and is ``threaded'' in the calls to the @code{package->derivation} and @code{gexp->derivation} monadic procedures, and the monadic value returned by @code{package->derivation} is @dfn{bound} using @code{mlet} instead of plain @code{let}." msgstr "An der zweiten Version lassen sich mehrere Dinge beobachten: Der Parameter @code{Store} ist jetzt implizit geworden und wurde in die Aufrufe der monadischen Prozeduren @code{package->derivation} und @code{gexp->derivation} „eingefädelt“ und der von @code{package->derivation} gelieferte monadische Wert wurde mit @code{mlet} statt einem einfachen @code{let} @dfn{gebunden}." #. type: Plain text #: guix-git/doc/guix.texi:11574 msgid "As it turns out, the call to @code{package->derivation} can even be omitted since it will take place implicitly, as we will see later (@pxref{G-Expressions}):" msgstr "Wie sich herausstellt, muss man den Aufruf von @code{package->derivation} nicht einmal aufschreiben, weil er implizit geschieht, wie wir später sehen werden (siehe @ref{G-Expressions}):" #. type: lisp #: guix-git/doc/guix.texi:11580 #, no-wrap msgid "" "(define (sh-symlink)\n" " (gexp->derivation \"sh\"\n" " #~(symlink (string-append #$bash \"/bin/bash\")\n" " #$output)))\n" msgstr "" "(define (sh-symlink)\n" " (gexp->derivation \"sh\"\n" " #~(symlink (string-append #$bash \"/bin/bash\")\n" " #$output)))\n" #. type: Plain text #: guix-git/doc/guix.texi:11589 msgid "Calling the monadic @code{sh-symlink} has no effect. As someone once said, ``you exit a monad like you exit a building on fire: by running''. So, to exit the monad and get the desired effect, one must use @code{run-with-store}:" msgstr "Die monadische @code{sh-symlink} einfach aufzurufen, bewirkt nichts. Wie jemand einst sagte: „Mit einer Monade geht man um, wie mit Gefangenen, gegen die man keine Beweise hat: Man muss sie laufen lassen.“ Um also aus der Monade auszubrechen und die gewünschte Wirkung zu erzielen, muss man @code{run-with-store} benutzen:" #. type: lisp #: guix-git/doc/guix.texi:11593 #, no-wrap msgid "" "(run-with-store (open-connection) (sh-symlink))\n" "@result{} /gnu/store/...-sh-symlink\n" msgstr "" "(run-with-store (open-connection) (sh-symlink))\n" "@result{} /gnu/store/…-sh-symlink\n" #. type: Plain text #: guix-git/doc/guix.texi:11600 msgid "Note that the @code{(guix monad-repl)} module extends the Guile REPL with new ``commands'' to make it easier to deal with monadic procedures: @code{run-in-store}, and @code{enter-store-monad} (@pxref{Using Guix Interactively}). The former is used to ``run'' a single monadic value through the store:" msgstr "Erwähnenswert ist, dass das Modul @code{(guix monad-repl)} die REPL von Guile um neue „Befehle“ erweitert, mit denen es leichter ist, mit monadischen Prozeduren umzugehen: @code{run-in-store} und @code{enter-store-monad} (siehe @ref{Using Guix Interactively}). Mit Ersterer wird ein einzelner monadischer Wert durch den Store „laufen gelassen“:" #. type: example #: guix-git/doc/guix.texi:11604 #, no-wrap msgid "" "scheme@@(guile-user)> ,run-in-store (package->derivation hello)\n" "$1 = #<derivation /gnu/store/@dots{}-hello-2.9.drv => @dots{}>\n" msgstr "" "scheme@@(guile-user)> ,run-in-store (package->derivation hello)\n" "$1 = #<derivation /gnu/store/…-hello-2.9.drv => …>\n" #. type: Plain text #: guix-git/doc/guix.texi:11608 msgid "The latter enters a recursive REPL, where all the return values are automatically run through the store:" msgstr "Mit Letzterer wird rekursiv eine weitere REPL betreten, in der alle Rückgabewerte automatisch durch den Store laufen gelassen werden:" #. type: example #: guix-git/doc/guix.texi:11617 #, no-wrap msgid "" "scheme@@(guile-user)> ,enter-store-monad\n" "store-monad@@(guile-user) [1]> (package->derivation hello)\n" "$2 = #<derivation /gnu/store/@dots{}-hello-2.9.drv => @dots{}>\n" "store-monad@@(guile-user) [1]> (text-file \"foo\" \"Hello!\")\n" "$3 = \"/gnu/store/@dots{}-foo\"\n" "store-monad@@(guile-user) [1]> ,q\n" "scheme@@(guile-user)>\n" msgstr "" "scheme@@(guile-user)> ,enter-store-monad\n" "store-monad@@(guile-user) [1]> (package->derivation hello)\n" "$2 = #<derivation /gnu/store/…-hello-2.9.drv => …>\n" "store-monad@@(guile-user) [1]> (text-file \"foo\" \"Hallo!\")\n" "$3 = \"/gnu/store/…-foo\"\n" "store-monad@@(guile-user) [1]> ,q\n" "scheme@@(guile-user)>\n" #. type: Plain text #: guix-git/doc/guix.texi:11622 msgid "Note that non-monadic values cannot be returned in the @code{store-monad} REPL." msgstr "Beachten Sie, dass in einer @code{store-monad}-REPL keine nicht-monadischen Werte zurückgeliefert werden können." #. type: Plain text #: guix-git/doc/guix.texi:11625 msgid "Other meta-commands are available at the REPL, such as @code{,build} to build a file-like object (@pxref{Using Guix Interactively})." msgstr "Es gibt noch andere Meta-Befehle auf der REPL, so etwa @code{,build}, womit ein dateiartiges Objekt erstellt wird (siehe @ref{Using Guix Interactively})." #. type: Plain text #: guix-git/doc/guix.texi:11628 msgid "The main syntactic forms to deal with monads in general are provided by the @code{(guix monads)} module and are described below." msgstr "Die wichtigsten syntaktischen Formen, um mit Monaden im Allgemeinen umzugehen, werden im Modul @code{(guix monads)} bereitgestellt und sind im Folgenden beschrieben." #. type: defmac #: guix-git/doc/guix.texi:11629 #, no-wrap msgid "with-monad monad body @dots{}" msgstr "with-monad Monade Rumpf …" #. type: defmac #: guix-git/doc/guix.texi:11632 msgid "Evaluate any @code{>>=} or @code{return} forms in @var{body} as being in @var{monad}." msgstr "Alle @code{>>=}- oder @code{return}-Formen im @var{Rumpf} in der @var{Monade} auswerten." #. type: defmac #: guix-git/doc/guix.texi:11634 #, no-wrap msgid "return val" msgstr "return Wert" #. type: defmac #: guix-git/doc/guix.texi:11636 msgid "Return a monadic value that encapsulates @var{val}." msgstr "Einen monadischen Wert liefern, der den übergebenen @var{Wert} kapselt." #. type: defmac #: guix-git/doc/guix.texi:11638 #, no-wrap msgid ">>= mval mproc @dots{}" msgstr ">>= mWert mProz …" #. type: defmac #: guix-git/doc/guix.texi:11645 msgid "@dfn{Bind} monadic value @var{mval}, passing its ``contents'' to monadic procedures @var{mproc}@dots{}@footnote{This operation is commonly referred to as ``bind'', but that name denotes an unrelated procedure in Guile. Thus we use this somewhat cryptic symbol inherited from the Haskell language.}. There can be one @var{mproc} or several of them, as in this example:" msgstr "Den monadischen Wert @var{mWert} @dfn{binden}, wobei sein „Inhalt“ an die monadischen Prozeduren @var{mProz}…@: übergeben wird@footnote{Diese Operation wird gemeinhin „bind“ genannt, aber mit diesem Begriff wird in Guile eine völlig andere Prozedur bezeichnet, die nichts damit zu tun hat. Also benutzen wir dieses etwas kryptische Symbol als Erbe der Haskell-Programmiersprache.}. Es kann eine einzelne @var{mProz} oder mehrere davon geben, wie in diesem Beispiel:" #. type: lisp #: guix-git/doc/guix.texi:11653 #, no-wrap msgid "" "(run-with-state\n" " (with-monad %state-monad\n" " (>>= (return 1)\n" " (lambda (x) (return (+ 1 x)))\n" " (lambda (x) (return (* 2 x)))))\n" " 'some-state)\n" "\n" msgstr "" "(run-with-state\n" " (with-monad %state-monad\n" " (>>= (return 1)\n" " (lambda (x) (return (+ 1 x)))\n" " (lambda (x) (return (* 2 x)))))\n" " 'irgendein-Zustand)\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:11656 #, no-wrap msgid "" "@result{} 4\n" "@result{} some-state\n" msgstr "" "@result{} 4\n" "@result{} irgendein-Zustand\n" #. type: defmac #: guix-git/doc/guix.texi:11659 #, no-wrap msgid "mlet monad ((var mval) @dots{}) body @dots{}" msgstr "mlet Monade ((Variable mWert) …) Rumpf …" #. type: defmacx #: guix-git/doc/guix.texi:11660 #, no-wrap msgid "mlet* monad ((var mval) @dots{}) body @dots{}" msgstr "mlet* Monade ((Variable mWert) …) Rumpf …" #. type: defmac #: guix-git/doc/guix.texi:11671 msgid "Bind the variables @var{var} to the monadic values @var{mval} in @var{body}, which is a sequence of expressions. As with the bind operator, this can be thought of as ``unpacking'' the raw, non-monadic value ``contained'' in @var{mval} and making @var{var} refer to that raw, non-monadic value within the scope of the @var{body}. The form (@var{var} -> @var{val}) binds @var{var} to the ``normal'' value @var{val}, as per @code{let}. The binding operations occur in sequence from left to right. The last expression of @var{body} must be a monadic expression, and its result will become the result of the @code{mlet} or @code{mlet*} when run in the @var{monad}." msgstr "Die @var{Variable}n an die monadischen Werte @var{mWert} im @var{Rumpf} binden, der eine Folge von Ausdrücken ist. Wie beim bind-Operator kann man es sich vorstellen als „Auspacken“ des rohen, nicht-monadischen Werts, der im @var{mWert} steckt, wobei anschließend dieser rohe, nicht-monadische Wert im Sichtbarkeitsbereich des @var{Rumpf}s von der @var{Variable}n bezeichnet wird. Die Form (@var{Variable} -> @var{Wert}) bindet die @var{Variable} an den „normalen“ @var{Wert}, wie es @code{let} tun würde. Die Bindungsoperation geschieht in der Reihenfolge von links nach rechts. Der letzte Ausdruck des @var{Rumpfs} muss ein monadischer Ausdruck sein und dessen Ergebnis wird das Ergebnis von @code{mlet} oder @code{mlet*} werden, wenn es durch die @var{Monad} laufen gelassen wurde." #. type: defmac #: guix-git/doc/guix.texi:11674 msgid "@code{mlet*} is to @code{mlet} what @code{let*} is to @code{let} (@pxref{Local Bindings,,, guile, GNU Guile Reference Manual})." msgstr "@code{mlet*} verhält sich gegenüber @code{mlet} wie @code{let*} gegenüber @code{let} (siehe @ref{Local Bindings,,, guile, Referenzhandbuch zu GNU Guile})." #. type: defmac #: guix-git/doc/guix.texi:11676 #, no-wrap msgid "mbegin monad mexp @dots{}" msgstr "mbegin Monade mAusdruck …" #. type: defmac #: guix-git/doc/guix.texi:11680 msgid "Bind @var{mexp} and the following monadic expressions in sequence, returning the result of the last expression. Every expression in the sequence must be a monadic expression." msgstr "Der Reihe nach den @var{mAusdruck} und die nachfolgenden monadischen Ausdrücke binden und als Ergebnis das des letzten Ausdrucks liefern. Jeder Ausdruck in der Abfolge muss ein monadischer Ausdruck sein." #. type: defmac #: guix-git/doc/guix.texi:11684 msgid "This is akin to @code{mlet}, except that the return values of the monadic expressions are ignored. In that sense, it is analogous to @code{begin}, but applied to monadic expressions." msgstr "Dies verhält sich ähnlich wie @code{mlet}, außer dass die Rückgabewerte der monadischen Prozeduren ignoriert werden. In diesem Sinn verhält es sich analog zu @code{begin}, nur auf monadischen Ausdrücken." #. type: defmac #: guix-git/doc/guix.texi:11686 #, no-wrap msgid "mwhen condition mexp0 mexp* @dots{}" msgstr "mwhen Bedingung mAusdr0 mAusdr* …" #. type: defmac #: guix-git/doc/guix.texi:11691 msgid "When @var{condition} is true, evaluate the sequence of monadic expressions @var{mexp0}..@var{mexp*} as in an @code{mbegin}. When @var{condition} is false, return @code{*unspecified*} in the current monad. Every expression in the sequence must be a monadic expression." msgstr "Wenn die @var{Bedingung} wahr ist, wird die Folge monadischer Ausdrücke @var{mAusdr0}..@var{mAusdr*} wie bei @code{mbegin} ausgewertet. Wenn die @var{Bedingung} falsch ist, wird @code{*unspecified*} („unbestimmt“) in der momentanen Monade zurückgeliefert. Jeder Ausdruck in der Folge muss ein monadischer Ausdruck sein." #. type: defmac #: guix-git/doc/guix.texi:11693 #, no-wrap msgid "munless condition mexp0 mexp* @dots{}" msgstr "munless Bedingung mAusdr0 mAusdr* …" #. type: defmac #: guix-git/doc/guix.texi:11698 msgid "When @var{condition} is false, evaluate the sequence of monadic expressions @var{mexp0}..@var{mexp*} as in an @code{mbegin}. When @var{condition} is true, return @code{*unspecified*} in the current monad. Every expression in the sequence must be a monadic expression." msgstr "Wenn die @var{Bedingung} falsch ist, wird die Folge monadischer Ausdrücke @var{mAusdr0}..@var{mAusdr*} wie bei @code{mbegin} ausgewertet. Wenn die @var{Bedingung} wahr ist, wird @code{*unspecified*} („unbestimmt“) in der momentanen Monade zurückgeliefert. Jeder Ausdruck in der Folge muss ein monadischer Ausdruck sein." #. type: cindex #: guix-git/doc/guix.texi:11700 #, no-wrap msgid "state monad" msgstr "Zustandsmonade" #. type: Plain text #: guix-git/doc/guix.texi:11704 msgid "The @code{(guix monads)} module provides the @dfn{state monad}, which allows an additional value---the state---to be @emph{threaded} through monadic procedure calls." msgstr "Das Modul @code{(guix monads)} macht die @dfn{Zustandsmonade} (englisch „state monad“) verfügbar, mit der ein zusätzlicher Wert@tie{}– der Zustand@tie{}– durch die monadischen Prozeduraufrufe @emph{gefädelt} werden kann." #. type: defvar #: guix-git/doc/guix.texi:11705 #, no-wrap msgid "%state-monad" msgstr "%state-monad" #. type: defvar #: guix-git/doc/guix.texi:11708 msgid "The state monad. Procedures in the state monad can access and change the state that is threaded." msgstr "Die Zustandsmonade. Prozeduren in der Zustandsmonade können auf den gefädelten Zustand zugreifen und ihn verändern." #. type: defvar #: guix-git/doc/guix.texi:11712 msgid "Consider the example below. The @code{square} procedure returns a value in the state monad. It returns the square of its argument, but also increments the current state value:" msgstr "Betrachten Sie das folgende Beispiel. Die Prozedur @code{Quadrat} liefert einen Wert in der Zustandsmonade zurück. Sie liefert das Quadrat ihres Arguments, aber sie inkrementiert auch den momentanen Zustandswert:" #. type: lisp #: guix-git/doc/guix.texi:11719 #, no-wrap msgid "" "(define (square x)\n" " (mlet %state-monad ((count (current-state)))\n" " (mbegin %state-monad\n" " (set-current-state (+ 1 count))\n" " (return (* x x)))))\n" "\n" msgstr "" "(define (Quadrat x)\n" " (mlet %state-monad ((Anzahl (current-state)))\n" " (mbegin %state-monad\n" " (set-current-state (+ 1 Anzahl))\n" " (return (* x x)))))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:11723 #, no-wrap msgid "" "(run-with-state (sequence %state-monad (map square (iota 3))) 0)\n" "@result{} (0 1 4)\n" "@result{} 3\n" msgstr "" "(run-with-state (sequence %state-monad (map Quadrat (iota 3))) 0)\n" "@result{} (0 1 4)\n" "@result{} 3\n" #. type: defvar #: guix-git/doc/guix.texi:11727 msgid "When ``run'' through @code{%state-monad}, we obtain that additional state value, which is the number of @code{square} calls." msgstr "Wird das „durch“ die Zustandsmonade @code{%state-monad} laufen gelassen, erhalten wir jenen zusätzlichen Zustandswert, der der Anzahl der Aufrufe von @code{Quadrat} entspricht." #. type: deffn #: guix-git/doc/guix.texi:11729 #, no-wrap msgid "{Monadic Procedure} current-state" msgstr "{Monadische Prozedur} current-state" #. type: deffn #: guix-git/doc/guix.texi:11731 msgid "Return the current state as a monadic value." msgstr "Liefert den momentanen Zustand als einen monadischen Wert." #. type: deffn #: guix-git/doc/guix.texi:11733 #, no-wrap msgid "{Monadic Procedure} set-current-state @var{value}" msgstr "{Monadische Prozedur} set-current-state @var{Wert}" #. type: deffn #: guix-git/doc/guix.texi:11736 msgid "Set the current state to @var{value} and return the previous state as a monadic value." msgstr "Setzt den momentanen Zustand auf @var{Wert} und liefert den vorherigen Zustand als einen monadischen Wert." #. type: deffn #: guix-git/doc/guix.texi:11738 #, no-wrap msgid "{Monadic Procedure} state-push @var{value}" msgstr "{Monadische Prozedur} state-push @var{Wert}" #. type: deffn #: guix-git/doc/guix.texi:11741 msgid "Push @var{value} to the current state, which is assumed to be a list, and return the previous state as a monadic value." msgstr "Hängt den @var{Wert} vorne an den momentanen Zustand an, der eine Liste sein muss. Liefert den vorherigen Zustand als monadischen Wert." #. type: deffn #: guix-git/doc/guix.texi:11743 #, no-wrap msgid "{Monadic Procedure} state-pop" msgstr "{Monadische Prozedur} state-pop" #. type: deffn #: guix-git/doc/guix.texi:11746 msgid "Pop a value from the current state and return it as a monadic value. The state is assumed to be a list." msgstr "Entfernt einen Wert vorne vom momentanen Zustand und liefert ihn als monadischen Wert zurück. Dabei wird angenommen, dass es sich beim Zustand um eine Liste handelt." #. type: deffn #: guix-git/doc/guix.texi:11748 #, no-wrap msgid "{Procedure} run-with-state mval [state]" msgstr "{Prozedur} run-with-state mWert [Zustand]" #. type: deffn #: guix-git/doc/guix.texi:11751 msgid "Run monadic value @var{mval} starting with @var{state} as the initial state. Return two values: the resulting value, and the resulting state." msgstr "Den monadischen Wert @var{mWert} mit @var{Zustand} als initialem Zustand laufen lassen. Dies liefert zwei Werte: den Ergebniswert und den Ergebniszustand." #. type: Plain text #: guix-git/doc/guix.texi:11755 msgid "The main interface to the store monad, provided by the @code{(guix store)} module, is as follows." msgstr "Die zentrale Schnittstelle zur Store-Monade, wie sie vom Modul @code{(guix store)} angeboten wird, ist die Folgende:" #. type: defvar #: guix-git/doc/guix.texi:11756 #, no-wrap msgid "%store-monad" msgstr "%store-monad" #. type: defvar #: guix-git/doc/guix.texi:11758 msgid "The store monad---an alias for @code{%state-monad}." msgstr "Die Store-Monade@tie{}– ein anderer Name für @code{%state-monad}." #. type: defvar #: guix-git/doc/guix.texi:11762 msgid "Values in the store monad encapsulate accesses to the store. When its effect is needed, a value of the store monad must be ``evaluated'' by passing it to the @code{run-with-store} procedure (see below)." msgstr "Werte in der Store-Monade kapseln Zugriffe auf den Store. Sobald ihre Wirkung gebraucht wird, muss ein Wert der Store-Monade „ausgewertet“ werden, indem er an die Prozedur @code{run-with-store} übergeben wird (siehe unten)." #. type: deffn #: guix-git/doc/guix.texi:11764 #, no-wrap msgid "{Procedure} run-with-store store mval @" msgstr "{Prozedur} run-with-store Store mWert @" #. type: deffn #: guix-git/doc/guix.texi:11768 msgid "[#:guile-for-build] [#:system (%current-system)] Run @var{mval}, a monadic value in the store monad, in @var{store}, an open store connection." msgstr "[#:guile-for-build] [#:system (%current-system)] Den @var{mWert}, einen monadischen Wert in der Store-Monade, in der offenen Verbindung @var{Store} laufen lassen." #. type: deffn #: guix-git/doc/guix.texi:11770 #, no-wrap msgid "{Monadic Procedure} text-file @var{name} @var{text} [@var{references}]" msgstr "{Monadische Prozedur} text-file @var{Name} @var{Text} [@var{Referenzen}]" #. type: deffn #: guix-git/doc/guix.texi:11774 msgid "Return as a monadic value the absolute file name in the store of the file containing @var{text}, a string. @var{references} is a list of store items that the resulting text file refers to; it defaults to the empty list." msgstr "Als monadischen Wert den absoluten Dateinamen im Store für eine Datei liefern, deren Inhalt der der Zeichenkette @var{Text} ist. @var{Referenzen} ist dabei eine Liste von Store-Objekten, die die Ergebnis-Textdatei referenzieren wird; der Vorgabewert ist die leere Liste." #. type: deffn #: guix-git/doc/guix.texi:11776 #, no-wrap msgid "{Monadic Procedure} binary-file @var{name} @var{data} [@var{references}]" msgstr "{Monadische Prozedur} binary-file @var{Name} @var{Daten} [@var{Referenzen}]" #. type: deffn #: guix-git/doc/guix.texi:11780 msgid "Return as a monadic value the absolute file name in the store of the file containing @var{data}, a bytevector. @var{references} is a list of store items that the resulting binary file refers to; it defaults to the empty list." msgstr "Den absoluten Dateinamen im Store als monadischen Wert für eine Datei liefern, deren Inhalt der des Byte-Vektors @var{Daten} ist. @var{Referenzen} ist dabei eine Liste von Store-Objekten, die die Ergebnis-Binärdatei referenzieren wird; der Vorgabewert ist die leere Liste." #. type: deffn #: guix-git/doc/guix.texi:11782 #, no-wrap msgid "{Monadic Procedure} interned-file @var{file} [@var{name}] @" msgstr "{Monadische Prozedur} interned-file @var{Datei} [@var{Name}] @" #. type: deffn #: guix-git/doc/guix.texi:11787 msgid "[#:recursive? #t] [#:select? (const #t)] Return the name of @var{file} once interned in the store. Use @var{name} as its store name, or the basename of @var{file} if @var{name} is omitted." msgstr "[#:recursive? #t] [#:select? (const #t)] Liefert den Namen der @var{Datei}, nachdem sie in den Store interniert wurde. Dabei wird der @var{Name} als ihr Store-Name verwendet, oder, wenn kein @var{Name} angegeben wurde, der Basisname der @var{Datei}." #. type: deffn #: guix-git/doc/guix.texi:11791 guix-git/doc/guix.texi:12217 msgid "When @var{recursive?} is true, the contents of @var{file} are added recursively; if @var{file} designates a flat file and @var{recursive?} is true, its contents are added, and its permission bits are kept." msgstr "Ist @var{recursive?} wahr, werden in der @var{Datei} enthaltene Dateien rekursiv hinzugefügt; ist die @var{Datei} eine flache Datei und @var{recursive?} ist wahr, wird ihr Inhalt in den Store eingelagert und ihre Berechtigungs-Bits übernommen." #. type: deffn #: guix-git/doc/guix.texi:11796 guix-git/doc/guix.texi:12222 msgid "When @var{recursive?} is true, call @code{(@var{select?} @var{file} @var{stat})} for each directory entry, where @var{file} is the entry's absolute file name and @var{stat} is the result of @code{lstat}; exclude entries for which @var{select?} does not return true." msgstr "Steht @var{recursive?} auf wahr, wird @code{(@var{select?} @var{Datei} @var{Stat})} für jeden Verzeichniseintrag aufgerufen, wobei @var{Datei} der absolute Dateiname und @var{Stat} das Ergebnis von @code{lstat} ist, außer auf den Einträgen, wo @var{select?} keinen wahren Wert liefert." #. type: deffn #: guix-git/doc/guix.texi:11798 msgid "The example below adds a file to the store, under two different names:" msgstr "Folgendes Beispiel fügt eine Datei unter zwei verschiedenen Namen in den Store ein:" #. type: lisp #: guix-git/doc/guix.texi:11804 #, no-wrap msgid "" "(run-with-store (open-connection)\n" " (mlet %store-monad ((a (interned-file \"README\"))\n" " (b (interned-file \"README\" \"LEGU-MIN\")))\n" " (return (list a b))))\n" "\n" msgstr "" "(run-with-store (open-connection)\n" " (mlet %store-monad ((a (interned-file \"README\"))\n" " (b (interned-file \"README\" \"LEGU-MIN\")))\n" " (return (list a b))))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:11806 #, no-wrap msgid "@result{} (\"/gnu/store/rwm@dots{}-README\" \"/gnu/store/44i@dots{}-LEGU-MIN\")\n" msgstr "@result{} (\"/gnu/store/rwm…-README\" \"/gnu/store/44i…-LEGU-MIN\")\n" #. type: Plain text #: guix-git/doc/guix.texi:11812 msgid "The @code{(guix packages)} module exports the following package-related monadic procedures:" msgstr "Das Modul @code{(guix packages)} exportiert die folgenden paketbezogenen monadischen Prozeduren:" #. type: deffn #: guix-git/doc/guix.texi:11813 #, no-wrap msgid "{Monadic Procedure} package-file @var{package} [@var{file}] @" msgstr "{Monadische Prozedur} package-file @var{Paket} [@var{Datei}] @" #. type: deffn #: guix-git/doc/guix.texi:11821 msgid "[#:system (%current-system)] [#:target #f] @ [#:output \"out\"] Return as a monadic value in the absolute file name of @var{file} within the @var{output} directory of @var{package}. When @var{file} is omitted, return the name of the @var{output} directory of @var{package}. When @var{target} is true, use it as a cross-compilation target triplet." msgstr "[#:system (%current-system)] [#:target #f] @ [#:output \"out\"] Liefert als monadischen Wert den absoluten Dateinamen der @var{Datei} innerhalb des Ausgabeverzeichnisses @var{output} des @var{Paket}s. Wird keine @var{Datei} angegeben, wird der Name des Ausgabeverzeichnisses @var{output} für das @var{Paket} zurückgeliefert. Ist @var{target} wahr, wird sein Wert als das Zielsystem bezeichnendes Tripel zum Cross-Kompilieren benutzt." #. type: deffn #: guix-git/doc/guix.texi:11825 msgid "Note that this procedure does @emph{not} build @var{package}. Thus, the result might or might not designate an existing file. We recommend not using this procedure unless you know what you are doing." msgstr "Beachten Sie, dass durch diese Prozedur das @var{Paket} @emph{nicht} erstellt wird, also muss ihr Ergebnis keine bereits existierende Datei bezeichnen, kann aber. Wir empfehlen, diese Prozedur nur dann zu benutzen, wenn Sie wissen, was Sie tun." #. type: deffn #: guix-git/doc/guix.texi:11827 #, no-wrap msgid "{Monadic Procedure} package->derivation @var{package} [@var{system}]" msgstr "{Monadische Prozedur} package->derivation @var{Paket} [@var{System}]" #. type: deffnx #: guix-git/doc/guix.texi:11828 #, no-wrap msgid "{Monadic Procedure} package->cross-derivation @var{package} @" msgstr "{Monadische Prozedur} package->cross-derivation @var{Paket} @" #. type: deffn #: guix-git/doc/guix.texi:11832 msgid "@var{target} [@var{system}] Monadic version of @code{package-derivation} and @code{package-cross-derivation} (@pxref{Defining Packages})." msgstr "@var{Ziel} [@var{System}] Monadische Version von @code{package-derivation} und @code{package-cross-derivation} (siehe @ref{Defining Packages})." #. type: cindex #: guix-git/doc/guix.texi:11838 #, no-wrap msgid "G-expression" msgstr "G-Ausdruck" #. type: cindex #: guix-git/doc/guix.texi:11839 #, no-wrap msgid "build code quoting" msgstr "Erstellungscode maskieren" #. type: Plain text #: guix-git/doc/guix.texi:11845 msgid "So we have ``derivations'', which represent a sequence of build actions to be performed to produce an item in the store (@pxref{Derivations}). These build actions are performed when asking the daemon to actually build the derivations; they are run by the daemon in a container (@pxref{Invoking guix-daemon})." msgstr "Es gibt also „Ableitungen“, die eine Abfolge von Erstellungsaktionen repräsentieren, die durchgeführt werden müssen, um ein Objekt im Store zu erzeugen (siehe @ref{Derivations}). Diese Erstellungsaktionen werden durchgeführt, nachdem der Daemon gebeten wurde, die Ableitungen tatsächlich zu erstellen; dann führt der Daemon sie in einer isolierten Umgebung (einem sogenannten Container) aus (siehe @ref{Invoking guix-daemon})." #. type: cindex #: guix-git/doc/guix.texi:11848 #, no-wrap msgid "strata of code" msgstr "Schichten von Code" #. type: Plain text #: guix-git/doc/guix.texi:11860 msgid "It should come as no surprise that we like to write these build actions in Scheme. When we do that, we end up with two @dfn{strata} of Scheme code@footnote{The term @dfn{stratum} in this context was coined by Manuel Serrano et al.@: in the context of their work on Hop. Oleg Kiselyov, who has written insightful @url{http://okmij.org/ftp/meta-programming/#meta-scheme, essays and code on this topic}, refers to this kind of code generation as @dfn{staging}.}: the ``host code''---code that defines packages, talks to the daemon, etc.---and the ``build code''---code that actually performs build actions, such as making directories, invoking @command{make}, and so on (@pxref{Build Phases})." msgstr "Wenig überraschend ist, dass wir diese Erstellungsaktionen gerne in Scheme schreiben würden. Wenn wir das tun, bekommen wir zwei verschiedene @dfn{Schichten} von Scheme-Code@footnote{Der Begriff @dfn{Schicht}, englisch Stratum, wurde in diesem Kontext von Manuel Serrano et al.@: in ihrer Arbeit an Hop geprägt. Oleg Kiselyov, der aufschlussreiche @url{http://okmij.org/ftp/meta-programming/#meta-scheme, Essays und Code zu diesem Thema} geschrieben hat, nennt diese Art der Code-Generierung @dfn{Staging}, deutsch etwa Inszenierung bzw.@: Aufführung.}: den „wirtsseitigen Code“ („host code“)@tie{}– also Code, der Pakete definiert, mit dem Daemon kommuniziert etc.@:@tie{}– und den „erstellungsseitigen Code“ („build code“)@tie{}– also Code, der die Erstellungsaktionen auch wirklich umsetzt, indem Dateien erstellt werden, @command{make} aufgerufen wird und so weiter (siehe @ref{Build Phases})." #. type: Plain text #: guix-git/doc/guix.texi:11867 msgid "To describe a derivation and its build actions, one typically needs to embed build code inside host code. It boils down to manipulating build code as data, and the homoiconicity of Scheme---code has a direct representation as data---comes in handy for that. But we need more than the normal @code{quasiquote} mechanism in Scheme to construct build expressions." msgstr "Um eine Ableitung und ihre Erstellungsaktionen zu beschreiben, muss man normalerweise erstellungsseitigen Code im wirtsseitigen Code einbetten. Das bedeutet, man behandelt den erstellungsseitigen Code als Daten, was wegen der Homoikonizität von Scheme@tie{}– dass Code genauso als Daten repräsentiert werden kann@tie{}– sehr praktisch ist. Doch brauchen wir hier mehr als nur den normalen Quasimaskierungsmechanismus mit @code{quasiquote} in Scheme, wenn wir Erstellungsausdrücke konstruieren möchten." #. type: Plain text #: guix-git/doc/guix.texi:11876 msgid "The @code{(guix gexp)} module implements @dfn{G-expressions}, a form of S-expressions adapted to build expressions. G-expressions, or @dfn{gexps}, consist essentially of three syntactic forms: @code{gexp}, @code{ungexp}, and @code{ungexp-splicing} (or simply: @code{#~}, @code{#$}, and @code{#$@@}), which are comparable to @code{quasiquote}, @code{unquote}, and @code{unquote-splicing}, respectively (@pxref{Expression Syntax, @code{quasiquote},, guile, GNU Guile Reference Manual}). However, there are major differences:" msgstr "Das Modul @code{(guix gexp)} implementiert @dfn{G-Ausdrücke}, eine Form von S-Ausdrücken, die zu Erstellungsausdrücken angepasst wurden. G-Ausdrücke (englisch „G-expressions“, kurz @dfn{Gexps}) setzen sich grundlegend aus drei syntaktischen Formen zusammen: @code{gexp}, @code{ungexp} und @code{ungexp-splicing} (alternativ einfach: @code{#~}, @code{#$} und @code{#$@@}), die jeweils mit @code{quasiquote}, @code{unquote} und @code{unquote-splicing} vergleichbar sind (siehe @ref{Expression Syntax, @code{quasiquote},, guile, Referenzhandbuch zu GNU Guile}). Es gibt aber auch erhebliche Unterschiede:" #. type: itemize #: guix-git/doc/guix.texi:11881 msgid "Gexps are meant to be written to a file and run or manipulated by other processes." msgstr "G-Ausdrücke sind dafür gedacht, in eine Datei geschrieben zu werden, wo sie von anderen Prozessen ausgeführt oder manipuliert werden können." #. type: itemize #: guix-git/doc/guix.texi:11886 msgid "When a high-level object such as a package or derivation is unquoted inside a gexp, the result is as if its output file name had been introduced." msgstr "Wenn ein abstraktes Objekt wie ein Paket oder eine Ableitung innerhalb eines G-Ausdrucks demaskiert wird, ist das Ergebnis davon dasselbe, wie wenn dessen Ausgabedateiname genannt worden wäre." #. type: itemize #: guix-git/doc/guix.texi:11891 msgid "Gexps carry information about the packages or derivations they refer to, and these dependencies are automatically added as inputs to the build processes that use them." msgstr "G-Ausdrücke tragen Informationen über die Pakete oder Ableitungen mit sich, auf die sie sich beziehen, und diese Abhängigkeiten werden automatisch zu den sie benutzenden Erstellungsprozessen als Eingaben hinzugefügt." #. type: cindex #: guix-git/doc/guix.texi:11893 guix-git/doc/guix.texi:12495 #, no-wrap msgid "lowering, of high-level objects in gexps" msgstr "Herunterbrechen, von abstrakten Objekten in G-Ausdrücken" #. type: Plain text #: guix-git/doc/guix.texi:11903 msgid "This mechanism is not limited to package and derivation objects: @dfn{compilers} able to ``lower'' other high-level objects to derivations or files in the store can be defined, such that these objects can also be inserted into gexps. For example, a useful type of high-level objects that can be inserted in a gexp is ``file-like objects'', which make it easy to add files to the store and to refer to them in derivations and such (see @code{local-file} and @code{plain-file} below)." msgstr "Dieser Mechanismus ist nicht auf Pakete und Ableitung beschränkt: Es können @dfn{Compiler} definiert werden, die weitere abstrakte, hochsprachliche Objekte auf Ableitungen oder Dateien im Store „herunterbrechen“, womit diese Objekte dann auch in G-Ausdrücken eingefügt werden können. Zum Beispiel sind „dateiartige Objekte“ ein nützlicher Typ solcher abstrakter Objekte. Mit ihnen können Dateien leicht in den Store eingefügt und von Ableitungen und anderem referenziert werden (siehe unten @code{local-file} und @code{plain-file})." #. type: Plain text #: guix-git/doc/guix.texi:11905 msgid "To illustrate the idea, here is an example of a gexp:" msgstr "Zur Veranschaulichung dieser Idee soll uns dieses Beispiel eines G-Ausdrucks dienen:" #. type: lisp #: guix-git/doc/guix.texi:11913 #, no-wrap msgid "" "(define build-exp\n" " #~(begin\n" " (mkdir #$output)\n" " (chdir #$output)\n" " (symlink (string-append #$coreutils \"/bin/ls\")\n" " \"list-files\")))\n" msgstr "" "(define build-exp\n" " #~(begin\n" " (mkdir #$output)\n" " (chdir #$output)\n" " (symlink (string-append #$coreutils \"/bin/ls\")\n" " \"list-files\")))\n" #. type: Plain text #: guix-git/doc/guix.texi:11918 msgid "This gexp can be passed to @code{gexp->derivation}; we obtain a derivation that builds a directory containing exactly one symlink to @file{/gnu/store/@dots{}-coreutils-8.22/bin/ls}:" msgstr "Indem wir diesen G-Ausdruck an @code{gexp->derivation} übergeben, bekommen wir eine Ableitung, die ein Verzeichnis mit genau einer symbolischen Verknüpfung auf @file{/gnu/store/…-coreutils-8.22/bin/ls} erstellt:" #. type: lisp #: guix-git/doc/guix.texi:11921 #, no-wrap msgid "(gexp->derivation \"the-thing\" build-exp)\n" msgstr "(gexp->derivation \"das-ding\" build-exp)\n" #. type: Plain text #: guix-git/doc/guix.texi:11929 msgid "As one would expect, the @code{\"/gnu/store/@dots{}-coreutils-8.22\"} string is substituted to the reference to the @var{coreutils} package in the actual build code, and @var{coreutils} is automatically made an input to the derivation. Likewise, @code{#$output} (equivalent to @code{(ungexp output)}) is replaced by a string containing the directory name of the output of the derivation." msgstr "Wie man es erwarten würde, wird die Zeichenkette @code{\"/gnu/store/…-coreutils-8.22\"} anstelle der Referenzen auf das Paket @var{coreutils} im eigentlichen Erstellungscode eingefügt und @var{coreutils} automatisch zu einer Eingabe der Ableitung gemacht. Genauso wird auch @code{#$output} (was äquivalent zur Schreibweise @code{(ungexp output)} ist) ersetzt durch eine Zeichenkette mit dem Namen der Ausgabe der Ableitung." #. type: cindex #: guix-git/doc/guix.texi:11930 #, no-wrap msgid "cross compilation" msgstr "Cross-Kompilieren" #. type: Plain text #: guix-git/doc/guix.texi:11936 msgid "In a cross-compilation context, it is useful to distinguish between references to the @emph{native} build of a package---that can run on the host---versus references to cross builds of a package. To that end, the @code{#+} plays the same role as @code{#$}, but is a reference to a native package build:" msgstr "Im Kontext der Cross-Kompilierung bietet es sich an, zwischen Referenzen auf die @emph{native} Erstellung eines Pakets@tie{}– also der, die auf dem Wirtssystem ausgeführt werden kann@tie{}– und Referenzen auf Cross-Erstellungen eines Pakets zu unterscheiden. Hierfür spielt @code{#+} dieselbe Rolle wie @code{#$}, steht aber für eine Referenz auf eine native Paketerstellung." #. type: lisp #: guix-git/doc/guix.texi:11947 #, no-wrap msgid "" "(gexp->derivation \"vi\"\n" " #~(begin\n" " (mkdir #$output)\n" " (mkdir (string-append #$output \"/bin\"))\n" " (system* (string-append #+coreutils \"/bin/ln\")\n" " \"-s\"\n" " (string-append #$emacs \"/bin/emacs\")\n" " (string-append #$output \"/bin/vi\")))\n" " #:target \"aarch64-linux-gnu\")\n" msgstr "" "(gexp->derivation \"vi\"\n" " #~(begin\n" " (mkdir #$output)\n" " (mkdir (string-append #$output \"/bin\"))\n" " (system* (string-append #+coreutils \"/bin/ln\")\n" " \"-s\"\n" " (string-append #$emacs \"/bin/emacs\")\n" " (string-append #$output \"/bin/vi\")))\n" " #:target \"aarch64-linux-gnu\")\n" #. type: Plain text #: guix-git/doc/guix.texi:11953 msgid "In the example above, the native build of @var{coreutils} is used, so that @command{ln} can actually run on the host; but then the cross-compiled build of @var{emacs} is referenced." msgstr "Im obigen Beispiel wird die native Erstellung der @var{coreutils} benutzt, damit @command{ln} tatsächlich auf dem Wirtssystem ausgeführt werden kann, aber danach die cross-kompilierte Erstellung von @var{emacs} referenziert." #. type: cindex #: guix-git/doc/guix.texi:11954 #, no-wrap msgid "imported modules, for gexps" msgstr "importierte Module, in G-Ausdrücken" #. type: findex #: guix-git/doc/guix.texi:11955 #, no-wrap msgid "with-imported-modules" msgstr "with-imported-modules" #. type: Plain text #: guix-git/doc/guix.texi:11960 msgid "Another gexp feature is @dfn{imported modules}: sometimes you want to be able to use certain Guile modules from the ``host environment'' in the gexp, so those modules should be imported in the ``build environment''. The @code{with-imported-modules} form allows you to express that:" msgstr "Eine weitere Funktionalität von G-Ausdrücken stellen @dfn{importierte Module} dar. Manchmal will man bestimmte Guile-Module von der „wirtsseitigen Umgebung“ im G-Ausdruck benutzen können, deswegen sollten diese Module in die „erstellungsseitige Umgebung“ importiert werden. Die @code{with-imported-modules}-Form macht das möglich:" #. type: lisp #: guix-git/doc/guix.texi:11971 #, no-wrap msgid "" "(let ((build (with-imported-modules '((guix build utils))\n" " #~(begin\n" " (use-modules (guix build utils))\n" " (mkdir-p (string-append #$output \"/bin\"))))))\n" " (gexp->derivation \"empty-dir\"\n" " #~(begin\n" " #$build\n" " (display \"success!\\n\")\n" " #t)))\n" msgstr "" "(let ((build (with-imported-modules '((guix build utils))\n" " #~(begin\n" " (use-modules (guix build utils))\n" " (mkdir-p (string-append #$output \"/bin\"))))))\n" " (gexp->derivation \"leeres-Verzeichnis\"\n" " #~(begin\n" " #$build\n" " (display \"Erfolg!\\n\")\n" " #t)))\n" #. type: Plain text #: guix-git/doc/guix.texi:11977 msgid "In this example, the @code{(guix build utils)} module is automatically pulled into the isolated build environment of our gexp, such that @code{(use-modules (guix build utils))} works as expected." msgstr "In diesem Beispiel wird das Modul @code{(guix build utils)} automatisch in die isolierte Erstellungsumgebung unseres G-Ausdrucks geholt, so dass @code{(use-modules (guix build utils))} wie erwartet funktioniert." #. type: cindex #: guix-git/doc/guix.texi:11978 #, no-wrap msgid "module closure" msgstr "Modulabschluss" #. type: findex #: guix-git/doc/guix.texi:11979 #, no-wrap msgid "source-module-closure" msgstr "source-module-closure" #. type: Plain text #: guix-git/doc/guix.texi:11986 msgid "Usually you want the @emph{closure} of the module to be imported---i.e., the module itself and all the modules it depends on---rather than just the module; failing to do that, attempts to use the module will fail because of missing dependent modules. The @code{source-module-closure} procedure computes the closure of a module by looking at its source file headers, which comes in handy in this case:" msgstr "Normalerweise möchten Sie, dass der @emph{Abschluss} eines Moduls importiert wird@tie{}– also das Modul und alle Module, von denen es abhängt@tie{}– statt nur das Modul selbst. Ansonsten scheitern Versuche, das Modul zu benutzen, weil seine Modulabhängigkeiten fehlen. Die Prozedur @code{source-module-closure} berechnet den Abschluss eines Moduls, indem es den Kopf seiner Quelldatei analysiert, deswegen schafft die Prozedur hier Abhilfe:" #. type: lisp #: guix-git/doc/guix.texi:11989 #, no-wrap msgid "" "(use-modules (guix modules)) ;for 'source-module-closure'\n" "\n" msgstr "" "(use-modules (guix modules)) ;„source-module-closure“ verfügbar machen\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:11998 #, no-wrap msgid "" "(with-imported-modules (source-module-closure\n" " '((guix build utils)\n" " (gnu build image)))\n" " (gexp->derivation \"something-with-vms\"\n" " #~(begin\n" " (use-modules (guix build utils)\n" " (gnu build image))\n" " @dots{})))\n" msgstr "" "(with-imported-modules (source-module-closure\n" " '((guix build utils)\n" " (gnu build image)))\n" " (gexp->derivation \"etwas-mit-vm\"\n" " #~(begin\n" " (use-modules (guix build utils)\n" " (gnu build image))\n" " …)))\n" #. type: cindex #: guix-git/doc/guix.texi:12000 #, no-wrap msgid "extensions, for gexps" msgstr "Erweiterungen, für G-Ausdrücke" #. type: findex #: guix-git/doc/guix.texi:12001 #, no-wrap msgid "with-extensions" msgstr "with-extensions" #. type: Plain text #: guix-git/doc/guix.texi:12006 msgid "In the same vein, sometimes you want to import not just pure-Scheme modules, but also ``extensions'' such as Guile bindings to C libraries or other ``full-blown'' packages. Say you need the @code{guile-json} package available on the build side, here's how you would do it:" msgstr "Auf die gleiche Art können Sie auch vorgehen, wenn Sie nicht bloß reine Scheme-Module importieren möchten, sondern auch „Erweiterungen“ wie Guile-Anbindungen von C-Bibliotheken oder andere „vollumfängliche“ Pakete. Sagen wir, Sie bräuchten das Paket @code{guile-json} auf der Erstellungsseite, dann könnten Sie es hiermit bekommen:" #. type: lisp #: guix-git/doc/guix.texi:12009 #, no-wrap msgid "" "(use-modules (gnu packages guile)) ;for 'guile-json'\n" "\n" msgstr "" "(use-modules (gnu packages guile)) ;für „guile-json“\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:12015 #, no-wrap msgid "" "(with-extensions (list guile-json)\n" " (gexp->derivation \"something-with-json\"\n" " #~(begin\n" " (use-modules (json))\n" " @dots{})))\n" msgstr "" "(with-extensions (list guile-json)\n" " (gexp->derivation \"etwas-mit-json\"\n" " #~(begin\n" " (use-modules (json))\n" " …)))\n" #. type: Plain text #: guix-git/doc/guix.texi:12018 msgid "The syntactic form to construct gexps is summarized below." msgstr "Die syntaktische Form, in der G-Ausdrücke konstruiert werden, ist im Folgenden zusammengefasst." #. type: defmac #: guix-git/doc/guix.texi:12019 #, no-wrap msgid "#~@var{exp}" msgstr "#~@var{Ausdruck}" #. type: defmacx #: guix-git/doc/guix.texi:12020 #, no-wrap msgid "(gexp @var{exp})" msgstr "(gexp @var{Ausdruck})" #. type: defmac #: guix-git/doc/guix.texi:12023 msgid "Return a G-expression containing @var{exp}. @var{exp} may contain one or more of the following forms:" msgstr "Liefert einen G-Ausdruck, der den @var{Ausdruck} enthält. Der @var{Ausdruck} kann eine oder mehrere der folgenden Formen enthalten:" #. type: item #: guix-git/doc/guix.texi:12025 #, no-wrap msgid "#$@var{obj}" msgstr "#$@var{Objekt}" #. type: itemx #: guix-git/doc/guix.texi:12026 #, no-wrap msgid "(ungexp @var{obj})" msgstr "(ungexp @var{Objekt})" #. type: table #: guix-git/doc/guix.texi:12031 msgid "Introduce a reference to @var{obj}. @var{obj} may have one of the supported types, for example a package or a derivation, in which case the @code{ungexp} form is replaced by its output file name---e.g., @code{\"/gnu/store/@dots{}-coreutils-8.22}." msgstr "Eine Referenz auf das @var{Objekt} einführen. Das @var{Objekt} kann einen der unterstützten Typen haben, zum Beispiel ein Paket oder eine Ableitung, so dass die @code{ungexp}-Form durch deren Ausgabedateiname ersetzt wird@tie{}– z.B.@: @code{\"/gnu/store/…-coreutils-8.22}." #. type: table #: guix-git/doc/guix.texi:12034 msgid "If @var{obj} is a list, it is traversed and references to supported objects are substituted similarly." msgstr "Wenn das @var{Objekt} eine Liste ist, wird diese durchlaufen und alle unterstützten Objekte darin auf diese Weise ersetzt." #. type: table #: guix-git/doc/guix.texi:12037 msgid "If @var{obj} is another gexp, its contents are inserted and its dependencies are added to those of the containing gexp." msgstr "Wenn das @var{Objekt} ein anderer G-Ausdruck ist, wird sein Inhalt eingefügt und seine Abhängigkeiten zu denen des äußeren G-Ausdrucks hinzugefügt." #. type: table #: guix-git/doc/guix.texi:12039 msgid "If @var{obj} is another kind of object, it is inserted as is." msgstr "Wenn das @var{Objekt} eine andere Art von Objekt ist, wird es so wie es ist eingefügt." #. type: item #: guix-git/doc/guix.texi:12040 #, no-wrap msgid "#$@var{obj}:@var{output}" msgstr "#$@var{Objekt}:@var{Ausgabe}" #. type: itemx #: guix-git/doc/guix.texi:12041 #, no-wrap msgid "(ungexp @var{obj} @var{output})" msgstr "(ungexp @var{Objekt} @var{Ausgabe})" #. type: table #: guix-git/doc/guix.texi:12045 msgid "This is like the form above, but referring explicitly to the @var{output} of @var{obj}---this is useful when @var{obj} produces multiple outputs (@pxref{Packages with Multiple Outputs})." msgstr "Dies verhält sich wie die Form oben, bezieht sich aber ausdrücklich auf die angegebene @var{Ausgabe} des @var{Objekt}s@tie{}– dies ist nützlich, wenn das @var{Objekt} mehrere Ausgaben generiert (siehe @ref{Packages with Multiple Outputs})." #. type: table #: guix-git/doc/guix.texi:12050 msgid "Sometimes a gexp unconditionally refers to the @code{\"out\"} output, but the user of that gexp would still like to insert a reference to another output. The @code{gexp-input} procedure aims to address that. @xref{gexp-input}." msgstr "Manchmal wird in einem G-Ausdruck grundsätzlich auf die Ausgabe @code{\"out\"} von etwas verwiesen, aber man möchte ihn eigentlich mit einem Verweis auf eine andere Ausgabe einfügen. Für solche Fälle gibt es die Prozedur @code{gexp-input}. Siehe @ref{gexp-input}." #. type: item #: guix-git/doc/guix.texi:12051 #, no-wrap msgid "#+@var{obj}" msgstr "#+@var{Objekt}" #. type: itemx #: guix-git/doc/guix.texi:12052 #, no-wrap msgid "#+@var{obj}:output" msgstr "#+@var{Objekt}:@var{Ausgabe}" #. type: itemx #: guix-git/doc/guix.texi:12053 #, no-wrap msgid "(ungexp-native @var{obj})" msgstr "(ungexp-native @var{Objekt})" #. type: itemx #: guix-git/doc/guix.texi:12054 #, no-wrap msgid "(ungexp-native @var{obj} @var{output})" msgstr "(ungexp-native @var{Objekt} @var{Ausgabe})" #. type: table #: guix-git/doc/guix.texi:12057 msgid "Same as @code{ungexp}, but produces a reference to the @emph{native} build of @var{obj} when used in a cross compilation context." msgstr "Das Gleiche wie @code{ungexp}, jedoch wird im Kontext einer Cross-Kompilierung eine Referenz auf die @emph{native} Erstellung des @var{Objekt}s eingefügt." #. type: item #: guix-git/doc/guix.texi:12058 #, no-wrap msgid "#$output[:@var{output}]" msgstr "#$output[:@var{Ausgabe}]" #. type: itemx #: guix-git/doc/guix.texi:12059 #, no-wrap msgid "(ungexp output [@var{output}])" msgstr "(ungexp output [@var{Ausgabe}])" #. type: table #: guix-git/doc/guix.texi:12062 msgid "Insert a reference to derivation output @var{output}, or to the main output when @var{output} is omitted." msgstr "Fügt eine Referenz auf die angegebene @var{Ausgabe} dieser Ableitung ein, oder auf die Hauptausgabe, wenn keine @var{Ausgabe} angegeben wurde." #. type: table #: guix-git/doc/guix.texi:12064 msgid "This only makes sense for gexps passed to @code{gexp->derivation}." msgstr "Dies ist nur bei G-Ausdrücken sinnvoll, die an @code{gexp->derivation} übergeben werden." #. type: item #: guix-git/doc/guix.texi:12065 #, no-wrap msgid "#$@@@var{lst}" msgstr "#$@@@var{Liste}" #. type: itemx #: guix-git/doc/guix.texi:12066 #, no-wrap msgid "(ungexp-splicing @var{lst})" msgstr "(ungexp-splicing @var{Liste})" #. type: table #: guix-git/doc/guix.texi:12069 msgid "Like the above, but splices the contents of @var{lst} inside the containing list." msgstr "Das Gleiche wie oben, jedoch wird nur der Inhalt der @var{Liste} in die äußere Liste eingespleißt." #. type: item #: guix-git/doc/guix.texi:12070 #, no-wrap msgid "#+@@@var{lst}" msgstr "#+@@@var{Liste}" #. type: itemx #: guix-git/doc/guix.texi:12071 #, no-wrap msgid "(ungexp-native-splicing @var{lst})" msgstr "(ungexp-native-splicing @var{Liste})" #. type: table #: guix-git/doc/guix.texi:12074 msgid "Like the above, but refers to native builds of the objects listed in @var{lst}." msgstr "Das Gleiche, aber referenziert werden native Erstellungen der Objekte in der @var{Liste}." #. type: defmac #: guix-git/doc/guix.texi:12079 msgid "G-expressions created by @code{gexp} or @code{#~} are run-time objects of the @code{gexp?} type (see below)." msgstr "G-Ausdrücke, die mit @code{gexp} oder @code{#~} erzeugt wurden, sind zur Laufzeit Objekte vom Typ @code{gexp?} (siehe unten)." #. type: defmac #: guix-git/doc/guix.texi:12081 #, no-wrap msgid "with-imported-modules modules body@dots{}" msgstr "with-imported-modules Module Rumpf…" #. type: defmac #: guix-git/doc/guix.texi:12084 msgid "Mark the gexps defined in @var{body}@dots{} as requiring @var{modules} in their execution environment." msgstr "Markiert die in @var{Rumpf}…@: definierten G-Ausdrücke, dass sie in ihrer Ausführungsumgebung die angegebenen @var{Module} brauchen." #. type: defmac #: guix-git/doc/guix.texi:12088 msgid "Each item in @var{modules} can be the name of a module, such as @code{(guix build utils)}, or it can be a module name, followed by an arrow, followed by a file-like object:" msgstr "Jedes Objekt unter den @var{Module}n kann der Name eines Moduls wie @code{(guix build utils)} sein, oder es kann nacheinander ein Modulname, ein Pfeil und ein dateiartiges Objekt sein:" #. type: lisp #: guix-git/doc/guix.texi:12094 #, no-wrap msgid "" "`((guix build utils)\n" " (guix gcrypt)\n" " ((guix config) => ,(scheme-file \"config.scm\"\n" " #~(define-module @dots{}))))\n" msgstr "" "`((guix build utils)\n" " (guix gcrypt)\n" " ((guix config) => ,(scheme-file \"config.scm\"\n" " #~(define-module …))))\n" #. type: defmac #: guix-git/doc/guix.texi:12099 msgid "In the example above, the first two modules are taken from the search path, and the last one is created from the given file-like object." msgstr "Im Beispiel oben werden die ersten beiden Module vom Suchpfad genommen und das letzte aus dem angegebenen dateiartigen Objekt erzeugt." #. type: defmac #: guix-git/doc/guix.texi:12103 msgid "This form has @emph{lexical} scope: it has an effect on the gexps directly defined in @var{body}@dots{}, but not on those defined, say, in procedures called from @var{body}@dots{}." msgstr "Diese Form hat einen @emph{lexikalischen} Sichtbarkeitsbereich: Sie wirkt sich auf die direkt in @var{Rumpf}…@: definierten G-Ausdrücke aus, aber nicht auf jene, die, sagen wir, in aus @var{Rumpf}…@: heraus aufgerufenen Prozeduren definiert wurden." #. type: defmac #: guix-git/doc/guix.texi:12105 #, no-wrap msgid "with-extensions extensions body@dots{}" msgstr "with-extensions Erweiterungen Rumpf…" #. type: defmac #: guix-git/doc/guix.texi:12110 msgid "Mark the gexps defined in @var{body}@dots{} as requiring @var{extensions} in their build and execution environment. @var{extensions} is typically a list of package objects such as those defined in the @code{(gnu packages guile)} module." msgstr "Markiert die in @var{Rumpf}…@: definierten G-Ausdrücke, dass sie @var{Erweiterungen} in ihrer Erstellungs- und Ausführungsumgebung benötigen. @var{Erweiterungen} sind typischerweise eine Liste von Paketobjekten wie zum Beispiel die im Modul @code{(gnu packages guile)} definierten." #. type: defmac #: guix-git/doc/guix.texi:12115 msgid "Concretely, the packages listed in @var{extensions} are added to the load path while compiling imported modules in @var{body}@dots{}; they are also added to the load path of the gexp returned by @var{body}@dots{}." msgstr "Konkret werden die unter den @var{Erweiterungen} aufgeführten Pakete zum Ladepfad hinzugefügt, während die in @var{Rumpf}…@: aufgeführten importierten Module kompiliert werden und sie werden auch zum Ladepfad des von @var{Rumpf}…@: gelieferten G-Ausdrucks hinzugefügt." #. type: deffn #: guix-git/doc/guix.texi:12117 #, no-wrap msgid "{Procedure} gexp? obj" msgstr "{Prozedur} gexp? Objekt" #. type: deffn #: guix-git/doc/guix.texi:12119 msgid "Return @code{#t} if @var{obj} is a G-expression." msgstr "Liefert @code{#t}, wenn das @var{Objekt} ein G-Ausdruck ist." #. type: Plain text #: guix-git/doc/guix.texi:12125 msgid "G-expressions are meant to be written to disk, either as code building some derivation, or as plain files in the store. The monadic procedures below allow you to do that (@pxref{The Store Monad}, for more information about monads)." msgstr "G-Ausdrücke sind dazu gedacht, auf die Platte geschrieben zu werden, entweder als Code, der eine Ableitung erstellt, oder als einfache Dateien im Store. Die monadischen Prozeduren unten ermöglichen Ihnen das (siehe @ref{The Store Monad}, wenn Sie mehr Informationen über Monaden suchen)." #. type: deffn #: guix-git/doc/guix.texi:12126 #, no-wrap msgid "{Monadic Procedure} gexp->derivation @var{name} @var{exp} @" msgstr "{Monadische Prozedur} gexp->derivation @var{Name} @var{Ausdruck} @" #. type: deffn #: guix-git/doc/guix.texi:12144 msgid "[#:system (%current-system)] [#:target #f] [#:graft? #t] @ [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:module-path @code{%load-path}] @ [#:effective-version \"2.2\"] @ [#:references-graphs #f] [#:allowed-references #f] @ [#:disallowed-references #f] @ [#:leaked-env-vars #f] @ [#:script-name (string-append @var{name} \"-builder\")] @ [#:deprecation-warnings #f] @ [#:local-build? #f] [#:substitutable? #t] @ [#:properties '()] [#:guile-for-build #f] Return a derivation @var{name} that runs @var{exp} (a gexp) with @var{guile-for-build} (a derivation) on @var{system}; @var{exp} is stored in a file called @var{script-name}. When @var{target} is true, it is used as the cross-compilation target triplet for packages referred to by @var{exp}." msgstr "[#:system (%current-system)] [#:target #f] [#:graft? #t] @ [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:module-path @code{%load-path}] @ [#:effective-version \"2.2\"] @ [#:references-graphs #f] [#:allowed-references #f] @ [#:disallowed-references #f] @ [#:leaked-env-vars #f] @ [#:script-name (string-append @var{Name} \"-builder\")] @ [#:deprecation-warnings #f] @ [#:local-build? #f] [#:substitutable? #t] @ [#:properties '()] [#:guile-for-build #f] Liefert eine Ableitung unter dem @var{Name}n, die jeden @var{Ausdruck} (ein G-Ausdruck) mit @var{guile-for-build} (eine Ableitung) für das @var{System} erstellt; der @var{Ausdruck} wird dabei in einer Datei namens @var{script-name} gespeichert. Wenn „@var{target}“ wahr ist, wird es beim Cross-Kompilieren als Zieltripel für mit @var{Ausdruck} bezeichnete Pakete benutzt." #. type: deffn #: guix-git/doc/guix.texi:12152 msgid "@var{modules} is deprecated in favor of @code{with-imported-modules}. Its meaning is to make @var{modules} available in the evaluation context of @var{exp}; @var{modules} is a list of names of Guile modules searched in @var{module-path} to be copied in the store, compiled, and made available in the load path during the execution of @var{exp}---e.g., @code{((guix build utils) (guix build gnu-build-system))}." msgstr "@var{modules} gilt als veraltet; stattdessen sollte @code{with-imported-modules} benutzt werden. Die Bedeutung ist, dass die @var{Module} im Ausführungskontext des @var{Ausdruck}s verfügbar gemacht werden; @var{modules} ist dabei eine Liste von Namen von Guile-Modulen, die im Modulpfad @var{module-path} gesucht werden, um sie in den Store zu kopieren, zu kompilieren und im Ladepfad während der Ausführung des @var{Ausdruck}s verfügbar zu machen@tie{}– z.B.@: @code{((guix build utils) (guix build gnu-build-system))}." #. type: deffn #: guix-git/doc/guix.texi:12155 msgid "@var{effective-version} determines the string to use when adding extensions of @var{exp} (see @code{with-extensions}) to the search path---e.g., @code{\"2.2\"}." msgstr "@var{effective-version} bestimmt, unter welcher Zeichenkette die Erweiterungen des @var{Ausdruck}s zum Suchpfad hinzugefügt werden (siehe @code{with-extensions})@tie{}– z.B.@: @code{\"2.2\"}." #. type: deffn #: guix-git/doc/guix.texi:12158 msgid "@var{graft?} determines whether packages referred to by @var{exp} should be grafted when applicable." msgstr "@var{graft?} bestimmt, ob vom @var{Ausdruck} benannte Pakete veredelt werden sollen, falls Veredelungen zur Verfügung stehen." #. type: deffn #: guix-git/doc/guix.texi:12161 msgid "When @var{references-graphs} is true, it must be a list of tuples of one of the following forms:" msgstr "Ist @var{references-graphs} wahr, muss es eine Liste von Tupeln in einer der folgenden Formen sein:" #. type: example #: guix-git/doc/guix.texi:12167 #, no-wrap msgid "" "(@var{file-name} @var{obj})\n" "(@var{file-name} @var{obj} @var{output})\n" "(@var{file-name} @var{gexp-input})\n" "(@var{file-name} @var{store-item})\n" msgstr "" "(@var{Dateiname} @var{Objekt})\n" "(@var{Dateiname} @var{Objekt} @var{Ausgabe})\n" "(@var{Dateiname} @var{Gexp-Input})\n" "(@var{Dateiname} @var{Store-Objekt})\n" #. type: deffn #: guix-git/doc/guix.texi:12173 msgid "The right-hand-side of each element of @var{references-graphs} is automatically made an input of the build process of @var{exp}. In the build environment, each @var{file-name} contains the reference graph of the corresponding item, in a simple text format." msgstr "Bei jedem Element von @var{references-graphs} wird das rechts Stehende automatisch zu einer Eingabe des Erstellungsprozesses vom @var{Ausdruck} gemacht. In der Erstellungsumgebung enthält das, was mit @var{Dateiname} bezeichnet wird, den Referenzgraphen des entsprechenden Objekts in einem einfachen Textformat." #. type: deffn #: guix-git/doc/guix.texi:12179 msgid "@var{allowed-references} must be either @code{#f} or a list of output names and packages. In the latter case, the list denotes store items that the result is allowed to refer to. Any reference to another store item will lead to a build error. Similarly for @var{disallowed-references}, which can list items that must not be referenced by the outputs." msgstr "@var{allowed-references} muss entweder @code{#f} oder eine Liste von Ausgabenamen und Paketen sein. Eine solche Liste benennt Store-Objekte, die das Ergebnis referenzieren darf. Jede Referenz auf ein nicht dort aufgeführtes Store-Objekt löst einen Erstellungsfehler aus. Genauso funktioniert @var{disallowed-references}, was eine Liste von Objekten sein kann, die von den Ausgaben nicht referenziert werden dürfen." #. type: deffn #: guix-git/doc/guix.texi:12182 msgid "@var{deprecation-warnings} determines whether to show deprecation warnings while compiling modules. It can be @code{#f}, @code{#t}, or @code{'detailed}." msgstr "@var{deprecation-warnings} bestimmt, ob beim Kompilieren von Modulen Warnungen angezeigt werden sollen, wenn auf als veraltet markierten Code zugegriffen wird. @var{deprecation-warnings} kann @code{#f}, @code{#t} oder @code{'detailed} (detailliert) sein." #. type: deffn #: guix-git/doc/guix.texi:12184 msgid "The other arguments are as for @code{derivation} (@pxref{Derivations})." msgstr "Die anderen Argumente verhalten sich wie bei @code{derivation} (siehe @ref{Derivations})." #. type: cindex #: guix-git/doc/guix.texi:12186 #, no-wrap msgid "file-like objects" msgstr "dateiartige Objekte" #. type: Plain text #: guix-git/doc/guix.texi:12191 msgid "The @code{local-file}, @code{plain-file}, @code{computed-file}, @code{program-file}, and @code{scheme-file} procedures below return @dfn{file-like objects}. That is, when unquoted in a G-expression, these objects lead to a file in the store. Consider this G-expression:" msgstr "Die im Folgenden erklärten Prozeduren @code{local-file}, @code{plain-file}, @code{computed-file}, @code{program-file} und @code{scheme-file} liefern @dfn{dateiartige Objekte}. Das bedeutet, dass diese Objekte, wenn sie in einem G-Ausdruck demaskiert werden, zu einer Datei im Store führen. Betrachten Sie zum Beispiel diesen G-Ausdruck:" #. type: lisp #: guix-git/doc/guix.texi:12195 #, no-wrap msgid "" "#~(system* #$(file-append glibc \"/sbin/nscd\") \"-f\"\n" " #$(local-file \"/tmp/my-nscd.conf\"))\n" msgstr "" "#~(system* #$(file-append glibc \"/sbin/nscd\") \"-f\"\n" " #$(local-file \"/tmp/my-nscd.conf\"))\n" #. type: Plain text #: guix-git/doc/guix.texi:12204 msgid "The effect here is to ``intern'' @file{/tmp/my-nscd.conf} by copying it to the store. Once expanded, for instance @i{via} @code{gexp->derivation}, the G-expression refers to that copy under @file{/gnu/store}; thus, modifying or removing the file in @file{/tmp} does not have any effect on what the G-expression does. @code{plain-file} can be used similarly; it differs in that the file content is directly passed as a string." msgstr "Der Effekt hiervon ist, dass @file{/tmp/my-nscd.conf} „interniert“ wird, indem es in den Store kopiert wird. Sobald er umgeschrieben wurde, zum Beispiel über @code{gexp->derivation}, referenziert der G-Ausdruck diese Kopie im @file{/gnu/store}. Die Datei in @file{/tmp} zu bearbeiten oder zu löschen, hat dann keinen Effekt mehr darauf, was der G-Ausdruck tut. @code{plain-file} kann in ähnlicher Weise benutzt werden, es unterscheidet sich aber darin, dass dort der Prozedur der Inhalt der Datei als eine Zeichenkette übergeben wird." #. type: deffn #: guix-git/doc/guix.texi:12205 #, no-wrap msgid "{Procedure} local-file file [name] [#:recursive? #f] [#:select? (const #t)]" msgstr "{Prozedur} local-file Datei [Name] [#:recursive? #f] [#:select? (const #t)]" #. type: deffn #: guix-git/doc/guix.texi:12213 msgid "Return an object representing local file @var{file} to add to the store; this object can be used in a gexp. If @var{file} is a literal string denoting a relative file name, it is looked up relative to the source file where it appears; if @var{file} is not a literal string, it is looked up relative to the current working directory at run time. @var{file} will be added to the store under @var{name}--by default the base name of @var{file}." msgstr "Liefert ein Objekt, dass die lokale Datei @var{Datei} repräsentiert und sie zum Store hinzufügen lässt; dieses Objekt kann in einem G-Ausdruck benutzt werden. Wurde für die @var{Datei} ein relativer Dateiname als literaler Ausdruck angegeben, wird sie relativ zur Quelldatei gesucht, in der diese Form steht. Wurde die @var{Datei} @emph{nicht} als literale Zeichenkette angegeben, wird sie zur Laufzeit relativ zum aktuellen Arbeitsverzeichnis gesucht. Die @var{Datei} wird unter dem angegebenen @var{Name}n im Store abgelegt@tie{}– als Vorgabe wird dabei der Basisname der @var{Datei} genommen." #. type: deffn #: guix-git/doc/guix.texi:12228 msgid "@var{file} can be wrapped in the @code{assume-valid-file-name} syntactic keyword. When this is done, there will not be a warning when @code{local-file} is used with a non-literal path. The path is still looked up relative to the current working directory at run time. Wrapping is done like this:" msgstr "" #. type: lisp #: guix-git/doc/guix.texi:12233 #, no-wrap msgid "" "(define alice-key-file-path \"alice.pub\")\n" ";; ...\n" "(local-file (assume-valid-file-name alice-key-file-path))\n" msgstr "" #. type: deffn #: guix-git/doc/guix.texi:12237 msgid "This is the declarative counterpart of the @code{interned-file} monadic procedure (@pxref{The Store Monad, @code{interned-file}})." msgstr "Dies ist das deklarative Gegenstück zur monadischen Prozedur @code{interned-file} (siehe @ref{The Store Monad, @code{interned-file}})." #. type: deffn #: guix-git/doc/guix.texi:12239 #, no-wrap msgid "{Procedure} plain-file name content" msgstr "{Prozedur} plain-file Name Inhalt" #. type: deffn #: guix-git/doc/guix.texi:12242 msgid "Return an object representing a text file called @var{name} with the given @var{content} (a string or a bytevector) to be added to the store." msgstr "Liefert ein Objekt, das eine Textdatei mit dem angegebenen @var{Name}n repräsentiert, die den angegebenen @var{Inhalt} hat (eine Zeichenkette oder ein Bytevektor), welche zum Store hinzugefügt werden soll." #. type: deffn #: guix-git/doc/guix.texi:12244 msgid "This is the declarative counterpart of @code{text-file}." msgstr "Dies ist das deklarative Gegenstück zu @code{text-file}." #. type: deffn #: guix-git/doc/guix.texi:12246 #, no-wrap msgid "{Procedure} computed-file name gexp [#:local-build? #t] [#:options '()]" msgstr "{Prozedur} computed-file Name G-Ausdruck [#:local-build? #t] [#:options '()]" #. type: deffn #: guix-git/doc/guix.texi:12251 msgid "Return an object representing the store item @var{name}, a file or directory computed by @var{gexp}. When @var{local-build?} is true (the default), the derivation is built locally. @var{options} is a list of additional arguments to pass to @code{gexp->derivation}." msgstr "Liefert ein Objekt, das das Store-Objekt mit dem @var{Name}n repräsentiert, eine Datei oder ein Verzeichnis, das vom @var{G-Ausdruck} berechnet wurde. Wenn @var{local-build?} auf wahr steht (wie vorgegeben), wird auf der lokalen Maschine erstellt. @var{options} ist eine Liste zusätzlicher Argumente, die an @code{gexp->derivation} übergeben werden." #. type: deffn #: guix-git/doc/guix.texi:12253 msgid "This is the declarative counterpart of @code{gexp->derivation}." msgstr "Dies ist das deklarative Gegenstück zu @code{gexp->derivation}." #. type: deffn #: guix-git/doc/guix.texi:12255 #, no-wrap msgid "{Monadic Procedure} gexp->script @var{name} @var{exp} @" msgstr "{Monadische Prozedur} gexp->script @var{Name} @var{Ausdruck} @" #. type: deffn #: guix-git/doc/guix.texi:12261 msgid "[#:guile (default-guile)] [#:module-path %load-path] @ [#:system (%current-system)] [#:target #f] Return an executable script @var{name} that runs @var{exp} using @var{guile}, with @var{exp}'s imported modules in its search path. Look up @var{exp}'s modules in @var{module-path}." msgstr "[#:guile (default-guile)] [#:module-path %load-path] @ [#:system (%current-system)] [#:target #f] Liefert ein ausführbares Skript namens @var{Name}, das den @var{Ausdruck} mit dem angegebenen @var{guile} ausführt, wobei vom @var{Ausdruck} importierte Module in seinem Suchpfad stehen. Die Module des @var{Ausdruck}s werden dazu im Modulpfad @var{module-path} gesucht." #. type: deffn #: guix-git/doc/guix.texi:12264 msgid "The example below builds a script that simply invokes the @command{ls} command:" msgstr "Folgendes Beispiel erstellt ein Skript, das einfach nur den Befehl @command{ls} ausführt:" #. type: lisp #: guix-git/doc/guix.texi:12267 #, no-wrap msgid "" "(use-modules (guix gexp) (gnu packages base))\n" "\n" msgstr "" "(use-modules (guix gexp) (gnu packages base))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:12271 #, no-wrap msgid "" "(gexp->script \"list-files\"\n" " #~(execl #$(file-append coreutils \"/bin/ls\")\n" " \"ls\"))\n" msgstr "" "(gexp->script \"list-files\"\n" " #~(execl #$(file-append coreutils \"/bin/ls\")\n" " \"ls\"))\n" #. type: deffn #: guix-git/doc/guix.texi:12276 msgid "When ``running'' it through the store (@pxref{The Store Monad, @code{run-with-store}}), we obtain a derivation that produces an executable file @file{/gnu/store/@dots{}-list-files} along these lines:" msgstr "Lässt man es durch den Store „laufen“ (siehe @ref{The Store Monad, @code{run-with-store}}), erhalten wir eine Ableitung, die eine ausführbare Datei @file{/gnu/store/…-list-files} generiert, ungefähr so:" #. type: example #: guix-git/doc/guix.texi:12281 #, no-wrap msgid "" "#!/gnu/store/@dots{}-guile-2.0.11/bin/guile -ds\n" "!#\n" "(execl \"/gnu/store/@dots{}-coreutils-8.22\"/bin/ls\" \"ls\")\n" msgstr "" "#!/gnu/store/…-guile-2.0.11/bin/guile -ds\n" "!#\n" "(execl \"/gnu/store/…-coreutils-8.22\"/bin/ls\" \"ls\")\n" #. type: deffn #: guix-git/doc/guix.texi:12284 #, no-wrap msgid "{Procedure} program-file name exp [#:guile #f] [#:module-path %load-path]" msgstr "{Prozedur} program-file Name G-Ausdruck [#:guile #f] [#:module-path %load-path]" #. type: deffn #: guix-git/doc/guix.texi:12288 msgid "Return an object representing the executable store item @var{name} that runs @var{gexp}. @var{guile} is the Guile package used to execute that script. Imported modules of @var{gexp} are looked up in @var{module-path}." msgstr "Liefert ein Objekt, das eine ausführbare Store-Datei @var{Name} repräsentiert, die den @var{G-Ausdruck} ausführt. @var{guile} ist das zu verwendende Guile-Paket, mit dem das Skript ausgeführt werden kann. Importierte Module des @var{G-Ausdruck}s werden im Modulpfad @var{module-path} gesucht." #. type: deffn #: guix-git/doc/guix.texi:12290 msgid "This is the declarative counterpart of @code{gexp->script}." msgstr "Dies ist das deklarative Gegenstück zu @code{gexp->script}." #. type: deffn #: guix-git/doc/guix.texi:12292 #, no-wrap msgid "{Monadic Procedure} gexp->file @var{name} @var{exp} @" msgstr "{Monadische Prozedur} gexp->file @var{Name} @var{G-Ausdruck} @" #. type: deffn #: guix-git/doc/guix.texi:12299 msgid "[#:set-load-path? #t] [#:module-path %load-path] @ [#:splice? #f] @ [#:guile (default-guile)] Return a derivation that builds a file @var{name} containing @var{exp}. When @var{splice?} is true, @var{exp} is considered to be a list of expressions that will be spliced in the resulting file." msgstr "[#:set-load-path? #t] [#:module-path %load-path] @ [#:splice? #f] @ [#:guile (default-guile)] Liefert eine Ableitung, die eine Datei @var{Name} erstellen wird, deren Inhalt der @var{G-Ausdruck} ist. Ist @var{splice?} wahr, dann wird @var{G-Ausdruck} stattdessen als eine Liste von mehreren G-Ausdrücken behandelt, die alle in die resultierende Datei gespleißt werden." #. type: deffn #: guix-git/doc/guix.texi:12304 msgid "When @var{set-load-path?} is true, emit code in the resulting file to set @code{%load-path} and @code{%load-compiled-path} to honor @var{exp}'s imported modules. Look up @var{exp}'s modules in @var{module-path}." msgstr "Ist @var{set-load-path?} wahr, wird in die resultierende Datei Code hinzugefügt, der den Ladepfad @code{%load-path} und den Ladepfad für kompilierte Dateien @code{%load-compiled-path} festlegt, die für die importierten Module des @var{G-Ausdruck}s nötig sind. Die Module des @var{G-Ausdruck}s werden im Modulpfad @var{module-path} gesucht." #. type: deffn #: guix-git/doc/guix.texi:12307 msgid "The resulting file holds references to all the dependencies of @var{exp} or a subset thereof." msgstr "Die resultierende Datei referenziert alle Abhängigkeiten des @var{G-Ausdruck}s oder eine Teilmenge davon." #. type: deffn #: guix-git/doc/guix.texi:12309 #, no-wrap msgid "{Procedure} scheme-file name exp [#:splice? #f] @" msgstr "{Prozedur} scheme-file Name G-Ausdruck [#:splice? #f] @" #. type: deffn #: guix-git/doc/guix.texi:12313 msgid "[#:guile #f] [#:set-load-path? #t] Return an object representing the Scheme file @var{name} that contains @var{exp}. @var{guile} is the Guile package used to produce that file." msgstr "[#:guile #f] [#:set-load-path? #t] Liefert ein Objekt, das die Scheme-Datei @var{Name} mit dem @var{G-Ausdruck} als Inhalt repräsentiert. @var{guile} ist das zu verwendende Guile-Paket, mit dem die Datei angelegt wird." #. type: deffn #: guix-git/doc/guix.texi:12315 msgid "This is the declarative counterpart of @code{gexp->file}." msgstr "Dies ist das deklarative Gegenstück zu @code{gexp->file}." #. type: deffn #: guix-git/doc/guix.texi:12317 #, no-wrap msgid "{Monadic Procedure} text-file* @var{name} @var{text} @dots{}" msgstr "{Monadische Prozedur} text-file* @var{Name} @var{Text} …" #. type: deffn #: guix-git/doc/guix.texi:12323 msgid "Return as a monadic value a derivation that builds a text file containing all of @var{text}. @var{text} may list, in addition to strings, objects of any type that can be used in a gexp: packages, derivations, local file objects, etc. The resulting store file holds references to all these." msgstr "Liefert eine Ableitung als monadischen Wert, welche eine Textdatei erstellt, in der der gesamte @var{Text} enthalten ist. @var{Text} kann eine Folge nicht nur von Zeichenketten, sondern auch Objekten beliebigen Typs sein, die in einem G-Ausdruck benutzt werden können, also Paketen, Ableitungen, Objekte lokaler Dateien und so weiter. Die resultierende Store-Datei referenziert alle davon." #. type: deffn #: guix-git/doc/guix.texi:12328 msgid "This variant should be preferred over @code{text-file} anytime the file to create will reference items from the store. This is typically the case when building a configuration file that embeds store file names, like this:" msgstr "Diese Variante sollte gegenüber @code{text-file} bevorzugt verwendet werden, wann immer die zu erstellende Datei Objekte im Store referenzieren wird. Typischerweise ist das der Fall, wenn eine Konfigurationsdatei erstellt wird, die Namen von Store-Dateien enthält, so wie hier:" #. type: lisp #: guix-git/doc/guix.texi:12336 #, no-wrap msgid "" "(define (profile.sh)\n" " ;; Return the name of a shell script in the store that\n" " ;; initializes the 'PATH' environment variable.\n" " (text-file* \"profile.sh\"\n" " \"export PATH=\" coreutils \"/bin:\"\n" " grep \"/bin:\" sed \"/bin\\n\"))\n" msgstr "" "(define (profile.sh)\n" " ;; Liefert den Namen eines Shell-Skripts im Store,\n" " ;; welcher die Umgebungsvariable „PATH“ initialisiert.\n" " (text-file* \"profile.sh\"\n" " \"export PATH=\" coreutils \"/bin:\"\n" " grep \"/bin:\" sed \"/bin\\n\"))\n" #. type: deffn #: guix-git/doc/guix.texi:12341 msgid "In this example, the resulting @file{/gnu/store/@dots{}-profile.sh} file will reference @var{coreutils}, @var{grep}, and @var{sed}, thereby preventing them from being garbage-collected during its lifetime." msgstr "In diesem Beispiel wird die resultierende Datei @file{/gnu/store/…-profile.sh} sowohl @var{coreutils}, @var{grep} als auch @var{sed} referenzieren, so dass der Müllsammler diese nicht löscht, während die resultierende Datei noch lebendig ist." #. type: deffn #: guix-git/doc/guix.texi:12343 #, no-wrap msgid "{Procedure} mixed-text-file name text @dots{}" msgstr "{Prozedur} mixed-text-file Name Text …" #. type: deffn #: guix-git/doc/guix.texi:12347 msgid "Return an object representing store file @var{name} containing @var{text}. @var{text} is a sequence of strings and file-like objects, as in:" msgstr "Liefert ein Objekt, was die Store-Datei @var{Name} repräsentiert, die @var{Text} enthält. @var{Text} ist dabei eine Folge von Zeichenketten und dateiartigen Objekten wie zum Beispiel:" #. type: lisp #: guix-git/doc/guix.texi:12351 #, no-wrap msgid "" "(mixed-text-file \"profile\"\n" " \"export PATH=\" coreutils \"/bin:\" grep \"/bin\")\n" msgstr "" "(mixed-text-file \"profile\"\n" " \"export PATH=\" coreutils \"/bin:\" grep \"/bin\")\n" #. type: deffn #: guix-git/doc/guix.texi:12354 msgid "This is the declarative counterpart of @code{text-file*}." msgstr "Dies ist das deklarative Gegenstück zu @code{text-file*}." #. type: deffn #: guix-git/doc/guix.texi:12356 #, no-wrap msgid "{Procedure} file-union name files" msgstr "{Prozedur} file-union Name Dateien" #. type: deffn #: guix-git/doc/guix.texi:12361 msgid "Return a @code{<computed-file>} that builds a directory containing all of @var{files}. Each item in @var{files} must be a two-element list where the first element is the file name to use in the new directory, and the second element is a gexp denoting the target file. Here's an example:" msgstr "Liefert ein @code{<computed-file>}, das ein Verzeichnis mit allen @var{Dateien} enthält. Jedes Objekt in @var{Dateien} muss eine zweielementige Liste sein, deren erstes Element der im neuen Verzeichnis zu benutzende Dateiname ist und deren zweites Element ein G-Ausdruck ist, der die Zieldatei benennt. Hier ist ein Beispiel:" #. type: lisp #: guix-git/doc/guix.texi:12368 #, no-wrap msgid "" "(file-union \"etc\"\n" " `((\"hosts\" ,(plain-file \"hosts\"\n" " \"127.0.0.1 localhost\"))\n" " (\"bashrc\" ,(plain-file \"bashrc\"\n" " \"alias ls='ls --color=auto'\"))))\n" msgstr "" "(file-union \"etc\"\n" " `((\"hosts\" ,(plain-file \"hosts\"\n" " \"127.0.0.1 localhost\"))\n" " (\"bashrc\" ,(plain-file \"bashrc\"\n" " \"alias ls='ls --color=auto'\"))))\n" #. type: deffn #: guix-git/doc/guix.texi:12371 msgid "This yields an @code{etc} directory containing these two files." msgstr "Dies liefert ein Verzeichnis @code{etc}, das zwei Dateien enthält." #. type: deffn #: guix-git/doc/guix.texi:12373 #, no-wrap msgid "{Procedure} directory-union name things" msgstr "{Prozedur} directory-union Name Dinge" #. type: deffn #: guix-git/doc/guix.texi:12376 msgid "Return a directory that is the union of @var{things}, where @var{things} is a list of file-like objects denoting directories. For example:" msgstr "Liefert ein Verzeichnis, was die Vereinigung der @var{Dinge} darstellt, wobei @var{Dinge} eine Liste dateiartiger Objekte sein muss, die Verzeichnisse bezeichnen. Zum Beispiel:" #. type: lisp #: guix-git/doc/guix.texi:12379 #, no-wrap msgid "(directory-union \"guile+emacs\" (list guile emacs))\n" msgstr "(directory-union \"guile+emacs\" (list guile emacs))\n" #. type: deffn #: guix-git/doc/guix.texi:12382 msgid "yields a directory that is the union of the @code{guile} and @code{emacs} packages." msgstr "Das liefert ein Verzeichnis, welches die Vereinigung der Pakete @code{guile} und @code{emacs} ist." #. type: deffn #: guix-git/doc/guix.texi:12384 #, no-wrap msgid "{Procedure} file-append obj suffix @dots{}" msgstr "{Prozedur} file-append Objekt Suffix …" #. type: deffn #: guix-git/doc/guix.texi:12388 msgid "Return a file-like object that expands to the concatenation of @var{obj} and @var{suffix}, where @var{obj} is a lowerable object and each @var{suffix} is a string." msgstr "Liefert ein dateiartiges Objekt, das zur Aneinanderreihung von @var{Objekt} und @var{Suffix} umgeschrieben wird, wobei das @var{Objekt} ein herunterbrechbares Objekt und jedes @var{Suffix} eine Zeichenkette sein muss." #. type: deffn #: guix-git/doc/guix.texi:12390 msgid "As an example, consider this gexp:" msgstr "Betrachten Sie zum Beispiel diesen G-Ausdruck:" #. type: lisp #: guix-git/doc/guix.texi:12395 #, no-wrap msgid "" "(gexp->script \"run-uname\"\n" " #~(system* #$(file-append coreutils\n" " \"/bin/uname\")))\n" msgstr "" "(gexp->script \"uname-ausfuehren\"\n" " #~(system* #$(file-append coreutils\n" " \"/bin/uname\")))\n" #. type: deffn #: guix-git/doc/guix.texi:12398 msgid "The same effect could be achieved with:" msgstr "Denselben Effekt könnte man erreichen mit:" #. type: lisp #: guix-git/doc/guix.texi:12403 #, no-wrap msgid "" "(gexp->script \"run-uname\"\n" " #~(system* (string-append #$coreutils\n" " \"/bin/uname\")))\n" msgstr "" "(gexp->script \"uname-ausfuehren\"\n" " #~(system* (string-append #$coreutils\n" " \"/bin/uname\")))\n" #. type: deffn #: guix-git/doc/guix.texi:12409 msgid "There is one difference though: in the @code{file-append} case, the resulting script contains the absolute file name as a string, whereas in the second case, the resulting script contains a @code{(string-append @dots{})} expression to construct the file name @emph{at run time}." msgstr "Es gibt jedoch einen Unterschied, nämlich enthält das resultierende Skript bei @code{file-append} tatsächlich den absoluten Dateinamen als Zeichenkette, während im anderen Fall das resultierende Skript einen Ausdruck @code{(string-append …)} enthält, der den Dateinamen erst @emph{zur Laufzeit} zusammensetzt." #. type: defmac #: guix-git/doc/guix.texi:12411 #, no-wrap msgid "let-system system body@dots{}" msgstr "let-system System Rumpf…" #. type: defmacx #: guix-git/doc/guix.texi:12412 #, no-wrap msgid "let-system (system target) body@dots{}" msgstr "let-system (System Zielsystem) Rumpf…" #. type: defmac #: guix-git/doc/guix.texi:12415 msgid "Bind @var{system} to the currently targeted system---e.g., @code{\"x86_64-linux\"}---within @var{body}." msgstr "@var{System} an das System binden, für das momentan erstellt wird@tie{}– z.B.@: @code{\"x86_64-linux\"}@tie{}–, während der @var{Rumpf} ausgeführt wird." #. type: defmac #: guix-git/doc/guix.texi:12420 msgid "In the second case, additionally bind @var{target} to the current cross-compilation target---a GNU triplet such as @code{\"arm-linux-gnueabihf\"}---or @code{#f} if we are not cross-compiling." msgstr "In der zweiten Form wird zusätzlich das @var{Ziel} an das aktuelle Ziel („Target“) bei der Cross-Kompilierung gebunden. Dabei handelt es sich um ein GNU-Tripel wie z.B.@: @code{\"arm-linux-gnueabihf\"}@tie{}– oder um @code{#f}, wenn nicht cross-kompiliert wird." #. type: defmac #: guix-git/doc/guix.texi:12423 msgid "@code{let-system} is useful in the occasional case where the object spliced into the gexp depends on the target system, as in this example:" msgstr "@code{let-system} zu benutzen, bietet sich dann an, wenn einmal das in den G-Ausdruck gespleißte Objekt vom Zielsystem abhängen sollte, wie in diesem Beispiel:" #. type: lisp #: guix-git/doc/guix.texi:12434 #, no-wrap msgid "" "#~(system*\n" " #+(let-system system\n" " (cond ((string-prefix? \"armhf-\" system)\n" " (file-append qemu \"/bin/qemu-system-arm\"))\n" " ((string-prefix? \"x86_64-\" system)\n" " (file-append qemu \"/bin/qemu-system-x86_64\"))\n" " (else\n" " (error \"dunno!\"))))\n" " \"-net\" \"user\" #$image)\n" msgstr "" "#~(system*\n" " #+(let-system system\n" " (cond ((string-prefix? \"armhf-\" system)\n" " (file-append qemu \"/bin/qemu-system-arm\"))\n" " ((string-prefix? \"x86_64-\" system)\n" " (file-append qemu \"/bin/qemu-system-x86_64\"))\n" " (else\n" " (error \"weiß nicht!\"))))\n" " \"-net\" \"user\" #$image)\n" #. type: defmac #: guix-git/doc/guix.texi:12437 #, no-wrap msgid "with-parameters ((parameter value) @dots{}) exp" msgstr "with-parameters ((Parameter Wert) …) Ausdruck" #. type: defmac #: guix-git/doc/guix.texi:12443 msgid "This macro is similar to the @code{parameterize} form for dynamically-bound @dfn{parameters} (@pxref{Parameters,,, guile, GNU Guile Reference Manual}). The key difference is that it takes effect when the file-like object returned by @var{exp} is lowered to a derivation or store item." msgstr "Mit diesem Makro verhält es sich ähnlich wie mit der @code{parameterize}-Form für dynamisch gebundene @dfn{Parameter} (siehe @ref{Parameters,,, guile, Referenzhandbuch zu GNU Guile}). Der Hauptunterschied ist, dass es sich erst auswirkt, wenn das vom @var{Ausdruck} zurückgelieferte dateiartige Objekt auf eine Ableitung oder ein Store-Objekt heruntergebrochen wird." #. type: defmac #: guix-git/doc/guix.texi:12446 msgid "A typical use of @code{with-parameters} is to force the system in effect for a given object:" msgstr "Eine typische Anwendung von @code{with-parameters} ist, den für ein bestimmtes Objekt geltenden Systemtyp zwingend festzulegen:" #. type: lisp #: guix-git/doc/guix.texi:12450 #, no-wrap msgid "" "(with-parameters ((%current-system \"i686-linux\"))\n" " coreutils)\n" msgstr "" "(with-parameters ((%current-system \"i686-linux\"))\n" " coreutils)\n" #. type: defmac #: guix-git/doc/guix.texi:12454 msgid "The example above returns an object that corresponds to the i686 build of Coreutils, regardless of the current value of @code{%current-system}." msgstr "Obiges Beispiel liefert ein Objekt, das der Erstellung von Coreutils für die i686-Architektur entspricht, egal was der aktuelle Wert von @code{%current-system} ist." #. type: anchor{#1} #: guix-git/doc/guix.texi:12457 msgid "gexp-input" msgstr "gexp-input" #. type: deffn #: guix-git/doc/guix.texi:12457 #, no-wrap msgid "{Procedure} gexp-input @var{obj} [@var{output}] [#:native? #f]" msgstr "{Prozedur} gexp-input @var{Objekt} [@var{Ausgabe}] [#:native? #f]" #. type: deffn #: guix-git/doc/guix.texi:12461 msgid "Return a @dfn{gexp input} record for the given @var{output} of file-like object @var{obj}, with @code{#:native?} determining whether this is a native reference (as with @code{ungexp-native}) or not." msgstr "Liefert ein @dfn{gexp-input}-Verbundsobjekt, das für die @var{Ausgabe} des dateiartigen Objekts @var{Objekt} steht. Dabei legt man mit @code{#:native?} fest, ob eine native Erstellung referenziert wird (wie bei @code{ungexp-native}) oder nicht." #. type: deffn #: guix-git/doc/guix.texi:12466 msgid "This procedure is helpful when you want to pass a reference to a specific output of an object to some procedure that may not know about that output. For example, assume you have this procedure, which takes one file-like object:" msgstr "Diese Prozedur verwendet man, um eine Referenz auf eine bestimmte Ausgabe eines Objekts an eine Prozedur zu übergeben, in der keine Ausgabe ausgewählt wird. Zum Beispiel, wenn Sie diese Prozedur vorliegen haben, die ein dateiartiges Objekt entgegennimmt:" #. type: lisp #: guix-git/doc/guix.texi:12471 #, no-wrap msgid "" "(define (make-symlink target)\n" " (computed-file \"the-symlink\"\n" " #~(symlink #$target #$output)))\n" msgstr "" "(define (make-symlink Ziel)\n" " (computed-file \"eine-symbolische-verknüpfung\"\n" " #~(symlink #$Ziel #$output)))\n" #. type: deffn #: guix-git/doc/guix.texi:12477 msgid "Here @code{make-symlink} can only ever refer to the default output of @var{target}---the @code{\"out\"} output (@pxref{Packages with Multiple Outputs}). To have it refer to, say, the @code{\"lib\"} output of the @code{hwloc} package, you can call it like so:" msgstr "Mit @code{make-symlink} wird hier für sich alleine immer auf die Standardausgabe von @var{Ziel} verwiesen@tie{}– also auf die Ausgabe @code{\"out\"} (siehe @ref{Packages with Multiple Outputs}). Um die Prozedur auf z.B.@: die Ausgabe @code{\"lib\"} des Pakets @code{hwloc} verweisen zu lassen, ruft man sie so auf:" #. type: lisp #: guix-git/doc/guix.texi:12480 #, no-wrap msgid "(make-symlink (gexp-input hwloc \"lib\"))\n" msgstr "(make-symlink (gexp-input hwloc \"lib\"))\n" #. type: deffn #: guix-git/doc/guix.texi:12483 msgid "You can also compose it like any other file-like object:" msgstr "Auch eine Komposition mit Funktionen für dateiartige Objekte ist möglich:" #. type: lisp #: guix-git/doc/guix.texi:12487 #, no-wrap msgid "" "(make-symlink\n" " (file-append (gexp-input hwloc \"lib\") \"/lib/libhwloc.so\"))\n" msgstr "" "(make-symlink\n" " (file-append (gexp-input hwloc \"lib\") \"/lib/libhwloc.so\"))\n" #. type: Plain text #: guix-git/doc/guix.texi:12494 msgid "Of course, in addition to gexps embedded in ``host'' code, there are also modules containing build tools. To make it clear that they are meant to be used in the build stratum, these modules are kept in the @code{(guix build @dots{})} name space." msgstr "Natürlich gibt es zusätzlich zu in „wirtsseitigem“ Code eingebetteten G-Ausdrücken auch Module mit „erstellungsseitig“ nutzbaren Werkzeugen. Um klarzustellen, dass sie dafür gedacht sind, in der Erstellungsschicht benutzt zu werden, bleiben diese Module im Namensraum @code{(guix build …)}." #. type: Plain text #: guix-git/doc/guix.texi:12500 msgid "Internally, high-level objects are @dfn{lowered}, using their compiler, to either derivations or store items. For instance, lowering a package yields a derivation, and lowering a @code{plain-file} yields a store item. This is achieved using the @code{lower-object} monadic procedure." msgstr "Intern werden hochsprachliche, abstrakte Objekte mit ihrem Compiler entweder zu Ableitungen oder zu Store-Objekten @dfn{heruntergebrochen}. Wird zum Beispiel ein Paket heruntergebrochen, bekommt man eine Ableitung, während ein @code{plain-file} zu einem Store-Objekt heruntergebrochen wird. Das wird mit der monadischen Prozedur @code{lower-object} bewerkstelligt." #. type: deffn #: guix-git/doc/guix.texi:12501 #, no-wrap msgid "{Monadic Procedure} lower-object @var{obj} [@var{system}] @" msgstr "{Monadische Prozedur} lower-object @var{Objekt} [@var{System}] @" #. type: deffn #: guix-git/doc/guix.texi:12507 msgid "[#:target #f] Return as a value in @code{%store-monad} the derivation or store item corresponding to @var{obj} for @var{system}, cross-compiling for @var{target} if @var{target} is true. @var{obj} must be an object that has an associated gexp compiler, such as a @code{<package>}." msgstr "[#:target #f] Liefert die Ableitung oder das Store-Objekt, das dem @var{Objekt} für @var{System} als Wert in der Store-Monade @code{%store-monad} entspricht, cross-kompiliert für das Zieltripel @var{target}, wenn @var{target} wahr ist. Das @var{Objekt} muss ein Objekt sein, für das es einen mit ihm assoziierten G-Ausdruck-Compiler gibt, wie zum Beispiel ein @code{<package>}." #. type: deffn #: guix-git/doc/guix.texi:12509 #, no-wrap msgid "{Procedure} gexp->approximate-sexp gexp" msgstr "{Prozedur} gexp->approximate-sexp G-Ausdruck" #. type: deffn #: guix-git/doc/guix.texi:12517 msgid "Sometimes, it may be useful to convert a G-exp into a S-exp. For example, some linters (@pxref{Invoking guix lint}) peek into the build phases of a package to detect potential problems. This conversion can be achieved with this procedure. However, some information can be lost in the process. More specifically, lowerable objects will be silently replaced with some arbitrary object -- currently the list @code{(*approximate*)}, but this may change." msgstr "Es kann gelegentlich nützlich sein, einen G-Ausdruck in einen S-Ausdruck umzuwandeln, weil zum Beispiel manche Prüfer (siehe @ref{Invoking guix lint}) einen Blick auf die Erstellungsphasen eines Pakets werfen, um mögliche Fehler zu finden. Diese Umwandlung können Sie mit dieser Prozedur bewerkstelligen. Allerdings kann dabei manche Information verloren gehen. Genauer gesagt werden herunterbrechbare Objekte stillschweigend durch ein beliebiges Objekt ersetzt. Zurzeit ist dieses beliebige Objekt die Liste @code{(*approximate*)}, aber verlassen Sie sich nicht darauf, dass es so bleibt." #. type: section #: guix-git/doc/guix.texi:12520 #, no-wrap msgid "Invoking @command{guix repl}" msgstr "@command{guix repl} aufrufen" #. type: command{#1} #: guix-git/doc/guix.texi:12522 #, no-wrap msgid "guix repl" msgstr "guix repl" #. type: cindex #: guix-git/doc/guix.texi:12523 #, no-wrap msgid "REPL, read-eval-print loop, script" msgstr "REPL (Lese-Auswerten-Schreiben-Schleife) und Skripts" #. type: Plain text #: guix-git/doc/guix.texi:12533 msgid "The @command{guix repl} command makes it easier to program Guix in Guile by launching a Guile @dfn{read-eval-print loop} (REPL) for interactive programming (@pxref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}), or by running Guile scripts (@pxref{Running Guile Scripts,,, guile, GNU Guile Reference Manual}). Compared to just launching the @command{guile} command, @command{guix repl} guarantees that all the Guix modules and all its dependencies are available in the search path." msgstr "Der Befehl @command{guix repl} erleichtert es, Guix von Guile aus zu programmieren. Dazu startet er eine Guile-REPL (@dfn{Read-Eval-Print Loop}, kurz REPL, deutsch Lese-Auswerten-Schreiben-Schleife) zur interaktiven Programmierung (siehe @ref{Using Guile Interactively,,, guile, Referenzhandbuch zu GNU Guile}) oder er führt Guile-Skripts aus (siehe @ref{Running Guile Scripts,,, guile, Referenzhandbuch zu GNU Guile}). Im Vergleich dazu, einfach den Befehl @command{guile} aufzurufen, garantiert @command{guix repl}, dass alle Guix-Module und deren Abhängigkeiten im Suchpfad verfügbar sind." #. type: example #: guix-git/doc/guix.texi:12538 #, no-wrap msgid "guix repl @var{options} [@var{file} @var{args}]\n" msgstr "guix repl @var{Optionen} [@var{Datei} @var{Argumente}]\n" #. type: Plain text #: guix-git/doc/guix.texi:12542 msgid "When a @var{file} argument is provided, @var{file} is executed as a Guile scripts:" msgstr "Wird ein @var{Datei}-Argument angegeben, wird die angegebene @var{Datei} als Guile-Skript ausgeführt." #. type: example #: guix-git/doc/guix.texi:12545 #, no-wrap msgid "guix repl my-script.scm\n" msgstr "guix repl my-script.scm\n" #. type: Plain text #: guix-git/doc/guix.texi:12549 msgid "To pass arguments to the script, use @code{--} to prevent them from being interpreted as arguments to @command{guix repl} itself:" msgstr "Um Argumente an das Skript zu übergeben, geben Sie davor @code{--} an, damit Sie nicht als Argumente an @command{guix repl} verstanden werden:" #. type: example #: guix-git/doc/guix.texi:12552 #, no-wrap msgid "guix repl -- my-script.scm --input=foo.txt\n" msgstr "guix repl -- my-script.scm --input=foo.txt\n" #. type: Plain text #: guix-git/doc/guix.texi:12557 msgid "To make a script executable directly from the shell, using the guix executable that is on the user's search path, add the following two lines at the top of the script:" msgstr "Wenn Sie möchten, dass ein Skript direkt aus der Shell heraus ausgeführt werden kann und diejenige ausführbare Datei von Guix benutzt wird, die sich im Suchpfad des Benutzers befindet, dann fügen Sie die folgenden zwei Zeilen ganz oben ins Skript ein." #. type: example #: guix-git/doc/guix.texi:12561 #, no-wrap msgid "" "@code{#!/usr/bin/env -S guix repl --}\n" "@code{!#}\n" msgstr "" "@code{#!/usr/bin/env -S guix repl --}\n" "@code{!#}\n" #. type: Plain text #: guix-git/doc/guix.texi:12565 msgid "To make a script that launches an interactive REPL directly from the shell, use the @code{--interactive} flag:" msgstr "Wenn ein Skript in einer interaktiven REPL direkt aus der Shell heraus ausgeführt werden soll, verwenden Sie die Befehlszeilenoption @code{--interactive}:" #. type: example #: guix-git/doc/guix.texi:12569 #, no-wrap msgid "" "@code{#!/usr/bin/env -S guix repl --interactive}\n" "@code{!#}\n" msgstr "" "@code{#!/usr/bin/env -S guix repl --interactive}\n" "@code{!#}\n" #. type: Plain text #: guix-git/doc/guix.texi:12573 msgid "Without a file name argument, a Guile REPL is started, allowing for interactive use (@pxref{Using Guix Interactively}):" msgstr "Ohne einen Dateinamen als Argument wird eine Guile-REPL gestartet, so dass man Guix interaktiv benutzen kann (siehe @ref{Using Guix Interactively}):" #. type: example #: guix-git/doc/guix.texi:12579 #, no-wrap msgid "" "$ guix repl\n" "scheme@@(guile-user)> ,use (gnu packages base)\n" "scheme@@(guile-user)> coreutils\n" "$1 = #<package coreutils@@8.29 gnu/packages/base.scm:327 3e28300>\n" msgstr "" "$ guix repl\n" "scheme@@(guile-user)> ,use (gnu packages base)\n" "scheme@@(guile-user)> coreutils\n" "$1 = #<package coreutils@@8.29 gnu/packages/base.scm:327 3e28300>\n" #. type: Plain text #: guix-git/doc/guix.texi:12586 msgid "In addition, @command{guix repl} implements a simple machine-readable REPL protocol for use by @code{(guix inferior)}, a facility to interact with @dfn{inferiors}, separate processes running a potentially different revision of Guix." msgstr "@command{guix repl} implementiert zusätzlich ein einfaches maschinenlesbares Protokoll für die REPL, das von @code{(guix inferior)} benutzt wird, um mit @dfn{Untergeordneten} zu interagieren, also mit getrennten Prozessen einer womöglich anderen Version von Guix." #. type: item #: guix-git/doc/guix.texi:12590 guix-git/doc/guix.texi:15865 #, no-wrap msgid "--list-types" msgstr "--list-types" #. type: table #: guix-git/doc/guix.texi:12593 msgid "Display the @var{TYPE} options for @command{guix repl --type=TYPE} and exit." msgstr "Zeigt an, welche Möglichkeiten Sie für @var{Typ} angeben können, wenn Sie @command{guix repl --type=TYP} benutzen, und terminiert." #. type: item #: guix-git/doc/guix.texi:12594 guix-git/doc/guix.texi:15860 #, no-wrap msgid "--type=@var{type}" msgstr "--type=@var{Typ}" #. type: itemx #: guix-git/doc/guix.texi:12595 guix-git/doc/guix.texi:15861 #: guix-git/doc/guix.texi:43068 #, no-wrap msgid "-t @var{type}" msgstr "-t @var{Typ}" #. type: table #: guix-git/doc/guix.texi:12597 msgid "Start a REPL of the given @var{TYPE}, which can be one of the following:" msgstr "Startet eine REPL des angegebenen @var{Typ}s, der einer der Folgenden sein darf:" #. type: item #: guix-git/doc/guix.texi:12599 #, no-wrap msgid "guile" msgstr "guile" #. type: table #: guix-git/doc/guix.texi:12601 msgid "This is default, and it spawns a standard full-featured Guile REPL." msgstr "Die Voreinstellung, mit der eine normale, voll funktionsfähige Guile-REPL gestartet wird." #. type: item #: guix-git/doc/guix.texi:12601 #, no-wrap msgid "machine" msgstr "machine" #. type: table #: guix-git/doc/guix.texi:12604 msgid "Spawn a REPL that uses the machine-readable protocol. This is the protocol that the @code{(guix inferior)} module speaks." msgstr "Startet eine REPL, die ein maschinenlesbares Protokoll benutzt. Dieses Protokoll wird vom Modul @code{(guix inferior)} gesprochen." #. type: table #: guix-git/doc/guix.texi:12610 msgid "By default, @command{guix repl} reads from standard input and writes to standard output. When this option is passed, it will instead listen for connections on @var{endpoint}. Here are examples of valid options:" msgstr "Der Vorgabe nach würde @command{guix repl} von der Standardeingabe lesen und auf die Standardausgabe schreiben. Wird diese Befehlszeilenoption angegeben, lauscht die REPL stattdessen auf dem @var{Endpunkt} auf Verbindungen. Hier sind Beispiele gültiger Befehlszeilenoptionen:" #. type: item #: guix-git/doc/guix.texi:12612 #, no-wrap msgid "--listen=tcp:37146" msgstr "--listen=tcp:37146" #. type: table #: guix-git/doc/guix.texi:12614 msgid "Accept connections on localhost on port 37146." msgstr "Verbindungen mit dem „localhost“ auf Port 37146 akzeptieren." #. type: item #: guix-git/doc/guix.texi:12615 #, no-wrap msgid "--listen=unix:/tmp/socket" msgstr "--listen=unix:/tmp/socket" #. type: table #: guix-git/doc/guix.texi:12617 msgid "Accept connections on the Unix-domain socket @file{/tmp/socket}." msgstr "Verbindungen zum Unix-Socket @file{/tmp/socket} akzeptieren." #. type: item #: guix-git/doc/guix.texi:12619 #, no-wrap msgid "--interactive" msgstr "--interactive" #. type: itemx #: guix-git/doc/guix.texi:12620 #, no-wrap msgid "-i" msgstr "-i" #. type: table #: guix-git/doc/guix.texi:12622 msgid "Launch the interactive REPL after @var{file} is executed." msgstr "Im Anschluss, nachdem @var{Datei} ausgeführt wurde, die interaktive REPL starten." #. type: item #: guix-git/doc/guix.texi:12623 guix-git/doc/guix.texi:12889 #: guix-git/doc/guix.texi:15095 guix-git/doc/guix.texi:15278 #: guix-git/doc/guix.texi:15495 guix-git/doc/guix.texi:15640 #: guix-git/doc/guix.texi:15908 #, no-wrap msgid "--load-path=@var{directory}" msgstr "--load-path=@var{Verzeichnis}" #. type: itemx #: guix-git/doc/guix.texi:12624 guix-git/doc/guix.texi:12890 #: guix-git/doc/guix.texi:15096 guix-git/doc/guix.texi:15279 #: guix-git/doc/guix.texi:15496 guix-git/doc/guix.texi:15641 #: guix-git/doc/guix.texi:15909 #, no-wrap msgid "-L @var{directory}" msgstr "-L @var{Verzeichnis}" #. type: table #: guix-git/doc/guix.texi:12627 guix-git/doc/guix.texi:12893 #: guix-git/doc/guix.texi:15099 guix-git/doc/guix.texi:15282 #: guix-git/doc/guix.texi:15499 guix-git/doc/guix.texi:15644 #: guix-git/doc/guix.texi:15912 msgid "Add @var{directory} to the front of the package module search path (@pxref{Package Modules})." msgstr "Das @var{Verzeichnis} vorne an den Suchpfad für Paketmodule anfügen (siehe @ref{Package Modules})." #. type: table #: guix-git/doc/guix.texi:12630 msgid "This allows users to define their own packages and make them visible to the script or REPL." msgstr "Damit können Nutzer dafür sorgen, dass ihre eigenen selbstdefinierten Pakete für Skript oder REPL sichtbar sind." #. type: table #: guix-git/doc/guix.texi:12634 msgid "Inhibit loading of the @file{~/.guile} file. By default, that configuration file is loaded when spawning a @code{guile} REPL." msgstr "Das Laden der @file{~/.guile}-Datei unterdrücken. Nach Voreinstellung würde diese Konfigurationsdatei beim Erzeugen einer REPL für @code{guile} geladen." #. type: cindex #: guix-git/doc/guix.texi:12639 #, no-wrap msgid "interactive use" msgstr "interaktiv benutzen" #. type: cindex #: guix-git/doc/guix.texi:12640 #, no-wrap msgid "REPL, read-eval-print loop" msgstr "REPL (Lese-Auswerten-Schreiben-Schleife)" #. type: Plain text #: guix-git/doc/guix.texi:12646 msgid "The @command{guix repl} command gives you access to a warm and friendly @dfn{read-eval-print loop} (REPL) (@pxref{Invoking guix repl}). If you're getting into Guix programming---defining your own packages, writing manifests, defining services for Guix System or Guix Home, etc.---you will surely find it convenient to toy with ideas at the REPL." msgstr "Mit dem Befehl @command{guix repl} finden Sie sich in einer netten und freundlichen REPL wieder (das steht für Read-Eval-Print Loop, deutsch Lese-Auswerten-Schreiben-Schleife) (siehe @ref{Invoking guix repl}). Wenn Sie mit Guix programmieren möchten@tie{}– also eigene Pakete definieren, Manifeste schreiben, Dienste für Guix System oder Guix Home definieren und so@tie{}–, dann wird Ihnen sicher gefallen, dass Sie Ihre Ideen auf der REPL ausprobieren können." #. type: Plain text #: guix-git/doc/guix.texi:12652 msgid "If you use Emacs, the most convenient way to do that is with Geiser (@pxref{The Perfect Setup}), but you do not have to use Emacs to enjoy the REPL@. When using @command{guix repl} or @command{guile} in the terminal, we recommend using Readline for completion and Colorized to get colorful output. To do that, you can run:" msgstr "Wenn Sie Emacs benutzen, eignet sich dafür Geiser am meisten (siehe @ref{The Perfect Setup}), aber Emacs zu benutzen ist nicht unbedingt erforderlich, um Spaß an der REPL zu haben. Beim Verwenden von @command{guix repl} oder @command{guile} auf dem Terminal raten wir dazu, dass Sie Readline aktivieren, um Autovervollständigung zu genießen, und Colorized aktivieren für farbige Ausgaben. Führen Sie dazu dies aus:" #. type: example #: guix-git/doc/guix.texi:12655 #, no-wrap msgid "guix install guile guile-readline guile-colorized\n" msgstr "guix install guile guile-readline guile-colorized\n" #. type: Plain text #: guix-git/doc/guix.texi:12660 msgid "... and then create a @file{.guile} file in your home directory containing this:" msgstr "… und legen Sie dann eine Datei @file{.guile} in Ihrem Persönlichen Verzeichnis („Home“-Verzeichnis) an mit diesem Inhalt:" #. type: lisp #: guix-git/doc/guix.texi:12663 #, no-wrap msgid "" "(use-modules (ice-9 readline) (ice-9 colorized))\n" "\n" msgstr "" "(use-modules (ice-9 readline) (ice-9 colorized))\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:12666 #, no-wrap msgid "" "(activate-readline)\n" "(activate-colorized)\n" msgstr "" "(activate-readline)\n" "(activate-colorized)\n" #. type: Plain text #: guix-git/doc/guix.texi:12670 msgid "The REPL lets you evaluate Scheme code; you type a Scheme expression at the prompt, and the REPL prints what it evaluates to:" msgstr "Auf der REPL können Sie Scheme-Code auswerten lassen. Sie tippen also einen Scheme-Ausdruck nach der Eingabeaufforderung und schon zeigt die REPL, zu was er ausgewertet wird:" #. type: example #: guix-git/doc/guix.texi:12677 #, no-wrap msgid "" "$ guix repl\n" "scheme@@(guix-user)> (+ 2 3)\n" "$1 = 5\n" "scheme@@(guix-user)> (string-append \"a\" \"b\")\n" "$2 = \"ab\"\n" msgstr "" "$ guix repl\n" "scheme@@(guix-user)> (+ 2 3)\n" "$1 = 5\n" "scheme@@(guix-user)> (string-append \"a\" \"b\")\n" "$2 = \"ab\"\n" #. type: Plain text #: guix-git/doc/guix.texi:12688 msgid "It becomes interesting when you start fiddling with Guix at the REPL. The first thing you'll want to do is to ``import'' the @code{(guix)} module, which gives access to the main part of the programming interface, and perhaps a bunch of useful Guix modules. You could type @code{(use-modules (guix))}, which is valid Scheme code to import a module (@pxref{Using Guile Modules,,, guile, GNU Guile Reference Manual}), but the REPL provides the @code{use} @dfn{command} as a shorthand notation (@pxref{REPL Commands,,, guile, GNU Guile Reference Manual}):" msgstr "Interessant wird es, wenn Sie auf der REPL anfangen, mit Guix herumzubasteln. Dazu „importieren“ Sie zunächst das Modul @code{(guix)}, damit Sie Zugriff auf den Hauptteil der Programmierschnittstelle haben, und vielleicht wollen Sie auch noch andere nützliche Guix-Module importieren. Sie könnten @code{(use-modules (guix))} eintippen, denn es ist gültiger Scheme-Code zum Importieren eines Moduls (siehe @ref{Using Guile Modules,,, guile, Referenzhandbuch zu GNU Guile}), aber auf der REPL können Sie den @dfn{Befehl} @code{use} als Kurzschreibweise einsetzen (siehe @ref{REPL Commands,,, guile, Referenzhandbuch zu GNU Guile}):" #. type: example #: guix-git/doc/guix.texi:12692 #, no-wrap msgid "" "scheme@@(guix-user)> ,use (guix)\n" "scheme@@(guix-user)> ,use (gnu packages base)\n" msgstr "" "scheme@@(guix-user)> ,use (guix)\n" "scheme@@(guix-user)> ,use (gnu packages base)\n" #. type: Plain text #: guix-git/doc/guix.texi:12697 msgid "Notice that REPL commands are introduced by a leading comma. A REPL command like @code{use} is not valid Scheme code; it's interpreted specially by the REPL." msgstr "Beachten Sie, dass am Anfang jedes REPL-Befehls ein führendes Komma stehen muss. Der Grund ist, dass ein REPL-Befehl wie @code{use} eben @emph{kein} gültiger Scheme-Code ist; er wird von der REPL gesondert interpretiert." #. type: Plain text #: guix-git/doc/guix.texi:12706 msgid "Guix extends the Guile REPL with additional commands for convenience. Among those, the @code{build} command comes in handy: it ensures that the given file-like object is built, building it if needed, and returns its output file name(s). In the example below, we build the @code{coreutils} and @code{grep} packages, as well as a ``computed file'' (@pxref{G-Expressions, @code{computed-file}}), and we use the @code{scandir} procedure to list the files in Grep's @code{/bin} directory:" msgstr "Durch Guix wird die Guile-REPL um zusätzliche Befehle erweitert, die dort praktisch sind. Einer davon, der Befehl @code{build}, ist hier nützlich: Mit ihm wird sichergestellt, dass das angegebene dateiartige Objekt erstellt wurde; wenn nicht, wird es erstellt. In jedem Fall wird der Dateiname jeder Ausgabe der Erstellung zurückgeliefert. Im folgenden Beispiel erstellen wir die Pakete @code{coreutils} und @code{grep} sowie eine als @code{computed-file} angegebene Datei (siehe @ref{G-Expressions, @code{computed-file}}), um sogleich mit der Prozedur @code{scandir} aufzulisten, was für Dateien in Grep im Verzeichnis @code{/bin} enthalten sind:" #. type: example #: guix-git/doc/guix.texi:12719 #, no-wrap msgid "" "scheme@@(guix-user)> ,build coreutils\n" "$1 = \"/gnu/store/@dots{}-coreutils-8.32-debug\"\n" "$2 = \"/gnu/store/@dots{}-coreutils-8.32\"\n" "scheme@@(guix-user)> ,build grep\n" "$3 = \"/gnu/store/@dots{}-grep-3.6\"\n" "scheme@@(guix-user)> ,build (computed-file \"x\" #~(mkdir #$output))\n" "building /gnu/store/@dots{}-x.drv...\n" "$4 = \"/gnu/store/@dots{}-x\"\n" "scheme@@(guix-user)> ,use(ice-9 ftw)\n" "scheme@@(guix-user)> (scandir (string-append $3 \"/bin\"))\n" "$5 = (\".\" \"..\" \"egrep\" \"fgrep\" \"grep\")\n" msgstr "" "scheme@@(guix-user)> ,build coreutils\n" "$1 = \"/gnu/store/…-coreutils-8.32-debug\"\n" "$2 = \"/gnu/store/…-coreutils-8.32\"\n" "scheme@@(guix-user)> ,build grep\n" "$3 = \"/gnu/store/…-grep-3.6\"\n" "scheme@@(guix-user)> ,build (computed-file \"x\" #~(mkdir #$output))\n" "/gnu/store/…-x.drv wird erstellt …\n" "$4 = \"/gnu/store/…-x\"\n" "scheme@@(guix-user)> ,use(ice-9 ftw)\n" "scheme@@(guix-user)> (scandir (string-append $3 \"/bin\"))\n" "$5 = (\".\" \"..\" \"egrep\" \"fgrep\" \"grep\")\n" #. type: Plain text #: guix-git/doc/guix.texi:12727 msgid "As a packager, you may be willing to inspect the build phases or flags of a given package; this is particularly useful when relying a lot on inheritance to define package variants (@pxref{Defining Package Variants}) or when package arguments are a result of some computation, both of which can make it harder to foresee what ends up in the package arguments. Additional commands let you inspect those package arguments:" msgstr "Paketautoren kann es gefallen, die Erstellungsphasen oder -optionen für ein bestimmtes Paket zu untersuchen. Dessen bedarf es vor allem, wenn Sie viel mit Vererbung von Paketen (@code{inherit}) arbeiten, um Paketvarianten zu definieren (siehe @ref{Defining Package Variants}) oder wenn Paketargumente im @code{arguments}-Feld das Ergebnis einer Berechnung sind. In beiden Fällen kommt man leicht durcheinander, was am Ende die Paketargumente sind. Mit diesen Befehlen können Sie diese Paketargumente inspizieren:" #. type: example #: guix-git/doc/guix.texi:12743 #, no-wrap msgid "" "scheme@@(guix-user)> ,phases grep\n" "$1 = (modify-phases %standard-phases\n" " (add-after 'install 'fix-egrep-and-fgrep\n" " (lambda* (#:key outputs #:allow-other-keys)\n" " (let* ((out (assoc-ref outputs \"out\"))\n" " (bin (string-append out \"/bin\")))\n" " (substitute* (list (string-append bin \"/egrep\")\n" " (string-append bin \"/fgrep\"))\n" " ((\"^exec grep\")\n" " (string-append \"exec \" bin \"/grep\")))))))\n" "scheme@@(guix-user)> ,configure-flags findutils\n" "$2 = (list \"--localstatedir=/var\")\n" "scheme@@(guix-user)> ,make-flags binutils\n" "$3 = '(\"MAKEINFO=true\")\n" msgstr "" "scheme@@(guix-user)> ,phases grep\n" "$1 = (modify-phases %standard-phases\n" " (add-after 'install 'fix-egrep-and-fgrep\n" " (lambda* (#:key outputs #:allow-other-keys)\n" " (let* ((out (assoc-ref outputs \"out\"))\n" " (bin (string-append out \"/bin\")))\n" " (substitute* (list (string-append bin \"/egrep\")\n" " (string-append bin \"/fgrep\"))\n" " ((\"^exec grep\")\n" " (string-append \"exec \" bin \"/grep\")))))))\n" "scheme@@(guix-user)> ,configure-flags findutils\n" "$2 = (list \"--localstatedir=/var\")\n" "scheme@@(guix-user)> ,make-flags binutils\n" "$3 = '(\"MAKEINFO=true\")\n" #. type: Plain text #: guix-git/doc/guix.texi:12748 msgid "At a lower-level, a useful command is @code{lower}: it takes a file-like object and ``lowers'' it into a derivation (@pxref{Derivations}) or a store file:" msgstr "Will man die einzelnen Schritte von Guix nachvollziehen, eignet sich der Befehl @code{lower}: Er nimmt ein dateiartiges Objekt, um es zu einer Ableitung oder einem Store-Objekt „herunterzubrechen“ (siehe @ref{Derivations}):" #. type: example #: guix-git/doc/guix.texi:12754 #, no-wrap msgid "" "scheme@@(guix-user)> ,lower grep\n" "$6 = #<derivation /gnu/store/@dots{}-grep-3.6.drv => /gnu/store/@dots{}-grep-3.6 7f0e639115f0>\n" "scheme@@(guix-user)> ,lower (plain-file \"x\" \"Hello!\")\n" "$7 = \"/gnu/store/@dots{}-x\"\n" msgstr "" "scheme@@(guix-user)> ,lower grep\n" "$6 = #<derivation /gnu/store/…-grep-3.6.drv => /gnu/store/…-grep-3.6 7f0e639115f0>\n" "scheme@@(guix-user)> ,lower (plain-file \"x\" \"Hallo!\")\n" "$7 = \"/gnu/store/…-x\"\n" #. type: Plain text #: guix-git/doc/guix.texi:12758 msgid "The full list of REPL commands can be seen by typing @code{,help guix} and is given below for reference." msgstr "Die vollständige Liste der REPL-Befehle bekommen Sie zu sehen, wenn Sie @code{,help guix} eingeben. Hier eine Referenz:" #. type: deffn #: guix-git/doc/guix.texi:12759 #, no-wrap msgid "{REPL command} build @var{object}" msgstr "{REPL-Befehl} build @var{Objekt}" #. type: deffn #: guix-git/doc/guix.texi:12762 msgid "Lower @var{object} and build it if it's not already built, returning its output file name(s)." msgstr "Das @var{Objekt} herunterbrechen und erstellen, wenn es noch nicht erstellt ist. Als Ergebnis zurückgeliefert wird der Dateiname jeder Ausgabe." #. type: deffn #: guix-git/doc/guix.texi:12764 #, no-wrap msgid "{REPL command} lower @var{object}" msgstr "{REPL-Befehl} lower @var{Objekt}" #. type: deffn #: guix-git/doc/guix.texi:12766 msgid "Lower @var{object} into a derivation or store file name and return it." msgstr "Das @var{Objekt} zu einer Ausgabe oder einem Dateinamen im Store herunterbrechen und diesen zurückliefern." #. type: deffn #: guix-git/doc/guix.texi:12768 #, no-wrap msgid "{REPL command} verbosity @var{level}" msgstr "{REPL-Befehl} verbosity @var{Stufe}" #. type: deffn #: guix-git/doc/guix.texi:12770 msgid "Change build verbosity to @var{level}." msgstr "Legt @var{Stufe} als die Ausführlichkeitsstufe für Erstellungen fest." #. type: deffn #: guix-git/doc/guix.texi:12774 msgid "This is similar to the @option{--verbosity} command-line option (@pxref{Common Build Options}): level 0 means total silence, level 1 shows build events only, and higher levels print build logs." msgstr "Das ist das Gleiche wie die Befehlszeilenoption @option{--verbosity} (siehe @ref{Common Build Options}): Stufe 0 zeigt gar nichts an, Stufe 1 nur Ereignisse bei der Erstellung und auf höheren Stufen bekommen Sie Erstellungsprotokolle angezeigt." #. type: deffn #: guix-git/doc/guix.texi:12776 #, no-wrap msgid "{REPL command} phases @var{package}" msgstr "{REPL-Befehl} phases @var{Paket}" #. type: deffnx #: guix-git/doc/guix.texi:12777 #, no-wrap msgid "{REPL command} configure-flags @var{package}" msgstr "{REPL-Befehl} configure-flags @var{Paket}" #. type: deffnx #: guix-git/doc/guix.texi:12778 #, no-wrap msgid "{REPL command} make-flags @var{package}" msgstr "{REPL-Befehl} make-flags @var{Paket}" #. type: deffn #: guix-git/doc/guix.texi:12785 msgid "These REPL commands return the value of one element of the @code{arguments} field of @var{package} (@pxref{package Reference}): the first one show the staged code associated with @code{#:phases} (@pxref{Build Phases}), the second shows the code for @code{#:configure-flags}, and @code{,make-flags} returns the code for @code{#:make-flags}." msgstr "Diese REPL-Befehle liefern den Wert eines Bestandteils des @code{arguments}-Feldes von @var{Paket} zurück (siehe @ref{package Reference}): Ersterer zeigt den „staged code“, der mit @code{#:phases} assoziiert ist (siehe @ref{Build Phases}), der zweite Befehl zeigt den Code für @code{#:configure-flags} und mit @code{,make-flags} wird einem der Code für @code{#:make-flags} geliefert." #. type: deffn #: guix-git/doc/guix.texi:12787 #, no-wrap msgid "{REPL command} run-in-store @var{exp}" msgstr "{REPL-Befehl} run-in-store @var{Ausdruck}" #. type: deffn #: guix-git/doc/guix.texi:12790 msgid "Run @var{exp}, a monadic expression, through the store monad. @xref{The Store Monad}, for more information." msgstr "Den @var{Ausdruck}, einen monadischen Ausdruck, durch die Store-Monade laufen lassen. Siehe @ref{The Store Monad} für mehr Erklärungen." #. type: deffn #: guix-git/doc/guix.texi:12792 #, no-wrap msgid "{REPL command} enter-store-monad" msgstr "{REPL-Befehl} enter-store-monad" #. type: deffn #: guix-git/doc/guix.texi:12795 msgid "Enter a new REPL to evaluate monadic expressions (@pxref{The Store Monad}). You can quit this ``inner'' REPL by typing @code{,q}." msgstr "Damit betreten Sie eine neue REPL, die monadische Ausdrücke auswerten kann (siehe @ref{The Store Monad}). Sie können diese „innere“ REPL verlassen, indem Sie @code{,q} eintippen." #. type: Plain text #: guix-git/doc/guix.texi:12805 msgid "This section describes Guix command-line utilities. Some of them are primarily targeted at developers and users who write new package definitions, while others are more generally useful. They complement the Scheme programming interface of Guix in a convenient way." msgstr "Dieser Abschnitt beschreibt die Befehlszeilenwerkzeuge von Guix. Manche davon richten sich hauptsächlich an Entwickler und solche Nutzer, die neue Paketdefinitionen schreiben, andere sind auch für ein breiteres Publikum nützlich. Sie ergänzen die Scheme-Programmierschnittstelle um bequeme Befehle." #. type: cindex #: guix-git/doc/guix.texi:12828 #, no-wrap msgid "package building" msgstr "Paketerstellung" #. type: command{#1} #: guix-git/doc/guix.texi:12829 #, no-wrap msgid "guix build" msgstr "guix build" #. type: Plain text #: guix-git/doc/guix.texi:12835 msgid "The @command{guix build} command builds packages or derivations and their dependencies, and prints the resulting store paths. Note that it does not modify the user's profile---this is the job of the @command{guix package} command (@pxref{Invoking guix package}). Thus, it is mainly useful for distribution developers." msgstr "Der Befehl @command{guix build} lässt Pakete oder Ableitungen samt ihrer Abhängigkeiten erstellen und gibt die resultierenden Pfade im Store aus. Beachten Sie, dass das Nutzerprofil dadurch nicht modifiziert wird@tie{}– eine solche Installation bewirkt der Befehl @command{guix package} (siehe @ref{Invoking guix package}). @command{guix build} wird also hauptsächlich von Entwicklern der Distribution benutzt." #. type: example #: guix-git/doc/guix.texi:12840 #, no-wrap msgid "guix build @var{options} @var{package-or-derivation}@dots{}\n" msgstr "guix build @var{Optionen} @var{Paket-oder-Ableitung}…\n" #. type: Plain text #: guix-git/doc/guix.texi:12845 msgid "As an example, the following command builds the latest versions of Emacs and of Guile, displays their build logs, and finally displays the resulting directories:" msgstr "Zum Beispiel wird mit folgendem Befehl die neueste Version von Emacs und von Guile erstellt, das zugehörige Erstellungsprotokoll angezeigt und letztendlich werden die resultierenden Verzeichnisse ausgegeben:" #. type: example #: guix-git/doc/guix.texi:12848 #, no-wrap msgid "guix build emacs guile\n" msgstr "guix build emacs guile\n" #. type: Plain text #: guix-git/doc/guix.texi:12851 msgid "Similarly, the following command builds all the available packages:" msgstr "Folgender Befehl erstellt alle Pakete, die zur Verfügung stehen:" #. type: example #: guix-git/doc/guix.texi:12855 #, no-wrap msgid "" "guix build --quiet --keep-going \\\n" " $(guix package -A | awk '@{ print $1 \"@@\" $2 @}')\n" msgstr "" "guix build --quiet --keep-going \\\n" " $(guix package -A | awk '@{ print $1 \"@@\" $2 @}')\n" #. type: Plain text #: guix-git/doc/guix.texi:12863 msgid "@var{package-or-derivation} may be either the name of a package found in the software distribution such as @code{coreutils} or @code{coreutils@@8.20}, or a derivation such as @file{/gnu/store/@dots{}-coreutils-8.19.drv}. In the former case, a package with the corresponding name (and optionally version) is searched for among the GNU distribution modules (@pxref{Package Modules})." msgstr "Als @var{Paket-oder-Ableitung} muss entweder der Name eines in der Software-Distribution zu findenden Pakets, wie etwa @code{coreutils} oder @code{coreutils@@8.20}, oder eine Ableitung wie @file{/gnu/store/…-coreutils-8.19.drv} sein. Im ersten Fall wird nach einem Paket mit entsprechendem Namen (und optional der entsprechenden Version) in den Modulen der GNU-Distribution gesucht (siehe @ref{Package Modules})." #. type: Plain text #: guix-git/doc/guix.texi:12868 msgid "Alternatively, the @option{--expression} option may be used to specify a Scheme expression that evaluates to a package; this is useful when disambiguating among several same-named packages or package variants is needed." msgstr "Alternativ kann die Befehlszeilenoption @option{--expression} benutzt werden, um einen Scheme-Ausdruck anzugeben, der zu einem Paket ausgewertet wird; dies ist nützlich, wenn zwischen mehreren gleichnamigen Paketen oder Paket-Varianten unterschieden werden muss." #. type: Plain text #: guix-git/doc/guix.texi:12871 msgid "There may be zero or more @var{options}. The available options are described in the subsections below." msgstr "Null oder mehr @var{Optionen} können angegeben werden. Zur Verfügung stehen die in den folgenden Unterabschnitten beschriebenen Befehlszeilenoptionen." #. type: Plain text #: guix-git/doc/guix.texi:12886 msgid "A number of options that control the build process are common to @command{guix build} and other commands that can spawn builds, such as @command{guix package} or @command{guix archive}. These are the following:" msgstr "Einige dieser Befehlszeilenoptionen zur Steuerung des Erstellungsprozess haben @command{guix build} und andere Befehle, mit denen Erstellungen ausgelöst werden können, wie @command{guix package} oder @command{guix archive}, gemeinsam. Das sind folgende:" #. type: table #: guix-git/doc/guix.texi:12896 guix-git/doc/guix.texi:15102 #: guix-git/doc/guix.texi:15502 guix-git/doc/guix.texi:15647 #: guix-git/doc/guix.texi:15915 msgid "This allows users to define their own packages and make them visible to the command-line tools." msgstr "Damit können Nutzer dafür sorgen, dass ihre eigenen selbstdefinierten Pakete für die Befehlszeilenwerkzeuge sichtbar sind." #. type: item #: guix-git/doc/guix.texi:12897 #, no-wrap msgid "--keep-failed" msgstr "--keep-failed" #. type: itemx #: guix-git/doc/guix.texi:12898 #, no-wrap msgid "-K" msgstr "-K" #. type: table #: guix-git/doc/guix.texi:12904 msgid "Keep the build tree of failed builds. Thus, if a build fails, its build tree is kept under @file{/tmp}, in a directory whose name is shown at the end of the build log. This is useful when debugging build issues. @xref{Debugging Build Failures}, for tips and tricks on how to debug build issues." msgstr "Den Verzeichnisbaum, in dem fehlgeschlagene Erstellungen durchgeführt wurden, behalten. Wenn also eine Erstellung fehlschlägt, bleibt ihr Erstellungsbaum in @file{/tmp} erhalten. Der Name dieses Unterverzeichnisses wird am Ende dem Erstellungsprotokolls ausgegeben. Dies hilft bei der Suche nach Fehlern in Erstellungen. Der Abschnitt @ref{Debugging Build Failures} zeigt Ihnen Hinweise und Tricks, wie Erstellungsfehler untersucht werden können." #. type: table #: guix-git/doc/guix.texi:12908 msgid "This option implies @option{--no-offload}, and it has no effect when connecting to a remote daemon with a @code{guix://} URI (@pxref{The Store, the @env{GUIX_DAEMON_SOCKET} variable})." msgstr "Diese Option impliziert @option{--no-offload} und sie hat keine Auswirkungen, wenn eine Verbindung zu einem entfernten Daemon über eine @code{guix://}-URI verwendet wurde (siehe @ref{The Store, die @env{GUIX_DAEMON_SOCKET}-Variable})." #. type: item #: guix-git/doc/guix.texi:12909 #, no-wrap msgid "--keep-going" msgstr "--keep-going" #. type: itemx #: guix-git/doc/guix.texi:12910 #, no-wrap msgid "-k" msgstr "-k" #. type: table #: guix-git/doc/guix.texi:12913 msgid "Keep going when some of the derivations fail to build; return only once all the builds have either completed or failed." msgstr "Weitermachen, auch wenn ein Teil der Erstellungen fehlschlägt. Das bedeutet, dass der Befehl erst terminiert, wenn alle Erstellungen erfolgreich oder mit Fehler durchgeführt wurden." #. type: table #: guix-git/doc/guix.texi:12916 msgid "The default behavior is to stop as soon as one of the specified derivations has failed." msgstr "Das normale Verhalten ist, abzubrechen, sobald eine der angegebenen Ableitungen fehlschlägt." #. type: table #: guix-git/doc/guix.texi:12920 msgid "Do not build the derivations." msgstr "Die Ableitungen nicht erstellen." #. type: anchor{#1} #: guix-git/doc/guix.texi:12922 msgid "fallback-option" msgstr "fallback-option" #. type: item #: guix-git/doc/guix.texi:12922 #, no-wrap msgid "--fallback" msgstr "--fallback" #. type: table #: guix-git/doc/guix.texi:12925 msgid "When substituting a pre-built binary fails, fall back to building packages locally (@pxref{Substitution Failure})." msgstr "Wenn das Substituieren vorerstellter Binärdateien fehlschlägt, diese ersatzweise lokal selbst erstellen (siehe @ref{Substitution Failure})." #. type: anchor{#1} #: guix-git/doc/guix.texi:12931 msgid "client-substitute-urls" msgstr "client-substitute-urls" #. type: table #: guix-git/doc/guix.texi:12931 msgid "Consider @var{urls} the whitespace-separated list of substitute source URLs, overriding the default list of URLs of @command{guix-daemon} (@pxref{daemon-substitute-urls,, @command{guix-daemon} URLs})." msgstr "Die @var{urls} als durch Leerraumzeichen getrennte Liste von Quell-URLs für Substitute anstelle der vorgegebenen URL-Liste für den @command{guix-daemon} verwenden (siehe @ref{daemon-substitute-urls,, @command{guix-daemon} URLs})." #. type: table #: guix-git/doc/guix.texi:12935 msgid "This means that substitutes may be downloaded from @var{urls}, provided they are signed by a key authorized by the system administrator (@pxref{Substitutes})." msgstr "Das heißt, die Substitute dürfen von den @var{urls} heruntergeladen werden, sofern sie mit einem durch den Systemadministrator autorisierten Schlüssel signiert worden sind (siehe @ref{Substitutes})." #. type: table #: guix-git/doc/guix.texi:12938 msgid "When @var{urls} is the empty string, substitutes are effectively disabled." msgstr "Wenn als @var{urls} eine leere Zeichenkette angegeben wurde, verhält es sich, als wären Substitute abgeschaltet." #. type: item #: guix-git/doc/guix.texi:12944 #, no-wrap msgid "--no-grafts" msgstr "--no-grafts" #. type: table #: guix-git/doc/guix.texi:12948 msgid "Do not ``graft'' packages. In practice, this means that package updates available as grafts are not applied. @xref{Security Updates}, for more information on grafts." msgstr "Pakete nicht „veredeln“ (engl. „graft“). Praktisch heißt das, dass als Veredelungen verfügbare Paketaktualisierungen nicht angewandt werden. Der Abschnitt @ref{Security Updates} hat weitere Informationen zu Veredelungen." #. type: item #: guix-git/doc/guix.texi:12949 #, no-wrap msgid "--rounds=@var{n}" msgstr "--rounds=@var{n}" #. type: table #: guix-git/doc/guix.texi:12952 msgid "Build each derivation @var{n} times in a row, and raise an error if consecutive build results are not bit-for-bit identical." msgstr "Jede Ableitung @var{n}-mal nacheinander erstellen und einen Fehler melden, wenn die aufeinanderfolgenden Erstellungsergebnisse nicht Bit für Bit identisch sind." #. type: table #: guix-git/doc/guix.texi:12957 msgid "This is a useful way to detect non-deterministic builds processes. Non-deterministic build processes are a problem because they make it practically impossible for users to @emph{verify} whether third-party binaries are genuine. @xref{Invoking guix challenge}, for more." msgstr "Das ist eine nützliche Methode, um nicht-deterministische Erstellungsprozesse zu erkennen. Nicht-deterministische Erstellungsprozesse sind ein Problem, weil Nutzer dadurch praktisch nicht @emph{verifizieren} können, ob von Drittanbietern bereitgestellte Binärdateien unverfälscht sind. Der Abschnitt @ref{Invoking guix challenge} erklärt dies genauer." #. type: table #: guix-git/doc/guix.texi:12973 msgid "By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, @option{--max-silent-time}})." msgstr "Standardmäßig wird die Einstellung für den Daemon benutzt (siehe @ref{Invoking guix-daemon, @option{--max-silent-time}})." #. type: table #: guix-git/doc/guix.texi:12980 msgid "By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, @option{--timeout}})." msgstr "Standardmäßig wird die Einstellung für den Daemon benutzt (siehe @ref{Invoking guix-daemon, @option{--timeout}})." #. type: cindex #: guix-git/doc/guix.texi:12983 #, no-wrap msgid "verbosity, of the command-line tools" msgstr "Ausführlichkeit der Befehlszeilenwerkzeuge" #. type: cindex #: guix-git/doc/guix.texi:12984 #, no-wrap msgid "build logs, verbosity" msgstr "Erstellungsprotokolle, Ausführlichkeit" #. type: item #: guix-git/doc/guix.texi:12985 #, no-wrap msgid "-v @var{level}" msgstr "-v @var{Stufe}" #. type: itemx #: guix-git/doc/guix.texi:12986 #, no-wrap msgid "--verbosity=@var{level}" msgstr "--verbosity=@var{Stufe}" #. type: table #: guix-git/doc/guix.texi:12991 msgid "Use the given verbosity @var{level}, an integer. Choosing 0 means that no output is produced, 1 is for quiet output; 2 is similar to 1 but it additionally displays download URLs; 3 shows all the build log output on standard error." msgstr "Die angegebene Ausführlichkeitsstufe verwenden. Als @var{Stufe} muss eine ganze Zahl angegeben werden. Wird 0 gewählt, wird keine Ausgabe zur Fehlersuche angezeigt, 1 bedeutet eine knappe Ausgabe, 2 ist wie 1, aber zeigt zusätzlich an, von welcher URL heruntergeladen wird, und 3 lässt alle Erstellungsprotokollausgaben auf die Standardfehlerausgabe schreiben." #. type: table #: guix-git/doc/guix.texi:12996 msgid "Allow the use of up to @var{n} CPU cores for the build. The special value @code{0} means to use as many CPU cores as available." msgstr "Die Nutzung von bis zu @var{n} Prozessorkernen für die Erstellungen gestatten. Der besondere Wert @code{0} bedeutet, dass so viele wie möglich benutzt werden." #. type: table #: guix-git/doc/guix.texi:13002 msgid "Allow at most @var{n} build jobs in parallel. @xref{Invoking guix-daemon, @option{--max-jobs}}, for details about this option and the equivalent @command{guix-daemon} option." msgstr "Höchstens @var{n} gleichzeitige Erstellungsaufträge erlauben. Im Abschnitt @ref{Invoking guix-daemon, @option{--max-jobs}} finden Sie Details zu dieser Option und der äquivalenten Option des @command{guix-daemon}." #. type: item #: guix-git/doc/guix.texi:13003 #, no-wrap msgid "--debug=@var{level}" msgstr "--debug=@var{Stufe}" #. type: table #: guix-git/doc/guix.texi:13007 msgid "Produce debugging output coming from the build daemon. @var{level} must be an integer between 0 and 5; higher means more verbose output. Setting a level of 4 or more may be helpful when debugging setup issues with the build daemon." msgstr "Ein Protokoll zur Fehlersuche ausgeben, das vom Erstellungsdaemon kommt. Als @var{Stufe} muss eine ganze Zahl zwischen 0 und 5 angegeben werden; höhere Zahlen stehen für ausführlichere Ausgaben. Stufe 4 oder höher zu wählen, kann bei der Suche nach Fehlern, wie der Erstellungs-Daemon eingerichtet ist, helfen." #. type: Plain text #: guix-git/doc/guix.texi:13014 msgid "Behind the scenes, @command{guix build} is essentially an interface to the @code{package-derivation} procedure of the @code{(guix packages)} module, and to the @code{build-derivations} procedure of the @code{(guix derivations)} module." msgstr "Intern ist @command{guix build} im Kern eine Schnittstelle zur Prozedur @code{package-derivation} aus dem Modul @code{(guix packages)} und zu der Prozedur @code{build-derivations} des Moduls @code{(guix derivations)}." #. type: Plain text #: guix-git/doc/guix.texi:13018 msgid "In addition to options explicitly passed on the command line, @command{guix build} and other @command{guix} commands that support building honor the @env{GUIX_BUILD_OPTIONS} environment variable." msgstr "Neben auf der Befehlszeile übergebenen Optionen beachten @command{guix build} und andere @command{guix}-Befehle, die Erstellungen durchführen lassen, die Umgebungsvariable @env{GUIX_BUILD_OPTIONS}." #. type: defvr #: guix-git/doc/guix.texi:13019 #, no-wrap msgid "{Environment Variable} GUIX_BUILD_OPTIONS" msgstr "{Umgebungsvariable} GUIX_BUILD_OPTIONS" #. type: defvr #: guix-git/doc/guix.texi:13024 msgid "Users can define this variable to a list of command line options that will automatically be used by @command{guix build} and other @command{guix} commands that can perform builds, as in the example below:" msgstr "Nutzer können diese Variable auf eine Liste von Befehlszeilenoptionen definieren, die automatisch von @command{guix build} und anderen @command{guix}-Befehlen, die Erstellungen durchführen lassen, benutzt wird, wie in folgendem Beispiel:" #. type: example #: guix-git/doc/guix.texi:13027 #, no-wrap msgid "$ export GUIX_BUILD_OPTIONS=\"--no-substitutes -c 2 -L /foo/bar\"\n" msgstr "$ export GUIX_BUILD_OPTIONS=\"--no-substitutes -c 2 -L /foo/bar\"\n" #. type: defvr #: guix-git/doc/guix.texi:13031 msgid "These options are parsed independently, and the result is appended to the parsed command-line options." msgstr "Diese Befehlszeilenoptionen werden unabhängig von den auf der Befehlszeile übergebenen Befehlszeilenoptionen grammatikalisch analysiert und das Ergebnis an die bereits analysierten auf der Befehlszeile übergebenen Befehlszeilenoptionen angehängt." #. type: cindex #: guix-git/doc/guix.texi:13037 #, no-wrap msgid "package variants" msgstr "Paketvarianten" #. type: Plain text #: guix-git/doc/guix.texi:13045 msgid "Another set of command-line options supported by @command{guix build} and also @command{guix package} are @dfn{package transformation options}. These are options that make it possible to define @dfn{package variants}---for instance, packages built from different source code. This is a convenient way to create customized packages on the fly without having to type in the definitions of package variants (@pxref{Defining Packages})." msgstr "Eine weitere Gruppe von Befehlszeilenoptionen, die @command{guix build} und auch @command{guix package} unterstützen, sind @dfn{Paketumwandlungsoptionen}. Diese Optionen ermöglichen es, @dfn{Paketvarianten} zu definieren@tie{}– zum Beispiel können Pakete aus einem anderen Quellcode als normalerweise erstellt werden. Damit ist es leicht, angepasste Pakete schnell zu erstellen, ohne die vollständigen Definitionen von Paketvarianten einzutippen (siehe @ref{Defining Packages})." #. type: Plain text #: guix-git/doc/guix.texi:13049 msgid "Package transformation options are preserved across upgrades: @command{guix upgrade} attempts to apply transformation options initially used when creating the profile to the upgraded packages." msgstr "Paketumwandlungsoptionen bleiben über Aktualisierungen hinweg erhalten: @command{guix upgrade} versucht, Umwandlungsoptionen, die vorher zur Erstellung des Profils benutzt wurden, auf die aktualisierten Pakete anzuwenden." #. type: Plain text #: guix-git/doc/guix.texi:13054 msgid "The available options are listed below. Most commands support them and also support a @option{--help-transform} option that lists all the available options and a synopsis (these options are not shown in the @option{--help} output for brevity)." msgstr "Im Folgenden finden Sie die verfügbaren Befehlszeilenoptionen. Die meisten Befehle unterstützen sie ebenso wie eine Option @option{--help-transform}, mit der all die verfügbaren Optionen und je eine Kurzbeschreibung dazu angezeigt werden. (Diese Optionen werden der Kürze wegen nicht in der Ausgabe von @option{--help} aufgeführt.)" #. type: cindex #: guix-git/doc/guix.texi:13057 #, no-wrap msgid "performance, tuning code" msgstr "Rechenleistung, Codeoptimierung" #. type: cindex #: guix-git/doc/guix.texi:13058 #, no-wrap msgid "optimization, of package code" msgstr "Optimierung, von Paketcode" #. type: cindex #: guix-git/doc/guix.texi:13059 #, no-wrap msgid "tuning, of package code" msgstr "Tuning, von Paketcode" #. type: cindex #: guix-git/doc/guix.texi:13060 #, no-wrap msgid "SIMD support" msgstr "SIMD-Unterstützung" #. type: cindex #: guix-git/doc/guix.texi:13061 #, no-wrap msgid "tunable packages" msgstr "tunebare Pakete" #. type: cindex #: guix-git/doc/guix.texi:13062 #, no-wrap msgid "package multi-versioning" msgstr "Paket-Multiversionierung" #. type: item #: guix-git/doc/guix.texi:13063 #, no-wrap msgid "--tune[=@var{cpu}]" msgstr "--tune[=@var{CPU}]" #. type: table #: guix-git/doc/guix.texi:13067 msgid "Use versions of the packages marked as ``tunable'' optimized for @var{cpu}. When @var{cpu} is @code{native}, or when it is omitted, tune for the CPU on which the @command{guix} command is running." msgstr "Die optimierte Version als „tunebar“ markierter Pakete benutzen. @var{CPU} gibt die Prozessorarchitektur an, für die optimiert werden soll. Wenn als @var{CPU} die Bezeichnung @code{native} angegeben wird oder nichts angegeben wird, wird für den Prozessor optimiert, auf dem der Befehl @command{guix} läuft." #. type: table #: guix-git/doc/guix.texi:13073 msgid "Valid @var{cpu} names are those recognized by the underlying compiler, by default the GNU Compiler Collection. On x86_64 processors, this includes CPU names such as @code{nehalem}, @code{haswell}, and @code{skylake} (@pxref{x86 Options, @code{-march},, gcc, Using the GNU Compiler Collection (GCC)})." msgstr "Gültige Namen für @var{CPU} sind genau die, die vom zugrunde liegenden Compiler erkannt werden. Vorgegeben ist, dass als Compiler die GNU Compiler Collection benutzt wird. Auf x86_64-Prozessoren gehören @code{nehalem}, @code{haswell}, und @code{skylake} zu den CPU-Namen (siehe @ref{x86 Options, @code{-march},, gcc, Using the GNU Compiler Collection (GCC)})." #. type: table #: guix-git/doc/guix.texi:13080 msgid "As new generations of CPUs come out, they augment the standard instruction set architecture (ISA) with additional instructions, in particular instructions for single-instruction/multiple-data (SIMD) parallel processing. For example, while Core2 and Skylake CPUs both implement the x86_64 ISA, only the latter supports AVX2 SIMD instructions." msgstr "Mit dem Erscheinen neuer Generationen von Prozessoren wächst der Standardbefehlssatz (die „Instruction Set Architecture“, ISA) um neue Befehle an, insbesondere wenn es um Befehle zur Parallelverarbeitung geht („Single-Instruction/Multiple-Data“, SIMD). Zum Beispiel implementieren sowohl die Core2- als auch die Skylake-Prozessoren den x86_64-Befehlssatz, jedoch können nur letztere AVX2-SIMD-Befehle ausführen." #. type: table #: guix-git/doc/guix.texi:13087 msgid "The primary gain one can expect from @option{--tune} is for programs that can make use of those SIMD capabilities @emph{and} that do not already have a mechanism to select the right optimized code at run time. Packages that have the @code{tunable?} property set are considered @dfn{tunable packages} by the @option{--tune} option; a package definition with the property set looks like this:" msgstr "Der Mehrwert, den @option{--tune} bringt, besteht in erster Linie bei Programmen, für die SIMD-Fähigkeiten geeignet wären @emph{und} die über keinen Mechanismus verfügen, zur Laufzeit die geeigneten Codeoptimierungen zuzuschalten. Pakete, bei denen die Eigenschaft @code{tunable?} angegeben wurde, werden bei der Befehlszeilenoption @option{--tune} als @dfn{tunebare Pakete} optimiert. Eine Paketdefinition, bei der diese Eigenschaft hinterlegt wurde, sieht so aus:" #. type: lisp #: guix-git/doc/guix.texi:13092 #, no-wrap msgid "" "(package\n" " (name \"hello-simd\")\n" " ;; ...\n" "\n" msgstr "" "(package\n" " (name \"hello-simd\")\n" " ;; …\n" "\n" #. type: lisp #: guix-git/doc/guix.texi:13096 #, no-wrap msgid "" " ;; This package may benefit from SIMD extensions so\n" " ;; mark it as \"tunable\".\n" " (properties '((tunable? . #t))))\n" msgstr "" " ;; Dieses Paket kann von SIMD-Erweiterungen profitieren,\n" " ;; deshalb markieren wir es als \"tunebar\".\n" " (properties '((tunable? . #t))))\n" #. type: table #: guix-git/doc/guix.texi:13101 msgid "Other packages are not considered tunable. This allows Guix to use generic binaries in the cases where tuning for a specific CPU is unlikely to provide any gain." msgstr "Andere Pakete werden als @emph{nicht} tunebar aufgefasst. Dadurch kann Guix allgemeine Binärdateien verwenden, wenn sich die Optimierung für einen bestimmten Prozessor wahrscheinlich @emph{nicht} lohnt." #. type: table #: guix-git/doc/guix.texi:13107 msgid "Tuned packages are built with @code{-march=@var{CPU}}; under the hood, the @option{-march} option is passed to the actual wrapper by a compiler wrapper. Since the build machine may not be able to run code for the target CPU micro-architecture, the test suite is not run when building a tuned package." msgstr "Bei der Erstellung tunebarer Pakete wird @code{-march=@var{CPU}} übergeben. Intern wird die Befehlszeilenoption @option{-march} durch einen Compiler-Wrapper an den eigentlichen Wrapper übergeben. Weil die Erstellungsmaschine den Code für die Mikroarchitektur vielleicht gar nicht ausführen kann, wird der Testkatalog bei der Erstellung tunebarer Pakete übersprungen." #. type: table #: guix-git/doc/guix.texi:13111 msgid "To reduce rebuilds to the minimum, tuned packages are @emph{grafted} onto packages that depend on them (@pxref{Security Updates, grafts}). Thus, using @option{--no-grafts} cancels the effect of @option{--tune}." msgstr "Damit weniger Neuerstellungen erforderlich sind, werden die von tunebaren Paketen abhängigen Pakete mit den optimierten Paketen @emph{veredelt} (siehe @ref{Security Updates, Veredelungen}). Wenn Sie @option{--no-grafts} übergeben, wirkt @option{--tune} deshalb @emph{nicht} mehr." #. type: table #: guix-git/doc/guix.texi:13117 msgid "We call this technique @dfn{package multi-versioning}: several variants of tunable packages may be built, one for each CPU variant. It is the coarse-grain counterpart of @dfn{function multi-versioning} as implemented by the GNU tool chain (@pxref{Function Multiversioning,,, gcc, Using the GNU Compiler Collection (GCC)})." msgstr "Wir geben dieser Technik den Namen @dfn{Paket-Multiversionierung}: Mehrere Varianten des tunebaren Pakets können erstellt werden; eine für jede Prozessorvariante. Das ist die grobkörnige Entsprechung der @dfn{Funktions-Multiversionierung}, die in der GNU-Toolchain zu finden ist (siehe @ref{Function Multiversioning,,, gcc, Using the GNU Compiler Collection (GCC)})." #. type: item #: guix-git/doc/guix.texi:13118 #, no-wrap msgid "--with-source=@var{source}" msgstr "--with-source=@var{Quelle}" #. type: itemx #: guix-git/doc/guix.texi:13119 #, no-wrap msgid "--with-source=@var{package}=@var{source}" msgstr "--with-source=@var{Paket}=@var{Quelle}" #. type: itemx #: guix-git/doc/guix.texi:13120 #, no-wrap msgid "--with-source=@var{package}@@@var{version}=@var{source}" msgstr "--with-source=@var{Paket}@@@var{Version}=@var{Quelle}" #. type: table #: guix-git/doc/guix.texi:13125 msgid "Use @var{source} as the source of @var{package}, and @var{version} as its version number. @var{source} must be a file name or a URL, as for @command{guix download} (@pxref{Invoking guix download})." msgstr "Den Paketquellcode für das @var{Paket} von der angegebenen @var{Quelle} holen und die @var{Version} als seine Versionsnummer verwenden. Die @var{Quelle} muss ein Dateiname oder eine URL sein wie bei @command{guix download} (siehe @ref{Invoking guix download})." #. type: table #: guix-git/doc/guix.texi:13131 msgid "When @var{package} is omitted, it is taken to be the package name specified on the command line that matches the base of @var{source}---e.g., if @var{source} is @code{/src/guile-2.0.10.tar.gz}, the corresponding package is @code{guile}." msgstr "Wird kein @var{Paket} angegeben, wird als Paketname derjenige auf der Befehlszeile angegebene Paketname angenommen, der zur Basis am Ende der @var{Quelle} passt@tie{}– wenn z.B.@: als @var{Quelle} die Datei @code{/src/guile-2.0.10.tar.gz} angegeben wurde, entspricht das dem @code{guile}-Paket." #. type: table #: guix-git/doc/guix.texi:13134 msgid "Likewise, when @var{version} is omitted, the version string is inferred from @var{source}; in the previous example, it is @code{2.0.10}." msgstr "Ebenso wird, wenn keine @var{Version} angegeben wurde, die Version als Zeichenkette aus der @var{Quelle} abgeleitet; im vorherigen Beispiel wäre sie @code{2.0.10}." #. type: table #: guix-git/doc/guix.texi:13139 msgid "This option allows users to try out versions of packages other than the one provided by the distribution. The example below downloads @file{ed-1.7.tar.gz} from a GNU mirror and uses that as the source for the @code{ed} package:" msgstr "Mit dieser Option können Nutzer versuchen, eine andere Version ihres Pakets auszuprobieren, als die in der Distribution enthaltene Version. Folgendes Beispiel lädt @file{ed-1.7.tar.gz} von einem GNU-Spiegelserver herunter und benutzt es als Quelle für das @code{ed}-Paket:" #. type: example #: guix-git/doc/guix.texi:13142 #, no-wrap msgid "guix build ed --with-source=mirror://gnu/ed/ed-1.4.tar.gz\n" msgstr "guix build ed --with-source=mirror://gnu/ed/ed-1.4.tar.gz\n" #. type: table #: guix-git/doc/guix.texi:13147 msgid "As a developer, @option{--with-source} makes it easy to test release candidates, and even to test their impact on packages that depend on them:" msgstr "Für Entwickler wird es einem durch @option{--with-source} leicht gemacht, „Release Candidates“, also Vorabversionen, zu testen, oder sogar welchen Einfluss diese auf abhängige Pakete haben:" #. type: example #: guix-git/doc/guix.texi:13150 #, no-wrap msgid "guix build elogind --with-source=@dots{}/shepherd-0.9.0rc1.tar.gz\n" msgstr "guix build elogind --with-source=…/shepherd-0.9.0rc1.tar.gz\n" #. type: table #: guix-git/doc/guix.texi:13153 msgid "@dots{} or to build from a checkout in a pristine environment:" msgstr "…@: oder ein Checkout eines versionskontrollierten Repositorys in einer isolierten Umgebung zu erstellen:" #. type: example #: guix-git/doc/guix.texi:13157 #, no-wrap msgid "" "$ git clone git://git.sv.gnu.org/guix.git\n" "$ guix build guix --with-source=guix@@1.0=./guix\n" msgstr "" "$ git clone git://git.sv.gnu.org/guix.git\n" "$ guix build guix --with-source=guix@@1.0=./guix\n" #. type: item #: guix-git/doc/guix.texi:13159 #, no-wrap msgid "--with-input=@var{package}=@var{replacement}" msgstr "--with-input=@var{Paket}=@var{Ersatz}" #. type: table #: guix-git/doc/guix.texi:13164 msgid "Replace dependency on @var{package} by a dependency on @var{replacement}. @var{package} must be a package name, and @var{replacement} must be a package specification such as @code{guile} or @code{guile@@1.8}." msgstr "Abhängigkeiten vom @var{Paket} durch eine Abhängigkeit vom @var{Ersatz}-Paket ersetzen. Als @var{Paket} muss ein Paketname angegeben werden und als @var{Ersatz} eine Paketspezifikation wie @code{guile} oder @code{guile@@1.8}." #. type: table #: guix-git/doc/guix.texi:13168 msgid "For instance, the following command builds Guix, but replaces its dependency on the current stable version of Guile with a dependency on the legacy version of Guile, @code{guile@@2.2}:" msgstr "Mit folgendem Befehl wird zum Beispiel Guix erstellt, aber statt der aktuellen stabilen Guile-Version hängt es von der alten Guile-Version @code{guile@@2.2} ab:" #. type: example #: guix-git/doc/guix.texi:13171 #, no-wrap msgid "guix build --with-input=guile=guile@@2.2 guix\n" msgstr "guix build --with-input=guile=guile@@2.2 guix\n" #. type: table #: guix-git/doc/guix.texi:13176 msgid "This is a recursive, deep replacement. So in this example, both @code{guix} and its dependency @code{guile-json} (which also depends on @code{guile}) get rebuilt against @code{guile@@2.2}." msgstr "Die Ersetzung ist rekursiv und umfassend. In diesem Beispiel würde nicht nur @code{guix}, sondern auch seine Abhängigkeit @code{guile-json} (was auch von @code{guile} abhängt) für @code{guile@@2.2} neu erstellt." #. type: table #: guix-git/doc/guix.texi:13179 msgid "This is implemented using the @code{package-input-rewriting/spec} Scheme procedure (@pxref{Defining Packages, @code{package-input-rewriting/spec}})." msgstr "Implementiert wird das alles mit der Scheme-Prozedur @code{package-input-rewriting/spec} (siehe @ref{Defining Packages, @code{package-input-rewriting/spec}})." #. type: item #: guix-git/doc/guix.texi:13180 #, no-wrap msgid "--with-graft=@var{package}=@var{replacement}" msgstr "--with-graft=@var{Paket}=@var{Ersatz}" #. type: table #: guix-git/doc/guix.texi:13186 msgid "This is similar to @option{--with-input} but with an important difference: instead of rebuilding the whole dependency chain, @var{replacement} is built and then @dfn{grafted} onto the binaries that were initially referring to @var{package}. @xref{Security Updates}, for more information on grafts." msgstr "Dies verhält sich ähnlich wie mit @option{--with-input}, aber mit dem wichtigen Unterschied, dass nicht die gesamte Abhängigkeitskette neu erstellt wird, sondern das @var{Ersatz}-Paket erstellt und die ursprünglichen Binärdateien, die auf das @var{Paket} verwiesen haben, damit @dfn{veredelt} werden. Im Abschnitt @ref{Security Updates} finden Sie weitere Informationen über Veredelungen." #. type: table #: guix-git/doc/guix.texi:13190 msgid "For example, the command below grafts version 3.5.4 of GnuTLS onto Wget and all its dependencies, replacing references to the version of GnuTLS they currently refer to:" msgstr "Zum Beispiel veredelt folgender Befehl Wget und alle Abhängigkeiten davon mit der Version 3.5.4 von GnuTLS, indem Verweise auf die ursprünglich verwendete GnuTLS-Version ersetzt werden:" #. type: example #: guix-git/doc/guix.texi:13193 #, no-wrap msgid "guix build --with-graft=gnutls=gnutls@@3.5.4 wget\n" msgstr "guix build --with-graft=gnutls=gnutls@@3.5.4 wget\n" #. type: table #: guix-git/doc/guix.texi:13202 msgid "This has the advantage of being much faster than rebuilding everything. But there is a caveat: it works if and only if @var{package} and @var{replacement} are strictly compatible---for example, if they provide a library, the application binary interface (ABI) of those libraries must be compatible. If @var{replacement} is somehow incompatible with @var{package}, then the resulting package may be unusable. Use with care!" msgstr "Das hat den Vorteil, dass es viel schneller geht, als alles neu zu erstellen. Die Sache hat aber einen Haken: Veredelung funktioniert nur, wenn das @var{Paket} und sein @var{Ersatz} miteinander streng kompatibel sind@tie{}– zum Beispiel muss, wenn diese eine Programmbibliothek zur Verfügung stellen, deren Binärschnittstelle („Application Binary Interface“, kurz ABI) kompatibel sein. Wenn das @var{Ersatz}-Paket auf irgendeine Art inkompatibel mit dem @var{Paket} ist, könnte das Ergebnispaket unbrauchbar sein. Vorsicht ist also geboten!" #. type: cindex #: guix-git/doc/guix.texi:13203 guix-git/doc/guix.texi:48352 #, no-wrap msgid "debugging info, rebuilding" msgstr "Dateien zur Fehlersuche, neu erstellen" #. type: item #: guix-git/doc/guix.texi:13204 #, no-wrap msgid "--with-debug-info=@var{package}" msgstr "--with-debug-info=@var{Paket}" #. type: table #: guix-git/doc/guix.texi:13209 msgid "Build @var{package} in a way that preserves its debugging info and graft it onto packages that depend on it. This is useful if @var{package} does not already provide debugging info as a @code{debug} output (@pxref{Installing Debugging Files})." msgstr "Das @var{Paket} auf eine Weise erstellen, die Informationen zur Fehlersuche enthält, und von ihm abhängige Pakete damit veredeln. Das ist nützlich, wenn das @var{Paket} noch keine Fehlersuchinformationen als installierbare @code{debug}-Ausgabe enthält (siehe @ref{Installing Debugging Files})." #. type: table #: guix-git/doc/guix.texi:13215 msgid "For example, suppose you're experiencing a crash in Inkscape and would like to see what's up in GLib, a library deep down in Inkscape's dependency graph. GLib lacks a @code{debug} output, so debugging is tough. Fortunately, you rebuild GLib with debugging info and tack it on Inkscape:" msgstr "Als Beispiel nehmen wir an, Inkscape stürzt bei Ihnen ab und Sie möchten wissen, was dabei in GLib passiert. Die GLib-Bibliothek liegt tief im Abhängigkeitsgraphen von Inkscape und verfügt nicht über eine @code{debug}-Ausgabe; das erschwert die Fehlersuche. Glücklicherweise können Sie GLib mit Informationen zur Fehlersuche neu erstellen und an Inkscape anheften:" #. type: example #: guix-git/doc/guix.texi:13218 guix-git/doc/guix.texi:48383 #, no-wrap msgid "guix install inkscape --with-debug-info=glib\n" msgstr "guix install inkscape --with-debug-info=glib\n" #. type: table #: guix-git/doc/guix.texi:13222 msgid "Only GLib needs to be recompiled so this takes a reasonable amount of time. @xref{Installing Debugging Files}, for more info." msgstr "Nur GLib muss neu kompiliert werden, was in vernünftiger Zeit möglich ist. Siehe @ref{Installing Debugging Files} für mehr Informationen." #. type: quotation #: guix-git/doc/guix.texi:13228 msgid "Under the hood, this option works by passing the @samp{#:strip-binaries? #f} to the build system of the package of interest (@pxref{Build Systems}). Most build systems support that option but some do not. In that case, an error is raised." msgstr "Intern funktioniert diese Option, indem @samp{#:strip-binaries? #f} an das Erstellungssystem des betreffenden Pakets übergeben wird (siehe @ref{Build Systems}). Die meisten Erstellungssysteme unterstützen diese Option, manche aber nicht. In diesem Fall wird ein Fehler gemeldet." #. type: quotation #: guix-git/doc/guix.texi:13232 msgid "Likewise, if a C/C++ package is built without @code{-g} (which is rarely the case), debugging info will remain unavailable even when @code{#:strip-binaries?} is false." msgstr "Auch wenn ein in C/C++ geschriebenes Paket ohne @code{-g} erstellt wird (was selten der Fall ist), werden Informationen zur Fehlersuche weiterhin fehlen, obwohl @code{#:strip-binaries?} auf falsch steht." #. type: cindex #: guix-git/doc/guix.texi:13234 #, no-wrap msgid "tool chain, changing the build tool chain of a package" msgstr "Toolchain, die Erstellungs-Toolchain eines Pakets ändern" #. type: item #: guix-git/doc/guix.texi:13235 #, no-wrap msgid "--with-c-toolchain=@var{package}=@var{toolchain}" msgstr "--with-c-toolchain=@var{Paket}=@var{Toolchain}" #. type: table #: guix-git/doc/guix.texi:13239 msgid "This option changes the compilation of @var{package} and everything that depends on it so that they get built with @var{toolchain} instead of the default GNU tool chain for C/C++." msgstr "Mit dieser Befehlszeilenoption wird die Kompilierung des @var{Paket}s und aller davon abhängigen Objekte angepasst, so dass mit der @var{Toolchain} statt der vorgegebenen GNU-Toolchain für C/C++ erstellt wird." #. type: example #: guix-git/doc/guix.texi:13246 #, no-wrap msgid "" "guix build octave-cli \\\n" " --with-c-toolchain=fftw=gcc-toolchain@@10 \\\n" " --with-c-toolchain=fftwf=gcc-toolchain@@10\n" msgstr "" "guix build octave-cli \\\n" " --with-c-toolchain=fftw=gcc-toolchain@@10 \\\n" " --with-c-toolchain=fftwf=gcc-toolchain@@10\n" #. type: table #: guix-git/doc/guix.texi:13253 msgid "The command above builds a variant of the @code{fftw} and @code{fftwf} packages using version 10 of @code{gcc-toolchain} instead of the default tool chain, and then builds a variant of the GNU@tie{}Octave command-line interface using them. GNU@tie{}Octave itself is also built with @code{gcc-toolchain@@10}." msgstr "Mit dem obigen Befehl wird eine Variante der Pakete @code{fftw} und @code{fftwf} mit Version@tie{}10 der @code{gcc-toolchain} anstelle der vorgegebenen Toolchain erstellt, um damit anschließend eine diese benutzende Variante des GNU-Octave-Befehlszeilenprogramms zu erstellen. Auch GNU@tie{}Octave selbst wird mit @code{gcc-toolchain@@10} erstellt." #. type: table #: guix-git/doc/guix.texi:13257 msgid "This other example builds the Hardware Locality (@code{hwloc}) library and its dependents up to @code{intel-mpi-benchmarks} with the Clang C compiler:" msgstr "Das zweite Beispiel bewirkt eine Erstellung der „Hardware Locality“-Bibliothek (@code{hwloc}) sowie ihrer abhängigen Objekte bis einschließlich @code{intel-mpi-benchmarks} mit dem Clang-C-Compiler:" #. type: example #: guix-git/doc/guix.texi:13261 #, no-wrap msgid "" "guix build --with-c-toolchain=hwloc=clang-toolchain \\\n" " intel-mpi-benchmarks\n" msgstr "" "guix build --with-c-toolchain=hwloc=clang-toolchain \\\n" " intel-mpi-benchmarks\n" #. type: quotation #: guix-git/doc/guix.texi:13270 msgid "There can be application binary interface (ABI) incompatibilities among tool chains. This is particularly true of the C++ standard library and run-time support libraries such as that of OpenMP@. By rebuilding all dependents with the same tool chain, @option{--with-c-toolchain} minimizes the risks of incompatibility but cannot entirely eliminate them. Choose @var{package} wisely." msgstr "Es kann vorkommen, dass die Anwendungsbinärschnittstellen („Application Binary Interfaces“, kurz ABIs) der Toolchains inkompatibel sind. Das tritt vor allem bei der C++-Standardbibliothek und Bibliotheken zur Laufzeitunterstützung wie denen von OpenMP auf. Indem alle abhängigen Objekte mit derselben Toolchain erstellt werden, minimiert @option{--with-c-toolchain} das Risiko, dass es zu Inkompatibilitäten kommt, aber es kann nicht ganz ausgeschlossen werden. Bedenken Sie, für welches @var{Paket} Sie dies benutzen." #. type: item #: guix-git/doc/guix.texi:13272 #, no-wrap msgid "--with-git-url=@var{package}=@var{url}" msgstr "--with-git-url=@var{Paket}=@var{URL}" #. type: cindex #: guix-git/doc/guix.texi:13273 #, no-wrap msgid "Git, using the latest commit" msgstr "Git, den neuesten Commit benutzen" #. type: cindex #: guix-git/doc/guix.texi:13274 #, no-wrap msgid "latest commit, building" msgstr "neuester Commit, davon erstellen" #. type: table #: guix-git/doc/guix.texi:13278 msgid "Build @var{package} from the latest commit of the @code{master} branch of the Git repository at @var{url}. Git sub-modules of the repository are fetched, recursively." msgstr "Das @var{Paket} aus dem neuesten Commit im @code{master}-Branch des unter der @var{URL} befindlichen Git-Repositorys erstellen. Git-Submodule des Repositorys werden dabei rekursiv geladen." #. type: table #: guix-git/doc/guix.texi:13281 msgid "For example, the following command builds the NumPy Python library against the latest commit of the master branch of Python itself:" msgstr "Zum Beispiel erstellt der folgende Befehl die NumPy-Python-Bibliothek unter Verwendung des neuesten Commits von Python auf dessen „master“-Branch." #. type: example #: guix-git/doc/guix.texi:13285 #, no-wrap msgid "" "guix build python-numpy \\\n" " --with-git-url=python=https://github.com/python/cpython\n" msgstr "" "guix build python-numpy \\\n" " --with-git-url=python=https://github.com/python/cpython\n" #. type: table #: guix-git/doc/guix.texi:13289 msgid "This option can also be combined with @option{--with-branch} or @option{--with-commit} (see below)." msgstr "Diese Befehlszeilenoption kann auch mit @option{--with-branch} oder @option{--with-commit} kombiniert werden (siehe unten)." #. type: cindex #: guix-git/doc/guix.texi:13290 guix-git/doc/guix.texi:34743 #, no-wrap msgid "continuous integration" msgstr "Kontinuierliche Integration" #. type: table #: guix-git/doc/guix.texi:13296 msgid "Obviously, since it uses the latest commit of the given branch, the result of such a command varies over time. Nevertheless it is a convenient way to rebuild entire software stacks against the latest commit of one or more packages. This is particularly useful in the context of continuous integration (CI)." msgstr "Da es den neuesten Commit auf dem verwendeten Branch benutzt, ändert sich das Ergebnis natürlich mit der Zeit. Nichtsdestoweniger ist es eine bequeme Möglichkeit, ganze Softwarestapel auf dem neuesten Commit von einem oder mehr Paketen aufbauen zu lassen. Es ist besonders nützlich im Kontext Kontinuierlicher Integration (englisch „Continuous Integration“, kurz CI)." #. type: table #: guix-git/doc/guix.texi:13300 msgid "Checkouts are kept in a cache under @file{~/.cache/guix/checkouts} to speed up consecutive accesses to the same repository. You may want to clean it up once in a while to save disk space." msgstr "Checkouts bleiben zwischengespeichert als @file{~/.cache/guix/checkouts}, damit danach schneller auf dasselbe Repository zugegriffen werden kann. Eventuell möchten Sie das Verzeichnis ab und zu bereinigen, um Plattenplatz zu sparen." #. type: item #: guix-git/doc/guix.texi:13301 #, no-wrap msgid "--with-branch=@var{package}=@var{branch}" msgstr "--with-branch=@var{Paket}=@var{Branch}" #. type: table #: guix-git/doc/guix.texi:13307 msgid "Build @var{package} from the latest commit of @var{branch}. If the @code{source} field of @var{package} is an origin with the @code{git-fetch} method (@pxref{origin Reference}) or a @code{git-checkout} object, the repository URL is taken from that @code{source}. Otherwise you have to use @option{--with-git-url} to specify the URL of the Git repository." msgstr "Das @var{Paket} aus dem neuesten Commit auf dem @var{Branch} erstellen. Wenn das @code{source}-Feld des @var{Paket}s ein origin-Objekt mit der Methode @code{git-fetch} (siehe @ref{origin Reference}) oder ein @code{git-checkout}-Objekt ist, wird die URL des Repositorys vom @code{source}-Feld genommen. Andernfalls müssen Sie die Befehlszeilenoption @option{--with-git-url} benutzen, um die URL des Git-Repositorys anzugeben." #. type: table #: guix-git/doc/guix.texi:13312 msgid "For instance, the following command builds @code{guile-sqlite3} from the latest commit of its @code{master} branch, and then builds @code{guix} (which depends on it) and @code{cuirass} (which depends on @code{guix}) against this specific @code{guile-sqlite3} build:" msgstr "Zum Beispiel wird mit dem folgenden Befehl @code{guile-sqlite3} aus dem neuesten Commit seines @code{master}-Branches erstellt und anschließend @code{guix} (was von @code{guile-sqlite3} abhängt) und @code{cuirass} (was von @code{guix} abhängt) unter Nutzung genau dieser @code{guile-sqlite3}-Erstellung erstellt:" #. type: example #: guix-git/doc/guix.texi:13315 #, no-wrap msgid "guix build --with-branch=guile-sqlite3=master cuirass\n" msgstr "guix build --with-branch=guile-sqlite3=master cuirass\n" #. type: item #: guix-git/doc/guix.texi:13317 #, no-wrap msgid "--with-commit=@var{package}=@var{commit}" msgstr "--with-commit=@var{Paket}=@var{Commit}" #. type: table #: guix-git/doc/guix.texi:13322 msgid "This is similar to @option{--with-branch}, except that it builds from @var{commit} rather than the tip of a branch. @var{commit} must be a valid Git commit SHA1 identifier, a tag, or a @command{git describe} style identifier such as @code{1.0-3-gabc123}." msgstr "Dies verhält sich ähnlich wie @option{--with-branch}, außer dass es den angegebenen @var{Commit} benutzt statt die Spitze eines angegebenen Branches. Als @var{Commit} muss ein gültiger SHA1-Bezeichner, ein Tag oder ein Bezeichner wie von @command{git describe} (wie @code{1.0-3-gabc123}) für einen Git-Commit angegeben werden." #. type: item #: guix-git/doc/guix.texi:13323 #, no-wrap msgid "--with-patch=@var{package}=@var{file}" msgstr "--with-patch=@var{Paket}=@var{Datei}" #. type: table #: guix-git/doc/guix.texi:13330 msgid "Add @var{file} to the list of patches applied to @var{package}, where @var{package} is a spec such as @code{python@@3.8} or @code{glibc}. @var{file} must contain a patch; it is applied with the flags specified in the @code{origin} of @var{package} (@pxref{origin Reference}), which by default includes @code{-p1} (@pxref{patch Directories,,, diffutils, Comparing and Merging Files})." msgstr "Die @var{Datei} zur Liste der auf das @var{Paket} anzuwendenden Patches hinzufügen. Als @var{Paket} muss eine Spezifikation wie @code{python@@3.8} oder @code{glibc} benutzt werden. In der @var{Datei} muss ein Patch enthalten sein; er wird mit den im Ursprung (@code{origin}) des @var{Paket}s angegebenen Befehlszeilenoptionen angewandt (siehe @ref{origin Reference}). Die vorgegebenen Optionen enthalten @code{-p1} (siehe @ref{patch Directories,,, diffutils, Comparing and Merging Files})." #. type: table #: guix-git/doc/guix.texi:13333 msgid "As an example, the command below rebuilds Coreutils with the GNU C Library (glibc) patched with the given patch:" msgstr "Zum Beispiel wird mit dem folgenden Befehl für die Neuerstellung von Coreutils die GNU-C-Bibliothek (glibc) wie angegeben gepatcht:" #. type: example #: guix-git/doc/guix.texi:13336 #, no-wrap msgid "guix build coreutils --with-patch=glibc=./glibc-frob.patch\n" msgstr "guix build coreutils --with-patch=glibc=./glibc-frob.patch\n" #. type: table #: guix-git/doc/guix.texi:13340 msgid "In this example, glibc itself as well as everything that leads to Coreutils in the dependency graph is rebuilt." msgstr "In diesem Beispiel wird glibc selbst und alles, was im Abhängigkeitsgraphen auf dem Weg zu Coreutils liegt, neu erstellt." #. type: cindex #: guix-git/doc/guix.texi:13341 #, no-wrap msgid "configure flags, changing them" msgstr "configure-Befehlszeilenoptionen, ändern" #. type: item #: guix-git/doc/guix.texi:13342 #, no-wrap msgid "--with-configure-flag=@var{package}=@var{flag}" msgstr "--with-configure-flag=@var{Paket}=@var{Befehlszeilenoption}" #. type: table #: guix-git/doc/guix.texi:13347 msgid "Append @var{flag} to the configure flags of @var{package}, where @var{package} is a spec such as @code{guile@@3.0} or @code{glibc}. The build system of @var{package} must support the @code{#:configure-flags} argument." msgstr "Hängt die @var{Befehlszeilenoption} an die Befehlszeilenoptionen an, die zur Erstellung von @var{Paket} an den Aufruf von configure übergeben werden. @var{Paket} wird als Paketspezifikation angegeben, etwa @code{guile@@3.0} oder @code{glibc}. Das Erstellungssystem von @var{Paket} muss dafür das Argument @code{#:configure-flags} unterstützen." #. type: table #: guix-git/doc/guix.texi:13350 msgid "For example, the command below builds GNU@tie{}Hello with the configure flag @code{--disable-nls}:" msgstr "Zum Beispiel können Sie mit folgendem Befehl GNU@tie{}Hello mit der configure-Option @code{--disable-nls} erstellen:" #. type: example #: guix-git/doc/guix.texi:13353 #, no-wrap msgid "guix build hello --with-configure-flag=hello=--disable-nls\n" msgstr "guix build hello --with-configure-flag=hello=--disable-nls\n" #. type: table #: guix-git/doc/guix.texi:13357 msgid "The following command passes an extra flag to @command{cmake} as it builds @code{lapack}:" msgstr "Folgender Befehl gibt @command{cmake} eine zusätzliche Option beim Erstellen von @code{lapack} mit:" #. type: example #: guix-git/doc/guix.texi:13361 #, no-wrap msgid "" "guix build lapack \\\n" " --with-configure-flag=lapack=-DBUILD_SHARED_LIBS=OFF\n" msgstr "" "guix build lapack \\\n" " --with-configure-flag=lapack=-DBUILD_SHARED_LIBS=OFF\n" #. type: quotation #: guix-git/doc/guix.texi:13368 msgid "Under the hood, this option works by passing the @samp{#:configure-flags} argument to the build system of the package of interest (@pxref{Build Systems}). Most build systems support that option but some do not. In that case, an error is raised." msgstr "Intern funktioniert diese Option, indem das Argument @samp{#:configure-flags} an das Erstellungssystem des betreffenden Pakets übergeben wird (siehe @ref{Build Systems}). Die meisten Erstellungssysteme unterstützen diese Option, manche aber nicht. In diesem Fall wird ein Fehler gemeldet." #. type: cindex #: guix-git/doc/guix.texi:13370 #, no-wrap msgid "upstream, latest version" msgstr "Anbieter von Paketen (Upstream), neueste Version" #. type: item #: guix-git/doc/guix.texi:13371 #, no-wrap msgid "--with-latest=@var{package}" msgstr "--with-latest=@var{Paket}" #. type: itemx #: guix-git/doc/guix.texi:13372 #, no-wrap msgid "--with-version=@var{package}=@var{version}" msgstr "--with-version=@var{Paket}=@var{Version}" #. type: table #: guix-git/doc/guix.texi:13378 msgid "So you like living on the bleeding edge? The @option{--with-latest} option is for you! It replaces occurrences of @var{package} in the dependency graph with its latest upstream version, as reported by @command{guix refresh} (@pxref{Invoking guix refresh})." msgstr "Sie hätten gerne das Neueste vom Neuen? Dann ist die Befehlszeilenoption @option{--with-latest} das Richtige für Sie! Damit wird jedes Vorkommen von @var{Paket} im Abhängigkeitsgraphen durch dessen neueste angebotene Version ersetzt, wie sie auch von @command{guix refresh} gemeldet würde (siehe @ref{Invoking guix refresh})." #. type: table #: guix-git/doc/guix.texi:13382 msgid "It does so by determining the latest upstream release of @var{package} (if possible), downloading it, and authenticating it @emph{if} it comes with an OpenPGP signature." msgstr "Dazu wird die neueste angebotene Version des @var{Paket}s ermittelt (wenn möglich), heruntergeladen und, @emph{wenn} eine OpenPGP-Signatur mit dabei ist, es damit authentifiziert." #. type: table #: guix-git/doc/guix.texi:13385 msgid "As an example, the command below builds Guix against the latest version of Guile-JSON:" msgstr "Zum Beispiel wird durch folgenden Befehl Guix mit der neuesten Version von Guile-JSON erstellt:" #. type: example #: guix-git/doc/guix.texi:13388 #, no-wrap msgid "guix build guix --with-latest=guile-json\n" msgstr "guix build guix --with-latest=guile-json\n" #. type: table #: guix-git/doc/guix.texi:13395 msgid "The @option{--with-version} works similarly except that it lets you specify that you want precisely @var{version}, assuming that version exists upstream. For example, to spawn a development environment with SciPy built against version 1.22.4 of NumPy (skipping its test suite because hey, we're not gonna wait this long), you would run:" msgstr "Die Paketumwandlungsoption @option{--with-version} funktioniert ähnlich, nur können Sie damit genau festlegen, welche @var{Version} benutzt werden soll, sofern diese Version vom Anbieter heruntergeladen werden kann. Um zum Beispiel eine Entwicklungsumgebung zur Arbeit mit SciPy, erstellt für die NumPy-Version 1.22.4, herzustellen (wobei wir den Testkatalog davon überspringen, weil wir nicht warten wollen), lautet der Befehl:" #. type: example #: guix-git/doc/guix.texi:13398 #, no-wrap msgid "guix shell python python-scipy --with-version=python-numpy=1.22.4\n" msgstr "guix shell python python-scipy --with-version=python-numpy=1.22.4\n" #. type: quotation #: guix-git/doc/guix.texi:13405 msgid "Because they depend on source code published at a given point in time on upstream servers, deployments made with @option{--with-latest} and @option{--with-version} may be non-reproducible: source might disappear or be modified in place on the servers." msgstr "Hier wird aus dem beim Anbieter zu einer bestimmten Zeit veröffentlichten Quellcode eine Abhängigkeit. Deswegen ist mit @option{--with-latest} und @option{--with-version} bereitgestellte Software unter Umständen nicht reproduzierbar, weil der Quellcode auf Anbieter-Servern verschwindet oder für die gleiche Versionsnummer anderer Quellcode angeboten wird." #. type: quotation #: guix-git/doc/guix.texi:13408 msgid "To deploy old software versions without compromising on reproducibility, @pxref{Invoking guix time-machine, @command{guix time-machine}}." msgstr "Wenn Sie alte Software-Versionen auf reproduzierbare Weise nachbilden können wollen, siehe @ref{Invoking guix time-machine, @command{guix time-machine}}." #. type: table #: guix-git/doc/guix.texi:13417 msgid "There are limitations. First, in cases where the tool cannot or does not know how to authenticate source code, you are at risk of running malicious code; a warning is emitted in this case. Second, this option simply changes the source used in the existing package definitions, which is not always sufficient: there might be additional dependencies that need to be added, patches to apply, and more generally the quality assurance work that Guix developers normally do will be missing." msgstr "Es gibt jedoch Einschränkungen. Erstens gehen Sie in dem Fall, dass das Werkzeug nicht in der Lage ist oder nicht weiß, wie es den Quellcode authentifiziert, das Risiko ein, dass bösartiger Code ausgeführt wird; Ihnen wird dann eine Warnung angezeigt. Zweitens wird mit dieser Option einfach der Quellcode ausgetauscht und die übrige Paketdefinition bleibt erhalten. Manchmal reicht das nicht; es könnte sein, dass neue Abhängigkeiten hinzugefügt oder neue Patches angewandt werden müssen oder dass ganz allgemein Arbeiten zur Qualitätssicherung, die Guix-Entwickler normalerweise leisten, fehlen werden." #. type: table #: guix-git/doc/guix.texi:13422 msgid "You've been warned! When those limitations are acceptable, it's a snappy way to stay on top. We encourage you to submit patches updating the actual package definitions once you have successfully tested an upgrade with @option{--with-latest} (@pxref{Contributing})." msgstr "Sie sind gewarnt worden! Wenn die Einschränkungen unbedenklich sind, können Sie das Paket zackig auf den neuesten Stand bringen. Wir ermutigen Sie dazu, Patches einzureichen, die die eigentliche Paketdefinition aktualisieren, sobald Sie die neue Version mit der Befehlszeilenoption @option{--with-latest} erfolgreich getestet haben (siehe @ref{Contributing})." #. type: cindex #: guix-git/doc/guix.texi:13423 #, no-wrap msgid "test suite, skipping" msgstr "Testkatalog, überspringen" #. type: item #: guix-git/doc/guix.texi:13424 #, no-wrap msgid "--without-tests=@var{package}" msgstr "--without-tests=@var{Paket}" #. type: table #: guix-git/doc/guix.texi:13430 msgid "Build @var{package} without running its tests. This can be useful in situations where you want to skip the lengthy test suite of a intermediate package, or if a package's test suite fails in a non-deterministic fashion. It should be used with care because running the test suite is a good way to ensure a package is working as intended." msgstr "Das @var{Paket} erstellen, ohne seine Tests zu durchlaufen. Das erweist sich als nützlich, wenn Sie Testkataloge überspringen möchten, die viel Zeit in Anspruch nehmen, oder wenn der Testkatalog eines Pakets nichtdeterministisch fehlschlägt. Dies sollte mit Bedacht eingesetzt werden, denn das Ausführen des Testkatalogs sichert zu, dass ein Paket wie gewollt funktioniert." #. type: table #: guix-git/doc/guix.texi:13434 msgid "Turning off tests leads to a different store item. Consequently, when using this option, anything that depends on @var{package} must be rebuilt, as in this example:" msgstr "Wenn die Tests abgeschaltet werden, ergibt sich ein anderes Store-Objekt. Dadurch muss, wenn diese Option benutzt wird, auch alles, was vom Paket abhängt, neu erstellt werden, wie Sie in diesem Beispiel sehen können:" #. type: example #: guix-git/doc/guix.texi:13437 #, no-wrap msgid "guix install --without-tests=python python-notebook\n" msgstr "guix install --without-tests=python python-notebook\n" #. type: table #: guix-git/doc/guix.texi:13443 msgid "The command above installs @code{python-notebook} on top of @code{python} built without running its test suite. To do so, it also rebuilds everything that depends on @code{python}, including @code{python-notebook} itself." msgstr "Mit obigem Befehl wird @code{python-notebook} für ein @code{python} installiert, dessen Testkatalog nicht ausgeführt wurde. Dazu wird auch alles neu erstellt, was von @code{python} abhängt, einschließlich @code{python-notebook}." #. type: table #: guix-git/doc/guix.texi:13449 msgid "Internally, @option{--without-tests} relies on changing the @code{#:tests?} option of a package's @code{check} phase (@pxref{Build Systems}). Note that some packages use a customized @code{check} phase that does not respect a @code{#:tests? #f} setting. Therefore, @option{--without-tests} has no effect on these packages." msgstr "Intern funktioniert @option{--without-tests}, indem es die Option @code{#:tests?} der @code{check}-Phase eines Pakets abändert (siehe @ref{Build Systems}). Beachten Sie, dass manche Pakete eine angepasste @code{check}-Phase benutzen, die eine Einstellung wie @code{#:tests? #f} nicht berücksichtigt. Deshalb wirkt sich @option{--without-tests} auf diese Pakete nicht aus." #. type: Plain text #: guix-git/doc/guix.texi:13456 msgid "Wondering how to achieve the same effect using Scheme code, for example in your manifest, or how to write your own package transformation? @xref{Defining Package Variants}, for an overview of the programming interfaces available." msgstr "Sie fragen sich sicher, wie Sie dieselbe Wirkung mit Scheme-Code erzielen können, zum Beispiel wenn Sie Ihr Manifest oder eine eigene Paketumwandlung schreiben? Siehe @ref{Defining Package Variants} für eine Übersicht über verfügbare Programmierschnittstellen." #. type: Plain text #: guix-git/doc/guix.texi:13462 msgid "The command-line options presented below are specific to @command{guix build}." msgstr "Die unten aufgeführten Befehlszeilenoptionen funktionieren nur mit @command{guix build}." #. type: item #: guix-git/doc/guix.texi:13465 #, no-wrap msgid "--quiet" msgstr "--quiet" #. type: table #: guix-git/doc/guix.texi:13470 msgid "Build quietly, without displaying the build log; this is equivalent to @option{--verbosity=0}. Upon completion, the build log is kept in @file{/var} (or similar) and can always be retrieved using the @option{--log-file} option." msgstr "Schweigend erstellen, ohne das Erstellungsprotokoll anzuzeigen@tie{}– dies ist äquivalent zu @option{--verbosity=0}. Nach Abschluss der Erstellung ist das Protokoll in @file{/var} (oder einem entsprechenden Ort) einsehbar und kann jederzeit mit der Befehlszeilenoption @option{--log-file} gefunden werden." #. type: table #: guix-git/doc/guix.texi:13475 msgid "Build the package, derivation, or other file-like object that the code within @var{file} evaluates to (@pxref{G-Expressions, file-like objects})." msgstr "Das Paket, die Ableitung oder das dateiähnliche Objekt erstellen, zu dem der Code in der @var{Datei} ausgewertet wird (siehe @ref{G-Expressions, dateiartige Objekte})." #. type: table #: guix-git/doc/guix.texi:13478 msgid "As an example, @var{file} might contain a package definition like this (@pxref{Defining Packages}):" msgstr "Zum Beispiel könnte in der @var{Datei} so eine Paketdefinition stehen (siehe @ref{Defining Packages}):" #. type: table #: guix-git/doc/guix.texi:13487 msgid "The @var{file} may also contain a JSON representation of one or more package definitions. Running @code{guix build -f} on @file{hello.json} with the following contents would result in building the packages @code{myhello} and @code{greeter}:" msgstr "Die @var{Datei} darf auch eine JSON-Darstellung von einer oder mehreren Paketdefinitionen sein. Wenn wir @code{guix build -f} auf einer @file{hello.json}-Datei mit dem folgenden Inhalt ausführen würden, würden die Pakete @code{myhello} und @code{greeter} erstellt werden:" #. type: item #: guix-git/doc/guix.texi:13492 #, no-wrap msgid "--manifest=@var{manifest}" msgstr "--manifest=@var{Manifest}" #. type: itemx #: guix-git/doc/guix.texi:13493 #, no-wrap msgid "-m @var{manifest}" msgstr "-m @var{Manifest}" #. type: table #: guix-git/doc/guix.texi:13496 msgid "Build all packages listed in the given @var{manifest} (@pxref{profile-manifest, @option{--manifest}})." msgstr "Alle Pakete erstellen, die im angegebenen @var{Manifest} stehen (siehe @ref{profile-manifest, @option{--manifest}})." #. type: table #: guix-git/doc/guix.texi:13500 msgid "Build the package or derivation @var{expr} evaluates to." msgstr "Das Paket oder die Ableitung erstellen, zu der der @var{Ausdruck} ausgewertet wird." #. type: table #: guix-git/doc/guix.texi:13504 msgid "For example, @var{expr} may be @code{(@@ (gnu packages guile) guile-1.8)}, which unambiguously designates this specific variant of version 1.8 of Guile." msgstr "Zum Beispiel kann der @var{Ausdruck} @code{(@@ (gnu packages guile) guile-1.8)} sein, was diese bestimmte Variante der Version 1.8 von Guile eindeutig bezeichnet." #. type: table #: guix-git/doc/guix.texi:13508 msgid "Alternatively, @var{expr} may be a G-expression, in which case it is used as a build program passed to @code{gexp->derivation} (@pxref{G-Expressions})." msgstr "Alternativ kann der @var{Ausdruck} ein G-Ausdruck sein. In diesem Fall wird er als Erstellungsprogramm an @code{gexp->derivation} übergeben (siehe @ref{G-Expressions})." #. type: table #: guix-git/doc/guix.texi:13512 msgid "Lastly, @var{expr} may refer to a zero-argument monadic procedure (@pxref{The Store Monad}). The procedure must return a derivation as a monadic value, which is then passed through @code{run-with-store}." msgstr "Zudem kann der @var{Ausdruck} eine monadische Prozedur mit null Argumenten bezeichnen (siehe @ref{The Store Monad}). Die Prozedur muss eine Ableitung als monadischen Wert zurückliefern, die dann durch @code{run-with-store} laufen gelassen wird." #. type: item #: guix-git/doc/guix.texi:13513 #, no-wrap msgid "--source" msgstr "--source" #. type: itemx #: guix-git/doc/guix.texi:13514 #, no-wrap msgid "-S" msgstr "-S" #. type: table #: guix-git/doc/guix.texi:13517 msgid "Build the source derivations of the packages, rather than the packages themselves." msgstr "Die Quellcode-Ableitung der Pakete statt die Pakete selbst erstellen." #. type: table #: guix-git/doc/guix.texi:13521 msgid "For instance, @code{guix build -S gcc} returns something like @file{/gnu/store/@dots{}-gcc-4.7.2.tar.bz2}, which is the GCC source tarball." msgstr "Zum Beispiel liefert @code{guix build -S gcc} etwas in der Art von @file{/gnu/store/…-gcc-4.7.2.tar.bz2}, also den Tarball mit dem GCC-Quellcode." #. type: table #: guix-git/doc/guix.texi:13525 msgid "The returned source tarball is the result of applying any patches and code snippets specified in the package @code{origin} (@pxref{Defining Packages})." msgstr "Der gelieferte Quell-Tarball ist das Ergebnis davon, alle Patches und Code-Schnipsel aufzuspielen, die im @code{origin}-Objekt des Pakets festgelegt wurden (siehe @ref{Defining Packages})." #. type: cindex #: guix-git/doc/guix.texi:13526 #, no-wrap msgid "source, verification" msgstr "Quellcode, überprüfen" #. type: table #: guix-git/doc/guix.texi:13532 msgid "As with other derivations, the result of building a source derivation can be verified using the @option{--check} option (@pxref{build-check}). This is useful to validate that a (potentially already built or substituted, thus cached) package source matches against its declared hash." msgstr "Wie andere Arten von Ableitung kann auch das Ergebnis einer Quellcode-Ableitung mit der Befehlszeilenoption @option{--check} geprüft werden (siehe @ref{build-check}). Das ist nützlich, um zu überprüfen, ob ein (vielleicht bereits erstellter oder substituierter, also zwischengespeicherter) Paketquellcode zu ihrer deklarierten Hash-Prüfsumme passt." #. type: table #: guix-git/doc/guix.texi:13537 msgid "Note that @command{guix build -S} compiles the sources only of the specified packages. They do not include the sources of statically linked dependencies and by themselves are insufficient for reproducing the packages." msgstr "Beachten Sie, dass @command{guix build -S} nur für die angegebenen Pakete den Quellcode herunterlädt. Dazu gehört @emph{nicht} der Quellcode statisch gebundener Abhängigkeiten und der Quellcode alleine reicht nicht aus, um die Pakete zu reproduzieren." #. type: item #: guix-git/doc/guix.texi:13538 #, no-wrap msgid "--sources" msgstr "--sources" #. type: table #: guix-git/doc/guix.texi:13545 msgid "Fetch and return the source of @var{package-or-derivation} and all their dependencies, recursively. This is a handy way to obtain a local copy of all the source code needed to build @var{packages}, allowing you to eventually build them even without network access. It is an extension of the @option{--source} option and can accept one of the following optional argument values:" msgstr "Den Quellcode für @var{Paket-oder-Ableitung} und alle Abhängigkeiten davon rekursiv herunterladen und zurückliefern. Dies ist eine praktische Methode, eine lokale Kopie des gesamten Quellcodes zu beziehen, der nötig ist, um die Pakete zu erstellen, damit Sie diese später auch ohne Netzwerkzugang erstellen lassen können. Es handelt sich um eine Erweiterung der Befehlszeilenoption @option{--source}, die jeden der folgenden Argumentwerte akzeptiert:" #. type: item #: guix-git/doc/guix.texi:13547 guix-git/doc/guix.texi:15701 #, no-wrap msgid "package" msgstr "package" #. type: table #: guix-git/doc/guix.texi:13550 msgid "This value causes the @option{--sources} option to behave in the same way as the @option{--source} option." msgstr "Mit diesem Wert verhält sich die Befehlszeilenoption @option{--sources} auf genau die gleiche Weise wie die Befehlszeilenoption @option{--source}." #. type: item #: guix-git/doc/guix.texi:13551 guix-git/doc/guix.texi:23889 #, no-wrap msgid "all" msgstr "all" #. type: table #: guix-git/doc/guix.texi:13554 msgid "Build the source derivations of all packages, including any source that might be listed as @code{inputs}. This is the default value." msgstr "Erstellt die Quellcode-Ableitungen aller Pakete einschließlich allen Quellcodes, der als Teil der Eingaben im @code{inputs}-Feld aufgelistet ist. Dies ist der vorgegebene Wert, wenn sonst keiner angegeben wird." #. type: example #: guix-git/doc/guix.texi:13560 #, no-wrap msgid "" "$ guix build --sources tzdata\n" "The following derivations will be built:\n" " /gnu/store/@dots{}-tzdata2015b.tar.gz.drv\n" " /gnu/store/@dots{}-tzcode2015b.tar.gz.drv\n" msgstr "" "$ guix build --sources tzdata\n" "Folgende Ableitungen werden erstellt:\n" " /gnu/store/…-tzdata2015b.tar.gz.drv\n" " /gnu/store/…-tzcode2015b.tar.gz.drv\n" #. type: item #: guix-git/doc/guix.texi:13562 #, no-wrap msgid "transitive" msgstr "transitive" #. type: table #: guix-git/doc/guix.texi:13566 msgid "Build the source derivations of all packages, as well of all transitive inputs to the packages. This can be used e.g.@: to prefetch package source for later offline building." msgstr "Die Quellcode-Ableitungen aller Pakete sowie aller transitiven Eingaben der Pakete erstellen. Damit kann z.B.@: Paket-Quellcode vorab heruntergeladen und später offline erstellt werden." #. type: example #: guix-git/doc/guix.texi:13577 #, no-wrap msgid "" "$ guix build --sources=transitive tzdata\n" "The following derivations will be built:\n" " /gnu/store/@dots{}-tzcode2015b.tar.gz.drv\n" " /gnu/store/@dots{}-findutils-4.4.2.tar.xz.drv\n" " /gnu/store/@dots{}-grep-2.21.tar.xz.drv\n" " /gnu/store/@dots{}-coreutils-8.23.tar.xz.drv\n" " /gnu/store/@dots{}-make-4.1.tar.xz.drv\n" " /gnu/store/@dots{}-bash-4.3.tar.xz.drv\n" "@dots{}\n" msgstr "" "$ guix build --sources=transitive tzdata\n" "Folgende Ableitungen werden erstellt:\n" " /gnu/store/…-tzcode2015b.tar.gz.drv\n" " /gnu/store/…-findutils-4.4.2.tar.xz.drv\n" " /gnu/store/…-grep-2.21.tar.xz.drv\n" " /gnu/store/…-coreutils-8.23.tar.xz.drv\n" " /gnu/store/…-make-4.1.tar.xz.drv\n" " /gnu/store/…-bash-4.3.tar.xz.drv\n" "…\n" #. type: table #: guix-git/doc/guix.texi:13587 msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the system type of the build host. The @command{guix build} command allows you to repeat this option several times, in which case it builds for all the specified systems; other commands ignore extraneous @option{-s} options." msgstr "Versuchen, für das angegebene @var{System}@tie{}– z.B.@: @code{i686-linux}@tie{}– statt für denselben Systemtyp wie auf dem Wirtssystem zu erstellen. Beim Befehl @command{guix build} können Sie diese Befehlszeilenoption mehrmals wiederholen, wodurch für jedes angegebene System eine Erstellung durchgeführt wird; andere Befehle ignorieren überzählige @option{-s}-Befehlszeilenoptionen." #. type: quotation #: guix-git/doc/guix.texi:13592 msgid "The @option{--system} flag is for @emph{native} compilation and must not be confused with cross-compilation. See @option{--target} below for information on cross-compilation." msgstr "Die Befehlszeilenoption @option{--system} dient der @emph{nativen} Kompilierung (nicht zu verwechseln mit Cross-Kompilierung). Siehe @option{--target} unten für Informationen zur Cross-Kompilierung." #. type: table #: guix-git/doc/guix.texi:13599 msgid "An example use of this is on Linux-based systems, which can emulate different personalities. For instance, passing @option{--system=i686-linux} on an @code{x86_64-linux} system or @option{--system=armhf-linux} on an @code{aarch64-linux} system allows you to build packages in a complete 32-bit environment." msgstr "Ein Beispiel sind Linux-basierte Systeme, die verschiedene Persönlichkeiten emulieren können. Zum Beispiel können Sie @option{--system=i686-linux} auf einem @code{x86_64-linux}-System oder @option{--system=armhf-linux} auf einem @code{aarch64-linux}-System angeben, um Pakete in einer vollständigen 32-Bit-Umgebung zu erstellen." #. type: quotation #: guix-git/doc/guix.texi:13604 msgid "Building for an @code{armhf-linux} system is unconditionally enabled on @code{aarch64-linux} machines, although certain aarch64 chipsets do not allow for this functionality, notably the ThunderX." msgstr "Das Erstellen für ein @code{armhf-linux}-System ist ungeprüft auf allen @code{aarch64-linux}-Maschinen aktiviert, obwohl bestimmte aarch64-Chipsätze diese Funktionalität nicht unterstützen, darunter auch ThunderX." #. type: table #: guix-git/doc/guix.texi:13610 msgid "Similarly, when transparent emulation with QEMU and @code{binfmt_misc} is enabled (@pxref{Virtualization Services, @code{qemu-binfmt-service-type}}), you can build for any system for which a QEMU @code{binfmt_misc} handler is installed." msgstr "Ebenso können Sie, wenn transparente Emulation mit QEMU und @code{binfmt_misc} aktiviert sind (siehe @ref{Virtualization Services, @code{qemu-binfmt-service-type}}), für jedes System Erstellungen durchführen, für das ein QEMU-@code{binfmt_misc}-Handler installiert ist." #. type: table #: guix-git/doc/guix.texi:13614 msgid "Builds for a system other than that of the machine you are using can also be offloaded to a remote machine of the right architecture. @xref{Daemon Offload Setup}, for more information on offloading." msgstr "Erstellungen für ein anderes System, das nicht dem System der Maschine, die Sie benutzen, entspricht, können auch auf eine entfernte Maschine mit der richtigen Architektur ausgelagert werden. Siehe @ref{Daemon Offload Setup} für mehr Informationen über das Auslagern." #. type: table #: guix-git/doc/guix.texi:13620 msgid "Cross-build for @var{triplet}, which must be a valid GNU triplet, such as @code{\"aarch64-linux-gnu\"} (@pxref{Specifying Target Triplets, GNU configuration triplets,, autoconf, Autoconf})." msgstr "Lässt für das angegebene @var{Tripel} cross-erstellen. Dieses muss ein gültiges GNU-Tripel wie z.B.@: @code{\"aarch64-linux-gnu\"} sein (siehe @ref{Specifying Target Triplets, GNU-Konfigurationstripel,, autoconf, Autoconf})." #. type: item #: guix-git/doc/guix.texi:13621 #, no-wrap msgid "--list-systems" msgstr "--list-systems" #. type: table #: guix-git/doc/guix.texi:13624 msgid "List all the supported systems, that can be passed as an argument to @option{--system}." msgstr "Listet alle unterstützten Systeme auf, die als Argument an @option{--system} gegeben werden können." #. type: item #: guix-git/doc/guix.texi:13625 #, no-wrap msgid "--list-targets" msgstr "--list-targets" #. type: table #: guix-git/doc/guix.texi:13628 msgid "List all the supported targets, that can be passed as an argument to @option{--target}." msgstr "Listet alle unterstützten Ziele auf, die als Argument an @option{--target} gegeben werden können." #. type: anchor{#1} #: guix-git/doc/guix.texi:13630 msgid "build-check" msgstr "build-check" #. type: cindex #: guix-git/doc/guix.texi:13631 #, no-wrap msgid "determinism, checking" msgstr "Determinismus, Überprüfung" #. type: cindex #: guix-git/doc/guix.texi:13632 #, no-wrap msgid "reproducibility, checking" msgstr "Reproduzierbarkeit, Überprüfung" #. type: table #: guix-git/doc/guix.texi:13636 msgid "Rebuild @var{package-or-derivation}, which are already available in the store, and raise an error if the build results are not bit-for-bit identical." msgstr "@var{Paket-oder-Ableitung} erneut erstellen, wenn diese bereits im Store verfügbar ist, und einen Fehler melden, wenn die Erstellungsergebnisse nicht Bit für Bit identisch sind." #. type: table #: guix-git/doc/guix.texi:13641 msgid "This mechanism allows you to check whether previously installed substitutes are genuine (@pxref{Substitutes}), or whether the build result of a package is deterministic. @xref{Invoking guix challenge}, for more background information and tools." msgstr "Mit diesem Mechanismus können Sie überprüfen, ob zuvor installierte Substitute unverfälscht sind (siehe @ref{Substitutes}) oder auch ob das Erstellungsergebnis eines Pakets deterministisch ist. Siehe @ref{Invoking guix challenge} für mehr Hintergrundinformationen und Werkzeuge." #. type: item #: guix-git/doc/guix.texi:13646 #, no-wrap msgid "--repair" msgstr "--repair" #. type: cindex #: guix-git/doc/guix.texi:13647 #, no-wrap msgid "repairing store items" msgstr "Reparieren von Store-Objekten" #. type: table #: guix-git/doc/guix.texi:13651 msgid "Attempt to repair the specified store items, if they are corrupt, by re-downloading or rebuilding them." msgstr "Versuchen, die angegebenen Store-Objekte zu reparieren, wenn sie beschädigt sind, indem sie neu heruntergeladen oder neu erstellt werden." #. type: table #: guix-git/doc/guix.texi:13653 msgid "This operation is not atomic and thus restricted to @code{root}." msgstr "Diese Operation ist nicht atomar und nur der Administratornutzer @code{root} kann sie verwenden." #. type: item #: guix-git/doc/guix.texi:13654 #, no-wrap msgid "--derivations" msgstr "--derivations" #. type: table #: guix-git/doc/guix.texi:13658 msgid "Return the derivation paths, not the output paths, of the given packages." msgstr "Liefert die Ableitungspfade und @emph{nicht} die Ausgabepfade für die angegebenen Pakete." #. type: cindex #: guix-git/doc/guix.texi:13661 #, no-wrap msgid "GC roots, adding" msgstr "GC-Wurzeln, Hinzufügen" #. type: cindex #: guix-git/doc/guix.texi:13662 #, no-wrap msgid "garbage collector roots, adding" msgstr "Müllsammlerwurzeln, Hinzufügen" #. type: table #: guix-git/doc/guix.texi:13665 guix-git/doc/guix.texi:43099 msgid "Make @var{file} a symlink to the result, and register it as a garbage collector root." msgstr "Die @var{Datei} zu einer symbolischen Verknüpfung auf das Ergebnis machen und als Müllsammlerwurzel registrieren." #. type: table #: guix-git/doc/guix.texi:13671 msgid "Consequently, the results of this @command{guix build} invocation are protected from garbage collection until @var{file} is removed. When that option is omitted, build results are eligible for garbage collection as soon as the build completes. @xref{Invoking guix gc}, for more on GC roots." msgstr "Dadurch wird das Ergebnis dieses Aufrufs von @command{guix build} vor dem Müllsammler geschützt, bis die @var{Datei} gelöscht wird. Wird diese Befehlszeilenoption @emph{nicht} angegeben, können Erstellungsergebnisse vom Müllsammler geholt werden, sobald die Erstellung abgeschlossen ist. Siehe @ref{Invoking guix gc} für mehr Informationen zu Müllsammlerwurzeln." #. type: item #: guix-git/doc/guix.texi:13672 #, no-wrap msgid "--log-file" msgstr "--log-file" #. type: cindex #: guix-git/doc/guix.texi:13673 #, no-wrap msgid "build logs, access" msgstr "Erstellungsprotokolle, Zugriff" #. type: table #: guix-git/doc/guix.texi:13677 msgid "Return the build log file names or URLs for the given @var{package-or-derivation}, or raise an error if build logs are missing." msgstr "Liefert die Dateinamen oder URLs der Erstellungsprotokolle für das angegebene @var{Paket-oder-Ableitung} oder meldet einen Fehler, falls Protokolldateien fehlen." #. type: table #: guix-git/doc/guix.texi:13680 msgid "This works regardless of how packages or derivations are specified. For instance, the following invocations are equivalent:" msgstr "Dies funktioniert, egal wie die Pakete oder Ableitungen angegeben werden. Zum Beispiel sind folgende Aufrufe alle äquivalent:" #. type: example #: guix-git/doc/guix.texi:13686 #, no-wrap msgid "" "guix build --log-file $(guix build -d guile)\n" "guix build --log-file $(guix build guile)\n" "guix build --log-file guile\n" "guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)'\n" msgstr "" "guix build --log-file $(guix build -d guile)\n" "guix build --log-file $(guix build guile)\n" "guix build --log-file guile\n" "guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)'\n" #. type: table #: guix-git/doc/guix.texi:13691 msgid "If a log is unavailable locally, and unless @option{--no-substitutes} is passed, the command looks for a corresponding log on one of the substitute servers (as specified with @option{--substitute-urls})." msgstr "Wenn ein Protokoll lokal nicht verfügbar ist und sofern @option{--no-substitutes} nicht übergeben wurde, sucht der Befehl nach einem entsprechenden Protokoll auf einem der Substitutserver (die mit @option{--substitute-urls} angegeben werden können)." #. type: table #: guix-git/doc/guix.texi:13694 msgid "So for instance, imagine you want to see the build log of GDB on @code{aarch64}, but you are actually on an @code{x86_64} machine:" msgstr "Stellen Sie sich zum Beispiel vor, sie wollten das Erstellungsprotokoll von GDB auf einem @code{aarch64}-System sehen, benutzen aber selbst eine @code{x86_64}-Maschine:" #. type: example #: guix-git/doc/guix.texi:13698 #, no-wrap msgid "" "$ guix build --log-file gdb -s aarch64-linux\n" "https://@value{SUBSTITUTE-SERVER-1}/log/@dots{}-gdb-7.10\n" msgstr "" "$ guix build --log-file gdb -s aarch64-linux\n" "https://@value{SUBSTITUTE-SERVER-1}/log/…-gdb-7.10\n" #. type: table #: guix-git/doc/guix.texi:13701 msgid "You can freely access a huge library of build logs!" msgstr "So haben Sie umsonst Zugriff auf eine riesige Bibliothek von Erstellungsprotokollen!" #. type: cindex #: guix-git/doc/guix.texi:13706 #, no-wrap msgid "build failures, debugging" msgstr "Erstellungsfehler, Fehlersuche" #. type: Plain text #: guix-git/doc/guix.texi:13712 msgid "When defining a new package (@pxref{Defining Packages}), you will probably find yourself spending some time debugging and tweaking the build until it succeeds. To do that, you need to operate the build commands yourself in an environment as close as possible to the one the build daemon uses." msgstr "Wenn Sie ein neues Paket definieren (siehe @ref{Defining Packages}), werden Sie sich vermutlich einige Zeit mit der Fehlersuche beschäftigen und die Erstellung so lange anpassen, bis sie funktioniert. Dazu müssen Sie die Erstellungsbefehle selbst in einer Umgebung benutzen, die der, die der Erstellungsdaemon aufbaut, so ähnlich wie möglich ist." #. type: Plain text #: guix-git/doc/guix.texi:13717 msgid "To that end, the first thing to do is to use the @option{--keep-failed} or @option{-K} option of @command{guix build}, which will keep the failed build tree in @file{/tmp} or whatever directory you specified as @env{TMPDIR} (@pxref{Common Build Options, @option{--keep-failed}})." msgstr "Das Erste, was Sie dafür tun müssen, ist die Befehlszeilenoption @option{--keep-failed} oder @option{-K} von @command{guix build} einzusetzen, wodurch Verzeichnisbäume fehlgeschlagener Erstellungen in @file{/tmp} oder dem von Ihnen als @env{TMPDIR} ausgewiesenen Verzeichnis erhalten und nicht gelöscht werden (siehe @ref{Common Build Options, @option{--keep-failed}})." #. type: Plain text #: guix-git/doc/guix.texi:13723 msgid "From there on, you can @command{cd} to the failed build tree and source the @file{environment-variables} file, which contains all the environment variable definitions that were in place when the build failed. So let's say you're debugging a build failure in package @code{foo}; a typical session would look like this:" msgstr "Im Anschluss können Sie mit @command{cd} in die Verzeichnisse dieses fehlgeschlagenen Erstellungsbaums wechseln und mit @command{source} dessen @file{environment-variables}-Datei laden, die alle Umgebungsvariablendefinitionen enthält, die zum Zeitpunkt des Fehlschlags der Erstellung galten. Sagen wir, Sie suchen Fehler in einem Paket @code{foo}, dann würde eine typische Sitzung so aussehen:" #. type: example #: guix-git/doc/guix.texi:13730 #, no-wrap msgid "" "$ guix build foo -K\n" "@dots{} @i{build fails}\n" "$ cd /tmp/guix-build-foo.drv-0\n" "$ source ./environment-variables\n" "$ cd foo-1.2\n" msgstr "" "$ guix build foo -K\n" "…@: @i{Erstellung schlägt fehl}\n" "$ cd /tmp/guix-build-foo.drv-0\n" "$ source ./environment-variables\n" "$ cd foo-1.2\n" #. type: Plain text #: guix-git/doc/guix.texi:13734 msgid "Now, you can invoke commands as if you were the daemon (almost) and troubleshoot your build process." msgstr "Nun können Sie Befehle (fast) so aufrufen, als wären Sie der Daemon, und Fehlerursachen in Ihrem Erstellungsprozess ermitteln." #. type: Plain text #: guix-git/doc/guix.texi:13740 msgid "Sometimes it happens that, for example, a package's tests pass when you run them manually but they fail when the daemon runs them. This can happen because the daemon runs builds in containers where, unlike in our environment above, network access is missing, @file{/bin/sh} does not exist, etc. (@pxref{Build Environment Setup})." msgstr "Manchmal passiert es, dass zum Beispiel die Tests eines Pakets erfolgreich sind, wenn Sie sie manuell aufrufen, aber scheitern, wenn der Daemon sie ausführt. Das kann passieren, weil der Daemon Erstellungen in isolierten Umgebungen („Containern“) durchführt, wo, anders als in der obigen Umgebung, kein Netzwerkzugang möglich ist, @file{/bin/sh} nicht exisiert usw.@: (siehe @ref{Build Environment Setup})." #. type: Plain text #: guix-git/doc/guix.texi:13743 msgid "In such cases, you may need to inspect the build process from within a container similar to the one the build daemon creates:" msgstr "In solchen Fällen müssen Sie den Erstellungsprozess womöglich aus einer zu der des Daemons ähnlichen isolierten Umgebung heraus ausprobieren:" #. type: example #: guix-git/doc/guix.texi:13751 #, no-wrap msgid "" "$ guix build -K foo\n" "@dots{}\n" "$ cd /tmp/guix-build-foo.drv-0\n" "$ guix shell --no-grafts -C -D foo strace gdb\n" "[env]# source ./environment-variables\n" "[env]# cd foo-1.2\n" msgstr "" "$ guix build -K foo\n" "…\n" "$ cd /tmp/guix-build-foo.drv-0\n" "$ guix shell --no-grafts -C -D foo strace gdb\n" "[env]# source ./environment-variables\n" "[env]# cd foo-1.2\n" #. type: Plain text #: guix-git/doc/guix.texi:13760 msgid "Here, @command{guix shell -C} creates a container and spawns a new shell in it (@pxref{Invoking guix shell}). The @command{strace gdb} part adds the @command{strace} and @command{gdb} commands to the container, which you may find handy while debugging. The @option{--no-grafts} option makes sure we get the exact same environment, with ungrafted packages (@pxref{Security Updates}, for more info on grafts)." msgstr "Hierbei erzeugt @command{guix shell -C} eine isolierte Umgebung und öffnet darin eine Shell (siehe @ref{Invoking guix shell}). Der Teil mit @command{strace gdb} fügt die Befehle @command{strace} und @command{gdb} zur isolierten Umgebung hinzu, die Sie gut gebrauchen können, während Sie Fehler suchen. Wegen der Befehlszeilenoption @option{--no-grafts} bekommen Sie haargenau dieselbe Umgebung ohne veredelte Pakete (siehe @ref{Security Updates} für mehr Informationen zu Veredelungen)." #. type: Plain text #: guix-git/doc/guix.texi:13763 msgid "To get closer to a container like that used by the build daemon, we can remove @file{/bin/sh}:" msgstr "Um der isolierten Umgebung des Erstellungsdaemons noch näher zu kommen, können wir @file{/bin/sh} entfernen:" #. type: example #: guix-git/doc/guix.texi:13766 #, no-wrap msgid "[env]# rm /bin/sh\n" msgstr "[env]# rm /bin/sh\n" #. type: Plain text #: guix-git/doc/guix.texi:13770 msgid "(Don't worry, this is harmless: this is all happening in the throw-away container created by @command{guix shell}.)" msgstr "(Keine Sorge, das ist harmlos: All dies passiert nur in der zuvor von @command{guix shell} erzeugten Wegwerf-Umgebung.)" #. type: Plain text #: guix-git/doc/guix.texi:13773 msgid "The @command{strace} command is probably not in the search path, but we can run:" msgstr "Der Befehl @command{strace} befindet sich wahrscheinlich nicht in Ihrem Suchpfad, aber wir können ihn so benutzen:" #. type: example #: guix-git/doc/guix.texi:13776 #, no-wrap msgid "[env]# $GUIX_ENVIRONMENT/bin/strace -f -o log make check\n" msgstr "[env]# $GUIX_ENVIRONMENT/bin/strace -f -o log make check\n" #. type: Plain text #: guix-git/doc/guix.texi:13781 msgid "In this way, not only you will have reproduced the environment variables the daemon uses, you will also be running the build process in a container similar to the one the daemon uses." msgstr "Auf diese Weise haben Sie nicht nur die Umgebungsvariablen, die der Daemon benutzt, nachgebildet, sondern lassen auch den Erstellungsprozess in einer isolierten Umgebung ähnlich der des Daemons laufen." #. type: section #: guix-git/doc/guix.texi:13784 #, no-wrap msgid "Invoking @command{guix edit}" msgstr "@command{guix edit} aufrufen" #. type: command{#1} #: guix-git/doc/guix.texi:13786 #, no-wrap msgid "guix edit" msgstr "guix edit" #. type: cindex #: guix-git/doc/guix.texi:13787 #, no-wrap msgid "package definition, editing" msgstr "Paketdefinition, Bearbeiten" #. type: Plain text #: guix-git/doc/guix.texi:13792 msgid "So many packages, so many source files! The @command{guix edit} command facilitates the life of users and packagers by pointing their editor at the source file containing the definition of the specified packages. For instance:" msgstr "So viele Pakete, so viele Quelldateien! Der Befehl @command{guix edit} erleichtert das Leben von sowohl Nutzern als auch Paketentwicklern, indem er Ihren Editor anweist, die Quelldatei mit der Definition des jeweiligen Pakets zu bearbeiten. Zum Beispiel startet dies:" #. type: example #: guix-git/doc/guix.texi:13795 #, no-wrap msgid "guix edit gcc@@4.9 vim\n" msgstr "guix edit gcc@@4.9 vim\n" #. type: Plain text #: guix-git/doc/guix.texi:13801 msgid "launches the program specified in the @env{VISUAL} or in the @env{EDITOR} environment variable to view the recipe of GCC@tie{}4.9.3 and that of Vim." msgstr "das mit der Umgebungsvariablen @env{VISUAL} oder @env{EDITOR} angegebene Programm und lässt es das Rezept von GCC@tie{}4.9.3 und von Vim anzeigen." #. type: Plain text #: guix-git/doc/guix.texi:13807 msgid "If you are using a Guix Git checkout (@pxref{Building from Git}), or have created your own packages on @env{GUIX_PACKAGE_PATH} (@pxref{Package Modules}), you will be able to edit the package recipes. In other cases, you will be able to examine the read-only recipes for packages currently in the store." msgstr "Wenn Sie ein Git-Checkout von Guix benutzen (siehe @ref{Building from Git}) oder Ihre eigenen Pakete im @env{GUIX_PACKAGE_PATH} erstellt haben (siehe @ref{Package Modules}), werden Sie damit die Paketrezepte auch bearbeiten können. Andernfalls werden Sie zumindest in die Lage versetzt, die nur lesbaren Rezepte für sich im Moment im Store befindliche Pakete zu untersuchen." #. type: Plain text #: guix-git/doc/guix.texi:13812 msgid "Instead of @env{GUIX_PACKAGE_PATH}, the command-line option @option{--load-path=@var{directory}} (or in short @option{-L @var{directory}}) allows you to add @var{directory} to the front of the package module search path and so make your own packages visible." msgstr "Statt @env{GUIX_PACKAGE_PATH} zu benutzen, können Sie mit der Befehlszeilenoption @option{--load-path=@var{Verzeichnis}} (oder kurz @option{-L @var{Verzeichnis}}) das @var{Verzeichnis} vorne an den Paketmodul-Suchpfad anhängen und so Ihre eigenen Pakete sichtbar machen." #. type: section #: guix-git/doc/guix.texi:13814 #, no-wrap msgid "Invoking @command{guix download}" msgstr "@command{guix download} aufrufen" #. type: command{#1} #: guix-git/doc/guix.texi:13816 #, no-wrap msgid "guix download" msgstr "guix download" #. type: cindex #: guix-git/doc/guix.texi:13817 #, no-wrap msgid "downloading package sources" msgstr "Paketquellcode herunterladen" #. type: Plain text #: guix-git/doc/guix.texi:13824 msgid "When writing a package definition, developers typically need to download a source tarball, compute its SHA256 hash, and write that hash in the package definition (@pxref{Defining Packages}). The @command{guix download} tool helps with this task: it downloads a file from the given URI, adds it to the store, and prints both its file name in the store and its SHA256 hash." msgstr "Wenn Entwickler einer Paketdefinition selbige schreiben, müssen diese normalerweise einen Quellcode-Tarball herunterladen, seinen SHA256-Hash als Prüfsumme berechnen und diese in der Paketdefinition eintragen (siehe @ref{Defining Packages}). Das Werkzeug @command{guix download} hilft bei dieser Aufgabe: Damit wird eine Datei von der angegebenen URI heruntergeladen, in den Store eingelagert und sowohl ihr Dateiname im Store als auch ihr SHA256-Hash als Prüfsumme angezeigt." #. type: Plain text #: guix-git/doc/guix.texi:13831 msgid "The fact that the downloaded file is added to the store saves bandwidth: when the developer eventually tries to build the newly defined package with @command{guix build}, the source tarball will not have to be downloaded again because it is already in the store. It is also a convenient way to temporarily stash files, which may be deleted eventually (@pxref{Invoking guix gc})." msgstr "Dadurch, dass die heruntergeladene Datei in den Store eingefügt wird, wird Bandbreite gespart: Wenn der Entwickler schließlich versucht, das neu definierte Paket mit @command{guix build} zu erstellen, muss der Quell-Tarball nicht erneut heruntergeladen werden, weil er sich bereits im Store befindet. Es ist auch eine bequeme Methode, Dateien temporär aufzubewahren, die letztlich irgendwann gelöscht werden (siehe @ref{Invoking guix gc})." #. type: Plain text #: guix-git/doc/guix.texi:13839 msgid "The @command{guix download} command supports the same URIs as used in package definitions. In particular, it supports @code{mirror://} URIs. @code{https} URIs (HTTP over TLS) are supported @emph{provided} the Guile bindings for GnuTLS are available in the user's environment; when they are not available, an error is raised. @xref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile}, for more information." msgstr "Der Befehl @command{guix download} unterstützt dieselben URIs, die in Paketdefinitionen verwendet werden. Insbesondere unterstützt er @code{mirror://}-URIs. @code{https}-URIs (HTTP über TLS) werden unterstützt, @emph{vorausgesetzt} die Guile-Anbindungen für GnuTLS sind in der Umgebung des Benutzers verfügbar; wenn nicht, wird ein Fehler gemeldet. Siehe die @ref{Guile Preparations, Installationsanleitung der GnuTLS-Anbindungen für Guile,, gnutls-guile, GnuTLS-Guile} für mehr Informationen." #. type: Plain text #: guix-git/doc/guix.texi:13844 msgid "@command{guix download} verifies HTTPS server certificates by loading the certificates of X.509 authorities from the directory pointed to by the @env{SSL_CERT_DIR} environment variable (@pxref{X.509 Certificates}), unless @option{--no-check-certificate} is used." msgstr "Mit @command{guix download} werden HTTPS-Serverzertifikate verifiziert, indem die Zertifikate der X.509-Autoritäten in das durch die Umgebungsvariable @env{SSL_CERT_DIR} bezeichnete Verzeichnis heruntergeladen werden (siehe @ref{X.509 Certificates}), außer @option{--no-check-certificate} wird benutzt." #. type: Plain text #: guix-git/doc/guix.texi:13847 msgid "Alternatively, @command{guix download} can also retrieve a Git repository, possibly a specific commit, tag, or branch." msgstr "Alternativ können Sie @command{guix download} auch benutzen, um ein Git-Repository herunterzuladen, insbesondere auch einen bestimmten Commit, Tag oder Branch." #. type: Plain text #: guix-git/doc/guix.texi:13849 guix-git/doc/guix.texi:16019 msgid "The following options are available:" msgstr "Folgende Befehlszeilenoptionen stehen zur Verfügung:" #. type: item #: guix-git/doc/guix.texi:13851 guix-git/doc/guix.texi:13915 #, no-wrap msgid "--hash=@var{algorithm}" msgstr "--hash=@var{Algorithmus}" #. type: itemx #: guix-git/doc/guix.texi:13852 guix-git/doc/guix.texi:13916 #, no-wrap msgid "-H @var{algorithm}" msgstr "-H @var{Algorithmus}" #. type: table #: guix-git/doc/guix.texi:13855 msgid "Compute a hash using the specified @var{algorithm}. @xref{Invoking guix hash}, for more information." msgstr "Einen Hash mit dem angegebenen @var{Algorithmus} berechnen. Siehe @ref{Invoking guix hash} für weitere Informationen." #. type: item #: guix-git/doc/guix.texi:13856 guix-git/doc/guix.texi:13925 #, no-wrap msgid "--format=@var{fmt}" msgstr "--format=@var{Format}" #. type: itemx #: guix-git/doc/guix.texi:13857 guix-git/doc/guix.texi:13926 #, no-wrap msgid "-f @var{fmt}" msgstr "-f @var{Format}" #. type: table #: guix-git/doc/guix.texi:13860 msgid "Write the hash in the format specified by @var{fmt}. For more information on the valid values for @var{fmt}, @pxref{Invoking guix hash}." msgstr "Die Hash-Prüfsumme im angegebenen @var{Format} ausgeben. Für weitere Informationen, was gültige Werte für das @var{Format} sind, siehe @ref{Invoking guix hash}." #. type: item #: guix-git/doc/guix.texi:13861 #, no-wrap msgid "--no-check-certificate" msgstr "--no-check-certificate" #. type: table #: guix-git/doc/guix.texi:13863 msgid "Do not validate the X.509 certificates of HTTPS servers." msgstr "X.509-Zertifikate von HTTPS-Servern @emph{nicht} validieren." #. type: table #: guix-git/doc/guix.texi:13867 msgid "When using this option, you have @emph{absolutely no guarantee} that you are communicating with the authentic server responsible for the given URL, which makes you vulnerable to ``man-in-the-middle'' attacks." msgstr "Wenn Sie diese Befehlszeilenoption benutzen, haben Sie @emph{keinerlei Garantie}, dass Sie tatsächlich mit dem authentischen Server, der für die angegebene URL verantwortlich ist, kommunizieren. Das macht Sie anfällig gegen sogenannte „Man-in-the-Middle“-Angriffe." #. type: item #: guix-git/doc/guix.texi:13868 #, no-wrap msgid "--output=@var{file}" msgstr "--output=@var{Datei}" #. type: itemx #: guix-git/doc/guix.texi:13869 #, no-wrap msgid "-o @var{file}" msgstr "-o @var{Datei}" #. type: table #: guix-git/doc/guix.texi:13872 msgid "Save the downloaded file to @var{file} instead of adding it to the store." msgstr "Die heruntergeladene Datei @emph{nicht} in den Store, sondern in die angegebene @var{Datei} abspeichern." #. type: item #: guix-git/doc/guix.texi:13873 #, no-wrap msgid "--git" msgstr "--git" #. type: table #: guix-git/doc/guix.texi:13876 msgid "Checkout the Git repository at the latest commit on the default branch." msgstr "Ein Checkout des neuesten Commits des angegebenen Git-Repositorys für dessen Standard-Branch herunterladen." #. type: item #: guix-git/doc/guix.texi:13877 #, no-wrap msgid "--commit=@var{commit-or-tag}" msgstr "--commit=@var{Commit-oder-Tag}" #. type: table #: guix-git/doc/guix.texi:13879 msgid "Checkout the Git repository at @var{commit-or-tag}." msgstr "Das Checkout des Git-Repositorys bei @var{Commit-oder-Tag} herunterladen." #. type: table #: guix-git/doc/guix.texi:13882 msgid "@var{commit-or-tag} can be either a tag or a commit defined in the Git repository." msgstr "Für @var{Commit-oder-Tag} können Sie entweder einen Git-Tag oder einen Commit angeben, der im Git-Repository definiert ist." #. type: table #: guix-git/doc/guix.texi:13885 msgid "Checkout the Git repository at @var{branch}." msgstr "Das Checkout des Git-Repositorys für @var{Branch} herunterladen." #. type: table #: guix-git/doc/guix.texi:13888 msgid "The repository will be checked out at the latest commit of @var{branch}, which must be a valid branch of the Git repository." msgstr "Vom Repository wird ein Checkout des neuesten Commits auf @var{Branch} heruntergeladen. Der Name des Branchs muss für das Git-Repository gültig sein." #. type: table #: guix-git/doc/guix.texi:13892 msgid "Recursively clone the Git repository." msgstr "Das Git-Repository rekursiv klonen." #. type: section #: guix-git/doc/guix.texi:13895 #, no-wrap msgid "Invoking @command{guix hash}" msgstr "@command{guix hash} aufrufen" #. type: command{#1} #: guix-git/doc/guix.texi:13897 #, no-wrap msgid "guix hash" msgstr "guix hash" #. type: Plain text #: guix-git/doc/guix.texi:13902 msgid "The @command{guix hash} command computes the hash of a file. It is primarily a convenience tool for anyone contributing to the distribution: it computes the cryptographic hash of one or more files, which can be used in the definition of a package (@pxref{Defining Packages})." msgstr "Der Befehl @command{guix hash} berechnet den Hash einer Datei. Er ist primär ein Werkzeug, dass es bequemer macht, etwas zur Distribution beizusteuern: Damit wird die kryptografische Hash-Prüfsumme berechnet, die bei der Definition eines Pakets benutzt werden kann (siehe @ref{Defining Packages})." #. type: example #: guix-git/doc/guix.texi:13907 #, no-wrap msgid "guix hash @var{option} @var{file} ...\n" msgstr "guix hash @var{Option} @var{Datei} ...\n" #. type: Plain text #: guix-git/doc/guix.texi:13912 msgid "When @var{file} is @code{-} (a hyphen), @command{guix hash} computes the hash of data read from standard input. @command{guix hash} has the following options:" msgstr "Wird als @var{Datei} ein Bindestrich @code{-} angegeben, berechnet @command{guix hash} den Hash der von der Standardeingabe gelesenen Daten. @command{guix hash} unterstützt die folgenden Optionen:" #. type: table #: guix-git/doc/guix.texi:13919 msgid "Compute a hash using the specified @var{algorithm}, @code{sha256} by default." msgstr "Mit dem angegebenen @var{Algorithmus} einen Hash berechnen. Die Vorgabe ist, @code{sha256} zu benutzen." #. type: table #: guix-git/doc/guix.texi:13924 msgid "@var{algorithm} must be the name of a cryptographic hash algorithm supported by Libgcrypt @i{via} Guile-Gcrypt---e.g., @code{sha512} or @code{sha3-256} (@pxref{Hash Functions,,, guile-gcrypt, Guile-Gcrypt Reference Manual})." msgstr "@var{Algorithmus} muss der Name eines durch Libgcrypt über Guile-Gcrypt zur Verfügung gestellten kryptografischen Hashalgorithmus sein, z.B.@: @code{sha512} oder @code{sha3-256} (siehe @ref{Hash Functions,,, guile-gcrypt, Referenzhandbuch zu Guile-Gcrypt})." #. type: table #: guix-git/doc/guix.texi:13928 msgid "Write the hash in the format specified by @var{fmt}." msgstr "Gibt die Prüfsumme im angegebenen @var{Format} aus." #. type: table #: guix-git/doc/guix.texi:13931 msgid "Supported formats: @code{base64}, @code{nix-base32}, @code{base32}, @code{base16} (@code{hex} and @code{hexadecimal} can be used as well)." msgstr "Unterstützte Formate: @code{base64}, @code{nix-base32}, @code{base32}, @code{base16} (@code{hex} und @code{hexadecimal} können auch benutzt werden)." #. type: table #: guix-git/doc/guix.texi:13935 msgid "If the @option{--format} option is not specified, @command{guix hash} will output the hash in @code{nix-base32}. This representation is used in the definitions of packages." msgstr "Wird keine Befehlszeilenoption @option{--format} angegeben, wird @command{guix hash} die Prüfsumme im @code{nix-base32}-Format ausgeben. Diese Darstellung wird bei der Definition von Paketen benutzt." #. type: table #: guix-git/doc/guix.texi:13941 msgid "The @option{--recursive} option is deprecated in favor of @option{--serializer=nar} (see below); @option{-r} remains accepted as a convenient shorthand." msgstr "Die Befehlszeilenoption @option{--recursive} ist veraltet. Benutzen Sie @option{--serializer=nar} (siehe unten). @option{-r} bleibt als bequeme Kurzschreibweise erhalten." #. type: item #: guix-git/doc/guix.texi:13942 #, no-wrap msgid "--serializer=@var{type}" msgstr "--serializer=@var{Typ}" #. type: itemx #: guix-git/doc/guix.texi:13943 #, no-wrap msgid "-S @var{type}" msgstr "-S @var{Typ}" #. type: table #: guix-git/doc/guix.texi:13945 msgid "Compute the hash on @var{file} using @var{type} serialization." msgstr "Die Prüfsumme der @var{Datei} auf die durch @var{Typ} angegebene Art berechnen." #. type: table #: guix-git/doc/guix.texi:13947 msgid "@var{type} may be one of the following:" msgstr "Als @var{Typ} können Sie einen hiervon benutzen:" #. type: item #: guix-git/doc/guix.texi:13949 guix-git/doc/guix.texi:16378 #: guix-git/doc/guix.texi:21132 guix-git/doc/guix.texi:23886 #, no-wrap msgid "none" msgstr "none" #. type: table #: guix-git/doc/guix.texi:13951 msgid "This is the default: it computes the hash of a file's contents." msgstr "Dies entspricht der Vorgabe: Die Prüfsumme des Inhalts der Datei wird berechnet." #. type: item #: guix-git/doc/guix.texi:13952 #, no-wrap msgid "nar" msgstr "nar" #. type: table #: guix-git/doc/guix.texi:13962 msgid "Compute the hash of a ``normalized archive'' (or ``nar'') containing @var{file}, including its children if it is a directory. Some of the metadata of @var{file} is part of the archive; for instance, when @var{file} is a regular file, the hash is different depending on whether @var{file} is executable or not. Metadata such as time stamps have no impact on the hash (@pxref{Invoking guix archive}, for more info on the nar format)." msgstr "In diesem Fall wird die Prüfsumme eines Normalisierten Archivs (kurz „Nar“) berechnet, das die @var{Datei} enthält, und auch ihre Kinder, wenn es sich um ein Verzeichnis handelt. Einige der Metadaten der @var{Datei} sind Teil dieses Archivs. Zum Beispiel unterscheidet sich die berechnete Prüfsumme, wenn die @var{Datei} eine reguläre Datei ist, je nachdem, ob die @var{Datei} ausführbar ist oder nicht. Metadaten wie der Zeitstempel haben keinen Einfluss auf die Prüfsumme (siehe @ref{Invoking guix archive}, für mehr Informationen über das Nar-Format)." #. type: item #: guix-git/doc/guix.texi:13963 #, no-wrap msgid "git" msgstr "git" #. type: table #: guix-git/doc/guix.texi:13966 msgid "Compute the hash of the file or directory as a Git ``tree'', following the same method as the Git version control system." msgstr "Die Prüfsumme der Datei oder des Verzeichnisses als Git-Baumstruktur berechnen, nach derselben Methode wie beim Git-Versionskontrollsystem." #. type: item #: guix-git/doc/guix.texi:13968 #, no-wrap msgid "--exclude-vcs" msgstr "--exclude-vcs" #. type: itemx #: guix-git/doc/guix.texi:13969 guix-git/doc/guix.texi:15477 #, no-wrap msgid "-x" msgstr "-x" #. type: table #: guix-git/doc/guix.texi:13972 msgid "When combined with @option{--recursive}, exclude version control system directories (@file{.bzr}, @file{.git}, @file{.hg}, etc.)." msgstr "Wenn dies zusammen mit der Befehlszeilenoption @option{--recursive} angegeben wird, werden Verzeichnisse zur Versionskontrolle (@file{.bzr}, @file{.git}, @file{.hg}, etc.)@: vom Archiv ausgenommen." #. type: vindex #: guix-git/doc/guix.texi:13973 #, no-wrap msgid "git-fetch" msgstr "git-fetch" #. type: table #: guix-git/doc/guix.texi:13977 msgid "As an example, here is how you would compute the hash of a Git checkout, which is useful when using the @code{git-fetch} method (@pxref{origin Reference}):" msgstr "Zum Beispiel würden Sie auf diese Art die Prüfsumme eines Git-Checkouts berechnen, was nützlich ist, wenn Sie die Prüfsumme für die Methode @code{git-fetch} benutzen (siehe @ref{origin Reference}):" #. type: example #: guix-git/doc/guix.texi:13982 #, no-wrap msgid "" "$ git clone http://example.org/foo.git\n" "$ cd foo\n" "$ guix hash -x --serializer=nar .\n" msgstr "" "$ git clone http://example.org/foo.git\n" "$ cd foo\n" "$ guix hash -x --serializer=nar .\n" #. type: cindex #: guix-git/doc/guix.texi:13986 guix-git/doc/guix.texi:13991 #, no-wrap msgid "Invoking @command{guix import}" msgstr "@command{guix import} aufrufen" #. type: cindex #: guix-git/doc/guix.texi:13988 #, no-wrap msgid "importing packages" msgstr "Pakete importieren" #. type: cindex #: guix-git/doc/guix.texi:13989 #, no-wrap msgid "package import" msgstr "Paketimport" #. type: cindex #: guix-git/doc/guix.texi:13990 #, no-wrap msgid "package conversion" msgstr "Pakete an Guix anpassen" #. type: Plain text #: guix-git/doc/guix.texi:13998 msgid "The @command{guix import} command is useful for people who would like to add a package to the distribution with as little work as possible---a legitimate demand. The command knows of a few repositories from which it can ``import'' package metadata. The result is a package definition, or a template thereof, in the format we know (@pxref{Defining Packages})." msgstr "Der Befehl @command{guix import} ist für Leute hilfreich, die ein Paket gerne mit so wenig Arbeit wie möglich zur Distribution hinzufügen würden@tie{}– ein legitimer Anspruch. Der Befehl kennt ein paar Sammlungen, aus denen mit ihm Paketmetadaten „importiert“ werden können. Das Ergebnis ist eine Paketdefinition oder eine Vorlage dafür in dem uns bekannten Format (siehe @ref{Defining Packages})." #. type: example #: guix-git/doc/guix.texi:14003 #, no-wrap msgid "guix import [@var{global-options}@dots{}] @var{importer} @var{package} [@var{options}@dots{}]\n" msgstr "guix import [@var{Globale-Optionen}…] @var{Importer} @var{Paket} [@var{Optionen}…]\n" #. type: Plain text #: guix-git/doc/guix.texi:14009 msgid "@var{importer} specifies the source from which to import package metadata, and @var{options} specifies a package identifier and other options specific to @var{importer}. @command{guix import} itself has the following @var{global-options}:" msgstr "Der @var{Importer} gibt die Quelle an, aus der Paketmetadaten importiert werden, und die @var{Optionen} geben eine Paketbezeichnung und andere vom @var{Importer} abhängige Daten an. @command{guix import} verfügt selbst über folgende @var{Globale-Optionen}:" #. type: item #: guix-git/doc/guix.texi:14011 #, no-wrap msgid "--insert=@var{file}" msgstr "--insert=@var{Datei}" #. type: itemx #: guix-git/doc/guix.texi:14012 #, no-wrap msgid "-i @var{file}" msgstr "-i @var{Datei}" #. type: table #: guix-git/doc/guix.texi:14016 msgid "Insert the package definition(s) that the @var{importer} generated into the specified @var{file}, either in alphabetical order among existing package definitions, or at the end of the file otherwise." msgstr "Die vom @var{Importer} erzeugten Paketdefinitionen in die angegebene @var{Datei} schreiben, entweder in alphabetischer Reihenfolge unter bestehenden Paketdefinitionen oder andernfalls am Dateiende." #. type: Plain text #: guix-git/doc/guix.texi:14021 msgid "Some of the importers rely on the ability to run the @command{gpgv} command. For these, GnuPG must be installed and in @code{$PATH}; run @code{guix install gnupg} if needed." msgstr "Manche Importer setzen voraus, dass der Befehl @command{gpgv} ausgeführt werden kann. Sie funktionieren nur, wenn GnuPG installiert und im @code{$PATH} enthalten ist; falls nötig können Sie @code{guix install gnupg} ausführen." #. type: Plain text #: guix-git/doc/guix.texi:14023 msgid "Currently, the available ``importers'' are:" msgstr "Derzeit sind folgende „Importer“ verfügbar:" #. type: item #: guix-git/doc/guix.texi:14025 guix-git/doc/guix.texi:14877 #, no-wrap msgid "gnu" msgstr "gnu" #. type: table #: guix-git/doc/guix.texi:14029 msgid "Import metadata for the given GNU package. This provides a template for the latest version of that GNU package, including the hash of its source tarball, and its canonical synopsis and description." msgstr "Metadaten für das angegebene GNU-Paket importieren. Damit wird eine Vorlage für die neueste Version dieses GNU-Pakets zur Verfügung gestellt, einschließlich der Prüfsumme seines Quellcode-Tarballs, seiner kanonischen Zusammenfassung und seiner Beschreibung." #. type: table #: guix-git/doc/guix.texi:14032 msgid "Additional information such as the package dependencies and its license needs to be figured out manually." msgstr "Zusätzliche Informationen wie Paketabhängigkeiten und seine Lizenz müssen noch manuell ermittelt werden." #. type: table #: guix-git/doc/guix.texi:14035 msgid "For example, the following command returns a package definition for GNU@tie{}Hello:" msgstr "Zum Beispiel liefert der folgende Befehl eine Paketdefinition für GNU@tie{}Hello:" #. type: example #: guix-git/doc/guix.texi:14038 #, no-wrap msgid "guix import gnu hello\n" msgstr "guix import gnu hello\n" #. type: table #: guix-git/doc/guix.texi:14041 guix-git/doc/guix.texi:14302 #: guix-git/doc/guix.texi:14352 guix-git/doc/guix.texi:14381 msgid "Specific command-line options are:" msgstr "Speziell für diesen Importer stehen noch folgende Befehlszeilenoptionen zur Verfügung:" #. type: item #: guix-git/doc/guix.texi:14043 guix-git/doc/guix.texi:15075 #, no-wrap msgid "--key-download=@var{policy}" msgstr "--key-download=@var{Richtlinie}" #. type: table #: guix-git/doc/guix.texi:14047 msgid "As for @command{guix refresh}, specify the policy to handle missing OpenPGP keys when verifying the package signature. @xref{Invoking guix refresh, @option{--key-download}}." msgstr "Die Richtlinie zum Umgang mit fehlenden OpenPGP-Schlüsseln beim Verifizieren der Paketsignatur (auch „Beglaubigung“ genannt) festlegen, wie bei @command{guix refresh}. Siehe @ref{Invoking guix refresh, @option{--key-download}}." #. type: item #: guix-git/doc/guix.texi:14049 guix-git/doc/guix.texi:14050 #: guix-git/doc/guix.texi:14901 #, no-wrap msgid "pypi" msgstr "pypi" #. type: table #: guix-git/doc/guix.texi:14057 msgid "Import metadata from the @uref{https://pypi.python.org/, Python Package Index}. Information is taken from the JSON-formatted description available at @code{pypi.python.org} and usually includes all the relevant information, including package dependencies. For maximum efficiency, it is recommended to install the @command{unzip} utility, so that the importer can unzip Python wheels and gather data from them." msgstr "Metadaten aus dem @uref{https://pypi.python.org/, Python Package Index} importieren. Informationen stammen aus der JSON-formatierten Beschreibung, die unter @code{pypi.python.org} verfügbar ist, und enthalten meistens alle relevanten Informationen einschließlich der Abhängigkeiten des Pakets. Für maximale Effizienz wird empfohlen, das Hilfsprogramm @command{unzip} zu installieren, damit der Importer „Python Wheels“ entpacken und daraus Daten beziehen kann." #. type: table #: guix-git/doc/guix.texi:14060 msgid "The command below imports metadata for the latest version of the @code{itsdangerous} Python package:" msgstr "Der folgende Befehl importiert Metadaten für die neueste Version des Python-Pakets namens @code{itsdangerous}:" #. type: example #: guix-git/doc/guix.texi:14063 #, no-wrap msgid "guix import pypi itsdangerous\n" msgstr "guix import pypi itsdangerous\n" #. type: table #: guix-git/doc/guix.texi:14066 guix-git/doc/guix.texi:14097 #: guix-git/doc/guix.texi:14174 guix-git/doc/guix.texi:14615 msgid "You can also ask for a specific version:" msgstr "Sie können auch um eine bestimmte Version bitten:" #. type: example #: guix-git/doc/guix.texi:14069 #, no-wrap msgid "guix import pypi itsdangerous@@1.1.0\n" msgstr "guix import pypi itsdangerous@@1.1.0\n" #. type: table #: guix-git/doc/guix.texi:14077 guix-git/doc/guix.texi:14108 #: guix-git/doc/guix.texi:14140 guix-git/doc/guix.texi:14244 #: guix-git/doc/guix.texi:14325 guix-git/doc/guix.texi:14366 #: guix-git/doc/guix.texi:14417 guix-git/doc/guix.texi:14442 #: guix-git/doc/guix.texi:14474 guix-git/doc/guix.texi:14507 #: guix-git/doc/guix.texi:14523 guix-git/doc/guix.texi:14543 #: guix-git/doc/guix.texi:14591 guix-git/doc/guix.texi:14627 #: guix-git/doc/guix.texi:14654 msgid "Traverse the dependency graph of the given upstream package recursively and generate package expressions for all those packages that are not yet in Guix." msgstr "Den Abhängigkeitsgraphen des angegebenen Pakets beim Anbieter rekursiv durchlaufen und Paketausdrücke für alle solchen Pakete erzeugen, die es in Guix noch nicht gibt." #. type: item #: guix-git/doc/guix.texi:14079 guix-git/doc/guix.texi:14080 #: guix-git/doc/guix.texi:14903 #, no-wrap msgid "gem" msgstr "gem" #. type: table #: guix-git/doc/guix.texi:14089 msgid "Import metadata from @uref{https://rubygems.org/, RubyGems}. Information is taken from the JSON-formatted description available at @code{rubygems.org} and includes most relevant information, including runtime dependencies. There are some caveats, however. The metadata doesn't distinguish between synopses and descriptions, so the same string is used for both fields. Additionally, the details of non-Ruby dependencies required to build native extensions is unavailable and left as an exercise to the packager." msgstr "Metadaten von @uref{https://rubygems.org/, RubyGems} importieren. Informationen kommen aus der JSON-formatierten Beschreibung, die auf @code{rubygems.org} verfügbar ist, und enthält die relevantesten Informationen einschließlich der Laufzeitabhängigkeiten. Dies hat aber auch Schattenseiten@tie{}– die Metadaten unterscheiden nicht zwischen Zusammenfassungen und Beschreibungen, daher wird dieselbe Zeichenkette für beides eingesetzt. Zudem fehlen Informationen zu nicht in Ruby geschriebenen Abhängigkeiten, die benötigt werden, um native Erweiterungen zu in Ruby geschriebenem Code zu erstellen. Diese herauszufinden bleibt dem Paketentwickler überlassen." #. type: table #: guix-git/doc/guix.texi:14091 msgid "The command below imports metadata for the @code{rails} Ruby package:" msgstr "Der folgende Befehl importiert Metadaten aus dem Ruby-Paket @code{rails}." #. type: example #: guix-git/doc/guix.texi:14094 #, no-wrap msgid "guix import gem rails\n" msgstr "guix import gem rails\n" #. type: example #: guix-git/doc/guix.texi:14100 #, no-wrap msgid "guix import gem rails@@7.0.4\n" msgstr "guix import gem rails@@7.0.4\n" #. type: cindex #: guix-git/doc/guix.texi:14110 guix-git/doc/guix.texi:14111 #, no-wrap msgid "minetest" msgstr "minetest" #. type: cindex #: guix-git/doc/guix.texi:14112 #, no-wrap msgid "ContentDB" msgstr "ContentDB" #. type: table #: guix-git/doc/guix.texi:14121 msgid "Import metadata from @uref{https://content.minetest.net, ContentDB}. Information is taken from the JSON-formatted metadata provided through @uref{https://content.minetest.net/help/api/, ContentDB's API} and includes most relevant information, including dependencies. There are some caveats, however. The license information is often incomplete. The commit hash is sometimes missing. The descriptions are in the Markdown format, but Guix uses Texinfo instead. Texture packs and subgames are unsupported." msgstr "Importiert Metadaten aus der @uref{https://content.minetest.net, ContentDB}. Informationen werden aus den JSON-formatierten Metadaten genommen, die über die @uref{https://content.minetest.net/help/api/, Programmierschnittstelle („API“) von ContentDB} angeboten werden, und enthalten die relevantesten Informationen wie zum Beispiel Abhängigkeiten. Allerdings passt das Ergebnis nicht ganz. Lizenzinformationen sind oft unvollständig. Der Commit-Hash fehlt manchmal. Die importierten Beschreibungen sind in Markdown formatiert, aber Guix braucht stattdessen Texinfo-Auszeichnungen. Texturpakete und Teilspiele werden nicht unterstützt." #. type: table #: guix-git/doc/guix.texi:14123 msgid "The command below imports metadata for the Mesecons mod by Jeija:" msgstr "Der folgende Befehl importiert Metadaten für die Mesecons-Mod von Jeija:" #. type: example #: guix-git/doc/guix.texi:14126 #, no-wrap msgid "guix import minetest Jeija/mesecons\n" msgstr "guix import minetest Jeija/mesecons\n" #. type: table #: guix-git/doc/guix.texi:14129 msgid "The author name can also be left out:" msgstr "Man muss den Autorennamen nicht angeben:" #. type: example #: guix-git/doc/guix.texi:14132 #, no-wrap msgid "guix import minetest mesecons\n" msgstr "guix import minetest mesecons\n" #. type: item #: guix-git/doc/guix.texi:14142 guix-git/doc/guix.texi:14899 #, no-wrap msgid "cpan" msgstr "cpan" #. type: cindex #: guix-git/doc/guix.texi:14143 #, no-wrap msgid "CPAN" msgstr "CPAN" #. type: table #: guix-git/doc/guix.texi:14151 msgid "Import metadata from @uref{https://www.metacpan.org/, MetaCPAN}. Information is taken from the JSON-formatted metadata provided through @uref{https://fastapi.metacpan.org/, MetaCPAN's API} and includes most relevant information, such as module dependencies. License information should be checked closely. If Perl is available in the store, then the @code{corelist} utility will be used to filter core modules out of the list of dependencies." msgstr "Importiert Metadaten von @uref{https://www.metacpan.org/, MetaCPAN}. Informationen werden aus den JSON-formatierten Metadaten genommen, die über die @uref{https://fastapi.metacpan.org/, Programmierschnittstelle („API“) von MetaCPAN} angeboten werden, und enthalten die relevantesten Informationen wie zum Beispiel Modulabhängigkeiten. Lizenzinformationen sollten genau nachgeprüft werden. Wenn Perl im Store verfügbar ist, wird das Werkzeug @code{corelist} benutzt, um Kernmodule in der Abhängigkeitsliste wegzulassen." #. type: table #: guix-git/doc/guix.texi:14153 msgid "The command below imports metadata for the Acme::Boolean Perl module:" msgstr "Folgender Befehl importiert Metadaten für das Perl-Modul Acme::Boolean:" #. type: example #: guix-git/doc/guix.texi:14156 #, no-wrap msgid "guix import cpan Acme::Boolean\n" msgstr "guix import cpan Acme::Boolean\n" #. type: item #: guix-git/doc/guix.texi:14158 guix-git/doc/guix.texi:14895 #, no-wrap msgid "cran" msgstr "cran" #. type: cindex #: guix-git/doc/guix.texi:14159 #, no-wrap msgid "CRAN" msgstr "CRAN" #. type: cindex #: guix-git/doc/guix.texi:14160 #, no-wrap msgid "Bioconductor" msgstr "Bioconductor" #. type: table #: guix-git/doc/guix.texi:14164 msgid "Import metadata from @uref{https://cran.r-project.org/, CRAN}, the central repository for the @uref{https://r-project.org, GNU@tie{}R statistical and graphical environment}." msgstr "Metadaten aus dem @uref{https://cran.r-project.org/, CRAN} importieren, der zentralen Sammlung für die @uref{https://r-project.org, statistische und grafische Umgebung GNU@tie{}R}." #. type: table #: guix-git/doc/guix.texi:14166 msgid "Information is extracted from the @file{DESCRIPTION} file of the package." msgstr "Informationen werden aus der Datei namens @file{DESCRIPTION} des Pakets extrahiert." #. type: table #: guix-git/doc/guix.texi:14168 msgid "The command below imports metadata for the Cairo R package:" msgstr "Der folgende Befehl importiert Metadaten für das Cairo-R-Paket:" #. type: example #: guix-git/doc/guix.texi:14171 #, no-wrap msgid "guix import cran Cairo\n" msgstr "guix import cran Cairo\n" #. type: example #: guix-git/doc/guix.texi:14177 #, no-wrap msgid "guix import cran rasterVis@@0.50.3\n" msgstr "guix import cran rasterVis@@0.50.3\n" #. type: table #: guix-git/doc/guix.texi:14182 msgid "When @option{--recursive} is added, the importer will traverse the dependency graph of the given upstream package recursively and generate package expressions for all those packages that are not yet in Guix." msgstr "Wird zudem @option{--recursive} angegeben, wird der Importer den Abhängigkeitsgraphen des angegebenen Pakets beim Anbieter rekursiv durchlaufen und Paketausdrücke für all die Pakete erzeugen, die noch nicht Teil von Guix sind." #. type: table #: guix-git/doc/guix.texi:14189 msgid "When @option{--style=specification} is added, the importer will generate package definitions whose inputs are package specifications instead of references to package variables. This is useful when generated package definitions are to be appended to existing user modules, as the list of used package modules need not be changed. The default is @option{--style=variable}." msgstr "Wird @option{--style=specification} angegeben, wird der Importer Paketdefinitionen erzeugen, deren Eingaben als Paketspezifikationen statt als Referenzen auf Paketvariable vorliegen. Das ist nützlich, wenn die erzeugten Paketdefinitionen in bestehende, nutzereigene Module eingefügt werden, weil dann die Liste der benutzten Paketmodule nicht angepasst werden muss. Die Vorgabe ist @option{--style=variable}." #. type: table #: guix-git/doc/guix.texi:14193 msgid "When @option{--prefix=license:} is added, the importer will prefix license atoms with @code{license:}, allowing a prefixed import of @code{(guix licenses)}." msgstr "Wird @option{--prefix=license:} angegeben, stellt der Importer jedem für eine Lizenz stehenden Atom das Präfix @code{license:} voran, damit @code{(guix licenses)} mit diesem Präfix importiert werden kann." #. type: table #: guix-git/doc/guix.texi:14198 msgid "When @option{--archive=bioconductor} is added, metadata is imported from @uref{https://www.bioconductor.org/, Bioconductor}, a repository of R packages for the analysis and comprehension of high-throughput genomic data in bioinformatics." msgstr "Wird @option{--archive=bioconductor} angegeben, werden Metadaten vom @uref{https://www.bioconductor.org/, Bioconductor} importiert, einer Sammlung von R-Paketen zur Analyse und zum Verständnis von großen Mengen genetischer Daten in der Bioinformatik." #. type: table #: guix-git/doc/guix.texi:14201 msgid "Information is extracted from the @file{DESCRIPTION} file contained in the package archive." msgstr "Informationen werden aus der Datei namens @file{DESCRIPTION} im Archiv des Pakets extrahiert." #. type: table #: guix-git/doc/guix.texi:14203 msgid "The command below imports metadata for the GenomicRanges R package:" msgstr "Der folgende Befehl importiert Metadaten für das R-Paket GenomicRanges:" #. type: example #: guix-git/doc/guix.texi:14206 #, no-wrap msgid "guix import cran --archive=bioconductor GenomicRanges\n" msgstr "guix import cran --archive=bioconductor GenomicRanges\n" #. type: table #: guix-git/doc/guix.texi:14211 msgid "Finally, you can also import R packages that have not yet been published on CRAN or Bioconductor as long as they are in a git repository. Use @option{--archive=git} followed by the URL of the git repository:" msgstr "Schließlich können Sie auch solche R-Pakete importieren, die noch nicht auf CRAN oder im Bioconductor veröffentlicht wurden, solange sie in einem Git-Repository stehen. Benutzen Sie @option{--archive=git} gefolgt von der URL des Git-Repositorys." #. type: example #: guix-git/doc/guix.texi:14214 #, no-wrap msgid "guix import cran --archive=git https://github.com/immunogenomics/harmony\n" msgstr "guix import cran --archive=git https://github.com/immunogenomics/harmony\n" #. type: item #: guix-git/doc/guix.texi:14216 #, no-wrap msgid "texlive" msgstr "texlive" #. type: cindex #: guix-git/doc/guix.texi:14217 #, no-wrap msgid "TeX Live" msgstr "TeX Live" #. type: cindex #: guix-git/doc/guix.texi:14218 #, no-wrap msgid "CTAN" msgstr "CTAN" #. type: table #: guix-git/doc/guix.texi:14222 msgid "Import TeX package information from the TeX Live package database for TeX packages that are part of the @uref{https://www.tug.org/texlive/, TeX Live distribution}." msgstr "Informationen über TeX-Pakete, die Teil der @uref{https://www.tug.org/texlive/, TeX-Live-Distribution} sind, aus der Datenbank von TeX Live importieren." #. type: table #: guix-git/doc/guix.texi:14229 msgid "Information about the package is obtained from the TeX Live package database, a plain text file that is included in the @code{texlive-scripts} package. The source code is downloaded from possibly multiple locations in the SVN repository of the Tex Live project. Note that therefore SVN must be installed and in @code{$PATH}; run @code{guix install subversion} if needed." msgstr "Paketinformationen werden der Paketdatenbank von TeX Live entnommen. Bei ihr handelt es sich um eine reine Textdatei, die im @code{texlive-scripts}-Paket enthalten ist. Der Quellcode wird von unter Umständen mehreren Stellen im SVN-Repository des TeX-Live-Projekts heruntergeladen. Beachten Sie, dass deswegen SVN installiert und in @code{$PATH} zu finden sein muss; führen Sie dazu gegebenenfalls @code{guix install subversion} aus." #. type: table #: guix-git/doc/guix.texi:14231 msgid "The command below imports metadata for the @code{fontspec} TeX package:" msgstr "Der folgende Befehl importiert Metadaten für das TeX-Paket @code{fontspec}:" #. type: example #: guix-git/doc/guix.texi:14234 #, no-wrap msgid "guix import texlive fontspec\n" msgstr "guix import texlive fontspec\n" #. type: table #: guix-git/doc/guix.texi:14237 guix-git/doc/guix.texi:14435 #: guix-git/doc/guix.texi:14467 guix-git/doc/guix.texi:14500 #: guix-git/doc/guix.texi:14516 guix-git/doc/guix.texi:14536 #: guix-git/doc/guix.texi:14584 guix-git/doc/guix.texi:14621 #: guix-git/doc/guix.texi:14647 msgid "Additional options include:" msgstr "Zu den zusätzlichen Optionen gehören:" #. type: cindex #: guix-git/doc/guix.texi:14247 #, no-wrap msgid "JSON, import" msgstr "JSON, Import" #. type: table #: guix-git/doc/guix.texi:14250 msgid "Import package metadata from a local JSON file. Consider the following example package definition in JSON format:" msgstr "Paketmetadaten aus einer lokalen JSON-Datei importieren. Betrachten Sie folgende Beispiel-Paketdefinition im JSON-Format:" #. type: example #: guix-git/doc/guix.texi:14263 #, no-wrap msgid "" "@{\n" " \"name\": \"hello\",\n" " \"version\": \"2.10\",\n" " \"source\": \"mirror://gnu/hello/hello-2.10.tar.gz\",\n" " \"build-system\": \"gnu\",\n" " \"home-page\": \"https://www.gnu.org/software/hello/\",\n" " \"synopsis\": \"Hello, GNU world: An example GNU package\",\n" " \"description\": \"GNU Hello prints a greeting.\",\n" " \"license\": \"GPL-3.0+\",\n" " \"native-inputs\": [\"gettext\"]\n" "@}\n" msgstr "" "@{\n" " \"name\": \"hello\",\n" " \"version\": \"2.10\",\n" " \"source\": \"mirror://gnu/hello/hello-2.10.tar.gz\",\n" " \"build-system\": \"gnu\",\n" " \"home-page\": \"https://www.gnu.org/software/hello/\",\n" " \"synopsis\": \"Hello, GNU world: An example GNU package\",\n" " \"description\": \"GNU Hello prints a greeting.\",\n" " \"license\": \"GPL-3.0+\",\n" " \"native-inputs\": [\"gettext\"]\n" "@}\n" #. type: table #: guix-git/doc/guix.texi:14269 msgid "The field names are the same as for the @code{<package>} record (@xref{Defining Packages}). References to other packages are provided as JSON lists of quoted package specification strings such as @code{guile} or @code{guile@@2.0}." msgstr "Die Felder sind genauso benannt wie bei einem @code{<package>}-Verbundstyp (siehe @ref{Defining Packages}). Referenzen zu anderen Paketen stehen darin als JSON-Liste von mit Anführungszeichen quotierten Zeichenketten wie @code{guile} oder @code{guile@@2.0}." #. type: table #: guix-git/doc/guix.texi:14272 msgid "The importer also supports a more explicit source definition using the common fields for @code{<origin>} records:" msgstr "Der Importer unterstützt auch eine ausdrücklichere Definition der Quelldateien mit den üblichen Feldern eines @code{<origin>}-Verbunds:" #. type: example #: guix-git/doc/guix.texi:14285 #, no-wrap msgid "" "@{\n" " @dots{}\n" " \"source\": @{\n" " \"method\": \"url-fetch\",\n" " \"uri\": \"mirror://gnu/hello/hello-2.10.tar.gz\",\n" " \"sha256\": @{\n" " \"base32\": \"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\"\n" " @}\n" " @}\n" " @dots{}\n" "@}\n" msgstr "" "@{\n" " …\n" " \"source\": @{\n" " \"method\": \"url-fetch\",\n" " \"uri\": \"mirror://gnu/hello/hello-2.10.tar.gz\",\n" " \"sha256\": @{\n" " \"base32\": \"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\"\n" " @}\n" " @}\n" " …\n" "@}\n" #. type: table #: guix-git/doc/guix.texi:14289 msgid "The command below reads metadata from the JSON file @code{hello.json} and outputs a package expression:" msgstr "Der folgende Befehl liest Metadaten aus der JSON-Datei @code{hello.json} und gibt einen Paketausdruck aus:" #. type: example #: guix-git/doc/guix.texi:14292 #, no-wrap msgid "guix import json hello.json\n" msgstr "guix import json hello.json\n" #. type: item #: guix-git/doc/guix.texi:14294 guix-git/doc/guix.texi:14295 #: guix-git/doc/guix.texi:14907 #, no-wrap msgid "hackage" msgstr "hackage" #. type: table #: guix-git/doc/guix.texi:14300 msgid "Import metadata from the Haskell community's central package archive @uref{https://hackage.haskell.org/, Hackage}. Information is taken from Cabal files and includes all the relevant information, including package dependencies." msgstr "Metadaten aus @uref{https://hackage.haskell.org/, Hackage}, dem zentralen Paketarchiv der Haskell-Gemeinde, importieren. Informationen werden aus Cabal-Dateien ausgelesen. Darin sind alle relevanten Informationen einschließlich der Paketabhängigkeiten enthalten." #. type: item #: guix-git/doc/guix.texi:14304 #, no-wrap msgid "--stdin" msgstr "--stdin" #. type: itemx #: guix-git/doc/guix.texi:14305 #, no-wrap msgid "-s" msgstr "-s" #. type: table #: guix-git/doc/guix.texi:14307 msgid "Read a Cabal file from standard input." msgstr "Eine Cabal-Datei von der Standardeingabe lesen." #. type: item #: guix-git/doc/guix.texi:14307 guix-git/doc/guix.texi:14354 #, no-wrap msgid "--no-test-dependencies" msgstr "--no-test-dependencies" #. type: table #: guix-git/doc/guix.texi:14310 guix-git/doc/guix.texi:14357 msgid "Do not include dependencies required only by the test suites." msgstr "Keine Abhängigkeiten übernehmen, die nur von Testkatalogen benötigt werden." #. type: item #: guix-git/doc/guix.texi:14310 #, no-wrap msgid "--cabal-environment=@var{alist}" msgstr "--cabal-environment=@var{Aliste}" #. type: itemx #: guix-git/doc/guix.texi:14311 #, no-wrap msgid "-e @var{alist}" msgstr "-e @var{Aliste}" #. type: table #: guix-git/doc/guix.texi:14320 msgid "@var{alist} is a Scheme alist defining the environment in which the Cabal conditionals are evaluated. The accepted keys are: @code{os}, @code{arch}, @code{impl} and a string representing the name of a flag. The value associated with a flag has to be either the symbol @code{true} or @code{false}. The value associated with other keys has to conform to the Cabal file format definition. The default value associated with the keys @code{os}, @code{arch} and @code{impl} is @samp{linux}, @samp{x86_64} and @samp{ghc}, respectively." msgstr "@var{Aliste} muss eine assoziative Liste der Scheme-Programmiersprache sein, die die Umgebung definiert, in der bedingte Ausdrücke von Cabal ausgewertet werden. Dabei werden folgende Schlüssel akzeptiert: @code{os}, @code{arch}, @code{impl} und eine Zeichenkette, die dem Namen einer Option (einer „Flag“) entspricht. Der mit einer „Flag“ assoziierte Wert muss entweder das Symbol @code{true} oder @code{false} sein. Der anderen Schlüsseln zugeordnete Wert muss mit der Definition des Cabal-Dateiformats konform sein. Der vorgegebene Wert zu den Schlüsseln @code{os}, @code{arch} and @code{impl} ist jeweils @samp{linux}, @samp{x86_64} bzw. @samp{ghc}." #. type: table #: guix-git/doc/guix.texi:14330 msgid "The command below imports metadata for the latest version of the HTTP Haskell package without including test dependencies and specifying the value of the flag @samp{network-uri} as @code{false}:" msgstr "Der folgende Befehl importiert Metadaten für die neuste Version des Haskell-„HTTP“-Pakets, ohne Testabhängigkeiten zu übernehmen und bei Übergabe von @code{false} als Wert der Flag @samp{network-uri}:" #. type: example #: guix-git/doc/guix.texi:14333 #, no-wrap msgid "guix import hackage -t -e \"'((\\\"network-uri\\\" . false))\" HTTP\n" msgstr "guix import hackage -t -e \"'((\\\"network-uri\\\" . false))\" HTTP\n" #. type: table #: guix-git/doc/guix.texi:14337 msgid "A specific package version may optionally be specified by following the package name by an at-sign and a version number as in the following example:" msgstr "Eine ganz bestimmte Paketversion kann optional ausgewählt werden, indem man nach dem Paketnamen anschließend ein At-Zeichen und eine Versionsnummer angibt wie in folgendem Beispiel:" #. type: example #: guix-git/doc/guix.texi:14340 #, no-wrap msgid "guix import hackage mtl@@2.1.3.1\n" msgstr "guix import hackage mtl@@2.1.3.1\n" #. type: item #: guix-git/doc/guix.texi:14342 guix-git/doc/guix.texi:14343 #: guix-git/doc/guix.texi:14909 #, no-wrap msgid "stackage" msgstr "stackage" #. type: table #: guix-git/doc/guix.texi:14350 msgid "The @code{stackage} importer is a wrapper around the @code{hackage} one. It takes a package name, looks up the package version included in a long-term support (LTS) @uref{https://www.stackage.org, Stackage} release and uses the @code{hackage} importer to retrieve its metadata. Note that it is up to you to select an LTS release compatible with the GHC compiler used by Guix." msgstr "Der @code{stackage}-Importer ist ein Wrapper um den @code{hackage}-Importer. Er nimmt einen Paketnamen und schaut dafür die Paketversion nach, die Teil einer @uref{https://www.stackage.org, Stackage-Veröffentlichung} mit Langzeitunterstützung (englisch „Long-Term Support“, kurz LTS) ist, deren Metadaten er dann mit dem @code{hackage}-Importer bezieht. Beachten Sie, dass es Ihre Aufgabe ist, eine LTS-Veröffentlichung auszuwählen, die mit dem von Guix benutzten GHC-Compiler kompatibel ist." #. type: item #: guix-git/doc/guix.texi:14357 #, no-wrap msgid "--lts-version=@var{version}" msgstr "--lts-version=@var{Version}" #. type: itemx #: guix-git/doc/guix.texi:14358 #, no-wrap msgid "-l @var{version}" msgstr "-l @var{Version}" #. type: table #: guix-git/doc/guix.texi:14361 msgid "@var{version} is the desired LTS release version. If omitted the latest release is used." msgstr "@var{Version} ist die gewünschte Version der LTS-Veröffentlichung. Wird keine angegeben, wird die neueste benutzt." #. type: table #: guix-git/doc/guix.texi:14370 msgid "The command below imports metadata for the HTTP Haskell package included in the LTS Stackage release version 7.18:" msgstr "Der folgende Befehl importiert Metadaten für dasjenige Haskell-„HTTP“-Paket, das in der LTS-Stackage-Veröffentlichung mit Version 7.18 vorkommt:" #. type: example #: guix-git/doc/guix.texi:14373 #, no-wrap msgid "guix import stackage --lts-version=7.18 HTTP\n" msgstr "guix import stackage --lts-version=7.18 HTTP\n" #. type: item #: guix-git/doc/guix.texi:14375 guix-git/doc/guix.texi:14376 #: guix-git/doc/guix.texi:14893 #, no-wrap msgid "elpa" msgstr "elpa" #. type: table #: guix-git/doc/guix.texi:14379 msgid "Import metadata from an Emacs Lisp Package Archive (ELPA) package repository (@pxref{Packages,,, emacs, The GNU Emacs Manual})." msgstr "Metadaten aus der Paketsammlung „Emacs Lisp Package Archive“ (ELPA) importieren (siehe @ref{Packages,,, emacs, The GNU Emacs Manual})." #. type: item #: guix-git/doc/guix.texi:14383 #, no-wrap msgid "--archive=@var{repo}" msgstr "--archive=@var{Repo}" #. type: itemx #: guix-git/doc/guix.texi:14384 #, no-wrap msgid "-a @var{repo}" msgstr "-a @var{Repo}" #. type: table #: guix-git/doc/guix.texi:14388 msgid "@var{repo} identifies the archive repository from which to retrieve the information. Currently the supported repositories and their identifiers are:" msgstr "Mit @var{Repo} wird die Archiv-Sammlung (ein „Repository“) bezeichnet, von dem die Informationen bezogen werden sollen. Derzeit sind die unterstützten Repositorys und ihre Bezeichnungen folgende:" #. type: itemize #: guix-git/doc/guix.texi:14392 msgid "@uref{https://elpa.gnu.org/packages, GNU}, selected by the @code{gnu} identifier. This is the default." msgstr "@uref{https://elpa.gnu.org/packages, GNU}, bezeichnet mit @code{gnu}. Dies ist die Vorgabe." #. type: itemize #: guix-git/doc/guix.texi:14398 msgid "Packages from @code{elpa.gnu.org} are signed with one of the keys contained in the GnuPG keyring at @file{share/emacs/25.1/etc/package-keyring.gpg} (or similar) in the @code{emacs} package (@pxref{Package Installation, ELPA package signatures,, emacs, The GNU Emacs Manual})." msgstr "Pakete aus @code{elpa.gnu.org} wurden mit einem der Schlüssel im GnuPG-Schlüsselbund in @file{share/emacs/25.1/etc/package-keyring.gpg} (oder einem ähnlichen Pfad) des @code{emacs}-Pakets signiert (siehe @ref{Package Installation, ELPA-Paketsignaturen,, emacs, The GNU Emacs Manual})." #. type: itemize #: guix-git/doc/guix.texi:14402 msgid "@uref{https://elpa.nongnu.org/nongnu/, NonGNU}, selected by the @code{nongnu} identifier." msgstr "@uref{https://elpa.nongnu.org/nongnu/, NonGNU}, bezeichnet mit @code{nongnu}." #. type: itemize #: guix-git/doc/guix.texi:14406 msgid "@uref{https://stable.melpa.org/packages, MELPA-Stable}, selected by the @code{melpa-stable} identifier." msgstr "@uref{https://stable.melpa.org/packages, MELPA-Stable}, bezeichnet mit @code{melpa-stable}." #. type: itemize #: guix-git/doc/guix.texi:14410 msgid "@uref{https://melpa.org/packages, MELPA}, selected by the @code{melpa} identifier." msgstr "@uref{https://melpa.org/packages, MELPA}, bezeichnet mit @code{melpa}." #. type: item #: guix-git/doc/guix.texi:14419 guix-git/doc/guix.texi:14420 #: guix-git/doc/guix.texi:14911 #, no-wrap msgid "crate" msgstr "crate" #. type: table #: guix-git/doc/guix.texi:14423 msgid "Import metadata from the crates.io Rust package repository @uref{https://crates.io, crates.io}, as in this example:" msgstr "Metadaten aus der Paketsammlung crates.io für Rust @uref{https://crates.io, crates.io} importieren, wie Sie in diesem Beispiel sehen:" #. type: example #: guix-git/doc/guix.texi:14426 #, no-wrap msgid "guix import crate blake2-rfc\n" msgstr "guix import crate blake2-rfc\n" #. type: table #: guix-git/doc/guix.texi:14429 msgid "The crate importer also allows you to specify a version string:" msgstr "Mit dem Crate-Importer können Sie auch eine Version als Zeichenkette angeben:" #. type: example #: guix-git/doc/guix.texi:14432 #, no-wrap msgid "guix import crate constant-time-eq@@0.1.0\n" msgstr "guix import crate constant-time-eq@@0.1.0\n" #. type: item #: guix-git/doc/guix.texi:14442 #, no-wrap msgid "--recursive-dev-dependencies" msgstr "--recursive-dev-dependencies" #. type: table #: guix-git/doc/guix.texi:14446 msgid "If @option{--recursive-dev-dependencies} is specified, also the recursively imported packages contain their development dependencies, which are recursively imported as well." msgstr "Wenn Sie @option{--recursive-dev-dependencies} angeben, werden zudem auch die „dev-dependencies“ (Development Dependencies) von rekursiv importierten Paketen benutzt und importiert." #. type: item #: guix-git/doc/guix.texi:14446 #, no-wrap msgid "--allow-yanked" msgstr "--allow-yanked" #. type: table #: guix-git/doc/guix.texi:14449 msgid "If no non-yanked version of a crate is available, use the latest yanked version instead instead of aborting." msgstr "Wenn es keine @emph{nicht} zurückgenommene („yanked“) Version einer Crate gibt, wird die neueste zurückgenommene benutzt statt abzubrechen." #. type: cindex #: guix-git/doc/guix.texi:14451 guix-git/doc/guix.texi:14452 #, no-wrap msgid "elm" msgstr "elm" #. type: table #: guix-git/doc/guix.texi:14455 msgid "Import metadata from the Elm package repository @uref{https://package.elm-lang.org, package.elm-lang.org}, as in this example:" msgstr "Metadaten aus der Paketsammlung @uref{https://package.elm-lang.org, package.elm-lang.org} für Elm importieren, wie Sie in diesem Beispiel sehen:" #. type: example #: guix-git/doc/guix.texi:14458 #, no-wrap msgid "guix import elm elm-explorations/webgl\n" msgstr "guix import elm elm-explorations/webgl\n" #. type: table #: guix-git/doc/guix.texi:14461 msgid "The Elm importer also allows you to specify a version string:" msgstr "Mit dem Elm-Importer können Sie auch eine Version als Zeichenkette angeben:" #. type: example #: guix-git/doc/guix.texi:14464 #, no-wrap msgid "guix import elm elm-explorations/webgl@@1.1.3\n" msgstr "guix import elm elm-explorations/webgl@@1.1.3\n" #. type: item #: guix-git/doc/guix.texi:14476 #, no-wrap msgid "npm-binary" msgstr "" #. type: cindex #: guix-git/doc/guix.texi:14477 #, fuzzy, no-wrap #| msgid "rpm" msgid "npm" msgstr "rpm" #. type: cindex #: guix-git/doc/guix.texi:14478 #, no-wrap msgid "Node.js" msgstr "" #. type: table #: guix-git/doc/guix.texi:14481 #, fuzzy #| msgid "Import metadata from the @uref{https://getcomposer.org/, Composer} package archive used by the PHP community, as in this example:" msgid "Import metadata from the @uref{https://registry.npmjs.org, npm Registry}, as in this example:" msgstr "Metadaten aus dem Paketarchiv @uref{https://getcomposer.org/, Composer}, das die PHP-Gemeinschaft verwendet, importieren." #. type: example #: guix-git/doc/guix.texi:14484 #, fuzzy, no-wrap #| msgid "guix import crate blake2-rfc\n" msgid "guix import npm-binary buffer-crc32\n" msgstr "guix import crate blake2-rfc\n" #. type: table #: guix-git/doc/guix.texi:14487 #, fuzzy #| msgid "The hexpm importer also allows you to specify a version string:" msgid "The npm-binary importer also allows you to specify a version string:" msgstr "Mit dem hexpm-Importer können Sie auch eine Version als Zeichenkette angeben:" #. type: example #: guix-git/doc/guix.texi:14490 #, fuzzy, no-wrap #| msgid "guix import hexpm cf@@0.3.0\n" msgid "guix import npm-binary buffer-crc32@@1.0.0\n" msgstr "guix import hexpm cf@@0.3.0\n" #. type: quotation #: guix-git/doc/guix.texi:14497 msgid "Generated package expressions skip the build step of the @code{node-build-system}. As such, generated package expressions often refer to transpiled or generated files, instead of being built from source." msgstr "" #. type: item #: guix-git/doc/guix.texi:14509 #, no-wrap msgid "opam" msgstr "opam" #. type: cindex #: guix-git/doc/guix.texi:14510 #, no-wrap msgid "OPAM" msgstr "OPAM" #. type: cindex #: guix-git/doc/guix.texi:14511 #, no-wrap msgid "OCaml" msgstr "OCaml" #. type: table #: guix-git/doc/guix.texi:14514 msgid "Import metadata from the @uref{https://opam.ocaml.org/, OPAM} package repository used by the OCaml community." msgstr "Metadaten aus der Paketsammlung @uref{https://opam.ocaml.org/, OPAM} der OCaml-Gemeinde importieren." #. type: item #: guix-git/doc/guix.texi:14525 #, no-wrap msgid "composer" msgstr "composer" #. type: cindex #: guix-git/doc/guix.texi:14526 #, no-wrap msgid "Composer" msgstr "Composer" #. type: cindex #: guix-git/doc/guix.texi:14527 #, no-wrap msgid "PHP" msgstr "PHP" #. type: table #: guix-git/doc/guix.texi:14530 msgid "Import metadata from the @uref{https://getcomposer.org/, Composer} package archive used by the PHP community, as in this example:" msgstr "Metadaten aus dem Paketarchiv @uref{https://getcomposer.org/, Composer}, das die PHP-Gemeinschaft verwendet, importieren." #. type: example #: guix-git/doc/guix.texi:14533 #, no-wrap msgid "guix import composer phpunit/phpunit\n" msgstr "guix import composer phpunit/phpunit\n" #. type: item #: guix-git/doc/guix.texi:14543 #, no-wrap msgid "--repo" msgstr "--repo" #. type: table #: guix-git/doc/guix.texi:14547 msgid "By default, packages are searched in the official OPAM repository. This option, which can be used more than once, lets you add other repositories which will be searched for packages. It accepts as valid arguments:" msgstr "Vorgegeben ist, nach Paketen im offiziellen OPAM-Repository zu suchen. Mit dieser Befehlszeilenoption, die mehr als einmal angegeben werden kann, können Sie andere Repositorys hinzufügen, in denen nach Paketen gesucht wird. Als gültige Argumente akzeptiert werden:" #. type: item #: guix-git/doc/guix.texi:14549 #, no-wrap msgid "the name of a known repository - can be one of @code{opam}," msgstr "der Name eines bekannten Repositorys, entweder @code{opam}," #. type: itemize #: guix-git/doc/guix.texi:14552 msgid "@code{coq} (equivalent to @code{coq-released}), @code{coq-core-dev}, @code{coq-extra-dev} or @code{grew}." msgstr "@code{coq} (äquivalent zu @code{coq-released}), @code{coq-core-dev}, @code{coq-extra-dev} oder @code{grew}." #. type: item #: guix-git/doc/guix.texi:14552 #, no-wrap msgid "the URL of a repository as expected by the" msgstr "die URL eines Repository, wie sie der Befehl" #. type: itemize #: guix-git/doc/guix.texi:14556 msgid "@code{opam repository add} command (for instance, the URL equivalent of the above @code{opam} name would be @uref{https://opam.ocaml.org})." msgstr "@code{opam repository add} erfordert (zum Beispiel wäre @uref{https://opam.ocaml.org} die URL, die dem Namen @code{opam} oben entspricht)." #. type: item #: guix-git/doc/guix.texi:14556 #, no-wrap msgid "the path to a local copy of a repository (a directory containing a" msgstr "den Pfad zur lokalen Kopie eines Repositorys (ein Verzeichnis mit" #. type: itemize #: guix-git/doc/guix.texi:14558 msgid "@file{packages/} sub-directory)." msgstr "einem Unterverzeichnis @file{packages/})." #. type: table #: guix-git/doc/guix.texi:14563 msgid "Repositories are assumed to be passed to this option by order of preference. The additional repositories will not replace the default @code{opam} repository, which is always kept as a fallback." msgstr "Die an diese Befehlszeilenoption übergebenen Repositorys sind in der Reihenfolge Ihrer Präferenz anzugeben. Die zusätzlich angegebenen Repositorys ersetzen @emph{nicht} das voreingestellte Repository @code{opam}; es bleibt immer als letzte Möglichkeit stehen." #. type: table #: guix-git/doc/guix.texi:14568 msgid "Also, please note that versions are not compared across repositories. The first repository (from left to right) that has at least one version of a given package will prevail over any others, and the version imported will be the latest one found @emph{in this repository only}." msgstr "Beachten Sie ebenso, dass Versionsnummern mehrerer Repositorys @emph{nicht} verglichen werden, sondern einfach das Paket aus dem ersten Repository (von links nach rechts), das mindestens eine Version des angeforderten Pakets enthält, genommen wird und die importierte Version der neuesten @emph{aus nur diesem Repository} entspricht." #. type: cindex #: guix-git/doc/guix.texi:14571 guix-git/doc/guix.texi:14572 #, no-wrap msgid "go" msgstr "go" #. type: table #: guix-git/doc/guix.texi:14575 msgid "Import metadata for a Go module using @uref{https://proxy.golang.org, proxy.golang.org}." msgstr "Metadaten für ein Go-Modul von @uref{https://proxy.golang.org, proxy.golang.org} importieren." #. type: example #: guix-git/doc/guix.texi:14578 #, no-wrap msgid "guix import go gopkg.in/yaml.v2\n" msgstr "guix import go gopkg.in/yaml.v2\n" #. type: table #: guix-git/doc/guix.texi:14582 msgid "It is possible to use a package specification with a @code{@@VERSION} suffix to import a specific version." msgstr "Es ist möglich, bei der Paketspezifikation ein Suffix @code{@@VERSION} anzugeben, um diese bestimmte Version zu importieren." #. type: item #: guix-git/doc/guix.texi:14591 #, no-wrap msgid "--pin-versions" msgstr "--pin-versions" #. type: table #: guix-git/doc/guix.texi:14599 msgid "When using this option, the importer preserves the exact versions of the Go modules dependencies instead of using their latest available versions. This can be useful when attempting to import packages that recursively depend on former versions of themselves to build. When using this mode, the symbol of the package is made by appending the version to its name, so that multiple versions of the same package can coexist." msgstr "Wenn Sie diese Option verwenden, behält der Importer genau diese Version der Go-Modul-Abhängigkeiten bei, statt die neuesten verfügbaren Versionen zu benutzen. Das kann hilfreich sein, wenn Sie versuchen, Pakete zu importieren, die für deren Erstellung rekursiv von alten Versionen ihrer selbst abhängen. Wenn Sie diesen Modus nutzen, wird das Symbol für das Paket durch Anhängen der Versionsnummer an seinen Namen gebildet, damit mehrere Versionen desselben Pakets gleichzeitig existieren können." #. type: item #: guix-git/doc/guix.texi:14601 guix-git/doc/guix.texi:14602 #: guix-git/doc/guix.texi:14891 #, no-wrap msgid "egg" msgstr "egg" #. type: table #: guix-git/doc/guix.texi:14609 msgid "Import metadata for @uref{https://wiki.call-cc.org/eggs, CHICKEN eggs}. The information is taken from @file{PACKAGE.egg} files found in the @uref{git://code.call-cc.org/eggs-5-all, eggs-5-all} Git repository. However, it does not provide all the information that we need, there is no ``description'' field, and the licenses used are not always precise (BSD is often used instead of BSD-N)." msgstr "Metadaten für @uref{https://wiki.call-cc.org/eggs, CHICKEN-Eggs} importieren. Die Informationen werden aus den @file{PAKET.egg}-Dateien genommen, die im Git-Repository @uref{git://code.call-cc.org/eggs-5-all, eggs-5-all} stehen. Jedoch gibt es dort nicht alle Informationen, die wir brauchen: Ein Feld für die Beschreibung (@code{description}) fehlt und die benutzten Lizenzen sind ungenau (oft wird BSD angegeben statt BSD-N)." #. type: example #: guix-git/doc/guix.texi:14612 #, no-wrap msgid "guix import egg sourcehut\n" msgstr "guix import egg sourcehut\n" #. type: example #: guix-git/doc/guix.texi:14618 #, no-wrap msgid "guix import egg arrays@@1.0\n" msgstr "guix import egg arrays@@1.0\n" #. type: cindex #: guix-git/doc/guix.texi:14629 guix-git/doc/guix.texi:14630 #, no-wrap msgid "hexpm" msgstr "hexpm" #. type: table #: guix-git/doc/guix.texi:14633 msgid "Import metadata from the hex.pm Erlang and Elixir package repository @uref{https://hex.pm, hex.pm}, as in this example:" msgstr "Metadaten aus der Paketsammlung hex.pm für Erlang und Elixir @uref{https://hex.pm, hex.pm} importieren, wie Sie in diesem Beispiel sehen:" #. type: example #: guix-git/doc/guix.texi:14636 #, no-wrap msgid "guix import hexpm stun\n" msgstr "guix import hexpm stun\n" #. type: table #: guix-git/doc/guix.texi:14639 msgid "The importer tries to determine the build system used by the package." msgstr "Der Importer versucht, das richtige Erstellungssystem für das Paket zu erkennen." #. type: table #: guix-git/doc/guix.texi:14641 msgid "The hexpm importer also allows you to specify a version string:" msgstr "Mit dem hexpm-Importer können Sie auch eine Version als Zeichenkette angeben:" #. type: example #: guix-git/doc/guix.texi:14644 #, no-wrap msgid "guix import hexpm cf@@0.3.0\n" msgstr "guix import hexpm cf@@0.3.0\n" #. type: Plain text #: guix-git/doc/guix.texi:14660 msgid "The structure of the @command{guix import} code is modular. It would be useful to have more importers for other package formats, and your help is welcome here (@pxref{Contributing})." msgstr "@command{guix import} verfügt über eine modulare Code-Struktur. Mehr Importer für andere Paketformate zu haben, wäre nützlich, und Ihre Hilfe ist hierbei gerne gesehen (siehe @ref{Contributing})." #. type: section #: guix-git/doc/guix.texi:14662 #, no-wrap msgid "Invoking @command{guix refresh}" msgstr "@command{guix refresh} aufrufen" #. type: command{#1} #: guix-git/doc/guix.texi:14664 #, no-wrap msgid "guix refresh" msgstr "guix refresh" #. type: Plain text #: guix-git/doc/guix.texi:14672 msgid "The primary audience of the @command{guix refresh} command is packagers. As a user, you may be interested in the @option{--with-latest} option, which can bring you package update superpowers built upon @command{guix refresh} (@pxref{Package Transformation Options, @option{--with-latest}}). By default, @command{guix refresh} reports any packages provided by the distribution that are outdated compared to the latest upstream version, like this:" msgstr "Die Zielgruppe des Befehls @command{guix refresh} zum Auffrischen von Paketen sind in erster Linie Paketautoren. Als Nutzer könnten Sie an der Befehlszeilenoption @option{--with-latest} Interesse haben, die auf @command{guix refresh} aufbaut, um Ihnen Superkräfte bei der Paketaktualisierung zu verleihen (siehe @ref{Package Transformation Options, @option{--with-latest}}). Nach Vorgabe werden mit @command{guix refresh} alle Pakete in der Distribution gemeldet, die nicht der neuesten Version des Anbieters entsprechen, indem Sie dies ausführen:" #. type: example #: guix-git/doc/guix.texi:14677 #, no-wrap msgid "" "$ guix refresh\n" "gnu/packages/gettext.scm:29:13: gettext would be upgraded from 0.18.1.1 to 0.18.2.1\n" "gnu/packages/glib.scm:77:12: glib would be upgraded from 2.34.3 to 2.37.0\n" msgstr "" "$ guix refresh\n" "gnu/packages/gettext.scm:29:13: gettext would be upgraded from 0.18.1.1 to 0.18.2.1\n" "gnu/packages/glib.scm:77:12: glib would be upgraded from 2.34.3 to 2.37.0\n" #. type: Plain text #: guix-git/doc/guix.texi:14681 msgid "Alternatively, one can specify packages to consider, in which case a warning is emitted for packages that lack an updater:" msgstr "Alternativ können die zu betrachtenden Pakete dabei angegeben werden, was zur Ausgabe einer Warnung führt, wenn es für Pakete kein Aktualisierungsprogramm gibt:" #. type: example #: guix-git/doc/guix.texi:14686 #, no-wrap msgid "" "$ guix refresh coreutils guile guile-ssh\n" "gnu/packages/ssh.scm:205:2: warning: no updater for guile-ssh\n" "gnu/packages/guile.scm:136:12: guile would be upgraded from 2.0.12 to 2.0.13\n" msgstr "" "$ guix refresh coreutils guile guile-ssh\n" "gnu/packages/ssh.scm:205:2: warning: no updater for guile-ssh\n" "gnu/packages/guile.scm:136:12: guile would be upgraded from 2.0.12 to 2.0.13\n" #. type: Plain text #: guix-git/doc/guix.texi:14695 msgid "@command{guix refresh} browses the upstream repository of each package and determines the highest version number of the releases therein. The command knows how to update specific types of packages: GNU packages, ELPA packages, etc.---see the documentation for @option{--type} below. There are many packages, though, for which it lacks a method to determine whether a new upstream release is available. However, the mechanism is extensible, so feel free to get in touch with us to add a new method!" msgstr "@command{guix refresh} durchsucht die Paketsammlung beim Anbieter jedes Pakets und bestimmt, was die höchste Versionsnummer ist, zu der es dort eine Veröffentlichung gibt. Zum Befehl gehören Aktualisierungsprogramme, mit denen bestimmte Typen von Paketen automatisch aktualisiert werden können: GNU-Pakete, ELPA-Pakete usw.@:@tie{}– siehe die Dokumentation von @option{--type} unten. Es gibt jedoch auch viele Pakete, für die noch keine Methode enthalten ist, um das Vorhandensein einer neuen Veröffentlichung zu prüfen. Der Mechanismus ist aber erweiterbar, also können Sie gerne mit uns in Kontakt treten, wenn Sie eine neue Methode hinzufügen möchten!" #. type: table #: guix-git/doc/guix.texi:14700 msgid "Consider the packages specified, and all the packages upon which they depend." msgstr "Hiermit werden die angegebenen Pakete betrachtet und außerdem alle Pakete, von denen sie abhängen." #. type: example #: guix-git/doc/guix.texi:14708 #, no-wrap msgid "" "$ guix refresh --recursive coreutils\n" "gnu/packages/acl.scm:40:13: acl would be upgraded from 2.2.53 to 2.3.1\n" "gnu/packages/m4.scm:30:12: 1.4.18 is already the latest version of m4\n" "gnu/packages/xml.scm:68:2: warning: no updater for expat\n" "gnu/packages/multiprecision.scm:40:12: 6.1.2 is already the latest version of gmp\n" "@dots{}\n" msgstr "" "$ guix refresh --recursive coreutils\n" "gnu/packages/acl.scm:40:13: acl würde von 2.2.53 auf 2.3.1 aktualisiert\n" "gnu/packages/m4.scm:30:12: 1.4.18 ist bereits die neuste Version von m4\n" "gnu/packages/xml.scm:68:2: Warnung: Kein Aktualisierungsprogramm für expat\n" "gnu/packages/multiprecision.scm:40:12: 6.1.2 ist bereits die neuste Version von gmp\n" "…\n" #. type: Plain text #: guix-git/doc/guix.texi:14717 msgid "If for some reason you don't want to update to the latest version, you can update to a specific version by appending an equal sign and the desired version number to the package specification. Note that not all updaters support this; an error is reported when an updater cannot refresh to the specified version." msgstr "Wenn Sie aus irgendeinem Grund auf eine ältere Version aktualisieren möchten, geht das auch, indem Sie nach der Paketspezifikation ein Gleichheitszeichen und die gewünschte Versionsnummer schreiben. Allerdings können nicht alle Aktualisierungsprogramme damit umgehen; wenn es das Aktualisieren auf die bestimmte Version nicht unterstützt, meldet das Aktualisierungsprogramm einen Fehler." #. type: example #: guix-git/doc/guix.texi:14729 #, no-wrap msgid "" "$ guix refresh trytond-party\n" "gnu/packages/guile.scm:392:2: guile would be upgraded from 3.0.3 to 3.0.5\n" "$ guix refresh -u guile=3.0.4\n" "@dots{}\n" "gnu/packages/guile.scm:392:2: guile: updating from version 3.0.3 to version 3.0.4...\n" "@dots{}\n" "$ guix refresh -u guile@@2.0=2.0.12\n" "@dots{}\n" "gnu/packages/guile.scm:147:2: guile: updating from version 2.0.10 to version 2.0.12...\n" "@dots{}\n" msgstr "" "$ guix refresh trytond-party\n" "gnu/packages/guile.scm:392:2: guile würde von 3.0.3 auf 3.0.5 aktualisiert\n" "$ guix refresh -u guile=3.0.4\n" "…\n" "gnu/packages/guile.scm:392:2: guile: Aktualisiere von Version 3.0.3 auf Version 3.0.4 …\n" "…\n" "$ guix refresh -u guile@@2.0=2.0.12\n" "…\n" "gnu/packages/guile.scm:147:2: guile: Aktualisiere von Version 2.0.10 auf Version 2.0.12 …\n" "…\n" #. type: Plain text #: guix-git/doc/guix.texi:14735 msgid "In some specific cases, you may have many packages specified via a manifest or a module selection which should all be updated together; for these cases, the @option{--target-version} option can be provided to have them all refreshed to the same version, as shown in the examples below:" msgstr "In bestimmten Fällen möchte man viele Pakete, die man über ein Manifest oder eine Modulauswahl angibt, alle zusammen aktualisieren. Für so etwas gibt es die Befehlszeilenoption @option{--target-version}, mit der alle auf die gleiche Version gebracht werden können, wie in diesen Beispielen hier:" #. type: example #: guix-git/doc/guix.texi:14740 #, no-wrap msgid "" "$ guix refresh qtbase qtdeclarative --target-version=6.5.2\n" "gnu/packages/qt.scm:1248:13: qtdeclarative would be upgraded from 6.3.2 to 6.5.2\n" "gnu/packages/qt.scm:584:2: qtbase would be upgraded from 6.3.2 to 6.5.2\n" msgstr "" "$ guix refresh qtbase qtdeclarative --target-version=6.5.2\n" "gnu/packages/qt.scm:1248:13: qtdeclarative würde von 6.3.2 auf 6.5.2 aktualisiert\n" "gnu/packages/qt.scm:584:2: qtbase würde von 6.3.2 auf 6.5.2 aktualisiert\n" #. type: example #: guix-git/doc/guix.texi:14749 #, no-wrap msgid "" "$ guix refresh --manifest=qt5-manifest.scm --target-version=5.15.10\n" "gnu/packages/qt.scm:1173:13: qtxmlpatterns would be upgraded from 5.15.8 to 5.15.10\n" "gnu/packages/qt.scm:1202:13: qtdeclarative would be upgraded from 5.15.8 to 5.15.10\n" "gnu/packages/qt.scm:1762:13: qtserialbus would be upgraded from 5.15.8 to 5.15.10\n" "gnu/packages/qt.scm:2070:13: qtquickcontrols2 would be upgraded from 5.15.8 to 5.15.10\n" "@dots{}\n" msgstr "" "$ guix refresh --manifest=qt5-manifest.scm --target-version=5.15.10\n" "gnu/packages/qt.scm:1173:13: qtxmlpatterns würde von 5.15.8 auf 5.15.10 aktualisiert\n" "gnu/packages/qt.scm:1202:13: qtdeclarative würde von 5.15.8 auf 5.15.10 aktualisiert\n" "gnu/packages/qt.scm:1762:13: qtserialbus würde von 5.15.8 auf 5.15.10 aktualisiert\n" "gnu/packages/qt.scm:2070:13: qtquickcontrols2 würde von 5.15.8 auf 5.15.10 aktualisiert\n" "…\n" #. type: Plain text #: guix-git/doc/guix.texi:14755 msgid "Sometimes the upstream name differs from the package name used in Guix, and @command{guix refresh} needs a little help. Most updaters honor the @code{upstream-name} property in package definitions, which can be used to that effect:" msgstr "Manchmal unterscheidet sich der vom Anbieter benutzte Name von dem Paketnamen, der in Guix verwendet wird, so dass @command{guix refresh} etwas Unterstützung braucht. Die meisten Aktualisierungsprogramme folgen der Eigenschaft @code{upstream-name} in Paketdefinitionen, die diese Unterstützung bieten kann." #. type: lisp #: guix-git/doc/guix.texi:14762 #, no-wrap msgid "" "(define-public network-manager\n" " (package\n" " (name \"network-manager\")\n" " ;; @dots{}\n" " (properties '((upstream-name . \"NetworkManager\")))))\n" msgstr "" "(define-public network-manager\n" " (package\n" " (name \"network-manager\")\n" " ;; …\n" " (properties '((upstream-name . \"NetworkManager\")))))\n" #. type: Plain text #: guix-git/doc/guix.texi:14772 msgid "When passed @option{--update}, it modifies distribution source files to update the version numbers and source code hashes of those package definitions, as well as possibly their inputs (@pxref{Defining Packages}). This is achieved by downloading each package's latest source tarball and its associated OpenPGP signature, authenticating the downloaded tarball against its signature using @command{gpgv}, and finally computing its hash---note that GnuPG must be installed and in @code{$PATH}; run @code{guix install gnupg} if needed." msgstr "Wenn @option{--update} übergeben wird, werden die Quelldateien der Distribution verändert, so dass für diese Paketdefinitionen und, wenn möglich, für deren Eingaben die aktuelle Version und die aktuelle Hash-Prüfsumme des Quellcodes eingetragen wird (siehe @ref{Defining Packages}). Dazu werden der neueste Quellcode-Tarball jedes Pakets sowie die jeweils zugehörige OpenPGP-Signatur heruntergeladen; mit Letzterer wird der heruntergeladene Tarball gegen seine Signatur mit @command{gpgv} authentifiziert und schließlich dessen Hash berechnet. Beachten Sie, dass GnuPG dazu installiert sein und in @code{$PATH} vorkommen muss. Falls dies nicht der Fall ist, führen Sie @code{guix install gnupg} aus." #. type: Plain text #: guix-git/doc/guix.texi:14778 msgid "When the public key used to sign the tarball is missing from the user's keyring, an attempt is made to automatically retrieve it from a public key server; when this is successful, the key is added to the user's keyring; otherwise, @command{guix refresh} reports an error." msgstr "Wenn der öffentliche Schlüssel, mit dem der Tarball signiert wurde, im Schlüsselbund des Benutzers fehlt, wird versucht, ihn automatisch von einem Schlüssel-Server zu holen. Wenn das klappt, wird der Schlüssel zum Schlüsselbund des Benutzers hinzugefügt, ansonsten meldet @command{guix refresh} einen Fehler." #. type: Plain text #: guix-git/doc/guix.texi:14780 msgid "The following options are supported:" msgstr "Die folgenden Befehlszeilenoptionen werden unterstützt:" #. type: table #: guix-git/doc/guix.texi:14788 guix-git/doc/guix.texi:15896 msgid "This is useful to precisely refer to a package, as in this example:" msgstr "Dies ist nützlich, um genau ein bestimmtes Paket zu referenzieren, wie in diesem Beispiel:" #. type: example #: guix-git/doc/guix.texi:14791 #, no-wrap msgid "guix refresh -l -e '(@@@@ (gnu packages commencement) glibc-final)'\n" msgstr "guix refresh -l -e '(@@@@ (gnu packages commencement) glibc-final)'\n" #. type: table #: guix-git/doc/guix.texi:14795 msgid "This command lists the dependents of the ``final'' libc (essentially all the packages)." msgstr "Dieser Befehls listet auf, was alles von der „endgültigen“ Erstellung von libc abhängt (praktisch alle Pakete)." #. type: table #: guix-git/doc/guix.texi:14801 msgid "Update distribution source files (package definitions) in place. This is usually run from a checkout of the Guix source tree (@pxref{Running Guix Before It Is Installed}):" msgstr "Die Quelldateien der Distribution (die Paketdefinitionen) werden direkt „in place“ verändert. Normalerweise führen Sie dies aus einem Checkout des Guix-Quellbaums heraus aus (siehe @ref{Running Guix Before It Is Installed}):" #. type: example #: guix-git/doc/guix.texi:14804 #, no-wrap msgid "./pre-inst-env guix refresh -s non-core -u\n" msgstr "./pre-inst-env guix refresh -s non-core -u\n" #. type: table #: guix-git/doc/guix.texi:14808 msgid "@xref{Defining Packages}, for more information on package definitions. You can also run it on packages from a third-party channel:" msgstr "Siehe @ref{Defining Packages} für mehr Informationen zu Paketdefinitionen. Sie können es auch auf Paketen eines Drittanbieterkanals ausführen." #. type: example #: guix-git/doc/guix.texi:14811 #, no-wrap msgid "guix refresh -L /path/to/channel -u @var{package}\n" msgstr "guix refresh -L /pfad/zum/kanal -u @var{Paket}\n" #. type: table #: guix-git/doc/guix.texi:14814 msgid "@xref{Creating a Channel}, on how to create a channel." msgstr "Siehe @ref{Creating a Channel} für Informationen, wie Sie einen Kanal anlegen." #. type: table #: guix-git/doc/guix.texi:14820 msgid "This command updates the version and source code hash of the package. Depending on the updater being used, it can also update the various @samp{inputs} fields of the package. In some cases, the updater might get inputs wrong---it might not know about an extra input that's necessary, or it might add an input that should be avoided." msgstr "Mit diesem Befehl bringen Sie die Version und die Hash-Prüfsumme des Quellcodes in dem Paket auf den neuesten Stand. Je nachdem, welches Aktualisierungsprogramm dafür eingesetzt wird, kann es sogar die Eingaben im Feld @samp{inputs} des Pakets aktualisieren. Es kommt vor, dass sich dabei Fehler in die Eingaben einschleichen@tie{}– vielleicht fehlt eine zusätzliche notwendige Eingabe oder es wird eine hinzugefügt, die @emph{nicht} erwünscht ist." #. type: cindex #: guix-git/doc/guix.texi:14821 #, no-wrap msgid "@code{updater-extra-inputs}, package property" msgstr "@code{updater-extra-inputs}, Paketeigenschaft" #. type: cindex #: guix-git/doc/guix.texi:14822 #, no-wrap msgid "@code{updater-ignored-inputs}, package property" msgstr "@code{updater-ignored-inputs}, Paketeigenschaft" #. type: table #: guix-git/doc/guix.texi:14830 msgid "To address that, packagers can add properties stating inputs that should be added to those found by the updater or inputs that should be ignored: the @code{updater-extra-inputs} and @code{updater-ignored-inputs} properties pertain to ``regular'' inputs, and there are equivalent properties for @samp{native} and @samp{propagated} inputs. In the example below, we tell the updater that we need @samp{openmpi} as an additional input:" msgstr "Um damit leichter umzugehen, können Paketautoren die Eingaben, die außer den vom Aktualisierungsprogramm gefundenen Eingaben in Guix noch zusätzlich nötig sind, oder solche, die ignoriert werden sollen, in den Eigenschaften des Pakets hinterlegen: Es gibt die Eigenschaften @code{updater-extra-inputs} und @code{updater-ignored-inputs}, wenn es um „normale“ Abhängigkeiten geht, und entsprechende Eigenschaften für @code{native-inputs} und @code{propagated-inputs}. Folgendes Beispiel zeigt, wie das Aktualisierungsprogramm auf @samp{openmpi} als eine zusätzliche Eingabe hingewiesen wird:" #. type: lisp #: guix-git/doc/guix.texi:14839 #, no-wrap msgid "" "(define-public python-mpi4py\n" " (package\n" " (name \"python-mpi4py\")\n" " ;; @dots{}\n" " (inputs (list openmpi))\n" " (properties\n" " '((updater-extra-inputs . (\"openmpi\"))))))\n" msgstr "" "(define-public python-mpi4py\n" " (package\n" " (name \"python-mpi4py\")\n" " ;; …\n" " (inputs (list openmpi))\n" " (properties\n" " '((updater-extra-inputs . (\"openmpi\"))))))\n" #. type: table #: guix-git/doc/guix.texi:14844 msgid "That way, @command{guix refresh -u python-mpi4py} will leave the @samp{openmpi} input, even if it is not among the inputs it would normally add." msgstr "So wird bei @command{guix refresh -u python-mpi4py} die Eingabe @samp{openmpi} nicht mehr entfernt, obwohl es keine der Eingaben ist, die von sich aus hinzugefügt würden." #. type: item #: guix-git/doc/guix.texi:14845 #, no-wrap msgid "--select=[@var{subset}]" msgstr "--select=[@var{Teilmenge}]" #. type: itemx #: guix-git/doc/guix.texi:14846 #, no-wrap msgid "-s @var{subset}" msgstr "-s @var{Teilmenge}" #. type: table #: guix-git/doc/guix.texi:14849 msgid "Select all the packages in @var{subset}, one of @code{core}, @code{non-core} or @code{module:@var{name}}." msgstr "Wählt alle Pakete aus der @var{Teilmenge} aus, die entweder @code{core}, @code{non-core} oder @code{module:@var{Name}} sein muss." #. type: table #: guix-git/doc/guix.texi:14856 msgid "The @code{core} subset refers to all the packages at the core of the distribution---i.e., packages that are used to build ``everything else''. This includes GCC, libc, Binutils, Bash, etc. Usually, changing one of these packages in the distribution entails a rebuild of all the others. Thus, such updates are an inconvenience to users in terms of build time or bandwidth used to achieve the upgrade." msgstr "Die @code{core}-Teilmenge bezieht sich auf alle Pakete, die den Kern der Distribution ausmachen, d.h.@: Pakete, aus denen heraus „alles andere“ erstellt wird. Dazu gehören GCC, libc, Binutils, Bash und so weiter. In der Regel ist die Folge einer Änderung an einem dieser Pakete in der Distribution, dass alle anderen neu erstellt werden müssen. Daher sind solche Änderungen unangenehm für Nutzer, weil sie einiges an Erstellungszeit oder Bandbreite investieren müssen, um die Aktualisierung abzuschließen." #. type: table #: guix-git/doc/guix.texi:14860 msgid "The @code{non-core} subset refers to the remaining packages. It is typically useful in cases where an update of the core packages would be inconvenient." msgstr "Die @code{non-core}-Teilmenge bezieht sich auf die übrigen Pakete. Sie wird typischerweise dann benutzt, wenn eine Aktualisierung der Kernpakete zu viele Umstände machen würde." #. type: table #: guix-git/doc/guix.texi:14865 msgid "The @code{module:@var{name}} subset refers to all the packages in a specified guile module. The module can be specified as @code{module:guile} or @code{module:(gnu packages guile)}, the former is a shorthand for the later." msgstr "Wenn als Teilmenge @code{module:@var{Name}} angegeben wird, werden alle Pakete in dem angegebenen Guile-Modul ausgewählt. Das Modul kann als z.B.@: @code{module:guile} oder @code{module:(gnu packages guile)} angegeben werden, erstere ist die Kurzform für die andere." #. type: table #: guix-git/doc/guix.texi:14870 msgid "Select all the packages from the manifest in @var{file}. This is useful to check if any packages of the user manifest can be updated." msgstr "Wählt alle Pakete im in der @var{Datei} stehenden Manifest aus. Das ist nützlich, um zu überprüfen, welche Pakete aus dem Manifest des Nutzers aktualisiert werden können." #. type: item #: guix-git/doc/guix.texi:14871 #, no-wrap msgid "--type=@var{updater}" msgstr "--type=@var{Aktualisierungsprogramm}" #. type: itemx #: guix-git/doc/guix.texi:14872 #, no-wrap msgid "-t @var{updater}" msgstr "-t @var{Aktualisierungsprogramm}" #. type: table #: guix-git/doc/guix.texi:14875 msgid "Select only packages handled by @var{updater} (may be a comma-separated list of updaters). Currently, @var{updater} may be one of:" msgstr "Nur solche Pakete auswählen, die vom angegebenen @var{Aktualisierungsprogramm} behandelt werden. Es darf auch eine kommagetrennte Liste mehrerer Aktualisierungsprogramme angegeben werden. Zurzeit kann als @var{Aktualisierungsprogramm} eines der folgenden angegeben werden:" #. type: table #: guix-git/doc/guix.texi:14879 msgid "the updater for GNU packages;" msgstr "Aktualisierungsprogramm für GNU-Pakete," #. type: item #: guix-git/doc/guix.texi:14879 #, no-wrap msgid "savannah" msgstr "savannah" #. type: table #: guix-git/doc/guix.texi:14881 msgid "the updater for packages hosted at @uref{https://savannah.gnu.org, Savannah};" msgstr "Aktualisierungsprogramm auf @uref{https://savannah.gnu.org, Savannah} angebotener Pakete," #. type: item #: guix-git/doc/guix.texi:14881 #, no-wrap msgid "sourceforge" msgstr "sourceforge" #. type: table #: guix-git/doc/guix.texi:14883 msgid "the updater for packages hosted at @uref{https://sourceforge.net, SourceForge};" msgstr "Aktualisierungsprogramm auf @uref{https://sourceforge.net, SourceForge} angebotener Pakete," #. type: item #: guix-git/doc/guix.texi:14883 #, no-wrap msgid "gnome" msgstr "gnome" #. type: table #: guix-git/doc/guix.texi:14885 msgid "the updater for GNOME packages;" msgstr "Aktualisierungsprogramm für GNOME-Pakete," #. type: item #: guix-git/doc/guix.texi:14885 #, no-wrap msgid "kde" msgstr "kde" #. type: table #: guix-git/doc/guix.texi:14887 msgid "the updater for KDE packages;" msgstr "Aktualisierungsprogramm für KDE-Pakete," #. type: item #: guix-git/doc/guix.texi:14887 #, no-wrap msgid "xorg" msgstr "xorg" #. type: table #: guix-git/doc/guix.texi:14889 msgid "the updater for X.org packages;" msgstr "Aktualisierungsprogramm für X.org-Pakete," #. type: item #: guix-git/doc/guix.texi:14889 #, no-wrap msgid "kernel.org" msgstr "kernel.org" #. type: table #: guix-git/doc/guix.texi:14891 msgid "the updater for packages hosted on kernel.org;" msgstr "Aktualisierungsprogramm auf kernel.org angebotener Pakete," #. type: table #: guix-git/doc/guix.texi:14893 msgid "the updater for @uref{https://wiki.call-cc.org/eggs/, Egg} packages;" msgstr "Aktualisierungsprogramm für @uref{https://wiki.call-cc.org/eggs/, Egg-Pakete}," #. type: table #: guix-git/doc/guix.texi:14895 msgid "the updater for @uref{https://elpa.gnu.org/, ELPA} packages;" msgstr "Aktualisierungsprogramm für @uref{https://elpa.gnu.org/, ELPA-Pakete}," #. type: table #: guix-git/doc/guix.texi:14897 msgid "the updater for @uref{https://cran.r-project.org/, CRAN} packages;" msgstr "Aktualisierungsprogramm für @uref{https://cran.r-project.org/, CRAN-Pakete}," #. type: item #: guix-git/doc/guix.texi:14897 #, no-wrap msgid "bioconductor" msgstr "bioconductor" #. type: table #: guix-git/doc/guix.texi:14899 msgid "the updater for @uref{https://www.bioconductor.org/, Bioconductor} R packages;" msgstr "Aktualisierungsprogramm für R-Pakete vom @uref{https://www.bioconductor.org/, Bioconductor}," #. type: table #: guix-git/doc/guix.texi:14901 msgid "the updater for @uref{https://www.cpan.org/, CPAN} packages;" msgstr "Aktualisierungsprogramm für @uref{https://www.cpan.org/, CPAN-Pakete}," #. type: table #: guix-git/doc/guix.texi:14903 msgid "the updater for @uref{https://pypi.python.org, PyPI} packages." msgstr "Aktualisierungsprogramm für @uref{https://pypi.python.org, PyPI-Pakete}," #. type: table #: guix-git/doc/guix.texi:14905 msgid "the updater for @uref{https://rubygems.org, RubyGems} packages." msgstr "Aktualisierungsprogramm für @uref{https://rubygems.org, RubyGems-Pakete}." #. type: item #: guix-git/doc/guix.texi:14905 #, no-wrap msgid "github" msgstr "github" #. type: table #: guix-git/doc/guix.texi:14907 msgid "the updater for @uref{https://github.com, GitHub} packages." msgstr "Aktualisierungsprogramm für @uref{https://github.com, GitHub-Pakete}." #. type: table #: guix-git/doc/guix.texi:14909 msgid "the updater for @uref{https://hackage.haskell.org, Hackage} packages." msgstr "Aktualisierungsprogramm für @uref{https://hackage.haskell.org, Hackage-Pakete}." #. type: table #: guix-git/doc/guix.texi:14911 msgid "the updater for @uref{https://www.stackage.org, Stackage} packages." msgstr "Aktualisierungsprogramm für @uref{https://www.stackage.org, Stackage-Pakete}." #. type: table #: guix-git/doc/guix.texi:14913 msgid "the updater for @uref{https://crates.io, Crates} packages." msgstr "Aktualisierungsprogramm für @uref{https://crates.io, Crates-Pakete}." #. type: item #: guix-git/doc/guix.texi:14913 #, no-wrap msgid "launchpad" msgstr "launchpad" #. type: table #: guix-git/doc/guix.texi:14915 msgid "the updater for @uref{https://launchpad.net, Launchpad} packages." msgstr "Aktualisierungsprogramm für @uref{https://launchpad.net, Launchpad}." #. type: item #: guix-git/doc/guix.texi:14915 #, no-wrap msgid "generic-html" msgstr "generic-html" #. type: table #: guix-git/doc/guix.texi:14919 msgid "a generic updater that crawls the HTML page where the source tarball of the package is hosted, when applicable, or the HTML page specified by the @code{release-monitoring-url} property of the package." msgstr "allgemeines Aktualisierungsprogramm, das mit einem Webcrawler die HTML-Seite, auf der der Quell-Tarball des Pakets angeboten wird, falls vorhanden, durchsucht. Wenn das Paket über die Eigenschaft @code{release-monitoring-url} verfügt, wird stattdessen diese URL durchsucht." #. type: item #: guix-git/doc/guix.texi:14920 #, no-wrap msgid "generic-git" msgstr "generic-git" #. type: table #: guix-git/doc/guix.texi:14925 msgid "a generic updater for packages hosted on Git repositories. It tries to be smart about parsing Git tag names, but if it is not able to parse the tag name and compare tags correctly, users can define the following properties for a package." msgstr "allgemeines Aktualisierungsprogramm, das auf in Git-Repositorys angebotene Pakete anwendbar ist. Es wird versucht, Versionen anhand der Namen von Git-Tags zu erkennen, aber wenn Tag-Namen nicht korrekt zerteilt und verglichen werden, können Anwender die folgenden Eigenschaften im Paket festlegen." #. type: item #: guix-git/doc/guix.texi:14927 #, no-wrap msgid "@code{release-tag-prefix}: a regular expression for matching a prefix of" msgstr "@code{release-tag-prefix}: einen regulären Ausdruck, der zum Präfix des" #. type: itemize #: guix-git/doc/guix.texi:14929 guix-git/doc/guix.texi:14932 msgid "the tag name." msgstr "Tag-Namens passt." #. type: item #: guix-git/doc/guix.texi:14930 #, no-wrap msgid "@code{release-tag-suffix}: a regular expression for matching a suffix of" msgstr "@code{release-tag-suffix}: einen regulären Ausdruck, der zum Suffix des" #. type: item #: guix-git/doc/guix.texi:14933 #, no-wrap msgid "@code{release-tag-version-delimiter}: a string used as the delimiter in" msgstr "@code{release-tag-version-delimiter}: eine Zeichenkette, die im" #. type: itemize #: guix-git/doc/guix.texi:14935 msgid "the tag name for separating the numbers of the version." msgstr "Tag-Namen die Zahlen trennt, aus denen sich die Version zusammensetzt." #. type: item #: guix-git/doc/guix.texi:14936 #, no-wrap msgid "@code{accept-pre-releases}: by default, the updater will ignore" msgstr "@code{accept-pre-releases}: ob Vorabveröffentlichungen berücksichtigt" #. type: itemize #: guix-git/doc/guix.texi:14939 msgid "pre-releases; to make it also look for pre-releases, set the this property to @code{#t}." msgstr "werden sollen. Vorgegeben ist, sie zu ignorieren. Setzen Sie dies auf @code{#t}, um sie hinzuzunehmen." #. type: lisp #: guix-git/doc/guix.texi:14950 #, no-wrap msgid "" "(package\n" " (name \"foo\")\n" " ;; ...\n" " (properties\n" " '((release-tag-prefix . \"^release0-\")\n" " (release-tag-suffix . \"[a-z]?$\")\n" " (release-tag-version-delimiter . \":\"))))\n" msgstr "" "(package\n" " (name \"foo\")\n" " ;; …\n" " (properties\n" " '((release-tag-prefix . \"^release0-\")\n" " (release-tag-suffix . \"[a-z]?$\")\n" " (release-tag-version-delimiter . \":\"))))\n" #. type: table #: guix-git/doc/guix.texi:14957 msgid "For instance, the following command only checks for updates of Emacs packages hosted at @code{elpa.gnu.org} and for updates of CRAN packages:" msgstr "Zum Beispiel prüft folgender Befehl nur auf mögliche Aktualisierungen von auf @code{elpa.gnu.org} angebotenen Emacs-Paketen und von CRAN-Paketen:" #. type: example #: guix-git/doc/guix.texi:14962 #, no-wrap msgid "" "$ guix refresh --type=elpa,cran\n" "gnu/packages/statistics.scm:819:13: r-testthat would be upgraded from 0.10.0 to 0.11.0\n" "gnu/packages/emacs.scm:856:13: emacs-auctex would be upgraded from 11.88.6 to 11.88.9\n" msgstr "" "$ guix refresh --type=elpa,cran\n" "gnu/packages/statistics.scm:819:13: r-testthat would be upgraded from 0.10.0 to 0.11.0\n" "gnu/packages/emacs.scm:856:13: emacs-auctex would be upgraded from 11.88.6 to 11.88.9\n" #. type: item #: guix-git/doc/guix.texi:14964 #, no-wrap msgid "--list-updaters" msgstr "--list-updaters" #. type: table #: guix-git/doc/guix.texi:14966 msgid "List available updaters and exit (see @option{--type} above)." msgstr "Eine Liste verfügbarer Aktualisierungsprogramme anzeigen und terminieren (siehe @option{--type} oben)." #. type: table #: guix-git/doc/guix.texi:14969 msgid "For each updater, display the fraction of packages it covers; at the end, display the fraction of packages covered by all these updaters." msgstr "Für jedes Aktualisierungsprogramm den Anteil der davon betroffenen Pakete anzeigen; zum Schluss wird der Gesamtanteil von irgendeinem Aktualisierungsprogramm betroffener Pakete angezeigt." #. type: Plain text #: guix-git/doc/guix.texi:14973 msgid "In addition, @command{guix refresh} can be passed one or more package names, as in this example:" msgstr "An @command{guix refresh} können auch ein oder mehrere Paketnamen übergeben werden wie in diesem Beispiel:" #. type: example #: guix-git/doc/guix.texi:14976 #, no-wrap msgid "$ ./pre-inst-env guix refresh -u emacs idutils gcc@@4.8\n" msgstr "$ ./pre-inst-env guix refresh -u emacs idutils gcc@@4.8\n" #. type: Plain text #: guix-git/doc/guix.texi:14983 msgid "The command above specifically updates the @code{emacs} and @code{idutils} packages. The @option{--select} option would have no effect in this case. You might also want to update definitions that correspond to the packages installed in your profile:" msgstr "Der Befehl oben aktualisiert speziell das @code{emacs}- und das @code{idutils}-Paket. Eine Befehlszeilenoption @option{--select} hätte dann keine Wirkung. Vielleicht möchten Sie auch die Definitionen zu den in Ihr Profil installierten Paketen aktualisieren:" #. type: example #: guix-git/doc/guix.texi:14987 #, no-wrap msgid "" "$ ./pre-inst-env guix refresh -u \\\n" " $(guix package --list-installed | cut -f1)\n" msgstr "" "$ ./pre-inst-env guix refresh -u \\\n" " $(guix package --list-installed | cut -f1)\n" #. type: Plain text #: guix-git/doc/guix.texi:14993 msgid "When considering whether to upgrade a package, it is sometimes convenient to know which packages would be affected by the upgrade and should be checked for compatibility. For this the following option may be used when passing @command{guix refresh} one or more package names:" msgstr "Wenn Sie sich fragen, ob ein Paket aktualisiert werden sollte oder nicht, kann es helfen, sich anzuschauen, welche Pakete von der Aktualisierung betroffen wären und auf Kompatibilität hin geprüft werden sollten. Dazu kann die folgende Befehlszeilenoption zusammen mit einem oder mehreren Paketnamen an @command{guix refresh} übergeben werden:" #. type: item #: guix-git/doc/guix.texi:14996 #, no-wrap msgid "--list-dependent" msgstr "--list-dependent" #. type: itemx #: guix-git/doc/guix.texi:14997 guix-git/doc/guix.texi:15275 #: guix-git/doc/guix.texi:15467 #, no-wrap msgid "-l" msgstr "-l" #. type: table #: guix-git/doc/guix.texi:15000 msgid "List top-level dependent packages that would need to be rebuilt as a result of upgrading one or more packages." msgstr "Auflisten, welche abhängigen Pakete auf oberster Ebene neu erstellt werden müssten, wenn eines oder mehrere Pakete aktualisiert würden." #. type: table #: guix-git/doc/guix.texi:15004 msgid "@xref{Invoking guix graph, the @code{reverse-package} type of @command{guix graph}}, for information on how to visualize the list of dependents of a package." msgstr "Siehe @ref{Invoking guix graph, den @code{reverse-package}-Typ von @command{guix graph}} für Informationen dazu, wie Sie die Liste der Abhängigen eines Pakets visualisieren können." #. type: Plain text #: guix-git/doc/guix.texi:15010 msgid "Be aware that the @option{--list-dependent} option only @emph{approximates} the rebuilds that would be required as a result of an upgrade. More rebuilds might be required under some circumstances." msgstr "Bedenken Sie, dass die Befehlszeilenoption @option{--list-dependent} das Ausmaß der nach einer Aktualisierungen benötigten Neuerstellungen nur @emph{annähert}. Es könnten auch unter Umständen mehr Neuerstellungen anfallen." #. type: example #: guix-git/doc/guix.texi:15015 #, no-wrap msgid "" "$ guix refresh --list-dependent flex\n" "Building the following 120 packages would ensure 213 dependent packages are rebuilt:\n" "hop@@2.4.0 emacs-geiser@@0.13 notmuch@@0.18 mu@@0.9.9.5 cflow@@1.4 idutils@@4.6 @dots{}\n" msgstr "" "$ guix refresh --list-dependent flex\n" "Die folgenden 120 Pakete zu erstellen, würde zur Folge haben, dass 213 abhängige Pakete neu erstellt werden:\n" "hop@@2.4.0 emacs-geiser@@0.13 notmuch@@0.18 mu@@0.9.9.5 cflow@@1.4 idutils@@4.6 …\n" #. type: Plain text #: guix-git/doc/guix.texi:15019 msgid "The command above lists a set of packages that could be built to check for compatibility with an upgraded @code{flex} package." msgstr "Der oben stehende Befehl gibt einen Satz von Paketen aus, die Sie erstellen wollen könnten, um die Kompatibilität einer Aktualisierung des @code{flex}-Pakets beurteilen zu können." #. type: item #: guix-git/doc/guix.texi:15022 #, no-wrap msgid "--list-transitive" msgstr "--list-transitive" #. type: itemx #: guix-git/doc/guix.texi:15023 #, no-wrap msgid "-T" msgstr "-T" #. type: table #: guix-git/doc/guix.texi:15025 msgid "List all the packages which one or more packages depend upon." msgstr "Die Pakete auflisten, von denen eines oder mehrere Pakete abhängen." #. type: example #: guix-git/doc/guix.texi:15030 #, no-wrap msgid "" "$ guix refresh --list-transitive flex\n" "flex@@2.6.4 depends on the following 25 packages: perl@@5.28.0 help2man@@1.47.6\n" "bison@@3.0.5 indent@@2.2.10 tar@@1.30 gzip@@1.9 bzip2@@1.0.6 xz@@5.2.4 file@@5.33 @dots{}\n" msgstr "" "$ guix refresh --list-transitive flex\n" "flex@@2.6.4 hängt von den folgenden 25 Paketen ab: perl@@5.28.0 help2man@@1.47.6\n" "bison@@3.0.5 indent@@2.2.10 tar@@1.30 gzip@@1.9 bzip2@@1.0.6 xz@@5.2.4 file@@5.33 …\n" #. type: Plain text #: guix-git/doc/guix.texi:15036 msgid "The command above lists a set of packages which, when changed, would cause @code{flex} to be rebuilt." msgstr "Der oben stehende Befehl gibt einen Satz von Paketen aus, die, wenn sie geändert würden, eine Neuerstellung des @code{flex}-Pakets auslösen würden." #. type: Plain text #: guix-git/doc/guix.texi:15038 msgid "The following options can be used to customize GnuPG operation:" msgstr "Mit den folgenden Befehlszeilenoptionen können Sie das Verhalten von GnuPG anpassen:" #. type: item #: guix-git/doc/guix.texi:15041 #, no-wrap msgid "--gpg=@var{command}" msgstr "--gpg=@var{Befehl}" #. type: table #: guix-git/doc/guix.texi:15044 msgid "Use @var{command} as the GnuPG 2.x command. @var{command} is searched for in @code{$PATH}." msgstr "Den @var{Befehl} als GnuPG-2.x-Befehl einsetzen. Der @var{Befehl} wird im @code{$PATH} gesucht." #. type: item #: guix-git/doc/guix.texi:15045 #, no-wrap msgid "--keyring=@var{file}" msgstr "--keyring=@var{Datei}" #. type: table #: guix-git/doc/guix.texi:15051 msgid "Use @var{file} as the keyring for upstream keys. @var{file} must be in the @dfn{keybox format}. Keybox files usually have a name ending in @file{.kbx} and the GNU@tie{}Privacy Guard (GPG) can manipulate these files (@pxref{kbxutil, @command{kbxutil},, gnupg, Using the GNU Privacy Guard}, for information on a tool to manipulate keybox files)." msgstr "Die @var{Datei} als Schlüsselbund mit Anbieterschlüsseln verwenden. Die @var{Datei} muss im @dfn{Keybox-Format} vorliegen. Keybox-Dateien haben normalerweise einen Namen, der auf @file{.kbx} endet. Sie können mit Hilfe von GNU@tie{}Privacy Guard (GPG) bearbeitet werden (siehe @ref{kbxutil, @command{kbxutil},, gnupg, Using the GNU Privacy Guard} für Informationen über ein Werkzeug zum Bearbeiten von Keybox-Dateien)." #. type: table #: guix-git/doc/guix.texi:15057 msgid "When this option is omitted, @command{guix refresh} uses @file{~/.config/guix/upstream/trustedkeys.kbx} as the keyring for upstream signing keys. OpenPGP signatures are checked against keys from this keyring; missing keys are downloaded to this keyring as well (see @option{--key-download} below)." msgstr "Wenn diese Befehlszeilenoption nicht angegeben wird, benutzt @command{guix refresh} die Keybox-Datei @file{~/.config/guix/upstream/trustedkeys.kbx} als Schlüsselbund für Signierschlüssel von Anbietern. OpenPGP-Signaturen werden mit Schlüsseln aus diesem Schlüsselbund überprüft; fehlende Schlüssel werden auch in diesen Schlüsselbund heruntergeladen (siehe @option{--key-download} unten)." #. type: table #: guix-git/doc/guix.texi:15060 msgid "You can export keys from your default GPG keyring into a keybox file using commands like this one:" msgstr "Sie können Schlüssel aus Ihrem normalerweise benutzten GPG-Schlüsselbund in eine Keybox-Datei exportieren, indem Sie Befehle wie diesen benutzen:" #. type: example #: guix-git/doc/guix.texi:15063 #, no-wrap msgid "gpg --export rms@@gnu.org | kbxutil --import-openpgp >> mykeyring.kbx\n" msgstr "gpg --export rms@@gnu.org | kbxutil --import-openpgp >> mykeyring.kbx\n" #. type: table #: guix-git/doc/guix.texi:15066 msgid "Likewise, you can fetch keys to a specific keybox file like this:" msgstr "Ebenso können Sie wie folgt Schlüssel in eine bestimmte Keybox-Datei herunterladen:" #. type: example #: guix-git/doc/guix.texi:15070 #, no-wrap msgid "" "gpg --no-default-keyring --keyring mykeyring.kbx \\\n" " --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n" msgstr "" "gpg --no-default-keyring --keyring mykeyring.kbx \\\n" " --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n" #. type: table #: guix-git/doc/guix.texi:15074 msgid "@xref{GPG Configuration Options, @option{--keyring},, gnupg, Using the GNU Privacy Guard}, for more information on GPG's @option{--keyring} option." msgstr "Siehe @ref{GPG Configuration Options, @option{--keyring},, gnupg, Using the GNU Privacy Guard} für mehr Informationen zur Befehlszeilenoption @option{--keyring} von GPG." #. type: table #: guix-git/doc/guix.texi:15078 msgid "Handle missing OpenPGP keys according to @var{policy}, which may be one of:" msgstr "Fehlende OpenPGP-Schlüssel gemäß dieser @var{Richtlinie} behandeln, für die eine der Folgenden angegeben werden kann:" #. type: item #: guix-git/doc/guix.texi:15080 guix-git/doc/guix.texi:15310 #: guix-git/doc/guix.texi:27272 #, no-wrap msgid "always" msgstr "always" #. type: table #: guix-git/doc/guix.texi:15083 msgid "Always download missing OpenPGP keys from the key server, and add them to the user's GnuPG keyring." msgstr "Immer fehlende OpenPGP-Schlüssel herunterladen und zum GnuPG-Schlüsselbund des Nutzers hinzufügen." #. type: item #: guix-git/doc/guix.texi:15084 guix-git/doc/guix.texi:27274 #, no-wrap msgid "never" msgstr "never" #. type: table #: guix-git/doc/guix.texi:15086 msgid "Never try to download missing OpenPGP keys. Instead just bail out." msgstr "Niemals fehlende OpenPGP-Schlüssel herunterladen, sondern einfach abbrechen." #. type: item #: guix-git/doc/guix.texi:15087 #, no-wrap msgid "interactive" msgstr "interactive" #. type: table #: guix-git/doc/guix.texi:15090 msgid "When a package signed with an unknown OpenPGP key is encountered, ask the user whether to download it or not. This is the default behavior." msgstr "Ist ein Paket mit einem unbekannten OpenPGP-Schlüssel signiert, wird der Nutzer gefragt, ob der Schlüssel heruntergeladen werden soll oder nicht. Dies entspricht dem vorgegebenen Verhalten." #. type: item #: guix-git/doc/guix.texi:15092 #, no-wrap msgid "--key-server=@var{host}" msgstr "--key-server=@var{Host}" #. type: table #: guix-git/doc/guix.texi:15094 msgid "Use @var{host} as the OpenPGP key server when importing a public key." msgstr "Den mit @var{Host} bezeichneten Rechner als Schlüsselserver für OpenPGP benutzen, wenn ein öffentlicher Schlüssel importiert wird." #. type: Plain text #: guix-git/doc/guix.texi:15115 msgid "The @code{github} updater uses the @uref{https://developer.github.com/v3/, GitHub API} to query for new releases. When used repeatedly e.g.@: when refreshing all packages, GitHub will eventually refuse to answer any further API requests. By default 60 API requests per hour are allowed, and a full refresh on all GitHub packages in Guix requires more than this. Authentication with GitHub through the use of an API token alleviates these limits. To use an API token, set the environment variable @env{GUIX_GITHUB_TOKEN} to a token procured from @uref{https://github.com/settings/tokens} or otherwise." msgstr "Das @code{github}-Aktualisierungsprogramm benutzt die @uref{https://developer.github.com/v3/, GitHub-Programmierschnittstelle} (die „Github-API“), um Informationen über neue Veröffentlichungen einzuholen. Geschieht dies oft, z.B.@: beim Auffrischen aller Pakete, so wird GitHub irgendwann aufhören, weitere API-Anfragen zu beantworten. Normalerweise sind 60 API-Anfragen pro Stunde erlaubt, für eine vollständige Auffrischung aller GitHub-Pakete in Guix werden aber mehr benötigt. Wenn Sie sich bei GitHub mit Ihrem eigenen API-Token authentisieren, gelten weniger einschränkende Grenzwerte. Um einen API-Token zu benutzen, setzen Sie die Umgebungsvariable @env{GUIX_GITHUB_TOKEN} auf einen von @uref{https://github.com/settings/tokens} oder anderweitig bezogenen API-Token." #. type: section #: guix-git/doc/guix.texi:15118 #, no-wrap msgid "Invoking @command{guix style}" msgstr "@command{guix style} aufrufen" #. type: command{#1} #: guix-git/doc/guix.texi:15120 #, no-wrap msgid "guix style" msgstr "guix style" #. type: cindex #: guix-git/doc/guix.texi:15121 #, no-wrap msgid "styling rules" msgstr "Stilregeln" #. type: cindex #: guix-git/doc/guix.texi:15122 #, no-wrap msgid "lint, code style" msgstr "Linting, Code-Stil" #. type: cindex #: guix-git/doc/guix.texi:15123 #, no-wrap msgid "format, code style" msgstr "Formatierung, Code-Stil" #. type: cindex #: guix-git/doc/guix.texi:15124 #, no-wrap msgid "format conventions" msgstr "Formatierungskonventionen" #. type: Plain text #: guix-git/doc/guix.texi:15131 msgid "The @command{guix style} command helps users and packagers alike style their package definitions and configuration files according to the latest fashionable trends. It can either reformat whole files, with the @option{--whole-file} option, or apply specific @dfn{styling rules} to individual package definitions. The command currently provides the following styling rules:" msgstr "Mit dem Befehl @command{guix style} können sowohl Nutzer als auch Paketentwickler ihre Paketdefinitionen und Konfigurationsdateien entsprechend der aktuell modischen Trends umgestalten. Sie können entweder ganze Dateien mit der Befehlszeilenoption @option{--whole-file} umformatieren oder die gewählten @dfn{Stilregeln} auf einzelne Paketdefinitionen anwenden. Im Moment werden Regeln für die folgenden Stilfragen angeboten:" #. type: itemize #: guix-git/doc/guix.texi:15136 msgid "formatting package definitions according to the project's conventions (@pxref{Formatting Code});" msgstr "Den Stil der Paketeingaben nach den Projektkonventionen auszurichten (siehe @ref{Formatting Code}), sowie" #. type: itemize #: guix-git/doc/guix.texi:15139 msgid "rewriting package inputs to the ``new style'', as explained below." msgstr "Paketeingaben in den „neuen Stil“ umzuschreiben, wie unten erklärt wird." #. type: Plain text #: guix-git/doc/guix.texi:15145 msgid "The way package inputs are written is going through a transition (@pxref{package Reference}, for more on package inputs). Until version 1.3.0, package inputs were written using the ``old style'', where each input was given an explicit label, most of the time the package name:" msgstr "Zurzeit läuft eine Umstellung der Notation, wie Paketeingaben aufgeschrieben werden (siehe @ref{package Reference}, für weitere Informationen zu Paketeingaben). Bis Version 1.3.0 wurden Paketeingaben im „alten Stil“ verfasst, d.h.@: man schrieb zu jeder Eingabe ausdrücklich eine Bezeichnung dazu, in der Regel der Paketname:" #. type: lisp #: guix-git/doc/guix.texi:15152 #, no-wrap msgid "" "(package\n" " ;; @dots{}\n" " ;; The \"old style\" (deprecated).\n" " (inputs `((\"libunistring\" ,libunistring)\n" " (\"libffi\" ,libffi))))\n" msgstr "" "(package\n" " ;; …\n" " ;; Der „alte Stil“ (veraltet).\n" " (inputs `((\"libunistring\" ,libunistring)\n" " (\"libffi\" ,libffi))))\n" #. type: Plain text #: guix-git/doc/guix.texi:15156 msgid "Today, the old style is deprecated and the preferred style looks like this:" msgstr "Der alte Stil gilt heute als veraltet. Der bevorzugte Stil sieht so aus:" #. type: lisp #: guix-git/doc/guix.texi:15162 #, no-wrap msgid "" "(package\n" " ;; @dots{}\n" " ;; The \"new style\".\n" " (inputs (list libu