• rpm包管理器常见用法


    rpm包安装过程

    # 安装前脚本--检查依赖是否满足
    rpm pre script
    # 安装过程中脚本
    rpm install script
    # 安装结束后脚本
    rpm post script
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    rpm命令常用参数

    https://www.linuxcool.com/rpm
    https://wangchujiang.com/linux-command/c/rpm.html

    • -i 安装软件包
    • -U 升级软件包
    • -F 软件包存在则升级,不存在则不安装
    • -v 显示过程详情
    • -h 安装软件包时列出标记
    • -e 卸载软件包
    • -q 查询软件包
      • -l 显示软件包的文件列表
    • -f 查询文件或命令属于哪个软件包
    • -a 查询所有的软件包
    • -p 查询指定的rpm软件包
    • --nodeps 不验证软件包依赖
    • --changelog 列出这个包的更改日志


    查看rpm包的信息


    查看rpm包的修复记录

    # 检入Changelog软件包,以查看哪些修复程序已向后移植
    ## -q 查询软件包
    ## -v 显示详情
    ## --changelog 列出这个包的更改日志
    rpm -qv --changelog openssh-server | less
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述


    查看软件包的文档所在的位置

    (若没有,则标准输出就为空)

    # 查看软件包的文档所在的位置
    rpm -qpd rpm包
    
    • 1
    • 2

    查看软件包的配置文件

    (若没有,则标准输出就为空)

    # 查看软件包的配置文件
    #rpm -qpc rpm包
    
    • 1
    • 2

    查看软件包的依赖关系

    (若没有,则标准输出就为空)

    # 查看软件包的依赖关系
    rpm -qpR rpm包
    
    • 1
    • 2

    安装包rpm -ivh

    ## -i 安装软件包
    ## -v 显示过程详情
    ## -h 安装软件包时列出标记
    rpm -ivh *.rpm
    
    # 强制安装
    ## --force 强制安装
    rpm -ivh  --force *.rpm
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    离线安装相互依赖的rpm

    场景: 已经离线下载好了所需要的rpm包,并放在统一目录下,但是安装的时候提示依赖不满足.

    # 忽略依赖安装所有rpm
    ## -i 安装软件包
    ## -v 显示过程详情
    ## -h 安装软件包时列出标记
    ## --nodeps 不验证软件包依赖
    rpm -ivh *.rpm --nodeps
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    更新包rpm -Uvh

    ## -U 升级软件包
    ## -v 显示过程详情
    ## -h 安装软件包时列出标记
    rpm -Uvh *.rpm
    
    # 更新 xxx.rpm, 如不存在则不安装:
    ## -F 软件包存在则升级,不存在则不安装
    rpm -Fuh xxx.rpm
    # 加上--force会忽略依赖强制安装,--nodeps则可以忽略安装信息
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    卸载包rpm -evh

    ## -e 卸载软件包
    ## -v 显示过程详情
    ## -h 安装软件包时列出标记
    rpm -evh 包名
    [rhel8 root ~]# rpm -evh net-tools
    准备中...                          ################################# [100%]
    正在清理/删除...
       1:net-tools-2.0-0.52.20160912git.el################################# [100%]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    卸载软件但不卸载依赖包

    # 只卸载指定的包
    ## -e 卸载软件包
    ## --nodeps 不检查依赖
    rpm -e --nodeps 软件名
    
    • 1
    • 2
    • 3
    • 4

    查询包


    查询文件属于哪个包rpm -qf(最常用)

    # 查询命令(绝对路径)属于哪个包
    ## -q 查询软件包
    ## -f 查询文件或命令属于哪个软件包
    [root@c8 ~]# rpm -qf /bin/dnf
    dnf-4.4.2-11.el8.noarch
    
    # 查询文件属于哪个包
    ## -q 查询软件包
    ## -f 查询文件或命令属于哪个软件包
    [root@c8 ~]# rpm -qf /etc/my.cnf
    mysql-community-server-5.7.35-1.el7.x86_64
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    列出所有已安装的软件包rpm -qa

    # 列出所有已安装的软件包
    ## -q 查询软件包
    ## -a 查询所有的软件包
    rpm -qa
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    # 从已安装的包中查询openssh
    ## -q 查询软件包
    ## -a 查询所有的软件包
    ## -qa 后加包名,等价于从查询结果中过滤包查询结果
    rpm -qa openssh
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述


    查看已安装的rpm包安装目录rpm -ql

    ## -q 查询软件包
    ## -l 显示软件包的文件列表
    rpm -ql 包名
    
    # 示例
    rpm -ql openssh
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述


    查询已安装的rpm包安装目录rpm -qpl

    # 查看已安装的rpm包安装目录
    ## -q 查询软件包
    ## -p 查询指定的rpm软件包
    ## -l 显示软件包的文件列表
    rpm -qpl 包全名
    [rhel8 root /mnt/cdrom/BaseOS/Packages]# rpm -qpl samba-4.13.3-3.el8.x86_64.rpm
    警告:samba-4.13.3-3.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
    /etc/openldap/schema
    /etc/openldap/schema/samba.schema
    /etc/pam.d/samba
    /usr/bin/smbstatus
    /usr/lib/.build-id
    /usr/lib/.build-id/03
    
    # 综合用法,查询软件的安装目录
    ## 例如查询firewalld的安装目录
    ### 查看firewalld程序的包名
    [rhel8 root /usr/lib/firewalld/services]# rpm -qa firewalld
    firewalld-0.8.2-6.el8.noarch
    ### 通过包名查询firewalld的安装目录
    [rhel8 root /usr/lib/firewalld/services]# rpm -ql firewalld
    /etc/firewalld
    /etc/firewalld/firewalld.conf
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    查询包名的详细安装信息rpm -qi

    -qi查询软件包的详细信息(information)

    # 查看openssh的安装信息
    ## -q 查询软件包
    ## -i 与q同用表示--info 显示软件包信息
    ## -qi 显示套件的相关信息
    rpm -qi openssh
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    # 查看未安装的rpm包samba-4.13.3-3.el8.x86_64.rpm的详细信息
    ## -qi 显示套件的相关信息
    ## -p 查询指定的rpm软件包
    
    rpm -qip 包全名.rpm
    [rhel8 root /mnt/cdrom/BaseOS/Packages]# rpm -qpi samba-4.13.3-3.el8.x86_64.rpm
    警告:samba-4.13.3-3.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
    Name        : samba
    Epoch       : 0
    Version     : 4.13.3
    Release     : 3.el8
    Architecture: x86_64
    Install Date: (not installed)
    Group       : Unspecified
    Size        : 2658583
    License     : GPLv3+ and LGPLv3+
    Signature   : RSA/SHA256, 2021年02月09日 星期二 08时52分49秒, Key ID 199e2f91fd431d51
    Source RPM  : samba-4.13.3-3.el8.src.rpm
    Build Date  : 2021年02月04日 星期四 12时01分32秒
    Build Host  : x86-037.build.eng.bos.redhat.com
    Relocations : (not relocatable)
    Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
    Vendor      : Red Hat, Inc.
    URL         : https://www.samba.org
    Summary     : Server and Client software to interoperate with Windows machines
    Description :
    Samba is the standard Windows interoperability suite of programs for Linux and
    Unix.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    package-cleanup命令------清理本地安装的RPM软件包

    常用参数:

    -c使用备用配置文件(默认为/etc/yum.conf)
    -y同意任何要求
    –leaves列出与其他RPM没有依赖关系的软件包
    –orphans列出当前软件仓库中不再提供支持的本地已安装的软件包
    –oldkernels删除旧内核文件(kernel, kernel-devel)
    –problems列出有依赖问题的软件包
    –dupes扫描重复安装的RPM软件包
    –cleandupes扫描重复安装的软件包,并删除老版本的软件包
    # 依赖yum-utils
    yum install -y yum-utils
    
    # 列出重复的rpm包 
    package-cleanup --dupes
    
    # 去除重复的rpm包
    package-cleanup –cleandupes 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    校验rpm包是否被篡改

    # 校验rpm包
    ## -V 验证
    rpm -V 包名
    
    # 查看命令行的包名
    ## -q 查询软件包
    ## -a 查询所有的软件包
    rpm -qa systemd
    
    ## -V 验证
    rpm -V $(rpm -qa systemd)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    image.png

    如果软件包异常,会显示以下内容
    image.png


    对所有的rpm包进行包校验

    # 对所有的rpm包进行包校验
    for i in `rpm -qa`; do rpm -V $i; done
    
    • 1
    • 2

    image.png


    查看命令行缺失的文件

    # 查看文件的依赖库
    ldd $(which systemd)
    
    • 1
    • 2

    image.png

    # 查看缺失的依赖库文件
    ldd $(which systemctl) |grep "not found"
    
    • 1
    • 2

    image.png

    # 更新文件索引数据库
    updatedb
    
    # 定位缺失的依赖库文件所在位置
    locate libgcrypt.so.11
    
    # cd到缺失到依赖库所在的目录
    cd /etc/ld.so.conf.d/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 相关阅读:
    1.关于String substring有俩个题 2.String replace(“老值“,“新值“)
    前端框架纯js版本
    HCNP Routing&Switching之IP安全
    C语言入门Day_27 开发环境
    Django快速指南
    【Java】如何将二进制转换成MultipartFile
    解锁新机遇——易天欧洲ECOC通讯展预告,精彩即将开始!
    SwiftUI Bluetooth 使用
    《C语言程序设计》第4版 何钦铭、颜晖主编 课后习题答案 第12章 课后习题
    Ruoyi-vue 多文件上传, 多文件选择打包(zip)下载
  • 原文地址:https://blog.csdn.net/omaidb/article/details/126594122