В одной из статей я написал, как можно легко создать свой собственный установочный ISO-образ Slackware. Там я описывал как можно в стандартный установочный образ Slackware добавить свою группу пакетов. Но есть ещё один вариант — это решения от Эрика (AlianBob) liveslak.
Первое, что нужно сделать — это клонировать репозиторий:
git clone https://git.liveslak.org/liveslak/
Давайте немного рассмотрим, что находится в этом репозитории. Я опишу только те объекты, которые нам потребуются для создания своего образа. С остальным я до конца сам не разобрался, а просто переводить документацию не вижу смысла, там все описано вполне подробно.
- pkglists — папка содержит файлы со списком пакетов, которые будут установлены в ISO-образ при сборке
- local64 — папка в которую можно положить пакеты, которые необходимо дополнительно установить
- make_slackware_live.sh — скрипт сборки образа
- make_slackware_live.conf — файл настроек для сборки
Рассмотрим скрипт сборки образа make_slackware_live.sh. Чтобы понять его работу, нужно посмотреть на секцию в которой определяются шаблоны live-образа:
# List of Slackware package series - each will become a squashfs module:
SEQ_SLACKWARE="tagfile:a,ap,d,e,f,k,kde,l,n,t,tcl,x,xap,xfce,y pkglist:slackextra"
# Stripped-down Slackware with XFCE as the Desktop Environment:
# - each series will become a squashfs module:
SEQ_XFCEBASE="${MINLIST},noxbase,x_base,xapbase,xfcebase local:mcpp"
# Stripped-down Base Slackware:
SEQ_LEAN="pkglist:${MINLIST},noxbase,x_base,xapbase,xfcebase,slackpkgplus,z00_plasma5supp,z01_plasma5base"
# Stripped-down Slackware DAW with Plasma5 as the Desktop Environment:
# - each series will become a squashfs module.
# Note that loading the modules needs a specific order, which we force:
SEQ_DAW="pkglist:${MINLIST},noxbase,x_base,xapbase,slackpkgplus,z00_plasma5supp,z01_plasma5base,z01_plasma5extra,z01_swdev,z02_alien4daw,z02_alienrest4daw,z03_daw"
# Slackware with 'ktown' Plasma5 instead of its own KDE (full install):
# - each will become a squashfs module:
SEQ_KTOWN="tagfile:a,ap,d,e,f,k,l,n,t,tcl,x,xap,xfce,y pkglist:ktown,ktownalien,slackextra,slackpkgplus"
# List of Slackware package series with MSB instead of KDE (full install):
# - each will become a squashfs module:
SEQ_MSB="tagfile:a,ap,d,e,f,k,l,n,t,tcl,x,xap,xfce,y pkglist:mate,slackextra,slackpkgplus"
# List of Slackware package series with Cinnamon instead of KDE (full install):
# - each will become a squashfs module:
SEQ_CIN="tagfile:a,ap,d,e,f,k,l,n,t,tcl,x,xap,xfce,y pkglist:cinnamon,slackextra,slackpkgplus"
# Slackware package series with Gnome3/systemd instead of KDE (full install):
# - each will become a squashfs module:
SEQ_DLACK="tagfile:a,ap,d,e,f,k,l,n,t,tcl,x,xap pkglist:dlackware,slackextra,systemd"
# List of Slackware package series with StudioWare (full install):
# - each will become a squashfs module:
SEQ_STUDW="tagfile:a,ap,d,e,f,k,kde,l,n,t,tcl,x,xap,xfce,y pkglist:slackextra,slackpkgplus,studioware"
В скрипте преднастроены следующие шаблоны:
SLACKWARE, LEAN, KTOWN, DAW, XFCE, MATE, CINNAMON, STUDIOWARE, DLACK
Существует 2 варианта: можно отредактировать существующий шаблон, а можно создать свой список в файле make_slackware_live.conf.
Скрипт поддерживает следующие варианты указания источников пакетов:
- tagfile:<имя группы пакетов> — те группы, которые мы видим в меню установки Slackware
- pkglist:<имя файла со списком пакетов> — файл из папки pkglists
- local:<имя папки> — и подпапки в директории local64 (или local для 32х)
Теперь рассмотрим файл make_slackware_live.conf. В нем можно настроить разные параметры сборки, Такие как имя файла, имя пользователя, пароль пользователя и пароль root. Но нас будут интересовать два параметра управляющих списком пакетов из которых будет создан образ.
- LIVDE — задает шаблон, если шаблон не найден то используется свой спискок
- SEQ_CUSTOM — собственный список шаблонов установки
Как и в предыдущем примере я соберу образ с рабочим столом cutefish. Для этого задам следующие параметры в файле настроек:
LIVEDE="CUTEFISH"
SEQ_CUSTOM="tagfile:a,ap,d,e,f,k,l,n,t,x,xap pkglist:slackpkgplus,z00_plasma5supp,z01_plasma5base local:cutefish"
Я взял все группы пакетов кроме kde и xfce, списки для slackpkgplus и plasma5 и папку cutefish из local64. После этих настроек можно запустить сборку. Опция f — указывает принудительно пересоздать все модули. Так как я много экспериментировал для надежности указываю. Без неё будут задействованные заранее созданные и сохраненные модули. Модуль это группы пакетов собранные в отдельный squashsf-файл. (подробнее лучше почитать в документации).
./make_slackware_live.sh -f
Процесс сборки занимает продолжительное время, но после сборки в каталоге /tmp будет создан файл ISO-образа.
-- Live ISO image created:
- CDROM max size is 737.280.000 bytes (703 MB)
- DVD max size is 4.706.074.624 bytes (4.38 GB aka 4.7 GiB)
-rw-r--r-- 1 root root 5740953600 Aug 2 20:43 /tmp/slackware64-live-cutefish-current.iso
-rw-r--r-- 1 root root 72 Aug 2 20:43 /tmp/slackware64-live-cutefish-current.iso.md5
Запустим его в VirtualBox и проверим результат:
Хочется использовать разные настойки при сборке образов. Но к сожалению в параметрах скрипта нельзя указать файл настроек, который нужно использовать, это не удобно. Но можно запустить скрипт следующим образом, указав путь к файлу настроек через переменную:
CONFFILE=./make_cutefish_live.conf ./make_slackware_live.sh -f
По ссылкам ниже, можно загрузить готовую live сборку с яндекс диска илу google drive:
Не обещаю, что буду все время хранить их, но пока доступны.
Дополнение
Выяснилось, что таким образом собранный ISO-образ запускается в VirtualBox и я думаю если записать на диск тоже запустится без проблем. Но если записать на флешку и запустить, возникли ошибки. Но если пересобрать образ использую встроенные шаблоны, ошибок нет. Для этого непосредственно в файле make_slackware_live.sh нужно дополнить строку, я дополнил со сборкой базового набора Plasma5 LEAN.
SEQ_LEAN="pkglist:${MINLIST},noxbase,x_base,xapbase,xfcebase,slackpkgplus,z00_plasma5supp,z01_plasma5base local:cutefish"
В таком варианте сборку можно запустить следующим образом оставив файл настроек без изменений:
./make_slackware_live.sh -f -d LEAN
В заключение
На последок хочется порассуждать дает ли какие-нибудь плюсы использование LiveSlak если установить его, как основную систему. Я бы выделил большая ориентированность на конечного пользователя. А точнее:
- Установка из live режима
- Установщик имеет меньше шагов
- Добавлен шаг добавления пользователя
- Загрузка идет сразу в init 4
- Установлен slackpkg+ и подключены репозитории alienBob
- Активирован режим работы через sudo
Хотелось бы, чтобы Патрик взял на вооружение некоторые наработки, это бы добавило популярности дистрибутиву.
Но хочу заметить что предпочтительнее будет ставить полную установку со всеми пакетами Slackware. Например, в сборке LEAN устанавливаются далеко не все библиотеки и в дальнейшем на это натыкаешься при сборке пакетов.