CUBIC - СОЗДАНИЕ СОБСТВЕННОЙ СБОРКИ UBUNTU С БЛЭК-ДЖЕКОМ И СИМПАТИЧНЫМИ ОБОЯМИ
Недавно наткнулся на это замечательное изобретение. В интернете не так-то много хороших инструкций на эту тему, и, в принципе, тут можно разобраться самому, но я, как всегда, предпочитаю иметь под рукой шпаргалку, заточенную под мои собственные нужды. Здесь речь пойдет о многоцелевой системе на основе Ubuntu 21.10 с предустановленной учетной записью администратора без какой-либо оптимизации объема образа дистрибутива. Обзоры серверной и облегченной сборок будут в других статьях.
Итак, сначала подключим соответствующие репозитории.
sudo apt-add-repository ppa:cubic-wizard/release
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6494C6D6997C215E
Теперь установим саму программу:
sudo apt update && sudo apt install cubic -y
Здесь указываем каталог, где хранится наш проект. Вообще, наверно, удобно создать что-то типа
mkdir ~/CUBIC-projects
И подпапки по названием наших дальнейших сборок. Я с дуру собрал первый проект в "Загрузках". Но ничего страшного, все получилось. Далее выберем название нашей сборки и все вот это:
На следующем этапе наш образ будет распакован и мы получим доступ к root консоли, откуда можно будет установить любое ПО и сделать любые необходимые правки. Я лично люблю все свеженькое, поэтому сразу же обновлю свою сборку, затем установлю все необходимые приложения.
apt update && apt upgrade -y
Подключим репозиторий свежих видеодрайверов, в частности nvidia.
apt-add-repository ppa:graphics-drivers/ppa
Теперь можно заранее создать пользователя группы sudo...
adduser madmentat
usermod -aG sudo madmentat
Лично у меня возникли проблемы с установкой приложений. В Ubuntu 21.10 все решилось командой
add-apt-repository universe multiverse
В Ubuntu 20.04
nano /etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse
Теперь, когда проблема решена, спокойненько продолжаем:
apt install variety -y
apt install doublecmd-gtk -y
apt install gimp -y
apt install mc -y
apt install gpick -y
apt install gnome-tweaks -y
Иногда бывает, что в системе не запускаются Qt приложения, код ошибки такой:
madmentat@ubuntu:~/madCalc2.0$ ./madCalc qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. Available platform plugins are: xcb. Aborted (core dumped)
Лечится установкой слудеющего пакета:
sudo apt-get install libxcb-xinerama0
Так же можно настроить samba, ftp, apache, вместе со всеми локальными сайтами, базами и т. д. Но об этом уже в других статьях.
Когда создан пользователь и установлены програмы, можно импортировать их настройки, установленные на нашем компьютере. Например, для doublecmd-gtk.
Сначала создадим в chroot окружении CUBIC-а папку
mkdir /home/madmentat/.config
Перейдем в нее
cd /home/madmentat/.config
Теперь на нашем компьютере откроем новое окно Nautilus и соответствующую папку ~/.config Тупо перетащим мышкой конфиг папку doublecmd из Nautilus в CUBIC, после чего нажмем кнопочку COPY. Ровно тоже для variety и прочих.
Однако variety не стартанет сразу при загрузке системы, поэтому добавим ее в автозагрузку.
mkdir /home/madmentat/.config/autostart
nano /home/madmentat/.config/autostart/variety.desktop
[Desktop Entry] Name=Variety Comment=Variety Wallpaper Changer Categories=GNOME;GTK;Utility; Exec=/usr/bin/variety --profile /home/madmentat/.config/variety/ MimeType=text/uri-list;x-scheme-handler/variety;x-scheme-handler/vrty; Icon=variety Terminal=false Type=Application StartupNotify=false Actions=Next;Previous;PauseResume;History;Preferences; Keywords=Wallpaper;Changer;Change;Download;Downloader;Variety; X-GNOME-Autostart-Delay=20 StartupWMClass=Variety
Для установки из deb-пакета копируем его куда-нибудь в ~/ затем переходим в соответствующую ту же папку в CUBIC.
cd /home/madmentat
И, опять-таки, методом drug-and-drop перетаскиваем наш файл в /home/madmentat, после чего запускаем такую команду:
dpkg -i google-chrome-stable_current_amd64.deb
Затем удаляем дистрибутив программы
rm google-chrome-stable_current_amd64.deb
Я заметил, что при запуске Live-CD система предлагает зайти под созданным нами пользователем под своим паролем, а потом все дополнительные файлы, что были скопированы в chroot окружение в CUBIC, принадлежат root, что может создать некоторые сложности в дальнейшем. Поэтому, после того как мы скопируем все что нам надо и установим необходимые программы, потом рекурсивно переназначим принадлежность всех новых папок и файлов:
chown madmentat -R /home/madmentat
По фен-шуй, после установки наших приложений следует очистить кэш.
apt clean
apt autoclean
Если не лень, можно подредактировать dash-панель Unity. Если этого не сделать, там будет какой-то стандартный набор приложений, включая Thunderbird, магазин приложений, Rythmbox, какая-то справка и т.д. Очень долго искал решения в Интернете, там есть пара статей на английском, где объясняется какой конкретно файл за нее отвечает, но это бинарник и отредактировать его простым текстовым редактором не представляется возможным. После недолгих раздумий, меня осенило как выкрутиться. На нашем компьютере, где запущен CUBIC, сначала приводим dash-панель к тому виду, какой нам нравится. Затем открываем Nautilus, идем в папку
~/.config/dconf
Затем, в chroot окружении CUBIC создаем соответствующий каталог
mkdir /home/madmentat/.config/dconf
Переходите в него
cd /home/madmentat/.config/dconf
И перетаскиваете туда мышъю файл "user". Кстати, об "узере". Теперь, когда мы разобрались, как перетаскивать файлы в CUBIC, можно задать иконку нашего профиля, чтобы при выборе учетной записи все было по-феншуй.
mv avatar.jpg /home/madmentat/.face
Разумеется, аватарку, желательно, предварительно сделать квадратной и задать ей длину грани 90 px. В моем случае было 150, но, все равно, сработало.
Закончив с подкопотным тюннингом, можно переходить к следующему шагу - жмем кнопочку Next.
Тут вычисляется что у нас есть, чего нет в проекте и т. д. Теперь выберем пакеты, которые мы удалим из из минимальной и типичной сборок. Если мы создаем типичный вариант с предустановленными дополнительными приложениями, тогда просто тупо жмем NEXT, не внося никаких изменений, но если нам надо, например, создать супер-минимальную сборку, тогда ставим галочки везде. Но это в теории, а на практике лучше не удалять пакеты, назначение которых вам неизвестно.
Следующий шаг - выбор ядра. Если специально не устанавливали что-то эксклюзивное, выбираем наиболее свежий вариант и идем дальше.
Тут у нас выбор компрессии образа iso. Чем сильнее сжатие, тем меньше вес дистрибутива, но работать будет медленнее, и наоборот.
Выбираем средний вариант, жмякаем кнопку GENERATE и упорно ждем.
Ну вот, образ создан, и теперь мы можем проверить его работу, выбрав опцию TEST.
Откроется новое окно эмулятора QEMU. Как видно, установщик работает штатно. При загрузке системы предлагается зайти под своим аккаунтом.
Программы установлены. Dash-панель настроена как следует.
Конфиги программ работают. Так, например, здесь видно, что в doublecmd уже настроены ftp-соединения, которыми я часто пользуюсь. Пока эксперементировал, во второй попытке с дистром ubuntu 20.04 слишком увлекся и удалил какой-то пакет, из-за которого в системе исчезла возможность перейти в меню базовых настроек. А к тому времени уже столько всего было нахуеверчено, что найти причину, откуда ошибка, и откатиться до прежнего состояния стало максимально проблематично - проще начать заново. Тем, более, у меня уже есть эта статья... Однако же... каждый раз писать ручками столько комманд в chroot CUBIC - це ж зрада! Другое дело - запустить sh скрипт! Вот это уже, наоборот, была бы перемога!.. Единственная загвоздка - перетаскивание файлов и папок, а в остальном... Да и то. Чуть подумал - и в голове уже родился план целого инсталлятора!
Создал папку
dist-install
Покидал туда все необходимые файлы, подготовил скрипт и переместил туда же.
sudo nano install.sh
#!/bin/bash adduser madmentat usermod -aG sudo madmentat rm /etc/apt/sources.list echo "deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse" >> /etc/apt/sources.list echo "deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse">> /etc/apt/sources.list echo "deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse">> /etc/apt/sources.list apt-add-repository ppa:graphics-drivers/ppa #video-drivers apt update -y dpkg -i "/home/dist-install/google-chrome-stable.deb" dpkg -i "/home/dist-install/windscribe.deb" apt install doublecmd-gtk -y apt install gimp -y apt install mc -y apt install gpick -y apt install gnome-tweaks -y apt install samba -y apt install vsftpd -y apt install libxcb-xinerama0 -y #For Qt Programs apt install variety -y mkdir "/home/madmentat/.local" mkdir "/home/madmentat/.local/share" mkdir "/home/madmentat/.local/share/applications" mkdir "/home/madmentat/.config" mkdir "/home/madmentat/.config/autostart" mkdir "/home/madmentat/.config/dconf" cp "/home/dist-install/user" "/home/madmentat/.config/dconf/user" #Dashboard Binary config file mv "/etc/vsftpd.conf" "/etc/vsftpd_old.conf" #Making Copy of FTP config mv "/etc/samba/smb.conf" "/etc/samba/smb_old.conf" #Making Copy of SAMBA config cp "/home/dist-install/vsftpd.conf" "/etc/vsftpd.conf" #Update FTP config cp "/home/dist-install/smb.conf" "/etc/smb.conf" #Update SAMBA config cp "/home/dist-install/avatar.jpg" "/home/madmentat/.face" #Making Avatar for Linux Profile cp -R "/home/dist-install/wallpapers" "/home/madmentat/wallpapers" #Copying wallpapers to home directory cp -R "/home/dist-install/variety.desktop" "/home/madmentat/.config/autostart/variety.desktop" cp -R "/home/dist-install/doublecmd" "/home/madmentat/.config/doublecmd" cp -R "/home/dist-install/discord" "/home/madmentat/.config/discord" cp -R "/home/dist-install/google-chrome" "/home/madmentat/.config/google-chrome" cp -R "/home/dist-install/gnome-session" "/home/madmentat/.config/gnome-session" cp -R "/home/dist-install/Windscribe" "/home/madmentat/.config/Windscribe" cp -R "/home/dist-install/variety" "/home/madmentat/.config/variety" cp -R "/home/dist-install/arduino" "/home/madmentat/arduino" cp -R "/home/dist-install/madCalc1.0" "/home/madmentat/madCalc1.0" #Qt Programs cp -R "/home/dist-install/madCalc2.0" "/home/madmentat/madCalc2.0" #Qt Programs cp -R "/home/dist-install/SimplePad" "/home/madmentat/SimplePad" #Qt Programs cp -R "/home/dist-install/madCalc.desktop" "/home/madmentat/.local/share/applications/madCalc.desktop" #Links to Qt Programs for Dashboard cp -R "/home/dist-install/SimplePad.desktop" "/home/madmentat/.local/share/applications/SimplePad.desktop" #Links to Qt Programs for Dashboard ln -s "/home/madmentat/SimplePad/SimplePad" "/usr/local/bin/simplepad" #Simlink for Qt Programs ln -s "/home/madmentat/madCalc2.0/madCalc" "/usr/local/bin/madCalc" #Simlink for Qt Programs sh "/home/madmentat/arduino/install.sh" apt clean apt autoclean chown madmentat -R /home/madmentat
sudo chmod +x install.sh
Скачать скрипт для local fosa