turnkeylinux for PVE 元数据 aplinfo.dat 内容不正确
https://mirrors.ustc.edu.cn/turnkeylinux/metadata/pve/aplinfo.dat 此文件内的各镜像实际下载地址依然是 turnkey官方服务器地址, 未正确替换未ustc 的镜像地址
建议在同步完官方镜像后, 替换 aplinfo.dat 内的 镜像地址
sed -i"s#http://mirror.turnkeylinux.org/turnkeylinux/images#https://mirrors.ustc.edu.cn/turnkeylinux/images#g"
我看了一下,aplinfo.dat 在相同目录下有个签名文件 aplinfo.dat.asc。如果修改了 aplinfo.dat 的内容,可能签名校验不会通过。
感谢回复, 但是如果不替换实际镜像地址, 这个mirror就完全没有意义了
我现在在 PVE 6.2 下面,是 手动 替换本地的 aplinfo.dat 内容. 实际使用中,目前没有发现 PVE会校验 aplinfo.dat.asc
@taoky 我确实发现了校验 asc 的逻辑, 而且不能简单的修改 aplinfo.dat 还有对 aplinfo.dat.gz 的校验. 看来,只能硬改本地hosts的办法了.
`my $aplsrcurl = "$aplinfo->{url}/$aplinfo->{file}.gz"; my $aplsigurl = "$aplinfo->{url}/$aplinfo->{file}.asc"; my $host = $aplinfo->{host};
my $tmp = "$aplinfodir/pveam-${host}.tmp.$$";
my $tmpgz = "$tmp.gz";
my $sigfn = "$tmp.asc";
eval {
if (url_get($ua, $aplsigurl, $sigfn, $logfd) != 0) {
die "update failed - no signature file '$sigfn'\n";
}
if (url_get($ua, $aplsrcurl, $tmpgz, $logfd) != 0) {
die "update failed - no data file '$aplsrcurl'\n";
}
eval { run_command(["gunzip", "-f", $tmpgz]) };
die "update failed: unable to unpack '$tmpgz'\n" if $@;
# verify signature
my $trustedkeyring = "/usr/share/doc/pve-manager/trustedkeys.gpg";
my $cmd = "/usr/bin/gpgv -q --keyring $trustedkeyring $sigfn $tmp";
my $logfunc = sub { logmsg($logfd, "signature verification: $_[0]"); };
eval {
run_command($cmd, outfunc => $logfunc, errfunc => $logfunc);
};
die "unable to verify signature - $@\n" if $@;
# test syntax
eval { read_aplinfo($tmp, {}, $aplinfo->{url}, 1) };
die "update failed: $@" if $@;
rename($tmp, "$aplinfodir/$host") or
die "update failed: unable to store data: $!\n";
logmsg($logfd, "update successful");
};
`
https://github.com/turnkeylinux/tracker/issues/1963
我联系turnkeylinux那边,他们给我提供了非常不错的方案,增加个任务,在同步完成后替换了镜像地址,我已经验证确实好用 还是自己没学好英文,是非常基础简单的解决方案,可惜自己是文盲。另外对方大佬真是非常好且耐心
我联系turnkeylinux那边,他们给我提供了非常不错的方案,增加个任务,在同步完成后替换了镜像地址,我已经验证确实好用 还是自己没学好英文,是非常基础简单的解决方案,可惜自己是文盲。另外对方大佬真是非常好且耐心
感谢!相关帮助文档已经添加:https://mirrors.ustc.edu.cn/help/turnkeylinux.html