Продуктивная работа с YUM и удобные функции RPM

Продуктивная работа с YUM и удобные функции RPM

Общие сведения

YUM (Yellowdog Updater, Modified) — это общедоступный консольный менеджер пакетов RPM (Package Manager).
YUM выполняет такие функции:

  • ищет и устанавливает пакеты из репозиториев
  • устанавливает пакеты из файлов формата .rpm и разрешает зависимости, путем использования репозиториев
  • выполняет обновление системы
  • выполняет очистку от устаревших пакетов

YUM создает необходимые условия для взаимодействия с репозиториям.

Ищем пакеты и файлы
Поиск осуществляется тремя опциями: List, Search, Provide
Найти пакет по имени, к примеру packagename, можно используя опцию List:

[root@linux-in] # yum list packagename

Если вы забыли полное название пакета, подставьте символ * вместо буквы и экранируйте символом \, чтобы ваш командный интерпретатор корректно его обработал:

[root@linux-in] # yum list packagen*

Символом * можно заменить несколько букв в поиске, а один символ заменяем на ?. Демонстрируем процесс поиска пакета screen (шесть букв). Чтобы найти его по первым четырем буквам необходимо ввести:

[root@linux-in] # yum list scre??
…
screen.amd64....

Данные символы (? и *) допустимы для замены также во многих других командах YUM.

Найти пакет по имени, введенному полностью или частично, в списке или в описании:

[root@linux-in] # yum search scre
…
screen.amd64 : A screen manager that supports multiple logins on one terminal
…

Опция Provides применяется, чтобы найти пакет указав в поиске файл или каталог. Например, если вам необходимо определить, какому пакету принадлежит файл httpd.conf, введите команду:

[root@linux-in] # yum provides */httpd.conf
…
httpd-2.4......
Repo : base
Matched from:

В итоге мы получим Apache Server, где, по завершению установки и должен находиться файл httpd.conf.
Ищем пакет с файлами в каталоге /etc/httpd:

[root@linux-in] # yum provides /etc/httpd*

Установить, выполнить обновление или удалить пакет
Установка пакетов, а также всех возможных зависимостей происходит с применением опции Install:

[root@linux-in] # yum install mc
…
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
mc amd64 ....
Installing for dependencies:
gpm-libs ...
…

При установке вы можете указывать одновременно два и больше пакетов. Их необходимо предварительно разделить запятыми.

Сочетание –y используется, чтобы избежать запроса от YUM на подтверждение установки:

[root@linux-in] # yum -y install mc

Чтобы выполнить переустановку пакета:

[root@linux-in] # yum reinstall packagename

Localinstall используется для установки пакета, который перед этим был залит на сервер. Таким образом, устанавливаем пакет atop следующей командой:

[root@linux-in] # yum localinstall pakagename.rpm

Команда для обновления установленного пакета:

[root@linux-in] # yum update packagename

Обновляем систему полностью при помощи идентичной команды, удалив из нее название пакета:

[root@linux-in] # yum update

Просмотреть доступные для обновления пакеты:

[root@linux-in] # yum check-update

Выполнение даунгрейда пакета до предыдущей версии:

[root@linux-in] # yum downgrade packagename

Опция Remove или ее Alias Erase применяется, чтобы удалить пакет:

[root@linux-in] # yum remove packagename

Основные команды для взаимодействия с репозиториями

Чтобы найти активные репозитории в repo-файлах из каталога /etc/yum.repos.d/ используется следующая команда:

[root@linux-in] # yum repolist
repo id repo name status
base CentOS-7 – Base 4,776
extras CentOS-7 – Extras 11
updates CentOS-7 – Updates 460

Для получения списка всех репозиториев, с учетом неактивных:

[root@linux-in] # yum repolist all
…
repo id repo name status
…
C7-extras CentOS-7 – Extras disabled
C7-updates CentOS-7 – Updates disabled
base CentOS-7 – Base enabled: 4,776
c7-media CentOS-7 – Media disabled
…
debug CentOS-7 – Debuginfo disabled

Дополнительное преимущество YUM – возможность найти и установить пакет из конкретно заданного репозитория. Пакеты, которые уже были установлены ранее, показываться не будут. К примеру, чтобы посмотреть пакеты из репозитория с названием base, задаем следующую команду:

[root@linux-in] # yum –disablerepo "*" –enablerepo "base" list available

Чтобы посмотреть все пакеты, включая уже установленные, нужно убрать значение available из команды.

Еще несколько полезных действий в YUM
Сведения о пакетах, установленных на данный момент:

[root@linux-in] # yum info

Сведения об определенном пакете:

[root@linux-in] # yum info packagename

Перед установкой пакет в описании значится как Available Packages, а после — Installed Packages. Пример:

[root@linux-in] # 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 : amd64
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:

[root@linux-in] # yum info scre*

Исключение пакета из списка возможно следующим образом.
Файл /etc/yum.conf необходимо открыть в режиме редактирования и вписать:
exclude=

Далее, разделяя запятыми, напишите названия пакетов, для поддержки их текущей версии:
exclude=aic94xx-firmware, b43-openfwwf

Просмотр зависимостей пакета:

[root@linux-in] # yum deplist packagename

Просмотр предыдущих действий YUM:

[root@linux-in] # yum history
Loaded plugins: fastestmirror
ID | Login user | Date and time | Action(s) | Altered
——————————————————————————-
7 | root | 2016-07-06 16:02 | I, U | 45
6 | root | 2016-07-06 15:59 | Install | 1 EE
5 | root | 2016-07-06 15:58 | Install | 1
4 | root | 2016-07-06 15:54 | Install | 8
3 | root | 2016-07-06 15:47 | Install | 3
2 | root | 2016-07-06 15:22 | Install | 1
1 | System | 2013-07-06 12:52 | Install | 209

Устранение неполадок

Очистить кеш:

[root@linux-in] # yum clean all

Заново создать кеш:

[root@linux-in] # yum makecache

Еще несколько преимуществ использования RPM
Просмотр установленных пакетов, не имеющих отношения к репозиториям CentOS:

[root@linux-in] # rpm -qa –qf ‘%{NAME} %{VENDOR}n’ | grep -v CentOS

Просмотр man-страниц для конкретного пакета:

[root@linux-in] # rpm -qd packagename

Просмотр всех установленных пакетов:

[root@linux-in] # rpm –qa

Просмотр всех GPG-keys с необходимой информацией репозитория:

[root@linux-in] # rpm -q gpg-pubkey –qf ‘%{name}-%{version}-%{release} –> %{summary}n

Просмотр изменений в нынешней версии пакета:

[root@linux-in] # rpm -q –changelog packagename | less

Просмотр пакетов, исходя из даты установки и даты обновления, а также поиск не обновленных пакетов:

[root@linux-in] # rpm -qa –last | less

Получение установленных ключей GPG и сведений об их репозиториях:

[root@linux-in] # rpm -q gpg-pubkey –qf ‘%{name}-%{version}-%{release} –> %{summary}n’

GNU PrivacyGuard — это доступное криптографическое ПО, являющееся достойной заменой PGP. GnuPG предоставляет возможность шифрования и подписи данных для надежного хранения и передачи информации.
GPG работает с PGP и прочими, совместимыми с OpenPGP системами. GPG удостоилась гранта от правительства в Германии и выпускается с лицензией General Public License.

Comments

comments

Ваш e-mail не будет опубликован. Обязательные поля помечены *