Сведения о документе

Как получить нужную программу

Предположим, что вы уже точно определились со своими потребностями и выяснили тем или иным способом название «линуксовой» программы, которая вам нужна. Как её раздобыть и установить?

Поиск среди установленных пакетов

Прежде всего, проверьте — может быть, нужная вам программа уже установлена. Обычно в качестве названия необходимой «программы» удаётся выяснить не название конкретного исполняемого файла, а название проекта, в рамках которого эта программа разрабатывается (хотя они нередко совпадают или как минимум похожи). Почти наверняка название проекта будет совпадать или составлять часть имени соответствующего пакета в ALT Linux. Для примера представим, что мы заинтересовались (прочитав в рассылке) известным почтовым клиентом для Linux — mutt, который часто упоминается с эпитетами «мощный» и «гибкий».

Проверим, нет ли среди установленных пакета с похожим именем:


tester@tacit:~$ rpm -qa | grep -i mutt
mutt-1.4.2.1i-alt5

Пример 1. Поиск среди установленных пакетов

Команда rpm -qa выводит список всех пакетов, установленных в системе, затем этот список был передан фильтру grep для поиска нужно строки, специально вызванному с ключом -i, чтобы возможные различия в прописных/строчных буквах в названии не помешали найти нужное. В результате найдено полное (включающее номер версии и сборки) имя установленного пакета.

Итак, пакет mutt уже установлен, теперь нужно узнать, как с ним обращаться — для этого полезно выяснить, какая в этом пакете имеется документация.


tester@tacit:~$ rpm -qld mutt 
/usr/share/doc/mutt-1.4.2.1i/COPYRIGHT
/usr/share/doc/mutt-1.4.2.1i/ChangeLog
. . .
/usr/share/man/man1/flea.1.gz
/usr/share/man/man1/mutt.1.gz
/usr/share/man/man1/muttbug.1.gz
/usr/share/man/man5/mbox.5.gz
/usr/share/man/man5/muttrc.5.bz2

Пример 2. Список документации для пакета

Список выводится довольно длинный (на один экран не вмещается), так что наверняка можно разобраться во всех тонкостях этого почтового клиента, внимательно почитав документацию. В конце списка обнаруживается несколько руководств, которые можно просмотреть командой man.

К сожалению, не во всех пакетах дела с документацией обстоят так же хорошо, как в mutt. Иногда дело ограничивается коротеньким README, иногда нет и того. В таком плачевном случае остаётся выяснить, какие в пакете есть утилиты (их может быть и несколько, и необязательно их названия будут напоминать имя пакета), и попробовать добиться от них краткой справки по использованию, вызвав с ключом --help.


tester@tacit:~$ rpm -ql mutt | grep bin 
/usr/bin/flea
/usr/bin/mutt
/usr/bin/muttbug
/usr/bin/pgpewrap
/usr/bin/pgpring

Пример 3. Список исполняемых файлов пакета

Команда rpm -ql имя_пакета выводит список всех файлов, которые принадлежат указанному пакету. Это работает только для уже установленных пакетов, и, соответственно, уже существующих в системе файлов. Имя_пакета можно указывать без номера версии, как в нашем примере. Профильтровав список файлов в поисках строки bin — названия каталога для исполняемых файлов — мы получили список всех утилит в этом пакете.

Дистрибутив

Не все из входящих в дистрибутив пакетов (а это обычно несколько тысяч) включаются в установку по умолчанию. Для поиска среди имеющихся в дистрибутиве, но ещё не установленных пакетов можно воспользоваться менеджером пакетов APT (команда apt-cache search) или любой графической оболочкой к нему, например, alterator-packages или synaptics. В дистрибутиве APT обычно настроен таким образом, что сразу после установки в кеше APT хранится база сведений обо всех вошедших в дистрибутив пакетах, даже если они разложены по нескольким компакт-дискам. Установить найденный пакет можно стандартными средствами apt-get или названных графических оболочек.

Contrib

В дистрибутив попадают только специально отобранные пакеты, которые проходят тестирование и, возможно, дополнительную настройку, чтобы представить пользователю уже заранее приспособленную для определённых задач систему. В дистрибутив нельзя включить произвольную программу из произвольного источника, причина тому — зависимости между программами. Любая несогласованность в зависимостях (например, более старая или более новая версия системной библиотеки) может привести к неработоспособности программы или даже к невозможности её установить. Поэтому дистрибутив составляется не просто из множества пакетов, а из целостного репозитория, в котором строго согласованы версии всех пакетов. Та часть этого репозитория, которая не вошла в дистрибутив, называется несколько жаргонным, но очень точным полусловом contrib1.

Именно в contrib остаются те пакеты, которым не посчастливилось войти в дистрибутив. И именно в contrib нужно искать в первую очередь, потому что если программа найдётся там, то она гарантированно установится в вашей системе. А если ей потребуется что-то ещё для установки, то гарантированно найдутся все нужные пакеты нужных версий либо в дистрибутиве, либо в том же contrib.

Contrib может распространяться вместе или параллельно с дистрибутивом на компакт-дисках. Так, contrib к дистрибутиву ALT Linux 3.0 Compact включён в DVD-версию дистрибутива. Кроме того, полные репозитории, включающие contrib, к этому и другим дистрибутивам доступны на официальном ftp-сервере ALT Linux и его зеркалах.

Для работы с contrib следует воспользоваться всё тем же стандартным менеджером пакетов APT. Единственное, что для этого требуется — указать соответствующий репозиторий в списке источников APT (указать URL в /etc/apt/sources.list или выполнить apt-cdrom add, подробности см. в документации по APT). После этого можно работать с пакетной базой дистрибутива и contrib как с единым целым, никаких противоречий и конфликтов не возникнет.

