пятница, 31 декабря 2010 г.

Старик Хоттабыч: "Рецепт DeepStyle предельно прост - дистрибутив делается для себя, и все должно быть просто, легко и надежно"

Данное интервью было подготовлено мной и вчера опубликовано в электронном журнале UserAndLINUX - v11.01(5).

Одним из преимуществ операционной системы GNU/Linux является ее многообразие. Существует огромное множество дистрибутивов отличающихся форматом пакетов, идеологическим подходом или национально-территориальной принадлежностью. Есть и украинские дистрибутивы. Одним из ярких представителей является DeepStyle, созданный на основе самого уважаемого и ортодоксального дистрибутива Slackware. Рассказать о том, как появился DeepStyle и чем он живет сейчас UALinux попросил основателя этого дистрибутива Александра Буханского, более известного в среде украинских линуксоидов как "Старик Хоттабыч".



-- Саша, расскажи как вообще родился DeepStyle?

-- Идея появилась в 2004 году. Хотя со Slackware я работаю очень давно, еще с 1997 года. Причем, когда выходит новая версия дистрибутива я предпочитаю не обновлять систему, а переустановить ее с нуля. Во-первых, это позволяет избежать мелких багов, связанных с "хвостами" от старых версий/пакетов, а во-вторых, просто интересно посмотреть, как новая сборка дистрибутива работает и какие появились новшества. Но при каждой переустановке приходилось делать одни и те же настройки, мелкие и несложные, но с какого-то момента это рутина уже начинает напрягать. В основном - украинская и русская локализация, подключение кириллических раскладок клавиатуры, шрифты и т.д. Поэтому был написан специальный скрипт, решающий все эти проблемы сразу после установки системы одним махом. Естественно, я его выложил в свободный доступ. Кстати, именно открытость и доступность Slackware является главным преимуществом этого дистрибутива. Создатель Slackware Патрик Фолькердинг предлагает пользователям сам пакет, его исходник, скрипт сборки (для непосвященных: рецепт сборки конкретно этой программы под конкретно эту версию Slackware) и дает полную свободу действий. Если что-то не нравится, всегда можно собрать пакет под свои нужды. Причем все пакеты прекрасно документированы. Я бы сравнил Slackware с советской бытовой радиоаппаратурой (приемники, магнитофоны и т.д.), к которой обязательно прилагались электрическая и механическая схемы, что давало возможность, при наличии достаточной "прямизны" рук, самому исправить мелкие (а иногда и не очень) неисправности, ну, или улучшить трошки... ;)

Но при этом подходили к вносимым изменениям с позиции врача, руководствуясь принципом -- "не навреди". Ведь Slackware -- очень стройная и логичная система, поэтому вносить изменения нужно очень аккуратно и несколько раз подумав.

Но, обсуждая эти изменения на форуме Lafox.net, часто звучало мнение, что для целостности изменяемой системы ее лучше "завернуть" в отдельный дистрибутив. К тому времени довольно четко вырисовалась DeepStyle Team (состав группы "в начале пути" http://deepstyle.org.ua/index.php?run=team ), поэтому после обсуждений и споров решили все-таки попробовать. Поначалу DeepStyle представлял собой добротно локализованный Slackware с небольшими дополнениями для упрощения установки и настройки системы.

Постепенно изменений становилось больше, локализация постоянно совершенствовалась, устранялись найденные ошибки. Тогда Slackware можно было установить только с диска, CD-ROM или дискет. По сети можно было поставить только по NFS. Поступали просьбы от пользователей организовать установку по протоколу FTP (да и самому было интересно организовать ;) ). Поразмыслив, нашли выход. Инсталлятор сначала загружал все дерево системы на винчестер, а уже оттуда устанавливал. Но это требовало значительного дополнительного дискового пространства для установки системы. У многих людей винчестер просто не позволял такую роскошь. Тут уже пришлось довольно серьезно залезть в программу установки и переписать многие элементы, добавив собственные скрипты. В результате удалось добиться стабильной сетевой установки без предварительного сохранения установочных пакетов на винчестер. Правда, этот метод потребовал качественного канала связи с источником.

Кстати, несколько позже возможность установки по FTP и HTTP появилась и в официальной версии Slackware, алгоритм установки несколько иной: некий компромисс между сохранением на локальном диске всего дерева пакетов, и установки директом по сети. Попутно добавили возможность установки по USB, а в скором времени она появилась и в официальном Slackware.

