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";

問題は、出力がstdoutではなくstderrになることだと思います。

あなたの助けのための戦車!

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 に答える