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 alt-tour 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/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
Backlog
pkgs: inkscape, shotcut, kicad
cat /usr/sbin/nntc-epm-install #!/bin/bash epm update epm play code epm play sublime epm play idea-community epm play webstorm epm play phpstorm epm play pycharm epm play clion epm play datagrip epm play dbeaver epm play onlyoffice epm play chrome epm play naps2 epm play figma epm play draw.io epm play docker-desktop epm play eagle epm play blender
cat /etc/network/interfaces auto lo iface lo inet loopback auto eno1 iface eno1 inet manual auto vmbr0 iface vmbr0 inet dhcp bridge-ports eno1 bridge-stp off bridge-fd 0 bridge-vlan-aware yes bridge-vids 2-2048 post-up dhcpcd vmbr0
Важно потушить сервис NetworkManager
systemctl stop NetworkManager systemctl disable NetworkManager
и вроде бы надо включить networking
systemctl start networking systemctl enable networking
cat /usr/sbin/nntc-rename-pve #!/bin/bash eth=$(ip a | grep '10.207.' -B 4 | head -1 | awk {'print $2'} | sed 's/://g') ip=$(ifconfig ${eth} | head -2 | tail -1 | awk {'print $2'} | awk -F ':' {'print $2'}) mask=$(ifconfig ${eth} | head -2 | tail -1 | awk {'print $4'} | awk -F ':' {'print $2'})