apt-mirror下载索引文件不全的问题

文章介绍了在使用apt-mirror工具创建Ubuntu22.04镜像源后,遇到缺少dep11、cnf和binary-i386索引文件的问题,以及两种解决方案。方法一是修改apt-mirror脚本以下载缺失文件,方法二是手动使用wget批量下载缺失的索引文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导语

在使用apt-mirror工具下载ubuntu22镜像源导入内网后,apt-get update发现缺少dep11,cnf及binary-i386下的一些索引文件,导致更新失败,无法正常使用,在网上找到了两种方法来解决。

  • 环境 ubuntu 22.04.1

方法1

由于apt-mirror在2017年就停止了维护更新,之后出现的ubuntu20和ubuntu22更新了仓库的索引文件,apt-mirror没有办法兼容。所以可以通过修改apt-mirror脚本来下载缺失的文件。
使用管理员权限打开*/usr/bin/apt-mirror*。
在下面代码块中注释掉$uri =~ s/^([^@]+)?@?// if $uri =~ /@/;

sub sanitise_uri {

my $uri = shift; $uri =~ s[^(\w+)://][];

#$uri =~ s/^([^@]+)?@?// if $uri =~ /@/;

$uri =~ s&:\d+/&/&; # and port information

$uri =~ s/~/\%7E/g if get_variable("_tilde");

return $uri;

}

在下面代码中插入add_url_to_download( $url . $_ . "/cnf/Commands-" . $arch . ".xz" );

add_url_to_download( $url . $_ . "/binary-" . $arch . "/Release" );

add_url_to_download( $url . $_ . "/binary-" . $arch . "/Packages.gz" );

add_url_to_download( $url . $_ . "/binary-" . $arch . "/Packages.bz2" );

add_url_to_download( $url . $_ . "/binary-" . $arch . "/Packages.xz" );

add_url_to_download( $url . $_ . "/cnf/Commands-" . $arch . ".xz" );

add_url_to_download( $url . $_ . "/i18n/Index" );

保存后退出。重新启动apt-mirror。

方法二

手动下载缺失的索引文件。
找到一个脚本,可以使用wget批量下载文件。
下面代码可以批量下载cnf文件夹下的文件包,并自动下载目录结构。

$ vi cnf.sh
#!/bin/bash
for p in "${1:-focal}"{,-{security,updates}}\
/{main,restricted,universe,multiverse};do >&2 echo "${p}"
wget -q -c -r -np -R "index.html*"\
 "http://archive.ubuntu.com/ubuntu/dists/${p}/cnf/Commands-amd64.xz"
wget -q -c -r -np -R "index.html*"\
 "http://archive.ubuntu.com/ubuntu/dists/${p}/cnf/Commands-i386.xz"
done

参考

http://t.csdn.cn/t5Buh
https://www.linuxtechi.com/setup-local-apt-repository-server-ubuntu/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值