Page suivante Page précédente Table des matières

14. Annexe

Voici le script d'Eric pour ajouter les RPM actualisés dans les répertoires de la distribution RedHat:

#!/usr/bin/perl
# 
$redhatdir="/cdrom/i386"; 
$rpmdir="/cdrom/i386/RedHat/RPMS/"; 
$updatedir="/cdrom/updates/"; 
@OTHERDIR=($updatedir); 
foreach $dir (@OTHERDIR) 
  { 
    print "update for $dir\n"; 
    system(" find $dir -name \"*.rpm\" -exec cp {} $rpmdir \\; "); 
  } 
chdir($contribdir) || die "peux pas aller dans $contribdir $!\n"; 
system("chmod -R 755 $redhatdir"); 
chdir($rpmdir) || die "problem to go in $rpmdir $!\n"; 
# 
# remove the old file  
# 
opendir(DIR,'.'); 
@package=grep(/\.rpm$/,readdir(DIR)); 
foreach $file (@package) 
  { 
    $file =~ /(.*)\-([\d+|\.]+\w*)\-(\d+)\.[i386|noarch].*/; 
    $nom=$1; 
    $version=$2; 
    $buildvers=$3;
    if ($NOM{$nom})
      {
        $version2=$VERSION{$nom};
        $buildver2=$BUILDVERS{$nom};
        $file2=$FILE{$nom};
        $nom2=$NOM{$nom};
        if ( $version2 gt $version )
          {
            print "$file2 is newer than $file\n";
            unlink($file);
          }
        else 
          {
            if ( $version2 lt $version )
              {
                print "$file is newer than $file2\n";
                unlink($file2);
                $VERSION{$nom}=$version;
                $BUILDVERS{$nom}=$buildvers;
                $FILE{$nom}=$file;
                $NOM{$nom}=$nom;
              }
            else
              {
                # print "$file2 $file same version version\n";
                if ( $buildver2 > $buildvers )
                  {
                    print "$file2 : $buildver2 est mieux que $file : $buildvers\n";
                    unlink($file);
                  }
                else
                  {
                    print "$file2 : $buildver2 is older than $file : $buildvers\n";
                    unlink($file2);
                    $VERSION{$nom}=$version;
                    $BUILDVERS{$nom}=$buildvers;
                    $FILE{$nom}=$file;
                    $NOM{$nom}=$nom;
                  }
              }
          }
      }
    else
      {
        $VERSION{$nom}=$version;
        $BUILDVERS{$nom}=$buildvers;
        $FILE{$nom}=$file;
        $NOM{$nom}=$nom;
      }
  }

# we do the hard thing here 
# 
system("$redhatdir/misc/src/install/genhdlist $redhatdir"); 


Page suivante Page précédente Table des matières