slackware

Slackware - это (ака Slackware Way)

История

Во времена первых дистрибутивов, сущевствовал тн SLS, удобный тем, что собирать из исходников там требовалось1) только ядро, все ПО поставлялось уже в бинарном виде, а сжатых tar-болах. Инициализация происходила через скрипты командной оболочки, а в качестве загрузкичка использовался LILO. Пакетного менеджера небыло2). SLS был популярен, но его плохо поддерживали. Студент, использовывший SLS для учебы, задолбавшись при каждом запуске системы чинить ее косяки, создал свою сборку и стал распространять ее анонимно через FTP server. Эта сборка и стала Slackware.

Пакеты

В качестве пакетов тут используются tarballs. Управление пакетами производится так:

# Менеджер пакетов (интерактивные операции с установленными пакетами)
pkgtool
# Запустить текстовый интерфейс для просмотра, настройки и удаления уже установленных пакетов
 
# Установить пакет из tarball
installpkg <path_to_tar>
# --root    задает директорию для установки
# --dry-run вывести предпологаемые действия и не выполнять их
# --backup  создать резервные копии перезаписываемых файлов
 
# Выполнить инструкции для удаления
removepkg <path_to_tar>
# --preserve-конфиги  не удалять конфигурационные файлы из /etc
# --dry-run           вывести предпологаемые действия и не выполнять их
 
# Распаковать содержимое пакета без установки (полезно для просмотра)
explodepkg <path_to_tar>
# --dest <dir>  указать каталог для распаковки
# --list        только показать список файлов внутри архива
 
# Создать tarball-пакет из каталога с исходниками/файлами
makepkg <output_tar> <source_dir>
# --compress <gzip|bzip2|xz>  задать формат сжатия
# --manifest <file>          включить/обновить манифест пакета
 
# Установить новый пакет и удалить остатки старого (обновление/откат)
upgradepkg <path_to_tar>
# --root    задает директорию для установки
# --backup  сохранить перезаписываемые файлы перед заменой
# --dry-run вывести предпологаемые действия и не выполнять их

Для удобства есть ncurses TUI на все это: pkgtool

Так как пакетного мереджера тут нет, ставить ПО и разрешать зависимости нужно руками.

SlackBuild

SlackBuild - это сценарий оболочки (обычно совместимый с bash), который автоматизирует процесс конфигурирования, компиляции и создания пакета Slackware (файлы *.tgz, *.txz, *.tbz) из исходных кодов.

Обобщенное описание процесса

Перед написанием слакбилда стоит провести установку ПО вручную. Это преупредит появление непредсказуемого поведения и всяких багов

Гайд по написанию слакбилдов

Свои слакбилды можно и нужно размещать публично (например, тут), что бы быть полезным членом сообщевства.

Иногда можно встретить предсобранные пакеты, их достаточно установить (installpkg). Обычно они с суффиксом .tgz или .txz.

Управление пакетами

slackpkg

Для упращения3) жизни есть slackpkg. Зеркало выбирается в /etc/slackpkg/mirrors, выбрать можно только одно.

usage:

# Обновить базу пакетов (информацию о пакетах на сервере)
slackpkg update
 
# Поиск пакета
slackpkg search foo
 
# Скачивание и установка пакета
slackpkg install foo

PS инструкция по установке этого чуда

rpm2tgz

Варианты устанвоки ПО, распространяеого в RPM пакетах:

  • Собрать собственный пакет Slackware
  • Скомпилировать и установить прямо из исходного кода
  • Сконвертировать установку из RPM через rpm2tgz

usage:

# Сконвертировать RPM в tgz
rpm2tgz foo-x.x.xx.rpm
 
# Установить полученный tgz
slackpkg install foo

Материалы

1)
в те времена ядро Linux не имело поддержки загружаемых моделуй и драйверы приходилось жестко включать в ядро и компелировать в него. При изменении оборудования приходилось перекомпилировать ядро.
2)
вернее были программы для утановки и удаления ПО, но без разрешения зависимостей
3)
Без slackpkg процесс мог быть таким:
  • Обнаружить в журнале изменений Slackware выпуск обновления.
  • Посмотреть на используемом зеркале Slackware ссылку для загрузки пакета.
  • Загрузить пакет с зеркала Slackware на жёсткий диск.
  • Применить installpkg или pkgtool для установки загруженного пакета.
При помощи slackpkg он сокращается до:
  • Обнаружить в журнале изменений Slackware выпуск обновления для «foo».
  • slackpkg install foo