Официальной датой рождения DeepStyle можно считать осень 2004 года. К сожалению, у меня не сохранилась самая первая версия дистрибутива. Местом рождения DeepStyle можно смело назвать форум Lafox.net (http://forum.lafox.net/) - без ребят с Лафокса (Tsyma и Alice) и без лафоксовского сообщества ничего бы не было.

-- Часто можно слышать, что система Slackware имеет главный недостаток - она не поддерживает отслеживание зависимостей пакетов. Поэтому часто приходится "танцевать с бубном", выискивая, чего же не хватает той или иной программе.

-- В DeepStyle эта проблема частично решена. Началось с того, что я работал в одной организации, где приходилось довольно часто устанавливать системы разного назначения. Это были и сервера, и рабочие станции. Чтобы упростить установку, еще в 2004 году в основном дереве пакетов были сделаны специальные тег-файлы для сервера и для рабочей станции. Это позволяет при установке сразу задавать определенные наборы пакетов, характерные для той или иной установки, и не выбирать их по одному. Например, для установки на рабочую станцию не нужны серверные программы, а значит можно исключить по тегам софт, который на рабочей станции, мягко говоря, ни к чему. Или другая сторона. Вот нужна сервере графическая оболочка Х? Маловероятно, а тянет за собой довольно много пакетов.

Однажды довелось устанавливать сервер без иксов, но не все работало так, как ожидалось. Когда начали разбираться, оказалось, что для нормальной установки необходимы некоторые библиотеки, входящие в состав иксов. Но ставить более 300 иксовых пакетов ради нескольких библиотек показалось нерационально, а выбирать по одному из такой кучи — ну как-то не очень хочется. К тому моменту активно использовался итальянский репозиторий Slackware. Одно из преимуществ этого репозитария в том, что к каждому пакету, помимо слакбилда (рецепта сборки) прилагается и файл с расширением .dep. В этом файле содержится полный перечень зависимостей, необходимых этому пакету. Это существенно облегчило задачу и позволило организовать установку только определенных библиотек, необходимых тому или иному пакету. Вычислили, чем пользуются итальянцы: специальный shell-скрипт requiredbuilder, который по завершении сборки пакета (или в любое другое время) выстраивает дерево зависимостей и создает dep-файл.

Нельзя не отметить, что для Slackware довольно давно существует пакет slapt-get. Это нечто похожее на apt-get в Debian. Но, на мой взгляд, это не гибкий инструмент, так как ставит либо все зависимости, либо ни одной. А с учетом особенностей организации слаковских пакетов, это не всегда целесообразно. В итоге в системе появляется много лишнего. Но это еще полбеды. А вот когда при удалении одного пакета в небытие уходит без малого полсистемы — это уже серьезно. Кстати, именно желание сделать Slackware-подобный дистрибутив, но с гибкой системой установки, и при этом традиционной стабильностью, стало одним из "двигателей" для создания DeepStyle.

Давайте посмотрим, как сейчас работает DeepStyle. Сначала устанавливаются родные пакеты Slackware, затем ставятся пакеты DeepStyle, а дальше установщик предлагает нам проверить зависимости. Вы можете отказаться (по умолчанию так и есть), но можно без опаски воспользоваться этой возможностью. После проверки будет предложен список пакетов, которые, по мнению системы, не мешало бы установить. Вы вправе установить все или отключить некоторые пакеты, наличие которых вам ТОЧНО не нужно (если вы АБСОЛЮТНО в этом уверены), либо вовсе ничего не устанавливать. Хотелось бы подчеркнуть, что этот механизм отслеживания зависимостей не является ключевым, и носит чисто рекомендательный характер (типа что-то забыли, так напомнит ;) ).

Еще одна особенность: при установке попакетно ("menu" или "expert") в специальном каталоге /var/log/setup/tagfiles сохраняется ваш выбор в виде готовых tag-файлов. Их можно скормить инсталлятору, и повторить такую же установку, но с гораздо меньшими усилиями.

Кстати, в разделе EXTRA* на зеркалах лежит масса интересных пакетов, которые по тем или иным причинам не вошли в официальную сборку Slackware. Например, там есть загрузчик GRUB. Это для тех, кто считает, что в Slackware этого пакета нет. Он есть, но традиционно продолжает использоваться загрузчик LILO.

