Nächste: , Nach oben: Mitwirken   [Inhalt][Index]


16.1 Erstellung aus dem Git

Wenn Sie an Guix selbst hacken wollen, ist es empfehlenswert, dass Sie die neueste Version aus dem Git-Softwarebestand verwenden:

git clone https://git.savannah.gnu.org/git/guix.git

Doch wie können Sie sichergehen, dass sie eine unverfälschte Kopie des Repositorys erhalten haben? Dazu müssen Sie guix git authenticate ausführen, wobei Sie den Commit und den OpenPGP-Fingerabdruck der Kanaleinführung angeben (siehe Aufruf von guix git authenticate):

git fetch origin keyring:keyring
guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \
  "BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA"

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.

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 Systeminstallation) oder Guix auf einer anderen Distribution installieren (siehe Aus Binärdatei installieren); in beiden Fällen würden Sie die OpenPGP-Signatur auf dem Installationsmedium prüfen. Damit haben Sie ein „Bootstrapping“ der Vertrauenskette durchgeführt.

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:

guix environment guix --pure

Siehe Aufruf von guix environment für weitere Informationen zu diesem Befehl.

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 Voraussetzungen).

Auf Guix können zusätzliche Abhängigkeiten hinzugefügt werden, indem Sie stattdessen guix environment mit --ad-hoc ausführen:

guix environment guix --pure --ad-hoc help2man git strace

Führen Sie ./bootstrap aus, um die Infrastruktur des Erstellungssystems mit Autoconf und Automake zu erzeugen. Möglicherweise erhalten Sie eine Fehlermeldung wie diese:

configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES

Das bedeutet wahrscheinlich, dass Autoconf pkg.m4 nicht finden konnte, welches von pkg-config bereitgestellt wird. Stellen Sie sicher, dass pkg.m4 verfügbar ist. Gleiches gilt für den von Guile bereitgestellten Makrosatz guile.m4. Wenn Sie beispielsweise Automake in /usr/local installiert haben, würde in /usr/share nicht nach .m4-Dateien geschaut. In einem solchen Fall müssen Sie folgenden Befehl aufrufen:

export ACLOCAL_PATH=/usr/share/aclocal

In Macro Search Path in The GNU Automake Manual finden Sie weitere Informationen.

Dann führen Sie wie gewohnt ./configure aus. Achten Sie darauf, --localstatedir=Verzeichnis zu übergeben, wobei Verzeichnis der von Ihrer aktuellen Installation verwendete localstatedir-Wert ist (weitere Informationen siehe Der Store), im Normalfall geben Sie /var an. Denken Sie daran, dass Sie am Ende wahrscheinlich nicht make install ausführen möchten (müssen Sie auch nicht), aber es ist dennoch wichtig, die richtige localstatedir zu übergeben.

Zum Schluss müssen Sie make check aufrufen, um die Tests auszuführen (siehe Den Testkatalog laufen lassen). Falls etwas fehlschlägt, werfen Sie einen Blick auf die Installationsanweisungen (siehe Installation) oder senden Sie eine E-Mail an die Mailingliste.

Von da an können Sie alle Commits in Ihrem Checkout authentifizieren, indem Sie dies ausführen:

make authenticate

Die erste Ausführung dauert ein paar Minuten, aber nachfolgende Ausführungen gehen schneller.

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 keyring-Branch über die Variable GUIX_GIT_KEYRING angeben. Im folgenden Beispiel nehmen wir an, Sie haben ein Remote-Repository namens ‘myremote’ eingerichtet, das auf das offizielle Guix-Repository verweist:

make authenticate GUIX_GIT_KEYRING=myremote/keyring

Anmerkung: Wir raten Ihnen dazu, nach jedem Aufruf von git pull auch make authenticate auszuführen. Das stellt sicher, dass Sie weiterhin nur gültige Änderungen in Ihr Repository übernehmen.


Nächste: , Nach oben: Mitwirken   [Inhalt][Index]