153 lines
11 KiB
Bash
Executable File
153 lines
11 KiB
Bash
Executable File
#!/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
|