yum 是使用 rpm 可执行文件来处理 rpm 包还是实现自己的 rpm 解析和处理

Posted

技术标签:

【中文标题】yum 是使用 rpm 可执行文件来处理 rpm 包还是实现自己的 rpm 解析和处理【英文标题】:Does yum use the rpm executable to handle rpm packages or does it implement its own rpm parsing and handling 【发布时间】:2018-08-22 22:37:14 【问题描述】:

yum 如何在内部工作? 在实际操作 rpm 文件时,yum 是否会使用 rpm 可执行文件,或者它是否实现了自己的 rpm 处理代码? (或者它是否使用静态或共享 rpm 库来处理 rpm 文件)

【问题讨论】:

你可以随时查看源代码。 【参考方案1】:

似乎 yum 是一个基于 rpm-python 的 python 实现。您可以通过查看 rpm 要求来推断此类事情:

rpm -q yum --requires

给予:

...
rpm-python
...

这导致了我。还在寻找/usr/bin/yum 文件:

file /usr/bin/yum

给予

/usr/bin/yum: Python script, ASCII text executable

【讨论】:

此信息很有帮助。您提到的同一命令还在 rpm-python 上方列出了 rpm。我尝试重命名 rpm 可执行文件并安装一个包,以查看 yum 是否真的依赖 rpm 可执行文件本身,而它没有。【参考方案2】:

在获得 yum 和 rpm 的源代码后,我发现了以下内容:

yum 是在 python 中实现的,使用 rpm-python 包进行 rpm 访问。 rpm 和 yum 最终都利用 librpm.so 共享库在底层进行 RPM 包管理。

【讨论】:

以上是关于yum 是使用 rpm 可执行文件来处理 rpm 包还是实现自己的 rpm 解析和处理的主要内容,如果未能解决你的问题,请参考以下文章

centos中使用rpm包或yum命令在线安装的软件默认是安装在那个目录下

rpm,yum程序包管理器

linux 中yum和rpm 总结

Linux下制作bin可执行文件

软件包安装方法rpm包介绍rpmyum

安装软件包的三种方法 rpm包介绍rpm工具用法yum工具用法yum搭建本地仓库安装软件包的