【发布时间】:2012-05-14 15:14:31
【问题描述】:
我想构建一个脚本来下载所有丢失的包但不立即安装它们。为此,我试图在使用 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。
坦克为您提供帮助!
【问题讨论】:
-
首先尝试在提示符下运行命令,这样您就可以确定预期的输出是什么。另一件事是 rpm -Uvh 是升级包是你想要的。可能有帮助的commands 列表。
-
@SunilKartikey 是的,我深入查看了手册页,这就是我找到 --test 标志的方式。只有 -Uvh 的问题是它会立即安装,而我想在没有实际安装的情况下找到依赖项。