首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
rpm包管理
时间:
2017-12-04 20:28:33
阅读:
218
评论:
0
收藏:
0
[点我收藏+]
标签:
linux
rpm
用rpm命令管理程序包: 安装、卸载、升级、查询、校验、数据库维护
包安装
rpm {-i|--install} [install-options] PACKAGE_FILE…
[install-options]
--test: 测试安装,但不真正执行安装,即dry run模式
例 rpm -ivh tree-1.6.0-10.el7.x86_64.rpm --test
--nodeps:忽略依赖关系
--replacepkgs | replacefiles
--nosignature: 不检查来源合法性
--nodigest:不检查包完整性
--noscripts:不执行程序包脚本
%pre: 安装前脚本; --nopre
%post: 安装后脚本; --nopost
%preun: 卸载前脚本; --nopreun
%postun: 卸载后脚本; --nopostun
-v: verbose 详细过程
-vv: 更详细
-h: 以#显示程序包管理执行进度(加个进度条)
例:
rpm -ivh PACKAGE_FILE ...
[root@centos7 ~]#cd /misc/cd/Packages/
[root@centos7 Packages]#cp tree-1.6.0-10.el7.x86_64.rpm /app/
[root@centos7 Packages]#cd /app
[root@centos7 app]#rpm -ivh tree-1.6.0-10.el7.x86_64.rpm
包升级
rpm {-U|--upgrade} [install-options] PACKAGE_FILE...
rpm {-F|--freshen} [install-options] PACKAGE_FILE...
upgrade:安装有旧版程序包,则“升级”
如果不存在旧版程序包,则“安装”
freshen:安装有旧版程序包,则“升级”
如果不存在旧版程序包,则不执行升级操作
rpm -Uvh PACKAGE_FILE ...
rpm -Fvh PACKAGE_FILE ...
--oldpackage:降级
--force: 强制安装
例 [root@centos7 app]#rpm -ivh tree-1.6.0-10.el7.x86_64.rpm 会提示已安装
[root@centos7 app]#rpm -ivh tree-1.6.0-10.el7.x86_64.rpm --force 强制再安装一遍
升级注意项
(1) 不要对内核做升级操作;Linux支持多内核版本并存,因此 ,对直接安装新版本内核
(2)如果原程序包的配置文件安装后曾被修改,升级时,新版本的提供的同一个配置文件并不会直接覆盖老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留
包查询
rpm {-q|--query} [select-options] [query-options]
[select-options]
-a: 所有包
-f: 查看指定的文件由哪个程序包安装生成
-p rpmfile:针对尚未安装的程序包文件做查询操作
例 rpm -qpl /misc/cd/Packages/tree-1.6.0-10.el7.x86_64.rpm 查看包内的文件
rpm2cpio /misc/cd/Packages/tree-1.6.0-10.el7.x86_64.rpm | cpio -tv 方法二
--whatprovides CAPABILITY:查询指定的CAPABILITY 由哪个包所提供 CAPABILITY理解为功能或关键字
例 rpm -q --whatprovides tree 查询tree功能由哪个包提供(与--whatrequires方向相反)
--whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖
例 rpm -q --whatrequires bash 查询需要bash能力的软件包,查询到的包都是依赖bash的
rpm2cpio 包文件|cpio –itv 预览包内文件
rpm2cpio 包文件|cpio –id “*.conf” 释放包内文件
[query-options]
--changelog:查询rpm包的changelog 查询更改日志
例 rpm -q --changelog bash 查询bash的更改日志
-c: 查询程序的配置文件
例 rpm -qc bash 只相询bash的配置文件
-d: 查询程序的文档
例 rpm -qd bash 只看文档
-i: information
-l: 查看指定的程序包安装后生成的所有文件
--scripts:程序包自带的脚本
例 rpm -q --scripts tree tree包太简单,不带脚本
rpm -q --scripts bash 查询bash包的脚本
--provides: 列出指定程序包所提供的CAPABILITY (列出某个包提供的能力列表)
例 rpm -q --provides bash 包bash提供的能力列表
-R: 查询指定的程序包所依赖的CAPABILITY
例 rpm -qR tree 相询tree包依赖哪些程序哪些包,它依赖相询到的内容
常用查询用法
-qi PACKAGE 查看包的一些说明性的信息
rpm -qi bash 查看bash的版本等信息
-qf FILE 查询文件来自哪个包
例 rpm -qf /usr/bin/tree 查询/usr/bin/tree来自哪个包 与-ql相反
-qc PACKAGE
-ql PACKAGE 查询包含有的文件列表
例 rpm -ql tree 查询包tree含有的文件列表 与-qf相反
-qd PACKAGE
-qpi PACKAGE_FILE
-qpl PACKAGE_FILE
-qa
例 查询含tre的包
rpm -qa| grep tre
rpm -qa "*tre*" 通配符
包卸载
rpm {-e|--erase} [--allmatches] [--nodeps] [-noscripts] [--notriggers] [--test] PACKAGE_NAME ...
例 rpm -e sl 卸载包sl
[--allmatches] 卸载所有版本,例如有两个内核,全部卸载
[--nodeps] 忽略依赖性
[-noscripts] 只卸载,不运行脚本 (preinstall 安装前 preuninstall 卸载前
postinstall 安装后 postunistall 卸载后)
[--notriggers] 触发器
[--test] 测试,假装卸载,不执行
包校验
rpm {-V|--verify} [select-options] [verify-options]
例 rpm -V centos-release 查看centos-release目前与刚刚安装好时的变化
S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTime differs
P capabilities differ
包来源合法性验正及完整性验正
完整性验正:SHA256
来源合法性验正:RSA
公钥加密
对称加密:加密、解密使用同一密钥
非对称加密:密钥是成对儿的
public key: 公钥,公开所有人
secret key: 私钥, 不能公开
导入所需要公钥
rpm -K|checksig rpmfile 检查包的完整性和签名
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
CentOS 7发行版光盘提供:RPM-GPG-KEY-CentOS-7
rpm -qa “gpg-pubkey*”
rpm数据库
数据库重建: /var/lib/rpm
rpm {--initdb|--rebuilddb}
initdb: 初始化
如果事先不存在数据库,则新建之
否则,不执行任何操作
rebuilddb:重建已安装的包头的数据库索引目录
rpm包管理
标签:
linux
rpm
原文地址:http://blog.51cto.com/13488618/2047308
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!