我想构建一个脚本来下载所有丢失的包但不立即安装它们。为此,我正在尝试使用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 。
坦克为你提供帮助!
答案 0 :(得分:2)
使用yum-downloadonly
答案 1 :(得分:1)
如果问题出现在您认为的问题上,
open(README, "rpm -Uvh ".$ARGV[0]." --test 2>&1 |")
^^^^
add this
答案 2 :(得分:0)
我建议使用rpm -qpR
然后循环结果以查看是否已安装软件包。
为此,请在rpm -qa
中使用grep包名称。
这可能会奏效,即使它不一定是最好的方法。