Меню Рубрики

Установка red hat package manager

ИТ База знаний

Полезно

— Узнать IP — адрес компьютера в интернете

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

Настройка программных телефонов

Корпоративные сети

Популярное и похожее

Установка VirtualBox 6.0 на Linux

Как восстановить пароль от root в CentOS 7

13 команд для проверки железа на сервере Linux

Установка Gnome на CentOS 6

RPM — установка и использование в Linux

Вам пакет нужен? Нет, я со своим.

RPM (Red Hat Package Manager) — это наиболее популярная утилита управления пакетами для Linux систем на базе Red Hat, таких как (RHEL, CentOS и Fedora). Она используется для установки, удаления, обновления, запроса и проверки пакетов программного обеспечения. Пакет состоит из архива файлов и информации о пакете, включая имя, версию и описание. Формат файлов также называется RPM.

Есть несколько способов откуда можно взять пакеты RPM: CD/DVD с программным обеспечением, CentOS Mirror, RedHat (нужен аккаунт) или любые открытые сайты репозитория.

В RPM используется несколько основных режимов команд: Install (используется для установки любого пакета RPM), Remove (используется для удаления, стирания или деинсталляции пакета), Upgrade (используется для обновления существующего пакета), Query (используется для запроса пакета) и Verify (используется для проверки пакетов RPM).

Рассмотрим это на примере. У нас есть пакет, и теперь посмотрим, что мы можем с ним делать.

Установка

Как узнать информацию о пакете RPM без установки?

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

Мы можем использовать параметр -ivh для установки определенного пакета, как показано ниже.

Как проверить установленный пакет RPM?

Мы можем использовать параметр -q с именем пакета, и он покажет, установлен ли пакет или нет.

Как вывести список всех файлов для определенного установленного пакета RPM?

Мы можем перечислить все файлы установленных пакетов rpm, используя опцию -ql с командой rpm.

Как вывести список недавно установленных пакетов RPM?

Мы можем использовать параметр -qa с параметром —last, в котором будут перечислены все недавно установленные пакеты rpm.

Как установить RPM пакет без зависимостей?

Мы можем использовать параметры -ivh с параметром —nodeps для проверки отсутствия зависимостей, чтобы установить конкретный пакет без зависимостей, как показано ниже.

Как заменить установленный пакет RPM?

Мы можем использовать параметры -ivh –replacepkgs для замены установленного пакета.

Удаление

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

Обновление

Как обновить установленный пакет RPM?

Для обновления пакета мы используем параметры -Uvh

Запрос

Как запросить все установленные пакеты?

Мы можем использовать параметры -a вместе с q для запроса всех установленных пакетов на сервере.

Как запросить конкретный пакет?

Мы можем использовать команду grep, чтобы узнать, установлен ли конкретный пакет или нет.

Как запросить файл, который принадлежит пакету RPM?

Чтобы узнать к какому пакету RPM относится файл /usr/lib64/libGeoIP.so.1.5.0. используем следующую команду.

Проверка

Как получить информацию для конкретного пакета?

Мы можем использовать параметры -i вместе с q, чтобы получить информацию для конкретного пакета, как показано ниже.

Мы можем проверить пакет, сравнив информацию об установленных файлах пакета с базой данных rpm, используя опцию -Vp.

Как проверить все пакеты RPM?

Мы можем проверить все установленные пакеты rpm, используя опцию -Va

Полезна ли Вам эта статья?

Пожалуйста, расскажите почему?

Нам жаль, что статья не была полезна для вас 🙁 Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!

Подпишитесь на нашу еженедельную рассылку, и мы будем присылать самые интересные публикации 🙂 Просто оставьте свои данные в форме ниже.

источник

Установка rpm пакетов в Linux

Рано или поздно нам приходится устанавливать программное обеспечение не из официальных репозиториев. Там есть далеко не все пакеты, и не всегда есть самые новые версии, только что вышедших программ. Очень часто разработчики размещают на своем официальном сайте пакеты для самых популярных дистрибутивов. Обычно это deb и rpm. Последний встречается немного реже, но если вы используете дистрибутив на базе Red Hat, вам нужен именно этот формат пакетов. Также в сети часто можно найти библиотеки и другие компоненты, которых нет в репозиториях в виде пакетов.