-- Александр, а ты не думал в DeepStyle сделать основным загрузчиком GRUB?

-- Дело в том, что это не так-то просто, да и не вижу я в этом смысла. Оказалось, что собрать в Slackware GRUB под чистую 64-битную систему не получается. Только под 32-битную систему. Дело в том, что в других 64-битных дистрибутивах, таких как Red Hat, Debian используется GRUB но со специальными 32-битными библиотеками, которых в штатном репозитории Slackware просто нет. А вот LILO легко собирается под 64-битную систему. Тем не менее, существуют мультилибы, собранные Eric Hameleers, с которыми есть возможность установить GRUB на 64-разрядную систему, но я пока не включаю этот загрузчик в основную сборку DeepStyle, хотя в ветке EXTRA он доступен для всех желающих поэкспериментировать.

-- В последнее время пользовательский интерес к DeepStyle несколько снизился. С чем это связано?

-- Для начала давайте разберемся, кого может заинтересовать Slackware
и соответственно, DeepStyle. Это должен быть человек который, образно говоря, любил в детстве разбирать механические игрушки, чтобы понять как они устроены. Slackware-подобные дистрибутивы дают безграничные возможности для тонкой настройки системы, но это требует ручного вмешательства и понимания процесса. А сегодня подавляющее большинство пользователей предпочитают дистрибутивы, требующие минимального вмешательства в процесс установки и настройки системы. Чаще всего мне приходится слышать: -- "дайте мне такой дистрибутив чтобы я его поставил за один-два клика и в нем сразу было все, что мне может понадобиться". Для таких людей гораздо больше подойдет Ubuntu или нечто подобное.

-- Саша, а ты не думал над тем, чтобы сделать DeepStyle максимально дружественным к пользователю?

-- Давай для начала определимся, что под этим подразумевается?

-- Ну хотя-бы простая, быстрая установка.

-- Я считаю, что в нынешнем своем виде установка DeepStyle довольно проста и логична. Установщик Slackware несколько усовершенствован, добавлено немножко интересных "фишек". Например, был переписал конфигуратор LILO, чтобы он поддерживал наглядную возможность выбора из большого числа разделов. Штатный конфигуратор при количестве разделов более 10-12 допускает это, но набирать имя раздела приходится вслепую. Также добавлена возможность установки по сети через прокси-сервер с авторизацией. Ведь во многих организациях выход в сеть настроен только через прокси, и только с авторизацией.

А вот создавать полностью графический интерфейс для установщика я не считаю необходимым. Признаю, в графическом инсталляторе есть и преимущества. Например, очень удобно, когда в одном окне мы видим список предлагаемых пакетов, а в другом рядом - подробное описание выделенной программы. Но, на мой взгляд, минусы, затраты и потери от такого подхода существенно превысят плюсы.

Во-первых, размер инсталлятора сильно увеличится. Сегодня же можно провести инсталляцию системы с небольшой флешки. Во-вторых, DeepStyle не сильно капризничает на старых, маломощную машинах. Поэтому, если только на запуск установщика нужно не меньше 256 мегабайт оперативной памяти, меня такое решение не устраивает.

-- Аргументы веские. А почему бы не предложить на выбор два варианта установки -- текстовый и графический? И пусть пользователь сам выбирает путь, в зависимости от своих пристрастий и конфигурации компьютера.

-- Идея хорошая, но здесь есть чисто человеческий фактор. Мне одному это сейчас не потянуть. В последнее время я практически в одиночку поддерживаю DeepStyle, и довожу до ума следующий релиз. Хотя еще пару лет назад была небольшая команда энтузиастов. Кстати, Сергей, собранные тобой русские manpages до сих пор устанавливаются вместе с системой.

