一、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包管理的更多相关文章

  1. ASP.NET Core 静态文件及JS包管理器(npm, Bower)的使用

    在 ASP.NET Core 中添加静态文件 虽然ASP.NET主要大都做着后端的事情,但前端的一些静态文件也是很重要的.在ASP.NET Core中要启用静态文件,需要Microsoft.AspNe ...

  2. Linux程序包管理之yum及源代码安装

    第十六章.Linux程序包管理之yum及源代码安装 目录 yum介绍 yum配置文件 yum的repo配置文件中可用的变量 yum命令的使用 使用光盘作为本地yum仓库 如何创建yum仓库 编译安装的 ...

  3. Node.js包管理器Yarn的入门介绍与安装

    FAST, RELIABLE, AND SECURE DEPENDENCY MANAGEMENT. 就在昨天, Facebook 发布了新的 node.js 包管理器 Yarn 用以替代 npm .咱 ...

  4. Python黑帽编程1.3 Python运行时与包管理工具

    Python黑帽编程1.3  Python运行时与包管理工具 0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and ...

  5. 你需要知道的包管理器(Package Manager)

    最近我花了一点时间关注了在不同系统之中所用到的包管理器(Package Manager) .最开始的时候,我是在使用Linux操作系统时,对这种工具以及它背后的想法深深迷恋住了:这真是自由的软件世界. ...

  6. 包管理工具Carthage使用

    iOS项目中第三方开源库的工具有Cocoapods和Carthage,swift官方出了一个包管理工具SPM(Swift Package Manager). 首先,大体讲一下Cocoapods和Car ...

  7. RPM包管理命令rpm

    RPM包管理器是Linux系统中最早的软件包管理软件之一,也是目前最流行的软件包管理器,许多发行版都使用RPM作为默认的软件包管理软件. RPM软件包名称格式: samba-client-3.0.33 ...

  8. Node包管理工具

    Node包管理工具 只是简单的介绍一些工具的使用,有利于开发过程.除了介绍Node包管理工具,还介绍了前端打包工具,前端模块管理工具 Node包管理工具:    --npm    --cnpm    ...

  9. godep 包管理工具

    godep是解决包依赖的管理工具 安装 go get github.com/tools/godep 成功安装后,在GOPATH的bin目录下会有一个godep可执行的二进制文件,后面执行的命令都是用这 ...

随机推荐

  1. BUAA_OO_2020_第四单元与课程总结

    BUAA_OO_2020_第四单元与课程总结 第四单元架构 第一次 架构设计 第一次作业要求实现UML类图解析器. 我才用自顶向下依次解析的方法,首先将类图中涉及的所有元素分成三层: 第一层 第二层 ...

  2. 个人阅读作业#2——软工模式&CI/CD

    项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任健) 这个作业的要求在哪里 个人阅读作业#2 我在这个课程的目标是 从实践中学习软件工程相关知识(结构化分析和设计方法.敏捷开发方法.软 ...

  3. PAT B1039/A1092 到底买不买项链

    小红买些珠子做项链,但是卖家不肯拆散了卖,于是帮忙判断一下,某串珠子是否全部包含自己想要的珠子,如果是告诉她有多少多余的珠子,如果不是,又缺了那些珠子现在为了方便起见用"0-9"& ...

  4. Spring Cloud Gateway 全局通用异常处理

    为什么需要全局异常处理 在传统 Spring Boot 应用中, 我们 @ControllerAdvice 来处理全局的异常,进行统一包装返回 // 摘至 spring cloud alibaba c ...

  5. SpringCloud(三)Hystrix断路器

    Hystrix断路器 概述 分布式系统面临的问题 复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败 服务雪崩 多个微服务之间调用的时候,假设微服务A调用微服务B和 ...

  6. ASP程序写的项目与微信服务号(公众号)完美结合。仅需一个DLL组建WeixinDLL

    因ASP程序开发有很多优点,早年间ASP风靡全球,因此如今还在继续运营的ASP开发的项目仍在运行着,但是随着社交网络不断发达,特别是微信支付.微信通讯.小程序等的出现,导致很多ASP项目对接起来就比较 ...

  7. php 一些神奇加有趣的函数

    php里面神奇且又有趣的函数 这么有意思的title,我忍不住要啰嗦俩句,1--只是个人喜欢,不喜勿喷:2--仅个人笔记,未完,待续 列举 get_defined_constants:get_defi ...

  8. 【JDK8】Java8 Stream流API常用操作

    Java版本现在已经发布到JDK13了,目前公司还是用的JDK8,还是有必要了解一些JDK8的新特性的,例如优雅判空的Optional类,操作集合的Stream流,函数式编程等等;这里就按操作例举一些 ...

  9. hdu4862 费用流(不错)

    题意:       给你一个矩阵,你最多可以选择k条路线,k条路线的起点随意,每次行走的距离随意,但是只能往右或者下走,走过的点不能再走,而且每一步如果a->b,如果a和b的权值s相等那么就可以 ...

  10. DVWA之SQL Injection

    SQL Injection SQL Injection,即SQL注入,是指攻击者通过注入恶意的SQL命令,破坏SQL查询语句的结构,从而达到执行恶意SQL语句的目的.SQL注入漏洞的危害是巨大的,常常 ...