Новичку — Система управления RPM-пакетами YUM
YUM (Yellowdog Updater Modified) — система управления пакетами (реализована на Python), предоставляющая возможность установки, удаления и обновления пакетов или групп пакетов. Yum изначально разработан для управления системой Red Hat Linux и в настоящее время используется в RPM-based (Red Hat Package Managment) дистрибутивах, таких как Fedora, CentOS, SUSE, Yellow Dog Linux и т.д.
1. Обновление пакетов
Чтобы проверить наличие обновлений в системе, следует использовать команду yum check-update:
Обратите внимание на строку «Loaded plugins: langpacks, presto, refresh-packagekit» - yum всегда предоставляет информацию о том, какие плагины установлены и включены. В данном выводе yum использует три плагина:
Для того, чтобы обновить необходимые пакеты нужно использовать команду yum update pkg_name :
Вы можете заметить, что некоторые пакеты тоже будут обновлены по зависимостям, т.к. yum автоматически разрешает зависимости. Если требуется обновить все возможные пакеты, то можно использовать команду yum update без аргументов:
Для автоматического ответа на вопрос «Is this ok [y/N]» можно воспользоваться параметром -y (например: yum update -y ), который дает согласие на все вопросы.
При необходимости выполнять обновления автоматически можно воспользоваться утилитами yum-cron (для периодического обновления пакетов) и yum-updateonboot (для обновлений во время загрузки системы), чтобы их установить:
2. Установка/удаление пакетов
Пакет вместе со всеми зависимостями можно установить командой yum install pkg_name :
Если вы не знаете имя пакета, но знаете имя бинарного файла, который хотите установить, то можно воспользоваться путем к бинарному файлу для установки:
В случае, если вы не знаете полный путь к бинарному файлу, то можно воспользоваться командой yum provides совместно с glob-выражением, чтобы его узнать:
Чтобы удалить ранее установленный пакет можно воспользоваться следующей командой yum remove pkg_name :
Вся информация о установке/удалении/обновлении пакетов фиксируется в файле /var/log/yum.log (для его просмотра необходимы права пользователя root).
3. Получение сведений о пакетах
Для поиска имен пакетов и их краткого описания можно использовать команду yum search pkg_name :
Для получения более подробной информации о пакетах следует использовать команду yum info pkg_name :
Использование yum search аналогично использованию команды rpm -q -i pkg_name:
Чтобы получить еще больше информации о пакете, например контрольную сумму, то следует использовать yumdb info pkg_name :
Еще одной командой для получения информации о пакетах является yum list:
Ниже приведен список некоторых команд yum list, а также команды для вывода информации о группах пакетов и репозиториях:
И последняя команда yum history (от root) которая показывает время выполненных транзакицй (установка/удаление/обновление пакетов) и какой пользователь их выполнял. Вся история транзакций храниться в /var/lib/yum/history/.
4. Добавление новых репозиториев
Добавить новый репозиторий можно путем установки rpm-пакета или используя файл *.repo (находятся в /etc/yum.repos.d/). Приведем пример добавления репозиториев RPMFusion и Adobe:
Для того, чтобы подключить репозиторий Adobe необходимо скачать пакет adobe-release-i386-1.0-1.noarch.rpm с сайта http://get.adobe.com/flashplayer/ (выбрав YUM for Linux) и затем установить его:
Будет скопирован adobe General Public Key в /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux, но не импортирован, поэтому импортируем ключ:
5. yum-utils
yum-utils это набор утилит и плагинов, которые расширяют возможности yum, например могут показаться довольно полезными следующие утилиты:
yumdownloader — предоставляет возможность скачать пакет из репозитория:
package-cleanup — позволяет выявлять неиспользуемые пакеты (--leaves), неполадки (--problems) и удалять старые версии ядер (--oldkernels). Например, чтобы узнать какие пакеты не используются, следует воспользоваться следующей командой:
Для администраторов может оказаться полезным плагин yum-plugin-security, который предоставляет доступ к списку и обновлениям только тех пакетов, которые связаны с безопасностью системы. Например, доступны следующие пакеты для обновления (можно воспользоваться yum info-security, чтобы получить более подробную информацию по каждому пакету):
Используя опцию --security мы узнаем, что есть 5 пакетов для обновления, но ни один из них не связан с безопасностью:
Если требуется обновлять багфиксы, то можно воспользоваться опцией --bugfixes:
Дополнительную информацию о плагине можно получить на странице справочного руководства man (man yum-security), а также тут.
Также интерес представляет плагин yum-plugin-versionlock, который позволяет удерживать версию необходимого пакета, т.е. не дает его обновлять.
6. GUI для yum
Для yum существует несколько графических фронтендов, одним из них является PackageKit — «набор открытого и свободного программного обеспечения, предназначенного для обеспечения последовательного и высокоуровневого фронт-энда для некоторого числа различных систем управления пакетами». Для PackageKit есть несколько фронт-эндов:
Рис.1. gnome-packagekit
Выбор фронт-энда зависит от используемого DE, например, если вы пользователь GNOME, то по умолчанию у вас будет установлен gnome-packagekit.
7. Ссылки
Если встретите очепятки, то пишите в ЛС, если ошибки, то в комментарии. Если есть желание что-то дополнить, также пишите в комментарии. Может показаться, что большинство выводов избыточно, мне кажется, что так воспринимать информацию (работу команды) несколько проще, но при необходимости могу сократить. Может быть у кого-то возникнет желаение рассказать про работу с rpm и самого PackageKit, буду рад.
Ну и как всегда pdf'ка (scribd.com опять надругался над документом).
Изначально разработанный 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» - 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 |
Вы можете заметить, что некоторые пакеты тоже будут обновлены по зависимостям, т.к. 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 |
Для автоматического ответа на вопрос «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 |
Если вы не знаете имя пакета, но знаете имя бинарного файла, который хотите установить, то можно воспользоваться путем к бинарному файлу для установки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# yum install /usr/bin/pitivi |
В случае, если вы не знаете полный путь к бинарному файлу, то можно воспользоваться командой yum provides совместно с glob-выражением, чтобы его узнать:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ yum provides "*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 |
Вся информация о установке/удалении/обновлении пакетов фиксируется в файле /var/log/yum.log (для его просмотра необходимы права пользователя root).
3. Получение сведений о пакетах
Для поиска имен пакетов и их краткого описания можно использовать команду yum search pkg_name :
1 2 3 4 5 6 7 8 |
$ yum search wicd |
Для получения более подробной информации о пакетах следует использовать команду 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 |
Использование yum search аналогично использованию команды rpm -q -i pkg_name:
1 2 3 4 5 |
$ rpm -q -i wicd |
Чтобы получить еще больше информации о пакете, например контрольную сумму, то следует использовать yumdb info pkg_name :
1 2 3 4 5 6 7 8 9 10 11 12 |
$ yumdb info wicd |
Еще одной командой для получения информации о пакетах является yum list:
1 2 3 4 5 6 7 8 9 |
$ yum list wicd-\* |
Ниже приведен список некоторых команд 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 |
package-cleanup — позволяет выявлять неиспользуемые пакеты (--leaves), неполадки (--problems) и удалять старые версии ядер (--oldkernels). Например, чтобы узнать какие пакеты не используются, следует воспользоваться следующей командой:
1 2 3 4 5 6 7 |
$ package-cleanup --leaves |
Для администраторов может оказаться полезным плагин yum-plugin-security, который предоставляет доступ к списку и обновлениям только тех пакетов, которые связаны с безопасностью системы. Например, доступны следующие пакеты для обновления (можно воспользоваться yum info-security, чтобы получить более подробную информацию по каждому пакету):
1 2 3 4 5 6 7 8 |
$ yum list-security |
Используя опцию --security мы узнаем, что есть 5 пакетов для обновления, но ни один из них не связан с безопасностью:
1 2 3 4 5 |
$ yum --security check-update |
Если требуется обновлять багфиксы, то можно воспользоваться опцией --bugfixes:
1 2 3 4 5 6 7 8 9 |
$ yum --security --bugfixes check-update |
Дополнительную информацию о плагине можно получить на странице справочного руководства man (man yum-security), а также тут.
Также интерес представляет плагин yum-plugin-versionlock, который позволяет удерживать версию необходимого пакета, т.е. не дает его обновлять.
6. GUI для yum
Для yum существует несколько графических фронтендов, одним из них является PackageKit — «набор открытого и свободного программного обеспечения, предназначенного для обеспечения последовательного и высокоуровневого фронт-энда для некоторого числа различных систем управления пакетами». Для PackageKit есть несколько фронт-эндов:
- gnome-packagekit (GNOME, см. рис. 1);
- kpackagekit (KDE);
- yumex;
- pkcon (консольная утилита).
Рис.1. gnome-packagekit
Выбор фронт-энда зависит от используемого DE, например, если вы пользователь GNOME, то по умолчанию у вас будет установлен gnome-packagekit.
7. Ссылки
- Официальная старница YUM;
- Fedora 14 — Software Management Guide;
- Learn Linux, 101: RPM and YUM package management;
- Система управления пакетами Yum.
Если встретите очепятки, то пишите в ЛС, если ошибки, то в комментарии. Если есть желание что-то дополнить, также пишите в комментарии. Может показаться, что большинство выводов избыточно, мне кажется, что так воспринимать информацию (работу команды) несколько проще, но при необходимости могу сократить. Может быть у кого-то возникнет желаение рассказать про работу с rpm и самого PackageKit, буду рад.
Ну и как всегда pdf'ка (scribd.com опять надругался над документом).