Mkimage/Desktop
Сборка дистрибутивов с помощью mkimage-profiles-desktop
Текущая версия (актуальна для 5.1/branch+)
устаревший вариант
Предполагается использование бранчей 4.0, 4.1. При сборке на старых бранчах могут потребоваться модификации или откат профиля до соответствующего периода. Над этим потихоньку работаем.
Может понадобиться организовать отдельный apt.conf, хотя проблема с altlinux-release и хак с pkgpriorities неактуальны при использовании IMAGE_INIT_LIST из mkimage-0.0.8 в свежих снапшотах профиля (исправлено в конце июля 2008).
Далее (поправьте /home/boyarsh на используемый путь! проверьте глазами получившееся):
mkdir -p ~/git
cd ~/git
git clone git://git.altlinux.org/people/boyarsh/packages/mkimage-profiles-desktop
mkdir -p ~/mkimage
cp -a mkimage-profiles-desktop ~/mkimage
cd ~/mkimage/mkimage-profiles-desktop
autoconf
./configure --with-aptconf=/home/boyarsh/apt/apt.conf.M40+boyarsh
make rescue.cd
x86_64
В mkimage-profiles-desktop по умолчанию даже при сборке на архитектуре x86_64 выставляется i586[1]; посему для сборки 64-битного варианта требуется передать configure-скрипту ключик --with-arch=x86_64, а также убедиться, что в sources.list, упомянутом в --with-aptconf=/где/тут/apt.conf (по умолчанию /etc/apt/apt.conf и соответственно /etc/apt/sources.list) — упомянуты репозитории x86_64 и noarch.
./configure --with-aptconf=/etc/apt/apt.conf.M41 --with-arch=x86_64
make rescue.cd
ALTSP5
Если есть желание или необходимость сделать модификацию ALT Linux 4.0 Terminal — начинать стоит с:
apt-get install etersoft-build-utils
$EDITOR /etc/apt/sources.list.M40
git clone git://git.altlinux.org/people/mike/packages/mkimage-profiles-desktop
cd mkimage-profiles-desktop
git fetch git://git.altlinux.org/people/mike/packages/mkimage-profiles-desktop terminal-4.0.0:terminal-4.0.0
git checkout terminal-4.0.0
autoconf
./configure --with-aptconf=/etc/apt/apt.conf.M40 --with-distro=terminal --with-version=4.0 \
--with-design=terminal --with-license=terminal --with-release=terminal --with-language=ru_RU \
--with-kernel=std-smp
nice time make ltsp-kde.cd
NB: для ветки 4.1 сборка не проверялась, известна пара не очень существенных проблем; на ветке 5.0 по состоянию на лето 2009 выпущены альфа-бета, известна пара регрессий, но уже можно собираться (ветка master у mike@ или boyarsh@).
Модификация
Загляните в README.
Изучение существующих примеров удобней начинать с корневого Makefile.in и далее по profiles/*/Makefile.in и profiles/packages-lists/*. Стоит обратить внимание, что IMAGE_PACKAGES в профильном мэйкфайле может содержать как включаемые файлы-списки, так и имена пакетов (если как файлы они не будут найдены).
Хуки и скрипты
Q: чем различаются install2/{image-scripts.d, scripts.d}/?
A: image-scripts выполняются в chroot собранной стадии. scripts — в инструментальном chroot-е после установки пакетов и до архивации результата, что позволяет копировать файлы из/в chroot
Проблемы
Использование своего apt.conf
При использовании своего apt.conf была замечена такая проблема - при сборке дистрибутива apt проверял репозиторий, указанный в своем apt.conf, а затем обновлял списки пакетов из текущего системного репозитория. Чтобы заставить apt проверять только свой репозиторий и не смотреть в сторону /etc/apt/apt.conf необходимо в свой apt.conf добавить следующее
Dir::Etc::SourceParts "/var/empty";
Старые грабли
Вынесены отдельной страницей. Могут понадобиться при сборке образов на базе бранчей 4.0/4.1 из профилей соответствующих веток/времён.
Сообщения об ошибке в части установки firmware для wi-fi адаптеров
при сборке под конец возможны такие сообщения
mkmodpack: warning: Firmware file "tehuti/firmware.bin" for module "tehuti" not found mkmodpack: warning: Firmware file "i2400m-fw-sdio-1.3.sbcf" for module "i2400m-sdio" not found mkmodpack: warning: Firmware file "i2400m-fw-usb-1.3.sbcf" for module "i2400m-usb" not found mkmodpack: warning: Firmware file "i2400m-fw-usb-1.4.sbcf" for module "i2400m-usb" not found mkmodpack: warning: Firmware file "ar9170-2.fw" for module "ar9170usb" not found mkmodpack: warning: Firmware file "ar9170-1.fw" for module "ar9170usb" not found mkmodpack: warning: Firmware file "FW13" for module "b43" not found mkmodpack: warning: Firmware file "FW10" for module "b43legacy" not found mkmodpack: warning: Firmware file "iwlwifi-3945-2.ucode" for module "iwl3945" not found mkmodpack: warning: Firmware file "iwlwifi-4965-2.ucode" for module "iwlagn" not found mkmodpack: warning: Firmware file "iwlwifi-5150-2.ucode" for module "iwlagn" not found mkmodpack: warning: Firmware file "iwlwifi-5000-2.ucode" for module "iwlagn" not found mkmodpack: warning: Firmware file "iwlwifi-6050-2.ucode" for module "iwlagn" not found
Это нормально. Поддержки wifi в propagator всё равно нет.
Ссылки
- WhiteLabel — повышение ортогональности профилей («расплетание спагетти»)
- Обзор планов mike@ по лету 2008
- ↑ в конце концов, десктоп сейчас обычно 32-битный, а вот сборочный сервер — 64-битный… хотя после ветки 4.1 и официального выпуска 64-битного десктопа это соображение может быть и пересмотрено