суббота, 15 сентября 2012 г.

Arch Linux: review, trends, community. Part 1.


Дистрибутив Arch Linux. Часть 1: обзор, тенденции, сообщество

Статья вышла в 114-ом выпуске электронного приложения к журналу OpenSource 29 августа.

Введение

Оригинал изображения по щелчку
Шесть лет тому назад в «Open Source» была опубликована статья «Простота? Просто Arch Linux!» (выпуск №011 от 30.08.2006, автор — Стас Мясников). С тех пор прошло много времени, однако Arch Linux было уделено очень мало внимания в электронном журнале — на мой взгляд, незаслуженно мало. Дистрибутив прошел проверку на прочность, «повзрослел» и крепко обосновался в своей нише. 11 марта этого года ему исполнилось 10 лет (www.archlinux.org/news/arch-linux-turns-10), и на сегодняшний день он входит в десятку наиболее популярных дистрибутивов в рейтинге DistroWatch (distrowatch.com/dwres.php?resource=popularity). 10 лет — очень знаменательная дата в развитии любого проекта. Я начал работать с Arch Linux в 2008 году и хочу поделиться своим видением и пониманием этой системы. Статья разбита на две части:
  1. Вводная; обзор дистрибутива, сообщества и тенденций его развития. Эта часть больше нацелена на тех, кто еще мало знаком с Arch Linux.
  2. Проекты и ответвления, основанные на Arch Linux и появившиеся за годы его существования.


Про Arch

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

  1. KISS (Keep It Simple, Stupid). Это основной принцип дистрибутива, который гласит о том, что не должно быть ничего лишнего: программы не дублируют функции друг друга, повсеместно используются текстовые настройки, отсутствуют  специализированные утилиты для конфигурации и графические утилиты для установки. Установленная система включает в себя только базовые компоненты, графическое окружение и любое ПО устанавливается по желанию. Официально Arch поддерживает лишь две аппаратные архитектуры: i686 и x64 — и только свежее программное обеспечение.
  2. Пакетная система. Arch Linux — это дистрибутив, программное обеспечение в котором управляется с помощью менеджера пакетов pacman, который соответствует принципу KISS и значительно облегчает жизнь любого пользователя. Пакеты в Arch — это всего лишь архивы, содержащие скомпилированное приложения, конфигурационный файл с примерами настроек и подробными комментариями, а также desktop-файл (для графических программ). ABS (wiki.archlinux.org/index.php/Arch_Build_System) — система сборки пакетов Arch Linux — позволит самому пользователю без особого труда собирать пакеты, и затем установить их в системе при помощи pacman.
  3. Rolling release model. Непрерывный цикл выпуска обновлений приводит к тому, что у дистрибутива нет версий. Это, в свою очередь, также является составляющей принципа KISS: пользователю не нужно ждать крупного обновления системы, чтобы то или иное программное решение было внедрено, не нужно знать, по каким месяц в году это обновление выходит. Он единожды скачивает установочный образ, записывает его на диск или USB-накопитель и устанавливает систему, все последующие обновления и изменения будут доступны в одном репозитории, без разделения по версиям. С недавнего времени Arch Linux использует один установочный образ вместо шести, для установки требуется подключение к интернету откуда будут скачаны все необходимые пакеты, которые раньше размещались в самом образе. Также, Arch позволяет инсталлировать систему по сети при помощи PXE или прямо из другого дистрибутива. Достаточно установить базовую систему, загрузчик и утилиты настройки сети, а затем можно сделать из дистрибутива специфичную систему для своих нужд.
  4. Еще одним принципом дистрибутива является то, что все приложения имеют максимально свежую версию — так называемый Bleeding edge. Например, KDE в основных репозиториях обновляется в тот же день, когда выходит официальный анонс, тестовые версии программ и библиотек доступны только при подключении соответсвенного репозитория. Все программное обеспечение поставляется в том виде, в котором его выпустил разработчик — патчи используются только в редких случаях.

Дополнительную информацию по философии и принципам построения дистрибутива можно почитать в wiki проекта, статьи которой частично переведены на русский язык:


«Не было печали — апдейтов накачали»