Раньше мы уже рассматривали установку deb пакетов в Ubuntu. А в этой статье будет подробно разобрана установка rpm пакетов в linux.

Что такое RPM?

RPM или RPM Package Manager — это пакетный менеджер, используемый в дистрибутивах Linux, основанных на Red Hat. Такое же название имеет формат файлов этого пакетного менеджера.

Этот формат не очень сильно отличается от того же самого Deb. Вы можете посмотреть их детальное сравнение в статье что лучше deb или rpm. Здесь же, только отмечу, что файл rpm — это обычный cpio архив, в котором содержатся сами файлы программы, а также метаданные, описывающие куда их нужно устанавливать. База всех установленных пакетов находится в каталоге /var/lib/rpm. Из особенностей можно отметить, что rpm не поддерживает рекомендованные пакеты, а также зависимости формата или-или.

Для управления пакетами, так же как и в Debian-системах, здесь существует консольная, низкоуровневая утилита с одноименным названием — rpm. Ее мы и будем рассматривать дальше в статье. В разных системах используются разные пакетные менеджеры, например в Red Hat используется Yum, в Fedora — DNF, а в OpenSUSE — zypper, но во всех этих системах будет работать утилита rpm.

Установка RPM пакетов в Linux

Давайте сначала рассмотрим синтаксис самой утилиты rpm:

$ rpm -режим опции пакет

Утилита может работать в одном из режимов:

  • -q — запрос, получение информации;
  • -i — установка;
  • -V — проверка пакетов;
  • -U — обновление;
  • -e — удаление.

Рассмотрим только самые интересные опции программы, которые понадобятся нам в этой статье:

  • -v — показать подробную информацию;
  • -h — выводить статус-бар;
  • —force — выполнять действие принудительно;
  • —nodeps — не проверять зависимости;
  • —replacefiles — заменять все старые файлы на новые без предупреждений;
  • -i — получить информацию о пакете;
  • -l — список файлов пакета;

Теперь, когда вы уже имеете представление как работать с этой утилитой, может быть рассмотрена установка rpm пакета в Linux. Самая простая команда установки будет выглядеть вот так:

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

Читайте также:  Установка mavericks с диска

Для того чтобы посмотреть более подробную информацию в процессе установки используйте опцию -v:

sudo rpm -iv имя_пакета.rpm

Также вы можете включить отображение статус бара в процессе установки:

sudo rpm -ivh имя_пакета.rpm

Чтобы проверить установлен ли пакет, нам уже нужно использовать режим запроса:

Также сразу можно удалить пакет, если он не нужен:

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

Для автоматической загрузки зависимостей во время выполнения установки rpm linux нужно использовать пакетный менеджер дистрибутива. Рассмотрим несколько команд для самых популярных RPM дистрибутивов. В RedHat и других дистрибутивах, использующих Yum используйте такую команду:

sudo yum —nogpgcheck localinstall имя_пакета.rpm

Первая опция отключает проверку GPG ключа, а вторая говорит, что мы будем выполнять установку локального пакета. В Fedora, с помощью dnf все делается еще проще:

sudo dnf install имя_пакета.rpm

Пакетный менеджер Zypper и OpenSUSE справляются не хуже:

sudo zypper install имя_пакета.rpm

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

Установка RPM файла в GUI

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

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

Выводы

Теперь вы знаете как выполняется установка rpm файла в Linux. На самом деле это очень просто и даже существует не только один способ, а целых несколько. Хотя графических утилит здесь немного меньше чем в Ubuntu. Но консольных утилит полностью хватает. Если у вас остались вопросы, спрашивайте в комментариях!

источник

Для системного администратора

LPI 101: Установка Linux и управление пакетами. Менеджер пакетов Red Hat (RPM)

В предыдущем разделе об управлении пакетами в Debian, мы дали вам краткий обзор управления пакетами. В этом разделе мы сосредоточимся на Red Hat Package Manager (менеджере пакетов Red Hat) или RPM, разработанном Red Hat. RPM и APT во многом схожи. Оба могут устанавливать и удалять пакеты. Оба хранят базу данных установленных пакетов. Оба имеют основные функции для командной строки, а также другие инструменты, предоставляющие более дружественный для пользователя интерфейс. Оба могут загружать пакеты из Интернет. Вообще говоря, RPM-пакетов не так много, как пакетов для APT, хотя команда rpm обладает большими возможностями. Другим отличем является то, что RPM не хранит информацию об установленных пакетах в вашей системе в той же расширенной форме, что и dpkg.

