【问题标题】:Instaling yum with dependencies on an embedded Linux [closed]在嵌入式 Linux 上安装具有依赖项的 yum [关闭]
【发布时间】:2019-12-09 22:12:01
【问题描述】:
我对@987654325@ 比较陌生,并且更熟悉rpm 和yum 的使用,后者当然会解决依赖关系并安装整个包。我主要使用CentOs。
我现在正在尝试使用一个非常基本的embedded Linux,只有rpm,没有dnf 或yum。我想安装yum,所以我可以在管理包方面有一些灵活性,但是使用rpm,我得到的只是一大堆依赖关系,其中一些我尝试解决,比如dnf和python-dnf , 在它变成一个永无止境的列表之前。
有没有更简单的方法可以在我的系统上安装yum?
【问题讨论】:
标签:
linux
centos
embedded-linux
yum
【解决方案1】:
要做到这一点是简单的(和无聊的)示例过程。
首先,您找到您的发行版和架构的包所在的位置并获取 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
接下来,您在 repo 中搜索这些包的 URL。并一一检查它们的依赖关系。获取所有 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 \
.....