一、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️⃣:常用选项:

  1. //常用选项
  2. -i: 安装
  3. -v: 显示详细信息
  4. -h: 显示安装进度条
  5. -e :删除指定rpm
  6. -R :显示软件包的关键信息
  7. -s :显示文件状态
  8.  
  9. --test: 测试安装,但不真正执行安装过程
  10. --nodeps: 忽略依赖关系
  11. --replacepkgs: 重新安装,替换原有安装
  12. --oldpackage: 降级
  13. --force: 强行安装,可以实现重装或降级
  14. --nodigest: 不检查包的完整性
  15. --nosignature: 不检查包的来源合法性
  16. --noscripts: 不执行程序包脚本片断
  17. %pre:安装前脚本 --nopre
  18. %post:安装后脚本 --nopost
  19. %preun:卸载前脚本 --nopreun
  20. %postun:卸载后脚本 --nopostun  

3️⃣:安装示例:

  1. //安装软件包, 需要指定软件包绝对路径 (当前系统版本是RHEL8)
  2. [root@localhost mnt]# rpm -ivh /mnt/AppStream/Packages/http-parser-2.8.0-5.el8.x86_64.rpm
  3. [root@localhost mnt]# rpm -ivh /mnt/AppStream/Packages/vsftpd-3.0.3-28.el8.x86_64.rpm
  4.  
  5. //测试一个软件包是否能在该系统上安装
  6. [root@localhost ~]# rpm -ivh --test /mnt/AppStream/Packages/http-parser-2.8.0-5.el8.x86_64.rpm
  7.  
  8. //如果软件包存在, 强制再次安装
  9. [root@localhost ~]# rpm -ivh --force /mnt/AppStream/Packages/http-parser-2.8.0-5.el8.x86_64.rpm
  10.  
  11. //安装Apache服务需要依赖其他组件, 使用--nodeps可重新强制安装
  12. [root@localhost ~]# rpm -ivh --nodeps /mnt/AppStream/Packages/http-parser-2.8.0-5.el8.x86_64.rpm

4、rpm包查询  

  1. rpm包查询:
  2. 语法:rpm 选项 (--指定的命令) packagesname
  3. -q :查询指定的包是否已安装
  4. -qa :查询已经安装的所有包
  5. -ql :查询指定软件包安装后生成的文件列表
  6. -qi :查询指定包的说明信息
  7. -qR :查询指定的软件包所依赖的CAPABILITY
  8.  
  9. -qf :查询指定的文件是由哪个rpm包安装生成的
  10. -qc :查询指定包安装的配置文件
  11. -qd :查询指定包安装的帮助文件
  12.  
  13. -q --scripts :查询指定包中包含的脚本
  14. -q --whatprovides :查询指定的CAPABILITY(能力)由哪个包所提供
  15. 例如:rpm -q --whatprovides /bin/cat
  16.  
  17. -q --whatrequires :查询指定的CAPABILITY被哪个包所依赖
  18. -q --changelog :查询COMMAND的制作日志
  19. -q --scripts :查询指定软件包包含的所有脚本文件
  20. -q --provides :列出指定软件包所提供的CAPABILITY
  21.  
  22. -qpi /PATH/TO/PACKAGE_FILE :查询指定未安装包的说明信息
  23. -qpl /PATH/TO/PACKAGE_FILE :查询未安装的软件包会产生哪些文件

实例:

  1. //查询httpd这个rpm包是否安装
  2. [root@localhost ~]# rpm -q httpd
  3.  
  4. //查找系统已安装的rpm包
  5. [root@localhost ~]# rpm -ql|grep httpd
  6.  
  7. //查询rpm包所安装的文件
  8. [root@localhost ~]# rpm -qa httpd
  9.  
  10. //查询配置文件或命令来自于哪个rpm包
  11. [root@localhost ~]# rpm -qf /usr/sbin/httpd
  12. [root@localhost ~]# rpm -qf /etc/httpd/conf/httpd.conf
  13.  
  14. //查询未安装的软件包会产生哪些文件
  15. [root@localhost ~]# rpm -qlp /mnt/AppStream/Packages/http-parser-2.8.0-5.el8.x86_64.rpm

  16. [root@localhost ~]# rpm -qip /mnt/AppStream/Packages/http-parser-2.8.0-5.el8.x86_64.rpm

5、rpm包升级

  1. rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE //如果装有老版本的,则升级;否则,则安装(相当于有则升级,没有就安装)
  2. rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE //如果装有老版本的,则升级;否则,退出(相当于只对老版本安装包升级作用)
  3. --oldpackage:降级
  4.  
  5. 示例:
  6. [root@localhost ~]# rpm -Uvh /mnt/AppStream/Packages/http-parser-2.8.0-5.el8.x86_64.rpm
  7. //升级httpd软件包

6、rpm包卸载  

  1. //语法:rpm -e packagesname
  2.  
  3. 示例:
  4. [root@localhost ~]# rpm -qa httpd
  5. [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. OGG-Oracle 集成模式抽取进程,REGISTER DATABASE都做了什么?

    一.学习目标 有同事问OGG技术问题,OGG软件,在oracle数据库中,集成模式抽取进程REGISTER DATABASE,都做了什么操作? 有什么风险? 并且提到了一个抽取进程注册,在瞬时间并发占 ...

  2. JavaWeb 基础知识补充

    软件架构 1. C/S: Client/Server 客户端/服务器端         * 在用户本地有一个客户端程序,在远程有一个服务器端程序         * 如:QQ,迅雷...        ...

  3. 为什么要进行系统拆分?如何进行系统拆分?拆分后不用dubbo可以吗?

    分布式系统,我用一句话给你解释一下,实在没时间多唠了,就是原来20万行代码的系统,现在拆分成20个小系统,每个小系统1万行代码.原本代码之间直接就是基于spring调用,现在拆分开来了,20个小系统部 ...

  4. Day05_26_Overide_方法重写

    Overide_方法重写 * 什么是方法重写(Overide)? - 方法重写也叫方法覆盖 ,重写是指子类对父类所允许访问的方法的实现过程进行重新编写, 返回值类型和形参都不能改变.即外壳不变,核心重 ...

  5. 记weblogic上传shell路径

    0x01 前言 自从上次在渗透过程中发现了波weblogic CVE-2020-2551漏洞后面又对其进行了复现,后边看到exp里有个上传webshell的功能,但是由于不清楚weblogic这个路径 ...

  6. odoo字段属性列举

    罗列一些Odoo中的字段属性,基本包含大部分的属性. 常用字段属性 平平无奇常用字段属性 string:字段的标题,在UI视图标签中使用.它是可选项,如未设置,会通过首字母大写及将空格替换成为下划线来 ...

  7. JavaScript数组详解-全网最全

    定义数组的方式 定义数组的方式有多种,分别如下 let array=[] (字面量) let array=new Array() let array=new Array([length]) lengt ...

  8. linux下export命令添加删除环境变量

    Linux export命令参数   功能说明:设置或显示环境变量. 语 法:export [-fnp][变量名称]=[变量设置值] 补充说明:在shell中执行程序时,shell会提供一组环境变量. ...

  9. hdu4277 DFS+SET

    题意:       给你一些木棍,问你可以组成多少个三角形.. 思路:      直接深搜,N很小深搜无压力,也可以直接算出来,但我不会算..  #include<stdio.h> #in ...

  10. [转]gitlab ci/cd 发布

    转自 https://meigit.readthedocs.io/en/latest/configure_gitlab_i18n_and_create_gitlab_ci_with_gitlab_ru ...