Suivant: , Précédent: , Monter: Substituts   [Table des matières][Index]


6.3.3 Récupérer des substituts d’autres serveurs

Guix peut chercher et récupérer des substituts à partir de plusieurs serveurs. C’est utile si vous utilisez des paquets de canaux supplémentaires pour lesquels le serveur officiel n’a pas de substituts mais que d’autres serveurs les fournissent. Une autre situation où cela est utile est si vous souhaitez télécharger depuis les serveurs de substituts de votre organisation, en utilisant le serveur officiel en dernier recours, ou en ne l’utilisant pas du tout.

Vous pouvez donner à Guix une liste d’URL de serveurs de substituts et il les vérifiera dans l’ordre indiqué. Vous devez aussi explicitement autoriser les clés publiques des serveurs de substituts pour dire à Guix d’accepter les substituts qu’ils signent.

Sur le système Guix, cela se fait en modifiant la configuration du service guix. Comme le service guix fait partie des services par défaut, %base-services et %desktop-services, vous pouvez utiliser modify-services pour changer sa configuration et ajouter les URL et les clés des serveurs de substituts que vous voulez (voir modify-services).

Par exemple, supposons que vous vouliez récupérer les substituts de guix.example.org et autoriser la clé de signature de ce serveur, en plus des serveurs ci.guix.gnu.org et bordeaux.guix.gnu.org par défaut. La configuration du système d’exploitation qui en résulte ressemblera à :

(operating-system
  ;; …
  (services
    ;; Supposons qu'on commence à partir de '%desktop-services'.  Remplaçons-le
    ;; par la liste des services qu'on utilise vraiment.
    (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)))))))

Cela suppose que le fichier key.pub contient la clé de signature de guix.example.org. Avec ce changement dans le fichier de configuration de votre système d’exploitation (disons /etc/config.scm), vous pouvez reconfigurer et redémarrer le service guix-daemon ou redémarrer pour que les changements prennent effet :

$ sudo guix system reconfigure /etc/config.scm
$ sudo herd restart guix-daemon

Si vous utilisez Guix sur une « distro externe », vous suivrez plutôt les étapes suivantes pour avoir des substituts de serveurs supplémentaires :

  1. Modifier le fichier de configuration du service guix-daemon ; pour systemd, c’est normalement /etc/systemd/system/guix-daemon.service. Ajouter l’option --substitute-urls à la ligne de command guix-daemon et listez les URL qui vous intéressent (voir guix-daemon --substitute-urls) :
    … --substitute-urls='https://guix.example.org https://ci.guix.gnu.org https://bordeaux.guix.gnu.org'
    
  2. Redémarrez le démon. Pour systemd, cela ressemble à :
    systemctl daemon-reload
    systemctl restart guix-daemon.service
    
  3. Autorisez la clé du nouveau serveur (voir Invoquer guix archive) :
    guix archive --authorize < key.pub
    

    De nouveau, cela suppose que key.pub contient la clé publique que guix.example.org utilise pour signer les substituts.

Maintenant vous êtes paré ! Les substituts seront téléchargés de préférence à partir de https://guix.example.org, avec ci.guix.gnu.org puis bordeaux.guix.gnu.org en réserve. Évidemment vous pouvez lister autant de serveurs de substituts que vous voulez, avec l’inconvénient que la recherche de substituts sera ralentie si vous devez contacter trop de serveurs.

Remarquez qu’il à des situations où vous pourriez vouloir ajouter l’URL d’un serveur de substitut sans autoriser sa clé. Voir Authentification des substituts, pour comprendre ce point délicat.


Suivant: Authentification des substituts, Précédent: Autoriser un serveur de substituts, Monter: Substituts   [Table des matières][Index]