Red Hat представила RPM в 1995. В настоящее время RPM это система управления пакетами используемая для создания пакетов в Linux Standard Base (LSB). Опции команды rpm сгруппированы в три подгруппы для:

  • Опроса и проверки пакетов
  • Установки, обновления и удаления пакетов
  • выполнения других функций.

В этом учебнике мы сосредоточимся на первых двух. Вы можете найти информацию о других функциях в man страницах для rpm.

Мы также должны отметить, что rpm это имя основной команды, используемой с RPM, а .rpm это расширение, используемое для файлов RPM. Поэтому “rpm-пакет” или “xxx rpm-пакет” будет означать, вообще говоря, файл RPM, тогда как “rpm” обычно будет означать команду.

Установка и удаление пакетов RPM

Как и в предыдущем разделе мы рассмотрим проблемы, обнаружившиеся при установке Dr Geo в системе Fedora Core 4 в разделе Компиляция и установка программ. Вы можете вернуться к Листингу 17, в котором мы пропустили команду guile-config.

Введение в rpm

Команда rpm может устанавливать пакеты из локальной файловой системы или из Интернет, используя http или ftp. В Листинге 35 показана установка пакета guile-devel с использованием команды rpm -ivh и сетевого источника пакета.

Листинг 35. Установка guile-devel при помощи rpm

]# rpm -ivh http://download.fedora.redhat.com/pub/fedora\
> /linux/core/4/i386/os/Fedora/RPMS/guile-devel-1.6.7-2.i386.rpm
Retrieving http://download.fedora.redhat.com/pub/fedora/linux/core/4/i386/os/Fedora/
RPMS/guile-devel-1.6.7-2.i386.rpm
Preparing. ########################################### [100%]
1:guile-devel ########################################### [100%]

Отметим, что опция -v предоставляет подробный вывод, а опция -h показывает знак “решетка” (#), для индикации прогресса. Если вы хотите перед установкой из сети проверить пакет, то возможно вам придется сначала загрузить его и только потом установить. Мы поговорим о проверке пакетов чуть позже, а сейчас давайте используем команду wget для получения пакета с его последующей установкой из локальной файловой системы без использования опций -vh. Вывод показан в Листинге 36.

Листинг 36. Установка guile-devel из файла

]# wget http://download.fedora.redhat.com/pub/fedora/\
> linux/core/4/i386/os/Fedora/RPMS/guile-devel-1.6.7-2.i386.rpm
—22:29:58— http://download.fedora.redhat.com/pub/fedora/linux/core/4/i386/os/Fedora/
RPMS/guile-devel-1.6.7-2.i386.rpm
=> `guile-devel-1.6.7-2.i386.rpm’
Resolving download.fedora.redhat.com. 209.132.176.221
Connecting to download.fedora.redhat.com[209.132.176.221]:80. connected.
HTTP request sent, awaiting response. 200 OK
Length: 481,631 [application/x-rpm]
100%[====================================>] 481,631 147.12K/s ETA 00:00
22:30:02 (140.22 KB/s) — `guile-devel-1.6.7-2.i386.rpm’ saved [481,631/481,631]
[root@attic4

]# ls guil*
guile-devel-1.6.7-2.i386.rpm
[root@attic4

]# rpm -i guile-devel-1.6.7-2.i386.rpm

Переустановка rpm-пакета

Если вы самостоятельно выполнили указанные выше команды, то на втором шаге вы вероятно увидели ошибку (или на первом, если в вашей системе пакет guile-devel уже установлен), сообщающую, что guile-devel уже установлен. Для того, чтобы обойти это, вам следует использовать опцию -e для удаления (или стирания) rpm-пакета перед его повторной установкой, как показано в Листинге 37. Это также следует сделать, если вам необходимо переустановить rpm-пакет, из-за того, что вы случайно удалили его некоторые файлы.


Листинг 37. Удаление guile-devel

Принудительная установка rpm-пакета

