Книга о Cintu. Часть I. Создание системы. Глава 2. Обретение десктопа

Книга о Cintu. Часть I. Создание системы. Глава 2. Обретение десктопа

Глава 1 Книги о Cintu закончилась тем, что после установки минимальной системы и перезагрузки машины нашему взору предстала страшная чёрная текстовая консоль с предложением авторизоваться в ней. Что мы с Мануалом тут же и проделываем, использу логин cintu и пароль — тоже cintu — эту пару мы всегда задаём для всех наших сборок одноимённой системы, вне зависимости от её версии и редакции. После чего первая виртуальная консоль готова к работе:

Напомню, что в нашем распоряжении имеется ещё пять точно таких же консолей, в которые можно попасть комбинацией клавиш Alt+F# (на реальном «железе») и RControl+F# (в виртуальной машине). В обоих случаях # — номер виртуальной консоли, а RControl — управляющая клавиша виптуальной машины по умолчанию (её можно переопределить). Каждая из виртуальных консолей требует отдельной авторизации, и минимум в одной из них это нужно будет сжедать — скоро будет понятно, зачем.

Обустройство консоли

В свежеустановленной системе чёрная текстовая консоль действительно выглядит страшновато. Правда, он корректно русифицирована, в чём можно убедиться, переключившись комбинацией Alt+Shift накириллицу — и убедившись, что вводятся действительно русские буквы. Да и команда

$ date

отображает их правильно:

Ср авг 29 00:24:09 MSK 2018

Кстати, редкий дистрибутив нынче может похвастаться корректной русификацией консоли «искаропки», большинство майнтайнеров на это откровенно забили.

Однако «правильно» — не значит «хорошо»: и русские, и латинские буквы имеют очень бледный вид, малы, тонки и не красивы. Кроме того, на консольнуь мышь нет и намека — а что это за консоль без мыши? Так что первое, что следует сделать — привести консоль в приличный вид. Ибо до обретения десктопа в этой черной и текстовой придётся провести некоторое время. И время это пройдёт в роли суперпользователя, поэтому права его нужно обрести на долгое время:

$ sudo -i

Поскольку параллельно некоторые действия нужно будет выполнять от лица обычного пользователя — на вахту вступает вторая виртуальная консоль — на ней пока просто авторизуемся. В административной же консоли запускаем программу конфигурирования консольного вывода:

# dpkg-reconfigure console-setup

Она для начала выведет список кодировок, которые могут быть использованы в консоли — нужная нам (то есть UTF-8) отмечена по умолчанию:

Далее выбирается нужный набор символов — здесь можно положиться на автоматику, каковая и отмечена по умолчанию:

Выбор консольного шрифта для нас однозначен (хоть и не умолчален — таковым является Fixed). Это — Terminus Bold, хотя некоторые предпочут просто Terminus:

TerminusBoldVGA тоже не плох, но приспособлен более для старых «трубочных» мониторов (а их у нас ещё есть?). Кстати, если Позволить системе выбрать подходящий шрифт — им окажется простой Terminus. Размер шрифта (понятие кегля к консольным шрифтам не применимо) выбирается по своей «глазастости», но для будущего тиражируемого образа мы с Мануалом привегаем к компромиссу — 10×20:

После чего консоль приобретает следующий вид:

Впрочем, может быть, кому-то глянется и консоль со шрифтом просто Terminus:

Теперь включаем службу консольной мыши, что делается не просто, а очень просто:

# apt install gpm -y

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

Для комфортной работы в консоли нам нужна командная оболочка Zsh. И нет только в консоли: в полностью сконфигурированной системе Cintu он будет пользовательской оболочкой (login shell) по умолчанию, в том числе и для администратора. Так что устанавливаем соответствующий пакет:

# apt install zsh  -y

Однако Zsh без должным образом составленных конфигов — это не Zsh, а сплошное недоразумение. Но конфиги мы заготовили заранее — в виде архивчика conf.tat.gz, на собственной файлопомойке. И теперь остаётся их только вытянуть. Что мы с Мануалом делаем, установив предварительно Midnight Commander — всё равно он потом будет требоваться постоянно:

