repoquery详解——linux查看包依赖关系的神器
repoquery是yum扩展工具包yum-utils中的一个工具,所有如果你没有repoquery命令的话,可以先 sudo yum install yum-utils 安装yum-utils包。是为了加强和补充yum功能的工具,重点是查询包的关系。repoquery的官方说明是:query information from Yum repositories,故名意思,它只能查看信息,并不能执行安装卸载更新等实质性的操作。而且要和Yum库配合使用。
repoquery的命令格式和yum很像,但是又有不同,yum 的命令格式是yun [options] [command] [package ...], repoquery的命令格式是repoquery [options] [item ...],当然,也可以是repoquery -a [options],没有item,表示所有。从命令格式的不同,也可以反映出repoquery只能做查询而不支持实质性的操作。
repoquery的操作分为5类,分别是常规操作、包查询、包选择、组查询和组选择,下面一一说明:
1.常规操作
常规操作主要是规定repoquery的查询的范围,包括指定特定的库--repoid以及用url方式指定--repofrompath、增加哪些被禁的库--enablerepo、去除那些库--disablerepo(都是针对配置文件已有的库来说)、用什么插件之类的,还有其它的一些命令行常有的选项比如--quiet --version之类的,也归到这一类里面。
2.包查询
包查询选项主要是查询包的一些信息,此时的item为包名。在描述时,item是主语,怎么说呢?举个例子: repoquery --provides openssl ,这个命令查询的是: openssh (主语)这个包提供了哪些rpm文件。
查询功能包括查询基本描述信息--info、文件--list、需要哪些依赖库--requires、提供了哪些包--provides、和谁淘汰--obsoletes、和谁冲突--conflicts、变更日志--changelog,来自哪里location,源rpm包的名字source等等。
注:--requires只会列出依赖哪些库,但是不会显示这些库来自哪个源包,如果要列出源包,再附上--resolve
还有一个很重要的操作--show-duplicates,可以显示所有重复的包,这个很有用。
3.包选择
包选择操作中,item是宾语,也举一个例子说明一下什么意思:比如 repoquery --whatprovides openssl-.el7 ,这个命令查询的是:谁提供了 openssl-.el7 (宾语)这个包。看到没有,很有意思,包选择的操作中,会多一个whatxxx,和包查询中的xxx操作对于,比如--whatrequiers(哪个包依赖item我,我是宾语)和和包查询中的--requires(item我依赖哪些包,我是主语)。
包选择提供很多操作,包括whatrequires,whatconflicts等等,就不一一讲了,具体执行以下 man repoquery 命令查看一下就好了。需要注意的是,item可以是具体的报名,也可以是一部分关键字,如果要精确匹配包名,可以用--exactdeps。
这里还有一个--installed选项也很有用,它似的查询的范围仅仅限定在已经安装了的包上面。
4.组查询和组选择
组查询无非就是list grouppkgs requires四个,很简单。组选择更加简单,只有-g一个,查询所有的组。
repoquery详解——linux查看包依赖关系的神器的更多相关文章
- Linux下ps命令详解 Linux下ps命令的详细使用方法
http://www.jb51.net/LINUXjishu/56578.html Linux下的ps命令比较常用 Linux下ps命令详解Linux上进程有5种状态:1. 运行(正在运行或在运行队列 ...
- 详解linux运维工程师入门级必备技能
详解linux运维工程师入门级必备技能 | 浏览:659 | 更新:2013-12-24 23:23 | 标签:linux it自动化运维就是要很方便的运用各种工具进行管理维护,有效的实施服务器保护 ...
- 详解Linux下swig 3.0.12的手动安装过程
详解Linux下swig 3.0.12的手动安装过程 首先 从http://www.linuxfromscratch.org/blfs/view/cvs/general/swig.html上下载swi ...
- Linux进程上下文切换过程context_switch详解--Linux进程的管理与调度(二十一)
1 前景回顾 1.1 Linux的调度器组成 2个调度器 可以用两种方法来激活调度 一种是直接的, 比如进程打算睡眠或出于其他原因放弃CPU 另一种是通过周期性的机制, 以固定的频率运行, 不时的检测 ...
- 从苦逼到牛逼,详解Linux运维工程师的打怪升级之路
做运维也快四年多了,就像游戏打怪升级,升级后知识体系和运维体系也相对变化挺大,学习了很多新的知识点. 运维工程师是从一个呆逼进化为苦逼再成长为牛逼的过程,前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感 ...
- Hadoop基础-Idea打包详解之手动添加依赖(SequenceFile的压缩编解码器案例)
Hadoop基础-Idea打包详解之手动添加依赖(SequenceFile的压缩编解码器案例) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.编辑配置文件(pml.xml)(我 ...
- 详解Linux运维工程师
运维工程师是从一个呆逼进化为苦逼再成长为牛逼的过程,前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感知前方潮流变化.如:今年大数据,人工智能比较火……(相对表示就是 Python 比较火) 之前写过运维 ...
- (转)linux traceroute命令参数及用法详解--linux跟踪路由命令
linux traceroute命令参数及用法详解--linux跟踪路由命令 原文:http://blog.csdn.net/liyuan_669/article/details/25362505 通 ...
- [转帖]详解Linux系统inode原理--硬链接、软链接、innodb大小和划分等
详解Linux系统inode原理--硬链接.软链接.innodb大小和划分等 原创 波波说运维 2019-07-17 00:03:00 https://www.toutiao.com/i6713116 ...
随机推荐
- C# DataGridView控件动态添加新行
C# DataGridView控件动态添加新行 DataGridView控件在实际应用中非常实用,特别需要表格显示数据时.可以静态绑定数据源,这样就自动为DataGridView控件添加相应的行.假如 ...
- Dapper 简单封装
using System; using System.Collections.Generic; using System.Text; using Dapper; using System.Data; ...
- Persistent and Transient Data Structures in Clojure
此文已由作者张佃鹏授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 最近在项目中用到了Transient数据结构,使用该数据结构对程序执行效率会有一定的提高.刚刚接触Trans ...
- (二)RabbitMQ使用笔记
1.RabbitMQ简介 RabbitMQ是流行的开源消息队列系统,用erlang语言开发.RabbitMQ是AMQP(高级消息队列协议)的标准实现. 官网:http://www.rabbitmq.c ...
- 深入 Nginx:我们是如何为性能和规模做设计的
NGINX 在网络应用中表现超群,在于其独特的设计.许多网络或应用服务器大都是基于线程或者进程的简单框架,NGINX突出的地方就在于其成熟的事件驱动框架,它能应对现代硬件上成千上万的并发连接. NGI ...
- spring boot项目分享
Spring boot项目分享 以下项目是我自己做的一些练习项目,有兴趣的小伙伴可以下载下来看下 1.员工管理系统 下载地址:我的github 后续会继续补充
- luoguP4234 最小差值生成树
https://www.luogu.org/problemnew/show/P4234 按照边的权值从小到大排序,依次加入,并删除能够删除的权值最小的一条边,用 set 维护当前所有边的边权,并查集维 ...
- loj #6121. 「网络流 24 题」孤岛营救问题
#6121. 「网络流 24 题」孤岛营救问题 题目描述 1944 年,特种兵麦克接到国防部的命令,要求立即赶赴太平洋上的一个孤岛,营救被敌军俘虏的大兵瑞恩.瑞恩被关押在一个迷宫里,迷宫地形复杂, ...
- 【BlockingQueue】BlockingQueue 阻塞队列实现
前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题.通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便 ...
- 小白如何将代码上传到github上?
网上已经有很多关于这个的教程,有一步步操作的,但有些感觉已经颇旧了.现在更新一个最新版的github小白教程.尽管以后此教程也会变成旧的,至少在这一段时期,本文还是最新的.就按照github官网上教程 ...