Nächste: Substitutauthentifizierung, Vorige: Substitut-Server autorisieren, Nach oben: Substitute [Inhalt][Index]
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.
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.
Auf Guix System ginge dies vonstatten, indem Sie die Konfiguration des
guix
-Dienstes modifizieren. Weil der guix
-Dienst zu der Liste
der vorgegebenen Dienste gehört, sowohl für %base-services
als auch
für %desktop-services
, können Sie dessen Konfiguration mit
modify-services
ändern und dort die URLs und Substitutschlüssel
eintragen, die Sie möchten (siehe modify-services
).
Ein Beispiel: Nehmen wir an, Sie möchten Substitute zusätzlich zu den
vorgegebenen ci.guix.gnu.org
und
bordeaux.guix.gnu.org
auch von guix.example.org
beziehen
und den Signierschlüssel dieses Servers autorisieren. Die
Betriebssystemkonfiguration, die sich damit ergibt, wird ungefähr so
aussehen:
(operating-system
;; …
(services
;; Wir nehmen hier '%desktop-services' als Grundlage; geben Sie
;; an deren Stelle die Liste der bei Ihnen benutzten Dienste an.
(modify-services %desktop-services
(guix-service-type config =>
(guix-configuration
(inherit config)
(substitute-urls
(append (list "https://guix.example.org")
%default-substitute-urls))
(authorized-keys
(append (list (local-file "./key.pub"))
%default-authorized-guix-keys)))))))
Dabei gehen wir davon aus, dass der Signierschlüssel von
guix.example.org
in der Datei key.pub steht. Sobald Sie diese
Änderung an der Datei mit Ihrer Betriebssystemkonfiguration vorgenommen
haben (etwa /etc/config.scm), können Sie rekonfigurieren und den
guix-daemon
-Dienst (oder den ganzen Rechner) neu starten, damit die
Änderung in Kraft tritt:
$ sudo guix system reconfigure /etc/config.scm $ sudo herd restart guix-daemon
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:
guix-daemon
; wenn Sie
systemd benutzen, wäre das normalerweise
/etc/systemd/system/guix-daemon.service. Schreiben Sie in die
Konfigurationsdatei die Option --substitute-urls zur
guix-daemon
-Befehlszeile dazu und listen Sie dabei die gewünschten
URLs auf (siehe guix-daemon
--substitute-urls
):
… --substitute-urls='https://guix.example.org https://ci.guix.gnu.org https://bordeaux.guix.gnu.org'
systemctl daemon-reload systemctl restart guix-daemon.service
guix archive
aufrufen):
guix archive --authorize < key.pub
Wir nehmen auch hier an, dass key.pub den öffentlichen Schlüssel
enthält, mit dem guix.example.org
Substitute signiert.
Und wir sind fertig! Substitute werden bevorzugt von
https://guix.example.org
bezogen und
ci.guix.gnu.org
und dann
bordeaux.guix.gnu.org
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.
Aber bedenken Sie, es gibt auch Situationen, wo man nur die URL eines Substitutservers hinzufügen will, ohne den Schlüssel zu autorisieren. Siehe Substitutauthentifizierung, um diese bestimmten Gründe zu verstehen.
Nächste: Substitutauthentifizierung, Vorige: Substitut-Server autorisieren, Nach oben: Substitute [Inhalt][Index]