После краткого обзора основ Arch Linux перейду к тем заметным новшествам, что произошли за последние 6 лет (с момента публикации прошлой статьи по этому дистрибутиву в «Open Source»).

Сразу отмечу, что изменения, которые происходят в дистрибутиве в самое последнее время, вызывают жаркие споры в интернете. Многие, в основном пользователи со стажем, считают, что дистрибутив отходит от некогда заложенных принципов, но я не склонен соглашаться с ними.

Итак, пакетная база Arch Linux менялась на протяжении всей жизни дистрибутива. Какие-то программы устаревают и исключаются (либо заменяются), тестовые версии программ «созревают» и поступают в основные репозитории, некоторые программные пакеты объединяют или, наоборот, разделяют… В общем, это непрерывный процесс — происходит он и сейчас. Для отслеживания популярности тех или иных программ в Arch Linux был написан скрипт pkgstats. Интересен он не сам по себе, а собираемой статистикой, ознакомиться с которой можно на www.archlinux.de/?page=Statistics.

Согласно этой статистике, среднестатистический пользователь Arch Linux проживает в Германии или США (Россия на третьем месте со значительным отставанием), предпочитает процессоры с архитектурой x86_64 и видеокарту от NVIDIA. Среди графических окружений в приоритете KDE и GNOME, чуть менее популярен Xfce. Среди браузеров уверенное лидерство у Firefox, а текстовых редакторов — у Nano и Vi/Vim. У всех установлен Bash, но неплохой показатель и у Dash, с которым работает больше половины пользователей.

Данные pkgstats предназначены не только ради «забавы», но и для улучшения экосистемы — чтобы разработчики Arch Linux могли сфокусировать свои силы на наиболее востребованных компонентах. И это не единственный инструмент, решающий подобные задачи. Например, для снижения нагрузки на основной сервер репозитория Arch Linux с целью предоставить пользователю наиболее быстрое зеркало существует утилита rankmirrors. Есть и другие средства оптимизации работы с зеркалами — подробнее о них можно прочитать на wiki.archlinux.org/index.php/Mirrors.

Подлежат оптимизации и сами репозитории. Например, у части пакетов (скрипты, локализация, документация и и т. п.) убрали архитектуру, указав вместо нее значение «any». Это было сделано для того, чтобы не дублировать пакеты и не поддерживать их в двух разных ветках, если они устанавливаются в систему вне зависимости от архитектуры. Другим мероприятием по улучшению базы пакетов стал переход на использование сжатия по алгоритму LZMA2. Это позволило уменьшить величину пакетов в среднем на 30 % (показатели для разных пакетов оказались разными, поскольку эффективность сжатия зависит от содержимого). Например, в моем локальном зеркале общий объем репозитория для одной архитектуры уменьшился с 13 Гб до 10.

Разработчики были увлечены не только количественными характеристиками, но и качественными. Например, совсем недавно в пакетный менеджер pacman добавили возможность проверки цифровой подписи пакетов. Цель тут очевидна — повысить безопасность распространяемого в дистрибутиве ПО. А вот другая новость оказалась не столь приятной для большинства пользователей: из состава установочных образов убрали AIF (Arch Linux Installation Framework), заменив его на простые инсталляционные скрипты. Несмотря на недовольство пользователей, разработчики заявляют, что такое изменение позволило им чаще выпускать установочные образы и поддерживать их в актуальном состоянии. Отказ от AIF оказался вынужденной мерой, поскольку фреймворк был «тяжелым» и трудным в поддержке. Впрочем, разработчики высказывают надежду, что ситуация исправится, как только найдется человек, готовый заняться развитием AIF.

Конечно, это далеко не все новости — я лишь постарался очертить общие тенденции развития дистрибутива.


Сообщество и ресурсы

Когда говорят о сообществе того или иного проекта, обычно имеют в виду тех людей, что вносят свой вклад в его поддержку или развитие. Сообщество Arch Linux достаточно специфично, потому что эксплуатация дистрибутива требует определенного уровня подготовки и знаний, умения искать и использовать найденную информацию. Здесь, например, принято решать все вопросы самостоятельно, а обращаться за помощью только по редко встречающимся или эксклюзивным вопросам. К сожалению, не все пользователи, особенно новички, следуют этому правилу, поэтому даже в таком сообществе предостаточно работы для энтузиастов.

