• 如何检查rpm的依赖性


    转:      https://linux.cn/article-3621-1.html#3_780

    rpm -qR    java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64

    教你如何在Fedora,CentOS,RHEL中检查RPM包的依赖性

    2014-08-16 15:59    评论: 20 收藏: 8 分享: 17    

    本文导航

    我们都知道,在基于红帽的Linux系统中,一个RPM包,需要把先将它依赖的其他包安装好才能正常的工作。对于终端用户,RPM的安装、更新、删除中存在的依赖关系已经被工具透明化了(如 yum或 DNF等)。但如果你是系统管理员或者RPM包的管理员,你需要谙熟RPM包的依赖关系,以便及时更新、删除适当的包来保证系统的正常运行。

    在本教程中,我将教大家如何检查RPM包的依赖关系。无论这个包是否已经安装进操作系统中,我们都有一些办法来检查它们的依赖性。

    方法一

    使用RPM命令可以列出目标包所依赖的所有包,如下: $ rpm -qR

    注意,这种方法只适用于已安装的包。如果你需要检查一个未安装包的依赖关系,你首先需要把这个包先下载到本地来(不需要安装)。

    要下载一个 RPM 包而不安装,可以使用叫做'yumdownloader'的工具,下面我们先安装yumdownloader:

    1. $ sudo yum install yum-utils

    现在我们来检查一个未安装的RPM包的依赖关系(本例使用 tcpdump)。首先,我们使用yumdownloader把tcpdump的RPM包下载下来

    1. $ yumdownloader --destdir=. tcpdump

    然后再使用 "-qpR"参数显示该包的依赖关系。

    1. # rpm -qpR tcpdump-4.4.0-2.fc19.i686.rpm

    方法二

    你可以使用repoquery工具来罗列包的依赖关系,它与包是否安装无关,这个工具包含在yum-utils中。

    1. $ sudo yum install yum-utils

    显示目标包所依赖的包:

    1. $ repoquery --requires --resolve <package-name>

    为让repoquery正常的工作,需要保持网络的畅通,应为repoquery需要在Yum库中查找信息。

    方法三

    第三个方法是使用rpmreaper工具。这个工具本来是用作清理系统中无用以及它们所依赖的包,rpmreaper有很直观的ncurses界面来展示已安装的包和它们依赖关系的树形图。

    安装rpmrepater,在CentOS中,你需要先设置好EPEL库

    1. $ sudo yum install rpmreaper

    只需运行rpmreaper就可以看到RPM包的依赖关系:

    1. $ rpmreaper

    rpmrepater会向用户显示已安装包的列表,你可以使用上/下箭头来滚动屏幕。

    你可以在指定包上使用"r"键来显示其依赖关系,循环在指定包上按下"r"键可以展示出余下的信息。

    "L"标志的意思是说这个包是一片“孤叶”,意思说说没有任何包依赖它。

    "o"标志是说这个包是整个依赖链的中间部分。

    按下"b"键会显示其他依赖于该包的其他包。

    方法四

    还有一个办法是使用rpmdep工具,rpmdep是一个命令行工具,可以显示已安装包的完整包依赖关系图。该工具会分析RPM包的依赖性,从完整的排完序的拓扑图中摘取部分包的信息,形成列表展示给用户。该工具的输出结果可以直接使用到Dotty(可视化展示工具)中去。

    在Fedora中安装rpmdep和dotty:

    1. $ sudo yum install rpmorphan graphviz

    在CentOs中安装: $ wgethttp://downloads.sourceforge.net/project/rpmorphan/rpmorphan/1.14/rpmorphan-1.14-1.noarch.rpm$ sudo rpm -ivh rpmorphan-1.14-1.noarch.rpm $ sudo yum install graphviz

    生成包依赖的拓扑关系图(例如 gzip):

    1. $ rpmdep.pl -dot gzip.dot gzip
    2. $ dot -Tpng -o output.png gzip.dot

    教程到这个地方,我们用到了几种办法来检查包的依赖关系。如果您想知道如何在居于Debian的系统中检查.deb的包依赖关系,请阅读另外一篇文档

  • 相关阅读:
    如何提高AJAX客户端响应速度
    JS 数组间的操作
    Spring上传报错413
    设计模式-简单工厂模式学习笔记
    vue辅助函数mapStates与mapGetters
    Vue编程式跳转
    Vue父子,子父,非父子组件之间传值
    node.js中的fs.rename()方法
    map字典,储存cookie,切换账户,展示购物车不同商品
    Gulp
  • 原文地址:https://www.cnblogs.com/fyy-hhzzj/p/9002918.html
Copyright © 2020-2023  润新知