20 команд Linux YUM (Yellowdog Updater, Modified) для управления пакетами

В этой статье мы узнаем, как устанавливать, обновлять, удалять, находить пакеты, управлять пакетами и репозиториями в системах Linux с использованием инструмента YUM (Yellowdog Updater Modified), разработанного компанией RedHat.

Примеры команд, показанные в этой статье, практически проверены на нашем сервере RHEL 8, вы можете использовать этот материал для учебных целей, получения сертификата RHEL или просто для изучения способов установки новых пакетов и поддержания вашей системы в актуальном состоянии.

Основным требованием для этой статьи является наличие базового понимания команд и рабочей операционной системы Linux, где вы можете изучать и практиковать все приведенные ниже команды.

Что такое YUM?

YUM (Yellowdog Updater Modified) – это утилита управления пакетами с открытым исходным кодом как для командной строки, так и для графического интерфейса, предназначенная для RPM (RedHat Package Manager) в системах Linux.

Он позволяет пользователям и системным администраторам легко устанавливать, обновлять, удалять или искать программные пакеты в системе. Он был разработан и выпущен Seth Vidal под GPL (General Public License) в качестве открытого исходного кода, что означает, что любому разрешается скачивать и получать доступ к коду для исправления ошибок и разработки настраиваемых пакетов.

YUM использует множество сторонних репозиториев для автоматической установки пакетов путем разрешения проблем их зависимостей.

Обновление: Команда yum заменена на команду dnf, которая является версией следующего поколения yum и считается заменой для YUM в большинстве новых дистрибутивов на базе RPM.

1. Установка пакета с помощью YUM

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

# yum install firefox
Loaded plugins: fastestmirror
Dependencies Resolved

================================================================================================
 Package                    Arch        Version                    Repository            Size        
================================================================================================
Updating:
firefox                        i686        10.0.6-1.el6.centos     updates             20 M
Updating for dependencies:
 xulrunner                     i686        10.0.6-1.el6.centos     updates             12 M

Transaction Summary
================================================================================================
Install       0 Package(s)
Upgrade       2 Package(s)

Total download size: 32 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): firefox-10.0.6-1.el6.centos.i686.rpm                                |  20 MB   01:10
(2/2): xulrunner-10.0.6-1.el6.centos.i686.rpm                              |  12 MB   00:52
------------------------------------------------------------------------------------------------
Total                                                           63 kB/s |  32 MB   02:04

Updated:
  firefox.i686 0:10.0.6-1.el6.centos

Dependency Updated:
  xulrunner.i686 0:10.0.6-1.el6.centos

Complete!

Вышеуказанная команда запросит подтверждение перед установкой любого пакета в вашей системе. Если вы хотите устанавливать пакеты автоматически без запроса подтверждения, используйте опцию -y, как показано в примере ниже.2. Удаление пакета с помощью YUM

# yum -y install firefox

2. Удаление пакета с помощью YUM

Для полного удаления пакета вместе со всеми зависимостями, просто выполните следующую команду, как показано ниже.

# yum remove firefox
Loaded plugins: fastestmirror
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package firefox.i686 0:10.0.6-1.el6.centos set to be erased
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================
 Package                    Arch        Version                        Repository            Size        
====================================================================================================
Removing:
 firefox                    i686        10.0.6-1.el6.centos            @updates              23 M

Transaction Summary
====================================================================================================
Remove        1 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)

Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing        : firefox-10.0.6-1.el6.centos.i686                                                                                                                          1/1

Removed:
  firefox.i686 0:10.0.6-1.el6.centos

Complete!

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

# yum -y remove firefox

3. Обновление пакета с помощью YUM

Допустим, у вас устаревшая версия пакета MySQL и вы хотите обновить его до последней стабильной версии. Просто выполните следующую команду, и она автоматически разрешит все проблемы с зависимостями и установит их.

# yum update mysql
Loaded plugins: fastestmirror
Dependencies Resolved

============================================================================================================
 Package            Arch                Version                    Repository                    Size
============================================================================================================
Updating:
 vsftpd             i386                2.0.5-24.el5_8.1           updates                       144 k

Transaction Summary
============================================================================================================
Install       0 Package(s)
Upgrade       1 Package(s)

