有没有办法使用 yumdownloader 下载所有依赖项,即使它们已经安装?
我正在尝试创建一个本地存储库,并且只想包含我们需要的包。
Luk*_*uke 35
你可以repotrack像这样使用:
repotrack -a x86_64 -p /repos/Packages [packages]
Run Code Online (Sandbox Code Playgroud)
不幸的是,-a标志(拱门)有一个错误。它将下载 i686 和 x86_64。
以下是修复方法:
if opts.arch:
#archlist = []
#archlist.extend(rpmUtils.arch.getArchList(opts.arch))
archlist = opts.arch.split(',') # Change to this
else:
archlist = rpmUtils.arch.getArchList()
Run Code Online (Sandbox Code Playgroud)
您可以使用repoquery来获取组包列表:
repoquery --qf=%{name} -g --list --grouppkgs=all [groups]
Run Code Online (Sandbox Code Playgroud)
您可以将其输入到 repotrack:
repoquery --qf=%{name} -g --list --grouppkgs=all [groups] | xargs repotrack -a x86_64 -p /repos/Packages
Run Code Online (Sandbox Code Playgroud)
pdp*_*pdp 19
对于每个人的信息,yumdownloader不做这项工作。对于使用 `yum 进行包管理的任何人来说,很自然地期望以下命令行会递归下载包 RPM 及其所有依赖项:
yumdownloader --resolve <package>
Run Code Online (Sandbox Code Playgroud)
但事实并非如此。可能会打印第一级依赖项或尚未安装的依赖项。我不确定。
这是一种适用于 CentOS 6.5 的方法。按照Red Hatyum给出的步骤安装 downloadonly 插件。基本上,在 CentOS 6.x 上,请执行以下操作:
$ sudo yum install yum-plugin-downloadonly.noarch
Run Code Online (Sandbox Code Playgroud)
然后结合使用插件--installroot和yum. 这可以防止yum解析并跳过系统上已安装的依赖项。
sudo yum install \
--installroot=</path/to/tmp_dir> \
--downloadonly --downloaddir <rpm_dir> <package>
Run Code Online (Sandbox Code Playgroud)
您将下载包的 RPM,<package>以及它在目录中的所有依赖项<rpm_dir>。例如,使用 Git:
$ mkdir root rpms
$ sudo yum install --installroot=/home/roy/root \
--downloadonly --downloaddir rpms/ git
Run Code Online (Sandbox Code Playgroud)
小智 5
也试试
repoquery -R --resolve --recursive <name> | xargs -r yumdownloader
Run Code Online (Sandbox Code Playgroud)
例如:
repoquery -R --resolve --recursive firefox | xargs -r yumdownloader
Run Code Online (Sandbox Code Playgroud)
来源:https : //www.thegeekdiary.com/downloading-rpm-packages-with-dependencies-yumdownloader-vs-yum-downloadonly-vs-repoquery/
| 归档时间: |
|
| 查看次数: |
106035 次 |
| 最近记录: |