Иногда удаление rpm-пакета не удобно, особенно если имеются некоторые программы, зависящие от него. Например, если вы попытаетесь удалить пакет guile вместо guile-devel, то можете увидеть нечто подобное Листингу 38, где многие установленные пакеты зависят от пакета guile, а потому удаление не разрешается.

Листинг 38. Попытка удалить guile.

]# rpm -q -R guile-devel
/bin/sh
/usr/bin/guile
guile = 5:1.6.7
rpmlib(CompressedFileNames)

Не стоит говорить, что в этом случае не нужно удалять все пакеты, зависящие от этого, решением данной проблемы является принудительная установка rpm-пакета при помощи опции —force. В Листинг 39 мы проиллюстрировали принудительную переустановку guile-devel из файла загруженного в Листинге 36.

Листинг 39. Установка guile-devel с опцией —force.

Принудительное удаление rpm-пакета

Существует альтернатива принудительной установке при помощи опции —force, что может понадобиться в некоторых случаях. Вы можете удалить rpm-пакет, используя опцию —nodeps, отключающую внутреннюю проверку зависим�стей. Вообще вам следует делать это только если вы знаете что делаете и только если вы собираетесь исправить проблемы с зависимостями путем переустановки пакета. Примером может служить необходимость по некоторым причинам сменить версию пакета на более раннюю и желание убедиться, что все следы поздней версии были удалены. Команда, которую вам следует использовать для удаления пакета guile без проверки зависимостей выглядит так

Читайте также:  Установка канального вентилятора с обратным клапаном

Опцию —nodeps можно также использовать и при установке rpm-пакета. И опять это не рекомендуется, но иногда необходимо.

Обновление RPM пакетов

Теперь, когда вы знаете как устанавливать и удалять RPM-пакеты, обратим свой взор на обновление до новых версий. Это похоже на установку, за тем исключением, что мы используем опцию -U или -F вместо опции -i. Различие между двумя этими опциями состоит в том, что опция -U обновляет существующие пакеты или устанавливает пакет, если он не был установлен, тогда как опция -F только обновляет или freshen (освежает) уже установленные пакеты. Вследствии этого опция -U используется чаще, особенно когда командная строка содержит список RPM-пакетов. Таким образом, удаленные пакеты устанавливаются, а установленные — обновляются. Листинг 40 показывает результат попытки обновления guile-devel до текущей версии, а затем он удаляется и попытка обновления повторяется (теперь это срабатывает как установка).

Листинг 40. Обновление guile-devel.

]# rpm -Uvh guile-devel-1.6.7-2.i386.rpm
Preparing. ########################################### [100%]
package guile-devel-1.6.7-2 is already installed
[root@attic4

]# rpm -e guile-devel
[root@attic4

Опрос RPM-пакетов

Как вы могли понять из приведенных нами примеров установка rpm-пакетов требует указания полного имени файла (или URL), вроде guile-devel-1.6.7-2.i386.rpm. С другой стороны, удаление rpm-пакета требует только имени пакета, вроде guile-devel. Также как и с APT, RPM хранит внутреннюю базу установленных пакетов, позволяющую вам манипулировать установленными пакетами, используя имя пакета. В этой части учебника мы рассмотрим какая же информация из этого хранилища доступна для вас, при помощи опции -q (от query) для команды rpm.

Базовый запрос просто спрашивает пакет установлен или нет. Добавьте опцию -i и вы получите информацию о пакете. Отметим, что для установки, обновления и удаления пакетов вам потребуются права суперпользователя (root), но не-root пользователи могут выполнять запросы к базе данных rpm-пакетов.

Листинг 41. Отображение информации о guile-devel.

]$ rpm -q guile-devel
guile-devel-1.6.7-2
[ian@attic4

]$ rpm -qi guile-devel
Name : guile-devel Relocations: (not relocatable)
Version : 1.6.7 Vendor: Red Hat, Inc.
Release : 2 Build Date: Wed 02 Mar 2005 11:04:14 AM EST
Install Date: Thu 08 Sep 2005 08:35:45 AM EDT Build Host: porky.build.redhat.com
Group : Development/Libraries Source RPM: guile-1.6.7-2.src.rpm
Size : 1635366 License: GPL
Signature : DSA/SHA1, Fri 20 May 2005 01:25:07 PM EDT, Key ID b44269d04f2a6fd2
Packager : Red Hat, Inc.
Summary : Libraries and header files for the GUILE extensibility library.
Description :
The guile-devel package includes the libraries, header files, etc.,
that you will need to develop applications that are linked with the
GUILE extensibility library.
You need to install the guile-devel package if you want to develop
applications that will be linked to GUILE. You also need to install
the guile package.

