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 解析和处理的主要内容,如果未能解决你的问题,请参考以下文章