tag: #N/S/EverGreen #N/T/Linux #N/T/Tool/Util #N/T/Public 2022-05-22 18:06, [Source](https://habr.com/ru/articles/301292/), Related: [[% rpm]], [[% apt]] Docs: #T/T/To/Do/Note/Refactor https://www.tecmint.com/configure-software-repositories-in-fedora/ ## Описание Шпаргалка по работе с пакетным менеджером Yum (Yellowdog Updater, Modified), который используется в популярных Linux дистрибутивах: RedHat, CentOS, Scientific Linux (и других). В целях экономии места вывод команд не представлен. ```bash yum-utils ``` ## Оглавление [[% yum-dnf#Команды yum]] [[% yum-dnf#Используемые или важные ключи.]] [[% yum-dnf#Cледующие команды доступны после установки пакета yum-utils]] [[% yum-dnf#Конфигурационные файлы Yum и их расположение]] [[% yum-dnf#Некоторые полезные плагины]] [[% yum-dnf#Работа Yum через прокси сервер]] #### mirrorlist.centos.org no longer resolve? [src](https://serverfault.com/questions/1161816/mirrorlist-centos-org-no-longer-resolve) ```bash sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/CentOS-*.repo sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/CentOS-*.repo sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/CentOS-*.repo yum clean all yum makecache # при необходимости выключаем специфичные репы yum-config-manager --disable tools-release-x86_64 # также, если указывается только мажорная версяи, а нужно полная, то возможно `sudo sed -i 's|\$releasever|7.9.2009|g' /etc/yum.repos.d/*.repo` ``` #### Команды yum ##### Отображение команд и опций ``` yum help ``` ##### список названий пакетов из репозиторий ``` yum list ``` ###### список всех доступных пакетов ``` yum list available ``` ###### список всех установленных пакетов ``` yum list installed ``` ###### установлен ли указанный пакет ``` yum list installed httpd ``` ###### список установленных и доступных пакетов ``` yum list all ``` ###### список пакетов, относящихся к ядру ``` #yum list kernel ``` ##### отображение информации о пакете ``` yum info httpd ``` ##### список зависимостей и необходимых пакетов ``` yum deplist httpd ``` ##### найти пакет, который содержит файл ``` yum provides "*bin/top" ``` ##### поиск пакета по имени и описанию ``` yum search httpd ``` ##### получить информацию о доступных обновлениях безопасности ``` yum updateinfo list security ``` ##### вывести список групп ``` yum grouplist ``` ###### вывести описание и содержимое группы ``` yum groupinfo "Basic Web Server" ``` ###### установка группы пакетов «Basic Web Server» ``` #yum groupinstall "Basic Web Server" ``` ###### удаление группы ``` #yum groupremove "Basic Web Server" ``` ##### Проверка на доступные обновления ``` yum check-update ``` ##### список подключенных репозиториев ``` yum repolist ``` ##### информация об определенном репозитории ``` yum repoinfo epel ``` ##### информация о пакетах в указанном репозитории ``` yum repo-pkgs epel list ``` ##### установить все пакеты из репозитория ``` yum repo-pkgs reponame install ``` ##### удалить пакеты установленные из репозитория ``` yum repo-pkgs reponame remove ``` ##### создать кэш ``` yum makecache ``` ##### проверить локальную базу rpm (поддерживаются параметры dependencies, duplicates, obsoletes, provides) ``` yum check yum check dependencies ``` ##### просмотр yum истории (вывод списка транзакций) ``` yum history list ``` ###### просмотр информации определенной транзакции (установленные пакеты, установленные зависимости) ``` yum history info 9 ``` ###### отмена транзакции ``` #yum history undo 9 ``` ###### повторить ``` #yum history redo 9 ``` ##### дополнительно можно просмотреть лог ``` cat /var/log/yum.log ``` ##### удалить пакеты сохраненные в кэше ``` yum clean packages ``` ##### Удалить кеш всех пакетов и метаданные ``` yum clean all ``` ##### установить пакет ``` yum install httpd ``` ##### удаление пакета ``` yum remove httpd ``` ##### обновить пакет ``` yum update httpd ``` ##### обновить все пакеты ``` yum update ``` ##### обновить до определенной версии ``` yum update-to ``` ##### установить из локальной директории (поиск/установка зависимостей будут произведены из подключенных репозиториев) ``` yum localinstall httpd.rpm ``` или ``` #yum install httpd.rpm ``` ##### установить с http ``` yum localinstall http://server/repo/httpd.rpm ``` ##### откатиться к предыдущей версии пакета ``` yum downgrade ``` ##### переустановка пакета (восстановление удаленных файлов) ``` yum reinstall httpd ``` ##### удаление ненужных более пакетов ``` yum autoremove ``` ##### создание локальных репозиториев (createrepo ставится отдельно) ``` createrepo ``` ##### установка обновлений по расписанию (yum-cron устанавливается отдельно) ``` yum-cron ``` #### Cледующие команды доступны после установки пакета yum-utils ##### найти из какого репозитория установлен пакет ``` find-repos-of-install httpd ``` ##### найти процессы, пакеты которых обновлены и требуют рестарта ``` needs-restarting ``` ##### запрос к репозиторию, узнать зависимости пакета, не устанавливая его ``` repoquery --requires --resolve httpd ``` ##### синхронизировать yum репозиторий updates в локальную директорию repo1 ``` reposync -p repo1 --repoid=updates ``` ##### проверить локальный репозиторий на целостность ``` verifytree URL ``` ##### завершить транзакции ``` yum-complete-transaction ``` ##### установить необходимые зависимости для сборки RPM пакета ``` yum-builddep ``` ##### управление конфигурационными опциями и репозиториями yum ``` yum-config-manager ``` ##### запрос к локальной базе yum, отображение информации о пакете (использованная команда, контрольная сумма, URL с которого был установлен и другое) ``` yumdb info httpd ``` ##### скачать rpm пакеты из репозитория ``` yumdownloader ``` ##### скачать src.rpm пакет из репозитория (должен быть подключен соответствующий репозиторий, например в '/etc/yum.repos.d/CentOS-Sources.repo' в CentOS) ``` yumdownloader --source php ``` ## Шаблон ```bash ``` ## Примеры: ##### Узнать какой репозиторий предоставляет пакет: ``` yum whatprovides '*bin/grep' repoquery -i {packagename} rpm -qi {packagename} ``` This will give you the actual repo name vs the unhelpful "installed" that yum returns. repoquery is provided by yum-utils. ##### PHP 7.4 on CentOS 8 [https://www.tecmint.com/install-php-on-centos-8/](https://www.tecmint.com/install-php-on-centos-8/ ```bash  yum install [http://rpms.remirepo.net/enterprise/remi-release-7.rpm](http://rpms.remirepo.net/enterprise/remi-release-7.rpm)  yum-config-manager --enable remi-php73  yum-config-manager --disable remi-php71  yum repolist enabled |grep php  * remi-php73: mirror.23media.com yum install php-pecl-mongo yum repolist yum install php-pecl-mongo yum install --enablerepo=remi* php-pecl-mongo yum install --enablerepo=remi-php72 php-pecl-mongo yum install --disablerepo=epel --enablerepo=remi-php72 php-pecl-mongo yum whatprovides /*php-pecl-mongo yum search php-pecl-mongo yum install php72-php-pecl-mongodb.x86_64 ``` ### Шпаргалки: ##### Проверить наличие обновлений или ошибок в настройке yum ```bash /bin/yum check-update ``` ##### Отключить репозиторий #T/T/To/Do/Note/Refactor https://www.if-not-true-then-false.com/2010/yum-remove-repo-repository-yum-disable-repo-repository/ ```bash yum repolist yum-config-manager --disable <repo_id> ``` ###### ```bash yum list available --showduplicates libcurl ``` #### Используемые или важные ключи. ##### ответить «yes» при запросе, ``` -y #yum update -y ``` ##### ответить «no» при запросе ``` --assumeno ``` ##### использовать Yum без плагинов ``` --noplugins ``` ##### или отключить определенный плагин ``` --disableplugin=fastestmirror ``` ##### включить плагины, которые установлены, но отключены ``` yum --enableplugin=ps ``` ##### включить отключенный репозиторий ``` yum update -y --enablerepo=epel ``` ##### отключить репозиторий ``` yum update -y --disablerepo=epel ``` ##### скачать пакеты, но не устанавливать (на Centos 7 x86_64 будут скачаны в '/var/cache/yum/x86_64/7/base/packages/') ``` yum install httpd --downloadonly ``` #### Конфигурационные файлы Yum и их расположение ##### Основной конфигурационный файл ``` /etc/yum.conf ``` ##### директория, с конфигурациями (например, yum плагины) ``` /etc/yum/ ``` ##### директория, содержащая информацию о репозиториях ``` /etc/yum.repos.d/ ``` ##### Некоторые опции yum.conf: ###### Директория, где yum хранит кэш и файлы базы (по умолчанию '/var/cache/yum') ``` cachedir=/var/cache/yum/$basearch/$releasever ``` ###### Определяет должен или нет Yum хранить кэш заголовков и пакетов после успешной установки. Значения: 0 или 1. (по умолчанию 1) ``` keepcache=1 ``` ###### уровень вывода отладочных сообщений. Значения: 1-10 (по умолчанию 2) ``` debuglevel=2 ``` ###### лог файл (по умолчанию '/var/log/yum.log') ``` logfile=/var/log/yum.log ``` ###### обновлять устаревшие пакеты ``` obsoletes=1 ``` ###### проверка подписи пакетов. Значения: 0 или 1 (по умолчанию 1) ``` gpgcheck=1 ``` ###### включение плагинов. Значения: 0 или 1 (по умолчанию 1) ``` plugins=1 ``` #### Некоторые полезные плагины ##### Добавляет опцию командной строки для просмотра ченжлога перед/после обновлениями ``` yum-plugin-changelog ``` ##### выбирает более быстрые репозитории из списка зеркал ``` yum-plugin-fastestmirror ``` ##### добавляет команды keys, keys-info, keys-data, keys-remove, которые позволяют работать с ключами. ``` yum-plugin-keys ``` ##### блокировать указанные пакеты от обновления, команда yum versionlock ``` yum-plugin-versionlock ``` ##### добавление команд yum verify-all, verify-multilib, verify-rpm для проверки контрольных сумм пакетов ``` yum-plugin-verify ``` #### Работа Yum через прокси сервер ##### Для всех пользователей: добавить в секцию [main] в /etc/yum.conf ``` proxy="http://server:3128" ``` ##### при необходимости указать пароль, добавить ``` proxy_proxy_username=user proxy_password=pass ``` ##### указать прокси для отдельного пользователя ``` export http_proxy="http://server:3128" ```