RPM пакеты и файлы в них

У вас будет часто появляться желание узнать что же находится внутри пакета или к какому пакету принадлежит некоторый файл. Для вывода списка файлов пакета guile-devel, используйте опцию -ql, как показано в Листинге 42. В этом пакете много файлов, но мы покажем только часть этого вывода.

Листинг 42. Отображение информации о guile-devel.

]$ rpm -ql guile-devel
/usr/bin/guile-config
/usr/bin/guile-snarf
/usr/include/guile
/usr/include/guile/gh.h
/usr/include/guile/srfi
/usr/include/guile/srfi/srfi-13.h
/usr/include/guile/srfi/srfi-14.h
/usr/include/guile/srfi/srfi-4.h
/usr/include/libguile
/usr/include/libguile.h
.

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

Опрос файла пакета

Приведенная выше команда это запрос к базе данных RPM установленных пакетов. Если вы только что загрузили пакет и хотите получить ту же информацию, то вы можете воспользоваться опцией -p (для файла пакета) в вашем запросе с указанием имени файла пакета (также как при установке пакета). Листинг 43 повторяет запросы из Листинга 41 к файлу пакета вместо базы данных RPM.

Листинг 43. Отображение информации для файла пакета guile-devel.

]$ rpm -qp guile-devel-1.6.7-2.i386.rpm
guile-devel-1.6.7-2
[ian@attic4

]$ rpm -qpi guile-devel-1.6.7-2.i386.rpm
Name : guile-devel Relocations: (not relocatable)
Version : 1.6.7 Vendor: Red Hat, Inc.
Release : 2 Build Date: Wed 02 Mar 2005 11:04:14 AM EST
Install Date: (not installed) Build Host: porky.build.redhat.com
Group : Development/Libraries Source RPM: guile-1.6.7-2.src.rpm
Size : 1635366 License: GPL
Signature : DSA/SHA1, Fri 20 May 2005 01:25:07 PM EDT, Key ID b44269d04f2a6fd2
Packager : Red Hat, Inc.
Summary : Libraries and header files for the GUILE extensibility library.
Description :
The guile-devel package includes the libraries, header files, etc.,
that you will need to develop applications that are linked with the
GUILE extensibility library.
You need to install the guile-devel package if you want to develop
applications that will be linked to GUILE. You also need to install
the guile package.

Опрос всех установленных пакетов

Опция -a применяет ваш запрос ко всем установленным пакетам. Это приводит к очень большому выводу информации, поэтому обычно его используют вместе с одним или несколькими фильтрами, таким как sort для сортировки листинга, more или less для разбивки на страницы, wc для получения количества пакетов или файлов, или grep для поиска пакетов имя которых вы знаете не точно. Листинг 44 показывает следующие запросы:

  1. Отсортированный список всех пакетов в системе.
  2. Количество всех пакетов в системе.
  3. Количество всех файлов во всех пакетах системы.
  4. Количество всех файлов документации установленных при помощи RPM.
  5. Поиск всех пакетов с именем, содержащим «guile» (с учетом регистра).

Листинг 44. Запросы ко всем пакетам.

]$ rpm -qa | sort | more
4Suite-1.0-8.b1
a2ps-4.13b-46
acl-2.2.23-8
acpid-1.0.4-1
alchemist-1.0.36-1
alsa-lib-1.0.9rf-2.FC4
alsa-utils-1.0.9rf-2.FC4
.
[ian@attic4

]$ rpm -qa | wc -l
874
[ian@attic4

]$ rpm -qal | wc -l
195681
[ian@attic4

]$ rpm -qald | wc -l
31881
[ian@attic4

]$ rpm -qa | grep -i «guile»
guile-devel-1.6.7-2
guile-1.6.7-2

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

Поиск владельца файла.

