[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Suppression partielle de /usr



Edouard G. Parmelan wrote:

> Ensuite, re-install Perl si nécessaire.  Je regarde pour le script
> magique.

Le voici, c'est du tout chaud mais bon, ça devrait t'aider.

Je pense que tu dois avoir dpkg et perl sur la disquette rescue, dans
ce cas, passe par cette méthode et changes $root pour le point de montage
de '/' en temps normal, n'oublie pas de monter tes autres partitions.

Voilà ce qu'il donne chez moi (j'ai supprimer les lignes de vim-rt)

    $ sudo dpkg-chk
    ldso: Missing /sbin/ldconfig.new
    locales: Missing /usr/share/i18n/charmaps/NF_Z_62-010-1973
    perl-base: Missing /usr/bin/perl.dist
    vim-rt: Missing /usr/share/vim/doc
    ...
    vim-rt: Missing /usr/doc/vim-rt/quotes.txt.gz
    wwwoffle: Missing /var/spool/wwwoffle/html/messages/PasswordNotAllowed.html
    wwwoffle: Missing /var/spool/wwwoffle/html/messages/ControlDelete.html
    wwwoffle: Missing /var/spool/wwwoffle/html/messages/AddInfoRefresh.html
    lesstifg: Missing /usr/X11R6/lib/libMrm.so.1.2
    lesstifg: Missing /usr/X11R6/lib/libXm.so.1.2
    xbase-clients: Missing /usr/X11R6/lib/X11/xinit/xserverrc
    wmaker: Missing /usr/X11R6/man/man1/WPrefs.1x.gz
    wmaker: Missing /usr/share/man/man8/upgrade-windowmaker-defaults.8.gz
    autofs: Missing /etc/auto.amnt
    vflib2: Missing /usr/share/man/man1/bdfindex.1.gz
    vflib2: Missing /usr/share/man/man1/fwindex.1.gz
    vflib2: Missing /usr/share/man/man1/ktest.1.gz
    vflib2: Missing /usr/share/man/man1/ttindex.1.gz

    Missing files in packages: ldso, locales, perl-base, vim-rt, wwwoffle, lesstifg,

Pour les réinstaller, il faudra que tu joues avec les options --root,
--admindir et/ou --instdir, là je ne sais pas ce qui est nécessaire.

Bon courage...

Je le mets aussi sur http://egp.free.fr/debian.
-- 
Edouard G. Parmelan
http://egp.free.fr
#! /usr/bin/perl
#
# Check missing files in installed packages.
#
# Author: Edouard G. Parmelan  <egp@free.fr>
#
# Fri Mar 10 12:47:04 CET 2000
#

my $root = '';
my $dpkg_info_dir = '/var/lib/dpkg/info';
my $verbose = 0;

my @packages = &get_installed_packages ($dpkg_info_dir);
my @corrutped;

for my $pkg (@packages) {
    print "Check $pkg\n"
	if $verbose;

    my @missing = &check_missing_files ($pkg);
    for my $file (@missing) {
	print "$pkg: Missing $file\n";
    }
    push (@corrupted, $pkg)
	if (@missing)
}

if (@corrupted) {
    print "\nMissing files in packages: ";
    print join (', ', @corrupted);
    print "\n";
    exit 1;
}
exit 0;


# Retreive list of installed packages
sub get_installed_packages {
    my ($dir) = @_;
    my @packages;
    local *DIR;

    opendir (DIR, "$root/$dir")
	or die "can't opendir $dir: $!";
    @packages = grep { m/\.list$/ && -e "$root/$dir/$_" } readdir (DIR);
    closedir (DIR);
    return map { s/\.list$//; $_ } @packages;
}

# check missing files in package
sub check_missing_files {
    my ($package) = @_;
    my $file;
    my @missing;
    local *FH;

    open (FH, "$root/$dpkg_info_dir/$package.list")
	or die "can't open package $package file list: $!";
    @missings = grep { chomp; ! -e "$root/$_" } <FH>;
    close (FH);
    return @missings;
}

Reply to: