Алексей Федорчук
В этой заметке конспективно описано создание минимальной системы на базе Ubuntu 16.10 Yakkety Yak. Она выступает в качестве минимальной редакции Cintu, а также может использоваться как основа для образов редакций более «продвинутых». Составлена для себя, но может пригодится в качестве прототипа для сборки любых систем на базе Ubuntu, не окученных её официальными клонами.
Хотя конспект этот составлялся во время сборок Cintu 16.10, почти всё сказанное в нём применимо и при сборке Cintu на базе Xenial’а. Необходимые оговорки о различиях в процедуре будут сделаны по ходу изложения материала.
Шаг первый — установка базовой системы Ubuntu 16.10 (или, соответственно, 16.04) с образа mini.iso
«последнего разлива», которые можно взять отсюда для Yakkety, и отсюда — для Xenial’а.
В начальном меню «альтернативного» установщика следует перейти к пункту Advanced options, после чего выбрать Command-line expert install:
В этом режиме, с одной стороны, задаются детальные вопросы по конфигурированию системы (что в данном случае необходимо), а с другой — не предусмотрено никакого выбора пакетов, и вся установка сводится к развёртыванию метапакета ubuntu-minimal
.
Сама по себе инсталляция системы в этом режиме описывалась многократно (последний раз здесь). Поэтому ниже остановлюсь только на самых существенных моментах.
При выборе локалей снимается отметка с пункта en_US.UTF-8
, дабы не получить полного спектра англоязычных локалей, от островов Антигуа и Барбадоса до Зимбабве:
При настройках сети задаётся имя компьютера — cintu
, имя домена пропускается. Зеркало архива Ubuntu задаётся вручную, archive.ubuntu.com
:
Затем вводится имя каталога /ubuntu/
:
При настройке учётных записей задаётся имя пользователя cintu
, логин cintu
, пароль cintu
.
При разметке диска создаётся один первичный раздел с корневой файловой системой ext4, опциями её монтирования discard
и noatime
, меткой, соответствующей редакции системы (в данном случае mini
):
В ходе установки пакетов производится выбор ядра — linux-generic
, в число драйверов для initrd
включаются все доступные:
Перед перезагрузкой системы выполняется изменение уровня важности debconf
— низкий, подразумевающий наибольшую подробность вопросов:
Первое действие после перезапуска системы — получение перманентных прав администратора:
$ sudo -s
Далее выполняется настройка консоли:
# dpkg-reconfigure console-setup
В ходе её осуществляется выбор консольного шрифта TerminusBold:
Размер шрифта задаётся по глазам и диагонали монитора.
Далее выполняется установка архиважнейших консольных пакетов:
# apt install zsh gpm apt-file software-properties-common
Последний пакет содержит утилиту для автоматического подключения репозиториев add-apt-repository
, которая скоро понадобится.
После этого логично заменить регистрационную оболочку пользователя:
# chsh -s /bin/zsh
И скопировать для неё пользовательские конфиги с внешнего носителя:
# cp -p path2/.zsh* /
После чего остаётся перелогиниться в системе и опять получить права администратора:
# exit $ exit login: cintu password: cintu $ sudo -s
И теперь в первую очередь нужно определиться с источником пакетов для среды Cinnamon. Теоретически это может быть официальный репозиторий Ubuntu или один из PPA-репозиториев. Практически, однако, на данный момент рабочим для Yakkety является только первый вариант, ибо
- репозиторий Цветко, который использовался в прошлом релизе Cintu, 16.04.1, поддерживает только LTS-релизы Ubuntu, и поддержка Yakkety в нём, похоже, не планируется;
- репозиторий embrosyn’а фактически идентичен официальному, а репозиторий Эрика Краниха основывается на нём;
- из репозитория Ле Бьена на момент сочинения этих строк Cinnamon не устанавливается из-за нарушения зависимостей, и когда это будет исправлено — неизвестно: в ответ на соответствующую просьбу Гвендаль ответил, что майнтайнер тоже имеет право на личную жизнь.
Однако, поскольку ситуация эта — явно временная, о трёх последних репозиториях следует помнить. И задействовать первый из них, от embrosyn’а, можно так:
# sudo add-apt-repository ppa:embrosyn/cinnamon
А репозитории Ле Бьена и Краниха подключаются, соответственно, так:
# add-apt-repository ppa:gwendal-lebihan-dev/cinnamon-nightly
или
# add-apt-repository ppa:kranich/cinnamon
А для системы на базе Xenial’а по прежнему предпочтителен репозиторий Цветко Цветкова:
# add-apt-repository ppa:tsvetko.tsvetkov/cinnamon
Перед установкой Cinnamon целесообразно подключить ещё несколько PPA-репозиториев, одни из них потребуются почти сразу, а другие пригодятся на будущее. Первыми подключаются репозитории для установки терминала Terminix и кросс-десктопного набора приложений X-Apps:
# add-apt-repository ppa:webupd8team/terminix # add-apt-repository ppa:embrosyn/xapps
Далее подключается источник Systemback:
# add-apt-repository ppa:nemh/systemback
И, наконец, два последних репозитория при установке 16.10 пока подключать не нужно — версий пакетов для Yakkety в них сейчас нет, но помнить о них следует на будущее. А для системы на базе Xenial’а их и подключить не грех:
# add-apt-repository -y ppa:teejee2008/ppa # add-apt-repository ppa:utappia/stable
Из первого со временем, надеюсь, можно будет установить графическую утилиту для обновления ядра Ukuu, из второго — консольную утилиту автоматической очистки системы ucaresystem-core
. Которые, кстати, можно установить в Cintu на основе релиза Xenial’а сразу.
После подключения репозиториев — не забыть про обновление локального кеша пакетов:
# apt update
И, если в выводе предыдущей команды будет сообщение о наличии новых версий пакетов, не худо поглядеть на них с помощью команды
# apt list --upgradable
А затем выполнить обновление системы:
# apt upgrade
После этого следует установка Иксов:
# apt install xorg
Затем пакета Terminix:
# apt install terminix
И, наконец, устанавливается Cinnamon:
# apt install cinnamon
Вместе с пакетом cinnamon
будет установлен и файловый менеджер Nemo, однако без одного весьма важного плагина, упрощающего подсчёт контрольных сумм. Что следует немедленно восполнить:
# apt install nemo-gtkhash
Теперь есть резон установить некоторые служебные пакеты, как то:
- инструменты для выполнения некоторых административных команды без запроса пароля
# apt install policykit-desktop-privileges
- графические фронт-энды для установки пакетов и управления оными
# apt install gdebi synaptic
- редактор Dconf
# apt install dconf-editor
- утилиту для получения информации о системе
# apt install inxi
Для системы на базе Xenial’а устанавливаются упомянутые выше утилиты обновления ядра и очистки системы:
# apt install ukuu ucaresystem-core
Разумеется, в любом случае следует не забыть про Systemback:
# apt install sysytemback
А также — про пакеты поддержки всех файловых систем, которые нынче ещё имеет смысл поддерживать:
# apt install btrfs-tools xfsprogs jfsutils reiserfsprogs
И ещё одна служебная программа потребуется сразу после перезапуска системы — «маленькая, но ответственная»:
# apt install xdg-user-dirs-gtk
А для чего она нужна — узнаете после рестарта.
Необходима правка некоторых общесистемных конфигов:
- в файле
/etc/adduser
переменнаяDSHELL
определяется так:
DSHELL=/bin/zsh
- в файле
/etc/NetworkManager/NetworkManager.conf
секция[ifupdown]
преобразуется к такому виду:
managed=true
Косметическая настройка загрузчика GRUB включает в себя
- копирование с внешнего носителя файла заставки:
# cp -p path2/splash.png /boot/grub
- приведение файла
/etc/default/grub
к следующему виду:
#GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=100 ... GRUB_CMDLINE_LINUX="/boot/grub/splash.png"
- обновление конфигурации загрузчика:
# update-grub
Забегая вперёд, скажу, что при рестарте системы меню загрузчика будет выглядеть примерно так:
Наконец, с внешнего носителя копируются общесистемные dot-файлы:
# cp -p path2/.zsh* /etc/skel
А для корректной работы Terminix создаётся симлинк:
# ln -s /etc/profile.d/vte-2.91.sh /etc/profile.d/vte.sh
Теперь — минимально-джентльменский набор приложений включает
- текстовый редактор
# apt install xed
- вьювер документов
# apt install xreader
- вьювер изображений
# apt install xviewer
- инструмент для изготовления скриншотов
# apt install gnome-screenshot
- медиапроигрыватель
# apt install mpv
Для системы на базе Xenial к ним добавляется вьювер графики с функциями редактирования
# apt install pix
В качестве браузера устанавливается Firefox
:
# apt install firefox firefox-locale-ru
Для проверки орфографии с внешнего носителя устанавливается пакет hupspell-ru
с обязательной поддержкой Ё:
# dpkg -i path2/hunspell-ru-aot_0.4.0-2_all.deb
Теперь — минимум косметики. Так, корректируются сплэш-картинки при старте системы:
# apt purge plymouth-theme-ubuntu-text # apt install plymouth-label plymouth-themes
Добавляется тема оформления окон:
# apt install numix-gtk-theme
и пиктограмм:
# apt install breathe-icon-theme
Наконец, с внешнего носителя копируется «нескучная обоина» с логотипом Cintu:
# cp -p path2/azhabachie-backgrnd.png ~/.cinnamon/backgrounds
На этом «косметика» заканчивается — от доустановки шрифтов я отказался. Ибо, во-первых, для начала сгодятся и штатные шрифты DejaVu, а во-вторых, последнее время мне полюбились шрифты семейства Input — бесплатные, но свободно не распространяемые,
Последний штрих — выбор и установка дисплейного менеджера. Для Cintu 16.04.1 выбор очевиден:
# apt install mdm
В системе на базе Yakkety простого способа установить MDM в настоящее время нет, а оба «непростых» (с временным подключением PPA-репозитория Ле Бьена или Linux Mint) — кривы. Поэтому как паллиативное решение устанавливается SLiM:
# apt install slim
При перезапуске системы потребуется ввести сначала логин, затем пароль:
Теоретически в SLiM’е можно настроить и автоматический вход в систему, но для установочного Live-образа, изготовленного с помощью Systemback’а, это по некоторым причинам, смысла не имеет.
Таким образом, установка SLiM’а — предпоследнее действие при подготовке системы для создания образа mini-редакции. Потому что последним будет, после выхода из режима администратора, формирование списка пакетов:
# exit $ apt list --installed > ~/pkg-mini-1610.txt
И кстати, время перезагрузки как раз и наступило. После чего можно приступать к созданию образа системы, о чём вкратце говорилось ранее. И о чём со временем будет отдельный более подробный разговор.
Спасибо, Алексей, за детализацию своих действий по созданию сборки.
>Наконец, с внешнего носителя копируются общесистемные dot-файлы:
# cp -p path2/.zsh* /etc/skel
Можно чуть подробнее об этих файлах?
Таня, это просто конфиги Zsh’а, которые будут у новообразованных пользователей. Собственно, точные копии тех, что в ~/. А отдельно — чтобы с правами на них не путаться :)
Большое спасибо за очень необходимый конспект.
Вопрос: конфиги .zshenv .zshrc копировать в директорию /etc/skel с точками в названии файла или без них?
И если конфиги уже находятся в /etc/skel нужно ли их копировать еще и в хомяк, или уже не обязательно?
sgch, копировать с точками: содержимое /etc/skel — это точно то, что автоматически будет в домашнем каталоге каждого будущего пользователя, созданного, например, командой adduser (или всякими графическими утилитами). А в хомяк текущего юзера cintu мы их скопировали ещё раньше — они одинаковы.
mini.iso все время брал отсюда
http://cdimage.ubuntu.com/netboot/
здесь mini.iso обновляется (предыдущее обновление было от 2016-08-10 ) хотя практически вопросы установщика неизменны, но окна для изменения уровня важности debconf не было никогда (это точно — у меня все ходы записаны)
Вопрос: это окно появилось только в установщике для 16.10 или я использую не ту ссылку для mini.iso?
sgch, оно в альтернативном установщике Ubuntu было всегда — ещё тогда, когда он был не альтернативным, а единственным :)
Просто Вы, наверное, не обращали внимания: пункт его вызова Изменение уровня важности debconf идёт сразу ниже пункта Завершение установки: http://alv.me/wp-content/img/2015/12/cintu-install_074-572×475.png
Вообще весь процесс расписан и проиллюстрирован подробно вот здесь: http://alv.me/cintu-ubuntu-i-cinnamon-Ustanovka-bazovoj-sistemy/
Случайно обнаружил более удобный способ установки циннамона —
при выборе способа установки нажать «таб» и ввести в параметры, передаваемые ядру: pkgsel/include=cinnamon-core
cinnamon-core — устанавливает всё необходимое для голого циннамона. Можно также, через запятую, перечислить необходимые пакеты. При таком способе не приходится трахаться с нетворк-менеджером после установки (managed=true в 17.04 не работает) https://www.debian.org/releases/jessie/amd64/apbs04.html.ru