From bacffbfea04e2630be0a1835d0bacf1e0d044145 Mon Sep 17 00:00:00 2001 From: tailor Date: Fri, 27 Feb 2009 09:12:06 +0000 Subject: [PATCH 1/1] [project @ steve@lobefin.net-20090227091206-lez14xlz4om1744m] A first pass attempt at making check-packages do the right thing on machines where packages from the wrong arch are installed. --- dsa-nagios-nrpe-config/dsa-check-packages | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dsa-nagios-nrpe-config/dsa-check-packages b/dsa-nagios-nrpe-config/dsa-check-packages index ee0027c..b5615e4 100755 --- a/dsa-nagios-nrpe-config/dsa-check-packages +++ b/dsa-nagios-nrpe-config/dsa-check-packages @@ -77,10 +77,14 @@ sub get_packages { my $installed = $pkgs{'ii'}; delete $pkgs{'ii'}; + open my $olderr, ">&STDERR" or die "Can't dup STDERR: $!"; + open STDERR, ">/dev/null" or die "Can't dup STDOUT: $!"; + open (F, "apt-cache policy ".(join(" ", keys(%$installed)))." |") or die ("Cannot run apt-cache policy: $!\n"); @lines = ; close(F); chomp(@lines); + open STDERR, ">&", $olderr or die "Can't dup OLDERR: $!"; my $line; my $pkgname = undef; @@ -105,6 +109,11 @@ sub get_packages { for my $pkgname (keys %$installed) { my $pkg = $installed->{$pkgname}; + unless (defined($pkg->{'candidate'})) { + $obsolete{$pkgname} = $pkg; + next; + } + if ($pkg->{'candidate'} ne $pkg->{'installed'}) { $outofdate{$pkgname} = $pkg; next; -- 2.20.1