20 команд YUM для управления пакетами Linux
В этой статье мы узнаем, как устанавливать, обновлять, удалять, находить пакеты, управлять пакетами и репозиториями в системах Linux с помощью инструмента YUM (Yellowdog Updater Modified), разработанного YUM. Strong>RedHat.
Примеры команд, показанные в этой статье, практически протестированы на нашем сервере RHEL 8. Вы можете использовать эти материалы в учебных целях, сертификации RHEL или просто для изучения способов установки новых пакетов и поддержания вашей системы в актуальном состоянии.
Основное требование этой статьи: вы должны иметь базовое представление о командах и работающую операционную систему Linux, в которой вы можете изучить и попрактиковаться во всех командах, перечисленных ниже.
Что такое ЮМ?
YUM (Yellowdog Updater Modified) — это графический инструмент управления пакетами с открытым исходным кодом для RPM ( Системы Linux на базе RedHat Package Manager).
Он позволяет пользователям и системным администраторам легко устанавливать, обновлять, удалять или искать пакеты программного обеспечения в системе. Он был разработан и выпущен Сетом Видалом под лицензией 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
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 обеспечивает функциональность
Функция 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», просто выполните приведенную ниже команду.
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 Shell
Утилита 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, возможно, было упущено. Пожалуйста, сообщите нам об этом через поле для комментариев. Итак, мы продолжаем обновлять его на основе полученных отзывов.