Вы находитесь на странице: 1из 9

Система управления RPM­пакетами YUM

YUM  (Yellowdog1  Updater  Modified)   —   система   управления   пакетами, 


предоставляющая возможность установки, удаления и обновления пакетов или групп 
пакетов.   Yum   изначально   разработан   для   управления   системой   Red   Hat   Linux   и   в 
настоящее   время   используется   в   RPM­based   (Red   Hat  Package  Managment) 
дистрибутивах, таких как Fedora, CentOS, SUSE, Yellow Dog Linux и т.д. 

1. Обновление пакетов

Чтобы проверить наличие обновлений в системе, следует использовать команду 
yum check­update:

$ yum check-update
Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list

имя пакета.архитектура версия пакета репозиторий


dracut.noarch 006-6.fc14 updates
elfutils.i686 0.151-1.fc14 updates
elfutils-libelf.i686 0.151-1.fc14 updates
elfutils-libs.i686 0.151-1.fc14 updates
libuser.i686 0.56.18-3.fc14 updates
libuser-python.i686 0.56.18-3.fc14 updates
procps.i686 3.2.8-15.fc14 updates
sssd.i686 1.5.0-2.fc14 updates
sssd-client.i686 1.5.0-2.fc14 updates
stunnel.i686 4.34-1.fc14 updates

Обратите внимание на строку «Loaded plugins: langpacks, presto, refresh­packagekit» ­ 
yum   всегда   предоставляет   информацию   о     том,   какие   плагины   установлены   и 
включены. В данном выводе yum использует три плагина:
•  langpacks   —  позволяет  автоматически  установить  langpacks (языковые   пакеты) 
программы   для   вашего   родного   языка   (настроить   требуемый   язык   можно   в 
файле /etc/yum/pluginconf.d/langpacks.conf);
•  presto   — данный плагин реализует поддержку DeltaRPM (DeltaRPM это разница 
между двумя rpm пакетами одной программы, т.о., позволяет экономить трафик, 
не скачивая весь пакет, а только разницу версий);
• refresh­packagekit —  предназначен  для  взаимодействия  с PackageKit (например, 
если вы обновили пакеты с помощью yum, то PackageKit будет знать об этом).
Для того, чтобы обновить необходимые пакеты нужно использовать команду yum  
update pkg_name <pkg_names>:

# yum update elfutils


Loaded plugins: langpacks, presto, refresh-packagekit

1 Изначально   разработанный   Terra   Soft   «yup»   (Yellow   Dog  Updater)   был   улучшен   и   теперь 
разрабатывается и поддерживается Linux@Duke team, получив название «yum».
Adding en_US to language list
...
================================================================================
Package Arch Version Repository Size
================================================================================
Updating:
elfutils i686 0.151-1.fc14 updates 215 k
Updating for dependencies:
elfutils-libelf i686 0.151-1.fc14 updates 173 k
elfutils-libs i686 0.151-1.fc14 updates 198 k

Transaction Summary
================================================================================
Upgrade 3 Package(s)

Total download size: 586 k


Is this ok [y/N]:

Вы   можете   заметить,   что   некоторые   пакеты   тоже   будут   обновлены   по 


зависимостям, т.к. yum автоматически разрешает зависимости. Если требуется обновить 
все возможные пакеты, то можно использовать команду yum update без аргументов:

# yum update
Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
...
================================================================================
Package Arch Version Repository Size
================================================================================
Updating:
dracut noarch 006-6.fc14 updates 87 k
elfutils i686 0.151-1.fc14 updates 215 k
elfutils-libelf i686 0.151-1.fc14 updates 173 k
elfutils-libs i686 0.151-1.fc14 updates 198 k
libuser i686 0.56.18-3.fc14 updates 370 k
libuser-python i686 0.56.18-3.fc14 updates 50 k
procps i686 3.2.8-15.fc14 updates 197 k
sssd i686 1.5.0-2.fc14 updates 815 k
sssd-client i686 1.5.0-2.fc14 updates 49 k
stunnel i686 4.34-1.fc14 updates 124 k

