一、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. 用递归求n皇后问题

    此问题是指在n*n的国际象棋棋盘上 ,放置n个皇后,使得这n个皇后均不在,同一行,同一列,同一对角线上,求出合法的方案的数目. 本题可以简单转化为就是求n的全排列中的数放在棋盘上使得这几组数,符合均不 ...

  2. Java后端进阶-网络编程(Netty零拷贝机制)

    package com.study.hc.net.netty.demo; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled ...

  3. Vue3.0中引入地图(谷歌+高德+腾讯+百度)

    1 概述 项目需求需要引入地图,对于目前最新的Vue3.0,无论是百度/高德/腾讯地图目前还没有适配,只有Vue 2.x版本的: 目前只有谷歌地图的Vue3.0适配: 但是没有适配并不代表不能使用,本 ...

  4. Ambassador-09-prefix正则表达式

    设置 prefix_regex: true,即prefix就可以设置成正则表达式 --- apiVersion: getambassador.io/v2 kind: Mapping metadata: ...

  5. Linux执行.sh文件,提示No such file or directory的问题

    问题描述 在window平台下,写好shell脚本文件,迁移到linux平台,赋过可执行权限,执行该sh文件,却提示NO such file or directory 解决方案 难道是文件格式兼容性问 ...

  6. Day17_99_IO_FileReader文件字符输入流

    FileReader文件字符输入流 * 继承结构 Java.lang.Object - java.io.Reader; 抽象类 java.io.InputStreamReader; <转换流: ...

  7. 关于Mapreduce Text类型赋值的错误

    Mapreduce中Text类型数据被无缘无故替换? ​ 今天偶然看到一个mapreduce demo,直接上手操作 统计两个文件中 最大值 文件中数据格式为 名字 数值 输出为 名字(最大值所对应的 ...

  8. 各种平衡树收集(收集控(‐^▽^‐))\平衡树模板题的各种花式做法QAQ

    非旋转treap!!!(FHQ Treap) 递归版Splay(无需维护父指针) Scapegoat _ Tree--替罪羊树(一只(棵)特立独行的猪(树)) 宗法树(平衡线段树\finger_tre ...

  9. ES系列(三):网络通信模块解析

    ES是一个分布式搜索引擎,其除了用户提供必要的通信服务外,集群间也必须保持紧密的通信联系,才能在必要的时候给出正确的结果.其则必然涉及到各种繁多且要求高的通信场景,那么如何实现高性能的通信,则是其必须 ...

  10. C/C++ 手工实现IAT导入表注入劫持

    DLL注入有多种方式,今天介绍的这一种注入方式是通过修改导入表,增加一项导入DLL以及导入函数,我们知道当程序在被运行起来之前,其导入表中的导入DLL与导入函数会被递归读取加载到目标空间中,我们向导入 ...