Работа с Yum
Материал из База знаний проекта Russian Fedora
На странице представлены основные команды, необходимые для управления пакетами через менеджер пакетов Yum.
Предназначение 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 [y/N]:
Установка пакетов из .rpm файлов
Для установки .rpm пакета с автоматическим разрешением зависимостей раньше использовалась команда localinstall. Теперь можно использовать обычный install. Так команда:
yum install foo.rpm
автоматически найдет зависимости пакета foo.rpm в репозиториях (если сможет) и предложит их установить.
Может возникнуть проблема в отсутствии или неизвестной GPG подписи у RPM пакета, результатом чего будет отказ в установке и как следствие следующая ошибка
Публичный ключ для foo.rpm не установлен
Для того чтобы обойти это(в случае если Вы доверяете источнику предоставляющему пакет) необходимо выключить проверку GPG ключей, добавив в конце команды параметр --nogpgcheck
Обновление системы
Обновление системы осуществляется с помощью одной команды - update. Таким образом:
yum update
обновит всю вашу систему. А команда
yum update foo
обновит только пакет foo.
Удаление пакетов
Удаление пакетов осуществляется с помощью команд remove или erase. Так,
yum remove foo
удалит пакет 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/<br />export ftp_proxy=http://yourproxy:8080/
Для использования wget через прокси-сервер, добавте следующие строки в /etc/wgetrc
http_proxy = http://yourproxy:8080/ <br />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 "/^\[/h; /priority *=/{ G; s/\n/ /; s/ity=/ity = /; p }" | sort -k3n
Поиск с помощью YUM в репозитории пакета по заданной строке
Поиск пакетов, содержащих нужную строку в названии или описании пакета.
yum search строка_для_поиска | less
Запрос имеющихся пакетов из репозитория
Найти все пакеты, доступные из определенного репозитория, например RPMforge. Пакеты уже установленные из этого репозитория показываться не будут.
yum --disablerepo "*" --enablerepo "rpmforge" list available
При ошибках в работе пакетного менеджера
- почистите кэш
yum clean all
- попробуйте создать кеш заново
yum makecache
При обращении в форум/конференцию/рассылку за помощью всегда предоставляйте информацию о настроенных репозиториях
yum repolist
Смотрите также Yum плагины
