[Linux]CentOS查看RPM包依赖问题
【经典应用案例】
查看此文前,可先查看 此博文中:在安装软件过程中,如何解决的依赖组件问题?
[数据库/Linux]CentOS7安装MySQL Percona版(RPM方式) : 2-1 依赖组件问题 - 博客园/千千寰宇
rpm 和 yum命令的全部完整解析:
rpm --help
yum --help
0 搜索 软件包
yum -C search "关键词"
[root@node116 repo]# yum -C search "curl"
Loaded plugins: fastestmirror, langpacks
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
================================================================================== N/S matched: curl ===================================================================================
libcurl-devel.x86_64 : Files needed for building applications with libcurl
python-pycurl.x86_64 : A Python interface to libcurl
curl.x86_64 : A utility for getting files from remote servers (FTP, HTTP, and others)
libcurl.x86_64 : A library for getting files from web servers
Name and summary matches only, use "search all" for everything.

1 查看包依赖
1-1 思路1: 服务器 查看RPM包依赖
-q : query / 查看对应的rpm包
-R: require / 依赖哪些软件包
【0# YUM方式】
deplist := dependency list
yum deplist <软件包名> := 显示软件包的依赖信息
[root@govern ~]# yum deplist curl
已加载插件:fastestmirror
查找依赖:
Loading mirror speeds from cached hostfile
* c6-media:
软件包:curl.x86_64 7.19.7-52.el6
依赖: libssh2.so.1()(64bit)
provider: libssh2.x86_64 1.4.2-2.el6_7.1
依赖: libz.so.1()(64bit)
provider: zlib.x86_64 1.2.3-29.el6
依赖: libkrb5.so.3()(64bit)
provider: krb5-libs.x86_64 1.10.3-57.el6
依赖: libldap-2.4.so.2()(64bit)
provider: openldap.x86_64 2.4.40-12.el6
依赖: libpthread.so.0()(64bit)
provider: glibc.x86_64 2.12-1.192.el6
依赖: libgssapi_krb5.so.2()(64bit)
provider: krb5-libs.x86_64 1.10.3-57.el6
依赖: libpthread.so.0(GLIBC_2.2.5)(64bit)
provider: glibc.x86_64 2.12-1.192.el6
依赖: libcurl.so.4()(64bit)
provider: libcurl.x86_64 7.19.7-52.el6
依赖: libnssutil3.so()(64bit)
provider: nss-util.x86_64 3.21.0-2.el6
依赖: libk5crypto.so.3()(64bit)
provider: krb5-libs.x86_64 1.10.3-57.el6
依赖: libplc4.so()(64bit)
provider: nspr.x86_64 4.11.0-1.el6
依赖: librt.so.1(GLIBC_2.2.5)(64bit)
provider: glibc.x86_64 2.12-1.192.el6
依赖: libplds4.so()(64bit)
provider: nspr.x86_64 4.11.0-1.el6
依赖: libdl.so.2()(64bit)
provider: glibc.x86_64 2.12-1.192.el6
依赖: libnss3.so()(64bit)
provider: nss.x86_64 3.21.0-8.el6
依赖: libc.so.6(GLIBC_2.7)(64bit)
provider: glibc.x86_64 2.12-1.192.el6
依赖: libcom_err.so.2()(64bit)
provider: libcom_err.x86_64 1.41.12-22.el6
依赖: librt.so.1()(64bit)
provider: glibc.x86_64 2.12-1.192.el6
依赖: libssl3.so()(64bit)
provider: nss.x86_64 3.21.0-8.el6
依赖: libsmime3.so()(64bit)
provider: nss.x86_64 3.21.0-8.el6
依赖: libnspr4.so()(64bit)
provider: nspr.x86_64 4.11.0-1.el6
依赖: libidn.so.11()(64bit)
provider: libidn.x86_64 1.18-2.el6
依赖: rtld(GNU_HASH)
provider: glibc.i686 2.12-1.192.el6
provider: glibc.x86_64 2.12-1.192.el6
依赖: libcurl = 7.19.7-52.el6
provider: libcurl.x86_64 7.19.7-52.el6
provider: libcurl.i686 7.19.7-52.el6
【1# RPM方式 - 未被安装时】
rpm -qpR <软件包名>
【#2 RPM方式 - 已被安装时】
[root@govern ~]# rpm -qR curl
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libc.so.6(GLIBC_2.7)(64bit)
libcom_err.so.2()(64bit)
libcurl = 7.19.7-52.el6
libcurl.so.4()(64bit)
libdl.so.2()(64bit)
libgssapi_krb5.so.2()(64bit)
libidn.so.11()(64bit)
libk5crypto.so.3()(64bit)
libkrb5.so.3()(64bit)
libldap-2.4.so.2()(64bit)
libnspr4.so()(64bit)
libnss3.so()(64bit)
libnssutil3.so()(64bit)
libplc4.so()(64bit)
libplds4.so()(64bit)
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
librt.so.1()(64bit)
librt.so.1(GLIBC_2.2.5)(64bit)
libsmime3.so()(64bit)
libssh2.so.1()(64bit)
libssl3.so()(64bit)
libz.so.1()(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1
1-2 第三方网站 查看RPM包/库的第三方网站的包依赖分析报告
通过查询下列安装资源网站来【查询/下载/安装】包的依赖关系:




通过
yum install --downloadonly --downloaddir=[download_dir] [package]来只下载包不安装包运行
yum list [package] --showduplicates来查看包的多个版本安装.rpm 包时,检测包依赖
如果缺少依赖,报错信息中会打印出缺少的依赖:
rpm -ivh [package]
或
yum localinstall *.rpm
2 指定组件 是否被其它依赖?
通过rpm -e --test <软件包名>进行测试删除,查看是否有依赖关系
如果有,会阻止删除
[root@sdc70 ~]# rpm -e --test curl
error: Failed dependencies:
curl is needed by (installed) rpm-4.8.0-55.el6.x86_64
3 补充: rpm -q / yum info
rpm -q 软件包名
[root@govern ~]# rpm -q libcurl
libcurl-7.19.7-52.el6.x86_64
[root@govern ~]# rpm -qa libcurl
libcurl-7.19.7-52.el6.x86_64
[↓推荐使用↓]
[root@govern ~]# rpm -qa | grep -i Percona
Percona-Server-shared-57-5.7.24-27.1.el6.x86_64
Percona-Server-server-57-5.7.24-27.1.el6.x86_64
Percona-Server-client-57-5.7.24-27.1.el6.x86_64
注: grep -i : 查找时 忽略大小写的不同
yum info 软件包名
[root@govern ~]# yum info libcurl
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* c6-media:
file:///media/CentOS/repodata/repomd.xml: [Errno 14] Could not open/read file:///media/CentOS/repodata/repomd.xml
尝试其他镜像。
file:///media/cdrecorder/repodata/repomd.xml: [Errno 14] Could not open/read file:///media/cdrecorder/repodata/repomd.xml
尝试其他镜像。
c6-media | 4.0 kB 00:00 ...
已安装的软件包
Name : libcurl
Arch : x86_64
Version : 7.19.7
Release : 52.el6
Size : 339 k
Repo : installed
From repo : anaconda-CentOS-201605220104.x86_64
Summary : A library for getting files from web servers
URL : http://curl.haxx.se/
License : MIT
Description : This package provides a way for applications to use FTP, HTTP, Gopher and
: other servers for getting files.
可安装的软件包
Name : libcurl
Arch : i686
Version : 7.19.7
Release : 52.el6
Size : 176 k
Repo : c6-media
Summary : A library for getting files from web servers
URL : http://curl.haxx.se/
License : MIT
Description : This package provides a way for applications to use FTP, HTTP, Gopher and
: other servers for getting files.
" 那有没有办法,按需获取rpm包的各项信息呢? "
rpm -q --queryformat [QUERYFMT]
[root@govern ~]# rpm -q --qf '%{name}-%{version}-%{release}--%{arch}-%{DEPENDSDICT}\n' libcurl
libcurl-7.19.7-52.el6--x86_64-1375731722
其中,【QUERYFMT】 是一系列rpm的查询标志,可以通过以下命令查询有哪些标志可以使用:
[root@govern ~]# rpm --querytags
ARCH
ARCHIVESIZE
BASENAMES
BUGURL
BUILDARCHS
BUILDHOST
BUILDTIME
C
CAPABILITY
CHANGELOGNAME
CHANGELOGTEXT
CHANGELOGTIME
CLASSDICT
CONFLICTFLAGS
CONFLICTNAME
CONFLICTS
CONFLICTVERSION
COOKIE
DBINSTANCE
DEPENDSDICT
DESCRIPTION
DIRINDEXES
DIRNAMES
DISTRIBUTION
DISTTAG
DISTURL
DSAHEADER
...
rpm -qi <软件包名>
-q - query
-i - information - 选项表示查询软件信息(版本 / 安装时间 / ...)
[root@govern ~]# rpm -qi /root/centos6_mysql5.7.24_install/percona/Percona-Server-server-57-5.7.24-27.1.el6.x86_64.rpm
package /root/centos6_mysql5.7.24_install/percona/Percona-Server-server-57-5.7.24-27.1.el6.x86_64.rpm is not installed
[root@govern ~]# rpm -qi libcurl
Name : libcurl Relocations: (not relocatable)
Version : 7.19.7 Vendor: CentOS
Release : 52.el6 Build Date: 2016年05月11日 星期三 05时45分10秒
Install Date: 2019年12月04日 星期三 22时40分24秒 Build Host: worker1.bsys.centos.org
Group : Development/Libraries Source RPM: curl-7.19.7-52.el6.src.rpm
Size : 347536 License: MIT
Signature : RSA/SHA1, 2016年05月12日 星期四 18时48分11秒, Key ID 0946fca2c105b9de
Packager : CentOS BuildSystem <http://bugs.centos.org>
URL : http://curl.haxx.se/
Summary : A library for getting files from web servers
Description :
This package provides a way for applications to use FTP, HTTP, Gopher and
other servers for getting files.
注: Signature - 制作RPM的时候加入数字签名
X 参考文献
- 查看.rpm 包依赖 - CSDN
- 查看已经安装的RPM包 - CSDN
- rpm查询命令的结果有两个相同版本rpm包 - CSDN
- [Linux]常用命令之【vi/grep/find/head/tail】 - 博客园/千千寰宇
- Linux rpm命令查询软件包(-q、-qa、-i、-p、-l、-f、-R) - biancheng.net
- yum命令全集详解 - 博客园
- linux环境中,如何查看某个软件包,都依赖哪些软件包?被哪些软件包依赖? - 博客园
[Linux]CentOS查看RPM包依赖问题的更多相关文章
- Linux RPM 命令参数使用详解 查看 rpm包依赖性
转载自:http://blog.csdn.net/deutschester/article/details/6309521 rpm 执行安装包 二进制包(Binary)以及源代码包(Source)两种 ...
- 解决安装rpm包依赖关系的烦恼 - yum工具介绍及本地源配置方法
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...
- Linux学习之RPM包管理-rpm命令管理(十六)
Linux学习之RPM包管理-rpm命令管理 目录 简介 RPM包依赖性 包全名与包名 rpm软件包安装 rpm软件包卸载 升级降级rpm软件包 rpm软件包的查询 rpm软件包校验 简介 RPM是R ...
- Linux学习之RPM包管理-yum管理(十七)
Linux学习之RPM包管理-yum管理 目录 IP地址配置 网络yum源 yum命令 光盘yum源搭建 IP地址配置 IP+子网掩码就可以在局域网(内网)使用. IP+子网掩码+网关+DNS就可以访 ...
- 在centos使用rpm包的方式安装mysql,以及更改root密码
在centos使用rpm包的方式安装mysql,对于centos官方实际推荐使用yum进行安装,下载安装的方式主要用于内网服务器不能连接外网yum源的情况. 下载包 首先根据centos版本在mysq ...
- Linux 强制安装rpm 包
Linux 强制安装rpm 包 2014年12月12日 10:21 [root@ilearndb1 Server]# rpm -ivh unixODBC-devel-2.* --nodeps -- ...
- 查看rpm包里面内容以及里面文件的内容
如果想查看rpm包里面的内容使用命令: rpm -qpl xxxx.rpm 如果想查看rpm包里面的内容导出,而不是安装,使用命令: rpm2cpio xxxx.rpm | cpio -ivd 就 ...
- 在Linux下下载RPM包
在Linux下下载RPM包,但是不安装 在工作中经常会遇到离线安装RPM包的情况,下面是下载RPM包的方法 # 使用yum下载RPM包 yum -y install --downloadonly &l ...
- Linux系统手动安装rpm包依赖关系分析(以Kernel升级为例)
有在Linux系统中安装软件的经历的人都知道,在Linux系统中手动安装软件不想在Windows下安装软件那么方便,直接双击,然后下一步下一步就可以把软件成功的装入到系统中,而在Linux系统中,安装 ...
- linux查看rpm包创建的所有目录和文件
有不少时候,我们需要查看某个rpm创建的所有目录和文件,出于了解程序结构或者其他目的,但是对于这个rpm包我们又不怎么熟悉,这个时候可以通过rpm -ql rpm名称查看. 但是rpm名称有可能又忘了 ...
随机推荐
- c# WinForm 多次点击这个按钮会弹出多个窗体, 怎么才能只显示一个窗体。解决方案!
第一种解决方法 "单例" <mark> 书上有 private void toolStripLabel1_Click(object sender, EventArgs ...
- echarts 图表 tooltip提示框,formatter自定义
自定义图表提示框样式, 自定义原因:series中有多个数据样式,那么提示框会展示多条. tooltip: { formatter(params) { let circle = `<span s ...
- Python爬虫之Scrapy制作爬虫
前几天我有用过Scrapy架构编写了一篇爬虫的代码案例深受各位朋友们喜欢,今天趁着热乎在上一篇有关Scrapy制作的爬虫代码,相信有些基础的程序员应该能看的懂,很简单,废话不多说一起来看看. 前期准备 ...
- Vue系列---【.npmrc文件设置私服地址】
一..npmrc 配置文件的优先级 电脑中有多个 .npmrc 文件,在我们安装包的时候,npm按照如下顺序读取这些配置文件 项目配置文件: /project/.npmrc 用户配置文件:~/.npm ...
- Mysql5.7的安装与卸载与数据迁移
Mysql5.7的安装与卸载 安装: 1.安装的时候 只选择安装 server即可 2.安装过程中,一定要重新选择安装路径和各个日志的路径,将来会非常大,不适合存在系统盘下面 3.安装时,取消MySQ ...
- Java学习笔记(二)环境
卸载JDK 1.删除java的安装目录 2.删除JAVA_HOME 3.删除path下关于java的目录 4.java -version 配置环境变量 1.我的电脑-->右键-->属性 ...
- commons-lang3
字符串的处理类(StringUtils) //判断是否为空(注:isBlank与isEmpty 区别) StringUtils.isBlank(null);StringUtils.isBlank(&q ...
- Jmeter--请求结果写入文件并生成报告
一.数据写入文件 Jmeter中监听器控件中,都可以将"所有数据写入一个文件",且文件形式有:xml\jtl\csv 在需要写入的监听器下点击"浏览"按钮,选择 ...
- arp 基本功能
地址解析协议(英语:Address Resolution Protocol,缩写:ARP)是一个通过解析网络层地址来找寻数据链路层地址的网络传输协议,它在IPv4中极其重要.ARP最初在1982年的R ...
- Python:合并两个列表成为一个list
如何合并两个列表,今天就来探讨一下: 方法一:最笨的方法实现 list1=[1,2,3]list2=[4,5,6]new_list=[]for item in list1: new_list.appe ...