安装依赖于嵌入式 Linux 的 yum

Instaling yum with dependencies on an embedded Linux

我对Linux比较陌生,更熟悉rpmyum的使用,后者当然会解决依赖关系并安装整个包。我主要使用 CentOs.

我现在正在尝试使用非常基本的 embedded Linux,它只有 rpm,没有 dnfyum。我想安装 yum,这样我可以在管理包方面有一些灵活性,但是使用 rpm,我得到的只是一大堆依赖项,其中一些是我尝试解决的,比如 dnfpython-dnf,然后它变成一个永无止境的列表。

有没有更简单的方法在我的系统上安装 yum

要做到这一点是示例、直接(和无聊)的过程。

首先你找到你的发行版和架构的包所在的位置并获得 URL。例如x86_64,CentOS 8是(其中一个镜像):

http://centos.telecoms.bg/8/BaseOS/x86_64/os/Packages/yum-4.0.9.2-5.el8.noarch.rpm

接下来你需要获取这个包的依赖项(基于你已经安装的)(成为运行 root)

# rpm -q -R http://centos.telecoms.bg/8/AppStream/x86_64/os/Packages/anaconda-29.19.0.40-1.el8.x86_64.rpm
/bin/sh
/bin/sh
anaconda-core = 29.19.0.40-1.el8
anaconda-gui = 29.19.0.40-1.el8
anaconda-install-env-deps = 29.19.0.40-1.el8
anaconda-tui = 29.19.0.40-1.el8
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1

(在上面的例子中我使用了不同的包)

所以你已经/bin/sh但需要anaconda-coreanaconda-guianaconda-install-env-depsanaconda-tuirpmlib

接下来您在存储库中搜索这些包的 URL。并一一检查它们的依赖关系。在获得所有 URL 之后,您创建了一条长线来安装所有这些。或者先安装先决条件,然后再安装软件包。

rpm -i http://centos.telecoms.bg/8/AppStream/x86_64/os/Packages/anaconda-29.19.0.40-1.el8.x86_64.rpm \ 
http://centos.telecoms.bg/8/AppStream/x86_64/os/Packages/anaconda-core-29.19.0.40-1.el8.x86_64.rpm \ 
http://centos.telecoms.bg/8/AppStream/x86_64/os/Packages/anaconda-gui-29.19.0.40-1.el8.x86_64.rpm \ 
http://centos.telecoms.bg/8/AppStream/x86_64/os/Packages/anaconda-install-env-deps-29.19.0.40-1.el8.x86_64.rpm \

.....