[转帖]Linux系统下rpm命令使用详解

linux,系统,rpm,命令,使用,详解 · 浏览次数 : 0

小编点评

**rpm命令** `rpm` 是 RPM 软件包管理工具,用于管理 Linux 中各种套件。 **主要功能:** * 查询已安装软件包的信息 * 安装和升级软件包 * 擦除软件包 * 验证软件包选项 * 显示文件状态 * 列出软件包文件 * 查询软件包依赖关系 * 管理软件包安装和配置 **常用命令:** * `rpm -q`:查询已安装软件包信息 * `rpm -qa`:分页查看已安装软件包信息 * `rpm -qR`:列出软件包的依赖关系 * `rpm -qpR`:列出软件包的依赖关系及其依赖项 * `rpm -ivh`:安装和升级一个软件包 * `rpm -Uvh`:升级一个软件包 * `rpm -e`:删除一个软件包 * `rpm --import`:导入签名文件 **示例:** ``` # 查询已安装软件包的信息 rpm -q # 列出软件包文件 rpm -ql # 查询软件包依赖关系 rpm -qR # 安装和升级软件包 rpm -ivh mypackage.rpm # 擦除软件包 rpm -e mypackage.rpm # 验证软件包选项 rpm -qa # 显示文件状态 rpm -qc mypackage.rpm # 列出软件包的依赖关系 rpm -qpR mypackage.rpm # 安装多个软件包 rpm -ivh package1.rpm package2.rpm package3.rpm # 安装和升级多个软件包 rpm -Uvh package1.rpm package2.rpm package3.rpm # 删除软件包 rpm -e package.rpm # 导入签名文件 rpm --import signature.key # 列出软件包的依赖关系 rpm -qpR package.rpm ``` **其他选项:** * `--allfiles`:安装所有文件,包括配置文件 * `--erase`:删除软件包,并删除其安装文件 * `--force`:强制安装软件包,即使文件已存在 * `--replacefiles`:重新安装软件包时,保留现有文件 * `--replacepkgs`:重新安装软件包时,覆盖已安装的软件包 * `--preservefiles`:保留现有文件,覆盖同名文件 * `--force-replacepkgs`:重新安装软件包,即使文件已存在,覆盖已安装的软件包 * `--check`:检查软件包是否已安装

正文

简介

rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。
rpm命令十分强大,具体使用有如下:

  1. 查询已安装在linux系统中的rpm软件包的信息
  2. 查询rpm软件包安装文件的信息
  3. 安装rpm软件包到当前linux系统
  4. 从linux系统中卸载已安装的rpm软件包
  5. 升级当前linux系统的rpm软件包

查询/验证软件包选项:

参数说明
-a, --all查询/验证所有软件包
-f, --file查询/验证文件属于的软件包
-g, --group查询/验证组中的软件包
-p, --package查询/验证一个软件包
–whatrequires查询/验证软件包需要的依赖

查询选项:

参数说明
-c, --configfiles列出所有配置文件
-d, --docfiles列出所有程序文档
-L, --licensefiles列出所有许可证文件
–dump转储基本文件信息
-l, --list列出软件包中的文件
–queryformat=QUERYFORMAT使用这种格式打印信息
-s, --state显示列出文件的状态

验证选项:

参数说明
–nofiledigest不验证文件摘要
–nofiles不验证软件包中文件
–nodeps不验证包依赖
–noscript不执行验证脚本

安装/升级/擦除选项:

参数说明
–allfiles安装全部文件,包含配置文件,否则配置文件会被跳过
-e, --erase=+清除 (卸载) 软件包
–excludedocs不安装程序文档
–excludepath= 略过以 开头的文件
–force–replacepkgs --replacefiles 的缩写
-F, --freshen=+如果软件包已经安装,升级软件包
-i, --install安装软件包
–justdb更新数据库,但不修改文件系统
–nodeps不验证软件包依赖
–nofiledigest不验证文件摘要
–nocontexts不安装文件的安全上下文
–noorder不对软件包安装重新排序以满足依赖关系
–noscripts不执行软件包脚本
–notriggers不执行本软件包触发的任何脚本
–oldpackage更新到软件包的旧版本(带 --force自动完成这一功能)
–percent安装软件包时打印百分比
–prefix= 如果可重定位,便把软件包重定位到
–relocate==将文件从 重定位到
–replacefiles忽略软件包之间的冲突的文件
–replacepkgs如果软件包已经有了,重新安装软件包
–test不真正安装,只是判断下是否能安装
-U, --upgrade=+升级软件包
–reinstall=+重新安装软件包
–quiet提供更少的详细信息输出
-v, --verbose提供更多的详细信息输出
–version打印使用的 rpm 版本号
–scripts列出安装/删除包中的脚本内容
–conflicts列出与此包冲突的功能
–provides列出此包提供的功能
–requires列出程序包所需的功能
–changelog列出此包的更改日志

包管理的查询功能: 命令格式

[root@localhost /]# rpm {-q|--query} [select-options] [query-options]
  • 1
