网站搜索

20 个用于 Linux 包管理的 YUM 命令


在本文中,我们将学习如何使用 YUM (Yellowdog Updater Modified) 开发的工具在 Linux 系统上安装、更新、删除、查找软件包、管理软件包和存储库红帽。

本文中显示的示例命令在我们的 RHEL 8 服务器上进行了实际测试,您可以将这些材料用于学习目的、RHEL 认证,或者只是探索安装新软件包并使系统保持最新的方法。

本文的基本要求是,您必须对命令有基本的了解,并且有一个可以运行的 Linux 操作系统,您可以在其中探索和练习下面列出的所有命令。

什么是百胜餐饮?

YUM (Yellowdog Updater Modified) 是一个开源命令行以及基于图形的软件包管理工具,适用于 RPM (基于 RedHat Package Manager)的 Linux 系统。

它允许用户和系统管理员轻松地在系统上安装、更新、删除或搜索软件包。它是由 Seth VidalGPL通用公共许可证)下作为开放源代码开发和发布的,这意味着任何人都可以下载并访问代码来修复错误并开发定制包。

YUM 使用大量第三方存储库通过解决软件包的依赖关系问题来自动安装软件包。

更新yum 命令被 dnf 命令取代,dnf 命令是 yum 的下一代版本,被认为是 yum 的替代品在大多数较新的基于 RPM 的发行版中都是 YUM 的。

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 提供函数用于查找特定文件属于哪个包。例如,如果您想知道具有 /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. 从特定存储库安装包

要从特定的启用或禁用存储库安装特定软件包,您必须在 yum 命令中使用 --enablerepo 选项。例如要安装 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 实用程序提供了一个自定义 shell,您可以在其中执行多个命令。

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 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 命令相关的内容可能会被遗漏。请通过我们的评论框更新我们的信息。因此,我们根据收到的反馈不断更新。