Linux: the Red Queen's race |
[Mar. 23rd, 2008|03:30 am] |
[ | Current Mood |
| | А я предупреждал, что в этом журнале иногда гоню | ] | Пока качаются пакеты (сейчас apt пишет, что осталось 19 минут), объясню-ка я вам, в чём же заключается гениальность Марка Шаттлворта.
Странно, но почти никто не понимает, почему именно Убунта стала "народным дистрибутивом" Linux. В качестве причин её успеха называют "дружественность к пользователю" (я не вполне понимаю, что это такое, но дурню с руками, навсегда искривлёнными под винду, Mandriva или SuSE подойдут куда лучше), принцип "одна программа для одной задачи" (не говоря уже о том, что даже для решения большинства типовых задач придётся подключить Universe, на самом деле этот принцип не так уж чётко соблюдается; кроме того, в результате все дистрибутивы *ubuntu содержат неоптимальный с точки зрения практически любого пользователя набор софта) и прочие глупости. А на самом деле всё куда проще.
Когда энтузиасты свободного софта расписывают его преимущества, они обычно не акцентируют внимание пользователей на том факте, что значительную часть этих преимуществ (бóльшую безопасность, быструю реализацию новых фич, оперативное исправление багов, дружественную бесплатную поддержку) получает только пользователь свежих версий программ. Уже пользователь предпоследней версии в ответ на любые жалобы, предложения и даже просто вопросы скорее всего получит "сначала поставьте последнюю версию" (а пользователя последней версии могут послать за текущей ревизией SVN, но не будем о грустном).
Если бы программы в свободных ОС ставились бы с таким же геморроем, как и в закрытых, а единственным способом получить новую версию системы вместо старой была бы перестановка, использование свободного софта превратилось бы в кошмар. Собственно, использование в качестве домашней системы *BSD, а также говнодистрибутивов типа Мандривы и SuSE таким кошмаром и является. К счастью, в apt-based (и, с некоторыми оговорками, yum-based) дистрах обновление программ и даже самой ОС может производиться практически незаметно для пользователя. При наличии недорогого интернета хотя бы на 128 kbps поддержание системы (то есть, прежде всего, прикладного софта) в актуальном состоянии практически не требует усилий (а можно вообще записать update/dist-upgrade в crontab, чтобы обновление стало совсем автоматическим… хотя я так делать бы не стал).
Но есть одна проблема. Релизы большинства приличных дистрибутивов (Debian, Alt Linux) выходят раз в несколько лет, причём, как правило, входящие в них версии программ отстают от состояния апстрима уже на момент выхода. Поэтому те самые "быстрое исправление багов/выполнение фичереквестов" и "дружественная поддержка" всё равно на деле обеспечивают изрядный геморрой: свежая версия программы хочет новых библиотек, новые библиотеки других библиотек… добро пожаловать в dependency hell, ага. Причём сборка новых версий вручную, с помощью ./configure; make; sudo make install (или, чего доброго, установка готовых бинарей из левых источников) превращает систему в BSD-подобную помойку, не поддающуюся обновлению, а попытка паковать весь свежий софт в пакеты очень быстро начинает подозрительно напоминать создание собственного дистрибутива.
Поэтому, как ни странно, в большинстве нормальных свободных1 ОС спокойное и комфортное существование возможно только при работе с нестабильной, "экспериментальной" базой пакетов — testing в Debian, Sisyphus в Alt Linux и т.д. А релизы этих ОС полезны разве что тем, что стимулируют разработчиков запиливать баги в инсталляторах. К миру свободного ПО вполне применимы слова кэролловской Чёрной Королевы: «здесь, знаешь ли, приходится бежать со всех ног, чтобы только остаться на том же месте!»… и разработчики большинства ортодоксальных дистрибутивов "оставаться на том же месте" просто не успевают.
Вот в этом-то и заключалось главное новаторство Шаттлворта: выпускать релизы примерно с той частотой, с которой средний нефанатичный пользователь делает dist-upgrade. В Ubuntu, к тому же, с этим самым dist-upgrade может справиться любой, кто вообще способен пользоваться компьютером, но даже это уже не так важно.
Собственно, пожалуй, не будет преувеличением сказать, что Ubuntu вообще стала первым дистрибутивом Linux, который принёс преимущества свободных ОС широкому пользователю; до этого такие ОС были либо попытками имитировать Windows, существенно уступавшими оригиналу (SuSE, Mandriva), либо наборами "сделай сам", требовавшими от пользователя немалой квалификации (Debian, Alt). Отдельных недобрых слов заслуживает RH/Fedora, удачно сочетавшая недостатки обоих подходов.
Сам я пользуюсь Alt Linux, прежде всего из-за того, что это единственная пригодная для использования система, в которой apt работает поверх rpm, а не поверх dpkg. Всё-таки, логика работы с последним уж больно негуманоидная, да и по действительно нужным возможностям он беднее (чего стóит отсутствие аналогов rpm -q и rpm -qf), а процесс создания пакета с нуля по всем правилам там и вовсе чудовищен.
На самом деле, удобнее всего мне было бы, найдись второй Шаттлворт, который бы оплатил изготовление из Sisyphus примерно того же, что Canonical делает из Debian. Но это маловероятно, конечно.
Всё, dist-upgrade закончился. Попробую перезагрузиться, посмотрю, как система это перенесёт. UPD На диво удачно, ага, если не считать слетевшего direct rendering в иксах. Но это уже традиционная проблема — мантейнер Xorg в Alt, похоже, сознательно саботирует работу видеокарт от ATI по каким-то личным причинам. UPD2 Перечисляя ОС, в которых разумно организованы пакетные системы, незаслуженно забыл Gentoo. Исправляюсь.
1В широком смысле этого слова — я в курсе, что, скажем, Столлман ни один из упоминаемых в этом посте дистрибутивов свободным не считает. |
|
|