Skip to main content

centos-yum-utils

本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net

yum-utils 模块

yum-utils 模块:

gdb
find-repos-of-install

package-cleanup

repo-graph

repoclosure

repomanage

repoquery

yum-debug-dump zless yum-debug-restore

yumdownloader

reposync

  1. 安装

$ yum update && yum install yum-utils
$ man yum-utils

  1. 使用

  1. 调试软件包
    debuginfo 安装 <软件包名称> 要求安装调试的 debuginfo 软包(和它们的依赖)
    在崩溃的情况下,或者在开发使用某个软件包的应用程序。

为了调试一个包(或任何其他可执行程序),我们还需要安装 GDB(GNU 调试器) ,并用它在调试模式下启动程序。

例如:

$ gdb $(which postfix)

上面的命令将启动一个 gdb 的外壳 ,我们可以输入操作来执行。
例如, 运行 (如下面的图像中)将启动该程序,而 BT(未示出)将显示栈跟踪(也称为回溯 )的程序,
这将提供的函数调用导致一个列表程序执行的某一点(使用这些信息,开发人员和系统管理员都可以知道在崩溃的情况下出了什么问题)
在 Linux 中调试软件包

  1. 查找已安装软件包的存储库
$ find-repos-of-install httpd postfix dovecot

  1. 删除重复或孤立的包
    包清理管理(从比当前配置的存储库之外的来源安装的程序)包清理,重复,孤儿软件包和其他依赖不一致,包括删除,如下例所示老的内核:
    它只会影响不再需要的旧内核包(当前运行的版本之前的版本)。
$ package-cleanup --orphans
$ package-cleanup --oldkernels

  1. 找出包依赖列表
    回购图返回在所有可从配置的仓库中的包点格式全包的依赖列表。 另外, repo-graph 可如果与使用存储库返回相同的信息–repoid = 选项。
    例如,让我们查看更新存储库中每个软件包的依赖关系:
$ repo-graph --repoid=updates | less

iputils 软件包依赖于 systemd 和 OpenSSL - 库 。

$ repo-graph --repoid=updates > updates-dependencies.txt

  1. 检查未解决的依赖关系的列表
    repoclosure 读取配置的存储库的元数据,检查列入其中,并为每个包未解决的依赖性的显示列表包的依赖关系:
$ repoclosure

  1. 如何检查目录中的最新或最旧的软件包
    repomanage 查询用 rpm 包的目录,并在目录中返回最新或最早的软件包列表。 这个工具可以派上用场,如果您有您储存不同的程序的几个. rpm 的包目录。

当不带参数执行,repomanage 返回最新的软件包。 如果与运行–old 标志,它将返回最早的包:

$ ls -l
$ cd rpms
$ ls -l rpms
$ repomanage rpms

  1. 查询 Yum 存储库以获取有关软件包的信息
    repoquery 查询 Yum 库,并得到有关包的其他信息,无论是安装或没有(相关性,包含的文件包中,更多)。

例如, HTOP(Linux 的过程监控)当前未安装此系统上,你可以看到如下:

$ which htop
$ rpm -qa | grep htop

现在假设我们要列出 HTOP 的相关性,与包含在默认安装的文件一起。 为此,请分别执行以下两个命令:

$ repoquery --requires htop

列出 RPM 软件包的依赖关系

$ repoquery --list htop

  1. 将所有已安装的 RPM 软件包转储到 Zip 文件中
    Yum 调试转储让你甩了你已经安装的所有软件包的完整列表,任何储存库,重要的配置和系统信息到一个压缩文件中所有可用的软件包。

如果你想调试已经发生的问题,这可以派上用场。 对于我们的方便, Yum 调试转储名称的文件作为 yum_debug_dump- <主机名> - < 时间 > .txt.gz,这使我们能够跟踪随时间的变化。

$ yum-debug-dump

与任何压缩的文本文件,我们可以使用 zless 命令查看其内容:

$ zless yum_debug_dump-mail.linuxnewz.com-2015-11-27_08:34:01.txt.gz

查看压缩文本文件的内容
如果您需要恢复 Yum 调试转储提供的配置信息,您可以用 yum 调试,恢复这样做:

$ yum-debug-restore yum_debug_dump-mail.linuxnewz.com-2015-11-27_08:34:01.txt.gz

  1. 从 Yum 存储库下载源 RPM
    从库 yumdownloader 下载源 RPM 文件,包括他们的依赖。 用于创建要从具有受限 Internet 访问的其他计算机访问的网络存储库。

Yumdownloader 允许你不仅下载二进制的 RPM 也是那些来源(如果与使用–source 选项)。

例如,让我们创建一个名为 HTOP - 文件 ,我们将存储安装使用 rpm 程序所需要的 RPM(S)。 要做到这一点,我们需要使用–resolve 与 yumdownloader 一起开关:

$ mkdir htop-files
$ cd htop-files
$ yumdownloader --resolve htop
$ rpm -Uvh

  1. 将远程 Yum 存储库同步到本地目录
    reposync 密切相关 yumdownloader(事实上,他们支持几乎相同的选项),但提供了一个相当大的优势。 而不是下载二进制或源 RPM 文件,它将远程存储库同步到本地目录。
    让我们来同步知名 EPEL 软件库到一个名为 EPEL 本地当前工作目录中的子目录:
$ man reposync
$ mkdir epel-local
$ reposync --repoid=epel --download_path=epel-local
$ reposync -r HDP-2.2(仓库名字)

-p 指定目录
-d 来删除本地老旧

一旦同步完成,让我们来检查我们的新创建的使用 EPEL 软件库的镜子使用的磁盘空间量命令 :
$ du -sch epel-local/*

  1. 修复未完成或中止的 Yum 交易
    Yum 完成事务是赶上一个系统上未完成或中止 Yum 交易,并尝试完成他们的 yum-utils 的计划的一部分。
    例如,当我们更新通过 yum 包管理器的 Linux 服务器有时会抛出其内容如下的警告信息:
    还有未完成的交易。 您可以考虑首先运行 yum-complete-transaction 来完成它们。
    要解决这样的警告消息,并解决这些问题, Yum 完成事务命令进入画面,完成未完成的事务,它发现在交易的所有_并可以发现交易完成_文件的不完整或中止 Yum 交易 / 无功 / lib 中 / Yum 目录。
    运行 Yum 完成事务命令完成,未完成交易的 yum:
$ yum-complete-transaction --cleanup-only

现在 yum 命令将运行没有不完整的事务警告。
$ yum update