<< Предыдущий раздел | /\ Содержание | >> Следующий раздел

Что такое пакеты

Как уже отмечалось, весь Linux состоит из пакетов. В RedHat работу с пакетами выполняет программа rpm (RedHat Package Manager), а сами файлы, содержащие пакеты, имеют расширение .rpm. Кроме RedHat существует еще несколько дистрибутивов Linux, использующих rpm; самые известные -- Caldera, SuSE и KSI. Их так и называют -- rpm-системы.

Сразу после установки системы зачастую возникает необходимость доставить некоторые пакеты, забытые при инсталляции, или убрать лишние.

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

Некоторые расширения .rpm-файлов
РасширениеНазначение
.i386.rpm Пакет для Linux/Intel
.src.rpm Исходный код пакета (никогда не устанавливайте .src.rpm -- потом не удалите!)
.alpha.rpm Пакет для Linux/Alpha
.sparc.rpm Пакет для Linux/Sparc (Sun)
.ppc.rpm Пакет для Linux/PowerPC
.noarch.rpmПакет для всех архитектур (обычно содержит данные -- файлы конфигурации, шрифты и т.д.)

Кроме того, само имя пакета состоит из собственно названия и версии. Например, lynx-2.8.2-3.i386.rpm -- программа lynx, версия 2.8.2, build 3. К сожалению, формальных правил, позволяющих понять, где кончается имя и начинается версия, нет.

Файлы пакетов обычно расположены в одном из трех мест -- в дистрибутиве, в разделе дополнений (updates) или в резделе "пожертвований" (contrib). В ИЯФ для RedHat 5.2/Intel это соответственно

ftp://rdist.inp.nsk.su/pub/Linux/redhat-5.2/i386/RedHat/RPMS/

ftp://rdist.inp.nsk.su/pub/Linux/redhat-5.2/updates/i386/

ftp://rdist.inp.nsk.su/pub/Linux/contrib/libc6/i386/

Пакеты с исходными кодами всегда лежат в директориях SRPMS/, и содержат исходный код для всех архитектур.

Использование rpm

Хотя rpm выполняет все функции работы с пакетами (включая создание .i386.rpm из .src.rpm), сейчас рассмотрим лишь основные действия.

Установка. Для установки пакета используется команда rpm -i (Install), которой указывается полное имя файла, содержащего пакет. Пример:

rpm -i lynx-2.8.2-3.i386.rpm

Если пакет уже установлен, rpm откажется его устанавливать. Если же это новая версия (т.е. делается не установка, а обновление), то надо воспользоваться командой rpm -U (Upgrade); фирма RedHat рекомендует "для красоты" использовать форму rpm -Uvh -- при этом "прогресс" в установке показывается индикатором из символов "#". Пример:

bobby:~# rpm -Uvh wu-ftpd-2.4.2b18-2.1.i386.rpm
wu-ftpd                     ##################################################
bobby:~# _

Если требуется установить несколько пакетов, то можно указать их все в одной команде (через пробелы). Иногда это нужно -- например, при обновлении программы, состоящей из нескольких пакетов (например, Netscape), чтобы rpm не выдавал ошибок из-за зависимостей пакетов.

Удаление. Для удаления установленного пакета используется команда rpm -e (Erase). Ей указывается имя пакета (можно без версии), и без суффикса ".i386.rpm". Пример:

rpm -e lynx

При удалении нескольких пакетов их также стоит указать все вместе в одной команде, чтобы rpm не "ругался" на удаление пакета, от которого зависит другой пакет.

Информация. Чтобы узнать, установлен ли некий пакет, служит команда rpm -q (Query). Ей также указывается имя пакета, а она выдает его полное имя, если он установлен. Примеры:

bobby:~# rpm -q lynx
lynx-2.8.1-5
bobby:~# rpm -q seyon
package seyon is not installed
bobby:~# _

Маленькие и заглавные буквы в именах пакетов различаются. Поскольку часто не помнишь точное имя пакета (и уж тем более, какие буквы там на каком регистре), можно воспользоваться командой rpm -qa (Query All packages -- показать все пакеты) в сочетании с командой grep:

bobby:~# rpm -qa | grep -i after
AfterStep-1.5-0.7
AfterStep-APPS-1.5-0.3
bobby:~# _


<< Предыдущий раздел | /\ Содержание | >> Следующий раздел