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

CUBIC1

Здесь указываем каталог, где хранится наш проект. Вообще, наверно, удобно создать что-то типа 

mkdir ~/CUBIC-projects

И подпапки по названием наших дальнейших сборок. Я с дуру собрал первый проект в "Загрузках". Но ничего страшного, все получилось. Далее выберем название нашей сборки и все вот это:

CUBIC2

На следующем этапе наш образ будет распакован и мы получим доступ к root консоли, откуда можно будет установить любое ПО и сделать любые необходимые правки. Я лично люблю все свеженькое, поэтому сразу же обновлю свою сборку, затем установлю все необходимые приложения. 

apt update && apt upgrade -y

CUBIC3

Подключим репозиторий свежих видеодрайверов, в частности 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

CUBIC4

Для установки из 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.

CUBIC5

Тут вычисляется что у нас есть, чего нет в проекте и т. д. Теперь выберем пакеты, которые мы удалим из из минимальной и типичной сборок. Если мы создаем типичный вариант с предустановленными дополнительными приложениями, тогда просто тупо жмем NEXT, не внося никаких изменений, но если нам надо, например, создать супер-минимальную сборку, тогда ставим галочки везде. Но это в теории, а на практике лучше не удалять пакеты, назначение которых вам неизвестно.

CUBIC6

Следующий шаг - выбор ядра. Если специально не устанавливали что-то эксклюзивное, выбираем наиболее свежий вариант и идем дальше.

CUBIC7

Тут у нас выбор компрессии образа iso. Чем сильнее сжатие, тем меньше вес дистрибутива, но работать будет медленнее, и наоборот.

CUBIC8

Выбираем средний вариант, жмякаем кнопку GENERATE и упорно ждем.

CUBIC9

Ну вот, образ создан, и теперь мы можем проверить его работу, выбрав опцию TEST.

CUBIC10

Откроется новое окно эмулятора QEMU. Как видно, установщик работает штатно. При загрузке системы предлагается зайти под своим аккаунтом.

CUBIC11

CUBIC12

CUBIC13

Программы установлены. Dash-панель настроена как следует.

CUBIC14

Конфиги программ работают. Так, например, здесь видно, что в 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