什么是YUM
YUM
(Yellowdog Updater Modified
) 是一个开源命令行包管理工具,用于RPM
(RedHat Package Manager
) 基于 Linux 系统。它允许用户和系统管理员轻松地在系统上安装、更新、删除或搜索软件包。它是由开发和发布的Seth Vidal
在下面GPL
(General Public License
) 作为开源,意味着任何人都可以下载和访问代码以修复错误和开发定制包。YUM
使用众多第三方存储库通过解决依赖关系问题来自动安装软件包。
1. 用YUM安装一个包
代码语言:javascript复制要安装名为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!
代码语言:javascript复制在你的系统上安装任何软件包之前,上述命令将要求确认。如果你想在不要求任何确认的情况下自动安装软件包,请使用选项
-y
如下例所示。
# yum -y install firefox
2. 使用YUM
删除包
代码语言:javascript复制要完全删除一个包及其所有依赖项,只需运行以下命令,如下所示。
# 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!
代码语言:javascript复制以同样的方式,上述命令将在删除包之前要求确认。要禁用确认提示,只需添加选项 -y,如下所示。
# yum -y remove firefox
3. 使用YUM
更新包
代码语言:javascript复制假设你有过时版本的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
列出一个包
代码语言:javascript复制使用
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
代码语言:javascript复制为了使你的搜索更准确,如果你知道,请使用它们的版本定义包名称。例如搜索特定版本
openssh-4.3p2
包,使用命令。
# yum list openssh-4.3p2
5. 使用YUM
搜索包
代码语言:javascript复制如果你不记得包的确切名称,请使用
search
函数来搜索所有可用的包以匹配你指定的包的名称。例如,要搜索与单词匹配的所有包.
# 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
获取包的信息
代码语言:javascript复制假设你想在安装之前了解软件包的信息。要获取包的信息,只需发出以下命令。
# 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
列出所有可用的包
代码语言:javascript复制要列出 Yum 数据库中的所有可用包,请使用以下命令。
# yum list | less
8. 使用YUM
列出所有已安装的包
代码语言:javascript复制要列出系统上所有已安装的软件包,只需发出以下命令,它将显示所有已安装的软件包。
# yum list installed | less
9. Yum provides
代码语言:javascript复制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 检查可用更新
代码语言:javascript复制要查找系统上有多少已安装的软件包有可用更新,请使用以下命令进行检查。
# yum check-update
11. 使用 Yum 更新系统
代码语言:javascript复制要通过所有安全和二进制包更新使你的系统保持最新,请运行以下命令。它将为你的系统安装所有最新的补丁和安全更新。
# yum update
12. 列出所有可用的组包
代码语言:javascript复制在 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. 安装组包
代码语言:javascript复制要安装特定的软件包组,我们使用选项作为
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. 更新组包
代码语言:javascript复制要更新任何现有的已安装组包,只需运行以下命令,如下所示。
# 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. 删除组包
代码语言:javascript复制要从系统中删除或删除任何现有的已安装组,只需使用以下命令。
# 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 存储库,请使用以下选项。
代码语言:javascript复制# 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 存储库
代码语言:javascript复制以下命令将显示系统上所有启用和禁用的 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. 从特定存储库安装包
代码语言:javascript复制要从特定启用或禁用的存储库安装特定软件包,你必须使用
–enablerepo
yum 命令中的选项。例如安装PhpMyAdmin 3.5.2
包,只需执行命令。
# 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
代码语言:javascript复制
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 缓存
代码语言:javascript复制默认情况下,yum 将所有启用了存储库的包数据保存在
/var/cache/yum/
对于每个子目录,要从启用的存储库中清除所有缓存文件,你需要定期运行以下命令以清除所有缓存并确保没有任何不必要的空间正在使用。我们不想给出以下命令的输出,因为我们喜欢保持缓存数据的原样。
# yum clean all
20. 查看yum安装历史
代码语言:javascript复制要查看 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
相关文章
Linux之yum命令
linux之yum源设置代理
linux之yum下载rpm包离线安装