Transaction Summary
================================================================================
Upgrade 10 Package(s)

Total download size: 2.2 M


Is this ok [y/N]:

Для автоматического ответа на вопрос «Is this ok [y/N]» можно воспользоваться 
параметром  ­y  (например:  yum   update   ­y   <pkg_name>),   который   дает   согласие   на   все 
вопросы.
При   необходимости   выполнять   обновления   автоматически   можно 
воспользоваться утилитами  yum­cron  (для периодического обновления пакетов) и  yum­
updateonboot (для обновлений во время загрузки системы), чтобы их установить:

# yum install yum-cron yum-updateonboot


2. Установка/удаление пакетов

Пакет   вместе   со   всеми   зависимостями   можно   установить   командой  yum   install  


pkg_name <pkg_names>:

# yum install pitivi


Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
...
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
pitivi noarch 0.13.5-4.fc14 updates 790 k
Installing for dependencies:
gnonlin i686 0.10.16-1.fc14 updates 65 k
goocanvas i686 0.15-1.fc14 fedora 134 k
pygoocanvas i686 0.14.1-3.fc14 fedora 51 k
python-zope-interface i686 3.6.1-7.fc14 fedora 118 k

Transaction Summary
================================================================================
Install 5 Package(s)

Total download size: 1.1 M


Installed size: 5.1 M
Is this ok [y/N]:

Если вы не знаете имя пакета, но знаете имя бинарного файла, который хотите 
установить, то можно воспользоваться путем к бинарному файлу для установки:

# yum install /usr/bin/pitivi


Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
...
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
pitivi noarch 0.13.5-4.fc14 updates 790 k
...
================================================================================
Install 5 Package(s)

Total download size: 1.1 M


Installed size: 5.1 M
Is this ok [y/N]:

В   случае,   если   вы   не   знаете   полный   путь   к   бинарному   файлу,   то   можно 


воспользоваться командой yum provides совместно с glob­выражением, чтобы его узнать:

$ yum provides "*bin/pitivi"


Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
...
pitivi-0.13.4-3.fc14.noarch : Non-linear video editor
Repo : fedora
Matched from:
Filename : /usr/bin/pitivi

pitivi-0.13.5-4.fc14.noarch : Non-linear video edito


Repo : updates
Matched from:
Filename : /usr/bin/pitivi

Чтобы   удалить  ранее  установленный  пакет  можно   воспользоваться  следующей 


командой yum remove pkg_name <pkg_names>:

# yum remove wicd


Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
...
================================================================================
Package Arch Version Repository Size
================================================================================
Removing:
wicd i686 1.7.0-4.fc14 @updates 183 k

Transaction Summary
================================================================================
Remove 1 Package(s)

Installed size: 183 k


Is this ok [y/N]:

Вся   информация   о   установке/удалении/обновлении   пакетов   фиксируется   в 


файле /var/log/yum.log (для его просмотра необходимы права пользователя root).

3. Получение сведений о пакетах

Для поиска имен пакетов и их краткого описания можно использовать команду 
yum search pkg_name <pkg_names>:

$ yum search wicd


Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
============================= Matched: wicd ==============================
wicd-common.noarch : Wicd common files
wicd-curses.noarch : Curses client for wicd
wicd-gtk.noarch : GTK+ client for wicd
wicd.i686 : Wireless and wired network connection manager

Для   получения   более   подробной   информации   о   пакетах   следует   использовать 


команду yum info pkg_name <pkg_names>:

$ yum info wicd


Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
Installed Packages
Name : wicd
Arch : i686
Version : 1.7.0
Release : 4.fc14
Size : 183 k
Repo : installed
From repo : updates
Summary : Wireless and wired network connection manager
URL : http://wicd.sourceforge.net/
License : GPLv2+
Description : Wicd is designed to give the user as much control over behavior of
: network connections as possible. Every network, both wired and
: wireless, has its own profile with its own configuration options
: and connection behavior. Wicd will try to automatically connect
: only to networks the user specifies it should try, with a
: preference first to a wired network, then to wireless.
:
: This package provides the architecture-dependent components of
: wicd.

