Модификация установочного ISO образа
Сделать кастомный диск Alt Linux с автоматической установкой системы
Установить в автоматическом режиме
Глава 22. Автоматическая установка системы (autoinstall)
Installer/common
Изменение параметров загрузки Первая помощь
Изменить Grub
UEFI Официальный сайт rEFInd Boot Manager
Параметры настройки Конфигурационного файла /boot/efi/EFI/refind/refind.conf, /boot/EFI/BOOT/refind.conf, /Volumes/ESP/EFI/refind/refind.conf, R:\EFI\refind\refind.conf
Формат файла pkg-groups.tar Описание форматов указания групп Alterator-pkg
Оригинальные Образы ALT 8 SP Workstation
Какой программой/командой записывать образ Запись образов на DVD и USB Flash
Образ будет редактироваться AltLinux Workstation 8SP
Репозиторий на 01.10.2024 под 8 лицензию c9f2 будем использовать
Официальная некоторая документация:
Видео на Дзене
Видео на Дзен
Распаковывать и собирать обратно будем на AltLinux 8.2
Открываем терминал переходим под root командой
Код: Выделить всё
su-
Все в одном скрипте 4 сообщение в данной теме
На основе всего выше перечисленного создаем
Скрипт для Распаковки Образа modaltlinuxiso.sh
Код: Выделить всё
#!/bin/sh
# Модификация установочного ISO образа
# 2024.10.25 A.A.Mamzikov
# https://www.altlinux.org/Модификация_установочного_ISO_образа
# https://www.mytechnote.ru/administrirovanie/kak-sdelat-kastomnyy-disk-alt-linux-s-avtomaticheskoy-ustanovkoy-sistemy/
# https://www.altlinux.org/Autoinstall
# https://www.altlinux.org/Первая_помощь#Изменение_параметров_загрузки
# http://ftp.altlinux.org/pub/distributions/ALTLinux/c8/branch/x86_64/
# https://packages.altlinux.org/en/c9f2/packages/
# Установка пакетов
apt-get install xorriso squashfs-tools cdrkit-utils genisoimage apt-repo-tools
# Путь до ISO-образа пример: ./modaltlinuxiso.sh "/home/user1/alt"$VER"-x64-auto-24-10-2024.iso"
ALTISO=$1
# Путь распаковки образа
DIRISO=/home/user1/ALT-CREATE
# Версия ALT
VER=82
# Создать каталоги
mkdir -p "$DIRISO"/altiso"$VER"
mkdir -p "$DIRISO"/ISO
#mkdir -p "$DIRISO"/squashfs-root"$VER"
mkdir -p "$DIRISO"/syslinux
mkdir -p "$DIRISO"/EDITUEFI
# Получение информации об образе
isoinfo -d -i "$ALTISO" > "$DIRISO"/infoiso.txt
xorriso -indev "$ALTISO" -toc -pvd_info > "$DIRISO"/xorriso.txt
# Распаковка образа
xorriso -osirrox on -indev "$ALTISO" -extract / "$DIRISO"/altiso"$VER"
chmod 700 -R "$DIRISO"/altiso"$VER"
# altinst — базовый образ для установки системы
# live — образ для запуска LiveCD
# rescue — образ для запуска RescueCD
# ALTLinux/ — содержит набор пакетов для установки системы
# Перейдем в папку
cd "$DIRISO"
# Распакуем образ altinst
unsquashfs altiso"$VER"/altinst
# Удалить предыдущее если есть с запросом
rm -ri "$DIRISO"/squashfs-root"$VER"
# Переименуем
mv squashfs-root squashfs-root"$VER"
# Извлекаем список пакетов для изменения если это будет необходимо
# groups (содержащий описание групп программного обеспечения в файлах .directory) и lists (содержащий файлы со списками пакетов для каждой группы). В подкаталоге lists находится скрытый файл .base, содержащий список пакетов «базовой системы» (то есть те пакеты, которые устанавливаются в любом случае)
# Удалить если есть старый каталог с запросом
rm -ri "$DIRISO"/altiso"$VER"/Metadata/pkg-groups
# Создать директорию
mkdir -p "$DIRISO"/altiso"$VER"/Metadata/pkg-groups
# Извлечение
tar xf "$DIRISO"/altiso"$VER"/Metadata/pkg-groups.tar -C "$DIRISO"/altiso"$VER"/Metadata/pkg-groups
# Архив install-scripts.tar; preinstall.d - сразу после установки OC (перед установкой дополнительного набора ПО); postinstall.d -после последнего шага инсталлятора.
# Удалить если есть старый каталог с запросом
rm -ri "$DIRISO"/altiso"$VER"/Metadata/install-scripts
# Создать директорию
mkdir -p "$DIRISO"/altiso"$VER"/Metadata/install-scripts/preinstall.d
mkdir -p "$DIRISO"/altiso"$VER"/Metadata/install-scripts/postinstall.d
# Извлечение
tar xf "$DIRISO"/altiso"$VER"/Metadata/install-scripts.tar -C "$DIRISO"/altiso"$VER"/Metadata/install-scripts
# Чтобы новый ISO сохранил возможность запускаться с флешек, необходимо из исходного ISO получить гибридный MBR:
rm "$DIRISO"/syslinux/isohdpfx.bin
dd if="$ALTISO" of="$DIRISO"/syslinux/isohdpfx.bin bs=512 count=1
# Права на архив
chmod 0774 "$DIRISO"/syslinux/isohdpfx.bin
# Распаковка загрузчика UEFI .efiboot.img
mount -o rw ""$DIRISO"/altiso"$VER"/EFI/.efiboot.img" "$DIRISO"/EDITUEFI
# Проверка что с монтировалось
if mount | grep -q "$DIRISO/EDITUEFI"; then
echo "UEFI СМОНТИРОВАНО для редактирования"
echo 'Команда монтирования: mount -o rw ""$DIRISO"/altiso"$VER"/EFI/.efiboot.img" "$DIRISO"/EDITUEFI'
else
echo "UEFI НЕ СМОНТИРОВАНО для редактирования"
echo 'Команда монтирования: mount -o rw ""$DIRISO"/altiso"$VER"/EFI/.efiboot.img" "$DIRISO"/EDITUEFI'
fi
# Запаковать образ обратно можно так, предварительно удалив существующий образ:
# rm -f altiso"$VER"/altinst
# mksquashfs squashfs-root"$VER"/ altiso"$VER"/altinst
# Собирать будем скриптом ./build.sh
./modaltlinuxiso.sh "Путь до образа"
Код: Выделить всё
./modaltlinuxiso.sh "/home/user1/altlinux8.2-x64-auto-24-10-2024.iso"
Код: Выделить всё
#!/bin/sh
START=$(date +%s)
# Путь распаковки образа
DIRISO=/home/user1/ALT-CREATE
# Версия ALT
VER=82
# Перейдем в папку с образом
cd "$DIRISO"
# Программа установки будет смотреть в следующих местах
# Каталог "$DIRISO"/altiso"$VER"/Metadata/ или "$DIRISO"/squashfs-root"$VER"/usr/share/install2/metadata/
# Содержимое каталога metadata
# autoinstall.scm — сценарий установки на языке schem
# vm-profile.scm — схема разбивки жёсткого диска на языке Scheme
# pkg-groups.tar — архив, содержащий дополнительные к базовой системе группы пакетов
# install-scripts.tar — архив, содержащий дополнительные preinstall.d и postinstall.d скрипты. Скрипты нужно помещать внутрь архива в эти подкаталоги. Скрипты должны быть исполняемыми
# У нас скрипт "$DIRISO"/squashfs-root"$VER"/usr/share/install2/postinstall.d/97-ku.sh при установке системы
# "$DIRISO"/squashfs-root"$VER"/usr/tmp/kuс/firsttime.d/firsttime.sh - Выполняется при первом включении ОС
# Изменение образа внутри "$DIRISO"/squashfs-root"$VER"/var/tmp/kuс
# Добавить свои пакеты в состав пакетов в подкаталоге ALTLinux/RPMS.main в ""$DIRISO"/altiso"$VER"/ALTLinux/RPMS.main"
# После этого запустите:
genbasedir --topdir="$DIRISO"/altiso"$VER" ALTLinux main
# Обновится содержимое каталога "$DIRISO"/altiso"$VER"/ALTLinux/base/
# Архив с дополнительными группами пакетов
if [ -d "$DIRISO"/altiso"$VER"/Metadata/pkg-groups ]; then
# Удалить старый архив pkg-groups.tar
rm -f "$DIRISO"/altiso"$VER"/Metadata/pkg-groups.tar
# Пакуем pkg-groups со списками установки пакетов
tar -C "$DIRISO"/altiso"$VER"/Metadata/pkg-groups -cf "$DIRISO"/altiso"$VER"/Metadata/pkg-groups.tar groups lists profiles
# Если архив создался удалим папку
if [ -f "$DIRISO"/altiso"$VER"/Metadata/pkg-groups.tar ]; then rm -rf "$DIRISO"/altiso"$VER"/Metadata/pkg-groups ; fi
# Права на архив
chmod 0774 "$DIRISO"/altiso"$VER"/Metadata/pkg-groups.tar
fi
# Архив install-scripts.tar; preinstall.d - сразу после установки OC (перед установкой дополнительного набора ПО); postinstall.d -после последнего шага инсталлятора.
if [ -d "$DIRISO"/altiso"$VER"/Metadata/install-scripts ]; then
# Удалить старый архив install-scripts.tar
rm -f "$DIRISO"/altiso"$VER"/Metadata/install-scripts.tar
# Сделать скрипты исполняемыми
chmod +x "$DIRISO/altiso$VER/Metadata/install-scripts"/preinstall.d/*
chmod +x "$DIRISO/altiso$VER/Metadata/install-scripts"/postinstall.d/*
# Пакуем содержимое install-script
tar -C "$DIRISO"/altiso"$VER"/Metadata/install-scripts -cf "$DIRISO"/altiso"$VER"/Metadata/install-scripts.tar preinstall.d postinstall.d
# Если архив создался удалим папку
if [ -f "$DIRISO"/altiso"$VER"/Metadata/install-scripts.tar ]; then rm -rf "$DIRISO"/altiso"$VER"/Metadata/install-scripts ; fi
# Права на архив
chmod 0774 "$DIRISO"/altiso"$VER"/Metadata/install-scripts.tar
fi
# Удаляем старый altins
rm -f "$DIRISO"/altiso"$VER"/altinst
# формируем altinst
mksquashfs "$DIRISO"/squashfs-root"$VER" "$DIRISO"/altiso"$VER"/altinst -b 1024k -comp gzip -Xcompression-level 1
# Удалить распаковку altinst если файл сформировался
#if [ -f "$DIRISO"/altiso"$VER"/altinst ]; then
#rm -rf "$DIRISO"/squashfs-root"$VER"
#fi
# От монтируем загрузчик UEFI
umount "$DIRISO"/EDITUEFI
# Проверим
if mount | grep -q "$DIRISO/EDITUEFI"; then
echo "UEFI СМОНТИРОВАНО для редактирования"
echo
echo "Команда размонтирования: umount "$DIRISO"/EDITUEFI"
echo "Команда монтирования: mount -o rw ""$DIRISO"/altiso"$VER"/EFI/.efiboot.img" "$DIRISO"/EDITUEFI"
else
echo "UEFI для редактирования РАЗМОНТИРОВАНО"
echo
echo "Команда монтирования: mount -o rw ""$DIRISO"/altiso"$VER"/EFI/.efiboot.img" "$DIRISO"/EDITUEFI"
echo "Команда размонтирования: umount "$DIRISO"/EDITUEFI"
#rm -rf "$DIRISO"/EDITUEFI
fi
# Варианты сборки образа
function isomkisofs(){
command='mkisofs \
-input-charset iso8859-1 \ # Кодировка для входных файлов
-o "$DIRISO"/ISO/alt"$VER"-x64-auto-$(date +"%d-%m-%Y-%H-%M-%S").iso \ # Имя выходного ISO-файла
-b syslinux/isolinux.bin \ # Загрузочный образ первичный загрузчик
-c syslinux/boot.cat \ # Файл каталога загрузки
-no-emul-boot \ # Образ не должен эмулировать загрузки
-boot-load-size 4 \ # Размер загрузочного сектора
-boot-info-table \ # Включает в образ таблицу информации о загрузке
-J \ # Поддержка Joliet для Windows
-R \ # Поддержка Rock Ridge для UNIX
-V "ALT 8 SP WORKSTATION" \ # Метка тома
"$DIRISO"/altiso"$VER"/ # путь к директории, которую нужно включить в ISO'
# Удаляем комментарии для выполнения команды
commanda=$(echo "$command" | sed 's/\\$//g;s/\\ #.*//g;s/ #.*//g'| tr -d '\r\n')
echo "Команда создания ISO:" $commanda
# Выполним
eval "$commanda"
}
# Значения параметров volid и appid полученные на этапе анализа исходного образа
volid=$(cat "$DIRISO"/infoiso.txt "$DIRISO"/xorriso.txt|grep -i ^"Volume id" | sed "s/Volume id.*://I; s/[\']//g; s/^[ \t]*//; s/[ \t]*$//"| awk 'NF {print; exit}')
appid=$(cat "$DIRISO"/infoiso.txt "$DIRISO"/xorriso.txt|grep -i ^"Application id\|App Id" | sed "s/Application id.*://I;s/App Id.*://I;s/[\']//g; s/^[ \t]*//; s/[ \t]*$//"| awk 'NF {print; exit}')
function testiso(){
command='xorriso \
-as mkisofs \ # xorriso должен работать как mkisofs
-joliet \ # Поддержка Joliet для Windows
-r \ # -rational-rock: Генерировать рационализированную информацию о каталоге Rock Ridge для UNIX
-R \ # -rock Генерировать информацию о каталоге Rock Ridge
-sysid "LINUX" \ # Устанавливает идентификатор системы
-volid "ALT8SP" \ # Метка тома
-eltorito-boot syslinux/isolinux.bin \ # Загрузочный образ первичный загрузчик
-eltorito-catalog syslinux/boot.cat \ # Файл каталога загрузки
-no-emul-boot \ # Образ не должен эмулировать загрузку
-boot-load-size 4 \ # Размер загрузочного сектора
-boot-info-table \ # Включает в образ таблицу информации о загрузке
-input-charset iso8859-1 \ # Кодировка для входных файлов
-o "$DIRISO"/ISO/alt"$VER"-x64-auto-$(date +"%d-%m-%Y-%H-%M-%S").iso \ # Имя выходного ISO-файла
"$DIRISO"/altiso"$VER"/ # Путь к директории, которую нужно включить в ISO'
# Удаляем комментарии для выполнения команды
commanda=$(echo "$command" | sed 's/\\$//g;s/\\ #.*//g;s/ #.*//g'| tr -d '\r\n')
echo "Команда создания ISO:" $commanda
# Выполним
eval "$commanda"
}
function isoxorrisor(){
command='xorriso \
-as mkisofs -v \ # xorriso должен работать как mkisofs
-joliet \ # Поддержка Joliet
-partition_cyl_align "off" \ # Выравнивание по цилиндрам отключено
-partition_offset 16 \ # Cмещение для раздела
-iso-level 3 \ # Уровень ISO поддержка длинных имен файлов
-full-iso9660-filenames \ # Полные имена файлов ISO 9660
-sysid "LINUX" \ # Идентификатор системы
-volid "ALT8SP64" \ # Метка тома
-volset "ALT" \ # Имя набора томов
-publisher "BASEALT LTD" \ # Издатель
-appid "" \ # Идентификатор приложения
-copyright "LICENSE_ALL_HTML" \ # Информация о авторских правах
-eltorito-boot syslinux/isolinux.bin \ # Параметры для загрузки El Torito пример: syslinux/isolinux.bin boot/grub/bios.img
#-c isolinux/boot.cat \ # короткий -с
-eltorito-catalog syslinux/boot.cat \ # Файл каталога загрузки El Torito пример: syslinux/boot.cat boot/grub/boot.cat
#-b isolinux/isolinux.bin
-no-emul-boot \ # Образ не должен эмулировать загрузку
-boot-load-size 4 \ # Размер загрузочного сектора
-boot-info-table \ # Таблица информации о загрузке
#--grub2-boot-info \ # Файл MBR для Grub2
#--protective-msdos-label \ # Защитная метка MSDOS для GPT
#--grub2-mbr syslinux/isohdpfx.bin \ # --grub2-mbr вместо "syslinux/isohdpfx.bin" можно указать путь до исходного ISO образа
-isohybrid-mbr syslinux/isohdpfx.bin \ # Файл MBR для гибридного образа
-eltorito-alt-boot \ # Альтернативный загрузочный образ
#-e EFI/.efiboot.img \ # EFI-образ, но с другим синтаксисом
#-efi-boot-part EFI/.efiboot.img \ # Это часть EFI-загрузки
#-e boot/grub/efi.img
--efi-boot EFI/.efiboot.img \ # Файл загрузки для EFI
-no-emul-boot \ # Образ не должен эмулировать загрузку
-isohybrid-gpt-basdat \ # Образ должен поддерживать GPT
#-o ../custom-ubuntu.iso .
-output "$DIRISO"/ISO/alt"$VER"-x64-auto-$(date +"%d-%m-%Y-%H-%M-%S").iso \ # Имя выходного ISO-файла
"$DIRISO"/altiso"$VER"/ # Путь к директории для включения в ISO'
# Удаляем комментарии для выполнения команды
commanda=$(echo "$command" | sed 's/\\$//g;s/\\ #.*//g;s/ #.*//g'| tr -d '\r\n')
echo "Команда создания ISO:" $commanda
# Выполним
eval "$commanda"
}
function isoxorriso(){
command='xorriso \
-as mkisofs \ # xorriso должен работать как mkisofs
-joliet \ # Поддержка Joliet
-partition_cyl_align "off" \ # Выравнивание по цилиндрам отключено
-partition_offset 16 \ # Cмещение для раздела
-iso-level 3 \ # Уровень ISO поддержка длинных имен файлов
-full-iso9660-filenames \ # Полные имена файлов ISO 9660
-sysid "LINUX" \ # Идентификатор системы
-volid "ALTSP8" \ # Метка тома
-volset "ALT" \ # Имя набора томов
-publisher "BASEALT LTD" \ # Издатель
-appid "" \ # Идентификатор приложения
-copyright "LICENSE_ALL_HTML" \ # Информация о авторских правах
-eltorito-boot syslinux/isolinux.bin \ # Параметры для загрузки El Torito пример: syslinux/isolinux.bin boot/grub/bios.img
#-c isolinux/boot.cat
-eltorito-catalog syslinux/boot.cat \ # Файл каталога загрузки El Torito пример: syslinux/boot.cat boot/grub/boot.cat
#-b isolinux/isolinux.bin
-no-emul-boot \ # Образ не должен эмулировать загрузку
-boot-load-size 4 \ # Размер загрузочного сектора
-boot-info-table \ # Таблица информации о загрузке
#--grub2-boot-info # Файл MBR для Grub2
#--protective-msdos-label # Защитная метка MSDOS для GPT
#--grub2-mbr syslinux/isohdpfx.bin # --grub2-mbr вместо "syslinux/isohdpfx.bin" можно указать путь до исходного ISO образа
-isohybrid-mbr syslinux/isohdpfx.bin \ # Файл MBR для гибридного образа
-eltorito-alt-boot \ # Альтернативный загрузочный образ
#-e EFI/.efiboot.img # EFI-образ, но с другим синтаксисом
#-efi-boot-part EFI/.efiboot.img # Это часть EFI-загрузки
#-e boot/grub/efi.img
--efi-boot EFI/.efiboot.img \ # Файл загрузки для EFI
-no-emul-boot \ # Образ не должен эмулировать загрузку
-isohybrid-gpt-basdat \ # Образ должен поддерживать GPT
#-o ../custom-ubuntu.iso .
-output "$DIRISO"/ISO/alt"$VER"-x64-auto-`date +"%d-%m-%Y-%H-%M-%S"`.iso \ # Имя выходного ISO-файла
"$DIRISO"/altiso"$VER"/ # Путь к директории для включения в ISO'
# Удаляем комментарии для выполнения команды
commanda=$(echo "$command" | sed 's/\\$//g;s/\\ #.*//g;s/ #.*//g'| tr -d '\r\n')
echo "Команда создания ISO:" $commanda
# Выполним
eval "$commanda"
}
function isoxorrisot(){
# Пример ALT Workstation 9.0
command='xorriso \
-as mkisofs \ # xorriso должен работать как mkisofs
-joliet \ # Поддержка Joliet
-partition_cyl_align "off" \ # Выравнивание по цилиндрам отключено
-partition_offset 16 \ # Cмещение для раздела
-iso-level 3 \ # Уровень ISO поддержка длинных имен файлов
-full-iso9660-filenames \ # Полные имена файлов ISO 9660
-sysid "LINUX" \ # Идентификатор системы
-volid "ALT Workstation 9.0 x86_64" \ # Метка тома
-volset "ALT" \ # Имя набора томов
-publisher "BASEALT LTD" \ # Издатель
-appid "ALT WORKSTATION 9.0 X86_64 2019-10-22" \ # Идентификатор приложения
-copyright "LICENSE_ALL_HTML" \ # Информация о авторских правах
-eltorito-boot syslinux/isolinux.bin \ # Параметры для загрузки El Torito пример: syslinux/isolinux.bin boot/grub/bios.img
-eltorito-catalog syslinux/boot.cat \ # Файл каталога загрузки El Torito пример: syslinux/boot.cat boot/grub/boot.cat
-no-emul-boot \ # Образ не должен эмулировать загрузку
-boot-load-size 4 \ # Размер загрузочного сектора
-boot-info-table \ # Таблица информации о загрузке
-isohybrid-mbr syslinux/isohdpfx.bin \ # Файл MBR для гибридного образа
-eltorito-alt-boot \ # Альтернативный загрузочный образ
-efi-boot EFI/.efiboot.img \ # Файл загрузки для EFI
-no-emul-boot \ # Образ не должен эмулировать загрузку
-isohybrid-gpt-basdat \ # Образ должен поддерживать GPT
-output ../alt-custom.iso \ # Имя выходного ISO-файла
. # Путь к директории для включения в ISO'
# Удаляем комментарии для выполнения команды
commanda=$(echo "$command" | sed 's/\\$//g;s/\\ #.*//g;s/ #.*//g'| tr -d '\r\n')
echo "Команда создания ISO:" $commanda
# Выполним
eval "$commanda"
}
function isoxorrisos(){
# Пример ALT Workstation 10
command='xorriso \
-as mkisofs \ # xorriso должен работать как mkisofs
-joliet \ # Поддержка Joliet
-iso-level 3 \ # Уровень ISO поддержка длинных имен файлов
-full-iso9660-filenames \ # Полные имена файлов ISO 9660
-sysid "LINUX" \ # Идентификатор системы
-volid "ALT Workstation 10" \ # Метка тома
-volset "ALT" \ # Имя набора томов
-publisher "BASEALT LTD" \ # Издатель
-appid "ALT WORKSTATION" \ # Идентификатор приложения
-copyright "LICENSE_ALL_HTML" \ # Информация о авторских правах
-eltorito-boot boot/grub/bios.img \ # Параметры для загрузки El Torito пример: syslinux/isolinux.bin boot/grub/bios.img
--eltorito-catalog boot/grub/boot.cat \ # Файл каталога загрузки El Torito пример: syslinux/boot.cat boot/grub/boot.cat
-no-emul-boot \ # Образ не должен эмулировать загрузку
-boot-load-size 4 \ # Размер загрузочного сектора
-boot-info-table \ # Таблица информации о загрузке
--grub2-boot-info # Файл MBR для Grub2
--protective-msdos-label # Защитная метка MSDOS для GPT
--grub2-mbr syslinux/isohdpfx.bin # --grub2-mbr вместо "syslinux/isohdpfx.bin" можно указать путь до исходного ISO образа
-isohybrid-mbr syslinux/isohdpfx.bin \ # Файл MBR для гибридного образа
-eltorito-alt-boot \ # Альтернативный загрузочный образ
-e EFI/.efiboot.img # EFI-образ, но с другим синтаксисом
-efi-boot-part EFI/.efiboot.img # Это часть EFI-загрузки
-no-emul-boot \ # Образ не должен эмулировать загрузку
-output ../my-alt-custom.iso \ # Имя выходного ISO-файла
. # Путь к директории для включения в ISO'
# Удаляем комментарии для выполнения команды
commanda=$(echo "$command" | sed 's/\\$//g;s/\\ #.*//g;s/ #.*//g'| tr -d '\r\n')
echo "Команда создания ISO:" $commanda
# Выполним
eval "$commanda"
}
# Выбираем через что будем формировать iso образ
#isomkisofs
#testiso
isoxorrisor
#isoxorriso
#isoxorrisot
#isoxorrisos
END=$(date +%s)
DIFF=$(( $END - $START ))
printf '%dh:%dm:%ds\n' $(($DIFF/3600)) $(($DIFF%3600/60)) $(($DIFF%60))
# Дать права на образы ISO
chmod 775 -R "$DIRISO"/ISO/
# Удалить распаковку если образ собрался
#if [ -f "$DIRISO"/ISO/alt"$VER"-x64-auto-$(date +"%d-%m-%Y-%H-%M-%S").iso ]; then
#rm -rf "$DIRISO"/altiso"$VER"
#rm -rf "$DIRISO"/syslinux
#rm -f "$DIRISO"/infoiso.txt
#rm -f "$DIRISO"/xorriso.txt
#fi
Код: Выделить всё
./build.sh
Повторная распаковка после сборки. (образ не заработал надо внести правки, чтобы заново из iso не распаковывать распакуем только что упаковалось скриптом build.sh)
Скрипт unpack.sh
Код: Выделить всё
#!/bin/sh
# Повторная распаковка без извлечения образа ISO
# Путь распаковки образа
DIRISO=/home/user1/ALT-CREATE
# Версия ALT
VER=82
# Создать каталоги
mkdir -p "$DIRISO"/altiso"$VER"
mkdir -p "$DIRISO"/ISO
#mkdir -p "$DIRISO"/squashfs-root"$VER"
mkdir -p "$DIRISO"/syslinux
mkdir -p "$DIRISO"/EDITUEFI
# Перейдем в папку
cd "$DIRISO"
# Распакуем образ altinst
#unsquashfs altiso"$VER"/altinst
# Удалить предыдущее если есть с запросом
#rm -ri "$DIRISO"/squashfs-root"$VER"
# Переименуем
#mv squashfs-root squashfs-root"$VER"
# Извлекаем список пакетов для изменения если это будет необходимо
# groups (содержащий описание групп программного обеспечения в файлах .directory) и lists (содержащий файлы со списками пакетов для каждой группы). В подкаталоге lists находится скрытый файл .base, содержащий список пакетов «базовой системы
# Удалить если есть старый каталог с запросом
rm -ri "$DIRISO"/altiso"$VER"/Metadata/pkg-groups
# Создать директорию
mkdir -p "$DIRISO"/altiso"$VER"/Metadata/pkg-groups
# Извлечение
tar xf "$DIRISO"/altiso"$VER"/Metadata/pkg-groups.tar -C "$DIRISO"/altiso"$VER"/Metadata/pkg-groups
# Архив install-scripts.tar; preinstall.d - сразу после установки OC (перед установкой дополнительного набора ПО); postinstall.d -после последнего шага инсталлятора.
# Удалить если есть старый каталог с запросом
rm -ri "$DIRISO"/altiso"$VER"/Metadata/install-scripts
# Создать директорию
mkdir -p "$DIRISO"/altiso"$VER"/Metadata/install-scripts/preinstall.d
mkdir -p "$DIRISO"/altiso"$VER"/Metadata/install-scripts/postinstall.d
# Извлечение
tar xf "$DIRISO"/altiso"$VER"/Metadata/install-scripts.tar -C "$DIRISO"/altiso"$VER"/Metadata/install-scripts
# Распаковка загрузчика UEFI .efiboot.img
mount -o rw ""$DIRISO"/altiso"$VER"/EFI/.efiboot.img" "$DIRISO"/EDITUEFI
# Проверка что смонтировалось
if mount | grep -q "$DIRISO/EDITUEFI"; then
echo "UEFI СМОНТИРОВАНО для редактирования"
echo 'Команда монтирования: mount -o rw ""$DIRISO"/altiso"$VER"/EFI/.efiboot.img" "$DIRISO"/EDITUEFI'
else
echo "UEFI НЕ СМОНТИРОВАНО для редактирования"
echo 'Команда монтирования: mount -o rw ""$DIRISO"/altiso"$VER"/EFI/.efiboot.img" "$DIRISO"/EDITUEFI'
fi
Код: Выделить всё
./unpack.sh
Код: Выделить всё
./build.sh
Набор ПО для установки системы делится на две части: загрузчик (propagator) и собственно инсталлятор, с которым в основном пользователь и работает.
Загрузчик запускается при помощи аппаратно реализованных низкоуровневых протоколов (протокол загрузки с CD/DVD, PXE для загрузки через сеть). В силу больших ограничений на занимаемое место, единственная его задача -- запустить ядро, найти (при необходимости получить из сети) и запустить инсталлятор. В дистрибутиве загрузчик размещается в initrd образе.
Инсталлятор в свою очередь тоже делится на две части:
1. первая часть (install2) выполняется в специализированной среде инсталлятора, после установки системы происходит перенос настроек из этой среды в только что установленную.
В дистрибутиве первая часть распространяется в виде squashfs-образа файловой системы.
2. вторая часть (install3) выполняется уже внутри установленной системы (и с бэкендами, запущенными на другой копии alteratord).
В дистрибутиве представлена в виде пакетов, устанавливаемых как базовая система.
Благодаря такому разделению сильно сокращается размер первой части и, соответственно, понижаются требования к аппаратной платформе.
При невозможности получения из указанного места программа установки будет смотреть в следующих местах:
1.на диске в каталоге /Metadata/
/home/user1/ALT-CREATE/altiso82/Metadata
2. в образе установщика в каталоге /usr/share/install2/metadata/
/home/user1/ALT-CREATE/squashfs-root82/usr/share/install2/metadata
Содержимое каталога metadata
autoinstall.scm — сценарий установки на языке schem
vm-profile.scm — схема разбивки жёсткого диска на языке Scheme если нет берется /var/cache/alterator/vm-profile.scm
pkg-groups.tar — архив, содержащий дополнительные к базовой системе группы пакетов rpm
install-scripts.tar — архив, содержащий дополнительные preinstall.d и postinstall.d скрипты.
Скрипты нужно помещать внутрь архива в эти подкаталоги. Скрипты должны быть исполняемыми
Авто установка (пользователи пароли языки и тд) autoinstall.scm
Код: Выделить всё
mcedit /home/user1/ALT-CREATE/altiso82/Metadata/autoinstall.scm
Код: Выделить всё
; установка языка операционной системы (ru_RU)
("/sysconfig-base/language" action "write" lang ("ru_RU"))
; установка переключателя раскладки клавиатуры на Alt+Shift
;("/sysconfig-base/kbd" action "write" layout "alt_shift_toggle")
("/sysconfig-base/kbd" language ("ru_RU") action "write" layout "alt_sh_toggle")
; установка часового пояса в Europe/Moscow, время в BIOS будет храниться в UTC
("/datetime-installer" action "write" commit #t name "RU" zone "Europe/Moscow" utc+3 #t)
; автоматическая разбивка жёсткого диска
("/evms/control" action "write" control open installer #t)
("/evms/control" action "write" control update)
("/evms/profiles/workstation" action apply commit #f clearall #t exclude ())
("/evms/control" action "write" control commit)
("/evms/control" action "write" control close)
; Если нет файла /metadata/vm-profile.scm разбивки берем в /var/cache/alterator/vm-profile.scm
;("/evms/profiles/workstation" action apply commit #f clearall #t exclude ())
;после 10.05.2023 (дистрибутивы 10.2) раскоментировать строку ниже
;("/remount-destination" action "write")
; монтирование файловой системы и создание базовых директорий для p10 и ниже скрипт нужно переименовать в pkg-init
; установка пакетов операционной системы
;("pkg-install-init" action "write")
("pkg-init" action "write")
; установка только базовой системы (дополнительные группы пакетов из pkg-groups.tar указываются по именам через пробел в параметре lists)
;("/pkg-install" action "write" lists "" auto #t)
("/pkg-install" action "write" lists "sp/cups-server sp/mate-desktop sp/zero sp/office sp/scanning sp/vlc sp/xorg sp/signal-client" auto #t)
("/preinstall" action "write")
; установка загрузчика GRUB в MBR на первый жёсткий диск без пароля
;("/grub" action "write" device "/dev/sda" passwd #f passwd_1 "*" passwd_2 "*")
; установка загрузчика GRUB в UEFI на первый жёсткий диск без пароля
;("/grub" action "write" language ("ru_RU") device "efi" passwd "#t" passwd_1 "*" passwd_2 "*")
; настройка сетевого интерфейса на получение адреса по DHCP
("/net-eth" action "write" reset #t)
("/net-eth" action "write" name "eth0" configuration "dhcp" default "" search "" dns "" computer_name "altpc")
; настройка сетевого интерфейса на статический IPv4
;("/net-eth" action "write" name "eth0" configuration "static" default "192.168.1.1" search "localhost.com" dns "192.168.1.1" computer_name "altpc" ipv "4" ipv_enabled #t)
;("/net-eth" action "add_iface_address" name "eth0" addip "192.168.1.2" addmask "24" ipv "4")
("/net-eth" action "write" commit #t)
; установка пароля суперпользователя root
("/root/change_password" language ("ru_RU") passwd_2 "1234" passwd_1 "1234")
# Установка пароля пользователю user1
("/users/create_account" new_name "user1" gecos "" allow_su #t auto #f passwd_1 "0000" passwd_2 "0000")
; установка загрузчика GRUB в MBR на первый жёсткий диск
("/grub" action "write" language ("ru_RU") device "/dev/sda" passwd "#t" passwd_1 "grubalt" passwd_2 "grubalt")
; Автоустановка в UEFI отключить выше /dev/vda
("/grub" action "write" language ("ru_RU") device "efi" passwd "#t" passwd_1 "grubalt" passwd_2 "grubalt")
;/postinstall в конце установки laststate или при первом запуске ОС firsttime выполнить run команда либо набор команд или script скачивается и выполняется.
;("/postinstall/firsttime" script "ftp://192.168.0.123/metadata/update.sh")
;("/postinstall/firsttime" run "curl --silent --insecure http://server/finish")
;("/postinstall/laststate" script "http://server/script.sh")
Код: Выделить всё
("/pkg-install" action "write" lists "centaurus/mate" auto #t)
Пример установки пароля на загрузчик в режиме EFI (пароль '123'):
Код: Выделить всё
("/grub" action "write" device "efi" passwd #t passwd_1 "123" passwd_2 "123")
Код: Выделить всё
("/grub" action "write" device "/dev/sda" passwd #f passwd_1 "*" passwd_2 "*")
Код: Выделить всё
("/net-eth" action "write" reset #t)
("/net-eth" action "write" name "enp0s3" ipv "4" configuration "static" default "192.168.0.1" search "" dns "8.8.8.8" computer_name "newhost" ipv_enabled #t)
("/net-eth" action "add_iface_address" name "enp0s3" addip "192.168.0.25" addmask "24" ipv "4")
("/net-eth" action "write" commit #t)
192.168.0.25 – IP-адрес;
192.168.0.1 – шлюз по умолчанию;
8.8.8.8 – DNS-сервер;
newhost – имя хоста.
Схема разбивки диска vm-profile.scm
Код: Выделить всё
mcedit /home/user1/ALT-CREATE/altiso82/Metadata/vm-profile.scm
Код: Выделить всё
((workstation
(title . "Setup for workstation")
(action . trivial)
(actiondata ("/boot/efi" (size 1024000 . 1024000 ) (fsim . "FAT32") (methods plain))
("swap" (size 8192000 . 8192000) (fsim . "SWAPFS") (methods plain))
("/" (size 20971520 . #t ) (fsim . "Ext2/3") (methods plain))))
)
Код: Выделить всё
((workstation
(title . "Setup for workstation")
(action . trivial)
(actiondata ("swap" (size 1024000 . 1024000) (fsim . "SWAPFS") (methods plain))
("/" (size 20971520 . 20971520 ) (fsim . "Ext2/3") (methods plain))
("/home" (size 1024000 . #t) (fsim . "Ext2/3") (methods plain))))
)
Все числа указаны в виде 512-байтных блоков, поэтому чтобы получить размер в байтах, нужно умножить значения на 512.
В примере указана разбивка:
подкачка (swap) — 512 МБ;
корневой раздел (/) — 10 ГБ;
/home - всё остальное, но не меньше 500 МБ.
Вы можете не указывать этот профиль вообще, возложив автоматическую разметку на профиль в составе дистрибутива (куда он может попасть из сборочного профиля либо в результате выполнения скрипта из пакета вроде volumes-profile-* или installer-distro-*; вариант по умолчанию содержится в alterator-vm).
Имя профиля (workstation) указывается в autoinstall.scm:
("/evms/profiles/workstation" action apply commit #f clearall #t exclude ())
Пример файла vm-profile.scm с одним профилем (server) разбивки жёсткого диска:
Код: Выделить всё
((server
(title . "Setup for server")
(action . trivial)
(actiondata ("swap" (size 2048000 . 2048000) (fsim . "SWAPFS") (methods plain))
("/" (size 16384000 . 16384000 ) (fsim . "Ext4") (methods plain))
("/var" (size 4096000 . #t ) (fsim . "Ext4") (methods plain))))
)
подкачка (swap) – 1024 МБ;
корневой раздел (/) – 8 ГБ;
/var – всё остальное, но не меньше 2 ГБ.
Примечание. Все числа в файле vm-profile.scm указываются в виде 512-байтных блоков, поэтому чтобы получить размер в байтах, нужно умножить значения на 512.
Примечание. Добавление записи для /boot/efi не требуется – установщик добавит её сам.
Пример файла vm-profile.scm с тремя профилями разбивки жёсткого диска:
Код: Выделить всё
((server
(title . "Setup for server")
(action . trivial)
(actiondata ("swap" (size 2048000 . 2048000) (fsim . "SWAPFS") (methods plain))
("/" (size 16384000 . 16384000 ) (fsim . "Ext4") (methods plain))
("/var" (size 4096000 . #t ) (fsim . "Ext4") (methods plain))))
(server_lvm
(title . "Setup for server LVM")
(action . trivial)
(actiondata ("swap" (size 2048000 . 2048000) (fsim . "SWAPFS") (methods lvm))
("/" (size 16384000 . 16384000 ) (fsim . "Ext4") (methods lvm))
("/var" (size 4096000 . #t ) (fsim . "Ext4") (methods lvm))))
(timeshift
(title . "Timeshift-compatible setup")
(action . trivial)
(actiondata ("swap" (size 2048000 . 2048000) (fsim . "SWAPFS") (methods plain))
("" (size 40632320 . #t) (fsim . "BtrFS") (methods plain) (subvols ("@" . "/") ("@home" . "/home")))))
)
server – подкачка (swap), корневой раздел и раздел /var;
server_lvm – подкачка (swap), корневой раздел и раздел /var в томе LVM;
timeshift – подкачка (swap) и раздел BtrFS с разбивкой на подразделы @ и @home.
Имя профиля указывается в файле autoinstall.scm:
Код: Выделить всё
("/evms/profiles/server_lvm" action apply commit #f clearall #t exclude ())
Добавление Пакетов rpm в образ pkg-groups.tar
Можно добавить в altinst пакеты и запустить установку совместно с системой или после перезагрузки при первом включении, но в данном способе растет altinst и нужно будет добавлять оперативной памяти в настройках например 2,4гб оперативки нужно будет 3Гб указать и железо менее 3х гб не запустит.
В официальной документации написано что можно добавлять rpm пакеты в /ALTLinux/RPMS.main
/home/user1/ALT-CREATE/altiso82/ALTLinux/RPMS.main
Обратите внимание при обратной сборке
rpm -K cprocsp-drv-64-4.0.9963-5.src.rpm
cprocsp-drv-64-4.0.9963-5.src.rpm: sha1 md5 ОК
а при сборке образа
genpkglist: cprocsp-drv-64-4.0.9963-5.src.rpm: invalid binary package
genbasedir: Error executing genpkglist.
Ошибка, которую вы получаете при обратной сборке, указывает на то, что cprocsp-drv-64-4.0.9963-5.src.rpm не распознаётся как действительный бинарный пакет..
И получаем
/home/user1/ALT-CREATE/altiso82/ALTLinux/base/pkglist.main сформируется пустым
pkglist.main - Это список пакетов репозитория
Я убрал все пакеты 2шт src и Ошибка ушла, файл pkglist.main сформировался.
В скрипте сборки есть команда
# После этого запустите: genbasedir --topdir=/home/user1/ALT-CREATE/altiso82 ALTLinux main
Обновится содержимое каталога /home/user1/ALT-CREATE/altiso82/ALTLinux/base/
Пакеты добавились в список и контрольные суммы обновились
При добавлении пакетов отсутствующие в репозитории на диске /ALTLinux/RPMS.main.
Важно добавлять абсолютно все нужные пакеты, включая зависимости, зависимости зависимостей и т.д., иначе не будут установлены ни какие пакеты, помимо базовых, даже те, которые были на диске изначально.
Чтобы не перебирать зависимости вручную, на аналогичной голой системе ставим пакеты
Зависимости стянутся сами, и будут находится в папке /var/cache/apt/archieve берем их и добавляем в /ALTLinux/RPMS.main
Далее нам нужно указать их установку при установке системы.
Из официальной документации
Формат Файл pkg-groups.tar представляет собой tar-архив с двумя подкаталогами: groups (содержащий описание групп программного обеспечения в файлах .directory) и lists (содержащий файлы со списками пакетов для каждой группы). В подкаталоге lists находится скрытый файл .base, содержащий список пакетов «базовой системы» (то есть те пакеты, которые устанавливаются в любом случае). Описание форматов указания групп описано в Alterator-pkg.
Файл pkg-groups.tar проще всего взять с диска из каталога /Metadata/ и доработать, если необходимо.
/home/user1/ALT-CREATE/altiso82/Metadata/pkg-groups.tar
Тут у мня возникала мысль а моно ли сразу поставить новое ядро в образ?
в файле .base есть строка устанавливающая ядро
## DOT_BASE
^kernel-(image|modules-(virtualbox-addition|virtualbox-addition-guest|vmware|scsi|dm-secdel|ipset|ipt-so|tripso|ndpi|drm|lirc|v4l|drm.*))-(std-def)$
в теории нужно закинуть новые пакеты ядра rpm, в теории должно установится но должна быть совместимость всех остальных пакетов с этим ядром и удалить старые пакет иначе установится оба. В общем тут надо пробовать пока это только теория моя)
Для изменения списка пакетов распакуйте архив командой: tar xf pkg-groups.tar
После этого перейдите в подкаталог lists и добавьте или измените файл группы.
Имена пакетов указываются по одному в каждой строке.
Имя файла используемой группы затем указывается через пробел в autoinstall.scm:
(("pkg-install") action "write" lists "group-1 group-2" auto #t)
где group-1 и group-2 — имена файлов со списками пакетов из подкаталога lists.
После изменений упакуйте снова в архив командой: tar cf pkg-groups.tar groups lists
Внимание! Учтите, что в качестве источника пакетов при установке выступает сам диск, поэтому указание не лежащих на нём пакетов приведёт к сбою установки.
Если хотите добавить новые пакеты, пересоберите диск дистрибутива или используйте скрипты, выполняющиеся после установки.
Скрипт у нас уже все распаковал, а при сборке упакует все обратно.
Создадим новую группу для наших пакетов, пусть это будет kuinst.directory
Код: Выделить всё
mcedit /home/user1/ALT-CREATE/altiso82/Metadata/pkg-groups/groups/sp/kuinst.directory
Код: Выделить всё
[Desktop Entry]
Encoding=UTF-8
Type=Directory
Name=Main Components (Xorg)
X-Alterator-PackageList=sp/kuinst
X-Alterator-Parent=sp/desktop
X-Alterator-Required=no
Name[ru_RU]=Софт КУ (Xorg)
Код: Выделить всё
mcedit /home/user1/ALT-CREATE/altiso82/Metadata/pkg-groups/lists/sp/kuinst
Код: Выделить всё
# ===================VNC-удаленое управление рабочим столом====================
x11vnc
# ===================Различные алгоритмы сжатия================================
squashfs-tools
# ===================Для извлечения файлов из архивов в формате RAR============
unrar
# ===================xarchiver графический архиватор===========================
xarchiver
# ===================Шрифты Microsoft TrueType=================================
fonts-ttf-ms
# ===================nano текстовый редактор командной строки==================
nano
# ===================Получение времени бездействия (idle time) пользователя====
xprintidle
# ===================Собирает статистику о событиях inotify за определенный период времени
wmctrl
# ===================Отслеживать изменения в файловой системе==================
inotify-tools
# ===================Просмотр документов PDF, PostScript, DjVu, TIFF и другие==
evince
# ===================Графический редактор======================================
pinta
# ===================sane xsane для управления сканерами в графическом интерфейсе
sane
xsane
# ===================gscan2pdf графическая программа для сканирования документов
gscan2pdf
# ===================simple-scan сканирования документов графическая программа
simple-scan
# ===================Spark Обмен мнгновеными сообщениями=======================
Spark
# ===================Браузер Мозила firefox-93=================================
firefox
# ===================Браузер Яндекс 23=========================================
yandex-browser-stable
# ===================htop Диспетчер задач командной строки=====================
htop
# ===================Double Commander файловый менеджер с двойной панелью======
doublecmd-gtk
# ===================freerdp клиент удаленого рабочего стола===================
freerdp
# ===================conky отображает информацию о состоянии системы на рабочем столе
conky
# ===================xtrlock блокировка экрана=================================
xtrlock
# ===================xinput управления входными устройствами в среде X Window System
xinput
# ===================xbindkeys привязки клавиатурных комбинаций к произвольным командам или скриптам горячие клавиши
# xbindkeys (установлено)
# ===================ImageMagick-tools редактирования,обработка изображений разных форматов в командной строке
ImageMagick-tools
# ===================sqliteman графический интерфейс для работы с базами данных SQLite
sqliteman
# ===================GEANY многофункциональный текстовый редактор (IDE), предназначенный для программирования
geany
geany-plugins
# ===================webptools конвертация изображения в формат WebP===========
libwebp-tools
# ===================repo-tools утилиты, инструменты для работы с репозиториями.
apt-repo-tools
# ===================OpenSSH Server============================================
# openssh-server (уже установлено)
# ===================Зависимости для OCS Интеверизации=========================
dmidecode
ftp
ncftp
nmap
# smartmontools (установлено)
# libpci (установлено)
libpci-devel
#pciutils (установлено)
read-edid
ipmitool
eepm
# wget (установлено)
# perl-base (установлено)
perl-CGI
perl-CPAN
perl-HTML-Mason
perl-IO-All
perl-Proc-Daemon
perl-Proc-PID-File
# perl-XML-SAX (установлено)
# perl-XML-Simple (установлено)
# perl-Digest-MD5 (установлено)
perl-Net-IP
perl-LWP-Protocol-https
perl-Net-CUPS
perl-Net-SNMP
perl-Net-Netmask
# perl-Net-Ping (установлено)
perl-Nmap-Parser
perl-Data-UUID
# perl-Compress-Zlib (установлено)
perl-Module-Install
perl-Crypt-SSLeay
perl-LWP-UserAgent-Determined
perl-DateTime
perl-Mojolicious
perl-AnyEvent
perl-AnyEvent-HTTP
perl-App-cpanminus
libe2fs-devel
asa
net-snmp-utils
net-snmp
# perl-Test-use-ok (установлено)
perl-UUID
perl-Parse-EDID
# ====================CryptoPro Для работы с ЭЦП=============================
cryptopro-preinstall
lsb-cprocsp-base
lsb-cprocsp-rdr-64
cprocsp-rdr-pcsc-64
lsb-cprocsp-kc1-64
lsb-cprocsp-capilite-64
cprocsp-curl-64
cprocsp-rdr-gui-gtk-64
cprocsp-rdr-rutoken-64
lsb-cprocsp-pkcs11-64
# pcsc-lite-rutokens (установлено)
# pcsc-lite-ccid (установлено)
# ====================Cades плагин браузера для работы эцп крипто графии=====
cprocsp-pki-cades-64
cprocsp-pki-plugin-64
# ====================IFC Plugin расширение для работы с форматом IFC.
ifcplugin
# ====================gost-crypto-gui графический интерфейс криптографическими функциями
gost-crypto-gui
# ====================hplip Драйверы и ПО для принтеров МФУ марки HP
# hplip (установлено)
# ====================hplip-hpcups-PPDs настройки и управления принтерами HP
hplip-hpcups-PPDs
# ====================hplip-hpijs-PPDs файлы и драйверы, для настройки и управления принтерами HP
hplip-hpijs-PPDs
# ====================foo2zjs-PPD совместимыми с драйвером foo2zjs настройка управление принтерам
foo2zjs-PPD
# ====================wine для запуска приложение из Windows==============
i586-wine-vanilla.32bit
wine-mono
# ====================Антивирус drweb-workstations========================
drweb-workstations
Код: Выделить всё
mcedit /home/user1/ALT-CREATE/altiso82/Metadata/pkg-groups/lists/sp/office
Код: Выделить всё
dia
# LibreOffice-still-extensions
# LibreOffice-still-integrated
# LibreOffice-still-gtk3
# LibreOffice-still-langpack-ru
libreoffice24*
libobasis24*
java-1.8.0-openjdk
dnsjava
rpmlib(PayloadIsXz) <= 5.2-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
libreoffice24.8-freedesktop-menus-24.8.2-1.noarch.rpm
libobasis24.8-ooofonts-24.8.2.1-1.x86_64.rpm
libreoffice24.8-ure-24.8.2.1-1.x86_64.rpm
libobasis24.8-core-24.8.2.1-1.x86_64.rpm
libobasis24.8-ooofonts <= 24.8.2.1-1
libreoffice24.8-ure <= 24.8.2.1-1
libobasis24.8-base-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libobasis24.8-calc-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libobasis24.8-draw-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libobasis24.8-en-US-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libobasis24.8-extension-beanshell-script-provider-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libobasis24.8-extension-javascript-script-provider-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libobasis24.8-extension-mediawiki-publisher-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libobasis24.8-extension-nlpsolver-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libobasis24.8-extension-pdf-import-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libobasis24.8-extension-report-builder-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libobasis24.8-firebird-24.8.2.1-1.x86_64.rpm
libobasis24.8-core
libobasis24.8-gnome-integration-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libobasis24.8-graphicfilter-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libobasis24.8-images-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libobasis24.8-impress-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libobasis24.8-kde-integration-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libobasis24.8-libreofficekit-data-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libobasis24.8-math-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libobasis24.8-onlineupdate-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libobasis24.8-ooolinguistic-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libobasis24.8-python-script-provider-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libobasis24.8-pyuno-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libobasis24.8-ru-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libobasis24.8-writer-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libobasis24.8-xsltfilter-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libreoffice24.8-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libobasis24.8-images <= 24.8.2.1-1
libreoffice24.8-ure <= 24.8.2.1-1
libreoffice24.8-dict-en-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libreoffice24.8 <= 24.8.2.1-1
libreoffice24.8-ure <= 24.8.2.1-1
libreoffice24.8-dict-es-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libreoffice24.8 <= 24.8.2.1-1
libreoffice24.8-ure <= 24.8.2.1-1
libreoffice24.8-dict-fr-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libreoffice24.8 <= 24.8.2.1-1
libreoffice24.8-ure <= 24.8.2.1-1
libreoffice24.8-dict-ru-24.8.2.1-1.x86_64.rpm
libobasis24.8-core <= 24.8.2.1-1
libreoffice24.8 <= 24.8.2.1-1
libreoffice24.8-ure <= 24.8.2.1-1
libobasis24.8-postgresql-sdbc-24.8.2.1-1.x86_64.rpm
libobasis24.8-base <= 24.8.2.1-1
libobasis24.8-ru-help-24.8.2.1-1.x86_64.rpm
libobasis24.8-ru <= 24.8.2.1-1
libreoffice24.8-calc-24.8.2.1-1.x86_64.rpm
libobasis24.8-calc <= 24.8.2.1-1
libreoffice24.8 <= 24.8.2.1-1
libreoffice24.8-base-24.8.2.1-1.x86_64.rpm
libobasis24.8-base <= 24.8.2.1-1
libreoffice24.8 <= 24.8.2.1-1
libobasis24.8-ogltrans-24.8.2.1-1.x86_64.rpm
libobasis24.8-impress <= 24.8.2.1-1
libreoffice24.8-impress-24.8.2.1-1.x86_64.rpm
libobasis24.8-impress <= 24.8.2.1-1
libreoffice24.8 <= 24.8.2.1-1
libobasis24.8-librelogo-24.8.2.1-1.x86_64.rpm
libobasis24.8-pyuno <= 24.8.2.1-1
libobasis24.8-writer <= 24.8.2.1-1
libreoffice24.8-writer-24.8.2.1-1.x86_64.rpm
libobasis24.8-writer <= 24.8.2.1-1
libreoffice24.8 <= 24.8.2.1-1
libreoffice24.8-draw-24.8.2.1-1.x86_64.rpm
libobasis24.8-draw <= 24.8.2.1-1
libreoffice24.8 <= 24.8.2.1-1
libreoffice24.8-en-US-24.8.2.1-1.x86_64.rpm
libobasis24.8-en-US <= 24.8.2.1-1
libreoffice24.8 <= 24.8.2.1-1
libreoffice24.8-math-24.8.2.1-1.x86_64.rpm
libobasis24.8-math <= 24.8.2.1-1
libreoffice24.8 <= 24.8.2.1-1
libreoffice24.8-ru-24.8.2.1-1.x86_64.rpm
libobasis24.8-ru <= 24.8.2.1-1
libreoffice24.8 <= 24.8.2.1-1
# Репозиторий на диске тест
rpm-dir file:/usr/share/install/repoc x86-64 classic
Обновить список пакетов
apt-get update
Показать в репозитории пакеты
apt-cache search libreoffice
Установка офиса
apt-get install libreoffice24*
Следующие НОВЫЕ пакеты будут установлены:
libobasis24.8-base libobasis24.8-calc libobasis24.8-core libobasis24.8-draw libobasis24.8-en-US libobasis24.8-images libobasis24.8-impress libobasis24.8-math libobasis24.8-ooofonts libobasis24.8-ru libobasis24.8-writer libreoffice24.8 libreoffice24.8-base
libreoffice24.8-calc libreoffice24.8-dict-en libreoffice24.8-dict-es libreoffice24.8-dict-fr libreoffice24.8-dict-ru libreoffice24.8-draw libreoffice24.8-en-US libreoffice24.8-freedesktop-menus libreoffice24.8-impress libreoffice24.8-math libreoffice24.8-ru
libreoffice24.8-ure libreoffice24.8-writer
0 будет обновлено, 26 новых установлено
Установка компонентов офиса
apt-get install libobasis24*
Следующие НОВЫЕ пакеты будут установлены:
libobasis24.8-extension-beanshell-script-provider libobasis24.8-extension-javascript-script-provider libobasis24.8-extension-mediawiki-publisher libobasis24.8-extension-nlpsolver libobasis24.8-extension-pdf-import libobasis24.8-extension-report-builder
libobasis24.8-firebird libobasis24.8-gnome-integration libobasis24.8-graphicfilter libobasis24.8-kde-integration libobasis24.8-librelogo libobasis24.8-libreofficekit-data libobasis24.8-ogltrans libobasis24.8-onlineupdate libobasis24.8-ooolinguistic
libobasis24.8-postgresql-sdbc libobasis24.8-python-script-provider libobasis24.8-pyuno libobasis24.8-ru-help libobasis24.8-xsltfilter
Очистка Кеша пакетов
apt-get clean
#apt-get install libreoffice-common libreoffice-gtk3 libreoffice-l10n-ru
В образе
/home/user1/ALT-CREATE/altiso82/Metadata/pkg-groups/groups/sp/office.directory
[Desktop Entry]
Encoding=UTF-8
Type=Directory
Name=Office packages
X-Alterator-PackageList=sp/office
X-Alterator-Parent=sp/desktop
X-Alterator-Required=no
Name[ru_RU]=Офисный паке
/home/user1/ALT-CREATE/altiso82/Metadata/pkg-groups/lists/sp/office
dia
LibreOffice-still-extensions
LibreOffice-still-integrated
LibreOffice-still-gtk3
LibreOffice-still-langpack-ru
java-1.8.0-openjdk
dnsjava
Пакеты в образе
LibreOffice-still-extensions-6.4.7.2-alt1.x86_64.rpm
LibreOffice-still-integrated-6.4.7.2-alt1.x86_64.rpm
LibreOffice-still-gtk3-6.4.7.2-alt1.x86_64.rpm
LibreOffice-still-langpack-ru-6.4.7.2-alt1.x86_64.rpm
LibreOffice-still-common-6.4.7.2-alt1.x86_64.rpm
При не об ходимости можно отредактировать другие списки для установки.
Каждый пакет в свою строку пишем полное имя пакета или сокращено и * но тут могут попасть и другие пакеты под сокращение наименование
Так же пакеты могут быть не совместимы с версией ядра если они будут намного новее или не будет выполнятся зависимости пакетов
Будьте внимательны проверяйте!
После того как внесли изменения создали свои необходимые листы с пакетами
Укажем их в autoinstall.scm
Код: Выделить всё
mcedit /home/user1/ALT-CREATE/altiso82/Metadata/autoinstall.scm
Код: Выделить всё
; установка только базовой системы (дополнительные группы пакетов из pkg-groups.tar указываются по именам через пробел в параметре lists)
;("/pkg-install" action "write" lists "" auto #t)
("/pkg-install" action "write" lists "sp/cups-server sp/mate-desktop sp/zero sp/office sp/scanning sp/vlc sp/xorg sp/signal-client sp/kuinst" auto #t)
("/preinstall" action "write")