Yum — различия между версиями
Vaal (обсуждение | вклад) (Новая страница: «На странице представлены основные команды, необходимые для управления пакетами через м…») |
(нет различий)
|
Версия 15:18, 17 апреля 2017
На странице представлены основные команды, необходимые для управления пакетами через менеджер пакетов Yum.
Содержание
- 1 Предназначение Yum
- 2 Основные операции над пакетами
- 2.1 Поиск в репозиториях
- 2.2 Установка пакетов с помощью Yum
- 2.3 Установка пакетов из .rpm файлов
- 2.4 Обновление системы
- 2.5 Удаление пакетов
- 2.6 Использование Yum с прокси-сервером
- 2.7 Использование Yum для установки локального пакета, автоматически проверяя и удовлетворяя зависимости
- 2.8 Отображение приоритетов для всех установленных репозиториев
- 2.9 Поиск с помощью YUM в репозитории пакета по заданной строке
- 2.10 Запрос имеющихся пакетов из репозитория
- 2.11 Исключить из обновления yum определенные пакеты
- 2.12 Скачать пакет, не устанавливая его
- 2.13 Вывести зависимости пакета
- 2.14 Удаление ненужных зависимостей
- 3 При ошибках в работе пакетного менеджера
Предназначение 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