Предположим, что вы уже точно определились со своими потребностями и выяснили тем или иным способом название «линуксовой» программы, которая вам нужна. Как её раздобыть и установить?
Прежде всего, проверьте — может быть, нужная вам программа уже установлена. Обычно в качестве названия необходимой «программы» удаётся выяснить не название конкретного исполняемого файла, а название проекта, в рамках которого эта программа разрабатывается (хотя они нередко совпадают или как минимум похожи). Почти наверняка название проекта будет совпадать или составлять часть имени соответствующего пакета в ALT Linux. Для примера представим, что мы заинтересовались (прочитав в рассылке) известным почтовым клиентом для Linux — mutt, который часто упоминается с эпитетами «мощный» и «гибкий».
Проверим, нет ли среди установленных пакета с похожим именем:
tester@tacit:~$ rpm -qa | grep -i mutt
mutt-1.4.2.1i-alt5
Команда 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
Список выводится довольно длинный (на один экран не вмещается), так что наверняка можно разобраться во всех тонкостях этого почтового клиента, внимательно почитав документацию. В конце списка обнаруживается несколько руководств, которые можно просмотреть командой 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
Команда rpm -ql имя_пакета
выводит список всех файлов, которые принадлежат указанному пакету. Это работает только для уже установленных пакетов, и, соответственно, уже существующих в системе файлов. Имя_пакета можно указывать без номера версии, как в нашем примере. Профильтровав список файлов в поисках строки bin
— названия каталога для исполняемых файлов — мы получили список всех утилит в этом пакете.
Не все из входящих в дистрибутив пакетов (а это обычно несколько тысяч) включаются в установку по умолчанию. Для поиска среди имеющихся в дистрибутиве, но ещё не установленных пакетов можно воспользоваться менеджером пакетов APT (команда apt-cache search
) или любой графической оболочкой к нему, например, alterator-packages или synaptics. В дистрибутиве APT обычно настроен таким образом, что сразу после установки в кеше APT хранится база сведений обо всех вошедших в дистрибутив пакетах, даже если они разложены по нескольким компакт-дискам. Установить найденный пакет можно стандартными средствами apt-get
или названных графических оболочек.
В дистрибутив попадают только специально отобранные пакеты, которые проходят тестирование и, возможно, дополнительную настройку, чтобы представить пользователю уже заранее приспособленную для определённых задач систему. В дистрибутив нельзя включить произвольную программу из произвольного источника, причина тому — зависимости между программами. Любая несогласованность в зависимостях (например, более старая или более новая версия системной библиотеки) может привести к неработоспособности программы или даже к невозможности её установить. Поэтому дистрибутив составляется не просто из множества пакетов, а из целостного репозитория, в котором строго согласованы версии всех пакетов. Та часть этого репозитория, которая не вошла в дистрибутив, называется несколько жаргонным, но очень точным полусловом 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 как с единым целым, никаких противоречий и конфликтов не возникнет.
Иногда нужная программа в дистрибутиве есть, но уже достаточно старая, так что какие-то необходимые возможности появились после того, как вышел дистрибутив, и хочется программу обновить. Бывают ли «обновления» и где их взять?
Для каждого дистрибутива в обязательном порядке выпускаются и публикуются в Сети обновления. Например, для дистрибутива ALT Linux 3.0 Compact их можно найти на официальном ftp-сервере и, естественно, на его зеркалах. Такие обновления делаются в том случае, если уже после выпуска дистрибутива в вошедших в него программах обнаруживаются серьёзные ошибки, в первую очередь, угрожающие безопасности системы. Но и только: такие обновления не предназначены для включения новых возможностей (с новыми возможностями приходят новые ошибки!), поэтому регулярно делать такие обновления крайне желательно, а вот новой функциональности вы там не найдёте.
Строки для указания репозитория с обновлениями обычно присутствуют в /etc/apt/sources.list
сразу после установки, но могут быть закомментированы. Вам потребуется только раскомментировать нужные (например, выбрав подходящее ftp-зеркало) и выполнить apt-get update && apt-get upgrade
.
Новые версии программ для старого дистрибутива — это как раз та цель, которую преследуют создатели репозитория backports. Однако тут никто не может дать гарантий, что новые версии будут работать так же стабильно, как и старые. Работать с этими репозиториями следует так же, как и с updates, указав в их списке источников APT, конкретные инструкции приведены на сайте репозитория, там же публикуются новости об обновлённых версиях программ.
Откуда же берутся новые версии? Теперь уже никак нельзя умолчать о том главном ежедневно обновляемом репозитории, срезы которого становятся основой для отбора пакетов в дистрибутивы ALT Linux — Sisyphus. Именно в этом репозитории разработчики периодически публикуют новые версии своих пакетов (а в пакетах — новые версии программ), и весь процесс его разработки олицетворяет постоянное совершествование программ2.
В Sisyphus включены конечно же, не все существующие свободные программы для Linux, но очень и очень многие — сейчас в нём более пяти тысяч исходных пакетов. Регулярно в нём появляются новые пакеты, ранее не собиравшиеся, но также регулярно удаляются некоторые из старых, которые потеряли актуальность, интерес разработчиков или работоспособность (или даже всё это вместе).
Sisyphus может служить чем-то вроде рекомендательного списка для выбора среди невероятного количества альтернатив, предлагаемых миром свободных программ. Чем больше программа используется, чем она перспективнее, надёжнее, эффективнее — тем больше вероятность, что в ALT Linux Team найдётся тот, кто соберёт её для Sisyphus. Для пользователей дистрибутивов ALT Linux Sisyphus — это тот источник, о котором не нужно забывать, если программа не нашлась ни в дистрибутиве, ни в обновлениях. Информацию о переходе на Sisyphus с конкретных дистрибутивов ALT Linux можно найти на сайте разработчиков.
Если требуется «точечное» обновление конкретного пакета, подходящая версия которого имеется в Sisyphus, то самый разумный подход — написать в специальный список рассылки и предложить собрать этот пакет для вашего дистрибутива. Не исключено, что вам придётся сделать это и самостоятельно, но не стоит этого бояться — благодаря технологии hasher, используемой в ALT Linux для сборки пакетов, пересобрать пакет из Sisyphus для backports можно за несколько стандартных шагов. Для пересборки потребуется только исходный пакет из Sisyphus и полный репозиторий (contrib) соответствующего дистрибутива.
Широко распространено представление, что «по-настоящему крутые линуксоиды» сами должны компилировать («собирать») программы из исходных текстов. В нашем изложении эта возможность не случайно оказалась на последнем месте: если сработал хоть один из вышеназванных способов — собирать из исходных текстов не следует. В общем случае, даже если единственный способ доступа к репозиторию для вас — это модем, всё равно выйдет быстрее и удобнее использовать готовую пакетную базу, чем самостоятельно собирать уже кем-то собранные программы.
Тому можно назвать огромную массу технических и нетехнических причин: хотя бы то, что в репозитории Sisyphus приняты весьма высокие стандарты на качество сборки, и поэтому если она там есть, то наверняка на достаточно профессиональном уровне. В сборке часто оказывается множество подводных камней, которые могут сделать этот процесс долгим, мучительным и безрезультатным. А следы даже безрезультатной сборки, проведённой без должных предосторожностей прямо в рабочей системе, могут эту самую систему повредить до полной неработоспособности.
И не всегда следы неудачной установки так легко стереть. Представьте себе ситуацию, когда для сборки программа устанавливает в системе свою собственную версию стандартной системной библиотеки (если собирать от имени суперпользователя, это пройдёт гладко и незаметно). А если сборочная процедура взятого из непроверенного источника ПО содержит злонамеренные фрагменты, которые вы собственной рукой запустите с правами суперпользователя?
После перечисленных ужасов может возникнуть вопрос: но ведь не боги программы собирают? Именно так, и если вы в состоянии сделать это грамотно (или готовы научиться) и обойти все подводные камни (или готовы наткнуться) — отчего же не поделиться результатами своего труда с другими? Соберите пакет для Sisyphus!
1Полусловом — потому, что это не целое слово, а традиционно сложившееся сокращённое имя для соответствующего каталога на ftp.
2Недаром репозиторий назван в честь Сизифа.