Mp

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску

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'})