Учитывая, что теперь вы можете вывести список всех пакетов и всех файлов пакета, можно сказать, что теперь у вас есть все, чтобы обнаружить к какому пакету принадлежит некий файл. Однако команда rpm предоставляет опцию -f, для помощи в обнаружении пакета, являющегося владельцем файла. В нашем примере с Dr Geo в разделе Компиляция и установка программ, нам потребовалась guile-config. Теперь у нас есть установленный пакет guile-devel, этоn исполняемый файл то что нам нужно. В Листинге 45 показано как использовать команду which для получения полного пути к команде guile-config, и полезный пример использования вывода в качестве входных параметров для команды rpm -qf. Отметим, что апострофы, окружающие `which guile-config` наклонены в обратную сторону. Другим способом использования в bash является использование $(which guile-config)

Листинг 45. К какому пакету принадлежит guile-config.

]$ which guile-config
/usr/bin/guile-config
[ian@attic4

Читайте также:  Установка раскладки клавиатуры arch

]$ rpm -qf `which guile-config`
guile-devel-1.6.7-2
[ian@attic4

]$ rpm -qf $(which guile-config)
guile-devel-1.6.7-2

RPM зависимости

Ранее мы видели, что не можем стереть пакет guile из-за зависимостей. В добавок к файлам RPM пакет может содержать различные функции, от которых могут зависеть другие пакеты. В нашем примере многим другим пакетам требуются функции, предоставляемые пакетом guile. И мы не сможем установить guile-devel, если мы еще не установили в системе guile. А как только guile-devel будет установлен, он станет еще одной причиной почему guile не может быть удален.

Обычно все это работает хорошо. Если вам необходимо установить несколько пакетов одновременно, некоторые из которых могут зависеть от других, просто предоставьте полный список вашей команде rpm -Uvh и она проанализирует зависимости и выполнит установку в верном порядке.

Вместо попыток стереть установленный пакет и получения сообщения об ошибке, команда rpm предоставляет опцию для опроса установленных пакетов или файлов пакетов для поиска от чего они зависят или что требуют. Это опция —requires, которая может быть сокращена до -R. В Листинге 46 перечислены функции, необходимые для guile-config. Добавьте опцию -p и используйте полные RPM-имена, если хотите опросить файл пакета вместо базы данных RPM.

Листинг 46. Требования guile-config.

]$ rpm -qR guile-devel
/bin/sh
/usr/bin/guile
guile = 5:1.6.7
rpmlib(CompressedFileNames)

В добавок к поиску функциональности, необходимой пакету, вам может потребоваться найти, какому файлу требуется данная функциональность (что делается при попытке удаления пакета). Листинг 47 иллюстрирует это для двух функций, требующихся guile-devel. Поскольку вывод может включать повторы, мы также показали как можно отфильтровать вывод при помощи sort и uniq для вывода каждого требуемого пакета только один раз.

Листинг 47. Что необходимо /usr/bin/guile и guile.

]$ rpm -q —whatrequires /usr/bin/guile guile
guile-devel-1.6.7-2
g-wrap-1.3.4-8
guile-devel-1.6.7-2
[ian@attic4

]$ rpm -q —whatrequires /usr/bin/guile guile | sort|uniq
guile-devel-1.6.7-2
g-wrap-1.3.4-8


Целостность RPM пакетов.

Чтобы убедиться в целостности RPM-пакетов, они содержат MD5 или SHA1 дайджест, а также могут иметь цифровую подпись. Пакеты с цифровой подписью обычно требуют публичный ключ для проверки. Чтобы проверить целостность файла RPM-пакета используйте опцию rpm —checksig (сокращенно -K). Обычно вы найдете полезным добавление опции -v для подробного вывода.

Листинг 48. Проверка целостности файла пакета guile-devel.

]$ rpm —checksig guile-devel-1.6.7-2.i386.rpm
guile-devel-1.6.7-2.i386.rpm: (sha1) dsa sha1 md5 gpg OK
[ian@attic4

]$ rpm -Kv guile-devel-1.6.7-2.i386.rpm
guile-devel-1.6.7-2.i386.rpm:
Header V3 DSA signature: OK, key ID 4f2a6fd2
Header SHA1 digest: OK (b2c61217cef4a72a8d2eddb8db3e140e4e7607a1)
MD5 digest: OK (cf47354f2513ba0c2d513329c52bf72a)
V3 DSA signature: OK, key ID 4f2a6fd2

