Сага о Дебиане

Сага о Дебиане Полное имя дистрибутива, о котором я хочу рассказать, — Debian Gnu/Linux. В дальнейшем я для краткости буду называть его просто Дебиан. Почему я предпочитаю именно этот дистрибутив, какие его сильные и слабые стороны, — об этом моя статья.

Дебиан — полностью некоммерческий проект
Точнее, Дебиан — единственный полностью некоммерческий дистрибутив. Дебиан — это не компания с офисом, зарабатывающая себе на жизнь поддержкой и продажей дисков, а просто организованная группа добровольцев, которые не получают от своей работы ничего, кроме стабильного дистрибутива для себя, а также личного удовлетворения. Разработчики Дебиан не занимаются тиражированием дисков с системой, они только готовят образы дисков. Проект Дебиан имеет определенную организацию и лидера (DPL — Debian Project Leader), выбираемого разработчиками каждые несколько лет.
Изначально Дебиан был проектом Free Software Foundation, откуда он унаследовал свое название Gnu/Linux (а не просто Linux) и жесткое отношение к несвободному программному обеспечению, то есть не использующему одну из "свободных" лицензий — GPL, BSD License, Artistic License, и некоторых других. Сейчас Дебиан — самостоятельная организация, поддерживающая дружеские отношения с Free Software Foundation.
В последнее время, когда стали возникать Open Source компании, когда такие великаны, как Sun и IBM, стали поддерживать развитие Линукса, движение свободного программного обеспечения получило громкую огласку в средствах массовой информации, стало модным писать о новых Open Source компаниях, мол, вот, Вася Пупкин и Компания изменят мир Линукса и сделают его настольной операционной системой. Затем Вася Пупкин и Компания становятся банкротами, и начинаются бесчисленные новости и флеймы на сайтах, подобных англоязычному www.slashdot.org или русскоязычному www.linux.org.ru, о том, что вот сейчас Линукс уж точно загнется и да здравствует Windows. Тот, кто придерживается подобного мнения, совершенно не понимает сути движения программного обеспечения с открытыми исходными кодами и, скорее всего, заинтересовался Линуксом недавно, не застав более ранних времен, когда коммерциализация свободного программного обеспечения еще не достигла такого уровня. Сейчас же компаниям свойственно громко кричать на каждом углу о любом приложении из одного окошка и двух кнопок как о революционном продукте, который изменит мир. Поэтому многие и принимают эту PR шумиху за настоящий процесс разработки и эволюции системы.
В действительности же все хоть сколько-нибудь значимое для Линукса было написано вне стен какой-либо коммерческой организации, будь это само ядро, утилиты Gnu, Gnome, Samba и т.д., и совершенно не зависит от каких-то компаний. Реальная разработка важных компонентов системы происходит без особого паблисити, просто сидят увлеченные своим делом люди, пишут код и общаются друг с другом через irc и списки рассылки...
Хороший пример — компания Eazel, которая намеревалась совершить революцию в Линуксе и разрабатывалa файловый менеджер Nautilus. Ни меня, ни кого-то из моих друзей-линуксоидов не затронуло ни создание этой компании, ни ее развал. Впрочем, я не отрицаю той большой роли, которую сейчас играют Red Hat, Ximian, IBM, Sun, HP и другие. Без сомнения, если бы эти компании все разом или обанкротились, или перестали заниматься Линуксом, процесс разработки некоторых проектов замедлился бы за счет тех, кто сейчас работает за деньги этих компаний и не собирается работать на энтузиазме, но сам процесс не прекратился бы. К примеру, Ximian, дистрибьютор Gnome, — это еще не сам Gnome. Но еще лучший пример — это Nautilus, который начали разрабатывать в Eazel. Особенность программы, лицензированной под GPL(Gnu Public License), — это ее способность возрождаться до тех пор, пока она нужна людям. Nautilus и сейчас продолжают разрабатывать, просто разработчики не получают за это деньги. Любой проект под GPL, потерявший своих создателей, может быть подхвачен и продолжен добровольцами. Все это важно знать, чтобы не проявить свою некомпетентность, злорадно соотнося финансовые проблемы Open Source компаний с положением дел в мире свободного программного обеспечения в целом.
Это лирическое отступление было необходимо, чтобы противопоставить Дебиан всем остальным дистрибутивам, которые разрабатываются компаниями. Даже если вдруг все обанкротятся, Дебиан останется, так как это некоммерческая организация и обанкротиться не может. Это первое следствие того, что Дебиан — общественная организация.
Второе следствие — это то, что процесс разработки Дебиана полностью открытый. Открыты все списки рассылки. Каждый, в принципе, может стать членом проекта Дебиан (DD — Debian Developer) и поддерживать какое-то количество пакетов, но для этого нужно иметь определенные знания, опыт и время.
Третье следствие — никто, ни босс, ни инвестор, не командует разработчикам, как, что и когда делать. Это одна из причин того, что цикл выпуска стабильного дистрибутива достаточно долгий, как и того, что Дебиан — это не дистрибутив для начинающих, ведь разработчики делают его в первую очередь для себя.
Четвертое, возможно, отрицательное следствие — это неспособность Дебиана быть корпоративным дистрибутивом. Не по техническим причинам, а скорее по маркетинговым — корпоративному заказчику обязательно иметь службу поддержки, куда можно обратиться за помощью, и менеджера, у которого можно потребовать исправления ошибок. Впрочем, есть коммерческий вариант Дебиан — Progeny Debian, о нем чуть позже.
Таким образом, Дебиан на сегодняшний день — единственный дистрибутив, разработка которого ведется так, как разрабатывается/разрабатывалось ядро Линукса, то есть на общественных началах. Это важно, чтобы понять некоторые особенности дистрибутива Дебиан.

