* [EMAIL PROTECTED] <[EMAIL PROTECTED]> [2007-09-25 12:42:29+0400] > Перед $subj возникли 2 вопроса. > > 1) Есть ли возможность получить общий _размер_ всех пакетов (не просто > список), > которые будут/должны быть обновлены/установлены по "aptitude dist-upgrade"? > > 2) Возможно ли ограничить "aptitude dist-upgrade" на предмет трафика > (размера конечно, не скорости) > или может можно как-то задать/ограничить "обновляемые" категории, типа > admin, web, utils, devel, x11, ... ?
Писал энное время для себя скрипт. Возможно, Вам пригодится. Там дока в POD (perldoc deb-update.pl) Да, с тех пор я, конечно, сменил apt-get на aptitude :) -- Roman I. Cheplyaka http://ro-che.info/
#!/usr/bin/perl -w use strict; use Getopt::Std; our $VERSION = '1.0'; our ($opt_y, $opt_q, $opt_f, $opt_c, $opt_d); getopts('yqdf:c:'); print "Getting"; print " first $opt_c" if $opt_c; print " packages"; print " which match filter $opt_f" if $opt_f; print ".\n"; # Getting list of packages my $apt_get = $opt_d ? 'dist-upgrade' : 'upgrade'; open APT, "apt-get -s $apt_get|" or die "Cannot access apt-get: $!\n"; my @packages; while (<APT>) { next unless /^Inst (\S*)/; my $cur_package = $1; next if $opt_f && ($cur_package !~ /$opt_f/oi); push @packages, $cur_package; last if $opt_c && (@packages >= $opt_c); } close APT; # Printing info unless (@packages) { print "Sorry, no packages found.\n" unless $opt_q; exit; } unless ($opt_q) { print "I've found ". scalar @packages ." packages:\n"; print join("\n", @packages), "\n"; } unless ($opt_q || $opt_y) { print "Do you want to continue [Y/n]?\n"; my $answer = <STDIN>; chomp $answer; if ($answer && ($answer !~ /^y/i)) { exit; } } exec "apt-get", 'install', @packages; =pod =head1 NAME Deb-Update -- partially update your Debian distro =head1 SYNOPSIS B<deb-update.pl> [I<options>] =head1 DESCRIPTION I have no ability to keep my PC running for a days, so I'm afraid of B<apt-get upgrade> command which suggests me to update thousand of packages. B<deb-update> is intended to make it easy to partially update the distro. You can specify regex filter for packages and maximum number of them to be updated. =head1 OPTIONS =over 5 =item B<-f> I<FILTER> Select only packages that match Perl regex I<FILTER>. =item B<-c> I<COUNT> Select only first I<COUNT> packages. =item B<-y> Do not ask stupid questions. =item B<-q> Be quiet. =item B<-d> Use B<apt-get dist-upgrade> instead of B<apt-get upgrade> when looking for packages to upgrade. =back =head1 NOTE B<deb-update.pl> invokes B<apt-get>, so perhaps you'll want to run it as root. =head1 LICENSE L<perlartistic> =head1 AUTHOR Roman Cheplyaka E<lt>[EMAIL PROTECTED]<gt> =cut
signature.asc
Description: Digital signature