рекомендации

суббота, 30 января 2010 г.

Slackware vs Archlinux: выбор дистрибутива для опытного пользователя


Перевод. Оригинал здесь.

Как вам должно быть уже известно, в мире существует огромное количество дистрибутивов Linux (для тех, кто не в курсе - "Linux" - это ядро операционной системы, вокруг которого создают коллекцию утилит и приложений, все это вместе называется "дистрибутив"). 
Какой дистрибутив выбрать - зависит от того, что вы собираетесь с ним делать, и хотите ли вы настраивать все сами, чтобы дистрибутив находился по вашим полным контролем. Может быть вы хотите, чтобы все просто работало "из коробки" (в таком случае я рекомендую Ubuntu). Некоторым нужно запустить сервер. Их выбор - Red Hat (или CentOS). Разумеется, существует масса альтернатив, например BSD.
Если вы пользователь, который любит копаться во внутренностях системы и настраивать все своими руками, вам необходимо рассмотреть два нижеописанных дистрибутива. Оба поддерживают 32 и 64-битные платформы и придерживаются правила KISS. Это относительный новичек Arch Linux (создан в 2002 году) и почтенный, проверенный в битвах Slackware Linux (создан в 1993 году и сегодня является старейшим активно поддерживающимся дистрибутивом - дети, которые родились в один год со Slackware, сейчас уже водят машины). Оба дистрибутива подразумевают настройку путем ручной правки конфигурационных файлов, мало графических утилит настройки, много работы в консоли. В итоге вы получите систему с прекрасным графическим интерфейсом: оба дистрибутива официально поддерживают KDE, Arch также официально поддерживает GNOME, который несложно установить и в Slackware. Зачем вам все это? Ответ - для того, чтобы больше узнать о работе системы и научиться самостоятельно администрировать ее.

