Álljunk vissza X.org 7.0-ra, lévén a 7.1-ben jóformán olvashatatlanok a fontok

Boobaa küldte be 2006. 05. 27., szombat, 09:44 időpontban

Ehhez ugyebár ki kéne deríteni a pacman cache-ből, hogy mely csomagoknak létezik alacsonyabb verziószámú változata a telepítettnél. Íme egy kis perl szkript hozzá.

#!/usr/bin/perl

use strict;
use Text::Tabs;
$tabstop = 30;
my $pkgdir = "/var/cache/pacman/pkg/";
my @pkgfiles = glob "$pkgdir*.fpm";
my %pkgs;
foreach (@pkgfiles) {
 m/$pkgdir(.*)-(.+)-(.+)-(.+)\.fpm/;
 if($pkgs{$1}) {
 # print expand("$1\talso has an older version in fpm: $pkgs{$1}\n");
 my $pkginsver = `pacman -Q $1 | awk '{ print \$2; }'`;
 if($pkginsver gt "$2-$3") {
  print expand("For $1\tyou may use $pkgs{$1}-$4.fpm\n");
  # print " instead of the installed $pkginsver";
  }
 }
 $pkgs{$1} = "$1-$2-$3";
}

Célszerűnek látszik a kimenetét átirányítani mondjuk a rev fájlba, amit aztán át kell nézni, lévén nem valószínű, hogy mindent vissza szeretnénk állítani, amiből létezik korábbi változat is. Ha már csak azon fpm-ek nevei vannak a fájlban, amit fel kéne tenni, akkor az alábbi egysoros segíthet:

for i in $(cat rev ); do sudo pacman -U /var/cache/pacman/pkg/$i; done

Természetesen jobb, szebb és gyorsabb lenne, ha perlből nem a pacmant, hanem a libalpm-et lehetne hívni, de tudomásom szerint ez a réteg még nem készült el.