Алексей Федорчук
Вдохновлённый успехом своей первой пересборки Mint’а с рабочим окружением Cinnamon, я решил повторить процедуру для варианта этого дистрибутива с десктопом MATE. Тем более что эо преследовало не чисто экспериментальные цели, а уже и практические. Водрузив на свою Ноутбучку Mint с Cinnamon’ом и поначалу восхитившись быстродействием, я довольно быстро понял, что эта среда для неё тяжеловата. И решил заменить её на MATE. Конечно, это можно было проделать и без переустановки, но появился повод опробовать самосборный Mint в реальных условия.
Поначалу я потерпел в деле сборки варианта с MATE я потерпел полную фетяску: процесс доходил до стадии выбора Run console application — и обрывался сообщением, что таковая отсутствует: Unable to find any console application. После некоторого размышления я пришёл к выводу, что где-то в недрах UCK, скорее всего при выборе десктопа, прописана терминальная программа, запускаемая для chroot-окружения — та, что является штатной для выбранного десктопа. В Cinnamon’е такой является GNOME Terminal — и никаких проблем не возникает. В MATE же эта роль возложена на MATE Terminal — а этот десктоп в списке выбора не присутствует.
За выбор десктопа отвечает сценарий /usr/bin/uck-gui
, определяющий вид соответствующего меню. Однако лобовая попытка добавить в него ещё и MATE ни к какому результату не привела. Порывшись в недрах файловой иерархии, я обнаружил файл /usr/lib/uck/customization-profiles/localized_cd/customize
, представляющий собой исполняемый шелл-сценарий, определяющий, в том числе, и терминальную программу, запускаемую при выборе варианта other таким образом:
{ echo "Starting console application..." CONSOLE_APP=`which konsole` CONSOLE_APP_OPTIONS=(--caption "UCK customization console" -e /bin/bash) if [ "$CONSOLE_APP" = "" ]; then CONSOLE_APP=`which gnome-terminal` CONSOLE_APP_OPTIONS=(-t "UCK customization console" -e /bin/bash) fiif [ "$CONSOLE_APP" = "" ]; then CONSOLE_APP=`which xfce4-terminal` CONSOLE_APP_OPTIONS=(-T "UCK customization console" -e /bin/bash) fi if [ "$CONSOLE_APP" = "" ]; then CONSOLE_APP=`which lxterminal` CONSOLE_APP_OPTIONS=(-t "UCK customization console" -e /bin/bash) fi if [ "$CONSOLE_APP" = "" ]; then CONSOLE_APP=`which xterm` CONSOLE_APP_OPTIONS=(-title "UCK customization console" -e /bin/bash) fi if [ "$CONSOLE_APP" = "" ]; then dialog_msgbox "Failure" "Unable to find any console application" else eval `dbus-launch --sh-syntax --exit-with-session 2>/dev/null` $CONSOLE_APP "${CONSOLE_APP_OPTIONS[@]}" RESULT=$? fi }
То есть при отсутствии явного указания на терминал последовательно перебираются варианты: konsole
, gnome-terminal
, xfce4-terminal
и lxterminal
. Если ни одной из этих терминальных программ не обнаруживается — запускается xterm
, который по идее имеется в любой системе с Иксами, кроме… правильно, кроме Mint’а, разработчики которого решительно избавляются от такого рода атавизмов. И потому в данном случае следует сообщение об ошибке. Так что для решения проблемы достаточно было добавить в указанную конструкцию (где-нибудь до последней её секции с сообщением об ошибке) такие строки:
if [ "$CONSOLE_APP" = "" ]; then CONSOLE_APP=`which mate-terminal` CONSOLE_APP_OPTIONS=(-t "UCK customization console" -e /bin/bash) fi
После этого терминал с chroot-окружением благополучно запустился, и можно было заняться удалением ненужных пакетов и установкой пакетов нужных. Что я устанавливал, и что удалял — описано в предыдущей заметке. Здесь отмечу только, что по завершении обеих процедур объём корневого каталога в chroot-окружении составил 3.4 ГБ. Из чего в итоге был сгенерирован iso-образ размером в 1 ГБ — против полутора гигабайт образа исходного. Оставалось его установить — что я сначала проделал в виртуальной машине, для проверки.
Установка прошла без сучка, без задоринки — точно так же, как ранее неоднократно описывалось на этих страницах (например, здесь). И в результате неё получилась компактная, по нынешним временам, система, которая заняла 3,6 ГБ. Как и во время первого опыта, она была русифицирована (насколько русифицирован сам по себе MATE). За исключением Firefox’а, который разговаривал исключительно по английски (в заметке о моей Прелести причина этому была указана). Как и в прошлый раз, всё вылечилось путём тотального обновления системы через mintupdate
.
То есть в итоге всё кончилось хорошо — можно было приступать к установке своего самосбора на Ноутбучку. Однако, помимо положительных эмоций, я получил и отрицательные, испытав жестокое разочарование в XFS, что будет темой отдельной заметки.