Je veux configurer un apt-mirror local sur mon serveur Ubuntu 16.04. Dans mon mirror.list
, Je n'ai téléchargé que les packages principaux et restreints, car je n'ai pas assez d'espace pour tout cela.
Après avoir téléchargé 20 Go de paquets, j'ai créé un slink dans /var/www/html
nommé ubuntu pour que je puisse accéder aux packages via Apache. Et finalement j'ai édité le sources.list
sur le client et modifié fr.archive.ubuntu.com
avec mon IP
. Mais quand je lance apt-get update
, sa montre ceci:
Et l'installation d'un package donne ceci:
Quelqu'un peut-il m'aider? Merci d'avance.
Si tu utilises apt-mirror v.0.5.1-1
comme moi. Ce problème peut être résolu en ajoutant DEP-11
téléchargement d'index dans /usr/bin/apt-mirror
après line 611
du fichier.
voici le code.
######################################################################################
## DEP-11 index download
%urls_to_download = ();
sub find_dep11_files_in_release
{
# Look in the dists/$DIST/Release file for the DEP-11 files that belong
# to the given component and architecture.
my $dist_uri = shift;
my $component = shift;
my $Arch = shift;
my ( $release_uri, $release_path, $line ) = '';
$release_uri = $dist_uri . "Release";
$release_path = get_variable("skel_path") . "/" . sanitise_uri($release_uri);
unless ( open STREAM, "<$release_path" )
{
warn( "Failed to open Release file from " . $release_uri );
return;
}
my $checksums = 0;
while ( $line = <STREAM> )
{
chomp $line;
if ($checksums)
{
if ( $line =~ /^ +(.*)$/ )
{
my @parts = split( / +/, $1 );
if ( @parts == 3 )
{
my ( $sha1, $size, $filename ) = @parts;
if ( $filename =~ m{^$component/dep11/(Components-${Arch}\.yml|icons-[^./]+\.tar)\.gz$} )
{
add_url_to_download( $dist_uri . $filename, $size );
}
}
else
{
warn("Malformed checksum line \"$1\" in $release_uri");
}
}
else
{
$checksums = 0;
}
}
if ( not $checksums )
{
if ( $line eq "SHA256:" )
{
$checksums = 1;
}
}
}
}
print "Processing DEP-11 indexes: [";
foreach (@config_binaries)
{
my ( $Arch, $uri, $distribution, @components ) = @{$_};
print "D";
if (@components)
{
$url = $uri . "/dists/" . $distribution . "/";
my $component;
foreach $component (@components)
{
find_dep11_files_in_release( $url, $component, $Arch );
}
}
}
print "]\n\n";
Push( @index_urls, sort keys %urls_to_download );
download_urls( "dep11", sort keys %urls_to_download );
foreach ( keys %urls_to_download )
{
s[^(\w+)://][];
s[~][%7E]g if get_variable("_tilde");
$skipclean{$_} = 1;
}
Exécutez ensuite à nouveau la mise à jour de votre serveur miroir. Ça devrait marcher.