在 Linux 中有没有办法计算两个二进制文件(即两个可执行文件)之间的差异?
让我更具体一点:我想知道如何计算 Linux 中两个版本的可执行文件或应用程序或软件之间的差异(差异差异)。例如,如果我必须只下载和安装现有应用程序或二进制文件的更新部分(最新版本和旧版本之间的差异),我该如何在 Linux 中执行此操作。
在 Linux 中有没有办法计算两个二进制文件(即两个可执行文件)之间的差异?
让我更具体一点:我想知道如何计算 Linux 中两个版本的可执行文件或应用程序或软件之间的差异(差异差异)。例如,如果我必须只下载和安装现有应用程序或二进制文件的更新部分(最新版本和旧版本之间的差异),我该如何在 Linux 中执行此操作。
您可以使用工具bsdiff和它的配套 bspatch 来进行有效的二进制文件差异和补丁。
如果你想获得更小的补丁,你可以看看谷歌浏览器中的Courgette。它建立在 bsdiff 之上,但它们通过在执行 diff 之前实际反汇编它们来提供更有效的可执行文件 diff。它不是作为一个单独的项目分发的,但是您可以从Chromium 源代码库中获取它(如何签出代码)。
还有xdelta工具,它的使用时间比 bsdiff 长。根据 bsdiff 的作者的说法,它的效率要低得多;补丁出来更大。它的优点是它支持标准的 VCDIFF 格式 ( RFC 3284 ),其他几个工具也支持该格式,因此如果您需要使用此类其他工具,它会更有用。
尝试cksum - 表明它们是相同的