Mp
Перейти к навигации
Перейти к поиску
Содержание
Alt m-p
Клонируем репозиторий сборочницы
git clone git://git.altlinux.org/people/antohami/packages/mkimage-profiles.git mp
Докидываем пакеты
cat << EOF > mp/pkg.in/lists/nntc 1c-preinstall-full alterator-auth alterator-gpupdate cifs-utils dialog docker-engine docker-compose-v2 dpkg exfatprogs fuse-gvfs fuse-smb gimp git gpupdate gvfs-backend-mtp gvfs-backend-smb hplip hplip-hpijs kio-extras umbrello kf5-kio lazarus LibreOffice-full LibreOffice-gtk3 mtpfs ntfs-3g openssh openvpn pam_mount pam_script pve-manager pwgen realmd remmina remmina-plugins-rdp remmina-plugins-vnc samba-client samba-common-tools sendmail sssd-ad systemd-settings-enable-kill-user-processes terminator usrmerge-hier-convert virtualbox vlc virt-viewer x11vnc xdg-utils xsane arduino chromium chromium-gost dia freecad tmate java-21-openjdk-devel java-21-openjdk emacs-gtk3 gcc-c++ gdb ddd openssl-gost-engine afce alien rpm-build snapd MySQL-client mysql-workbench-community systemd-timesyncd obs-studio EOF
Докидываем скрипты через фичу
mkdir -p mp/features.in/nntc-gnome cat << 'EOF' > mp/features.in/nntc-gnome/config.mk use/nntc-gnome: @$(call add_feature) EOF mkdir -p mp/features.in/nntc-gnome/install2/files/usr/share/install2/postinstall.d cat << 'EOF' > mp/features.in/nntc-gnome/install2/files/usr/share/install2/postinstall.d/00-nntc-gnome-install2.sh #!/bin/sh ROOT_MOUNTPOINT='/mnt/destination' cat << 'EEOF' > ${ROOT_MOUNTPOINT}/usr/sbin/nntc-install2-test.sh #!/bin/sh echo "Hello from install2!" >> /tmp/nntc-install2-test.log EEOF chmod +x ${ROOT_MOUNTPOINT}/usr/sbin/nntc-install2-test.sh EOF mkdir -p mp/features.in/nntc-gnome/live/files/usr/share/install2/postinstall.d cat << 'EOF' > mp/features.in/nntc-gnome/live/files/usr/share/install2/postinstall.d/00-nntc-gnome-live.sh #!/bin/sh ROOT_MOUNTPOINT='/mnt/destination' cat << 'EEOF' > ${ROOT_MOUNTPOINT}/usr/sbin/nntc-live-test.sh #!/bin/sh echo "Hello from live!" >> /tmp/nntc-live-test.log EEOF chmod +x ${ROOT_MOUNTPOINT}/usr/sbin/nntc-live-test.sh EOF
Добавляем фичу, список пакетов и включение необходимых сервисов в конфиг
В файле
mp/conf.d/regular.mk
найти секцию похожую на:
distro/regular-gnome: distro/.regular-desktop mixin/regular-gnome \ +plymouth use/browser/epiphany \ use/live-install/vnc/listen; @:
и заменить на секцию похожую на:
distro/regular-gnome: distro/.regular-desktop mixin/regular-gnome \ +plymouth use/browser/firefox use/nntc-gnome \ use/live-install/vnc/listen @$(call add,THE_LISTS,nntc) @$(call add,SYSTEMD_SERVICES_ENABLE,sshd.service) @$(call add,SYSTEMD_SERVICES_ENABLE,docker.service)
Важные моменты
1. Вторая и последующие строки отделяются не пробелами а табуляцией (одной!):
distro/regular-gnome: distro/.regular-desktop mixin/regular-gnome \ [здесь обязательно TAB, НЕ пробелы!]+plymouth use/browser/firefox use/nntc-gnome \ ...
2. Так включаются сервисы через systemd:
... [здесь обязательно TAB, НЕ пробелы!]@$(call add,SYSTEMD_SERVICES_ENABLE,sshd.service) [здесь обязательно TAB, НЕ пробелы!]@$(call add,SYSTEMD_SERVICES_ENABLE,docker.service) ...
3. Так включаются сервисы через control:
... [здесь обязательно TAB, НЕ пробелы!]@$(call add,CONTROL,openssl-gost:enabled) ...
4. Так можно дополнить дистрибутив пакетами из репозитория (см. выше файл в разделе "Докидываем пакеты"):
... [здесь обязательно TAB, НЕ пробелы!]@$(call add,THE_LISTS,nntc) ...
5. Так можно исключить пакеты из дистрибутива (решётка в начале означает что по факту это не применится (закоментировано)):
... #[здесь обязательно TAB, НЕ пробелы!]@$(call add,CLEANUP_BASE_PACKAGES,gnome-session-wayland) ...
Собираем
cd mp make clean make distclean make regular-gnome.iso # или (если надо с подробностями) # make REPORT=1 DEBUG=1 regular-gnome.iso
После сборки
cp build/out/regular-gnome-latest-x86_64.iso my-super-alt-regular-gnome.iso
Опционально, можно убрать за собой
make clean make distclean