2

我想构建一个脚本来下载所有丢失的包但不立即安装它们。为此,我试图在使用 Perl 程序安装新 RPM 时获取缺少的依赖项列表。

我尝试使用rpm -qpR标志,但它输出所有要求,而不仅仅是缺少的要求。

接下来,我尝试使用rpm -Uvh --test标志,但无法让它工作 - 它输出一个空字符串。

我的 Perl 程序:

#!/usr/bin/perl -w
$output="";
open(README, "rpm -Uvh ".$ARGV[0]." --test |") or die "Can't run program: $!\n";
while(<README>) {
    $output .= $_;
}
close(README);
print "OUTPPUT=".$output."\n";

我认为问题在于输出到stderr而不是stdout

坦克为您提供帮助!

4

3 回答 3

2

使用 yum-downloadonly

http://www.cyberciti.biz/faq/yum-downloadonly-plugin/

于 2012-05-15T05:35:08.247 回答
1

如果问题是你的问题,

open(README, "rpm -Uvh ".$ARGV[0]." --test 2>&1 |")
                                           ^^^^
                                         add this
于 2012-05-14T15:31:08.480 回答
0

我建议使用rpm -qpR然后循环遍历结果以查看是否安装了软件包。

为此,请 grep 中的包名称rpm -qa

即使它不一定是最好的方法,这也可以工作。

于 2012-05-14T15:37:44.200 回答