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可执行的二进制文件,后面执行的命令都是用这 ...
随机推荐
- BUAA_OO_2020_第四单元与课程总结
BUAA_OO_2020_第四单元与课程总结 第四单元架构 第一次 架构设计 第一次作业要求实现UML类图解析器. 我才用自顶向下依次解析的方法,首先将类图中涉及的所有元素分成三层: 第一层 第二层 ...
- 个人阅读作业#2——软工模式&CI/CD
项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任健) 这个作业的要求在哪里 个人阅读作业#2 我在这个课程的目标是 从实践中学习软件工程相关知识(结构化分析和设计方法.敏捷开发方法.软 ...
- PAT B1039/A1092 到底买不买项链
小红买些珠子做项链,但是卖家不肯拆散了卖,于是帮忙判断一下,某串珠子是否全部包含自己想要的珠子,如果是告诉她有多少多余的珠子,如果不是,又缺了那些珠子现在为了方便起见用"0-9"& ...
- Spring Cloud Gateway 全局通用异常处理
为什么需要全局异常处理 在传统 Spring Boot 应用中, 我们 @ControllerAdvice 来处理全局的异常,进行统一包装返回 // 摘至 spring cloud alibaba c ...
- SpringCloud(三)Hystrix断路器
Hystrix断路器 概述 分布式系统面临的问题 复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败 服务雪崩 多个微服务之间调用的时候,假设微服务A调用微服务B和 ...
- ASP程序写的项目与微信服务号(公众号)完美结合。仅需一个DLL组建WeixinDLL
因ASP程序开发有很多优点,早年间ASP风靡全球,因此如今还在继续运营的ASP开发的项目仍在运行着,但是随着社交网络不断发达,特别是微信支付.微信通讯.小程序等的出现,导致很多ASP项目对接起来就比较 ...
- php 一些神奇加有趣的函数
php里面神奇且又有趣的函数 这么有意思的title,我忍不住要啰嗦俩句,1--只是个人喜欢,不喜勿喷:2--仅个人笔记,未完,待续 列举 get_defined_constants:get_defi ...
- 【JDK8】Java8 Stream流API常用操作
Java版本现在已经发布到JDK13了,目前公司还是用的JDK8,还是有必要了解一些JDK8的新特性的,例如优雅判空的Optional类,操作集合的Stream流,函数式编程等等;这里就按操作例举一些 ...
- hdu4862 费用流(不错)
题意: 给你一个矩阵,你最多可以选择k条路线,k条路线的起点随意,每次行走的距离随意,但是只能往右或者下走,走过的点不能再走,而且每一步如果a->b,如果a和b的权值s相等那么就可以 ...
- DVWA之SQL Injection
SQL Injection SQL Injection,即SQL注入,是指攻击者通过注入恶意的SQL命令,破坏SQL查询语句的结构,从而达到执行恶意SQL语句的目的.SQL注入漏洞的危害是巨大的,常常 ...