Debian — качественный дистрибутив
Жесткие требования к качеству пакетов и долгий цикл разработки стабильной версии позволяют довести дистрибутив до такого состояния, которое позволяет назвать Дебиан одним из самых стабильных и надежных. Все заводится с пол-оборота. Конечно, я не имею в виду, что конфигурационные файлы пишутся сами по себе (хотя в некоторых случаях так оно и происходит;), но, по крайней мере, все работает так, как оно ожидается, и конфиги написаны так, чтобы удовлетворить большинство пользователей.
В последнее время наметилась тенденция выпускать откровенно сырые дистрибутивы, где присутствует целый ряд недоработок. Например, какие-то пакеты не ставятся вообще, что-то выпадает при первом же запуске, файл имеет неверные права доступа, в пакете забыли указать важную зависимость от другого пакета, и так далее, перечислять можно долго. Конечно, все это поправимо, многие считают такое положение дел нормальным для Линукса, и сразу после инсталляции начинают "доводить до ума" систему с помощью своих "/dev/hands". Не знаю, читатель, как Вам, а мне компьютер нужен для работы, а не для того, чтобы проводить долгие часы, решая проблемы, которые должны были решить разработчики дистрибутива, и доказывая самому себе свою способность решить эти проблемы.
Качество пакетов — это первая причина того, что я использую Дебиан.

Дебиан — сетевой дистрибутив
Многие привыкли, что дистрибутив — это некоторое количество дисков, которые нужно либо купить, либо взять у товарища, либо сделать самому, скачав образы дисков из сети. Debian — это совсем другой подход. Чтобы поставить Дебиан, совсем не нужно иметь диски, можно иметь только хороший коннект. В этом случае скачивается только базовая система, ставится, а все остальные пакеты докачиваются и инсталлируются уже из сети, из репозитория пакетов. Причем нужно отметить, что это докачивание — не какой-то особый способ, придуманный для инсталляции системы, а самый основной способ апгрейда пакетов в Дебиане.
Впрочем, мало кто из живущих в бывшем СССР наслаждается хорошим каналом связи, поэтому в нашем случае диски — это способ сэкономить время и трафик. Но даже 7 дисков (из которых 3 — с исходниками), выпущенных в России IPLabs (ныне AltLinux, спасибо им огромное!), — это не весь дистрибутив. Одним словом, дистрибутив — это в первую очередь репозиторий пакетов в Сети и десятки зеркал этого репозитория, причем в случае нестабильного и тестового дистрибутива (об этом чуть позже) пакеты в нем постоянно меняются, добавляются и т.д.
Когда у Вас есть работающая Дебиан система, инсталляция и апгрейд пакетов производятся с помощью менеджера пакетов APT, который работает с репозиториями пакетов в Сети.
В действительности, установка системы в Дебиане — это только установка базовой системы, остальное — обычная установка пакетов. С первого взгляда на инсталляцию Debian 2.2 (Potato) можно подумать, что это не так, что программа инсталляции монолитна, но во время первой загрузки базовой системы запускается программа tasksel, которая позволяет выбрать группы пакетов для установки, например, X Window System Core или Gnome Net, а затем запускается dselect — front-end для APT, который и ставит отмеченные пакеты. Вы сами можете запустить tasksel просто как отдельную программку. Таким же образом дело обстоит и с конфигурацией X Windows System — это не часть инсталлятора, а программа anXious из пакета xviddetect, которую Вы можете запустить сами в любое время, предварительно сделав копию XF86Config, конечно;-). Зная все это, я после первой загрузки системы прерываю работу tasksel и ставлю то, что мне нужно.
Возможно, пока я еще не убедил Вас в том, что Дебиан — сетевая система, но я надеюсь, к концу статьи сомнений в этом не останется.