Вы можете получить строку вывода, похожую на :

V3 DSA signature: NOKEY, key ID 16a61572

Это означает, что этот пакет подписан, но у вас в базе данных RPM нет необходимого публичного ключа. Отметим, что ранние версии RPM могли обеспечивать другую верификацию.

Если пакет подписан и вы хотите проверить соответствует ли он подписи, то вы должны найти файл соответствующей подписи и импортировать его в базу данных RPM. Сначала вам следует загрузить ключ, а затем проверить его отпечатки пальцев перед тем как импортировать его с использованием команды rpm —import. Для более подробной информации смотри Man страницы для rpm. Вы также можете найти большое количество информации об подписанных бинарных файлах на www.rpm.org.

Проверка установленного пакета

Подобно проверке целостности rpm-пакета вы можете захотеть проверить целостность установленных файлов, используя rpm -V. Эти шаги необходимы, чтобы убедиться в том, что файлы не изменились с тех пор, как были установлены из rpm-пакета. Как показано в Листинге 49 если пакет все еще не был изменен, то ничего не выводится.

Листинг 48. Проверка установленного пакета guile-devel.

Давайте войдем как root и удалим /usr/bin/guile-config вместе и заменим /usr/bin/guile-snarf копией /bin/bash и попытаемся сделать то же самое вновь. Результат приведен в Листинге 49.

Листинг 49. Подделка пакета guile-devel.

]# rm /usr/bin/guile-config
rm: remove regular file `/usr/bin/guile-config’? y
[root@attic4

]# cp /bin/bash /usr/bin/guile-snarf
cp: overwrite `/usr/bin/guile-snarf’? y
[root@attic4

]# rpm -V guile-devel
missing /usr/bin/guile-config
S.5. T /usr/bin/guile-snarf

Этот листинг показывает нам, что /usr/bin/guile-snarf имеет не верную MD5 сумму, размер файла и не прошел проверку mtime. Вы можете исправить это стерев пакет и переустановив его, или принудительно переустановив, как было показано ранее. Если вы удаляте пакет, то ждите сообщения об ошибке, поскольку один из его файлов отсутствует.

Настройка RPM

RPM редко требует настройки. В старых версиях rpm вы могли производить изменения в /etc/rpmrc для управления операциями во время работы. В последних версиях этот файл был перенесен в /usr/lib/rpm/rpmrc, где он автоматически заменяется, при обновлении rpm-пакета, что приводит к потере любых сделанных вами изменений. Если требуется некая специфичная для системы конфигурация, то она все еще может быть добавлена в /etc/rpmrc, а индивидуальная конфигурация для пользователей должна находиться в .rpmrc.in в домашнем каталоге пользователя. Вы можете найти описание формата этих файлов в книге Maximum RPM (Смотри Ресурсы).

Если вы хотите просмотреть конфигурацию rpmrc, то для этого имеется специальная опция команды rpm. Используйте команду:


Репозитории и другие средства

Теперь вы можете удивиться откуда же берутся все эти rpm пакеты, как их можно найти и как управлять обновлением своей системы. Если у вас дистрибутив, основанный на RPM (RPM-based), то скорее всего ваш дистрибутив имеет репозиторий (repository) пакетов. Ваш дистрибутив может также предоставлять инструменты для установки пакетов из репозитория или обновления вашей исходной системы. Эти инструменты могут быть как графическими, так и работать в командной строке. Примерами могут быть:

* YaST (SUSE)
* up2date (Red Hat)
* yum — Yellow Dog Updater Modified (Fedora и другие)
* Mandrake Software Management (Mandriva)

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

Если вы не можете найти какой-то особенный RPM при помощи встроенных средств вашей системы, другим прекрасным ресурсом для поиска RPM-пакетов является сервер Rpmfind.Net

Этот пост October 14, 2007 at 8:31 pm опубликовал molse в категории Linux, Экзамен LPI. Желающие могут оформить RSS подписку на комменты. Both comments and trackbacks are currently closed.

источник

Добавить комментарий

Adblock
detector