一、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. C++中的广义集合于for范围访问

    在C++11中可以通过for在范围循环中访问广义集合 如: std::vetcor v={1,2,3}; int a[4] {1,2,3,4}; std::array<int,4>a2 { ...

  2. 201871030112-贾傲羊 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    项目 内容 课程班级博客链接 课程班级博客链接 这个作业要求链接 作业要求链接 我的课程学习目标 学习PSP流程并运用于结对项目:学习GitHub代码的管理;学习结对编程的流程与内容 这个作业在哪些方 ...

  3. 【笔记】《Redis设计与实现》chapter8 对象

    8.1 对象的类型与编码 Redis中的每个对象都由一个redisObject结构表示,该结构中和保存数据有关的三个属性分别是type属性.encoding属性和ptr属性 typedef struc ...

  4. 字符串函数的实现(三)之strcat

    C语言中的字符串函数有如下这些 获取字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数 strncpy strncat strncmp ...

  5. SpringBoot - yml写法

    1 #区分大小写 2 server: 3 port: 8081 4 path: hello 5 6 #字面量:普通的值(数字,字符串,布尔): 7 #字符串:双引号 - 不转义 单引号 - 转义 8 ...

  6. composer 使用提示

    1.使用国内镜像[推荐] composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 或者 comp ...

  7. SpringCloud之服务网关Gateway,入门+实操

    SpringCloudAlibaba微服务实战教程系列 Spring Cloud 微服务架构学习记录与示例 一. GateWay简介 Spring Cloud GateWay是Spring Cloud ...

  8. SpringCloud之配置中心(config)的使用Git+数据库实现

    SpringCloud微服务实战系列教程 -------------------------目录------------------------------ 一.配置中心应用(Git) 二.配置中心的 ...

  9. hdu4768 非常规的二分

    题意:       n个社团给同学发传单,同学一共有1--2^31这么多,每个社团有三个数A ,B ,C ,只有 满足 A ,A + C ,A + C + C ...A + KC <= B 的学 ...

  10. POJ3322滚箱子游戏(不错)

    题意:       讲的是一个游戏,就是在一个平面上滚动一个1*1*2的长方体的游戏,在本题里面的游戏规则是这样的: (1)      一开始给你箱子的状态,可能是横着也可能是竖着. (2)     ...