Мой Mint — моя Прелесть. Первый опыт

Алексей Федорчук

В одной из первых заметок о Mint’е 17-м я написал, что в его инсталляции настолько мало лишних программ, что не стоило и заморачиваться с их удалением. Однако тут я несколько покривил душой — лишних (для меня) приложений вполне достаточно. Из своей рабочей системы я их так и не удалил. Но с прицелом на будущее (а похоже, что оно будет продолжаться ещё без малого пять лет) задумал изготовить свой установочный диск этого дистрибутива. На котором не было бы ничего лишнего (повторяю, для меня). И, напротив, были бы все приложения, которые мне так или иначе пришлось доустанавливать.

Задумать-то я задумал, а вот претворить эту задумку в жизнь — всё руки не доходили, да и болезнь печени (в просторечии именуемая ленью) тому не способствовала. Но давешнее обсуждение в Джуйке меня спровоцировало. И я, забыв о печени и прочих делах, занялся изучением вопроса.

В сети можно найти упоминания о трёх инструментах для изготовления собственного дистрибутива на базе Ubuntu и её производных (а Mint, как известно, принадлежит к их числу). Во-первых, это oem-config-remaster — утилита командной строки, позволяющая сделать снапшот установленной системы. Она чрезвычайно гибкая, но требует большой предварительной подготовки в виде установки и кастомизации этой самой системы на отдельном разделе, в виртуальной машине или в chroot-окружении. Ибо снапшотить свою рабочую систему у меня большого желания не было.

Во-вторых, можно найти сведения о программе Ubuntu Builder, имеющей графический интерфейс и позволяющей скомпоновать свой дистрибутив попакетно. Однако следствием было установлено, что нынче такого пакета в репозиториях нет, и куда он делся — неизвестно.

Наконец, в третьих, существует программа Ubuntu Customization Kit, каковая обнаружилась в виде пакета uck. Беглое гугление показало, что это примерно то, что мне нужно. Так что я установил её стандартным способом:

$=> sudo apt install uck

После чего под именем Ubuntu Customization Kit обнаружил её в секции Администрирование. Оставалось приступить к делу. Правда, при первом запуске она пожаловалась на отсутствие каталога ~/tmp и работать дальше отказалась. Пришлось прервать процесс и означенный каталог создать. Результатом чего было сначала появление некоего терминального окна:

uck_01a

А вскоре — и окна пригласительного:

uck_01b

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

uck_02

Следующий шаг — выбор языка интерфейса при загрузке Live-носителя. Здесь я тоже избрал язык родных осин — хотя и был предупреждён, что это может не поддерживаться конкретным релизом кастомизируемой системы:

uck_03

Забегая вперёд, скажу, что так оно и оказалось.

Поскольку в обоих случаях я к рiдной мове добавил ещё и вражью, на следующей стадии мне предложили определиться, которую из них я хочу видеть умолчальной — разумеется, я продолжал гнуть патриотическую линию:

uck_05

Далее было предложено выбрать рабочую среду — Unity, Gnome, KDE или более иную. Так как я планировал собрать свою систему с Cinnamon’ом, именно последний вариант и был отмечен:

uck_06

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

uck_07

Разумеется, ему следовало дать имя:

uck_08

Впрочем, где оно фигурировало в дальнейшем, я так и не понял.

Затем меня спросили, хочу ли кастомизировать образ мануально — разумеется, ответил я, иначе зачем было бы весь огород городить?

uck_09

Следующий вопрос касался Windows-related файлов, типа autorun.inf — и тут я, подобно послу, отвечал yes (хотя, кажется, их на установочном носителе Mint’а и так нет):

uck_10

И на вопрос о создании гибридного образа (то есть пригодного для записи как на OD, так и на USB) я ответил положительно, ибо мой CD/DVD-привод давно уже агонизирует, а новым обзаводиться я не намерен:

uck_11

Далее мне сообщили, что вся необходимая информация собрана, по введении пароля можно приступать к сборке диска, который будет помещён в /home/alv/tmp/remaster-new-files под именем livecd.iso (спрашивается, зачем я придумывал ему осмысленное имя?):

uck_12

Наступил момент сообщить системе пароль:

uck_13

После чего началась распаковка образа, выбранного ранее в качестве исходного:

uck_14

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

uck_15

В результате было открыто ещё одно терминальное окно, chroot’овое (тогда как в первом шли сообщения о ходе процесса):

uck_16

Здесь бы мне следовало притормозиться и запустить apt update && apt upgrade для обновления всего chroot’ового хозяйства — оно было цельнотянуто с исходного образа, вышедшего без малого три месяца назад. Однако я этого не сделал — и в результате получил некоторые проблемы и в ходе сборки своего образа, и после его установки.

Вместо этого я, как можно видеть на предыдущем скриншоте, решил запустить Synaptic. Конечно, можно было обойтись и apt‘ом, но в данном случае Synaptic показался мне наглядней, вот:

uck_17

