В этой статье мы узнаем, как устанавливать, обновлять, удалять, находить пакеты, управлять пакетами и репозиториями в системах 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
, как показано в примере ниже.
# 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/