Добавить в цитаты Настройки чтения

Страница 19 из 57

3.3. Программа rpm: локальная установка пакетов

3.3.1. Немного истории

Раньше, когда не было Интернет-репозиториев, во всех RH-совместимых дистрибутивах для установки, удаления и обновления пакетов использовалась программа rpm. RPM (аббревиатура oт Red hat Package Manager) - это один из самых "древних" менеджеров пакетов. Правда, в первой бета-версии дистрибутива Red Hat, которая увидела свет 29 июня 1994 года, использовался другой менеджер пакетов - RPP, Этот менеджер имел ряд существенных недостатков, поэтому уже во второй версии дистрибутива (1995 год) он был заменен на более "продвинутый" менеджер пакетов - RPM.

Сейчас программу RPM можно встретить во многих дистрибутивах Linux - Fedora, Mandriva, ALT Linux, ASP Linux и др. Но во вcex этим дистрибутивах данная программа остается только для обеспечения совместимости, а по умолчанию используются более совершенные системы управления пакетами, например yum и apt. Преимущества новых систем управления пакетами в том, что они поддерживают удаленные хранилища пакетов. Менеджер RPM, холь и поддерживает установку удаленного пакета (в смысле пакета» расположенного на удаленном сервере), но он не поддерживает концепцию репозиториев как таковую и не позволяет разрешать зависимости непосредственно на этапе установки. На страницах книги эта фраза звучит совсем не страшно, но на практике, поверьте, это очень неудобно. Представьте, что в вашей системе не установлена оболочка KDE, а вы очень хотите ее установить. В yum вам достаточно указать пакет kdebase, и KDE будет установлена. В случае с RPM вы увидите сообщение о том, что пакет kdebase зависит от нескольких пакетов, Когда же вы попытаетесь установить те пакеты, то обнаружите, что они, в свою очередь зависят от других пакетов. Нужно обладать действительно прочным запасом терпения, чтобы устанавливать большие программные комплексы с помощью RPM. Поэтому в большинстве случаев вы будете пользоваться программой yum, а о программе RPM вам нужно знать только потому, что это - традиция.

Но, ради справедливости, нужно отметить, что RPM намного удобнее для локальной установки пакетов. Например, дома у вас нет Интернета, вы на работе скачали все необходимые пакеты, записали на CD и принесли домой. Дома вам нужно их установить. В yum тоже есть возможность установки локальных пакетов, но эта программа ориентирована на работу с Интернет-репозиториями, поэтому даже при установке локального пакета она попытается связаться с репозиториями, и если обнаружит, что они недоступны (Интернета-то нету!), то у вас не получится установить даже локальный пакет. В случае с RPM при установке локального пакета у вас не возникнет ни малейшей проблемы.

3.3.2. Формат имени пакета

Еще со времен второй версии дистрибутива Red Hat принято файлы пакетов называть так:

--..rpm

Например:

program-0.94-2-i386.rpm

3.3.3. Использование RPM

Программа RPM не имеет графического интерфейса, поэтому запускать ее нужно в консоли или в терминале (команда меню Приложения→Системные→Терминал). Формат вызова программы rpm следующий:

rpm [-опции] [пакеты]

Напомню, что установка программ - это привилегия пользователя root, поэтому перед запуском программы нужно ввести команду su, чтобы "превратиться" в пользователя root.

3.3.3.1. Установка пакетов

Для установки пакета (или пакетов - в командной строке можно указать несколько пакетов) используется опция -i:

rpm - i пакет

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

rpm -ihv пакет

Предположим, что нам нужно установить пакеты program-base-0.94-2.i386.rpm, program-gui-0.94-2.i386.rpm и program-docs-0.94-2.i386.rpm, которые находятся в каталоге /home/den. При вызове rpm нам нужно указывать полный путь к пакетам (ведь RPM не использует хранилища пакетов, поэтому не "знает", где искать пакеты).

rpm -ihv /home/den/program-base-0.94-2.i386.rpm

rpm -ihv /home/den/program-gui-0.94-2.i386.rpm

rpm -ihv /home/den/program-docs-0.94-2.i346.rpm

Понятно, что намного проще сначала перейти в каталог /home/den, а потом уже вводить команду rpm.

rpm -ihv program-base-0.94-2.i386.rpm

rpm -ihv program-gui-0.94-2.i386.rpm

rpm -ihv program-docs-0.94-2.i386.rpm



Можно все эти пакеты указать в одной команде:

cd /home/den

rpm -ihv program-docs-0.94-2.i386.rpm program-gui-0.94-2.i386.rpm рrogram-docs-0.94-2.i386.rpm

Но еще проще использовать маски.

cd /home/den

rpm -ihv program*

В этом случае будут установлены все пакеты, которые начинаются со строки program.

Если пакет находится в Интернете, то вы можете указать URL пакета, например, так:

rpm -ihv ftp://dkws.org.ua/files/program-base-0.94-2.i386.rpm

Понятно, что перед вводом этой команды нужно предварительно подключиться к Интернету.

Программа rpm поддерживает только протокол FTP (File Transfer Protocol). Протокол HTTP (Hyper Text Transfer Protocol) не поддерживается.

Если при установке пакета будет выяснено, что он зависит от другого пакета, установка будет прервана до тех пор, пока вы не установите пакет, от которого зависит устанавливаемый вами пакет. Если такого пакета нет, то все равно вы можете установил нужный нам пакет. У программы RPM есть режим --nоdeps, позволяющий пропускать проверку зависимостей:

rpm -i --nodeps пакет

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

3.3.3.2. Удаление пакетов

Для удаления пакета используется опция -е. При удалении не нужно задавать полное имя файла пакета, достаточно названия самой программы. Например, если изначально пакет назывался program-base-0.94-2.i386.rpm, то для его удаления достаточно ввести команду: rpm -e program-basе

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

Вы хотите просмотреть список установленных программ? Тогда введите команду: rpm -qa

Менеджер пакетов выведет тысячи различных пакетов. Читать такой вывод, понятно, неудобно, поэтому можно перенаправить вывод программы rpm на программу, организующую постраничный просмотр):

rpm -qa | less

Теперь вы сможете "листать" на экране список пакетов с помощью клавиш ‹PageUp› и ‹PageDown›.

Если вы хотите просмотреть не весь список пакетов, а только пакеты, имена которых содержат определенyю строку, например program, тогда вам нужно использовать вот такую команду: rpm -qa | grep program

Если таких пакетов много, имеет смысл организовать постраничный просмотр:

rpm -qa | grep program | less

Только не перепутайте последовательность программ: сначала нужно вывести список всех установленных пакетов на фильтр grep, который отыщет среди них нужные нам пакеты, а уже после этого передать greр-список программе less.