# apt install mc -y

После чего по комбинации Alt+F2 переходим во вторую виртуальную консоль, авторизуемся там, от лица обычного пользователя запускаем mc (вот для чего нам потребовалась вторая консоль — чтобы на первой не прерывать сеанс администратора), настраиваем ftp-соединение (доступ в нашу файлопомойку по паролю) и скачиваем архивчик mandatory.tar.gz (так он у нас называется) непосредственно в домашний каталог пользователя cintu. Где его и распаковываем:

$ tar xvf mandatory.tar.gz

Кроме должным образом оформленных файлов .zshenv и .zshrc, в нём находится и файл ресурсов .Xresources — в нём прописаны настройки терминала XTerm, что потребуется позднее.

Теперь можно сменить командную оболочку пользователя:

$ chsh -s /bin/zsh

Что потребует ввода пароля cintu. Теперь остаётся только выйти из пользовательского сеанса командой exit и авторизоваться по новой — Zsh предстанет пред нами во всей красе:

Замечание: разумеется, все перечисленные выше пакеты (как и большинство тех, что будут фигурировать далее) можно установить и одной командой такого вида:

# apt gpm zsh mc install -y

Разделение на отдельные команды — исключительно для удобства комментирования и восприятия. Очевидно также, что опция -y избавляет от вывода списка зависимостей и подразумевает согласие на установку — иначе не стоило бы и огород городить.

На смене шелла, выходе из сеанса и повторной авторизации обустройство консоли заканчивается — можно приступать к установке пакетов и подключению репозиториев. Переключившись опять в первую консоль, где нас ожидает сеанс администратора.

Установка консольных пакетов

Основная часть необходимых программ, работающих в текстовом режиме (иначе называемых консольными) была либо получена «искаропки», либо установлена в ходе обустройства консоли. Однако несколько пакетов потребуется установить — дабы не обнаружить их отсутствие в самый неподходящий момент. И первый из таких пакетов — система проверки орфографии с русским словарём. С первой всё просто:

# apt install hunspell -y

А вот со словарём немного сложнее. Существует три варианта русского словаря для системы hunspell: hunspell-ru, игнорирующий существование буквы Ё, hunspell-ru-ie-yo, признающий равноправность «обычного» и «ёрифицированного» написаний, и hunspell-ru-aot, поддерживающий обязательность буквы Ё. Первый пакет имеется в официальном репозитории, второй — в PPA-репозитоии Crew’а Правда, только до релиза 16.04 включительно — но его можно установить и «в лоб», скачав бинарник hunspell-ru-ie-yo_0.3.9-3-0xenial_all.deb с соответствующей страницы.

В Cintu же традиционно используется словарь hunspell-ru-ie-yo, в котором буква Ё обязательна. Ранее он развивался в рамках проекта . Однако потом был заброшен. И ныне его можно найти только в репозиториях некоторых дистрибутивов, например, в ALT Linux Sisyphus и в AUR Archlinux. Ну а соответствующий deb-пакет, похоже, сохранился только у меня — скачать его можно, например, отсюда. И установить из текущего каталога так:

# apt install ./hunspell-ru-aot_0.4.0-2_all.deb

Во всех редакциях Cintu мы стараемся обеспечить поддержку максимального числа файловых систем — тех, которые имеет смысл поддерживать. После установки базиса Ubuntu инструментов для работы с файловыми системами не так много — это все разновидности Ext2/3/4, файловые системы MSDOS/Windows (Fat, Vfat, NTFS), реликтовая minix и «служебная» Cramfs:

Поэтому устанавливаем недостающий инструментарий. Сначала — для «обычных» (нативных) ФС, за исключением Jfs и Reiser4, поскольку первая утратила актуальность (да никогда её и не имела), а вторая не будет доделана никогда:

# apt install xfsprogs reiserfsprogs btrfs-progs btrfs-tools

Затем — для log-структурированных ФС, ориентированных на использование с флешками и SD-картами:

