Next: Деривации, Previous: Search Paths, Up: Программный интерфейс [Contents][Index]
Концептуально store - это место, где хранятся успешно построенные derivation’ы - по умолчанию /gnu/store. Подкаталоги в store называются store items или иногда store paths. У store есть связанная база данных, которая содержит такую информацию, как store paths, на которые ссылается каждый store path, и список валидных store item’ов—результаты успешных сборок. Эта база данных находится в localstatedir/guix/db, где localstatedir - это каталог состояний, указанный через --localstatedir во время configure, обычно /var.
Демон всегда обращается к store от имени своих клиентов (see Вызов guix-daemon). Чтобы управлять store, клиенты подключаются к демону через сокет домена Unix, отправляют ему запросы и читают результат - это вызовы удаленных процедур или RPC.
Примечание: Пользователи должны никогда напрямую изменять файлы в /gnu/store. Это приведет к несоответствиям и нарушит предположения о неизменности функциональной модели Guix (see Введение).
See
guix gc --verify
, для получения информации о том, как проверить целостность store и попытаться восстановить его после случайных изменений.
Модуль (guix store)
предоставляет процедуры для подключения к демону
и выполнения RPC. Они описаны ниже. По умолчанию open-connection
и,
следовательно, все команды guix
подключаются к локальному демону
или к URI, указанному в переменной среды GUIX_DAEMON_SOCKET
.
Если установлено, значение этой переменной должно быть именем файла или URI, обозначающим конечную точку демона. Когда это имя файла, оно обозначает сокет домена Unix, к которому нужно подключиться. Помимо имен файлов, поддерживаются следующие схемы URI:
file
unix
Это для сокетов домена Unix. file:///var/guix/daemon-socket/socket
эквивалентен /var/guix/daemon-socket/socket.
guix
Эти URI обозначают соединения через TCP/IP без шифрования и аутентификации удаленного хоста. В URI необходимо указать имя хоста и, возможно, номер порта (по умолчанию используется порт 44146):
guix://master.guix.example.org:1234
Эта настройка подходит для локальных сетей, таких как кластеры, где только
доверенные узлы могут подключаться к демону сборки по адресу
master.guix.example.org
.
Параметр --listen команды guix-daemon
можно использовать
для указания ему прослушивать TCP-соединения (see --listen).
ssh
Эти URI позволяют подключаться к удаленному демону через SSH. Для этой
функции требуется Guile-SSH (see Требования) и рабочий guile
binary файл в PATH
на конечном компьютере. Он поддерживает открытый
ключ и аутентификацию GSSAPI. Типичный URL-адрес может выглядеть так:
ssh://charlie@guix.example.org:22
Что касается guix copy
, учитываются обычные файлы конфигурации
клиента OpenSSH (see Запуск guix copy).
В будущем могут поддерживаться дополнительные схемы URI.
Примечание: Возможность подключения к демонам удаленной сборки считается экспериментальной с 1.3.0.17171-a1632. Пожалуйста, свяжитесь с нами, чтобы поделиться любыми проблемами или предложениями, которые могут у вас возникнуть (see Содействие).
Подключится к демону через сокет домена Unix по адресу uri (строка). Когда reserve-space? истинна, указать ему, чтобы он зарезервировал немного дополнительного места в файловой системе, чтобы сборщик мусора мог работать, если диск заполнится. Вернуть объект сервера.
file по умолчанию - %default-socket-path
, что является обычным
расположением с учетом параметров, переданных в configure
.
Закрыть соединение с server.
Эта переменная привязана к параметру SRFI-39, который относится к порту, на который должны быть записаны журналы сборки и ошибок, отправляемые демоном.
Процедуры, которые заставляют все RPC принимать объект сервера в качестве своего первого аргумента.
Возвращать #t
, когда path обозначает допустимый элемент
хранилища, и #f
в противном случае (недопустимый элемент может
существовать на диске, но по-прежнему быть недопустимым, например, потому
что он является результатом прерывания или неудачной сборки).
Условие &store-protocol-error
возникает, если path не имеет
префикса в каталоге store (/gnu/store).
Добавить text в файл name в store и вернуть его store path. references - это список store path’ы, на которые ссылается конечный store path.
<derivation>
,имен файлов .drv или пар derivation/output, используя указанный
mode—(build-mode normal)
по умолчанию.
Обратите внимание, что модуль (guix monads)
предоставляет как монаду,
так и монадические версии вышеупомянутых процедур с целью сделать более
удобной работу с кодом, который обращается к store (see Устройство склада).
Этот раздел в настоящее время не завершен.
Next: Деривации, Previous: Search Paths, Up: Программный интерфейс [Contents][Index]