Next: Запуск набора тестов, Previous: Требования, Up: Содействие [Contents][Index]
Если вы собираетесь хакать сам Guix, рекомендуется использовать последнюю версию из репозитория Git:
git clone https://git.savannah.gnu.org/git/guix.git
Как убедиться, что вы получили подлинную копию репозитория? Для этого
запустите guix git authenticate
, передав ему коммит и отпечаток
ключа OpenPGP channel introduction (see Вызов guix package
):
git fetch origin keyring:keyring guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \ "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"
Эта команда возвращает нуль в случае успеха; в противном случае будет напечатано сообщение об ошибке и команда завершит работу, вернув ненулевой код.
Как видите, здесь возникает проблема курицы и яйца: сначала вам нужно установить Guix. Обычно вы устанавливаете Guix System (see Установка системы) или Guix поверх другого дистрибутива (see Бинарная установка); в любом случае вы должны проверить подпись OpenPGP на установочном носителе. Это “запускает” (“bootstraps”) цепочку доверия.
Самый простой способ установить среду разработки для Guix — это, конечно, использовать Guix! Следующая команда запустит новую оболочку со всеми зависимостями и необходимыми переменными окружения:
guix shell -D guix -CPW
or even, from within a Git worktree for Guix:
guix shell -CPW
If -C (short for --container) is not supported on your
system, try --pure
instead of -CPW. See Вызов guix shell
, for more information on that command.
Если вам Guix не удаётся использовать при сборке из рабочего каталога, установите следующие пакеты в дополнение к тем, что были указаны в инструкции по установке (see Требования).
В Guix дополнительные зависимости можно добавить, запустив guix
shell
:
guix shell -D guix help2man git strace --pure
Вы можете инициировать инфраструктуру сборки системы, используя Autoconf и Automake:
./bootstrap
Если вы получили ошибку, похожую на эту:
configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES
это означает, скорее всего, что Autoconf не смог найти файл pkg.m4, который предоставляется pkg-config. Убедитесь, что файл pkg.m4 доступен. То же относится к guile.m4, набору макросов, предоставляемых Guile. Например, если вы установили Automake в /usr/local, он не будет искать файлы .m4 в /usr/share. Тогда нужно выполнить следующую команду:
export ACLOCAL_PATH=/usr/share/aclocal
см. See Macro Search Path in The GNU Automake Manual, чтобы получить больше информации.
Затем, выполните:
./configure
... где /var - стандартное значение localstatedir
(see Хранилище, для получения информации об этом), а /etc - стандартное
значение sysconfdir
. Обратите внимание, что вы, скорее всего, не
будете выполнять make install
в конце (это не обязательно), но все
равно важно передать правильные значения localstatedir
и
sysconfdir
, которые записываются в модуль (guix config)
Guile.
Наконец, вы можете собрать Guix и, если сочтёте нужным, запустите тесты (see Запуск набора тестов):
make make check
Если что-то не получится, изучите инструкции установки (see Установка) или отправьте сообщение в рассылку guix-devel@gnu.org.
После этого вы можете аутентифицировать все проверенные коммиты, запустив:
guix git authenticate \ 9edb3f66fd807b096b48283debdcddccfea34bad \ "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"
The first run takes a couple of minutes, but subsequent runs are faster. On subsequent runs, you can run the command without any arguments since the introduction (the commit ID and OpenPGP fingerprints above) will have been recorded43:
guix git authenticate
When your configuration for your local Git repository doesn’t match the
default one, you can provide the reference for the keyring
branch
via the -k option. The following example assumes that you have
a Git remote called ‘myremote’ pointing to the official repository:
guix git authenticate \ -k myremote/keyring \ 9edb3f66fd807b096b48283debdcddccfea34bad \ "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"
See Вызов guix package
, for more information on this command.
Примечание: By default, hooks are installed such that
guix git authenticate
is invoked anytime you rungit pull
orgit push
.
После обновления репозитория команда make
может выдать ошибку,
подобную нижеприведенной:
error: failed to load 'gnu/packages/linux.scm': ice-9/eval.scm:293:34: In procedure abi-check: #<record-type <origin>>: record ABI mismatch; recompilation needed
Это значит, что один из типов записей, которые определяет Guix (в данном
примере, запись origin
) была изменена, и весь guix надо
перекомпилировать, чтобы учесть это изменение. Для этого запустите
make clean-go
, а затем make
.
Should make
fail with an Automake error message after updating,
you need to repeat the steps outlined in this section, commencing with
./bootstrap
.
Next: Запуск набора тестов, Previous: Требования, Up: Содействие [Contents][Index]