Настройка и работа в Linux
adb5321d

Средства управления пакетами и установки программ


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

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

Должен сказать, что при выборе из двух равнофункциональных (по описанию) программ я всегда отдаю предпочтение той, которая имеет откомпилированный вариант. Не потому, что компиляция из исходников - такое уж сложное дело. Просто мне представляется (возможно, необоснованно) - если автор не поленился собрать бинарный пакет, значит, по крайней мере он сам не каждый день находит ошибки в своей программе... Хотя, насколько я понимаю, распространение только в виде исходников может быть принципиальной и позицией разработчика.

Существует четыре формата бинарных пакетов (по крайней мере, о других мне неизвестно, если кто знает - подскажите) - rpm, deb, tgz и slp. Как говорилось во введении, это один из отличительных признаков основных линий дистрибутивов Linux. При этом широко распространены только два первых, представляющих линии Red Hat и Debian, соответственно: даже в Suse Linux, первооснова которого - дистрибутив Slackware с форматом tgz, используется формат rpm. Формат же slp применяется, насколько мне известно, только в одном дистрибутиве - Stampede, который пока не дошел до стадии релиза.

Для исходных текстов обычный формат - упомянутый выше архив tar.gz. Хотя в составе дистрибутивов исходники представлены в формате используемых в нем пакетов (rpm - в клона Red Hat, deb - в производных Debian).

Существует большое количество средств для работы с пакетами. Собственно, почти каждый уважающий себя дистрибутив имеет собственную программу такого рода. Наличие ее - один из показателей зрелости и самостоятельности системы. Однако мы молчаливо предполагаем, что используемый нами дистрибутив - это Mandrake RE, использующий, как и всякий потомок Red Hat, его формат пакетов. И потому перво-наперво остановимся на средствах управления пакетами rpm.

Из которых первейшими для нас на первом этапе будут kpackage, входящая в среду KDE, и rpmdrake, представляющая собой разработку Mandrake-Soft. Не потому, что они лучше других, просто это штатные средства рассматриваемого дистрибутива.

Как уже говорилось в разделе о kfm, kpackage автоматически вызывается из этого файлового менеджера при щелчке на rpm-файле. Имеющем обычно, как нетрудно догадаться, вид *.rpm. Хотя и не обязательно - из-за описанных выше особенностей файловой системы Linux расширение имени файла не связано жестко с его типом.

Разумеется, kpackage можно и просто открыть, набрав соответствующую команду в окне терминала, в строке минитерминала или выбрав из стартового меню (где она находится в пункте Полезное - More, прошу прощения за языковую мешанину, но в русифицированном KDE именно так).

После этого возникает окно с двумя панелями, в левой из которых - дерево установленных rpm-пакетов, разбитых на группы (Base, Development, X11 и т.д.), правая же, имеющая две закладки (Свойства и Список файлов) пока пуста. Если мы щелкнем на конкретном пакете из дерева, то в левой панели будет несколько переключателей и экранных кнопок, а в правой появится информация о пакете, включающая:


  • название;
  • резюме, в котором обычно кратко сказано о назначении программы;
  • номер версии программы;
  • название группы, к которой программа принадлежит;
  • более или менее подробное описание пакета;
  • размер, дата установки и сборки, автор и еще некоторые сведения того же рода.


Разумеется, можно открыть (через Файл - Открыть, Открыть недавнее или Открыть URK) и неустановленный пакет, находящийся на дистрибутивном CD ROM, каком-либо ином стационарном или сменном носителе, а также в сети, локальной или глобальной (сиречь в Интернете). В этом случае к списку свойств файла может добавиться еще одно - неудовлетворенные зависимости, где будет указано, какой еще пакет (или пакеты) необходимо установить для нормального функционирования данного.

Смысл закладки Список файлов понятен, отвечая своему названию. Перед установкой пакета неплохо ознакомиться с ним внимательно. Чтобы знать потом, где искать исполнимые файлы, где - документацию, и т.д. Впрочем, устанавливаемые компоненты пакетов rpm в подавляющем большинстве попадают в подкаталоги каталога /usr: исполнимые модули - в /usr/bin, документация - в /usr/doc, библиотеки - в /usr/lib и т.д.

Разобравшись с описанием и структурой пакета, можно его и установить, для чего нажимается кнопка Вперед в левом нижнем углу окна; разумеется, можно и отказаться от установки, нажав кнопку Отмена, в этом случае восстановится исходный вид дерева каталогов.

Однако прежде не худо обратить внимание на переключатели:


  • Обновить;
  • Заменить файлы;
  • Заменить пакеты;
  • Проверять зависимости;
  • Тест (не ставить).


Смысл их становится понятным после знакомства с опциями программы rpm (о которой чуть ниже). По умолчанию включены опции Обновить, Заменить пакеты и Проверять зависимости; в большинстве случаев установки новых пакетов все это можно оставить без изменений. Однако обновление уже установленного пакета требует включения опции заменить файлы.

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

В общем, на мой взгляд, пакет kpackage интуитивно понятен и прост в использовании. Чего я не сказал бы о пакете rpmdrake. После его запуска (с рабочего стола, из минитерминала или любым другим способом) возникает окно, сходное с таковым kpackage: та же панель с деревом каталогов слева и пустая панель - справа; последняя при щелчке на имени rpm-пакета заполняется описанием его свойств и списком входящих файлов. Внизу правой панели - кнопка Установка.

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

