вторник, 1 марта 2011 г.

Пытливый взгляд гуманитария: в недрах репозиториев. Часть вторая

     В первой части статьи мы начали погружение в недра уникальной системы распространения открытого программного обеспечения, получив общее представление о репозиториях «Linux», а также узнав кое-что интересное о четырёх категориях официальных хранилищ, поддерживаемых компанией «Canonical» Марка Шаттлворта. Настала пора продолжить наше путешествие.
     Безусловно, официальные репозитории компании «Canonical» — эталон безопасности и надёжный источник получения тысяч приложений. Однако количество программ, разрабатываемых для «Linux», в том числе очень качественных и востребованных, созданных талантливыми авторами и авторскими коллективами, существенно превышает эту цифру...

     Не каждому автору или даже команде разработчиков удаётся получить возможность разместить свою программу в официальном репозитории «Canonical». И это вполне логично и более чем оправданно: ведь наполняемость таких репозиториев должна соответствовать целям и задачам, которые ставят перед собой авторы каждого конкретного дистрибутива. Кроме того, любое приложение, попадающее туда, не только проходит ряд тщательных проверок, но и, как правило, дорабатывается на программном уровне. Простой пример: обратившись к «Справке» браузера «Firefox», я узнал о том, что  к моей «Мозилле» имеют некоторое отношение и разработчики «Linux Mint». А судя по тому, что обновляется этот навигатор через официальный репозиторий «Ubuntu», то очевидно, что он попал туда не случайно.
     Совершенно очевидно, что официальные хранилища разработчиков дистрибутивов не могут и не должны быть местом размещения всех существующих в природе программ для «Linux», пусть даже и очень хороших. Однако это вовсе не означает, что независимые авторы и команды разработчиков лишены возможности поделиться плодами своих трудов, столь необходимых пользователям. Не только не лишены, но и имеют прекрасную возможность разместить свои программы в специально предназначенном для таких целей репозитории, который был открыт в 2007 году уже известной нам компанией «Canonical» Марка Шаттлворта. Речь идёт о ставшем уже знаменитым «Launchpad» (по-русски — «стартовая площадка»), в котором хранятся десятки тысяч программ, рассчитанных на пользователей «Ubuntu», «Linux Mint» и других дистрибутивов, основанных на «Debian». 
     Вот что сказал об этом мегапроекте Марк Шаттлворт:
    «Launchpad» ускоряет взаимодействие между открытыми проектами. Взаимодействие — это движущая сила новых идей в сфере разработки свободного программного обеспечения».
    Эти слова говорят о том, что «Launchpad» — не просто репозиторий, это настоящая стартовая площадка для десятков тысяч проектов программного обеспечения, технология, открывающая широкие возможности как для разработчиков, так и для пользователей систем «Linux».
     Авторы программных продуктов, кроме хранения своих разработок в надёжном и общедоступном источнике, получают ещё и возможность сотрудничать с другими разработчиками и обмениваться с ними программным кодом, а это очень важное преимущество. Мы же, пользователи, благодаря «Launchpad» не только получаем доступ к широчайшему ассортименту качественных программ на любой вкус, но и можем принимать деятельное участие в улучшении приложений путём уведомления о найденных ошибках, высказывания своих пожеланий и предложений авторам программ, в качестве которых мы заинтересованы не менее самих разработчиков. 
     Чтобы разместить свой программный продукт на «Launchpad», автору необходимо предоставить его исходный код, который затем преобразовывается в программный пакет формата «deb» и в таком виде размещается в хранилище. После обязательной процедуры регистрации, на имя автора открывается так называемый «Personal Package Archive» (персональный пакетный архив, в сокращении — «ppa»), получающий уникальный адрес в репозитории «Launchpad», а также строку описания источника приложения АРТ. Именно посредством строки АРТ, вводимой в специальное окошко «Источников приложений» системы и происходит подключение репозитория. Собственно, «АРТ» расшифровывается как «Advanced Packaging Tool», что в переводе с английского означает «эффективный инструмент управления пакетами». Кстати говоря, персональный пакетный архив на сайте «Launchpad» называют ещё «apt-репозиторием». Таким образом, РРА можно смело классифицировать как мини-репозиторий, расположенный на площадке «Launchpad». Причём, каждый автор или команда разработчиков, зарегистрированных на «Launchpad», могут иметь более одного такого мини-репозитория, каждому из которых присваивается свой уникальный адрес в Интернете. 
     Строка АРТ состоит из метки пакета «deb» или  исходного кода «deb-src», адреса персонального пакетного архива в репозитории «Launchpad», имени версии дистрибутива, на которую рассчитаны пакеты  в данном архиве, а также названия категории РРА, к которой относятся загружаемые пакеты. 
     Откровенно говоря, мне ни разу не доводилось встретить ни одного РРА, отнесённого к какой-либо другой категории, кроме «main». Никаких сведений по поводу требований к категоризации РРА на «Launchpad» обнаружить также не удалось. Категоризация «Ubuntu» здесь действовать не может попросту потому, что на «Launchpad» поддержкой своих продуктов занимаются сами авторы, а загрузка исходного кода является обязательным условием получения РРА. Если исходить из логики структуры РРА, выходит, что категория «main» необходима для того, чтобы выделить пакеты программ в каталог, отделяющий их от корневого раздела, в котором кроме ветки «main» находится файл «Release», содержащий необходимую служебную информацию и  ключ шифрования GPG.
     В качестве примера приведу здесь строки описания АРТ стабильного РРА команды разработчиков «Ubuntu Tweak» для дистрибутива «Ubuntu Maverick»: первая строка АРТ содержит адрес, по которому размещаются приложения, а вторая — адрес размещения  исходных кодов программ:

