#!/bin/bash # (GNU/General Public License version 3.0) # Пошаговый процесс постройки Live-Build # Система уже должна иметь live-build squashfs-tools syslinux-common syslinux-utils xorriso isolinux # Рабочая директория WKDIR="$(pwd)" # Удаляем кеш иконок и топаем в папку output [[ -f /usr/share/live/build/hooks/normal/0130-remove-gnome-icon-cache.hook.chroot ]] && rm /usr/share/live/build/hooks/normal/0130-remove-gnome-icon-cache.hook.chroot mkdir output 2>/dev/null cd output # Первоначальная конфигурация lb config \ --binary-images iso-hybrid \ --mode debian \ --architectures amd64 \ --linux-flavours amd64 \ --distribution bullseye \ --archive-areas "main contrib" \ --updates false \ --security false \ --cache true \ --apt-recommends true \ --mirror-binary https://updates.osgos.ru/ \ --mirror-binary-security https://security.osgos.ru/ \ --mirror-chroot https://updates.osgos.ru/packages/ \ --mirror-chroot-security https://security.osgos.ru/ \ --debian-installer live \ --debian-installer-gui true \ --bootappend-live "boot=live components quiet splash live-config.hostname=osgos live-config.user-fullname=Пользователь" \ --win32-loader false \ --iso-application osgos \ --iso-preparer osgos-https://osgos.ru/ \ --iso-publisher osgos-https://osgos.ru/ \ --iso-volume osgos # Устанавливаем оконный менеджер и пакеты echo "accountsservice alsa-utils cups cups-filters curl dbus-user-session dbus-x11 dconf-cli foomatic-db foomatic-db-engine fuse3 ghostscript gnome-keyring gvfs-backends gvfs-bin gvfs-fuse iw libnss-mdns libsmbclient light-locker lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings lsb-release mousepad netcat-openbsd network-manager-gnome network-manager-openconnect-gnome network-manager-openvpn-gnome pavucontrol perl plymouth plymouth-label policykit-1 printer-driver-gutenprint pulseaudio samba-common-bin sudo synaptic system-config-printer udisks2 upower xdg-utils xfce4 xfce4-goodies xfce4-power-manager xfce4-terminal xfce4-screenshooter xfce4-whiskermenu-plugin xfce4-xkb-plugin xorg xserver-xorg-input-all xserver-xorg-video-all xterm mugshot" > $WKDIR/output/config/package-lists/mydesktop.list.chroot echo "aisleriot apt-transport-https arc-theme audacious audacious-plugins autoconf automake breeze-gtk-theme breeze-icon-theme btrfs-progs build-essential cdtool cdrdao cdrskin cifs-utils debconf debhelper dh-autoreconf dialog dirmngr dkms dos2unix dosbox dosfstools dvdauthor exfatprogs faad fakeroot ffmpeg flac frei0r-plugins galculator gdebi gir1.2-ibus-1.0 gnome-disk-utility gnome-nettool gnome-system-tools greybird-gtk-theme grsync gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-plugins-good gthumb guvcview hardinfo haveged htop hunspell-en-us hyphen-en-us ibus ibus-data ibus-gtk ibus-gtk3 iftop im-config inxi isolinux jfsutils lame less libegl1-mesa libibus-1.0-5 libgl1-mesa-glx libqt5opengl5 libreoffice-calc libreoffice-draw libreoffice-impress libreoffice-writer libreoffice-gtk3 libreoffice-l10n-ru libreoffice-help-ru libxcb-xtest0 libxvidcore4 linux-headers-amd64 live-build lshw libu2f-udev fonts-liberation mencoder menu mjpegtools mpg321 mpv mtools mythes-en-us neofetch ntfs-3g numix-gtk-theme openconnect openvpn openvpn-systemd-resolved p7zip-full papirus-icon-theme pciutils python3-ibus-1.0 simple-scan smplayer smplayer-l10n smplayer-themes soundconverter sox squashfs-tools streamripper syslinux syslinux-common tango-icon-theme testdisk twolame unzip wget x265 x264 xfsprogs xorriso xscreensaver zip thunderbird thunderbird-l10n-ru ristretto krb5-user libpam-krb5 libpam-script samba smbclient winbind" > $WKDIR/output/config/package-lists/mypackages.list.chroot echo "efibootmgr grub-common grub2-common grub-efi-amd64 grub-efi-amd64-bin grub-efi-amd64-signed grub-efi-ia32-bin grub-pc-bin libefiboot1 libefivar1 mokutil shim-helpers-amd64-signed shim-signed-common shim-unsigned" > $WKDIR/output/config/package-lists/grubuefi.list.binary # Убери комментарий с 5 строк ниже чтобы включить Calamares Installer: # echo "calamares calamares-settings-debian" > $WKDIR/output/config/package-lists/calamares.list.chroot # mkdir -p $WKDIR/output/config/includes.chroot/etc/calamares/branding # cp $WKDIR/calamares/settings.conf $WKDIR/output/config/includes.chroot/etc/calamares/settings.conf # cp $WKDIR/calamares/usr/share/applications/install-debian.desktop $WKDIR/output/config/includes.chroot/usr/share/applications/install-debian.desktop # cp -r $WKDIR/calamares/branding/osgos $WKDIR/output/config/includes.chroot/etc/calamares/branding/osgos # Предварительно создаем папки в chroot mkdir -p $WKDIR/output/config/includes.chroot/usr/share/osgos mkdir -p $WKDIR/output/config/includes.chroot/etc/skel/.config mkdir -p $WKDIR/output/config/includes.chroot/usr/share/backgrounds mkdir -p $WKDIR/output/config/includes.chroot/usr/share/icons/default mkdir -p $WKDIR/output/config/includes.chroot/usr/local/bin mkdir -p $WKDIR/output/config/includes.chroot/usr/share/applications mkdir -p $WKDIR/output/config/includes.chroot/usr/share/doc/osgos mkdir -p $WKDIR/output/config/includes.chroot/etc/skel/Desktop mkdir -p $WKDIR/output/config/includes.chroot/etc/apt mkdir -p $WKDIR/output/config/includes.chroot/usr/lib mkdir -p $WKDIR/output/config/includes.chroot/etc/plymouth mkdir -p $WKDIR/output/config/includes.chroot/usr/share/desktop-base/homeworld-theme mkdir -p $WKDIR/output/config/includes.chroot/etc/default mkdir -p $WKDIR/output/config/includes.chroot/etc/lightdm mkdir -p $WKDIR/output/config/includes.chroot/etc/xdg/xfce4 mkdir -p $WKDIR/output/config/includes.chroot/usr/share/icons mkdir -p $WKDIR/output/config/includes.chroot/usr/share/themes mkdir -p $WKDIR/output/config/includes.chroot/usr/share/libpam-script mkdir -p $WKDIR/output/config/includes.chroot/etc/pam.d mkdir -p $WKDIR/output/config/includes.chroot/usr/share/locale/ru/LC_MESSAGES mkdir -p $WKDIR/output/config/includes.chroot/sbin mkdir -p $WKDIR/output/config/includes.chroot/etc/systemd/system # Копируем измененные файлы в chroot cp -r $WKDIR/bootloaders $WKDIR/output/config/ cp -r $WKDIR/xfce4 $WKDIR/output/config/includes.chroot/etc/skel/.config/ cp $WKDIR/configs/helpers.rc $WKDIR/output/config/includes.chroot/etc/xdg/xfce4/helpers.rc cp $WKDIR/configs/user-dirs.defaults $WKDIR/output/config/includes.chroot/etc/xdg/user-dirs.defaults cp $WKDIR/sources/apt.conf $WKDIR/output/config/includes.chroot/etc/apt/apt.conf cp $WKDIR/configs/os-release $WKDIR/output/config/includes.chroot/etc/os-release cp $WKDIR/configs/os-release $WKDIR/output/config/includes.chroot/usr/lib/os-release cp $WKDIR/configs/plymouthd.conf $WKDIR/output/config/includes.chroot/etc/plymouth/plymouthd.conf cp -r $WKDIR/themes/plymouth/* $WKDIR/output/config/includes.chroot/usr/share/desktop-base/homeworld-theme/ cp -r $WKDIR/themes/colors/* $WKDIR/output/config/includes.chroot/usr/share/themes/ cp $WKDIR/configs/keyboard $WKDIR/output/config/includes.chroot/etc/default/keyboard cp $WKDIR/configs/preseed.cfg $WKDIR/output/config/includes.installer/ cp $WKDIR/configs/issue $WKDIR/output/config/includes.chroot/etc/issue cp $WKDIR/configs/issue.net $WKDIR/output/config/includes.chroot/etc/issue.net cp $WKDIR/configs/motd $WKDIR/output/config/includes.chroot/etc/motd cp $WKDIR/configs/sysctl.conf $WKDIR/output/config/includes.chroot/etc/sysctl.conf cp $WKDIR/configs/lightdm-gtk-greeter.conf $WKDIR/output/config/includes.chroot/etc/lightdm/lightdm-gtk-greeter.conf tar zxvf $WKDIR/themes/icons/Wings-Light-Icons.tgz -C $WKDIR/output/config/includes.chroot/usr/share/icons/ cp $WKDIR/configs/pam_script_acct $WKDIR/output/config/includes.chroot/usr/share/libpam-script/ cp -r $WKDIR/configs/pam.d/* $WKDIR/output/config/includes.chroot/etc/pam.d/ cp $WKDIR/configs/krb5.conf $WKDIR/output/config/includes.chroot/etc/ cp -r $WKDIR/locale/* $WKDIR/output/config/includes.chroot/usr/share/locale/ru/LC_MESSAGES/ cp $WKDIR/backgrounds/* $WKDIR/output/config/includes.chroot/usr/share/backgrounds/ # Дополительные скрипты для пользователя и системы cp $WKDIR/scripts/* $WKDIR/output/config/includes.chroot/usr/local/bin/ # Иконки и дополнительные ярлыки cp $WKDIR/icons/* $WKDIR/output/config/includes.chroot/usr/share/icons/default/ cp $WKDIR/launchers/* $WKDIR/output/config/includes.chroot/usr/share/applications/ # Хелпер для справки, регистрации, магазина cp $WKDIR/custom/helper/build/helper $WKDIR/output/config/includes.chroot/usr/local/bin/ cp -r $WKDIR/doc/* $WKDIR/output/config/includes.chroot/usr/share/doc/osgos/ # Диспетчер приложений(магазин) cp $WKDIR/custom/shop-client/build/shop-client $WKDIR/output/config/includes.chroot/usr/local/bin/shop cp -r $WKDIR/custom/shop-client/build/web $WKDIR/output/config/includes.chroot/usr/share/doc/osgos/shop cp $WKDIR/configs/shop.service $WKDIR/output/config/includes.chroot/etc/systemd/system # Сервис регистрации cp $WKDIR/custom/reg-client/build/reg-client $WKDIR/output/config/includes.chroot/sbin/starter cp -r $WKDIR/custom/reg-client/build/web $WKDIR/output/config/includes.chroot/usr/share/doc/osgos/reg cp $WKDIR/configs/reg.service $WKDIR/output/config/includes.chroot/etc/systemd/system # Вносим изменения в систему установщика mkdir -p $WKDIR/output/config/includes.installer/usr/share/graphics/ cp $WKDIR/installer/graphics/* $WKDIR/output/config/includes.installer/usr/share/graphics/ mkdir -p $WKDIR/output/config/includes.installer/var/lib/dpkg/info/ cp $WKDIR/installer/main-menu.templates $WKDIR/output/config/includes.installer/var/lib/dpkg/info/ # Дополнительные пакеты для установки if [ ! -f $WKDIR/misc64/chromium-*.deb ]; then wget https://github.com/deemru/Chromium-Gost/releases/download/111.0.5563.64/chromium-gost-111.0.5563.64-linux-amd64.deb -O $WKDIR/misc64/chromium-gost-111.0.5563.64-linux-amd64.deb fi if [ ! -f $WKDIR/misc64/linux-image-*.deb ]; then echo "скомпилируй ядро и положи в misc64" exit 1 fi dpkg-name $WKDIR/misc64/*.deb cp $WKDIR/misc64/*.deb $WKDIR/output/config/packages.chroot/ cp $WKDIR/misc64/*.deb $WKDIR/output/config/packages.binary/ cp $WKDIR/misc64/*.udeb $WKDIR/output/config/packages.binary/ # Финальные правки cp $WKDIR/sources/sources.list $WKDIR/output/config/archives/debian-updates-security-backports.list.binary cp $WKDIR/sources/sources.list $WKDIR/output/config/archives/debian-updates-security-backports.list.chroot cp $WKDIR/hooks/0999-remove-unwanted-packages.hook.chroot $WKDIR/output/config/hooks/normal/ cp $WKDIR/hooks/0998-startup-fix.hook.chroot $WKDIR/output/config/hooks/live/ # Начинаем процесс постройки time lb build