apt-mirror
我在突然终止(我的 VPN 连接被终止)后无法恢复。
我收到一条错误消息,指出某些apt-mirror
文件已损坏。也许是索引文件?我尝试删除所有下载的文件,但没有效果。
错误输出如下所示:
$ sudo apt-mirror
Downloading 24 index files using 5 threads...
Begin time: Fri Sep 5 09:36:09 2014
[5]... [4]... [3]... [2]... [1]... [0]...
End time: Fri Sep 5 09:36:09 2014
Proceed indexes: [P
gzip: stdin: not in gzip format
P
gzip: stdin: not in gzip format
P
gzip: stdin: not in gzip format
P
gzip: stdin: not in gzip format
]
0.0 bytes will be downloaded into archive.
Downloading 0 archive files using 0 threads...
我在网上找到了一些答案,但都无济于事。我想知道这些 gzip 文件存储在哪里。然后应该可以删除它们并重新启动 apt-mirror。
答案1
“...gzip:stdin:不是 gzip 格式...”的解决方案:
我使用 Ubuntu 16.04 LTS 64 位版本。您只需删除“skel”文件夹,然后再次运行 apt-mirror!
$ sudo rm -rf /var/spool/apt-mirror/skel/
$ apt-mirror
我不知道为什么但它对我有用。
答案2
解决方案相当简单,但我花了一段时间才找到答案。我必须删除apt-mirror
它的所有配置文件等。
解决方案:
$ sudo apt-get --purge remove apt-mirror
报告了一些错误,其中没有留下空目录,即dkpg
报告了一些错误。
然后我删除了如下目录:
$ sudo rm -rf /var/spool/apt-mirror
请注意,可能还有其他目录无法删除。因此,您必须检查第一个命令的输出。
答案3
看起来这个脚本解决了我的问题https://github.com/apt-mirror/apt-mirror/issues/113
检查脚本的修改版本(向下滚动)
更新提供详细信息。
我使用了 rinnaz 发布的脚本。将其保存为 *.sh 文件并运行。
/bin/bash #!/bin/bash # apt 镜像的组合解决方案来自:https://github.com/apt-mirror/apt-mirror/issues/49,https://github.com/apt-mirror/apt-mirror/issues/102 # 我必须创建此文件,以解决无法下载 DEP-11 @2 文件的问题 # 所以我所做的就是手动运行 apt mirror,然后每次下载其他图标文件 # Grep 将搜索以“set base_path”开头的行 # 然后我们修剪所有多余的空格 # 然后我们用分隔符空格剪切字符串并取第三个值 数据文件夹 = $(grep -F“set base_path”/etc/apt/mirror.list | tr -s“”| cut -d' '-f3) echo "/etc/apt/mirror.list 中设置的基本文件夹路径是:$dataFolder" apt-镜像 回声 echo -n "您是否要检查 MD5 总数并且下载失败(5 秒内自动 Y)?[Y/n]" 回声 read -t 5 答案 退出状态=$? 如果 [ $exit_status -ne 0 ] || [ "$answer" != "${answer#[Yy]}" ];则 FAILEDPACKAGES="" echo“使用文件读取并检查 MD5 校验和:$dataFolder/var/MD5” #cd $数据文件夹/镜像 rm -f FAILED_MD5.txt echo "失败文件将存储在:$(PWD)/FAILED_MD5.txt" 当 IFS='' 读取 -r 行 || [[ -n "$line" ]]; 执行 #echo "检查:$line" 总和=$(echo $line | cut -d' ' -f1) 文件名=$(echo $line | cut -d' ' -f2) 回显“$sum $dataFolder/mirror/$filename”|md5sum -c - 结果=$? 如果 [ $RESULT -ne 0 ];那么 回显“$dataFolder/mirror/$filename”>>FAILED_MD5.txt wget -O $数据文件夹/镜像/$文件名 $文件名 回显“$sum $dataFolder/mirror/$filename”|md5sum -c - 子结果=$? 如果 [ $SUBRESULT -ne 0 ];那么 echo "抱歉,文件 $dataFolder/mirror/$filename 的校验再次失败" $FAILEDPACKAGES+="$dataFolder/mirror/$filename 再次失败,抱歉无法帮助" 菲 菲 完毕