YUM (
Yellowdog
Updater
Modified) — система управления пакетами (реализована на Python), предоставляющая возможность установки, удаления и обновления пакетов или групп пакетов. Yum изначально разработан для управления системой Red Hat Linux и в настоящее время используется в RPM-based (Red Hat Package Managment) дистрибутивах, таких как Fedora, CentOS, SUSE,
Yellow Dog Linux и т.д.
СкрытьИзначально разработанный Terra Soft «yup» (Yellow Dog Updater) был улучшен и теперь разрабатывается и поддерживается Linux@Duke team, получив название «yum».
1. Обновление пакетов
Чтобы проверить наличие обновлений в системе, следует использовать команду
yum check-update:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | $ 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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | # yum update elfutils
Loaded plugins: langpacks, presto, refresh-packagekit
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 без аргументов:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 | # 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 ), который дает согласие на все вопросы.
При необходимости выполнять обновления автоматически можно воспользоваться утилитами
yum-cron (для периодического обновления пакетов) и
yum-updateonboot (для обновлений во время загрузки системы), чтобы их установить:
# yum install yum-cron yum-updateonboot
2. Установка/удаление пакетов
Пакет вместе со всеми зависимостями можно установить командой
yum install pkg_name :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 | # 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]: |
Если вы не знаете имя пакета, но знаете имя бинарного файла, который хотите установить, то можно воспользоваться путем к бинарному файлу для установки:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 | # 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 provedes совместно с glob-выражением, чтобы его узнать:
1
2
3
4
5
6
7
8
9
10
11
12
13 | $ 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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 | # 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 :
1
2
3
4
5
6
7
8 | $ 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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 | $ 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:
1
2
3
4
5 | $ 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 :
1
2
3
4
5
6
7
8
9
10
11
12 | $ 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:
1
2
3
4
5
6
7
8
9 | $ 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, например
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | $ 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 — предоставляет возможность скачать пакет из репозитория:
1
2
3
4 | $ 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). Например, чтобы узнать какие пакеты не используются, следует воспользоваться следующей командой:
1
2
3
4
5
6
7 | $ 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-versionlock, который позволяет удерживать версию необходимого пакета, т.е. не дает его обновлять.
6. GUI для yum
Для yum существует несколько графических фронтендов, одним из них является PackageKit — «
набор открытого и свободного программного обеспечения, предназначенного для обеспечения последовательного и высокоуровневого фронт-энда для некоторого числа различных систем управления пакетами». Для PackageKit есть несколько фронт-эндов:

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