deb http://ppa.launchpad.net/tualatrix/ppa/ubuntu maverick main — источник пакетов
deb-src http://ppa.launchpad.net/tualatrix/ppa/ubuntu maverick main — источник исх. кодов
     В стабильных архивах РРА обычно размещаются только те приложения, которые прошли предварительную «обкатку» и в надёжности которых авторы уверены на все сто. Наряду с такими персональными архивами, многие разработчики имеют на «Launchpad» и так называемые тестовые РРА, в которых размещают версии программ, находящихся на стадии тестирования. Доступ к таким приложениям и их исходному коду, открытый для многомиллионного сообщества «Linux», существенно расширяет масштабы испытаний, а соответственно и повышает качество будущей стабильной версии продукта.
     Вот строки АРТ тестового архива команды разработчиков «Ubuntu Tweak» для того же дистрибутива:  
deb http://ppa.launchpad.net/ubuntu-tweak-testing/ppa/ubuntu maverick main — пакеты
deb-src http://ppa.launchpad.net/ubuntu-tweak-testing/ppa/ubuntu maverick main — исх. код
     Каждому РРА в обязательном порядке присваивается ещё и уникальный ключ шифрования, по-английски «Signing key» или «GPG-key». Вот что сообщает об этом «Launchpad»:
      «Launchpad» генерирует уникальный ключ для каждого персонального пакетного архива и использует его для для подписывания любых пакетов, созданных в этом РРА. Это означает, что люди, загружающие (устанавливающие) пакеты из Вашего РРА, могут проверить их источник». 
     Таким образом, при подключении в Вашей системе любого нового  источника РРА одновременно загружается и этот уникальный ключ, без которого Вы не сможете осуществить установку приложения из данного мини-репозитория. 
     Любой пользователь «Linux» может подключить PPA из репозитория «Launchpad» у себя в системе, как упоминалось выше, через программу «Источники приложений», введя или скопировав в соответствующее окошко строку описания АРТ персонального архива. После этой простой процедуры можно будет устанавливать из подключенного РРА соответствующие пакеты программ точно так же, как и из официальных репозиториев. Естественно, если автор РРА создаст обновления для своей программы, то они тоже будут автоматически определяться и загружаться «Менеджером обновлений». 
     Каждый владелец персонального программного архива РРА имеет свой индивидуальный раздел на официальном сайте «Launchpad». На страничке любого авторского РРА можно прочитать примерно такую информацию (см. картинки выше):
    «Вы можете обновлять Вашу систему неподдерживаемыми пакетами из этого недоверенного PPA путём добавления (далее следует адрес источника на «Launchpad») в «Источники приложений» Вашей системы».
     Что подразумевается под неподдерживаемыми пакетами и что значит «недовереный PPA»? Пакеты здесь называются неподдерживаемыми по той простой причине, что они не поддерживаются командой разработчиков компании «Canonical», поскольку такую поддержку обеспечивают сами авторы программ, что вполне естественно. По поводу «недоверенных PPA» официальный сайт «Launchpad» на каждой персональной страничке РРА в разделе «Read about installing» (см. картинки выше), что в переводе с английского означает «Прочтите о процессе установки», сообщает следующее:
     «Содержимое персональных пакетных архивов не проверяется и не контролируется. Вы устанавливаете программное обеспечение из них на свой страх и риск» 
     А вот какой ответ на этот же вопрос был опубликован в соответствующем разделе официального сайта «Launchpad»:
   «Недоверенный» означает, что зарегистрироваться на «Launchpad» и создать свой персональный пакетный архив (РРА) может абсолютно любой человек, то есть Вам принимать решение насчёт того, насколько Вы доверяете владельцу РРА.
     Использование ключей PGP даёт возможность только подтвердить, что в файлы, которые Вы загружаете, не было вмешательства из других источников, кроме систем «Launchpad», которые контролируют процесс публикации персональных архивов.
     Как правило, РРА не находятся под официальным наблюдением членов команды «Ubuntu».
     Таким образом, с одной стороны, «Launchpad» обеспечивает максимально возможный уровень безопасности загружаемых из этого репозитория пакетов программ, в том числе за счёт внедрения системы генерирования ключей шифрования для каждого персонального архива РРА, с другой стороны, доверие к тому или иному разработчику программного обеспечения, зарегистрированному на «Launchpad», определяется личными мотивами и предпочтениями каждого конкретного пользователя «Linux».
     Для меня эта дилемма решается просто: идеология «Linux», основанная на открытости и доверии, которая заложена и в основу проекта «Launchpad», позволяет мне как пользователю получить максимально полную информацию о каждом загружаемом пакете, включая тщательный просмотр исходного кода приложения. Хотя, как гуманитарий, я конечно же, ничего не пойму в исходном коде и он мне ровно ни о чём не скажет, однако я знаю, что среди многомиллионного сообщества пользователей «Linux» наверняка найдётся пара десятков профессионалов, на чьё авторитетное мнение я могу положиться. Да и сам факт многократного испытания приложения на сотнях тысяч компьютеров по всему миру, самой разнообразной конфигурации, от настольных систем до нетбуков, весьма и весьма обнадёживает. 
     При этом, для меня немаловажен и тот факт, что все пользователи операционной системы «Linux» (во всяком случае, пользователи самых востребованных дистрибутивов «Debian», «Ubuntu», «Linux Mint» и других подобных систем) загружают программное обеспечение фактически из одного-двух известных всем авторитетных источников. И если даже предположить возникновение какой-либо нештатной ситуации, то нетрудно себе представить, какой резонанс это вызовет среди членов сообщества «Linux». Понятное дело, что при таких обстоятельствах любая, мелкая или крупная проблема будет решена в самые кратчайшие сроки, а риск возникновения новых подобных ошибок будет сведён к разумному минимуму или даже к нулю.
     И в завершение — несколько слов о других репозиториях. Кроме официальных репозиториев, поддерживаемых командами разработчиков дистрибутивов и описанного здесь мегапроекта, сообществу «Linux» известны и несколько других хранилищ. Однако по моим личным наблюдениям, с появлением и стремительным развитием репозитория «Launchpad» от компании «Canonical», авторитет которой, кажется, ни у кого не вызывает сомнений, необходимость в обращении к каким-либо другим, сторонним источникам программ попросту отпадает. Действительно, для чего создавать отдельный репозиторий, если можно запросто зарегистрироваться на всеми уважаемом и более чем востребованном ресурсе и иметь в своём распоряжении весь его мощный потенциал?
     Впрочем, в качестве наглядного примера, приведу здесь один известный сторонний источник, который мне всё же захотелось подключить к своей системе «Linux Mint 10». Речь идёт о репозитории «GetDeb», который мне понадобился только ради того, чтобы получать самые свежие версии весьма часто используемого мною видеоредактора «Avidemux». Остальные необходимые мне программы я легко обнаружил в официальных репозиториях «Linux Mint» и «Ubuntu», а также на описанном здесь «Launchpad». 
     Надо сказать, что вскоре после подключения мне пришлось заменить этот репозиторий его «зеркалом», поскольку оригинальный источник работал нестабильно и частенько отказывался подключаться, о чём мне периодически стал сообщать «Менеджер обновлений».
     Для общего представления, приведу здесь информацию с официального сайта «GetDeb»:
     «GetDeb» — неофициальный проект, призванный обеспечить доступ и лёгкую установку самых свежих версий приложений с открытой лицензией и распространяемых бесплатно для текущего выпуска дистрибутива «Ubuntu».
     Хранилище «GetDeb» дополняет официальные репозитории, предоставляя последние версии программ, а также новые приложения. В отличие от официальных пакетов, пакеты «GetDeb» не имеют предопределённого расписания выпусков — новые версии программного обеспечения размещаются в хранилище, как только они становятся доступными у их авторов. Вместо полного цикла тестирования применяется его сокращённый вариант, направленный лишь на подтверждение качества пакета: такая проверка имеет не столь высокие требования, какие предъявляются к качеству программных продуктов «Ubuntu» официально».
Читайте другие статьи цикла:
Пытливый взгляд гуманитария: как устроен «Linux»
Пытливый взгляд гуманитария: что мы знаем о «Linux»
Пытливый взгляд гуманитария: в недрах репозиториев. Часть первая
Где и как искать программы для «Linux»?

Комментариев нет: