tunasync-scripts icon indicating copy to clipboard operation
tunasync-scripts copied to clipboard

apt-sync.py增加跳过SHA-256 验证参数

Open yylbfyl opened this issue 1 year ago • 5 comments

新加了一个跳过文件 SHA-256 验证的参数。因为有些遗留的旧仓库很久不更新了,Release文件里的MD5Sum值和真实文件的SHA-256值不一样,会导致 apt-sync.py 跳过下载这些文件,但真实情况是需要下载这些文件的。用户可以在 command 里增加 --skip-checksum 参数来跳过 MD5Sum 验证,即可正常下载仓库里的文件。

yylbfyl avatar Aug 23 '24 02:08 yylbfyl

因为有些遗留的旧仓库很久不更新了,Release文件里的MD5Sum值和真实文件的SHA-256值不一样

如果不更新,理应所有文件都不变化,为什么会有这种情况呢?

Harry-Chen avatar Aug 23 '24 03:08 Harry-Chen

由于生成Release文件和更新deb包是两个独立的步骤,在一些少见的情况下,一些私有仓库会出现包被更新了,但是生成Release文件的脚本没有执行,导致Release文件里还是旧的MD5Sum值,比如我们公司内部的私有仓库有时就有这样的情况,但此时客户端又需要下载新的deb包,所以就增加了 --skip-checksum 参数,默认值是 false不跳过验证,由用户自己选择是否跳过 SHA-256 验证。

yylbfyl avatar Aug 23 '24 06:08 yylbfyl

但是仍有问题是,这样的仓库因为 checksum 不通过而让用户无法使用。

shankerwangmiao avatar Aug 23 '24 06:08 shankerwangmiao

默认值是 false不跳过验证,由用户自己选择是否跳过 SHA-256 验证。

~~很大的仓库每个文件都跑一遍 SHA256 需要不小的 IO 和 CPU 成本。这个选项应该默认和之前的行为保持一致(不验证)。~~

(抱歉理解错了,之前是只有新的包检查 sha256,这个 PR 是添加了跳过 sha256 检查的功能

taoky avatar Aug 23 '24 06:08 taoky

但是仍有问题是,这样的仓库因为 checksum 不通过而让用户无法使用。

我的私有仓库同步下来后,可以自己跑dpkg-scanpackages工具对新的deb包文件生成新的Release文件,在我的这一层达成一致。但不管怎么说,希望增加一个 MD5Sum 的开关,由用户自己去决定是否开启。

yylbfyl avatar Aug 23 '24 06:08 yylbfyl