Solução:

Solução:

Estou usando apt-mirrorpara criar um espelho local do Ubuntu. Ele consegue baixar arquivos de outro espelho (há cerca de alguns gigabytes por semana), mas nunca remove nada ou indica arquivos que podem ser excluídos. Posso ficar sem espaço livre, eventualmente.

A saída de apt-mirrorsempre incluir

0,0 bytes em 0 arquivos e 0 diretórios podem ser liberados.

Execute /var/spool/apt-mirror/var/clean.sh para esta finalidade.

O clean.shé executado toda vez que apt-mirroré executado, porque o conteúdo de /var/spool/apt-mirror/var/postmirror.shé apenas

/var/spool/apt-mirror/var/clean.sh

A execução clean.shproduz esta saída:

Removendo 0 arquivos desnecessários [0 bytes]... pronto.

Removendo 0 diretórios desnecessários... pronto.

Aqui está meu mirror.listarquivo:

############# config ##################
#
# set base_path    /var/spool/apt-mirror
#
# set mirror_path  $base_path/mirror
# set skel_path    $base_path/skel
# set var_path     $base_path/var
# set cleanscript $var_path/clean.sh
# set defaultarch  <running host architecture>
# set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
set nthreads     20
set _tilde 0
#
############# end config ##############

deb-i386 http://ubuntu.c3sl.ufpr.br/ubuntu/ trusty main restricted universe multiverse 
deb-i386 http://ubuntu.c3sl.ufpr.br/ubuntu/ trusty-updates main restricted universe multiverse 
deb-i386 http://ubuntu.c3sl.ufpr.br/ubuntu/ trusty-backports main restricted universe multiverse 
deb-i386 http://ubuntu.c3sl.ufpr.br/ubuntu/ trusty-security main restricted universe multiverse 

deb-amd64 http://ubuntu.c3sl.ufpr.br/ubuntu/ trusty main restricted universe multiverse 
deb-amd64 http://ubuntu.c3sl.ufpr.br/ubuntu/ trusty-updates main restricted universe multiverse 
deb-amd64 http://ubuntu.c3sl.ufpr.br/ubuntu/ trusty-backports main restricted universe multiverse 
deb-amd64 http://ubuntu.c3sl.ufpr.br/ubuntu/ trusty-security main restricted universe multiverse 

clean http://archive.ubuntu.com/ubuntu

Responder1

Solução:

Altere a última linha para:

clean http://ubuntu.c3sl.ufpr.br/ubuntu/

Explicação:

O problema está na sua última linha onde define qual repositório limpar. cleanleva o nome do repositório do qual deve remover:

## Parse config

open CONFIG, "<$config_file" or die("apt-mirror: can't open config file ($config_file)");
while (<CONFIG>)
{
    ## Here we detect the line starting with "clean" and process the URL
    if ( $config_line eq "clean" )
    {
        $config_line[0] =~ s[^(\w+)://][];
        $config_line[0] =~ s[/$][];
        $config_line[0] =~ s[~][%7E]g if get_variable("_tilde");
        $clean_directory{ $config_line[0] } = 1;
        next;
    }
    die("apt-mirror: invalid line in config file ($.: $config_line ...)");
}
## we store the results in the "clean_directory" variable, now we will
## loop through all of them:
foreach ( keys %clean_directory )
{
    process_directory($_) if -d $_ && !-l $_;
}
## and proceed to take the actions:
sub process_directory
{
    my $dir       = shift;
    my $is_needed = 0;
    return 1 if $skipclean{$dir};
    opendir( my $dir_h, $dir ) or die "apt-mirror: can't opendir $dir: $!";
    foreach ( grep { !/^\.$/ && !/^\.\.$/ } readdir($dir_h) )
    {
        my $item = $dir . "/" . $_;
        $is_needed |= process_directory($item) if -d $item && !-l $item;
        $is_needed |= process_file($item)      if -f $item;
        $is_needed |= process_symlink($item)   if -l $item;
    }
    closedir $dir_h;
    push @rm_dirs, $dir unless $is_needed;
    return $is_needed;
}

Os diretórios onde os arquivos estão armazenados estão no formato /var/spool/apt-mirror/mirror/mirror.domain, portanto, para decidir quais diretórios limpar, ele deve corresponder a qualquer um desses diretórios; caso contrário, não faça nada.

É por isso que mudar a URL para corresponder às outras é a solução.

informação relacionada