Хотя что, вы Synaptic’а не видели, что ли? Так что дальнейшее расскажу на словах. Перво-наперво я отметил для удаления всё, что полагал излишками всякими нехорошими: LibreOffice, Gimp, Thunderbird, всю изобильную мультимедию. А заказал установку для меня необходимого — от zsh’а до MPlayer’а. Причём всё время получал сообщения о конфликтах и нарушениях зависимостей. Потом-то я понял, что это было связано с тем, что я поленился (точнее, просто забыл) обновить систему: устанавливаемые вновь пакеты тянули за собой зависимости, которые конфликтовали с компонентами, унаследованными от исходного образа трёхмесячной давности. А тогда просто плюнул и отказался от установки всех конфликтных приложений, в частности, мультимедийных — всё равно образ собирался в сугубо экспериментальных целях, и предназначался не для практической работы, а для установки в виртуалке.

В итоге я выполнил таки удаление ненужного и установку нужного — всё действительно необходимое, типа zsh, Geany, Guake, Shutter, никаких проблем и конфликтов не вызвали. Разумеется, истинный последователь малчега Дениски на этой стадии подумал бы, как прикрутить к будущей системе свои обои. Но я, по своему малодушию, этим заморачиваться не стал, а просто закрыл Synaptic, а вслед за ним и второй терминал, оказавшись снова в предыдущем окне, где резонным было выбрать пункт Continue building:

uck_18

После чего началось исполнение сценариев кастомизации, плавно перешедшее в компрессию системы в виде SquashFS — это оказалось самым долгим делом во всём процессе:

uck_19

Однако всё когда-нибудь кончается — и упаковка SquashFS закончилась сообщением об успехе операции и напоминанием о том, где и под каким именем можно найти её результат:

uck_20

Приняв это к сведению, я узнал, что собранный образ не вместится на стандартный семисотмегабайтный CD: действительно, как потом оказалось, он размахнулся более чем на 900. Но я и не ставил своей целью экономию места: лишь бы ненужные (и никогда мной не используемые) программы не мозолили глаза в меню. Да и по сравнению с 1,3 ГБ исходного образа результат оказался не плохим:

uck_21
Так что я нажал OK, что повлекло закрытие окна сборки. И в первом терминале нажал Enter — в результате закрылся и он:

uck_22

Теперь предстояло полюбоваться плодами своего труда. Для этого я в VirtualBox’е создав виртуальную машину, запустив её с новосозданного LiveCD. Никаких неожиданностей меня здесь не подстерегало — Mint оказался как Mint, с Cinnamon’ом и очень урезанным его меню. Интерфейс системы в Live-режиме оказался английским — но о возможности этого меня честно предупредили:

uck_23

Так что можно было приступать к установке системы, всё в той же виртуалке. Установка прошла без всяких осложнений, ничем не отличаясь от таковой с оригинального диска. Результат её — точная копия образа LiveCD, развёрнутая на «винчестере». Но — уже с русскоязычным интерфейсом:

uck_24

Правда, оказалось, что Firefox сохранил интерфейс англоязычный, и это не лечилось даже таким сильнодействующим средством, как вызов из строки адреса about:config и исправлением значения параметра general.useragent.locale с en-US на ru. Причина оказалась простая: сам Firefox был взят с исходного диска и имел номер версии 28 с чем-то, а пакет локализации соответствовал версии текущей, то есть 31-й. И потому положение было легко исправлено путём тотального обновления системы.

Тогда-то я и понял причину конфликтов во время компоновки образа: не забудь я сделать полный апгрейд в chroot’е, тянутом с исходного образа, никаких проблем бы и не было. Так что сделал зарубку на будущее — дабы к сборке следующего образа подойти во всеоружии. В том числе — и с собственными обоями (что я, хуже малчега Дениски, что ли?). Потому что чую — текущую версию Mint’а мне придётся устанавливать ещё много раз, и не только себе. Ведь до конца света хоть и не миллиард лет, но почти пять. А за это время тоже можно много успеть…

Содержание

Мой Mint — моя Прелесть. Первый опыт: 3 комментария

  1. Здравствуйте, надеюсь отзовётесь на мой вопрос.
    UCK разворачивая образ системы создаёт профиль по адресу /home/user/tmp/remaster-root/home/user, который автоматом называется также как и ваш в котором делается сборка дистриба (то есть если вы делаете на компе под профилем «Алексей» то скрипт создаст аналогичную в развёрнутой системе). Этот (мой) профиль потом запаковывается вместе со всеми потрохами в образ системы. Вопрос как ликвидировать профильную папку, чтобы не нарушить процесс сборки?
    Попробовал о рута зайти через файловый менеджер и удалить эту папку из хомяка, но тогда прерывается работа UCK. Порылся в логах, оказывается программа не может найти папку .gvfs, которая как раз и находится в созданном профиле, по указанному выше адресу.

  2. Увы, именно так и есть. И, насколько я понял, побороть это никак…

  3. Жаль…хм, хотя если UCK это набор скриптов с правилами, которые можно изменить, то если изменить необходимый скриптик, чтобы папка профиля в процессе разворачивания ОС называлась бы как то независимо, например \»user\». Или, ещё лучше, удалялась после выполнения всех работ, так было бы практически идеально)…надо будет покопаться по тырнетам, может чего и найдётся.

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