Анатомия Slax: Модули
Итак, более-менее разобравшись с преимуществами и структурой дистрибутива Slax, пользователь решает скомплектовать его на свой вкус. Такое желание возникнет несомненно, т.к. не все, любят, например, KDE, которым дистрибутив оснащен по умолчанию. И уж конечно захочется дополнить дистрибутив особыми возможностями, поменять обои рабочего стола и т.п. Для этого как раз и служат модули.
Модули — файлы с расширением lzm. Это аналоги пакетов в других дистрибутивах. Практически это переупакованные пакеты Linux Slackware. Только они не устанавливаются, а активизируются. Активизировать их можно в момент загрузки, положив в каталог $SLAX_HOME/slax/base или указав нужные в конфигурационном файле меню. Можно «поднять» программу и на уже работающей системе, например:
(запускается от имени root'а).
О том, как перечислить активируемые при загрузке модули в конфиге мы еще поговорим, а пока сосредоточимся на другой проблеме — где раздобыть нужные программы для Slax?
Первый способ очевиден: на соответствующем сайте. Действительно, модули там красиво разложены по категориям, есть механизм поиска. Нужен графический редактор Gimp? Без проблем. Свежий Python? Пожалуйста. Библиотеки, SDK, темы рабочего стола — много чего выложено. И все-таки есть несколько причин, по которым не всегда стоит искать модули на сайте Slax. Во-первых, есть там далеко не всё, и это понятно: процесс создания и обмена модулями ведется энтузиастами и пополняют они эту коллекцию довольно бессистемно. Во-вторых, далеко не все модули успевают пройти проверку на безопасность. В-третьих, к комплектации модулей создатели подходят довольно анархически. Могут, например, запузырить пакет Pastscript в пакет cups (мол, чтобы зависимости удовлетворить). Я, например, не люблю такой мешанины. Пусть модули соответствуют пакетам Slackware, на их упорядочивание ПатрикБох затратил слишком много усилий, чтобы всё это похерить. Тем не менее, скачать с сайта крупные модули, с изготовлением которых могут быть сложности — вполне нормальное решение. Я взял оттуда OpenOffice, тот же Python, русифицированный Firefox и т.п.
Второй способ — изготовить модуль из каталога. Он хорош для тюнинговки. Например, хотим создать пользователя и задать ему пароль:
Т.е. создаем временный каталог, создаем в нем файлы в соответствии с корневой структурой (/etc, /home), наполняем их нужным содержимым, устанавливаем права и прочие атрибуты и упаковываем утилитой dir2lzm.
Третий способ — изготавливать модули Slax из пакетов Slackware. Slax, как следует из названия, произошел от Slackware самым непосредственным образом, так что соответствие между пакетами и модулями очень хорошее. Итак, берем модуль Slackware, применяем к нему утилиту tgz2lzm и вуаля!:
Нужно отметить, что в последней, 13-й версии Slackware пакеты заархивированы в формате txz. Их утилита tgz2lzm не обрабатывает, так что нужно сначала преобразовать в tgz и только потом в lzm. Как это сделать — опишу в отдельном топике, т.к. эта тема интересна сама по себе и выходит за рамки Slax. Но можно найти и пакеты в старом формате, т.е. tgz. Лучший ресурс для этого — packages.slackverse.org/ (ИМХО).
Кстати, можно создавать модули и из rpm, только через посредствующее звено:
В заключение — о том, как произвести обратную операцию, т.е. вытащить содержимое модуля в каталог, чтобы что-то в нем (модуле) подправить и потом опять запаковать:
Инструменты — tgz2lzm, dir2lzm, lzm2dir, activate, deactivate — находятся в каталоге $SLAX_HOME/tools. Для удобства можно скопировать их куда-нибудь, где ОС может их легко найти, например в /usr/bin (в случае, если работаете не из Slax, а из другого дистрибутива).
Модули — файлы с расширением lzm. Это аналоги пакетов в других дистрибутивах. Практически это переупакованные пакеты Linux Slackware. Только они не устанавливаются, а активизируются. Активизировать их можно в момент загрузки, положив в каталог $SLAX_HOME/slax/base или указав нужные в конфигурационном файле меню. Можно «поднять» программу и на уже работающей системе, например:
activate gimp.lzm
(запускается от имени root'а).
О том, как перечислить активируемые при загрузке модули в конфиге мы еще поговорим, а пока сосредоточимся на другой проблеме — где раздобыть нужные программы для Slax?
Первый способ очевиден: на соответствующем сайте. Действительно, модули там красиво разложены по категориям, есть механизм поиска. Нужен графический редактор Gimp? Без проблем. Свежий Python? Пожалуйста. Библиотеки, SDK, темы рабочего стола — много чего выложено. И все-таки есть несколько причин, по которым не всегда стоит искать модули на сайте Slax. Во-первых, есть там далеко не всё, и это понятно: процесс создания и обмена модулями ведется энтузиастами и пополняют они эту коллекцию довольно бессистемно. Во-вторых, далеко не все модули успевают пройти проверку на безопасность. В-третьих, к комплектации модулей создатели подходят довольно анархически. Могут, например, запузырить пакет Pastscript в пакет cups (мол, чтобы зависимости удовлетворить). Я, например, не люблю такой мешанины. Пусть модули соответствуют пакетам Slackware, на их упорядочивание ПатрикБох затратил слишком много усилий, чтобы всё это похерить. Тем не менее, скачать с сайта крупные модули, с изготовлением которых могут быть сложности — вполне нормальное решение. Я взял оттуда OpenOffice, тот же Python, русифицированный Firefox и т.п.
Второй способ — изготовить модуль из каталога. Он хорош для тюнинговки. Например, хотим создать пользователя и задать ему пароль:
useradd -d /home/uzwer -s /bin/bash uzwer
passwd uzwer <устанавливаем пароль>
mkdir -p /tmp/uzwer/etc /tmp/uzwer/home/uzwer
chown uzwer /tmp/uzwer/home/uzwer
cp /etc/passwd /tmp/uzwer/etc
cp /etc/shadow /tmp/uzwer/etc
dir2lzm /tmp/uzwer $SLAX_HOME/slax/base/passwd.lzm
Т.е. создаем временный каталог, создаем в нем файлы в соответствии с корневой структурой (/etc, /home), наполняем их нужным содержимым, устанавливаем права и прочие атрибуты и упаковываем утилитой dir2lzm.
Третий способ — изготавливать модули Slax из пакетов Slackware. Slax, как следует из названия, произошел от Slackware самым непосредственным образом, так что соответствие между пакетами и модулями очень хорошее. Итак, берем модуль Slackware, применяем к нему утилиту tgz2lzm и вуаля!:
tgz2lzm /mnt/distrib/slackware/x/gimp-2.6.tgz $SLAX_HOME/slax/base/gimp.lzm
Нужно отметить, что в последней, 13-й версии Slackware пакеты заархивированы в формате txz. Их утилита tgz2lzm не обрабатывает, так что нужно сначала преобразовать в tgz и только потом в lzm. Как это сделать — опишу в отдельном топике, т.к. эта тема интересна сама по себе и выходит за рамки Slax. Но можно найти и пакеты в старом формате, т.е. tgz. Лучший ресурс для этого — packages.slackverse.org/ (ИМХО).
Кстати, можно создавать модули и из rpm, только через посредствующее звено:
rpm2tgz bla-bla-bla.rpm
tgz2lzm bla-bla-bla.tgz bla-bla-bla.lzm
В заключение — о том, как произвести обратную операцию, т.е. вытащить содержимое модуля в каталог, чтобы что-то в нем (модуле) подправить и потом опять запаковать:
mkdir /tmp/bla-bla-bla
lzm2dir bla-bla-bla.lzm /tmp/bla-bla-bla
Инструменты — tgz2lzm, dir2lzm, lzm2dir, activate, deactivate — находятся в каталоге $SLAX_HOME/tools. Для удобства можно скопировать их куда-нибудь, где ОС может их легко найти, например в /usr/bin (в случае, если работаете не из Slax, а из другого дистрибутива).
Комментарии (7)
RSS свернуть / развернутьSergei_T
yababay
Есть также сервис SUSE Studio для сборки собственных дистрибутивов. Инвайт можно запросить на susestudio.com/login, оставив свой email
Sergei_T
yababay
Sergei_T
Sergei_T
Markony
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.