Советы по работе с Yum и RPM. Показать все установленные ключи GPG

Предназначение Yum

Yum создан для решения следующих задач:

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

Основные операции над пакетами

Поиск в репозиториях

Для поиска в репозиториях с помощью yum используются три команды: list , search и provides .

Самый простой способ поиска - использование команды list . Команда list просматривает названия пакетов и их версии в поисках совпадений. Например, для просмотра пакетов с названием tsclient используйте:

Yum list tsclient

Команда search ищет в названии пакета и его описании указанную строку. Например, для поиска пакетов связанных с PalmPilot введите:

Yum search PalmPilot

Команда provides позволяет производить поиск пакетов содержащих указанный файл. Например, для поиска пакетов содержащих libneon введите:

Yum provides libneon

Все команды поиска поддерживают групповые символы? и * (экранируйте их символом \ для корректной обработки bash). К примеру, при для поиска пакетов начинающихся на tsc введите:

Yum list tsc\*

для поиска пакетов, содержащих файлы в директории /etc/httpd

Yum provides /etc/httpd\*

или для поиска определённых команд/программ, например для поиска mc(midnight commander)

Yum provides \*/mc

в результате получим следующий вывод

1:mc-4.7.4-1.fc14.i686: User-friendly text console file manager and visual shell Репозиторий: base Совпадения с: Имя файла: /usr/share/mc Имя файла: /usr/libexec/mc Имя файла: /etc/mc Имя файла: /usr/bin/mc

Установка пакетов с помощью Yum

Для установки пакетов с помощью yum используется параметр install

Для установки tsclient введите:

Yum install tsclient

Yum автоматически разрешит (если сможет) зависимости, и предложит установить их:

============================================================================= Package Arch Version Repository Size ============================================================================= Installing: tsclient i386 0.132-6 base 247 k Installing for dependencies: rdesktop i386 1.4.0-2 base 107 k Transaction Summary ============================================================================= Install 2 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 355 k Is this ok :

Установка пакетов из.rpm файлов

Для установки.rpm пакета с автоматическим разрешением зависимостей раньше использовалась команда localinstall . Теперь можно использовать обычный install . Так команда:

Yum install foo.rpm

автоматически найдет зависимости пакета foo.rpm в репозиториях (если сможет) и предложит их установить.
Может возникнуть проблема в отсутствии или неизвестной GPG подписи у RPM пакета, результатом чего будет отказ в установке и как следствие следующая ошибка

Публичный ключ для foo.rpm не установлен

Для того чтобы обойти это (в случае если Вы доверяете источнику предоставляющему пакет) необходимо выключить проверку GPG ключей, добавив в конце команды параметр --nogpgcheck

Обновление системы

Обновление системы осуществляется с помощью одной команды - update . Таким образом:

Yum update

обновит всю вашу систему. А команда

Yum update foo

При использовании обоих методов работоспособность сохраняется.

Использование Yum с прокси-сервером

Для того чтобы заставить Yum работать через прокси-сервер необходимо добавить следующий параметр в /etc/yum.conf:

Proxy=http://yourproxy:8080/

где - yourproxy это имя прокси-сервера, а 8080 это порт прокси-сервера. Если сервер требует аутентификации, вы можете указать логин как:

Proxy=http://username:password@yourproxy:8080/

RPM Package Manager позволяет использовать прокси-переменные среды. Это может быть задано в /etc/profile или специфизированно для конкретного пользователя в файле ~/.bash_profile::

Export http_proxy=http://yourproxy:8080/
export ftp_proxy=http://yourproxy:8080/

Для использования wget через прокси-сервер, добавте следующие строки в /etc/wgetrc

Http_proxy = http://yourproxy:8080/
ftp_proxy = http://yourproxy:8080/

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

Использование Yum для установки локального пакета, автоматически проверяя и удовлетворяя зависимости

yum --nogpgcheck localinstall packagename.arch.rpm

Отображение приоритетов для всех установленных репозиториев

Вы можете получить список всех установленных у вас репозиториев - yum repolist all . Однако, он не показывает индекс приоритета. Вот строка необходимая для этого. Если номер не определен, по умолчанию, это самый низкий приоритет (99).

Cat /etc/yum.repos.d/*.repo | sed -n -e "/^\}