20 Linux YUM(Yellowdog Updater,Modified)软件包管理命令

在本文中,我们将学习如何使用RedHat开发的YUM(Yellowdog Updater Modified)工具来安装,更新,删除,查找软件包,管理Linux系统上的软件包和存储库。在这篇文章中显示的示例命令我们的实际测试CentOS 6.3服务器,您可以使用这些材料的研究目的,认证或只是为了探索新的安装包和您的系统保持最新。本文的基本要求是,您必须对命令和一个有效的Linux操作系统有基本的了解,在这里您可以探索并练习下面列出的所有命令。
20 Linux Yum Commands

20 Linux Yum命令

什么是YUM?

YUM(Yellowdog更新修改 )是一个开源的命令行以及用于基于RPM的Linux系统基于图形化的软件包管理工具(redhat软件包管理器 )。 它允许用户和系统管理员轻松地在系统上安装,更新,删除或搜索软件包。 它的开发和GPL( 通用公共许可证 )作为一个开源由Seth维达尔发布,意味着任何人都可以允许下载和访问代码来修复漏洞和开发定制软件包。YUM通过解决使用众多的第三方软件库来安装软件包自动他们的依赖问题。

1.使用YUM安装软件包

要安装一个叫包Firefox 14 ,只需运行下面的命令,它会自动找到并安装所有需要的依赖于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列出软件包

使用列表功能来搜索特定的包的名称。 例如,要搜索一个包叫做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

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选项。 例如,要安装3.5.2 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 /缓存/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命令有关的任何东西可能错过了。请通过我们的评论栏更新我们。因此,我们根据收到的反馈继续更新。