Solución:

Solución:

Estoy usando apt-mirrorpara crear un espejo local de Ubuntu. Tiene éxito al descargar archivos desde otro espejo (hay alrededor de un par de gigabytes cada semana), pero nunca elimina nada ni indica archivos que se pueden eliminar. Es posible que eventualmente me quede sin espacio libre.

La salida de apt-mirrorsiempre incluye

Se pueden liberar 0,0 bytes en 0 archivos y 0 directorios.

Ejecute /var/spool/apt-mirror/var/clean.sh para este propósito.

Se clean.shejecuta cada vez que apt-mirrorse ejecuta, porque el contenido de /var/spool/apt-mirror/var/postmirror.shes solo

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

La ejecución clean.shproduce esta salida:

Eliminando 0 archivos innecesarios [0 bytes]... hecho.

Eliminando 0 directorios innecesarios... listo.

Aquí está mi mirror.listarchivo:

############# 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

Respuesta1

Solución:

Cambie la última línea a:

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

Explicación:

El problema está en su última línea donde define qué repositorio limpiar. cleantoma el nombre del repositorio en el que se debe eliminar:

## 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;
}

Los directorios donde se almacenan los archivos tienen el formato /var/spool/apt-mirror/mirror/mirror.domain, por lo que para decidir qué directorios limpiar, debe coincidir con cualquiera de estos directorios; si no es así, no haga nada.

Por eso, cambiar la URL para que coincida con las demás es la solución.

información relacionada