Что такое YUM?
Yellow dog Updater, Modified (YUM) — открытый консольный менеджер RPM-пакетов.
RPM (рекурсивный акроним RPM Package Manager — RPM — менеджер пакетов; ранее раскрывался как Red Hat Package Manager — менеджер пакетов Red Hat
YUM создан для решения следующих задач:
- Поиск пакетов в репозиториях
- Установка пакетов из репозиториев
- Установка пакетов из .rpm файлов, с разрешением зависимостей с помощью репозиториев
- Обновление системы
- Удаление ненужных пакетов
- Фактически, YUM представляет собой оболочку для RPM, обеспечивающую работу с репозиториями.
Содержание
YUM – поиск пакетов, файлов
Для поиска используются три опции YUM – list, search, provide.
Поиск пакета по его названию выполняется с помощью опции list. Например, найти пакет packagename можно так:
# yum list packagename
Если вы не помните имя пакета полностью – можно воспользоваться подстановкой значения с помощью символа *, не забывая его заэкранировать с помощью символа обратного слеша для правильной обработки вашим командным интерпретатором (например – bash):
# yum list packagen*
Вместо * (замена любого количества символов) можно использовать знак ? – который заменяет один любой символ в поиске. Например, в имени пакета screen – 6 символов. Для поиска по первым 4-м символам введите:
# yum list scre??
…
screen.i686 4.0.3-16.el6 @base
Эти символы замены (? и *) допускаются и в большинстве остальных команд YUM.
Поиск пакета в списках по его имени (можно неполному слову) и в его описании:
# yum search scre
…
screen.i686 : A screen manager that supports multiple logins on one terminal
…
Интересная опция – provides. Она используется для поиска пакета, содержащего указанный в поиске файл/каталог. К примеру, требуется узнать к какому пакету относится файл httpd.conf. Для этого воспользуемся такой командой:
# yum provides */httpd.conf
…
httpd-2.2.15-15.el6.centos.1.i686 : Apache HTTP Server
Repo : base
Matched from:
В результате мы получаем Apache Server, который после установки будет содержать файл httpd.conf.
Другой вариант – надо найти пакет, который хранит свои файлы в каталоге /etc/httpd:
# yum provides /etc/httpd*
Установка, обновление, удаление пакетов с помощью YUM
Установка производится с помощью опции install. В процессе – YUM попробует обнаружить все зависимости и предложит их установить:
# yum install mc
…
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
mc i686 1:4.7.0.2-3.el6 base 1.6 M
Installing for dependencies:
gpm-libs i686 1.20.6-12.el6 base 28 k
perl i686 4:5.10.1-127.el6 base 9.7 M
perl-Module-Pluggable i686 1:3.90-127.el6 base 38 k
perl-Pod-Escapes i686 1:1.04-127.el6 base 30 k
perl-Pod-Simple i686 1:3.13-127.el6 base 210 k
perl-libs i686 4:5.10.1-127.el6 base 591 k
perl-version i686 3:0.77-127.el6 base 49 k
…
Можно указать несколько пакетов для установки, разделяя их запятыми.
Что бы YUM не запрашивал подтверждения установки пакета и/или его зависимостей – используйте ключ -y:
# yum -y install mc
Переустановить пакет:
# yum reinstall packagename
Для установки пакета, предварительно загруженного на сервер – воспользуйтесь опцией localinstall. Например – установка пакета atop:
# yum localinstall atop-1.25-1.el5.rf.i386.rpm
Обновить установленный пакет packagename можно командой:
# yum update packagename
А обновить полностью систему – той же командой, но без указания имени пакета:
# yum update
Посмотреть список установленных пакетов, которые можно обновить:
# yum check-update
Выполнить downgrade пакета до его предыдущей версии:
# yum downgrade packagename
Для удаления пакета из системы используется опция remove (или erase – которая является алиасом remove):
# yum remove packagename
YUM и репозитории
Получить список активных репозиториев в ваших repo-файлов из каталога /etc/yum.repos.d/ можно так:
# yum repolist
repo id repo name status
base CentOS-6 – Base 4,776
extras CentOS-6 – Extras 17
updates CentOS-6 – Updates 960
А всех, в том числе неактивных – так:
# yum repolist all
…
repo id repo name status
…
C6.2-extras CentOS-6.2 – Extras disabled
C6.2-updates CentOS-6.2 – Updates disabled
base CentOS-6 – Base enabled: 4,776
c6-media CentOS-6 – Media disabled
…
debug CentOS-6 – Debuginfo disabled
extras CentOS-6 – Extras enabled: 17
updates CentOS-6 – Updates enabled: 960
Ещё интересная возможность – отобразить доступные для установки (уже установленные пакеты отображаться не будут) только из определённого репозитория. Например – вывести список пакетов из репозитория base:
# yum –disablerepo “*” –enablerepo “base” list available
Что бы получить полный список, в том числе уже установленные пакеты – уберите слово available в этой команде.
Другие возможности YUM
Получить информацию об установленных пакетах можно так:
# yum info
О конкретном пакете packagename:
# yum info packagename
Если пакет уже установлен в системе – он будет отмечен как Installed Packages в описании. Если пакет доступен для установки из репозитория, но ещё не установлен – он будет отмечен как Available Packages. Например:
# yum info gcc-c++
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: ftp.colocall.net
* extras: ftp.colocall.net
* updates: ftp.colocall.net
Available Packages
Name : gcc-c++
Arch : i686
Version : 4.4.6
Release : 4.el6
Size : 4.3 M
Repo : base
Summary : C++ support for GCC
URL : http://gcc.gnu.org
License : GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions
Description : This package adds C++ support to the GNU Compiler Collection.
: It includes support for most of the current C++ specification,
: including templates and exception handling.
Тут так же поддерживаются символы-заменители, например – вы не помните полностью имя пакета screen:
# yum info scre*
Исключить пакет из списка пакетов для обновления можно так.
Откройте для редактирования файл /etc/yum.conf, и в него добавьте строку:
exclude=
После чего через запятую укажите список пакетов, которые необходимо поддерживать в их текущей версии. Например – так:
exclude=aic94xx-firmware, b43-openfwwf
Просмотреть список зависимостей пакета:
# yum deplist packagename
Посмотреть список последних действий YUM:
# yum history
Loaded plugins: fastestmirror
ID | Login user | Date and time | Action(s) | Altered
——————————————————————————-
7 | root <root> | 2013-03-06 15:02 | I, U | 45
6 | root <root> | 2013-03-06 14:59 | Install | 1 EE
5 | root <root> | 2013-03-06 14:58 | Install | 1
4 | root <root> | 2013-03-06 14:54 | Install | 8
3 | root <root> | 2013-03-06 14:47 | Install | 3
2 | root <root> | 2013-03-06 14:22 | Install | 1
1 | System <unset> | 2013-03-06 13:52 | Install | 209
При проблемах с менеджером пакетов YUM
Очистить кеш:
# yum clean all
Пересоздать кеш:
# yum makecache
Другие возможности работы с RPM-пакетами
Посмотреть список установленных в системе пакетов НЕ из списка репозиториев CentOS;
# rpm -qa –qf ‘%{NAME} %{VENDOR}n’ | grep -v CentOS
Посмотреть список man-страниц для определённого пакета можно так:
# rpm -qd packagename
Посмотреть список всех установленных в системе пакетов:
# rpm -qa
Показать список всех GPG-ключей с соответствующей информацией репозитория:
# rpm -q gpg-pubkey –qf ‘%{name}-%{version}-%{release} –> %{summary}n
Посмотреть список изменений в версиях пакета:
# rpm -q –changelog packagename | less
Посмотреть список пакетов по дате их установки/обвноления (например – найти необновившиеся пакеты):
# rpm -qa –last | less
Получить список установленных ключей GPG с информацией об их репозиториях:
# rpm -q gpg-pubkey –qf ‘%{name}-%{version}-%{release} –> %{summary}n’
GNU Privacy Guard, GnuPG, GPG — свободная альтернатива набору криптографического ПО PGP, выпущенная под лицензией GNU General Public License. Является частью проекта GNU, получила гранты от немецкого правительства. GnuPG полностью совместим со стандартом IETF OpenPGP. Текущие версии GnuPG могут взаимодействовать с PGP и другими OpenPGP-совместимыми системами в режиме совместимости. GnuPG позволяет шифровать и подписывать данные в целях безопасного хранения и передачи информации.