rpm及yum的优缺点
**RPM是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装、查询、卸载、升级等工作。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。 YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
一丶rpm命令详解
-i 安装 -v 显示安装过程 -vv 显示安装详细过程 -h 显示安装进度
-ivh 常用的安装选项
--nodeps忽略安装包依赖性关系检测
--replacepkgs 重复安装已安装过的安装包,文件覆盖
--replacefiles 即将安装的安装包的部分文件与其他已安装的安装包文件冲突,可继续安装,文件不覆盖
--nosignature: 不检查来源合法性
--nodigest:不检查安装包的完整性
--noscripts:不执行程序包脚本
-U 指定的安装包比已安装的安装包新或者未安装
-F 指定的包比已安装的包新 --oldpackage 指定的包比已安装过的包旧
-q 查询包是否安装 -qa 查询已安装的所有包 -qf 文件路径 查询指定的文件来源于哪一个rpm包 -ql 包名 查询该包提供了哪些文件 -qp rpm包 对未安装的包,指定rpm文件再配合其他查询子选项来进行各项查询操作 -q --changelog 包名 查看更新日志 -qc 包名 查看该软件包所提供的配置文件 -qd 包名 查看该软件包所提供的文档文件 -qi 包名 查看该软件包的详细信息 -q** --scripts 查看安装前及安装后的脚本** -q --provides 包名 查看一个软件包提供了哪些能力 -qR 包名 查看一个软件包的运行所依赖的能力 -q --whatprovides 能力名 查看一个能力由哪个包提供 -q --whatrequires 能力名 查看一个能力依赖于哪些包
-e 卸载
-e 包名
rpm -e `rpm -q vsftpd`
或
rpm -e vsftpd --allmatches 安装了多个版本的某个rpm可以一次性全部删除
--nodeps 删除时不检查依赖性关系
-K rpm包 验证包的合法性 --import 公钥 导入公钥 rpm -qa "gpg-pubkey*" 查询公钥 rpm -e
rpm -qa "gpg-pubkey*"
删除公钥
--initdb 初始化/var/lib/rpm数据库 --rebuilddb 重建包头索引目录 rpm2cpio 将rpm包转换为cpio归档文件
例子:模拟删除/etc/init/rcS.conf文件并恢复
1.rm -f /etc/init/rcS.conf #删除文件
2.rpm -qf /etc/init/rcS.conf #查询删除的文件来自哪个包
initscripts-9.03.58-1.el6.centos.x86_64 #查出拥有该文件的安装包
3.cp /media/Packages/initscripts-9.03.58-1.el6.centos.x86_64 /app #将安装包拷贝出来
4.cd /app #进入安装包所在目录
5.rpm2cpio initscripts-9.03.58-1.el6.centos.x86_64 |cpio -id #将安装包转换为归档文件
6.cp etc/init/rcS.conf /etc/init #找到该文件拷贝至所欲要的目录
二丶yum
yum repolist
all 显示所有的仓库
enabled 显示已启用的仓库
disabled 显示已禁用的仓库
yum list [all] available 显示所有可用的,且未安装的 installed 显示所有已安装的包 updates 显示可更新的包
yum info pkg1 显示包的详细信息 yum provides | whatprovides 文件路径(支持文件名通配符) 查询一个文件来自哪一个rpm包无论是否已安装 yum clean all清空缓存 yum makecache 建立新缓存 yum deplist pkg1 查询指定包所依赖的能力 yum localinstall |install rpm路径 安装本地的rpm包,并用yum解决依赖性关系 yum localupdate |update rpm路径 更新本地的rpm包,并用yum解决依赖性关系
yum groupinstall grppkg1 grouplist 列出所有的包组 groupinfo grppkg1 显示该包组包含的rpm包 groupremove grppkg1 卸载包组