# apt install nilfs-tools f2fs-tools

Кроме того, последнее время мы с Мануалом сталкиваемся с необходимостью чтения данных в файловой системе exFAT, почему поддержка её также включается в релиз 18.04.1:

# apt install exfat-fuse exfat-utils

Опционвльно: Возможно, в некоторые сборки будут включены поддержка ZFS, включая SPL (Solaris Porting Layer) и утилита управления softRAID:

# apt install spl spl-dkms 
# apt install zfsutils-linux zfs-initramfs zfs-dkms
# apt install mdadm

От включения поддержки LVM мы с Мануалом отказались — её функционал полностью перекрывается спектром возможностей ZFS, выходя далеко за рамки оного.

Таким образом, применитель Cintu имеет возможность работать практически со всеми файловыми системами, поддерживаемыми Linux’ом. Правда, пользоваться этой возможностью его никто не заставляет. Главное, как гласит реклама каких-то прокладок, он это может.

Далее устанавливается очень полезная утилита apt-file, отсутствующая в метапакете ubuntu-standard — она нам очень скоро понадобится:

# apt install apt-file

Утилита для своей работы требует собственного кеша, который создаётся таким образом:

# apt-file update

После чего (процедура эта продолжается некоторое время, зависящее от скорости соединения с Интернетом) эту утилиту можно использовать как для поиска файла в пакете, так и для решения обратной задачи — поиска пакета, содержащего заданный файл. Причём искомый пакет не обязан быть установленным (обязательное условие для аналогичного поиска через dpkg) — достаточно его наличия в одном из подключённых репозиториев, не только официальных, но и PPA (подробности — у кота Мануала).

Далее нам требуется утилита ucaresystem-core, которая осуществляет полный цикл сопровождения системы — обновляет локальный кэш пакетов, скачивает и устанавливает обновления, удаляет старые ядра, «заброшенные» пакеты и конфиги (см. подробности). Однако в официальном репозитории её нет, требуется подключение PPA-репозитория Utappia.

Как знают все, подключение репозиториев осуществляется командой add-apt-repository. Однако в свежеустановленной системе такой не найти — она входит в состав какого-то пакета. Какого? На этот вопрос нам и ответит утилита apt-file. И сделает это таким образом:

$ apt-file find add-apt-repository
software-properties-common: /usr/bin/add-apt-repository

Следовательно, надо установить найденный пакет (как ни странно, но и его нет в метапакете ubuntu-standard):

# apt install software-properties-common -y

В Zsh после этого потребуется выполнить команду rehash, пересчитывающую хэш-таблицу каталогов с исполняемыми файлами в (Bash такой необходимости нет). После этого можно плавно переходить к подключению PPA-репозиториев.

PPA для консоли

Итак, первоочередные задачи по установке «консольных» пакетов, решаемые через официальный репозиторий Ubuntu, решены. Двигаться дальше можно, только подключив PPA-репозиториb. И первым из них будет тот, что содержит утилиту
ucaresystem-core:

# add-apt-repository ppa:utappia/stable -y

Каковую сразу, пока не забыли, и устанавливаем — обновление кеша пакетов (то есть команда apt update) в современной (1.6 и выше) версии apt запускается автоматически, сразу после добавления PPA-репозитория:

# apt install ucaresystem-core -y

Далее подключаем репозиторий Liquorix, который содержит ядра системы, более новые, чем ядро текущего релиза (4.15.0-29):

# add-apt-repository ppa:damentz/liquorix -y

И устанавливаем последнее ядро, вместе с заголовочными файлами:

# apt in linux-image-liquorix-amd64 linux-headers-liquorix-amd64 -y

На установке ядра можно сделать паузу: мы получили самодостаточную, полностью укомплектованную консольную систему, которую можно использовать как основу для применительской системы с любым рабочим окружением — интегрированной рабочей средой или оконным менеджером. Поэтому есть смысл сохранить её в таком состоянии, склонировав виртуальную машину. Как — кот МАнуал рассказывает в соответствующем разделе своих воззрений на Virtualbox.

PPA для десктопа

