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: