UCK: обзор
UCK: обзор
Программа UCK в виде одноимённого пакета имеется в официальном репозитории, и потому может быть установлена любым из стандартных способов. После этого в секции Администрирование главного меню Cinnamon появляется пункт, который, как ни странно, называется Ubuntu Customization Kit, через который эту программу и можно запустить. Но прежде чем смотреть, что она после этого делает, попробуем представить, что у неё внутре.
Всякий, кому приходилось заниматься модификацией существующего установочного образа какого-либо дистрибутива, представляет себе основные этапы этого процесса:
• монтирование образа как loop-устройства;
• развёртывание её файловой системы — нынче все дистрибутивы используют какой-либо механизм компрессии, в частности в убунтоидах это SquashFS;
• монтирование в loop-систему как связанных (bind) таких служебных, но абсолютно необходимых каталогов материнской системы, как /dev, /sys и, на всякий случай, /proc;
• выполнение операции chroot в loop-каталог, становящийся таким образом корневым;
• выполнение в chroot-окружении необходимых действий по удалению ненужных пакетов и установке необходимых;
• выход из chroot-окружения и обратная запаковка loop-каталога;
• размонтирование loop-устройства и создание из него загрузочного iso-образа с помощью isolinux.
Интуитивно понятно, что UCK не делает ничего иного, кроме перечисленного — он просто автоматизирует описанный процесс, делая его этапы почти незаметными для применителя.
Основные исполняемые файлы пакета uck (а их 16 штук) собраны, понятное дело, в каталоге /usr/bin и имеют префикс uck-*. Все они являются самыми обычными шелл-скриптами, причём по их именам легко догадаться о назначении каждого. «Головным», то есть запускающим весь процесс скриптом является /usr/bin/uck-gui — именно он вызывается через пункт меню Администрирование -> Ubuntu Customization Kit:
А через редактор меню можно посмотреть на его свойства:
По скриншоту можно догадаться о присутствии в строке запуска опции --wait-before-exit, отвечающей за ожидание нажатия Enter перед выходом из программы после успешного завершения её работы.
Кстати говоря, при неуспешном завершении, то есть возникновении ошибки по любой причине (например, нехватке места на целевом устройстве), ничего не происходит, кроме остановки работы. Никаких возвратов назад не предусмотрено, остаётся только закрывать главное терминальное окно программы (о котором далее) и начинать всё сначала. Так что, учитывая длительность распаковки SquashFS и необходимость удаления образовавшихся в процессе файлов (а их — многие десятки тысяч, что на файловой системе, например, XFS затягивается очень надолго), лучше действовать аккуратно и по возможности не ошибаться.
Команда uck-gui запускается от лица обычного пользователя — пароль для доступа к административным привилегиям запрашивается только тогда, когда они на самом деле потребуются. Кроме указанной --wait-before-exit, она имеет ещё как минимум две опции. Первая, -m, обеспечивающая кеширование модифицированных частей образа, работает, как сказано в man (1) uck-gui, не всегда, и потому в стандартной ситуации не используется.
Вторая опция также штатно не задействована, но она может оказаться важной для применителя. Это опция remaster-dir, определяющая рабочий каталог для UCK, отличный от умолчального ~/tmp. Через редактор меню Cinnamon я переопределил этот каталог как ~/data/my-mint, поэтому итоговая команда для запуска UCK через меню приобрела такой вид:
uck-gui --wait-before-exit /home/data/my-mint
Кроме запуска процесса, сценарий uck-gui отвечает, в том числе, и за выбор типа десктопа — unity, gnome, kde, или others. Однако попытки вносить здесь какие-либо изменения (например, пополнение списка доступных десктопов) никакого результата за собой не повлекут. То есть добавленные десктопы появятся в меню их выбора, но ничего не изменится.
Потому что на самом деле кроме исполняемых скриптов в каталоге /usr/bin, основным компонентом UCK является также каталог /usr/lib/uck/. А в нём, кроме всего прочего — файл /usr/lib/uck/customization-profiles/localized_cd/customize, представляющий собой исполняемый шелл-сценарий, который отвечает в том числе и за вызов терминальной программы. Запомним его — в некоторых случаях он подлежит ручному редактированию.
Впрочем, всё сказанное проще продемонстрировать на примере конкретной сборки своего варианта дистрибутива, чем мы сейчас и займёмся.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Обзор
Обзор Солидный набор встроенных опций совершенно не мешает Таблицам оставаться простыми и понятными, давая пользователям возможность начать работу с данными без каких-либо знаний об особенностях системы. Выбирая команду «Новый – Таблица» в основном экране Документов
Обзор
Обзор Первое, что видит пользователь, зашедший по очевидному адресу http://calendar.google.com, – предложение ввести базовую информацию о себе: имя пользователя, которое будут видеть участники ваших публичных календарей (о них чуть позже), а также ваш основной часовой пояс. Ввели?
Обзор
Обзор В самом деле – почему Reader? Дело в том, что адекватного перевода для этого английского слова так и не нашлось. Читатель? Чтец? Все не то! В итоге было принято решение оставить название без перевода, а русские пользователи уже привыкли к незнакомому термину «Ридер».С
Обзор
Обзор Сервис под названием «Сайты» позволяет любому желающему, не обладающему даже начальными знаниями о премудростях языка разметки HTML, не говоря уже о более продвинутых технологиях и языках вроде PHP, Python или Java, самостоятельно создавать отлично выглядящие и
25.1. Обзор
25.1. Обзор qdbm предлагает несколько различных API-интерфейсов. Самый основной из них, Depot, является низкоуровневым API, который мы и рассмотрим в этой главе. Интерфейс Curia позволяет разбивать базу данных на несколько файлов (для повышения масштабируемости или с целью работы в
31.2. Обзор
31.2. Обзор Потоки обеспечивают двустороннее соединение между процессом и драйвером, как показано на рис. 31.1. Хотя нижний блок на этом рисунке мы и называем драйвером, его не следует ассоциировать с каким-либо аппаратным устройством, поскольку это может быть и драйвер
UCK: обзор
UCK: обзор Программа UCK в виде одноимённого пакета имеется в официальном репозитории, и потому может быть установлена любым из стандартных способов. После этого в секции Администрирование главного меню Cinnamon появляется пункт, который, как ни странно, называется Ubuntu Customization
R.1.1 Обзор
R.1.1 Обзор Это руководство содержит следующее:1. Введение.2. Соглашения о лексических понятиях.3. Основные понятия.4. Стандартные преобразования.5. Выражения.6. Операторы.7. Описания.8. Описатели.9. Классы.10. Производные классы.11. Контроль доступа к членам.12. Специальные
Обзор XML
Обзор XML Язык XML предназначен только для работы с данными. Точнее говоря, он предназначен для создания набора сведений, или метаданных, которые описывают данные. Рассмотрим приведенный ниже простой фрагмент кода на языке HTML.<form name="frmMain" action="mypage.aspx" method="POST"> </form>Этот
Обзор тем
Обзор тем — Риски. В Chrome OS много областей для тестирования: браузер, интерфейс взаимодействия с пользователем, прошивка, оборудование, поддержка сети, синхронизация данных пользователя, автоматические обновления и даже специфическое оборудование, созданное внешними
12.1.1. Обзор
12.1.1. Обзор В 2001 году Tk был, наверное, самым популярным графическим интерфейсом для Ruby. Он был первым и долгое время входил в состав стандартного дистрибутива Ruby. Сейчас он, пожалуй, не так распространен, но все еще широко применяется.Кто-то скажет, что Tk уже устарел. Те, кому
12.2.1. Обзор
12.2.1. Обзор Ruby/GTK2 — это библиотека, позволяющая приложениям, написанным на языке Ruby, обращаться к средствам библиотеки GTK+ 2.x. GTK+ распространяется в исходных текстах на условиях лицензии GNU LGPL, поэтому может бесплатно использоваться в коммерческих приложениях.Как и в
12.4.1. Обзор
12.4.1. Обзор Привязки QtRuby — результат работы многих людей, прежде всего Ричарда Дейла (Richard Dale). Эшли Уинтерс (Ashley Winters), Жермен Гаран (Germain Garand) и Давид Форе (David Faure) написали большую часть инструмента генерации кода привязки (он называется SMOKE). Другие отправляли отчеты о
11.1. Обзор
11.1. Обзор Демонстрационная программа является частью пакета мониторинга Linux-системы и предоставляет следующие возможности.? Программа реализует минимально необходимые функции Web-сервера. Локальные и удаленные клиенты получают доступ к системной информации, запрашивая
Обзор
Обзор Модули фирмы Twelve Tone Systems, Inc.Пакет DirectX-эффектов Cakewalk Audio FX1 оперирует при обработке звука 32-разрядными числами с плавающей точкой и включает в себя четыре модуля динамической обработки сигнала: компрессор/гейт, экспандер/гейт, лимитер и отдельный процессор