Наиболее распространенным и востребованным ресурсом для многих крупных Open Source-проектов является форум. Здесь Arch Linux не является исключением — его форум доступен на bbs.archlinux.org. Своя конференция есть и у русскоязычного сообщества — archlinux.org.ru/forum.

Огромное значение для Arch Linux имеет уже упомянутая wiki — wiki.archlinux.org. Документация в базе знаний достаточно подробна, хорошо структурирована и лаконична. Показательным здесь является то, что даже некоторые другие Linux-дистрибутивы ссылаются на нее в случае необходимости. Напомню, что часть материалов в wiki переведена на русский русский язык.

Некоторые другие полезные ресурсы:
  • bugs.archlinux.org — баг-трекер;
  • www.archlinux.org/packages — интерфейс для поиска пакетов;
  • aur.archlinux.org (Arch User Repository) — инструмент для выкладывания PKGBUILD-файлов (подробнее см. ниже);
  • planet.archlinux.org (Planet Arch Linux) — планета блогов от разработчиков и активных участников дистрибутива (у русскоязычного сообщества есть своя — archlinux.org.ru/blog).

Участие в проекте

Сообщество Arch Linux достаточно активно: пользователю всегда доступны свежие версии программ, последнее ядро, постоянно внедряются новые технологии и идеи. Проект не замкнут сам на себе, а взаимодействует с другими сообществами и пользователями. Разработчики дистрибутива неоднократно участвовали в различных международных мероприятиях, посвященных программному обеспечению с открытым исходным кодом: FrOSCon 2007, 2008, 2009, FOSDEM 2012…

Наиболее простой и эффективный способ участия в сообществе — помощь в решении вопросов пользователей на форуме. В первую очередь я имею в виду русскоязычный форум, а при наличии знаний английского языка большую поддержку можно оказать переводом wiki-страниц на русский. В особенности страницы для первоначальной настройки системы, которые пригодятся новичкам. Отдельная тема — актуализация старых переводов: оригинальные страницы постоянно меняются и дополняются, так что переводы за ними обычно не успевают и быстро устаревают.

Полезный вклад для умельцев собирать программное обеспечение — создание и сопровождение PKGBUILD-файлов в AUR (Arch User Repository). PKGBUILD — это текстовый файл, который содержит правила сборки пакета, опции, описание и прочую необходимую информацию. Такие файлы используются для сборки пакетов в одну команду. В AUR содержатся PKGBUILD для тех пакетов, которые отсутствуют в основных репозиториях дистрибутива, а также любые библиотеки и программы с патчами и/или особыми правилами сборки. Наличие таких файлов или использование пакетного менеджера yaourt позволяет всем желающим легко устанавливать дополнительное ПО.

Разработчики Arch Linux проводят так называемые Bug Days — мероприятия, которые проводятся при необходимости закрыть какое-то количество ошибок в работе дистрибутива. Тогда они вместе с пользователями собираются в IRC и помогают друг другу. Участвовать может любой, и это тоже один из способов внести свой вклад в развитие дистрибутива. Информация об этом событии, как и других мероприятиях проекта, публикуется в новостях (RSS-лента — www.archlinux.org/feeds/news).

И последнее: дистрибутив можно поддержать материально. Здесь существует несколько способов:
  1. Напрямую пожертвовать сообществу денежные средства — все подробности об этом можно найти на www.archlinux.org/donate.
  2. Приобрести продукцию с символикой Arch Linux. Различная атрибутика (сумки, ручки, значки…) доступна на сайте schwag.archlinux.ca; футболки и другие предметы можно купить на www.zazzle.com/archlinux и www.freewear.org/?page=list_items&org=Archlinux.


Заключение

Надеюсь, статья прольет свет на Arch Linux для тех, кто раньше не знал об этом дистрибутиве или особо им не интересовался, а возможно — даже поспособствует его развитию. Во второй части (в следующем выпуске «Open Source») я расскажу про ответвления и сторонние проекты на основе Arch.
Отправить комментарий