Дебиан имеет выдающуюся систему управления пакетами
Что отличает один дистрибутив от другого? Набор пакетов, процедура установки, свои собственные утилиты для администрирования системы, формат пакетов и система управления ими. На сегодняшний день в мире Линукс есть два формата пакетов — RPM и DEB. RPM на сегодня является общепринятым стандартом, DEB используется в Дебиане и в системах, базирующихся на нем.
При первом приближении оба формата — это архив, в котором находятся сами программные файлы, скрипты, запускающиеся при установке и деинсталляции, информация о пакете, в том числе dependencies — зависимости, то есть список пакетов, необходимых для корректной работы программ из пакета.
При более пристальном рассмотрении различий довольно много, но их перечисление выходит за рамки этой статьи, кроме одной важной особенности DEB пакетов. Она заключается в том, что при деинсталляции пакета по умолчанию остаются все конфигурационные файлы. Таким образом, если через некоторое время снова поставить этот пакет или его обновление, он будет работать так, как Вы его настроили. Конечно же, можно указать менеджеру пакетов dpkg не просто убрать пакет, но и все его конфиги.
Еще одна разница между RPM и DEB проистекает скорее не из-за технических особенностей этих пакетов, а из-за общепринятости RPM. Так как RPM используют многие дистрибутивы, и между этими дистрибутивами иногда наблюдаются расхождения. Например, в файловой системе, ставить RPM пакеты из одного дистрибутива в другой иногда чревато неожиданностями. Пример — пакеты из Мандрейка. Мандрейк использует систему меню, заимствованную из Дебиана, — каждый пакет при установке запускает скрипт, вносящий соответствующую запись в глобальное меню, из которого затем генерируются меню для всех оконных менеджеров и сред. При установке такого пакета в систему, которая не использует такое меню, запустится скрипт, который создаст ряд ненужных файлов и директорий. Это не смертельно, конечно, но продвинутые пользователи при установке чужих пакетов иногда предпочитают открывать RPM пакет как архив (например, в mc) и переписывать его содержимое вручную, избегая, таким образом, запуска скриптов.
Так как большинство DEB пакетов предназначены для Дебиана, такого беспорядка не наблюдается. Работа с менеджерами пакетов rpm и dpkg на этом уровне мало отличается друг от друга. Можно брать пакет из какого-либо источника, например, скачивать из Сети, а затем устанавливать:
rpm --install
или
dpkg --install
Но это неудобно, во-первых, потому, что приходится каждый раз заниматься поиском пакета, а затем его скачкой вручную, во-вторых, этот способ не учитывает зависимостей пакетов друг от друга, и, скачав один пакет, обнаруживаешь, что для того, чтобы его установить, необходимо поставить еще несколько пакетов. Все начинается заново, иногда очень рекурсивно;-).
Система управления пакетами APT решает обе эти проблемы. APT позволяет забыть о процессе поиска пакета. В конфигурацию APT заносятся так называемые sources, "источники", откуда следует брать пакеты, — это могут быть диски, репозитории пакетов в сети по ftp, http или же репозиторий на вашем же компьютере, а уж откуда брать пакет, решает сам APT. Вам остается только сказать "хочу то-то и то-то". Далее, APT сам находит, какие еще пакеты следует установить.
Занеся в файл конфигурации источники, нужно сделать
apt-get update
Эта команда скачивает списки доступных пакетов. Затем все, что нужно сказать, чтобы поставить emacs, к примеру, это
apt-get install vim
Все! Никакого скачивания вручную, никакого поиска пакетов! Все нужное скачается и установится само.
Для APT существует несколько удобных (и не очень удобных;-) фронтендов — dselect, console-apt, gnome-apt. Кроме этого, APT перенесен на другие дистрибутивы для работы с пакетами формата RPM, например, он используется в Spring 2001.
Система управления пакетами — это вторая причина того, что я использую Дебиан.

Выпуски Дебиана
На нынешний момент есть три варианта Дебиана — стабильный (Stable), тестовый (Testing) и нестабильный (Unstable). Стабильный дистрибутив содержит последнюю официально выпущенную версию дистрибутива, предназначенную для широкого использования. Тестовый дистрибутив содержит пакеты, которые не вошли в стабильный выпуск, но не содержат критичных ошибок; нестабильный дистрибутив — это дистрибутив, находящийся в активной разработке в данный момент. Каждый вариант имеет кодовое имя. Стабильный — это Potato, тестовый — Woody, нестабильный — Sid. Стабильный имеет номер 2.2. Через некоторое время тестовый Woody станет стабильным релизом 2.3, а нестабильный Sid станет тестовым.
Особенность Дебиана в том, что Вы можете пользоваться любым из этих дистрибутивов. Если Вы пользуетесь стабильным дистрибутивом, репозиторий пакетов практически не меняется, если же Вы пользуетесь Woody или Sid, вам нужно будет регулярно запускать
apt-get update
для обновления списка пакетов, а затем командой
apt-get upgrade
Вы скачаете и установите все более новые пакеты, но только те, которые уже установлены. Так вы будете постоянно синхронизировать свою систему в процессе работы над дистрибутивом.