Total size: 144 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating       : vsftpd                                                                     1/2
  Cleanup        : vsftpd                                                                     2/2

Updated:
  vsftpd.i386 0:2.0.5-24.el5_8.1

Complete!

4. Вывод списка пакетов с помощью YUM

Используйте функцию list для поиска конкретного пакета по имени. Например, чтобы найти пакет с названием OpenSSH, используйте команду.

# yum list openssh
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.neu.edu.cn
 * epel: mirror.neu.edu.cn
 * extras: mirror.neu.edu.cn
 * rpmforge: mirror.nl.leaseweb.net
 * updates: mirror.nus.edu.sg
Installed Packages
openssh.i386                                       4.3p2-72.el5_6.3                                                                      installed
Available Packages                                 4.3p2-82.el5                                                                          base

Чтобы сделать поиск более точным, определите имена пакетов вместе с их версиями, если вы знаете их. Например, чтобы найти конкретную версию OpenSSH-4.3p2 пакета, используйте команду.

# yum list openssh-4.3p2

[ Вам также может быть интересно: Как обезопасить и усилить защиту сервера OpenSSH ]

5. Поиск пакета с помощью YUM

Если вы не помните точное название пакета, используйте функцию поиска для поиска всех доступных пакетов, чтобы сопоставить имя пакета, которое вы указали. Например, чтобы найти все пакеты, которые соответствуют слову.

# yum search vsftpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.neu.edu.cn
 * epel: mirror.neu.edu.cn
 * extras: mirror.neu.edu.cn
 * rpmforge: mirror.nl.leaseweb.net
 * updates: ftp.iitm.ac.in
============================== Matched: vsftpd ========================
ccze.i386 : A robust log colorizer
pure-ftpd-selinux.i386 : SELinux support for Pure-FTPD
vsftpd.i386 : vsftpd - Very Secure Ftp Daemon

6. Получение информации о пакете с использованием YUM

Допустим, вы хотите узнать информацию о пакете перед его установкой. Чтобы получить информацию о пакете, просто выполните следующую команду.

# yum info firefox
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.neu.edu.cn
 * epel: mirror.neu.edu.cn
 * extras: mirror.neu.edu.cn
 * rpmforge: mirror.nl.leaseweb.net
 * updates: ftp.iitm.ac.in
Available Packages
Name       : firefox
Arch       : i386
Version    : 10.0.6
Release    : 1.el5.centos
Size       : 20 M
Repo       : updates
Summary    : Mozilla Firefox Web browser
URL        : http://www.mozilla.org/projects/firefox/
License    : MPLv1.1 or GPLv2+ or LGPLv2+
Description: Mozilla Firefox is an open-source web browser, designed for standards
           : compliance, performance and portability.

7. Список всех доступных пакетов с использованием YUM

Чтобы отобразить список всех доступных пакетов в базе данных Yum, используйте следующую команду.

# yum list | less

8. Список всех установленных пакетов с использованием YUM

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

# yum list installed | less

9. Функция Yum Provides

Функция Yum provides используется для определения пакета, к которому принадлежит конкретный файл. Например, если вы хотите узнать имя пакета, который содержит /etc/httpd/conf/httpd.conf.

# yum provides /etc/httpd/conf/httpd.conf
Loaded plugins: fastestmirror
httpd-2.2.3-63.el5.centos.i386 : Apache HTTP Server
Repo        : base
Matched from:
Filename    : /etc/httpd/conf/httpd.conf

httpd-2.2.3-63.el5.centos.1.i386 : Apache HTTP Server
Repo        : updates
Matched from:
Filename    : /etc/httpd/conf/httpd.conf

httpd-2.2.3-65.el5.centos.i386 : Apache HTTP Server
Repo        : updates
Matched from:
Filename    : /etc/httpd/conf/httpd.conf

httpd-2.2.3-53.el5.centos.1.i386 : Apache HTTP Server
Repo        : installed
Matched from:
Other       : Provides-match: /etc/httpd/conf/httpd.conf

10. Проверка доступных обновлений с использованием Yum

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

# yum check-update

11. Обновление системы с использованием Yum

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

# yum update

12. Список всех доступных групповых пакетов

