Centos 使用yum或up2date下载包的所有依赖项的rpm

Centos 使用yum或up2date下载包的所有依赖项的rpm,centos,yum,Centos,Yum,我正在尝试在我的系统上创建一个本地yum repo,其中包含来自CentOS base repo的各种包。默认情况下,承载yum repo的服务器不必安装与使用yum repo的服务器相同的基本软件包。因此,我需要确保我的repo包含我想要的包以及它们的每一个依赖项 我正在使用yum-utils包中提供的yumdownloader工具创建repo,以尝试从标准的CentOS镜像下载使用yum的包的RPM文件。它提供了一个命令行选项--resolve,它还可以下载依赖项。但是,由于yumdownl

我正在尝试在我的系统上创建一个本地yum repo,其中包含来自CentOS base repo的各种包。默认情况下,承载yum repo的服务器不必安装与使用yum repo的服务器相同的基本软件包。因此,我需要确保我的repo包含我想要的包以及它们的每一个依赖项

我正在使用yum-utils包中提供的yumdownloader工具创建repo,以尝试从标准的CentOS镜像下载使用yum的包的RPM文件。它提供了一个命令行选项--resolve,它还可以下载依赖项。但是,由于yumdownloader是基于yum本身构建的,因此它将只下载系统中尚未存在的包的依赖项

例如,我希望下载包A,它取决于包B、C和D。如果系统上已经安装了包D,
yumdownloader--resolve A
将只下载A、B和C,而不下载D


有没有办法从yum-repo下载包上所有依赖项的rpm?

有一个bash脚本,rpm的维护人员很乐意与我分享,我也很高兴。希望你觉得它有用

您也可以阅读讨论该问题的原文

该脚本在Fedora23+上运行,因为它使用dnf的下载插件。让它在Fedora22-上工作可能非常容易,因为百胜肯定有类似的插件


另外,它很有价值,因为它在fedora 23上不起作用(至少对我不起作用)。

在寻找解决方案时遇到了很多挫折,我编写了一个使用repotrace和wget的简单脚本。我发现yumdownloader(即使带有resolve标志)并不能解析所有依赖项

如果你有一个很长的包列表,你一定会遇到重复的包,那么只下载带有“repotrack-u标志”的URL,然后获得唯一的记录就可以解决多次下载相同rpm的问题

#!/bin/bash

while read i; do
    repotrack -u $i >> dep_rpm_urls_02.txt
done < list_of_packages_01.txt


awk '!seen[$0]++' dep_rpm_urls_02.txt > dep_rpm_urls_clean_03.txt

while read j; do
    wget $j
    echo dowloaded $j
done < dep_rpm_urls_clean_03.txt
#/bin/bash
当我读书时;做
repotrack-u$i>>dep\u rpm\u url\u 02.txt
完成dep_rpm_url_clean_03.txt
读j;做
wget$j
回音加载$j
完成
快乐rpming

副本包含我将要在这里写的两个答案。