Использование yum search аналогично использованию команды rpm ­q ­i pkg_name:

$ rpm -q -i wicd
Name : wicd elocations: (not relocatable)
Version : 1.7.0 Vendor: Fedora Project
Release : 4.fc14 Build Date: Sat 23 Oct 2010 12:47:23 AM MSD
...

Чтобы   получить   еще   больше   информации   о   пакете,   например   контрольную 


сумму, то следует использовать yumdb info pkg_name <pkg_names>:

$ yumdb info wicd


Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
wicd-1.7.0-4.fc14.i686
checksum_data = e675dfa382c45c23902cdb421bbccf1a398fc92b7124482db15e652a98127bc1
checksum_type = sha256
from_repo = updates
from_repo_revision = 1294690430
from_repo_timestamp = 1294694157
installed_by = 4294967295
reason = user
releasever = 14

Еще одной командой для получения информации о пакетах является yum list:

$ yum list wicd-\*


Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
Installed Packages
wicd.i686 1.7.0-4.fc14 @updates
wicd-common.noarch 1.7.0-4.fc14 @updates
wicd-gtk.noarch 1.7.0-4.fc14 @updates
Available Packages
wicd-curses.noarch 1.7.0-4.fc14 updates

Ниже приведен список некоторых команд yum list, а также команды для вывода 
информации о группах пакетов и репозиториях:
• yum list all — вывести список всех доступных и установленных пакетов;
• yum list installed — вывести список только установленных пакетов;
• yum list available — вывести список только доступных пакетов;
• yum   grouplist  —   вывести   список   всех   групп   пакетов   (например,   «Administration 
Tools», «GNOME Desktop Environment» и так далее);
• yum groupinfo group_name — вывести список пакетов группы group_name, например

$ yum groupinfo KDE


Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
...
Group: KDE Software Compilation
Description: The KDE SC includes the KDE Plasma Desktop, a highly-configurable
graphical user interface which includes a panel, desktop, system icons and desktop
widgets, and many powerful KDE applications.
Mandatory Packages:
kdebase-runtime
kdebase-workspace
kdelibs
Default Packages:
amarok
cups-pk-helper
dejavu-sans-fonts
...

Имеется   возможность   не   только   просматривать   группы   пакетов,   но   также 


устанавливать,   удалять   и   обновлять   их,   используя   команды  yum  
groupinstall/groupremove/groupupdate, соответственно.

• yum   repolist  —   вывести   список   id   репозиториев   (repo   id)   и   количество   пакетов, 


предоставляемых каждым из них.

И   последняя   команда  yum   history  (от   root)   которая   показывает   время 


выполненных   транзакицй   (установка/удаление/обновление   пакетов)   и   какой 
пользователь их выполнял. Вся история транзакций храниться в /var/lib/yum/history/.

4. Добавление новых репозиториев

Добавить новый репозиторий можно путем установки rpm­пакета или используя 
файл   *.repo   (находятся   в   /etc/yum.repos.d/).   Приведем   пример   добавления 
репозиториев RPMFusion и Adobe:

$ su -c 'yum localinstall --nogpgcheck \


http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm \
http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm'

Для   того,   чтобы   подключить   репозиторий   Adobe   необходимо   скачать   пакет 


adobe­release­i386­1.0­1.noarch.rpm   с   сайта  http://get.adobe.com/flashplayer/  (выбрав 
YUM for Linux) и затем установить его: 

# rpm -ivh adobe-release-i386-1.0-1.noarch.rpm

Будет скопирован adobe General Public Key в /etc/pki/rpm­gpg/RPM­GPG­KEY­
adobe­linux, но не импортирован, поэтому импортируем ключ: 

# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux

5. yum­utils