В Linux несколько пакетов объединены в определенную группу. Вместо установки отдельных пакетов с помощью yum, вы можете установить определенную группу, которая установит все связанные пакеты, принадлежащие группе. Например, чтобы перечислить все доступные группы, просто выполните следующую команду.

# yum grouplist
Installed Groups:
   Administration Tools
   DNS Name Server
   Dialup Networking Support
   Editors
   Engineering and Scientific
   FTP Server
   Graphics
   Java Development
   Legacy Network Server
Available Groups:
   Authoring and Publishing
   Base
   Beagle
   Cluster Storage
   Clustering
   Development Libraries
   Development Tools
   Eclipse
   Educational Software
   KDE (K Desktop Environment)
   KDE Software Development

13. Установка пакетов группы

Для установки определенной группы пакетов мы используем опцию как groupinstall. Например, чтобы установить ” MySQL Database “, просто выполните следующую команду.

# yum groupinstall 'MySQL Database'
Dependencies Resolved

=================================================================================================
Package								Arch      Version			 Repository        Size
=================================================================================================
Updating:
 unixODBC                           i386      2.2.11-10.el5      base              290 k
Installing for dependencies:
 unixODBC-libs                      i386      2.2.11-10.el5      base              551 k

Transaction Summary
=================================================================================================
Install       1 Package(s)
Upgrade       1 Package(s)

Total size: 841 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : unixODBC-libs	1/3
  Updating       : unixODBC         2/3
  Cleanup        : unixODBC         3/3

Dependency Installed:
  unixODBC-libs.i386 0:2.2.11-10.el5

Updated:
  unixODBC.i386 0:2.2.11-10.el5

Complete!

14. Обновление пакетов группы

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

# yum groupupdate 'DNS Name Server'

Dependencies Resolved
================================================================================================================
 Package			Arch	        Version				Repository           Size
================================================================================================================
Updating:
 bind                           i386            30:9.3.6-20.P1.el5_8.2          updates              981 k
 bind-chroot                    i386            30:9.3.6-20.P1.el5_8.2          updates              47 k
Updating for dependencies:
 bind-libs                      i386            30:9.3.6-20.P1.el5_8.2          updates              864 k
 bind-utils                     i386            30:9.3.6-20.P1.el5_8.2          updates              174 k

Transaction Summary
================================================================================================================
Install       0 Package(s)
Upgrade       4 Package(s)

Total size: 2.0 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating       : bind-libs            1/8
  Updating       : bind                 2/8
  Updating       : bind-chroot          3/8
  Updating       : bind-utils           4/8
  Cleanup        : bind                 5/8
  Cleanup        : bind-chroot          6/8
  Cleanup        : bind-utils           7/8
  Cleanup        : bind-libs            8/8

Updated:
  bind.i386 30:9.3.6-20.P1.el5_8.2                  bind-chroot.i386 30:9.3.6-20.P1.el5_8.2

Dependency Updated:
  bind-libs.i386 30:9.3.6-20.P1.el5_8.2             bind-utils.i386 30:9.3.6-20.P1.el5_8.2

Complete!

15. Удаление пакетов группы

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

# yum groupremove 'DNS Name Server'

Dependencies Resolved

===========================================================================================================
 Package                Arch              Version                         Repository          Size
===========================================================================================================
Removing:
 bind                   i386              30:9.3.6-20.P1.el5_8.2          installed           2.1 M
 bind-chroot            i386              30:9.3.6-20.P1.el5_8.2          installed           0.0

Transaction Summary
===========================================================================================================
Remove        2 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)

Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing        : bind                                                   1/2
warning: /etc/sysconfig/named saved as /etc/sysconfig/named.rpmsave
  Erasing        : bind-chroot                                            2/2

Removed:
  bind.i386 30:9.3.6-20.P1.el5_8.2                                        bind-chroot.i386 30:9.3.6-20.P1.el5_8.2

Complete!

16. Список включенных репозиториев Yum

Чтобы перечислить все включенные репозитории Yum в вашей системе, используйте следующую опцию.

# yum repolist

