yum rpm 概述
在Linux的日常维护管理中,管理员要不停的和Linux的程序安装,升级,卸载打交道,这里面用到最多的两个命令就是rpm和yum,甚至有时候我们还涉及源程序的编译安装,用来更高效利用我们的设备。
Linux上常用的安装和升级工具主要有yum和apt,其中yum能更好的解决rpm的依存性问题,推荐使用yum。默认没有安装yum,需要单独下载并安装.
RPM简介:
RPM 是 Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理;在Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用.
RPM包里面包含可执行的二进制程序,这个程序和Windows的软件包中的.exe文件类似是可执行的;RPM包中还包括程序运行时所需要的文件,这也和Windows的软件包类似,Windows的程序的运行,除了.exe文件以外,也有其它的文件.
一个RPM 包中的应用程序,有时除了自身所带的附加文件保证其正常以外,还需要其它特定版本文件,这就是软件包的依赖关系;依赖关系并不是Linux特有的, Windows操作系统中也是同样存在的;比如我们在Windows系统中运行3D游戏,在安装的时候,他可能会提示,要安装Direct 9 ;Linux和Windows原理是差不多的。
RPM包管理的用途
1、可以安装、删除、升级和管理软件;当然也支持在线安装和升级软件;
2、通过RPM包管理能知道软件包包含哪些文件,也能知道系统中的某个文件属于哪个软件包;
3、可以在查询系统中的软件包是否安装以及其版本;
4、作为开发者可以把自己的程序打包为RPM 包发布;
5、软件包签名GPG和MD5的导入、验证和签名发布;
6、依赖性的检查,查看是否有软件包由于不兼容而扰乱了系统。
yncengine-1.0.2-10.fc10.x86_64.rpm
syncengine: 软件名称
1.0.2: 版本号
10: 发行号或发行标记,可以使用alpha(A)、debug(D)、beta(B)、release(R)四个版本,某些情况也可以使用test(T)
fc10: 表示对应于Fedor10的发行版的Linux
x86_64: 系统平台的版本,通常有i386等,如果是noarch则表示对硬件没有级别限制
rpm: 后缀名称,如果是以.src.rpm为后缀的,说明包中还同时带有软件的原代码
查看本机安装的yum包都有哪些?
~]# rpm -qa |grep yum
安装一个新的rpm 包
~]# rpm –ivh yum-3.4.3-125.el7.centos.noarch.rpm
配置文件:
/etc/yum.conf 为所有仓库提供公共配置
/etc/yum.repos.d/*.repo 为仓库的指向提供配置
cachedir=/var/cache/yum #yum下载的RPM包的缓存目录
keepcache=0 存是否保存,1保存,0不保存。
debuglevel=2 调试级别(0-10),默认为2
logfile=/var/log/yum.log #yum的日志文件所在的位置
exactarch=1 更新的时候,是否允许更新不同版本的RPM包,比如是否在i386上更新i686的RPM包。
obsoletes=1 是一个update的参数,具体请参阅yum(8),简单的说就是相当于upgrade,许更新陈旧的RPM包
gpgcheck=1 是否检查GPG(GNU Private Guard),一种密钥方式签名。
plugins=1 是否允许使用插件,默认是0不允许,但是我们一般会用yum-fastestmirror 个插件。
installonly_limit=5 允许保留多少个内核包。
exclude=selinux* #屏蔽不想更新的RPM包,可用通配符,多个RPM包之间使用空格分离。
安装:
]#rpm -vih file.rpm
-i install 安装
-v 显示详细信息
vv 显示更加详细的信息
-h 使用#显示安装进度
查询:
]#rpm -qa [包名][路径]
rpm -q 对软件包查询
-qa 查询所有软件包
-qip 查询没有安装过的软件包 +包名称及路径
-qi 查询已经安装的软件包的详细信息 +包名
-ql 查询已安装过的软件包位置及安装生成文件 +包名称
-qlp 查询软件包里面包含哪些文件 +包名称及路径
-qf 查询某个文件时属于哪个软件包 +包名称及路径
卸载:
]#rpm -e [包名]
rpm -e 包名
升级:
]#rpm -uvh file.rpm
rpm -uvh 不但可以完成升级还可以完成安装
-fvh 只可以进行软件的升级
校验:
rpm -V 在校验的时候如果没有提示任何的信息,说明文件没有错误
yum指令详解
安装应用程序
yum install package_name
yum -y : 自动回答为yes
重新安装一次,不管是否装过
yum reinstall package_name
*rpm包的更新
检查可更新的rpm包
#yum check-update
更新所有的rpm包
#yum update
更新指定的rpm包,如更新kernel和kernel source
#yum update kernel kernel-source
大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
#yum upgrade
删除rpm包,包括与该包有倚赖性的包
#yum remove licq
注:同时会提示删除licq-gnome,licq-qt,licq-text
*yum暂存(/var/cache/yum/)的相关参数
清除暂存中rpm包文件
#yum clean packages
清除暂存中rpm头文件
#yum clean headers
清除暂存中旧的rpm头文件
#yum clean oldheaders
清除暂存中旧的rpm头文件和包文件
#yum clean或#yum clean all
注:相当于yum clean packages + yum clean oldheaders
*rpm包列表
列出资源库中所有可以安装或更新的rpm包
#yum list
列出资源库中特定的可以安装或更新以及已经安装的rpm包
#yum list mozilla
#yum list mozilla*
注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包
列出资源库中所有可以更新的rpm包
#yum list updates
列出已经安装的所有的rpm包
#yum list installed
列出以bind开头的所有rpm包
# yum list all bind*
移除所有以bind开头的所有rpm包
# yum remove bind*
列出已经安装的但是不包含在资源库中的rpm包
#yum list extras
注:通过其它网站下载安装的rpm包
*rpm包信息显示(info参数同list)
列出资源库中所有可以安装或更新的rpm包的信息
#yum info
列出资源库中特定的可以安装或更新以及已经安装的rpm包的信息
#yum info mozilla
#yum info mozilla*
注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包的信息
列出资源库中所有可以更新的rpm包的信息
#yum info updates
列出已经安装的所有的rpm包的信息
#yum info installed
列出已经安装的但是不包含在资源库中的rpm包的信息
#yum info extras
搜索匹配特定字符的rpm包
#yum search all glibc
搜索有包含特定文件名的rpm包
#yum provides realplay
检查GPG Key
# rpm -qa gpg-pubkey*
显示Key信息
#rpm -qi gpg-pubkey-f4a80eb5-53a7ff4b
删除Key
#rpm -e gpg-pubkey-e42d547b-3960bdf
系统更新(更新所有可以升级的rpm包,包括kernel)
#yum -y update
每天定期执行系统更新
#chkconfig yum on
#service yum start
vim /etc/yum.repos.d/CentOS-Media.repo 光盘使用yum安装软件配置文件
vim /etc/yum.repos.d/CentOS-Base.repo 网络使用yum安装软件配置文件