Next: Аутентификация подстановок, Previous: Авторизация сервера подстановок, Up: Подстановки [Contents][Index]
Guix может искать и получать заменители с нескольких серверов. Это полезно, когда вы используете пакеты из дополнительных каналов, для которых официальный сервер не имеет заменителей, но их предоставляет другой сервер. Еще одна ситуация, когда это полезно, если вы предпочитаете выполнять загрузку с замещающего сервера вашей организации, прибегая к официальному серверу только в качестве запасного варианта или полностью отклоняя его.
Вы можете дать Guix список URL-адресов серверов с заменителями, и он проверит их в указанном порядке. Вам также необходимо явно авторизовать открытые ключи серверов с заменителями, чтобы Guix принял заменители, которые они подписывают.
В системе Guix это достигается путем изменения конфигурации службы
guix
. Поскольку служба guix
является частью списков служб по
умолчанию, %base-services
и %desktop-services
, вы можете
использовать modify-services
для изменения ее конфигурации и добавьте
нужные URL-адреса и заменить ключи (see modify-services
).
В качестве примера предположим, что вы хотите получить заменители из
guix.example.org
и авторизовать ключ этого сервера в дополнение к
bordeaux.guix.gnu.org
и ci.guix.gnu.org
.
Полученная конфигурация операционной системы будет выглядеть примерно так:
(operating-system
;; …
(services
;; Assume we're starting from '%desktop-services'. Replace it
;; with the list of services you're actually using.
(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)))))))
Предполагается, что файл key.pub содержит ключ подписи
guix.example.org
. После внесения этого изменения в файл конфигурации
вашей операционной системы (например, /etc/config.scm) вы можете
перенастроить и перезапустить службу guix-daemon
или перезагрузиться,
чтобы изменения вступили в силу:
$ sudo guix system reconfigure /etc/config.scm $ sudo herd restart guix-daemon
Если вы используете Guix в качестве пакетного менеджера на другом дистрибутиве, вместо вышеописанного вы должны предпринять следующие шаги, чтобы получить заменители с дополнительных серверов:
guix-daemon
; когда
исользуете systemd, это обычно
/etc/systemd/system/guix-daemon.service. Добавьте параметр
--substitute-urls команды guix-daemon
при вызове в
командной строке и перечислите интересующие URL-адреса
(see guix-daemon --substitute-urls
):
… --substitute-urls='https://guix.example.org https://bordeaux.guix.gnu.org https://ci.guix.gnu.org'
systemctl daemon-reload systemctl restart guix-daemon.service
guix archive
):
# guix archive --authorize < master-public-key.txt
Опять же, это предполагает key.pub, содержащий открытый ключ, который
guix.example.org
использует для подписи замененителей.
Now you’re all set! Substitutes will be preferably taken from
https://guix.example.org
, using bordeaux.guix.gnu.org
then ci.guix.gnu.org
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.
Troubleshooting: To diagnose problems, you can run
guix weather
. For example, running:guix weather coreutilsnot only tells you which of the currently-configured servers has substitutes for the
coreutils
package, it also reports whether one of these servers is unauthorized. See Вызовguix weather
, for more information.
Обратите внимание, что бывают также ситуации, когда можно добавить URL-адрес замещающего сервера без авторизации его ключа. See Аутентификация подстановок, чтобы понять этот тонкий момент.
Next: Аутентификация подстановок, Previous: Авторизация сервера подстановок, Up: Подстановки [Contents][Index]