repo id                     repo name                                            status
base                        CentOS-5 - Base                                      enabled:  2,725
epel                        Extra Packages for Enterprise Linux 5 - i386         enabled:  5,783
extras                      CentOS-5 - Extras                                    enabled:    282
mod-pagespeed               mod-pagespeed                                        enabled:      1
rpmforge                    RHEL 5 - RPMforge.net - dag                          enabled: 11,290
updates                     CentOS-5 - Updates                                   enabled:    743
repolist: 20,824

16. Список всех включенных и отключенных репозиториев Yum

Следующая команда отобразит все включенные и отключенные репозитории yum в системе.

# yum repolist all

repo id                     repo name                                            status
C5.0-base                   CentOS-5.0 - Base                                    disabled
C5.0-centosplus             CentOS-5.0 - Plus                                    disabled
C5.0-extras                 CentOS-5.0 - Extras                                  disabled
base                        CentOS-5 - Base                                      enabled:  2,725
epel                        Extra Packages for Enterprise Linux 5 - i386         enabled:  5,783
extras                      CentOS-5 - Extras                                    enabled:    282
repolist: 20,824

17. Установка пакета из определенного репозитория

Чтобы установить определенный пакет из конкретного включенного или отключенного репозитория, вы должны использовать --enablerepo опцию в вашей команде yum. Например, чтобы Установить PhpMyAdmin пакет, просто выполните команду.

# yum --enablerepo=epel install phpmyadmin

Dependencies Resolved
=============================================================================================
 Package                Arch           Version            Repository           Size
=============================================================================================
Installing:
 phpMyAdmin             noarch         3.5.1-1.el6        epel                 4.2 M

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

Total download size: 4.2 M
Installed size: 17 M
Is this ok [y/N]: y
Downloading Packages:
phpMyAdmin-3.5.1-1.el6.noarch.rpm                       | 4.2 MB     00:25
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : phpMyAdmin-3.5.1-1.el6.noarch             1/1
  Verifying  : phpMyAdmin-3.5.1-1.el6.noarch             1/1

Installed:
  phpMyAdmin.noarch 0:3.5.1-1.el6

Complete!

18. Интерактивная оболочка Yum

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

# yum shell
Loaded plugins: fastestmirror
Setting up Yum Shell
> update httpd
Loading mirror speeds from cached hostfile
 * base: mirrors.sin3.sg.voxel.net
 * epel: ftp.riken.jp
 * extras: mirrors.sin3.sg.voxel.net
 * updates: mirrors.sin3.sg.voxel.net
Setting up Update Process
>

19. Очистка кэша Yum

По умолчанию yum хранит все данные о пакетах репозитория в /var/cache/yum/ с каждым подкаталогом, чтобы очистить все кэшированные файлы из включенного репозитория, необходимо регулярно выполнять следующую команду для очистки всего кэша и убедиться, что не используется ненужное пространство. Мы не хотим предоставлять вывод нижеуказанной команды, потому что мы предпочитаем сохранять кэшированные данные как есть.

# yum clean all

20. Просмотр истории Yum

Для просмотра всех прошлых транзакций команды yum просто используйте следующую команду.

# yum history

Loaded plugins: fastestmirror
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    10 | root               | 2012-08-11 15:19 | Install        |    3
     9 | root               | 2012-08-11 15:11 | Install        |    1
     8 | root               | 2012-08-11 15:10 | Erase          |    1 EE
     7 | root               | 2012-08-10 17:44 | Install        |    1
     6 | root               | 2012-08-10 12:19 | Install        |    2
     5 | root               | 2012-08-10 12:14 | Install        |    3
     4 | root               | 2012-08-10 12:12 | I, U           |   13 E<
     3 | root               | 2012-08-09 13:01 | Install        |    1 >
     2 | root               | 2012-08-08 20:13 | I, U           |  292 EE
     1 | System            | 2012-08-08 17:15 | Install        |  560
history list

Мы постарались охватить все базовые и продвинутые команды yum с их примерами. Если что-то, связанное с командами yum, могло быть пропущено. Пожалуйста, сообщите нам через наш блок комментариев. Таким образом, мы продолжаем обновлять то же самое на основе полученной обратной связи.

Source:
https://www.tecmint.com/20-linux-yum-yellowdog-updater-modified-commands-for-package-mangement/