RPM的查询功能是极为强大,是极为重要的功能之一;举几个常用的例子,更为详细的具体的,请参考#man rpm 
#查询系统所有已安装的软件;
[root@localhost /]# rpm -qa
#如果分页查看,再加一个管道 |和more命令;
[root@localhost /]# rpm -qa |more
#查询系统是否安装Xorg包 
[root@localhost /]# rpm -qa |grep Xorg
#查询一个已经安装的文件属于哪个软件包;
语法 rpm -qf 文件名
[root@localhost /]# rpm -qf /usr/bin/alsa-info
alsa-utils-1.0.28-2.nd7.1.x86_64
注:文件名所在的绝对路径要指出 
#查询已安装软件包都安装到何处;
语法:rpm -ql 软件名 或 rpm rpmquery -ql 软件名
[root@localhost /]# rpm -ql Xorg
#查询一个已安装软件包的信息
语法格式: rpm -qi 软件名
[root@localhost /]# rpm -qi Xorg
#查看一下已安装软件的配置文件;
语法格式:rpm -qc 软件名
[root@localhost RPMS]# rpm -qc Xorg
#查看一个已经安装软件的文档安装位置:
语法格式: rpm -qd 软件名
[root@localhost /]# rpm -qd Xorg
#查看一下已安装软件所依赖的软件包及文件; 
语法格式: rpm -qR 软件名
[root@localhost /]# rpm -qR rpm-python
[root@localhost /]# rpm -qpl alsa-utils-1.0.28-2.nd7.1.x86_64.rpm
#查看软件包的文档所在的位置;
语法: rpm -qpd xxx.rpm
[root@localhost RPMS]# rpm -qpd alsa-utils-1.0.28-2.nd7.1.x86_64.rpm
#查看一个软件包的配置文件;
语法: rpm -qpc xxx.rpm
[root@localhost RPMS]# rpm -qpc alsa-utils-1.0.28-2.nd7.1.x86_64.rpm
#查看一个软件包的依赖关系
语法: rpm -qpR alsa-utils-1.0.28-2.nd7.1.x86_64.rpm
[root@localhost archives]# rpm -qpR alsa-utils-1.0.28-2.nd7.1.x86_64.rpm
#软件包的安装、升级、删除等;
#安装和升级一个rpm 包;
[root@localhost /]#rpm -ivh xxx.rpm 注:这个是用来安装一个新的rpm 包; [root@localhost /]#rpm -Uvh xxx.rpm 注:这是用来升级一个rpm 包;
#如果有依赖关系的,请解决依赖关系,其实软件包管理器能很好的解决依赖关系,请看前面的软件包管理器的介绍;如果您在软件包管理器中也找不到依赖关系的包;那只能通过编译他所依赖的包来解决依赖关系,或者强制安装;
语法结构:
[root@localhost /]# rpm -ivh xxx.rpm --nodeps --force 
#删除一个rpm 包;
[root@localhost RPMS]# rpm -e alsa-utils
#导入签名: [root@localhost RPMS]# rpm --import 签名文件
[root@localhost fc40]# rpm --import RPM-GPG-KEY-x86_64
关于RPM的签名功能,详情请参见 man rpm 
    文章知识点与官方知识档案匹配,可进一步学习相关知识
    CS入门技能树Linux进阶新增用户30494 人正在系统学习中

    与[转帖]Linux系统下rpm命令使用详解相似的内容:

    [转帖]Linux系统下rpm命令使用详解

    简介 rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。 rpm命令十分

    [转帖]如何在 CentOS 中添加、启用和禁用一个仓库

    https://linux.cn/article-10219-1.htmlyum repolistyum-config-manager --enable --disable 在基于 RPM 的系统上,例如 RHEL、CentOS 等,我们中的许多人使用 yum 包管理器来管理软件的安装、删除、更新、

    [转帖]40张图入门Linux——(前端够用,运维入门)

    本文主要是Linux的入门内容,利用40张思维导图从基础、操作、实用指令、组管理和权限管理、crond任务调度、Linux磁盘分区和挂载、Linux网络环境配置、进程管理、服务管理、RPM和YUM、软件安装关键点、Shell编程共十二部分着手,从而系统的了解一下Linux(基于Centos),本文的

    [转帖]Linux系统下cpio命令详解

    简介 cpio主要是解压或者将文件压缩到指定文件中即copy-in和copy-out模式。 参数说明 参数参数说明-icopy-in模式,解压文件-ocopy-out模式,即压缩文件-d自动生成目录-v打印处理的文件-m保留文件修改的时间 具体操作 [root@localhost casper]#

    [转帖]linux系统下grub.cfg详解和实例操作

    linux系统下grub.cfg详解和实例操作 简介 grub是引导操作系统的程序,它会根据自己的配置文件,去引导内核,当内核被加载到内存以后,内核会根据grub配置文件中的配置,找到根分区所使用的文件系统对应的驱动,通过根分区文件系统对应的驱动,挂载根分区,从而达到启动操作系统的目的。 特殊变量

    [转帖]linux命令行下如何格式化json并进行各种json处理操作

    https://blog.csdn.net/penriver/article/details/122016563 有时需要在linux 的命令行下,需要查看json的内容或针对json进行各种操作,本文针对此进行梳理、总结。 在Linux系统下基于python json.tool可以格式化json,

    [转帖]Linux查看硬件信息超强命令sar,以及可视化工具ksar

    https://juejin.cn/post/6947470401135968286 一、概述 sar(System Activity Reporter,系统活动情况报告)是Linux下系统运行状态统计工具,可从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU

    [转帖]Linux系统多网卡环境下的路由配置

    https://www.cnblogs.com/connect/p/linux-static-route.html Linux下路由配置命令 1. 添加主机路由 route add -host 192.168.1.11 dev eth0 route add -host 192.168.1.12 gw

    [转帖]Linux系统:page fault

    Linux进程如何访问内存 Linux下,进程并不是直接访问物理内存,而是通过内存管理单元(MMU)来访问内存资源,原因后面会讲到。 为什么需要虚拟内存地址空间 假设某个进程需要4MB的空间,内存假设是1MB的,如果进程直接使用物理地址,这个进程会因为内存不足跑不起来。既然进程不是直接访问物理内存,

    [转帖]Linux系统中的Page cache和Buffer cache

    Free命令显示内存 首先,我们来了解下内存的使用情况: Mem:表示物理内存统计 total:表示物理内存总量(total = used + free) used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。 free:未被分配的内存。 sh