mkimage, которая использует для сборки «профиль», представляющий из себя набор файлов Makefile. В результате из пакетов репозитория создается установочный диск CD/DVD. Целостность репозитория и его непротиворечивость позволяют с легкостью генерировать новые образы при необходимости.
Примечание
/proc к нему (см. Настройка Hasher);
/tmp или /home/USER/hasher;
/etc/hasher-priv/system;
~/.gitconfig.
conf.d/*.mk;
sub.in/;
features.in/*/config.mk;
bin/pkgdups.);
conf.d/README.
~/out/ (если возможно);
profiles.mk.sample). Переменные могут быть заданы, как в команде сборки в качестве аргументов, так и в файле настроек $HOME/.mkimage/profiles.mk. Список переменных приведен в Переменные, принимаемые при сборке.
Таблица 10.1. Переменные, принимаемые при сборке
|
Переменная
|
Описание
|
Значение
|
|---|---|---|
|
APTCONF
|
Задает путь к apt.conf
|
Пусто (по умолчанию системный) либо строка
|
|
ARCH
|
Задает целевую архитектуру образов
|
Пусто (по умолчанию авто) либо строка
|
|
ARCHES
|
Задает набор целевых архитектур при параметрическом задании APTCONF
|
Пусто (по умолчанию авто) либо список через пробел
|
|
AUTOCLEAN
|
Включает уборку (distclean) после успешной сборки образа
|
Пусто (по умолчанию нет) либо любая строка
|
|
BELL
|
Подает сигнал после завершения сборки
|
Пусто (по умолчанию нет) либо любая строка
|
|
BRANCH
|
Указывает, для какого бранча производится сборка
|
|
|
BUILDDIR
|
Задает каталог генерируемого профиля и сборки
|
Пусто (по умолчанию авто) либо строка
|
|
BUILDDIR_PREFIX
|
Задает префикс каталога генерируемого профиля и сборки
|
Строка; по умолчанию выбирается алгоритмически
|
|
BUILDLOG
|
Задает путь к файлу журнала сборки/очистки
|
$(BUILDDIR)/build.log (по умолчанию) либо строка
|
|
CHECK
|
Включает режим проверки сборки конфигурации (без сборки образа)
|
|
|
CLEAN
|
Экономия RAM+swap при сборке в tmpfs. Очистка рабочего каталога после успешной сборки очередной стадии
|
Пусто, 0, 1, 2; по умолчанию пусто при DEBUG, иначе 1
|
|
DEBUG
|
Включает средства отладки, может отключить зачистку после сборки
|
Пусто (по умолчанию), 1 или 2
|
|
DISTRO_VERSION
|
Задает версию дистрибутива, если применимо
|
Пусто (по умолчанию) либо любая строка
|
|
HOMEPAGE, HOMENAME, HOMEWAIT
|
Указывают адрес, название и таймаут перехода для домашней страницы
|
Корректный URL, строка, целое неотрицательное число
|
|
IMAGEDIR
|
Указывает путь для сохранения собранного образа
|
Равно $HOME/out, если существует, иначе $(BUILDDIR)/out (по умолчанию), либо другой путь
|
|
ISOHYBRID
|
Включает создание гибридного ISO-образа
|
Пусто (по умолчанию) либо любая строка
|
|
LOGDIR
|
Указывает путь для сохранения логов сборки
|
Равно $(IMAGEDIR) (по умолчанию), либо другой путь
|
|
MKIMAGE_PREFIX
|
Указывает путь до mkimage. Если параметр не указан, то используется системный mkimage
|
|
|
NICE
|
Понижает нагрузку системы сборочной задачей
|
Пусто (по умолчанию) либо любая строка
|
|
NO_SYMLINK
|
Не создавать символические ссылки на собранный образ
|
Пусто (по умолчанию) либо любая строка
|
|
QUIET
|
Отключает поясняющие сообщения при сборке (например, под cron)
|
Пусто (по умолчанию) либо любая строка
|
|
REPORT
|
Запрашивает создание отчетов о собранном образе. Требует включения DEBUG и отключения CHECK
|
|
|
ROOTPW
|
Устанавливает пароль root по умолчанию для образов виртуальных машин
|
Пусто (по умолчанию root) либо строка
|
|
SAVE_PROFILE
|
Сохраняет архив сгенерированного профиля в .disk/
|
Пусто (по умолчанию) либо любая строка
|
|
SORTDIR
|
Дополнительно структурирует каталог собранных образов
|
Пусто (по умолчанию) либо строка (например, $(IMAGE_NAME)/$(DATE))
|
|
SQUASHFS
|
Определяет характер сжатия squashfs для stage2
|
|
|
STATUS
|
Добавляет в имя образа указанный префикс
|
Пусто (по умолчанию) либо строка (например, «alpha», «beta»)
|
|
STDOUT
|
Выводит сообщения, при включенном DEBUG, одновременно в лог и на экран
|
1 — включить вывод на экран, если включен DEBUG
|
|
USE_QEMU
|
Использовать qemu, если архитектура не совпадает
|
1 (по умолчанию), для отключения любое другое значение
|
|
VM_SAVE_TARBALL
|
Указывает, что нужно сохранить промежуточный тарбол, из которого создается образ виртуальной машины, в заданном формате
|
tar tar.gz tar.xz
|
|
VM_SIZE
|
Задает размер несжатого образа виртуальной машины в байтах
|
Пусто (по умолчанию двойной размер чрута) или целое
|
Примечание
~/.mkimage/profiles.mk:
APTCONF = ~/apt/apt.conf.$(BRANCH).$(ARCH)
$ make -C /usr/share/mkimage-profiles help
Список доступных образов:
$ make -C /usr/share/mkimage-profiles help/distro
Пример команды сборки образа:
$ make -C /usr/share/mkimage-profiles syslinux.iso
Пример команды сборки образа с указанием переменных:
$ make -C /usr/share/mkimage-profiles DEBUG=1 BRANCH=p10 APTCONF=/etc/apt/apt.conf.local alt-server.iso
apt.conf.local может выглядеть так:
Dir::Etc::main "/dev/null";
Dir::Etc::parts "/ver/empty";
Dir::Etc::SourceParts "/var/empty";
Dir::Etc::sourcelist "/etc/apt/sources.list.d/alt-local.list";
APT::Acquire::Retries "3";
APT::Cache-Limit 201326592;
//Acquire::http::AllowRedirect "true";
RPM
{
Allow-Duplicated {
// Old-style kernels.
"^(NVIDIA_)?(kernel|alsa)[0-9]*(-adv|-linus)?($|-up|-smp|-secure|-custom|-enterprise|-BOOT|-tape|-aureal)";
// New-style kernels.
"^kernel-(image|modules)-.*";
};
Hold {
// Old-style kernels.
"^(kernel|alsa)[0-9]+-source";
};
};