Linux_rpm包管理
一、rpm包命令规范
1、包的组成
- 主包:bind-9.7.1-1.el5.i586.rpm
- 子包:bind-libs-9.7.1-1.el5.i586.rpm bind-utils-9.7.1-1.el5.i586.rpm
2、包名格式
- name-version-release-arch.rpm
- bind-major.minor.release-release.arch.rpm
3、包名格式说明
- major(主版本号):重大改进
- minor(次版本号):某个子功能发生重大变化
- release(发行号):修正了部分bug,调整了一点功能
4、常见的arch:
- x86:i386,i486,i586,i686
- x86_64:x64,x86_64,amd64
- 跟平台无关:noarch
二、rpm包管理
1、rpm及其作用
1️⃣:rpm是Redhat Package Manager的简称,用于管理软件包
2️⃣:rpm有一个强大的数据库/var/lib/rpm
3️⃣:rpm的管理工作包括软件的安装、卸载、升级、查询、校验、重建数据库、验证软件包来源合法性等等
2、rpm包安装
1️⃣:语法:rpm -ivh /PATH/TO/PACKAGE_FILE ...
2️⃣:常用选项:
- //常用选项
- -i: 安装
- -v: 显示详细信息
- -h: 显示安装进度条
- -e :删除指定rpm包
- -R :显示软件包的关键信息
- -s :显示文件状态
- --test: 测试安装,但不真正执行安装过程
- --nodeps: 忽略依赖关系
- --replacepkgs: 重新安装,替换原有安装
- --oldpackage: 降级
- --force: 强行安装,可以实现重装或降级
- --nodigest: 不检查包的完整性
- --nosignature: 不检查包的来源合法性
- --noscripts: 不执行程序包脚本片断
- %pre:安装前脚本 --nopre
- %post:安装后脚本 --nopost
- %preun:卸载前脚本 --nopreun
- %postun:卸载后脚本 --nopostun
3️⃣:安装示例:
- //安装软件包, 需要指定软件包绝对路径 (当前系统版本是RHEL8)
- [root@localhost mnt]# rpm -ivh /mnt/AppStream/Packages/http-parser-2.8.0-5.el8.x86_64.rpm
- [root@localhost mnt]# rpm -ivh /mnt/AppStream/Packages/vsftpd-3.0.3-28.el8.x86_64.rpm
- //测试一个软件包是否能在该系统上安装
- [root@localhost ~]# rpm -ivh --test /mnt/AppStream/Packages/http-parser-2.8.0-5.el8.x86_64.rpm
- //如果软件包存在, 强制再次安装
- [root@localhost ~]# rpm -ivh --force /mnt/AppStream/Packages/http-parser-2.8.0-5.el8.x86_64.rpm
- //安装Apache服务需要依赖其他组件, 使用--nodeps可重新强制安装
- [root@localhost ~]# rpm -ivh --nodeps /mnt/AppStream/Packages/http-parser-2.8.0-5.el8.x86_64.rpm
4、rpm包查询
- rpm包查询:
- 语法:rpm 选项 (--指定的命令) packagesname
- -q :查询指定的包是否已安装
- -qa :查询已经安装的所有包
- -ql :查询指定软件包安装后生成的文件列表
- -qi :查询指定包的说明信息
- -qR :查询指定的软件包所依赖的CAPABILITY
- -qf :查询指定的文件是由哪个rpm包安装生成的
- -qc :查询指定包安装的配置文件
- -qd :查询指定包安装的帮助文件
- -q --scripts :查询指定包中包含的脚本
- -q --whatprovides :查询指定的CAPABILITY(能力)由哪个包所提供
- 例如:rpm -q --whatprovides /bin/cat
- -q --whatrequires :查询指定的CAPABILITY被哪个包所依赖
- -q --changelog :查询COMMAND的制作日志
- -q --scripts :查询指定软件包包含的所有脚本文件
- -q --provides :列出指定软件包所提供的CAPABILITY
- -qpi /PATH/TO/PACKAGE_FILE :查询指定未安装包的说明信息
- -qpl /PATH/TO/PACKAGE_FILE :查询未安装的软件包会产生哪些文件
实例:
- //查询httpd这个rpm包是否安装
- [root@localhost ~]# rpm -q httpd
- //查找系统已安装的rpm包
- [root@localhost ~]# rpm -ql|grep httpd
- //查询rpm包所安装的文件
- [root@localhost ~]# rpm -qa httpd
- //查询配置文件或命令来自于哪个rpm包
- [root@localhost ~]# rpm -qf /usr/sbin/httpd
- [root@localhost ~]# rpm -qf /etc/httpd/conf/httpd.conf
- //查询未安装的软件包会产生哪些文件
- [root@localhost ~]# rpm -qlp /mnt/AppStream/Packages/http-parser-2.8.0-5.el8.x86_64.rpm
- 或
- [root@localhost ~]# rpm -qip /mnt/AppStream/Packages/http-parser-2.8.0-5.el8.x86_64.rpm
5、rpm包升级
- rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE //如果装有老版本的,则升级;否则,则安装(相当于有则升级,没有就安装)
- rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE //如果装有老版本的,则升级;否则,退出(相当于只对老版本安装包升级作用)
- --oldpackage:降级
- 示例:
- [root@localhost ~]# rpm -Uvh /mnt/AppStream/Packages/http-parser-2.8.0-5.el8.x86_64.rpm
- //升级httpd软件包
6、rpm包卸载
- //语法:rpm -e packagesname
- 示例:
- [root@localhost ~]# rpm -qa httpd
- [root@localhost ~]# rpm -e httpd
Linux_rpm包管理的更多相关文章
- ASP.NET Core 静态文件及JS包管理器(npm, Bower)的使用
在 ASP.NET Core 中添加静态文件 虽然ASP.NET主要大都做着后端的事情,但前端的一些静态文件也是很重要的.在ASP.NET Core中要启用静态文件,需要Microsoft.AspNe ...
- Linux程序包管理之yum及源代码安装
第十六章.Linux程序包管理之yum及源代码安装 目录 yum介绍 yum配置文件 yum的repo配置文件中可用的变量 yum命令的使用 使用光盘作为本地yum仓库 如何创建yum仓库 编译安装的 ...
- Node.js包管理器Yarn的入门介绍与安装
FAST, RELIABLE, AND SECURE DEPENDENCY MANAGEMENT. 就在昨天, Facebook 发布了新的 node.js 包管理器 Yarn 用以替代 npm .咱 ...
- Python黑帽编程1.3 Python运行时与包管理工具
Python黑帽编程1.3 Python运行时与包管理工具 0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and ...
- 你需要知道的包管理器(Package Manager)
最近我花了一点时间关注了在不同系统之中所用到的包管理器(Package Manager) .最开始的时候,我是在使用Linux操作系统时,对这种工具以及它背后的想法深深迷恋住了:这真是自由的软件世界. ...
- 包管理工具Carthage使用
iOS项目中第三方开源库的工具有Cocoapods和Carthage,swift官方出了一个包管理工具SPM(Swift Package Manager). 首先,大体讲一下Cocoapods和Car ...
- RPM包管理命令rpm
RPM包管理器是Linux系统中最早的软件包管理软件之一,也是目前最流行的软件包管理器,许多发行版都使用RPM作为默认的软件包管理软件. RPM软件包名称格式: samba-client-3.0.33 ...
- Node包管理工具
Node包管理工具 只是简单的介绍一些工具的使用,有利于开发过程.除了介绍Node包管理工具,还介绍了前端打包工具,前端模块管理工具 Node包管理工具: --npm --cnpm ...
- godep 包管理工具
godep是解决包依赖的管理工具 安装 go get github.com/tools/godep 成功安装后,在GOPATH的bin目录下会有一个godep可执行的二进制文件,后面执行的命令都是用这 ...
随机推荐
- Dynamics CRM报表无法访问提示“报表服务器无法访问或使用加密密钥。你可能需要将服务器添加到扩展组,或重新导入”
当我们部署Dynamics CRM的环境的时候如果报表配置的不规范会出现很多问题,尤其是这个问题相对来说更棘手,解决起来非常麻烦. 网上很多教程都说直接到报表配置页删除密钥就可以了,实际上删除的时候会 ...
- Spring (三)SpringAoP
1.Spring 的 AOP 简介 1.1 什么是 AOP AOP 为 Aspect Oriented Programming 的缩写,意思为面向切面编程,是通过预编译方式和运行期动态代理实现程序功能 ...
- 6.3string用法
string类型可以大大方便对字符串的处理 1.string的定义 string str; string str="abcd"; 2.string中内容的访问 (1)可以像字符数组 ...
- antd+react项目迁移vite的解决方案
antd+react+webpack往往是以react技术栈为主的前端项目的标准组合,三者都有成熟的生态和稳定的表现,但随着前端圈的技术不断革新,号称下一代构建平台vite2的发布,webpack似乎 ...
- Sentinel上生产环境只差一步,监控数据持久化
之前介绍了Sentinel相关的文章,小伙伴在生产实践中不知道有没有这个疑问?我们的Sentinel控制台监控的数据只能看最近5分钟的,如图 那么就导致历史数据是查看不了的,那肯定是不行的,在生产环境 ...
- ret2dl64
ret2dl64 ret2dl64 与ret2dl32不同,ret2dl64需要知道libc. 检查保护: IDA看一看 read_got 被置为0,强制你使用ret2dlresolve. 我们先伪造 ...
- 13.Quick QML-RowLayout、ColumnLayout、GridLayout布局管理器介绍、并通过GridLayout设计的简易网站导航界面
上章我们学习了:12.Quick QML-QML 布局(Row.Column.Grid.Flow和嵌套布局) .Repeater对象,本章我们继续来学习布局管理器 1.RowLayout.Column ...
- 如何查看显著性SNP在数据中的频率?
我们做完GWAS的关联分析后需要查看显著性SNP在我们数据中的频率分布情况.这时候我们需要用到plink和我们做关系分析所用的二进制文件datas. 第一步,我们用R语言读取分析结果,即*.assoc ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(九)——一步一步教你如何撸Dapr之OAuth2授权
Oauth2授权,熟悉微信开发的同学对这个东西应该不陌生吧.当我们的应用系统需要集成第三方授权时一般都会做oauth集成,今天就来看看在Dapr的语境下我们如何仅通过配置无需修改应用程序的方式让第三方 ...
- 【转】【linux系统】nacos + confd配置nginx
为什么要支持confd,老的应用配置管理模式是启动时读取配置文件,然后重新读取配置文件需要应用重启.一般的配置管理系统都是代码侵入性的,应用接入配置管理系统都需要使用对应的SDK来查询和监听数据的变更 ...