2012-05-14 4 views
2

Я хочу создать скрипт, который загружает все недостающие пакеты, но не устанавливает их немедленно. Для этого я пытаюсь получить список отсутствующих зависимостей при установке нового RPM с помощью программы Perl.Проверка отсутствующих зависимостей без установки RPM

Я пробовал использовать флаг rpm -qpR, но он выводит все требования, а не только недостающие.

Далее я пробовал использовать флагов 0pm rpm -Uvh --test, но не может заставить его работать - он выводит пустую строку.

программа My 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 вместо стандартных вывода.

Цистерны для вашей помощи!

+0

попытка выполнить команду на строку первого, так что вы будете уверены, что ожидаемые результаты. Другое дело - rpm -Uvh - это обновление пакета, это то, что вы хотите. Список [команд] (http://www.cyberciti.biz/howto/question/linux/linux-rpm-cheat-sheet.php), который может помочь. –

+0

@SunilKartikey да, у меня был глубокий взгляд на страницу руководства, вот как я нашел флаг -test. Проблема только с -Uvh заключается в том, что она устанавливается немедленно, пока я хочу найти зависимости без фактической установки. – Kuf

ответ

1

Если проблема это то, что вы, что это такое,

open(README, "rpm -Uvh ".$ARGV[0]." --test 2>&1 |") 
              ^^^^ 
             add this 
+0

спасибо! это сработало для меня. – Kuf

0

Я предлагаю использовать rpm -qpR, а затем цикл по результатам, чтобы увидеть, если установлен пакет.

Для этого grep имя пакета в rpm -qa.

Это может работать, даже если это не обязательно лучший подход.

+0

Проблема в том, что он дает мне полные зависимости, а не только недостающие. Любые предложения для лучшего подхода? – Kuf

+0

Вот что я имел в виду, когда я сказал grep в rpm -qa. Он показывает вам, какие пакеты установлены, чтобы вы могли привести список только к отсутствующим пакетам. – OlivierLi

Смежные вопросы