Ирония дружественных к пользователю систем заключается в том, что повышение дружелюбности к пользователю сопровождается соответствующим усложнением системы. Процесс управления системой  от сравнительно умного и сверхмощного человеческого мозга передается относительно тупой части сложного и хрупкого софта для управления системой (я считаю, что именно по причине сложности и хрупкости этих систем администрирование Unix всегда осуществлялось людьми, и они никогда не строились по принципу "выстрелил и забыл").
Итак, мы избавимся от лишних уровней сложности и вернем людей назад, в итоге мы получим более простую систему в обмен на необходимость больше знать о том как настраивать и поддерживать ее (если вы действительно хотите узнать все о том, как работает Linux, можете собрать свой собственный дистрибутив, используя Linux From Scratch, но не думаю, что вы сегодня так далеко зайдете).
Итак, вернемся к двум нашим дистрибутивам - Arch и Slackware. Оба устанавливаются в текстовом режиме и не запускают X, пока вы им об этом не скажете. Инсталлятор Slackware ведет вас за руку через весь процесс установки, в то время как у Arch он фактически предлагает вам вручную редактировать /etc/rc.conf (который на самом деле очень простой и симпатичный файл).
Установка Арча чуть-чуть отличается вследствие того, что она не включает X - его необходимо загрузить и установить с помощью менеджера пакетов, только тогда можно будет работать в графическом режиме.
В обоих дистрибутивах после установки попадаешь в консоль, графическая сессия по умолчанию не стартует. Оба дистрибутива имеют софт для пакетного менеджмента и оба используют пакеты формата tarball. Менеджер пакетов Арча - "pacman" быстрее, чем у Slackware, но вряд ли это будет заметно на практике. Самое существенное отличие - использование в Arch системы контроля зависимостей пакетов в отличие от Slackware, где она до сих пор не используется. Пользователи Slackware не застрахованы от конфликтов, которые часто называют "адом зависимостей". Может ли система быть стабильной без автоматического контроля зависимостей? Да, может, и Slackware подтвердил это на практике. Пользователи просто обновляют пакеты, когда это необходимо. С другой стороны, работу с Arch можно назвать раем зависимостей, где все просто работает и все нужные зависимости скачиваются и устанавливаются автоматически.
Стабильность Slackware общеизвестна. В дистрибутив включают только проверенные версии пакетов, обновление которых, за исключением обновлений безопасности, происходит достаточно редко. Вы устанавливаете систему и она просто работает.
Arch не ставит во главу угла стабильность, в основном система включает самые последние версии приложений (хотя девелоперские версии как правило отсутствуют). Как только выходит новый релиз программы, значит она очень скоро появится в Arch (часто задержка связана с тем, что новые пакеты сначала попадают в "тестовый" репозиторий, к которому обычные пользователи не подключены, однако вы можете к нему подключиться, если хотите помочь в тестировании программы. Пользователи Арча обновляют свою систему чаще всего с помощью команды "pacman -Syu", чтобы обновить все пакеты. Обычно несколько пакетов обновляются каждый день после выхода новых версий.
Хотя это звучит как кошмар в плане стабильности, который должен постоянно приводить к нарушениям, обычно обновление работает без сучка и задоринки. У меня была одна проблема, когда майнтайнер Арча забыл включить один из пакетов KDE, являвшийся частью общего обновления, но ошибка была очень быстро исправлена. Другая проблема появилась, когда nVidia переместила драйвер для моей видеокарты в другой пакет, а старый оказался несовместим с последней версией Xorg - установка собственного пакета драйвера от Arch решила и эту проблему. Эти две неприятности случились за восемь месяцев практически ежедневных обновлений.
Если вы хотите придать Slackware немного больше свежести, можно использовать репозиторий "-current". Эти пакеты не очень хорошо протестированы (так как их пользователи являются тестерами), но в итоге они станут частью следующего релиза и будут нерушимы как скала. 
Если говорить об обновлениях безопасности, Slackware предоставляет обновления безопасности как для текущего, так и для нескольких более старых релизов. Вы можете быть уверены, что поддержка обновлений безопасности будет доступна длительное время, и я нигкогда не видел, чтобы обновления безопасности каким-либо образом повредили систему. Что касается Арча, он не предлагает отдельных обновлений безопасности, они просто являются частью политики, направленной на обновление всех пакетов до последних версий. Arch не обеспечивает отдельного отслеживания обновлений безопасности.
Один из примеров, где действительно видна разница между этими двумя концепциями обновлений - это серверы. Со Slackware вы можете быть уверены, что обновления обеспечивают только повышение безопасности, и все. Но вам вряд ли понравится, если обновление postfix до последней версии "просто, чтобы было" нарушит работу пользователей. Поэтому я не рекомендую использовать Arch в качестве сервера, хотя некоторые используют его в таком качестве (единственное послабление в этом вопросе сос стороны разработчиков дистрибутива - версия ядра с долгосрочной поддержкой, которая обновляется не часто и поэтому больше подходит для машин, работающих в течение долгого времени без перезагрузки.
Вы можете подумать: "Если Арч постоянно обновляет все пакеты до последних версий, почему я каждый раз должен скачивать DVD с последним релизом?" Вы не должны! После установки вам никогда не нужно будет переустанавливать его или устраивать большое обновление каждые шесть месяцев. Вы просто всегда будете получать из сети последние версии пакетов. Такая модель называется "инкрементный релиз". Slackware использует обычную модель разработки с нумерованными релизами.
Какой из дистрибутивов имеет больше пакетов? Ответ однозначный - Arch. Slackware 13.0 включает около 1000 пакетов, в то время как Arch более 4000. Это например, означает, что Inkscape есть в Archlinux, но отсутствует в Slackware. Не поймите меня неправильно - 1000 это много, однако вы можете не найти в этом списке что-что из того, что вам нужно (конечно вы всегда можете самостоятельно собрать для себя нужный пакет).
Если вам нужен пакет, которого нет в официальных репозиториях, можно поискать его в сторонних репозиториях. Для Slackware наиболее популярный - slackbuilds.org (SBo), где представлены около 1700 созданных пользователями шелл-скриптов для сборки пакетов Slackware, которые затем можно установить. Например, здесь есть скрипт Inkscape Slackbuild, так что вы можете просто установить его, не изучая, как собрать пакет самому. Кроме того, обычно имеется файл README, где описываются зависимости, которые необходимо установить. В духе легендарной стабильности Slackware  все скрипты SBo рассматриваются и проверяются администраторами сайта.
Для сравнения, Arch имеет Arch User Repository(AUR), который содержит около 18000 загруженных пользователями скриптов для сборки. Арч не предоставляет никаких гарантий для этих скриптов и предупреждает, что пользователь использует их на свой страх и риск. При обновлении программ сценарии устаревают и пользователь, поддерживающий скрипт сборки, должен обновить его. Для скриптов, оставшихся "бесхозными" может найтись другой майнтайнер. Система работает сама и администраторы AUR не склонны вмешиваться в этот процесс. Хотя теоретически скрипты сборки могут быть опасными, на практике я не встречал такого ни разу, к тому же такие пакеты будут быстро удалены администраторами.
По сравнению со скриптами Slackware, сборочные скрипты Арча базируются на bash и запускаются с помощью программы makepkg. Эти скрипты проще, чем слаковские, так как большую часть черновой работы берет на себя makepkg, кроме того они могут использовать преимущества bash, такие как массивы. Недостаток - зависимость от bash и от makepkg, тогда как скрипты Slackware зависят только от sh. Для пользователя работа с обеими типами скриптов выглядит практически одинаково: запуск скрипта и затем установка собранного пакета.
Суммируя все вышесказанное выделим основные черты сходства и различия дистрибутивов.
И Slack и Arch: базирование на принципе KISS, поддержка 32 и 64-битных архитектур, пакетная система, основанная на тарболлах, текстовая установка, администрирование с помощью редактирования конфигурационных файлов, KDE в качестве рабочего стола по умолчанию.
Основные особенности дистрибутивов.
Slackware: полная стабильность, хорош для серверов, относительно небольшое (но достаточное) количество отлично протестированных стабильных программ, обновления безопасности, GNOME официально не поддерживается, стандартная модель релизов.
Archlinux: хорошая (но не гарантированная) стабильность, большое количество передового софта, хорош для десктопов, все пакеты обновляются постоянно, GNOME поддерживается официально, модель инкрементных релизов.
Какой из них лучше? Решать вам!

3 комментария: