简述rpm与yum命令的常见选项

rpm是一个功能十分强大的软件包管理系统,它使得在Linux下安装、升级和删除软件包的工作变的容易、并且具有查询、验证软件包的功能。


1)安装选项
命令格式:rpm {-i|--install} [install-options] PACKAGE_FILE ...
详细选项
-h (or -hash)安装时输出hash记号(#)
--test 只对安装进行测试,并不实际安装
--percent 以百分比的形式输出安装的进度
--nodeps:忽略依赖关系
--replacepkgs:重新安装
--nosignature:不检查来源合法性
--noscipts:不执行程序包脚本片段;
%pre:安装前脚本:--nopre
$post:安装后脚本; --nopost
%preun:卸载前脚本; --nopreun
%postun:卸载后脚本; --nopostun

普通选项
-v:显示附加信息
--vv:显示更加详细的信息


2)升级
命令格式:rpm {-U|--upgrade}[install-options]PACKAGE_FILE...
rpm {-F|--freshen}[install-options]PACKAGE_FILE...
upgrade:安装有旧版程序包,则升级,如果不存在旧版本的程序包,则安装;
freeshen:安装有旧版程序包,则升级,如果不存在旧版本程序包,则不执行升级操作;
rpm -Uvh PACHAGE_FILE ...
rpm Fvh PACHAGE_FILE ...
--oldpackage:降级
--force:强行升级

注意:(1)不要对内核升级操作:Linux支持多内核版本并存,因此,对直接安装新版本内核;
(2)如果原程序包的配置文件安装后曾被修改,升级时,新版本的提供的通一个配置文件并不会直接覆盖老版本的配置文件,而被新版本文件重命名(FILENAME.rpmnew)后保留;


3)查询
命令格式: rpm {-q|--query} [select-options] [query-options]
-a:所有包;
-f:查看指定的文件由那个程序包安装生成
-p /PATH/TO/PACKAGE_FILE:针对尚未安装的程序包做查询操作;
--whatprovides CAPABILITY:查询指定CAPABILITY由那个包提供;
--whatrequies CAPABILITY:查询指定CAPILITY被那个包所依赖;

详细选项
--changelog:查询rpm包的changlog
-c:查询程序的配置文件
-i:infornation
-l:查看指定程序包安装后生成的指定文件
--scripts:程序包自带脚本片段
-R:查询指定的程序包所依赖的CAPABILITY;
--provides:列出指定程序包所提供的CAPABILITY;
用法
-qi PACKAGE,-qf FILE,-qc PACKAGE,-qd PACKAGE
-qpi PACKAGE_FILE,-qpl PACHAGE_FILE,...
-qa


4)卸载
命令格式:rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts][--notriggers] [--test] PACKAGE_NAME ...

参数
pkg1 ... pkgN :要删除的软件包
详细选项

--test 只执行删除测试
--noscripts 不运行预安装和后安装脚本程序
--nodeps 不检查依赖性


5)校验已安装的软件包
命令格式:
rpm {-V|--verify} [select-options] [verify-options]

参数
pkg1 ... pkgN 将要校验的软件包名

软件包选项
-p Verify against package file
-f 校验所属的软件包
-a Verify 校验所有的软件包
-g 校验所有属于组的软件包

详细选项

--noscripts 不运行校验脚本
--nodeps 不校验依赖性
--nofiles 不校验文件属性


例子

[root@qingcheng-db lgp]# rpm -ivh htop-2.0.2-1.el7.x86_64.rpm             //安装包,并显示详细进度
警告:htop-2.0.2-1.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID 352c64e5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:htop-2.0.2-1.el7                 ################################# [100%]

[root@qingcheng-db lgp]# rpm -i ftp://ftp.xxx.xxx                       //在线安装
[root@qingcheng-db lgp]# rpm -Va                                            //校验所有的rpm包,查找丢失的文件
遗漏   c /etc/yum.repos.d/CentOS-Base.repo
遗漏   c /etc/yum.repos.d/CentOS-CR.repo
遗漏   c /etc/yum.repos.d/CentOS-Debuginfo.repo
遗漏   c /etc/yum.repos.d/CentOS-Media.repo
遗漏   c /etc/yum.repos.d/CentOS-Sources.repo
遗漏   c /etc/yum.repos.d/CentOS-Vault.repo
遗漏   c /etc/yum.repos.d/CentOS-fasttrack.repo

[root@qingcheng-db lgp]# rpm -qf /usr/bin/htop                   //查找一个文件属于哪个包
htop-2.0.2-1.el7.x86_64

[root@qingcheng-db lgp]# rpm -qpi htop-2.0.2-1.el7.x86_64.rpm    //查询rpm包的描述信息
[root@qingcheng-db lgp]# rpm -qpl htop-2.0.2-1.el7.x86_64.rpm    //列出rpm包的文件信息
警告:htop-2.0.2-1.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID 352c64e5: NOKEY
/usr/bin/htop
/usr/share/doc/htop-2.0.2
/usr/share/doc/htop-2.0.2/AUTHORS
/usr/share/doc/htop-2.0.2/COPYING
/usr/share/doc/htop-2.0.2/ChangeLog
/usr/share/doc/htop-2.0.2/README
/usr/share/man/man1/htop.1.gz
/usr/share/pixmaps/htop.png

[root@qingcheng-db lgp]# rpm -Uvh htop-2.0.2-1.el7.x86_64.rpm      //升级包
[root@qingcheng-db lgp]# rpm -q  htop                                              //查看htop的安装包
htop-2.0.2-1.el7.x86_64
[root@qingcheng-db lgp]# rpm -e  htop                                            //移除安装包
[root@qingcheng-db lgp]# rpm -qi htop                                            //得到安装包的信息
[root@qingcheng-db lgp]# rpm -ql htop                                            //列出http中有那些文件
[root@qingcheng-db lgp]# rpm -qa                                                    //列出所有已安装的包
  

yum

用于添加/删除/更新rpm包,自动解决包的依赖问题以及系统更新升级

参数

-e 静默执行
-t 忽略错误
-R[分钟]设置等待时间
-y 自动应答 yes
--skip-broken忽略依赖问题
--nogpgcheck 忽略GPG验证

check-update 检查可更新的包
clean all清楚全部
clean packages 清楚临时包文件 (/var/cache/yum 下文件)
clean headers 清除rpm头文件
deplist 列出包的依赖
list 可安装和可更新的RPM包
list installed 已安装的包
list extras 已安装且不在资源库的包
info 可安装和可更新的RPM包信息
info installed 已安装包的信息(-qa参数相似)
install[RPM包]安装包
localinstall 安装本地的RPM包
update [RPM包]更新包
upgrate 升级系统
search [关键词]搜索包
provides[关键词]搜索特定包文件名
resinstall [RPM包]更新安装包
repolist 显示资源库的配置
resolvedep指定依赖
remove[RPM包]卸载包

例子

安装
[root@qingcheng-db ~]# yum install php                              //安装PHP
[root@qingcheng-db ~]# yum groupinstall "MySQL Server"          //安装mysql数据组

更新和升级
[root@qingcheng-db ~]# yum update                                           //全部更新
[root@qingcheng-db ~]# yum update php                                   //更新PHP
[root@qingcheng-db ~]# yum check-update                               //检查可更新的程序
[root@qingcheng-db ~]# yum upgrade php                                //升级php
[root@qingcheng-db ~]# yum groupupdate "MySQL Server"     //升级mysql服务组

查找和显示
[root@qingcheng-db ~]# yum info php                                //查看php的安装信息
[root@qingcheng-db ~]# yum list                                         //列出所有可用安装程序包
[root@qingcheng-db ~]# yum list php                                 //列出所有php的程序包
[root@qingcheng-db ~]# yum groupinfo  "MySQL Server"    // 查看mysql服务组的,相关安装包
[root@qingcheng-db ~]# yum deplist php                             //查看php依赖情况
[root@qingcheng-db ~]# yum search iftop                            //搜索安装包
[root@qingcheng-db ~]# yum history                                  //查看历史记录
[root@qingcheng-db ~]# yum provides */vim                     //查看命令的生成包


删除
[root@qingcheng-db ~]# yum remove php                       //删除php
[root@qingcheng-db ~]# yum groupremove  "MySQL Server"     //删除mysql服务组

清除缓存
[root@qingcheng-db ~]# yum clean packages                  //清除缓存目录下的软件包
[root@qingcheng-db ~]# yum clean headers                    //清除缓存目录下的headers
[root@qingcheng-db ~]# yum clean oldheaders               //清除缓存目录下旧的headers
[root@qingcheng-db ~]# yum clean,yum clean all            //清除所有
posted on 2018-01-11 15:52  美丽de世界  阅读(1551)  评论(0编辑  收藏  举报