В небольшом дайджесте я затронул тему онлайн-каталогов приложений для Linux. От привычных репозиториев (сетевых хранилищ) и систем управления пакетами их отличает понятный даже новичку графический клиент. Кроме того, в подобных магазинах можно покупать коммерческие программы.
Можно сказать, что онлайн-каталог приложений — это своеобразный репозиторий, который существует для каждого бинарного дистрибутива. В Linux есть графические средства подключения хранилищ и управления пакетами (такие, как Synaptic), сервисы автосборки (на сайте OpenSUSE Build Service программу можно установить в один клик), а также инструменты для начинающих пользователей — например, «Центр приложений Ubuntu».
Проблема в том, что ни одно из существующих решений для Linux (даже «Центр приложений Ubuntu», который был существенно доработан в Ubuntu 10.10) нельзя сравнить с тем же Apple AppStore по удобству для начинающих. Пользователю приходится подключать сторонние источники и решать задачу со множеством неизвестных — в репозиториях любого бинарного дистрибутива десятки тысяч пакетов, и какие из них выбирать, неясно впервые столкнувшемуся с открытой ОС человеку. (В магазинах приложений для этих целей существуют рейтинги и отзывы пользователей, которые можно посмотреть, не выходя из клиентской программы.) Есть у новичков и проблемы с установкой проприетарных приложений.
Пока разработчики не создадут простой и понятный неспециалисту механизм распространения программ, о серьёзном увеличении доли Linux на десктопе придется забыть. Кроме того, дистрибутивов свободной ОС существует великое множество и у каждого свои репозитории, формат пакетов и система управления ими. Это сильно мешает разработчикам проприетарных приложений: они не хотят создавать пакеты для всего «зоопарка» дистрибутивов и часто ограничиваются несколькими наиболее популярными вариантами или создают собственную программу установки.
Разработчики Linux это понимают, и на прошедшей в январе конференции AppInstaller2011, организованной участниками проекта openSUSE, обсуждалась идея создания механизма взаимодействия между различными системами управления пакетами. Тогда же был запущен проект AppStream, в рамках которого специалисты из Ubuntu, Debian, Fedora и OpenSUSE уже придумали специальный API. Проект не будет использовать единые пакеты для всех репозиториев, вместо этого здесь будут индексы с метаданными для определённых дистрибутивов и ссылки на их хранилища пакетов. Это может стать первым шагом к созданию единого каталога свободных и проприетарных приложений, а также удобных графических клиентов для него.
Также стали известны результаты проведённой компанией Novell в Нюрнберге конференции разработчиков OpenSUSE (о ней я писал в дайджесте). На проходившем с 21 по 23 января мероприятии присутствовали представители Debian, Ubuntu, Fedora и Mageia. По сообщениям сетевых СМИ, участники проектов договорились о совместной разработке менеджеров (точнее, онлайн-каталогов) приложений и в результате мозгового штурма создали такой менеджер для OpenSUSE на основе MeeGo Garage. Этот каталог поддерживает набор технологий Bretzn, предназначенный для автоматизации разработки, публикации, оценки и поиска программ, а также использующийся в проектах openDesktop.org, Midgart, forum.kde.org и MeeGo garage интерфейс Open Collaboration Services.
Создание единого каталога приложений для популярных дистрибутивов Linux наверняка станет одним из основных направлений развития этой ОС. Приятно, что идеологи не пошли по самому простому, но не оптимальному пути и не стали разрабатывать некий единый формат пакетов. Подобный подход возможен, скажем, в Mac OS X — там есть базовая система и есть сторонние приложения. В Linux, который собирается из «кубиков» (пакетов — своих для каждого дистрибутива), как детский конструктор Lego, с единым универсальным форматом ничего не выйдет.
К сожалению, подобный метарепозиторий не сможет решить проблему совместимости проприетарных приложений с различными дистрибутивами. Но если в ближайшие год-два разработчикам удастся развить единую инфраструктуру (хотя бы для самых популярных пользовательских дистрибутивов) и сделать удобные для новичков сервисы, можно будет выработать решение и для поставщиков несвободных программ. Как вариант — тот же единый формат бинарных пакетов, систему управления ими и стандарт совместимости с дистрибутивами. За основу можно взять давно существующий LSB (Linux Standart Base). Для проприетарных приложений этот подход вполне применим — они не являются частью инфраструктуры репозитория и другие пакеты от них не зависят. Подобные программы можно рассматривать как сторонние.