В Интернете rpm-пакеты можно найти на различных серверах. По моему опыту наиболее удобным сервером в Интернете для поиска rpm-архивов является сервер http://rufus.w3.org (недаром он имеет другое имя http://rpmfind.net). На нем установлена поисковая система, которая позволяет упорядочивать список пакетов наиболее удобным для вас способом:
• по именам пакетов;
• по дистрибутивам;
• по группам приложений;
• по датам;
• по поставщикам (производителям) ПО.
Общий объем архива rpm-пакетов на этом сервере составляет более 66 Гигабайт. Очень богатые архивы хранят также два ftp-сервера в России: ftp://ftp.chg.ru/pub/Linux и ftp://ftp.nc.orc.ru/.
Необходимо только заметить, что если для перекачки пакетов из Интернета вы используете компьютер, работающий под Windows 95, то все имена пакетов у вас будут, скорее всего, искажены. Дело в том, что Windows "не любит" имена, в которых несколько точек (например, glib-1.0.6-3.i386.rpm) и заменит "лишние", по его мнению, точки на знаки подчеркивания - glib-1_0_6-3_i386.rpm. Так что после получения пакета (при переносе его на ПК с ОС Linux) желательно эти "исправления" устранить, вернувшись к исходным именам UNIX. Правда, делать это не обязательно, поскольку внутри rpm-пакет все равно правильно идентифицирован, но для единообразия и облегчения поиска файлов все же целесообразно.
Итак, вы нашли и скачали rpm-архив с исполняемой версией нужного вам пакета. Если вы ставите совершенно новый пакет (у вас не было на компьютере предыдущих версий этого ПО), то для установки пакета из этого архива достаточно перейти в тот каталог, где находится архив, и дать команду (для самых нетерпеливых: не спешите выполнять эту рекомендацию, прочитайте еще хотя бы пару абзацев)
[root]# rpm -i имя_rpm-архива
Если у вас была установлена предыдущая версия пакета, то в простейшем случае надо дать команду следующего формата:
[root]# rpm -U -force имя_rpm-архива
Здесь параметр -U говорит программе, что надо произвести обновление (upgrade) пакета, а опция -force требует безусловно (и без лишних вопросов) обновить все входящие в пакет файлы. Заметьте, что это очень сильное требование, и в некоторых случаях может быть лучше сохранить какие-то (например, конфигурационные) файлы от предыдущей версии. Если установка проходит нормально, и никаких дополнительных сообщений не появляется, то после завершения работы программы (после появления приглашения оболочки) вы можете пользоваться вновь установленным пакетом.
К сожалению, не всегда все так просто. Приведу конкретный пример. У меня был установлен RedHat Linux версии 5.2, причем программа Midnight Commander (mc) была версии 4.1.36. На ftp-сервере я увидел версию 4.5.30 этой программы (пакет mc-4.5.30-12.i386.rpm) и, естественно, решил ее поставить. Однако оказалось, что для этого необходимо установить еще 4 других пакета, о чем rpm мне и сообщила:
ошибка: неудовлетворенные зависимости:
redhat-logos нужен для mc-4.5.30-12
libglib-1.2.so.0 нужен для mc-4.5.30-12
libc.so.6(GLIBC_2.1) нужен для mc-4.5.30-12
libc.so.6(GLIBC_2.0) нужен для mc-4.5.30-12
Это не удивительно, если вы вспомните, что и при первоначальной установке Linux программа инсталляции тоже проверяла взаимозависимости пакетов и предлагала установить недостающие. Однако в случае инсталляции с CD-ROM все необходимые пакеты находятся на том же диске, а здесь мне пришлось вначале поискать нужные пакеты. Два пакета (redhat-logos-1.0.5-1.noarch.rpm и glibc-2.1.1-6.i386.rpm) я нашел без труда, после чего rpm перестала просить и GLIBC_2.0. А вот с libglib.so.1 вышло сложнее. Во-первых, я никак не мог найти пакета с таким названием. Как оказалось, такого пакета и не существует, файл libglib.so.1 входит в состав пакета glib-1.0.6-3.i386.rpm.
Программа rpm позволяет выяснить, какие файлы установит тот или иной пакет. Для этого надо дать следующую команду (только учтите, что текущим должен быть каталог, содержащий интересующий вас пакет):
[root]# rpm -qpl имя_rpm-архива
А для получения информации о том, для чего служит ПО, содержащееся в rpm-пакете, используйте команду
[root]# rpm -qpi имя_rpm-архива
Дело в том, что файлы RPM кроме собственно архива файлов содержат информацию о пакете, включая имя, версию и краткое описание. С помощью той же программы rpm вы можете просмотреть эту дополнительную информацию. Например, для пакета glib-1.0.6-3.i386.rpm вывод команды
[root]# rpm -qpi glib-1.0.6-3.i386.rpm
будет примерно таким:
Name: glib Relocations: (not relocateable)
Version: 1.0.6 Vendor: Red Hat Software
Release: 3 Build Date: Суб 10 Окт 1998 04:49:03