Цикл выпуска стабильного дистрибутива достаточно долгий
Цена за качественный и доведенный до ума дистрибутив — долгий цикл выпуска стабильного дистрибутива. Стабильный дистрибутив на нынешний момент — это ядра старой серии 2.2.x, X Windows 3.3.6. Есть несколько способов бороться с этим. Первый — это использовать неофициальные репозитории пакетов для стабильного дистрибутива. Некоторые из неофициальных наборов пакетов делаются самими же разработчиками Дебиана, они отменного качества, например, KDE для Potato. Другие пакеты, сторонних разработчиков, не всегда безупречны, но вполне пригодны, например, набор пакетов Ximian Gnome 1.4.
Второй способ — использовать пакеты с исходниками из тестового или нестабильного дистрибутива для сборки под стабильный дистрибутив. Для этого нужно внести в список репозиториев пакетов исходники нестабильной или тестовой дистрибутивов и запустить две команды:
apt-get update
apt-get -b source
Что делает первая команда, мы уже знаем, а вторая скачивает пакет с исходниками, распаковывает его, собирает в бинарники и сама создает DEB пакет, готовый к установке.
Третий способ — просто сборка пакетов из исходников.
Четвертый способ — перейти на тестовый дистрибутив. Программное обеспечение там более новое, но и ошибки встречаются чаще. Впрочем, качество тестового дистрибутива Дебиан равно качеству релизов многих других дистрибутивов;-). По опросам, только половина пользователей Дебиана используют стабильный дистрибутив! Превратить стабильную версию в любую другую более новую можно двумя командами. Внеся источники пакетов желаемого дистрибутива в список репозиториев, нужно запустить следующие команды:
apt-get update
apt-get dist-upgrade
Все, можете идти спать, а утром Вас будет ждать совершенно другой дистрибутив! Впрочем, признаюсь, сам я так делать еще не пробовал. Если у кого-то есть подобный опыт, мне было бы очень интересно узнать о нем.

Утилиты для настройки
В Дебиане не очень много таких утилит, как YAST'а из SuSe или drak* утилит из Мандрейка. Хорошо это или плохо — судить Вам, читатель, мое же мнение таково: утилиты настройки полезны и хороши, когда пользователь может сделать то же самое в командной строке, без этих утилит. Часто бывает так, что пользователь научился администрировать систему с помощью подобных утилит, но не понимает, что за ними стоит. Плохого в этом, наверное, нет, но это уже не Unix. Пересадите такого пользователя на другой дистрибутив, где нет этих утилит, и он не сможет ни перестартовать Самбу, ни даже самостоятельно установить пакет! Либо если утилиты администрирования реализованы с помощью графического интерфейса, как это сделано в Мандрейке, пересадите пользователя за командную строку — результат будет тот же.
Возможно, поэтому Дебиан не считается дистрибутивом для новичков. Однако, помучившись с Дебианом, Вы станете настоящим универсальным линуксоидом;).

Дистрибутивы, основанные на Дебиане
Есть несколько коммерческих дистрибутивов, базирующихся на Дебиане. Самых известный и популярный на нынешний момент — это Progeny Debian. Progeny Debian — это не просто основанный на Дебиане дистрибутив, это и есть Дебиан, что отражено в его названии. Я имею в виду полную совместимость между Progeny и Дебианом, то есть пользователь Progeny может использовать репозитории пакетов Дебиана, а пользователь Дебиана — репозитории пакетов Progeny. Progeny имеет дружелюбную программу установки и некоторые утилиты для администрирования. Для многих Progeny может стать решением проблем, о которых я писал выше — старое программное обеспечение, недостаток дружелюбных инструментов для конфигурирования и поддержка корпоративных клиентов. Во главе Progeny стоит Ian Murdoch, который также был одним из основателем Дебиана.
Другие дистрибутивы, основанные на Дебиане, — это Corel Linux и Libranet.

Где получить больше информации
На сайте Дебиана — http://www.debian.org, на русскоязычном http://www.debian.org.ru, на новостном сайте http://www.debianplanet.org, а решение любой проблемы можно найти на http://www.debianhelp.org .

Юрий Лейкинд, yurleik@tut.by

(c) компьютерная газета


Компьютерная газета. Статья была опубликована в номере 44 за 2001 год в рубрике soft :: linux

©1997-2024 Компьютерная газета