Hi, >>"Jim" == Jim <[EMAIL PROTECTED]> writes: Jim> As intimated to below, I (who has no official vote :) think that Jim> debian packages should have enough information in them to allow Jim> the determination of how much disk space would be used by Jim> installing, or freed by removing, said package.
Yes. The issue is the time required to gather that information. For larger packages like xbooks, that may well take over a minute on slow machines, which is unacceptable if a large number of packages are to be ugdated. Jim> If this were the case, then deity, dselect or something else Jim> could also show the space left on each mounted partition, to Jim> better allow a debian user to definitively determine whether s/he Jim> had the space required to install any given set of packages at a Jim> glance. Jim> In my opinion, this would be _very_ helpful. If packages were to include a du -S output (unlike the du -s output included by some helper packages before), this script, a modification of Kai' script, could be used to gather the data. This has yet to be discussed and passed into policy. patience. manoj #! /usr/bin/perl -w package Check_DU; use strict; use diagnostics; use Carp; require 5.001; sub check_du { my %data; # find out the mount points of the devices open DF, "df |" or die "Could not run df:$!" ; while (<DF>) { m!/dev.*\s(/\S*)! or next; my $device_no = (stat($1))[0]; $data{$device_no}{'Name'} = $1; } close DF or die "Could not close pipe from df:$!" ; # read all the du -S files given on the command line while (<>) { my ($size, $dir_name) = split /\s+/, $_; my $device_no = (stat("/$dir_name"))[0]; $data{$device_no}{'Size'} += $size; } return \%data; } sub print_du { my %params = @_; croak("Need argument 'Size Data'") unless defined $params{'Size Data'}; for (sort keys %{$params{'Size Data'}}) { next unless $params{'Size Data'}{$_}{'Size'}; printf "%10d %s\n", $params{'Size Data'}{$_}{'Size'}, $params{'Size Data'}{$_}{'Name'}; } } sub test_du { my $data = &check_du(); &print_du('Size Data' => $data); } { # Execute simple test if run as a script package main; no strict; eval join('',<main::DATA>) || die "$@ $main::DATA" unless caller(); } 1; __END__ # Test the library &Check_DU::test_du(); 1; -- FIELD TESTED: manufacturer lacks test equipment. Manoj Srivastava <[EMAIL PROTECTED]> <http://www.datasync.com/%7Esrivasta/> Key C7261095 fingerprint = CB D9 F4 12 68 07 E4 05 CC 2D 27 12 1D F5 E8 6E