Существует полностью автоматизированная система сборки для Qubes, которая загружает, создает и упаковывает все компоненты Qubes OS и в итоге выдает готовые к установке ISO-образы.
Чтобы использовать его, следует использовать дистрибутив на основе rpm, например Fedora , в котором следует обеспечить наличие следующих пакетов:
Их можно установить командой:
sudo dnf install gpg git createrepo rpm-build make wget rpmdevtools python-sh dialog rpm-sign dpkg-dev debootstrap PyYAML
Система сборки создает рабочую среду в chroot, поэтому на хост-системе не требуются другие пакеты. Все файлы, созданные и используюмые системой сборки, содержатся в каталоге qubes-builder. Полная сборка требует 25 ГБ свободного места, поэтому имейте это в виду, когда будете решать, где разместить данный каталог.
Система сборки настраивается с помощью файла builder.conf - нужно скопировать предоставленный по умолчанию builder.conf и изменить его по мере необходимости, например так:
cp example-configs/qubes-os-master.conf builder.conf
nano builder.conf
Данный файл имеет следующее содержание:
# edit the builder.conf file and set the following variables: NO_SIGN=1
Еще одно полезное требование состоит в том, что «sudo root» должен работать без каких-либо подсказок, который по умолчанию используется для большинства дистрибутивов (например, «sudo bash» предоставляет вам корневую оболочку без запроса пароля). Это важно, поскольку разработчику необходимо несколько раз переключиться на root, а затем вернуться к непривилегированному пользователю несколько раз в процессе сборки.
Кроме того, если создание с подписью включено (NO_SIGN не задано), необходимо отредактировать файл ~/.rpmmacro, чтобы он указывал на ключ GPG, используемый для подписания пакета, например:
nano ~/.rpmmacro
%_signature gpg %_gpg_path /home/user_name/.gnupg %_gpg_name AC1BF9B3 # <-- Key ID used for signing
Также рекомендуется использовать пустую кодовую фразу для закрытого ключа, используемого для подписания. Вопреки распространенному мнению, это не влияет на безопасность вашего ключа или источников - если кто-то скомпрометировал вашу систему, то безопасность все равно нарушена, использовали вы дополнительную кодовую фразу для ключа или нет.
gpg --recv-keys 0xDDFA1A3E36879494
wget https://keys.qubes-os.org/keys/qubes-developers-keys.asc gpg --import qubes-developers-keys.asc
git clone git://github.com/QubesOS/qubes-builder.git qubes-builder cd qubes-builder
git tag -v `git describe`
cp example-configs/qubes-os-master.conf builder.conf
и привести его содержание к виду:
nano builder.conf
# edit the builder.conf file and set the following variables: # NO_SIGN="1"
make get-sources
make qubes
make iso
И должен создаться новенький ISO.
Вы также можете создать каждый компонент отдельно. Например. скомпилировать только графический интерфейс виртуализации агента/демона:
make gui-daemon
Вы можете получить полный список команд из хелпа make. Для расширенного использования и подготовки источников Qubes Builder взгляните на каталог doc на странице QubesBuilder или QubesBuilderDetails.
Если вы хотите каким-то образом изменить источники, вот некоторые основные шаги:
GIT_PREFIX=«marmarek/qubes-» для использования репозитория Йоанны Рутковской вместо «mainstream» - он содержит более новые (но менее проверенные) версии пакетов.make get-sources
make qubes - это просто мета-цель, которая выстроит все необходимые компоненты в правильном порядке. Список компонентов настраивается в builder.conf. Вы также можете проверить текущее значение в make help или используя make build-info.get-sources уже сделано, так что продолжайте со следующего. Вы можете пропустить sign-all, если вы отключили подписку.make vmm-xen core-admin linux-kernel gui-daemon template desktop-linux-kde installer-qubes-os manager linux-dom0-updates
make iso
QubesBuilder по умолчанию проверяет подписанные теги на каждый загруженный код. Открытые ключи, используемые для этого, хранятся в keyrings/git. По умолчанию ключи разработчика Qubes импортируются автоматически, но если вам нужны дополнительные ключи (например, ваши собственные), вы можете добавить их, используя:
GNUPGHOME=$PWD/keyrings/git gpg --import /path/to/key.asc GNUPGHOME=$PWD/keyrings/git gpg --edit-key ID_OF_JUST_IMPORTED_KEY
Здесь используйте команду «trust», чтобы глобально установить ключ или в конечном итоге свои доверенные ключи для QubesBuilder. Все ключи разработчика Qubes подписываются мастер-ключом цифровой подписи Qubes Master (который устанавливается в конечном счете как доверенный ключ), поэтому им автоматически доверяет QubesBuilder.
Если вы являетесь владельцем ключа «Master» и хотите отменить такую подпись, используйте команду редактирования gpg-ключей revsig и обновите ключ в qubes-developers-keys.asc - но ключ больше не будет доверенным (если только он не установлен вручную).
— Luciferus 2017/07/18 02:58