Так вот, возможность открытия неустановленного пакета обнаруживается в пункте Настройка. Для чего нужно ни много, ни мало, сменить источник установки: по умолчанию это дистрибутивный CD ROM. Но можно выбрать local, http и ftp, если вам нужно открыть пакет с локального диска, http- или ftp-сервера, соответственно.

Если же требуется использовать какой-либо сменный носитель (от дискеты до съемного винчестера), необходимо добавить новый источник инсталляции: выбрать через меню Настройка - Добавить источник инсталляции - Local, после чего в появившейся панели ввести имя источника (например, local_n) и соответствующий ему каталог (например, /mnt/floppy для дискеты).

Мне все это кажется достаточно запутанным, но при отсутствии KDE или нежелании им пользоваться - пригодно к употреблению, если вы не желаете отказываться от графического режима. Если же командная строка отвращения не вызывает, проще всего прибегнуть к традиционному средству - команде rpm. Запускается она следующим образом: rpm -[список опций] имена пакетов rpm



Имен пакетов может быть указано сколько угодно. Основных же опций - три: инсталляция (i), деинсталляция (u - от uninstall) и запрос (q - от querry). Ну а список дополнительных опций (таких, как принудительная инсталляция, обновление пакета, проверка зависимостей и т.д.) можно получить, запустив rpm без опций и аргументов.

Кроме этого, с помощью команды rpm можно создать собственный пакет (прибегнув к опции -b, от build). Другое его преимущество - простое обращение с взаимозависимыми пакетами: для их нормальной установки обычно достаточно просто привести их одним списком в качестве аргументов. Если это не помогает - можно воспользоваться дополнительной опцией f (от force).

Следует помнить, что любые манипуляции с rpm-пакетами в любой программе требуют прав суперпользователя. При этом rpmdrake и, иногда, kpackage (при низких уровнях защиты) сами запрашивают пароль администратора и при правильном его вводе автоматически переходят в этот режим, возвращаясь в обычный пользовательский при выходе из программы. Для работы же с командой rpm нужно позаботиться об этом самому, с помощью команд su и exit.

Однако, как я уже говорил, формат пакетов не исчерпывается rpm. И, возможно, нужная вам программа распространяется в составе какого-либо другого дистрибутива. В этом случае можно прибегнуть к команде alien, позволяющей конвертировать пакеты из одного формата в другой. Она распространяется с дистрибутивом Debian и его производными, но может быть получена из Интернет (например, с http://kitenet.net/programs/alien/ или любого крупного файлового архива). Использовать ее очень просто в качестве аргумента указывается имя пакета, подлежащего конвертации, а опции определяют, в какой формат он должен быть конвертирован. По умолчанию, без указания опций, происходит конвертация в формат deb, но программа может также работать с пакетами rpm, slp и tgz.

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

Ничего принципиально сложного в этом нет. Архив с исходными текстами распаковывается в подходящий каталог (обычно для этого используются каталоги /usr/local/src или $HOME/src). После чего в нем появляется соответствующий имени программы подкаталог. В правильно оформленной для распространения программе каталог этот должен содержать файлы вроде README, INSTALL, Makefile, configure. Первые два содержат (или не содержат, в зависимости от лени разработчика) описание программы и процесса ее установки.

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

Для приведение файла Makefile в соответствие с последними используется команда ./configure (именно так, по понятным причинам она обязательно запускается из текущего каталога).

После этого наступает очередь команды make. Она входит в состав любого дистрибутива и я не слышал, чтобы она не устанавливалась по умолчанию. Для использования ее обычно требуются права суперпользователя (приобретаемые командой su с указанием административного пароля): большинство компилируемых программ по умолчанию устанавливаются в каталог /usr/local.

И так, запускаем программу make. Она производит сборку исходных текстов в т.н. объектные модули (нечто проде оверлеев в DOS-программах). Процесс этот может занять довольно долгое время, он сопровождается всякого рода сообщениями (следует надеяться, что не об ошибках - в этом случае процесс прекращается).

По завершении его, то есть возврату приглашения командной строки, собранную программу нужно установить, то есть записать исполнимые модули, библиотеки, документацию и прочее туда, где им надлежит быть впредь (как уже говорилось, обычно в соответствующие подкаталоги /usr/local). Для этого дается команда make install, которая и осуществляет этот процесс.

Наконец, завершающий шаг, необязательный, но крайне желательный - это освобождение каталога с исходниками от продуктов жизнедеятельности команды make, то есть объектных модулей. Делается это командой make clean. На чем процесс установки можно считать законченным и командой exit вернуться в обычный пользовательский режим.

Таким образом, мы рассмотрели большинство файловых манипуляций под Linux. Забыв лишь об одном - что не весь мир работает в этой системе. Конечно, пользователи Windows могут позволить себе просто не знать о существовании других систем. Пользователи же Linux должны помнить о принудительной силе реальности. Реальность же такова, что без Windows обойтись вряд ли удастся. Хотя бы для обмена данными со своими консервативными коллегами. И потому следует рассмотреть вопрос


Содержание раздела