Скоро нам понадобится устанавливать среду Cinnamon — и тут возможны варианты. Пакеты для этого десктопа можно брать из официального репозитория Ubuntu — но вы это делать заведомо не будем: они уже сейчас отстают на версию (нынче — 3.6.X против актуальной 3.8.X), и со временем это отставание будет только увеличиваться.

Второй вариант — PPA-репозиторий Гвендаля ле Бьена с его «ночными» сборками. Тут, напротив, версии пакетов всегда самые свежие, поскольку собираются непосредственно с официальногоGit’а проекта. Оборотная сторона чего — они подчас содержат ошибки. Обычно быстро (в течении первых дней) исправляемые, но изредка висящие и неделями, а то и месяцами.

Поэтому мы с Мануалом используем ныне этот репозиторий только для образов, собираемых сразу после появления очередной версии Cinnamon — для знакомства с новшествами этой среды. Так что на всякий случай приведём способ подключения репозитория Гвендаля:

# add-apt-repository ppa:gwendal-lebihan-dev/cinnamon-nightly -y

Однако мы ни в коем случае не рекомендуем использование репозитория Гвендаля для образов системы, предназначенной для практического применения. Разве что как паллиатив на то время, пока новая версия не появится в стабильном исполнении.

Статус же стабильного репозитория имеет PPA от Embrosyn’а — именно он нынче используется нами при сборке релизов Cintu. И, видимо, будет использоваться в этом качестве до конца жизненного цикла версии 18.04.X. И подключается он так:

# add-apt-repository ppa:embrosyn/cinnamon -y

Кроме того, Embrosyn’у принадлежит репозиторий с пакетами из кросс-десктопного набора приложений X-Apps, развиваемого, как и Cinnamon, в рамках проекта Linux Mint. Нам эти пакеты тоже понадобятся (хотя и не все), так что подключаем и этот репозиторий:

# add-apt-repository ppa:embrosyn/xapps -y

В принципе нам потребуется подключить ещё один обязательный PPA-репозиторий — тот, который содержит Systemback. Но этим мы займёмся позднее, когда дело дойдёт до создания образа системы в Главе 4. А пока разберёмся с теми PPA, которые мы уже наподключали.

От консоли к десктопу

Впрочем, для первого шага в сторону десктопа пока достаточно и официального репозитория, ибо он сводится к установке Иксов:

# apt install xorg -y

После этого делается такой финт ушами:

# apt install tint2 -y

Фигурирующий здесь пакет — простая панель запуска задач (taskbar), нужная только для обеспечения fallback-режима, собственное средство для этого в Cinnamon отсутствует. Так что без tint2 было бы установлено одно из альтернативных предложений — mate-panel (по умолчанию) или gnome-panel. И любое из них потянуло бы массу зависимостей из соответствующих сред, более ни для чего в Cintu не нужных.

Так что не привязанная ни к какому десктопу панель tint2 оказывается наименьшим злом — зависимостей у неё всего ничего, и из них большая часть оказывается уже установленной вместе с Иксами.

Вот теперь самое время установить титульную рабочую среду Cintu:

# apt install cinnamon -y

А в придачу — самый подходящий для неё дисплейный менеджер — таковым нынче оказывается LightDM. И не просто LightDM, а непременно в компании со «ловким зазывалой» и своим собственным настраивателем:

# apt install lightdm slick-greeter lightdm-settings -y

Всё, можно перезагружать машину, появляется окно, зазывающее нас выбрать логин и ввести пароль:

Дабы после авторизации почувствовать «вкус корицы». Впрочем, опробованием её мы будем заниматься уже в Главе 3.

Книга о Cintu. Часть I. Создание системы. Глава 2. Обретение десктопа: 1 комментарий

  1. Алексей, приветствую!

    Что-то в этой строке одно и тоже, а не «вместе с заголовочными файлами.
    «# apt in linux-image-liquorix-amd64 linux-image-liquorix-amd64 -y»

    Очепятка:
    «в нюм находится и файл ресурсов .Xresources»

Добавить комментарий