yum­utils это набор утилит и плагинов, которые расширяют возможности yum, 
например могут показаться довольно полезными следующие утилиты:

yumdownloader — предоставляет возможность скачать пакет из репозитория:

$ yumdownloader wicd
Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
wicd-1.7.0-4.fc14.i686.rpm | 42 kB 00:00

package­cleanup  —   позволяет   выявлять   неиспользуемые   пакеты   (­­leaves), 


неполадки (­­problems) и удалять старые версии ядер (­­oldkernels). Например, чтобы 
узнать какие пакеты не используются, следует воспользоваться следующей командой:

$ package-cleanup --leaves
Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
libcanberra-gtk3-0.25-4.fc14.i686
libertas-usb8388-firmware-5.110.22.p23-4.fc13.noarch
libmpdclient-devel-2.1-3.fc13.i686
libotf-0.9.11-1.fc14.i686

Для   администраторов   может   оказаться   полезным   плагин  yum­plugin­security, 


который   предоставляет  доступ  к списку  и  обновлениям  только   тех  пакетов,  которые 
связаны   с   безопасностью   системы.   Например,   доступны   следующие   пакеты   для 
обновления (можно воспользоваться yum info­security, чтобы получить более подробную 
информацию по каждому пакету):

$ yum list-security
Loaded plugins: langpacks, presto, refresh-packagekit, security
Adding en_US to language list
FEDORA-2011-0485 enhancement gdb-7.2-36.fc14.i686
FEDORA-2011-0543 enhancement microcode_ctl-1:1.17-7.fc14.i686
FEDORA-2011-0530 bugfix pciutils-3.1.7-3.fc14.i686
FEDORA-2011-0530 bugfix pciutils-libs-3.1.7-3.fc14.i686
FEDORA-2011-0478 bugfix system-setup-keyboard-0.8.6-3.fc14.i686

Используя опцию  ­­security  мы узнаем, что есть 5 пакетов для обновления, но ни 


один из них не связан с безопасностью:

$ yum --security check-update


Loaded plugins: langpacks, presto, refresh-packagekit, security
Adding en_US to language list
Limiting package lists to security relevant ones
No packages needed for security; 5 packages available
Если требуется обновлять bugfix, то можно воспользоваться опцией ­­bugfixes:

$ yum --security --bugfixes check-update


Loaded plugins: langpacks, presto, refresh-packagekit, security
Adding en_US to language list
Limiting package lists to security relevant ones
3 package(s) needed for security, out of 5 available

pciutils.i686 3.1.7-3.fc14 updates


pciutils-libs.i686 3.1.7-3.fc14 updates
system-setup-keyboard.i686 0.8.6-3.fc14 updates

Дополнительную   информацию   о   плагине   можно   получить   на   странице 


справочного руководства man (man yum­security), а также по следующей ссылке:
http://www.cyberciti.biz/faq/redhat­fedora­centos­linux­yum­installs­security­updates/.

Также   интерес   представляет   плагин  yum­plugin­versionlock,   который   позволяет 


удерживать версию необходимого пакета, т.е. не дает его обновлять.

6. GUI для yum

Для yum существует несколько графических фронтендов, одним из них является 
PackageKit — «набор открытого и свободного программного обеспечения, предназначенного  
для   обеспечения   последовательного   и   высокоуровневого   фронт­энда   для   некоторого   числа  
различных систем управления пакетами». Для PackageKit есть три фронт­энда:
•  gnome­packagekit  (GNOME, см. рис. 1);
• kpackagekit (KDE);
• pkcon (консольная утилита).

Рис.1. gnome­packagekit
Выбор фронт­энда зависит от используемого DE, например, если вы пользователь 
GNOME, то по умолчанию у вас будет установлен gnome­packagekit.

7. Ссылки

•  Официальная старница YUM ;
•  Fedora 14 — Software Management Guide ;
•  Learn Linux, 101: RPM and YUM package management ;
•  Система управления пакетами Yum .