Выбрать главу

Формат бинарных пакетов в SLS был предельно прост – tar-архив, компрессированный с помощью Gzip или compress, возможно – с постинсталляционным сценарием. Для установки и удаления пакетов использовалась утилита sysinstall – предтеча всех последующих систем пакетного менеджмента. Которая не только разворачивала архив и инкорпорировала его компоненты в файловую систему, но и фиксировала его в специальной базе данных – на предмет последующего удаления, если таковое потребуется. Хотя о контроле зависимостей тогда речи ещё и не возникало.

Прекращение разработки SLS связывается с его переходом на формат бинарных файлов ELF вместо общепринятого тогда в Linux и вообще в UNIX формата a.out. Хотя ELF был более «прогрессивен», нежели a.out, тогда это оказалось шагом преждевременным. Но, возможно, дело было просто в потере интереса разработчика к своему произведению – ситуация, с которой мы ещё не раз столкнёмся при знакомстве с историей Open Source.

О SLS ныне мало кто помнит, однако роль его в дальнейшем дистроении трудно переоценить: именно он лёг в основу старейшего дистрибутива из числа доживших до наших дней – Slackware.

Slackware: первый шаг к Linux’у для всех

Итак, дистрибутив SLS умер. Но душа его жила. Ещё в период его активного развития Патрик Фолькердинг принял SLS за основу своей Linux-системы, названной Slackware, первая версия которой была обнародована 17 июля 1993 года и с тех пор успешно развивается по сей день.

Именно со Slackware началась и история Linux-дистрибуции в организационном, так сказать, аспекте. Сразу же после своего появления Slackware, помимо обычных сетевых каналов, начала распространяться на CD известной медиа-фирмой Walnut Creek.

Slackware в своём внутреннем устройстве унаследовала первозданную простоту SLS. И не только унаследовала – именно простоту Патрик возвёл в основополагающий принцип построения системы. Реализация его выразилась в сохранении BSD-стиля инициализации, простого формата пакетов, и «идеологически обусловленного» отказа от контроля их зависимостей.

Создававшиеся чуть позже (но в масштабах эпохи – практически одновременно) дистрибутивы Debian и Red Hat пошли по прямо противоположному пути: всё более усложняющаяся со временем схема инициализации в стиле System V, включение максимально большого количества метаинформации в структуру пакетов и все более изощрённые формы контроля их зависимостей.

Новшествами Slackware были:

   • собственная программа инсталляции – меню-ориентированная, работающая в псевдографическом режиме, похожая по виду и родственная по духу создававшейся в то же самое время утилите sysinstall из FreeBSD;

   • выделение категорий пакетов – базовой системы (A), консольных приложений (AP), средств разработки (D), оконной системы X и ее приложений (X и XAP, соответственно), и так далее;

   • набор утилит для управления индивидуальными пакетами, не предусматривающего, однако, никакого контроля зависимостей.

Время показало провиденциализм подхода Патрика – Slackware живёт и развивается вот уже 15 лет, не поступаясь своими принципами, сохраняя редкую по нынешним временам компактность, лишь обновляя версии ядра, компоненты базовой системы и приложений. Сохраняется и устойчивый круг пользователей этого дистрибутива.

Отступление. Многие линуксоиды моего и более старшего поколения начинали свою дорогу в Linux со Slackware – и ничуть об этом не жалеют, вне зависимости от того, какие дистрибутивы бы они не использовали в дальнейшем. Знакомство с этой системой дает совершенно неоценимый опыт, позволяющий найти пути для решения любых проблем в любых других дистрибутивах. И потому крылатая фраза «изучая Slackware, ты изучаешь Linux» имеет под собой все основания.

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

Этой особенностью формата пакетов Slackware активно пользуются все, у кого возникает к тому желание или необходимость, приспосабливая к ней любые системы управления пакетами. Так, мне доводилось слышать об удачных попытках применения в Slackware системы портов, заимствованой из FreeBSD. Для Slackware поддерживается система pkgsrc – портообразная система, разработанная первоначально для NetBSD. На базе синтеза Slackware и pkgsrc активно развивается несколько дистрибутивов, например, Voltalinux и Draco GNU/Linux.

Механизм apt-get, обеспечивший славу Debian, а в дальнейшем немало способствовавший и популярности семейства Ubuntu, также был адаптирован для использования в Slackware: здесь он получил название slapt-get. На основе синтеза Slackware и пакетного менеджера pacman, происходящего из Archlinux (кстати, во многом – идейного наследника Slackware), возник дистрибутив Frugalware.