-- Сейчас на официальном сайте проекта (http://deepstyle.org.ua/) можно скачать версию DeepStyle-4.0 RC3. Когда можно ожидать окончательный релиз DeepStyle-4.0?

-- Сейчас уже практически готов DeepStyle-4.0 RC4. Назвать точную дату выхода окончательного релиза версии 4.0 я пока не могу. Есть две причины. Первая - это небольшие недоработки в локализации программ и документации. Вторая — крайне малое количество отзывов пользователей на предыдущие релиз-кандидаты. Хочу отметить, что меня четвертый релиз-кандидат полностью устраивает. На этой системе сегодня работает одна из организаций, -- от рабочих станций до серверов. Причем работает довольно стабильно. Но я должен быть уверен на 100%, что и у других пользователей нет проблем. А для этого мне нужно достаточное количество пользовательских отзывов.

-- Так может просто нет проблем?

-- Маловероятно. Нужен свежий взгляд на систему — тогда и недоработки проявятся ;).

-- С переходом Slackware на KDE 4.x этот дистрибутив уже трудно назвать ориентированным на маломощные компьютеры. При этом DeepStyle всегда позиционировался именно как система для "старых коней". Как это несоответствие решается?

-- А никто не заставляет устанавливать KDE. В Slackware и DeepStyle есть много других оконных менеджеров: Xfce, WindowMaker, BlackBox, FluxBox, AfterStep, IceWM, openbox, LXDE. Замечу, что AfterStep, IceWM, openbox, LXDE в Slackware нет. LXDE - одна из самых свежих сборок. То же касается и других программ. Я стараюсь собирать в DeepStyle самые последние стабильные релизы программ, если это не сказывается на общей стабильности дистрибутива.

Кстати, в DeepStyle есть поддержка NFS 4 прямо из коробки. В Slackware этого нет. Хочу еще раз подчеркнуть, что я стремлюсь учитывать пожелания пользователей, особенно тех, кто не имеет мощных компьютеров. Рецепт DeepStyle предельно прост -- делается дистрибутив для себя и все должно быть просто, легко и надежно. Я сам работаю исключительно в DeepStyle и поэтому предлагаю людям только то, что собрал и проверил лично.

-- Саша, ты общаешься с Патриком Фолькердингом?

-- В последнее время редко. Хотя, был период, в начале 2000-х годов когда Патрик отвечал на каждое письмо и рассказывал, как лучше решить возникающие проблемы. Хочу отметить, что я очень уважаю Патрика. Часто замечал, что он смотрит на несколько шагов вперед, и некоторые его решения, которые поначалу кажутся странными, затем оказываются абсолютно оправданными. Поэтому я привык доверять Патрику. Кстати, мне также очень импонирует уважительное отношение Патрика к создателям программ, входящих в Slackware — патчей накладывается минимум, только самые необходимые. Сам себя он иногда называет "доброжелательным диктатором", так как твердо держит линию развития дистрибутива, не ущемляя при этом ничьих прав и интересов.

-- Slackware это древнейший дистрибутив. Видимо поэтому иногда можно слышать мнение, особенно среди молодежи, что это уже "вчерашний день". Ты можешь с этим согласится?

-- Действительно Slackware - один из первых дистрибутивов Linux. Он родился в 1993 году. За это время сотни дистрибутивов успели появиться и исчезнуть, а Slackware жив и развивается. Для меня Slackware -- это держатель лучших традиций Linux. А говорить о том, что Slackware -- это "старье", могут только люди, не опирающиеся на традиции. Но как известно, дом на песке не построишь, а Slackware имеет очень прочный фундамент в лице многотысячного сообщества и богатой истории.

-- Саша, а откуда появился твой легендарный ник "Старик Хоттабыч"?

-- В 90-х годах людей, общающихся с компьютером "на ты", было не так уж много. На сленге их называли шаманами. И действительно, тогда многие считали искусство работы с компьютером чем-то сродни волшебству. А учитывая мою бороду, в сети, среди программистов и первых украинских линуксоидов за мной закрепился ник "Старик Хоттабыч". Так и пошло.

Не могу не выразить благодарность Lafox.net, всей команде DeepStyle, активным тестерам системы, отдельная благодарность Павлу Марьянову за великолепные переводы, и Роману Дайнеко, который до сих пор предоставляет хостинг для проекта.

Ребят, без вас DeepStyle не состоялся бы.

P.S. Если вам интересно попробовать DeepStyle, то найти его можно найти на официальном сайте http://deepstyle.org.ua/.
Свежие (и не очень ;) ) сборки можно найти тут: ftp://download.deepstyle.org.ua/ .
Высказать свое мнение и получить ответ на любой вопрос от старика Хоттабыча можно по адресу: old.hottab@gmail.com.

Комментариев нет: