Алексей Федорчук
В прошлом очерке я описал минималистическую установку Debian (на примере Jessie версии 8.1.0) с образа netinst
. Что, разумеется, не было самоцелью: теперь эту базовую систему предстояло превратить в полноценную LMDE 2 Betsy.
Процесс превращения Jessie в Betsy также был описан ранее. Однако это был мой первый опыт такого рода. И, исполняя роль (полу-) слепого котёнка, я сделал немало ошибок. Не критичных и исправляемых, но влекущих за собой лишние затраты времени. Затратив некоторое время на изучение вывода команд apt show
и apt depends
для ряда ключевых пакетов для Betsy в её Cinnamon-редакции, я выявил «корень зла». И потому ныне могу предложить нечто вроде пошаговой инструкции по доведению той самой минималистической установки до состояния работоспособной системы.
Вступление
Итак, вводная установка. В наличие имеются:
- машина с установленной Jessie в составе
core system
и комплекта CLI-утилит; - флешка с файловой системой Ext4, на которой собраны заранее подготовленные конфиги, как то: файл
/etc/lsb-release
, содержимое каталога/etc/apt
, пользовательские и root’овые dot-файлы для Zsh (это, уж извините, личное пристрастие), а также, разумеется, материалы для подключения нескучных обоев.
Содержимое флешки получено прямым копированием с рабочей настроенной Bersy-системы командой cp -pr
для сохранения атрибутов принадлежности и доступа всех файлов и каталогов (это важно, иначе придётся корректировать права доступа к ним в индивидуальном порядке, что долго и скучно).
Содержание файла /etc/lsb-release
таково:
DISTRIB_ID=LinuxMint DISTRIB_RELEASE=2 DISTRIB_CODENAME=betsy DISTRIB_DESCRIPTION="LMDE 2 Betsy"
Содержимое каталога /etc/apt
цельнотянуто с моей рабочей системы, и отличается от оригинального для Betsy только адресами используемых зеркал репозиториев: linux-mint.froonix.org
для Mint и ftp.ru.debian.org/debian для Debian — в моих условиях они обычно показывают наилучшую скорость. Желающим последовать моему примеру, возможно, потребуется скорректировать их в соответствие с официальными списками — для Mint и Debian, соответственно.
Конфигурационные файлы для Zsh — .zshrc
и .zshenv
с суффиксами .user
и .root
(для пользователя и администратора, соответственно — как нетрудно догадаться, они отличаются своими атрибутиами). Содержимое .zshrc.*
примерно соответствует описанному в соответствующем разделе книги про Linux Mint и его Cinnamon. Пользовательский и root’овый конфиги отличаются значениями переменной cdpath
(хотя последнее время я её обычно вообще закрываю комментарием). Файлы .zshenv.*
идентичны (за исключением атрибутов), их содержание сводится к следующему:
if [[ -z "$PATH" || "$PATH" == "/bin:/usr/bin" ]] then export PATH="/usr/local/bin:/usr/bin:/bin:/usr/games" fi # history-substring-search support -- mandatory for the entire Clan Ubuntu DEBIAN_PREVENT_KEYBOARD_CHANGES=yes
Почему — опять же описано в разделе про Zsh упомянутой ранее книги.
Подключение нескучных обоев обеспечивается содержимым каталога backgrounds/alv
(это подборка картинок) и файлом alv.xml
, представляющим собой его описание (см. подробности).
С этим багажом я и приступил ко второй попытке собирания своей миниатюрной Betsy.
Трансформация в Betsy
Установка с образа netinst
, как было сказано в предыдущем очерке, завершается рестартом, в ходе которого система загружается с предложением к авторизации в текстовом режиме. Поскольку в ходе инсталляции я отказался от задания пароля root’а, авторизуются от имени обычного пользователя и в командной строке Bash (между нами говоря, «искаропки» настроенной далеко не идеальным образом, а именно никак) первым делом получаю права администратора:
$ sudo -i
После чего подключаю и монтирую флешку с подготовленными материалами — никакого автомонтирования сменных носителей пока нет и в помине:
# mount /dev/sdf1 /mnt
Затем удаляю исходные конфиги для apt
и заменяю их заранее припасёнными:
# rm -rf /etc/apt # cp -rp /mnt/for_new/etc/apt /etc/
После этого обновляю локальный кеш и провожу глобальное обновление системы из новых репозиториев:
# apt update # apt dist-upgrade
Затем наношу очередной штрих в картину маслом трансформации:
# cp -p /mnt/for_new/etc/lsb-release /etc/
Отныне система будет представляться всем, кому требуется, как LMDE 2 Betsy, и может быть дополнена соответствующими компонентами. Однако, прежде чем переходить к накачиванию её мускулов, обеспечиваю себе комфортные условия существования в консоли — большая часть последующих действий будет происходить именно в ней. Для чего перво-наперво устанавливаю два жизненно важных для меня пакета:
# apt install zsh gpm
Служба консольной мыши gpm
активизируется сразу, а смена пользовательской оболочки потребует предварительной команды:
$ chsh -s /bin/zsh
Для вступления её в силу требуется завершить сеанс и авторизоваться заново, но с этим пока можно не спешить. А сначала скопировать конфиги куда следует:
# cp -r /dev/sdf1/*.root /root/ # sudo -u alv /dev/sdf1/*.user /home/alv
Теперь выполняю настройку консольного вывода (то есть шрифтов) и ввода (раскладок клавиатуры и их переключателя):
# dpkg-reconfigure console-setup # dpkg-reconfigure keyboard-configuration
Обе процедуры подробно описаны в соответствующем очерке. Изменение шрифтов отражается на экране немедленно, для задействования новых параметров клавиатуры требуется перезагрузка, каковая и выполняется командой
# reboot
Обретение Иксов
После перезагрузки и авторизации пользователем в «чёрной» консоли опять можно видеть приглашение командной строки, но уже оболочки Zsh. Для дальнейших действий снова потребуются перманентные права администратора, причём для него желательно сохранить командную оболочку и её настройки. Для чего в этот раз обретаются они такой командой:
$ sudo -s
Далее я установил утилиты для работы со всеми файловыми системами, какие могут понадобиться (в том числе и экзотическими):
# apt install xfsprogs jfsutils reiser4progs reiserfsprogs f2fs-tools nilfs-tools
И, дабы не забыть, «чуждые нам» архиваторы-компрессоры
# apt install zip unzip
Собственно Иксы обретаются одной командой, устанавливающей два метапакета:
# apt install xorg xserver-xorg-core
Убедиться в успехе можно, перейдя в другую виртуальную консоль (с помощью комбинации Alt+F#), авторизовавшись там юзером и дав команду:
# X
Результатом её будет абсолютно пустой экран, но уже не «чёрный», а «чёрный-чёрный» — спинным мозгом чувствуется, что чернота эта не консольная, а Иксовая. В чём можно убедиться, дав команду
$ ps aux G X
и посмотрев на её вывод, который выглядит примерно так:
root 1025 1.3 0.2 261868 48104 tty# Ss+ 06:42 2:24 /usr/bin/X :0…
Кстати, вывод этот потребуется, дабы прервать «сеанс» Иксов, так как комбинация Control+Alt+BackSpace в этой ситуации не сработает. Так что придётся вернуться в root’овую консоль (комбинацией Control+Alt+F1) и дать в ней команду
# kill ###
где ###
— PID Иксового процесса.
Обращаю внимание на символ G
в командной строке вывода списка процессов: это — глобальный псевдоним для конструкции | grep
. Мы ведь находимся в настроенной командной оболочке Zsh, не так ли? Так давайте же пользоваться её преимуществами.
Теперь для завершения картины трансформации Jessie в Betsy следует дать команду
# apt install mint-meta-debian-core
Она установит соответствующий метапакет, включающий в себя большинство Mint-специфических компонентов для Иксов. И не только для них — в честности, он включает в себя пакет mintsystem
, содержащий Mint-реализацию утилиты apt
. До сих пор пакеты устанавливались посредством её обще-Debian’овской реализации — команды /usr/bin/apt
. Теперь же, если предварительно перестроить хэш-таблицу содержимого каталогов командой
# rehash
по умолчанию будет исполняться /usr/local/bin/apt
из пакета mintsystem
. В чём легко убедиться, дав команду
# which apt
Или же просто командой apt
без опций и аргументов — в ответ, вместо убогого списка опций Debian’новской реализации будет выведено всё богачество возможностей утилиты проекта Mint.
Путь к Cinnamon
Теперь, находясь в полностью «Mint’изированной» Betsy, можно спокойно заниматься установкой среды Cinnamon. И уже не обязательно в режиме администратора — Mint’овская реализация apt
сама запрашивает пароль для доступа к административным функциям при необходимости (подробнее о ней можно прочитать здесь). Хотя действовать предстоит пока ещё в консоли — ни одной программы эмуляции терминала в графическом режиме у нас пока нет.
Установку среды Cinnamon следует начать с такой команды:
$ apt install cinnamon
Она установит почти все компоненты этой среды, в том числе и файловый менеджер Nemo. Но, как ни странно, не охватит её менеджер окон, а также дисплейный менеджер, обеспечивающий авторизацию в графическом режиме. Немедленно восполняю это упущение:
$ apt install muffin $ apt install mdm libpam-gnome-keyring gnome-keyring $ apt install mintlocale mintstick
Первой командой устанавливается менеджер окон, второй — дисплейный менеджер MDM и пакеты, необходимые для авторизации, в том числе для получения прав администратора в графическом режиме посредством утилиты gksu
, третьей — последние неокученные Mint-специфические утилиты.
После этого остаётся только полюбоваться на результаты своего труда, дав команду перезагрузки:
# reboot
И авторизовавшись в панели дисплейного менеджера MDM.
Наинужнейшие пакеты
После авторизации перед глазами предстаёт среда Cinnamon… если бы я сказал, что во всей красе, это было бы неправдой — красу ещё нужно заслужить своими деяниями. Но перед этим требуется обеспечить её полноценный функционал, установив, опять же пока в консоли, минимально необходимые дополнительные пакеты:
$ apt install gnome-terminal gnome-screenshot gedit eog gucharmap
Будучи унаследованными от GNOME 3, они формально не являются частью среды Cinnamon, но обычно включаются в её состав как штатные утилиты соответствующего назначения. После чего можно переходить в тот виртуальный терминал, в котором запущена среда Cinnamon, и все дальнейшие операции, требующие CLI, выполнять уже в окне эмулятора терминала.
В графическом режиме (и не только в среде Cinnamon) права для запуска графических программ с административными привилегиями обретаются с помощью графической же утилиты gksu
. Но по умолчанию она запускается в режиме su
, то есть требует root’ового пароля (которого у нашей системе нет). Поэтому её необходимо переконфигурировать:
$ gksu-properties
И в появившемся окне выбрать аутентификацию в режиме sudo
:
Только после этого утилиты типа mintbackup
, mintinstall
, mintsources
и mintupdate
заработают нормально.
Далее я в обязательном порядке избавляюсь от кириллических имён в домашнем каталоге. Для чего сначала устанавливается пакет:
$ apt install xdg-user-dirs-gtk
А потом даётся такая команда:
$ LANG=en_US.utf8 xdg-user-dirs-gtk -f
Она сообщает, что каталоги типа ~/Рабочий стол
, ~/Загрузки
и тому подобные будут переименованы в их английские эквиваленты:
Если с этим согласиться, да ещё и отметить «птицей» боксик Don’t me ask again, от кириллических имён можно будет отделаться раз и навсегда.
Теперь я установил бы некоторые шрифты, нужные мне для настройки среды:
$ apt install fonts-liberation
И некоторые плагины для Nemo, из числа наиболее востребованных:
$ apt install nemo-fileroller nemo-emblems nemo-folder-color-switcher folder-color-switcher python-nemo
И напоследок два пакета административного назначения:
$ apt install gdebi dconf-editor
Первая, будучи графическим фронт-эндом к dpkg
, являет собой полезное дополнение к более универсальному менеджеру пакетов, а вторая необходима для тонкого конфигурирования среды Cinnamon «под себя». Чем заняться сейчас — самое время.
Наипервейшие настройки
Прежде чем начинать конфигурирование среды, однако, следует обеспечить самую важную часть этого процесса — возможность задействования нескучных обоев. Для чего потребуется опять вставить флешку со всеми предварительно подготовленными материалами (теперь она смонтируется автоматически), открыть терминальное окно и дать в нём следующие команды:
$ sudo cp /media/alv/UUID###/backgrounds/alv /usr/share/backgrounds/ $ sudo cp /media/alv/UUID###/alv.xml /usr/share/cinnamon-background-properties/
Теперь новые нескучные обои будут доступны через соответствующий модуль Центра приложений (он же Системные настройки). С последнего, кстати, и стоит начать конфигурирование графической среды. Я этот процесс описывать здесь не буду — он рассмотрен в соответствующем очерке. А обращусь к настройкам через редактор dconf.
Собственного говоря, настройка через редактор dconf тоже описана достаточно подробно (ИМХО, разумеется) — это во-первых. А во-вторых, настройки среды сохраняются в базе данных ~/.config/dconf/user
, который также можно утянуть из заранее подготовленной подборки конфигов. Однако я уделю этому вопросу некоторое внимание исключительно ради демонстрации возможностей при первичной настройке системы. Что отнюдь не означает предложения точно воспроизводить мои действия — в этом случае проще как раз просто скопировать упомянутый выше файл. Суть же процесса как раз, напротив, в заточке системы «под себя». Что и иллюстрируется на примере моих собственных действий, разумеется. Далее на скриншотах изменённые пункты выделены полужирным шрифтом.
Итак, запустив редактор dconf, я проследовал по схеме org.cinnamon.desktop.session
, где включил управление сессиями через logind
— это обеспечивает, в частности, возможность переключения в ждущий (suspend) или спящий (hibernate) режимы:
Далее, по схеме org.gnome
, я выполнил настройки для некоторых из ранее установленных приложений GNOME, например, в org.gnome.gnome-screenshot
— для программы снятия скриншотов:
И после этого обратился к настройкам файлового менеджера Nemo. Для начала включив по схеме org.nemo.icon-view
компактное представление пиктограмм в нём:
В схеме org.nemo.preferences
были включены сначала «однокликовый» режим для действий мышью и показ всех действий в контекстом меню:
Затем там же был откорректирован набор пиктограмм в панели инструментов Nemo:
И наконец, включаются всплывающие подсказки для пиктограмм и пунктов списка, а также их представление:
На чём в первом приближении настройки можно считать законченными.
Итоги
В результате всех действий, описанных в этом и предыдущем очерках, получилась очень компактная система — в установленном виде она занимает 2,3 ГБ и заведомо не содержит ни одного лишнего приложения. Правда, в ней пользовательских приложений и нет почти от слова «вообще» — вряд ли можно считать за таковые фактически обязательные компоненты любой интегрированной среды, перечисленные ранее.
Тем больше степеней свободы открывается перед применителем, желающим использовать исключительно собственные наборы программ, не подвергаясь никакому принуждению со стороны майнтайнеров дистрибутивов. А потому данная система вполне подходит в качестве базы для построения собственных программных комплексов, в том числе и узко-специализированных. И, как я уже говорил в предварительном очерке на эту тему, так и просится быть запечатлённой в виде образа как минимум Live-носителя, а то и носителя установочного.
Первая задача была успешно решена с помощью пакета refractasnapshot
, о чём я расскажу в ближайшее время. С выполнением второй задачи возникли некоторые сложности, так что рассказ о ней последует, когда (и если) они будут преодолены.