В погоне за новым

Иногда нужная программа в дистрибутиве есть, но уже достаточно старая, так что какие-то необходимые возможности появились после того, как вышел дистрибутив, и хочется программу обновить. Бывают ли «обновления» и где их взять?

Updates

Для каждого дистрибутива в обязательном порядке выпускаются и публикуются в Сети обновления. Например, для дистрибутива ALT Linux 3.0 Compact их можно найти на официальном ftp-сервере и, естественно, на его зеркалах. Такие обновления делаются в том случае, если уже после выпуска дистрибутива в вошедших в него программах обнаруживаются серьёзные ошибки, в первую очередь, угрожающие безопасности системы. Но и только: такие обновления не предназначены для включения новых возможностей (с новыми возможностями приходят новые ошибки!), поэтому регулярно делать такие обновления крайне желательно, а вот новой функциональности вы там не найдёте.

Строки для указания репозитория с обновлениями обычно присутствуют в /etc/apt/sources.list сразу после установки, но могут быть закомментированы. Вам потребуется только раскомментировать нужные (например, выбрав подходящее ftp-зеркало) и выполнить apt-get update && apt-get upgrade.

Backports

Новые версии программ для старого дистрибутива — это как раз та цель, которую преследуют создатели репозитория backports. Однако тут никто не может дать гарантий, что новые версии будут работать так же стабильно, как и старые. Работать с этими репозиториями следует так же, как и с updates, указав в их списке источников APT, конкретные инструкции приведены на сайте репозитория, там же публикуются новости об обновлённых версиях программ.

Sisyphus

Откуда же берутся новые версии? Теперь уже никак нельзя умолчать о том главном ежедневно обновляемом репозитории, срезы которого становятся основой для отбора пакетов в дистрибутивы ALT Linux — Sisyphus. Именно в этом репозитории разработчики периодически публикуют новые версии своих пакетов (а в пакетах — новые версии программ), и весь процесс его разработки олицетворяет постоянное совершествование программ2.

В Sisyphus включены конечно же, не все существующие свободные программы для Linux, но очень и очень многие — сейчас в нём более пяти тысяч исходных пакетов. Регулярно в нём появляются новые пакеты, ранее не собиравшиеся, но также регулярно удаляются некоторые из старых, которые потеряли актуальность, интерес разработчиков или работоспособность (или даже всё это вместе).

Sisyphus может служить чем-то вроде рекомендательного списка для выбора среди невероятного количества альтернатив, предлагаемых миром свободных программ. Чем больше программа используется, чем она перспективнее, надёжнее, эффективнее — тем больше вероятность, что в ALT Linux Team найдётся тот, кто соберёт её для Sisyphus. Для пользователей дистрибутивов ALT Linux Sisyphus — это тот источник, о котором не нужно забывать, если программа не нашлась ни в дистрибутиве, ни в обновлениях. Информацию о переходе на Sisyphus с конкретных дистрибутивов ALT Linux можно найти на сайте разработчиков.


Не спешите включать его в список источников APT. Sisyphus — репозиторий заведомо нестабильный. Самое новое — не значит самое проверенное и гарантированно работающее!

Если требуется «точечное» обновление конкретного пакета, подходящая версия которого имеется в Sisyphus, то самый разумный подход — написать в специальный список рассылки и предложить собрать этот пакет для вашего дистрибутива. Не исключено, что вам придётся сделать это и самостоятельно, но не стоит этого бояться — благодаря технологии hasher, используемой в ALT Linux для сборки пакетов, пересобрать пакет из Sisyphus для backports можно за несколько стандартных шагов. Для пересборки потребуется только исходный пакет из Sisyphus и полный репозиторий (contrib) соответствующего дистрибутива.

Самостоятельная сборка из исходных текстов


Когда б вы знали, из какого сора...

Широко распространено представление, что «по-настоящему крутые линуксоиды» сами должны компилировать («собирать») программы из исходных текстов. В нашем изложении эта возможность не случайно оказалась на последнем месте: если сработал хоть один из вышеназванных способов — собирать из исходных текстов не следует. В общем случае, даже если единственный способ доступа к репозиторию для вас — это модем, всё равно выйдет быстрее и удобнее использовать готовую пакетную базу, чем самостоятельно собирать уже кем-то собранные программы.

Тому можно назвать огромную массу технических и нетехнических причин: хотя бы то, что в репозитории Sisyphus приняты весьма высокие стандарты на качество сборки, и поэтому если она там есть, то наверняка на достаточно профессиональном уровне. В сборке часто оказывается множество подводных камней, которые могут сделать этот процесс долгим, мучительным и безрезультатным. А следы даже безрезультатной сборки, проведённой без должных предосторожностей прямо в рабочей системе, могут эту самую систему повредить до полной неработоспособности.

И не всегда следы неудачной установки так легко стереть. Представьте себе ситуацию, когда для сборки программа устанавливает в системе свою собственную версию стандартной системной библиотеки (если собирать от имени суперпользователя, это пройдёт гладко и незаметно). А если сборочная процедура взятого из непроверенного источника ПО содержит злонамеренные фрагменты, которые вы собственной рукой запустите с правами суперпользователя?

После перечисленных ужасов может возникнуть вопрос: но ведь не боги программы собирают? Именно так, и если вы в состоянии сделать это грамотно (или готовы научиться) и обойти все подводные камни (или готовы наткнуться) — отчего же не поделиться результатами своего труда с другими? Соберите пакет для Sisyphus!


1Полусловом — потому, что это не целое слово, а традиционно сложившееся сокращённое имя для соответствующего каталога на ftp.

2Недаром репозиторий назван в честь Сизифа.

Сведения о документе