portupgrade -arR не хотел обновлять, писал что надо написать pkgdb -aF - эта штука спрашивала всякую херню по 300 раз и работала долго
сделал такой скрипт, вроде бы работает, только на 100% не тестировал - ситуация может разная быть...
может что-то подправить надо...?
переделал скрипт, но не тестировал написал для того чтобы показать как можно сделать...
Код: Выделить всё
#!/usr/bin/perl
open (OPEN2, "portversion -o |");
@all_all = <OPEN2>;
#print @all;
my @all;
foreach (@all_all) {
my ($pname,$status) = split(/ /, $_, 2);
# print $status;
$pname = '/usr/ports/'.$pname;
$pname =~ s/^\s+//;
$pname =~ s/\s+$//;
push @all, $pname;
}
#print "@all_all\n";
my $port;
my @old;
my @no_old;
# while ( my $p = <OPEN2>) {
foreach my $p (@all_all) {
my ($pname,$status) = split(/ /,$p,2);
# print "$status\n";
if ($status =~ '>' || $status =~ '<') {
$pname = '/usr/ports/'.$pname;
$pname =~ s/^\s+//;
$pname =~ s/\s+$//;
push @old, $pname;
# print $pname;
} else {
$pname = '/usr/ports/'.$pname;
$pname =~ s/^\s+//;
$pname =~ s/\s+$//;
push @no_old, $pname;
}
}
#print "@old\n";
#$old[0];
#print '1111';
print $old[0];
print '1111';
@to_port = `cd $old[0] && make all-depends-list`;
#print "@to_port\n";
foreach (@to_port) {
$_ =~ s/^\s+//;
$_ =~ s/\s+$//;
}
my %seen;
@seen{@to_port} = ();
delete @seen{@no_old};
@dep2 = keys %seen;
print "@dep2\n";
Код: Выделить всё
#!/usr/bin/perl
open (OPERN, "portversion |");
@all=<OPERN>;
foreach (@all) {
my ($pp,$st) = split (/ /, $_, 2);
if ($st =~ '<') {
if ($pp =~ '^p5') {
print "$pp\n";
system("portupgrade -f $pp"); # == 0 )
}
}
}