apt-cyg install 返回 md5sum 错误

apt-cyg install 返回 md5sum 错误

自从我上次重新安装 windows 和 cygwin 后,apt-cyg 就停止工作了。它一直告诉我

"md5sum: standard input: no properly formatted MD5 checksum lines found".

什么原因可能导致此问题?如果我想了解有关此错误的更多信息,我应该去哪里查找?


编辑:当我开始调试问题时,我意识到生成的 md5 代码对于 md5 代码(通常为 32 个字符)来说太长(128 个字符)。由于我使用的是 64 位版本的 cygwin,所以这可能是问题的根源。但如何解决呢?

答案1

从 2.867 版开始,cygwin 已转为使用 sha512 校验,但当前版本的 apt-cyg 仍在使用md5sum而不是sha512sum进行完整性验证。这就是问题的原因。

要解决此问题,请将md5sum文件“apt-cyg”第 323 行和 326 行中的 更改为sha512sum。它应该可以工作。

该问题已在拉取请求 #37 中得到解决:https://github.com/transcode-open/apt-cyg/pull/38。但这个改变还没有实施到主分支。


编辑:

如果你使用 Windows 程序编辑该文件,换行符可能会被更改,并导致以下问题

/usr/bin/apt-cyg: line 25: $'\r': command not found

因为 bash 将换行符识别为命令。我建议使用 vim、emacs 或 gedit 等 Linux 编辑器进行更改。或者您可以直接使用apt-cyg在拉取请求 #37 中上传的文件:https://github.com/jfritz/apt-cyg/blob/97848cfa9ae05297c0b01daeb8ad08a70bc3b77b/apt-cyg

答案2

当前版本的 apt-cyg 仍然使用 md5sum 而不是 sha512sum 进行完整性验证。

343:#digactual=`md5sum $file | awk '{print $1}'`
344:digactual=`sha512sum $file | awk '{print $1}'`

要解决此问题,请将文件“apt-cyg”第 343 行中的 md5sum 更改为 sha512sum。对我来说,这个方法有效。

答案3

从你的 shell 执行此命令:

perl -i.bak -pe 's{md5sum}{sha512sum}g'  /usr/local/bin/apt-cyg

然后重试。

相关内容