Yum

Материал из VAAL-WIKI
Версия от 13:23, 13 июля 2017; Vaal (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

На странице представлены основные команды, необходимые для управления пакетами через менеджер пакетов 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 из системы.

Удаление пакетов вместе с зависимостями (аналогично утилиты apt в deb-дистрибутивах) возможно 2-мя способами:

1. можно добавить в файл /etc/yum.conf строчку

clean_requirements_on_remove=1

подробнее можно прочитать в man yum.conf

2. можно воспользоваться плагином Remove with leaves

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

Использование 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/
https_proxy = https://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 определенные пакеты

Заходим в /etc/yum.conf.

Прописываем параметр exclude= и в нем прописываем через запятую пакеты, например, для xmms строчка выглядит так:
exclude=xmms-a52dec,xmms-cdread,xmms-mad,xmms-devel,xmms-wma,xmms,xmms-lirc,xmms-alarm,xmms-coverviewer,xmmsctrl


Скачать пакет, не устанавливая его

 yumdownloader httpd

Вывести зависимости пакета

yum deplist package

Удаление ненужных зависимостей

yum install yum-tools
package-cleanup --leaves

Эта команда выдаст список пакетов-"листьев", от которых не зависят никакие пакеты в системе.

Проверьте не попали ли в этот список какие-то ценные пакеты, после чего можете удалить все пакеты из списка простым bash-скриптом наподобие:

package-cleanup --leaves | xargs yum remove -y

При ошибках в работе пакетного менеджера

  • почистите кэш
yum clean all
  • попробуйте создать кеш заново
yum makecache

При обращении в форум/конференцию/рассылку за помощью всегда предоставляйте информацию о настроенных репозиториях

yum repolist

Ссылки

Шпаргалка по Yum
Создание собственного локального репозитория CentOS
Установка и Настройка Сервера Обновлений для Дистрибутивов CentOS и Fedora