Siguiente: , Anterior: , Subir: Sustituciones   [Índice general][Índice]


5.3.3 Obtención de sustiticiones desde otros servidores

Guix puede buscar y obtener sustituciones a partir de varios servidores. Esto es útil cuando se usan paquetes de canales adicionales para los que el servidor oficial no proporciona sustituciones pero otros servidores sí. Otra situación donde puede esta característica puede ser útil es en el caso de que prefiera realizar las descargas desde el servidor de sustituciones de su organización, accediendo al servidor oficial únicamente como mecanismo de salvaguarda o no usándolo en absoluto.

Puede proporcionarle a Guix una lista de URL de servidores de los que obtener sustituciones y las comprobará en el orden especificado. También es necesario que autorice explícitamente las claves públicas de los servidores de sustituciones para que Guix acepte las sustituciones firmadas por dichos claves.

En el sistema Guix esto se consigue modificando la configuración del servicio guix. Puesto que el servicio guix es parte de las listas de servicios predeterminadas, %base-services y %desktop-services, puede usar modify-services para cambiar su configuración y añadir las URL y claves para sustituciones que desee (véase modify-services).

Como ejemplo supongamos que desea obtener sustituciones desde guix.example.org y autorizar la clave de firma de dicho servidor, además del servidor ci.guix.gnu.org predeterminado. La configuración de sistema operativo resultante sería más o menos así:

(operating-system
  ;; …
  (services
    ;; Se asume que se parte de '%desktop-services'. Debe sustituirse
    ;; por la lista de servicios que use en realidad.
    (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 "./clave.pub"))
                                    %default-authorized-guix-keys)))))))

Esto asume que el archivo clave.pub contiene la clave de firma de guix.example.org. Cuando haya realizado este cambio en el archivo de configuración de su sistema operativo (digamos /etc/config.scm), puede reconfigurar y reiniciar el servicio guix-daemon o reiniciar la máquina para que los cambios se hagan efectivos:

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

Si por el contrario ejecuta Guix sobre una distribución distinta, deberá llevar a cabo los siguientes pasos para obtener sustituciones de servidores adicionales:

  1. Edite el archivo de configuración para el servicio de guix-daemon; cuando use systemd normalmente se trata de /etc/systemd/system/guix-daemon.service. Añada la opción --substitute-urls en la línea de ordenes de guix-daemon y la lista de URL que desee (véase guix-daemon --substitute-urls):
    … --substitute-urls='https://guix.example.org https://ci.guix.gnu.org'
    
  2. Reinicie el daemon. Con systemd estos son los pasos:
    systemctl daemon-reload
    systemctl restart guix-daemon.service
    
  3. Autorice la clave del nuevo servidor (véase Invocación de guix archive):
    guix archive --authorize < clave.pub
    

    De nuevo se asume que clave.pub contiene la clave pública usada por guix.example.org para firmar las sustituciones.

¡Ya lo tiene configurado! Las sustituciones se obtendrán a ser posible de https://guix.example.org, usando ci.guix.gnu.org en caso de fallo. Por supuesto puede enumerar tantos servidores de sustituciones como desee, teniendo en cuenta que el tiempo de búsqueda puede aumentar si se necesita contactar a muchos servidores.

Tenga en cuenta que existen situaciones en las que se puede desear añadir la URL de un servidor de sustitucines sin autorizar su clave. Véase Verificación de sustituciones para entender este caso específico.


Siguiente: , Anterior: , Subir: Sustituciones   [Índice general][Índice]