# apt-lib.pl # Functions for installing packages from debian APT $apt_get_command = $config{'apt_mode'} ? "aptitude" : "apt-get"; $apt_search_command = $config{'apt_mode'} ? "aptitude" : "apt-cache"; # update_system_install([package]) # Install some package with apt sub update_system_install { local (@rv, @newpacks); local $update = $_[0] || $in{'update'}; local $cmd = $apt_get_command eq "apt-get" ? "$apt_get_command -y --force-yes -f install $update" : "$apt_get_command -y -f install $update"; print "",&text('apt_install', "$cmd"),"
\n"; print "
";
$update = join(" ", map { quotemeta($_) } split(/\s+/, $update));
&additional_log('exec', undef, $cmd);
&open_execute_command(CMD, "yes Yes | $cmd 2>&1", 1);
while() {
if (/setting\s+up\s+(\S+)/i && !/as\s+MDA/i) {
push(@rv, $1);
}
elsif (/packages\s+will\s+be\s+upgraded/i ||
/new\s+packages\s+will\s+be\s+installed/i) {
print;
$line = $_ = ;
$line =~ s/^\s+//; $line =~ s/\s+$//;
push(@newpacks, split(/\s+/, $line));
}
print;
}
close(CMD);
if (!@rv && $config{'package_system'} ne 'debian' && !$?) {
# Other systems don't list the packages installed!
@rv = @newpacks;
}
print " \n";
if ($?) { print "$text{'apt_failed'}\n"; } else { print "$text{'apt_ok'}
\n"; } return @rv; } # update_system_form() # Shows a form for updating all packages on the system sub update_system_form { print &ui_subheading($text{'apt_form'}); print "
\n"; } # update_system_resolve(name) # Converts a standard package name like apache, sendmail or squid into # the name used by APT. sub update_system_resolve { local ($name) = @_; return $name eq "dhcpd" ? "dhcp3-server" : $name eq "bind" ? "bind9" : $name eq "mysql" ? "mysql-client mysql-server mysql-admin" : $name eq "apache" ? "apache2" : $name eq "postgresql" ? "postgresql postgresql-client" : $name eq "openssh" ? "ssh" : $name; } # update_system_available() # Returns a list of package names and versions that are available from YUM sub update_system_available { local (@rv, $pkg); &execute_command("$apt_get_command update"); &open_execute_command(DUMP, "apt-cache dump", 1, 1); while(