如何计算linux中两个二进制文件(即两个可执行文件)之间的差异

Linux中有没有办法计算两个二进制文件(即两个可执行文件)之间的差异?

让我更具体一点:我想知道如何计算Linux中两个版本的可执行文件或应用程序或软件之间的增量(delta差异).例如,如果我必须仅下载并安装现有应用程序或二进制文件的更新部分(最新版本和旧版本之间的差异),我该如何在Linux中执行此操作.

最佳答案
您可以使用工具bsdiff和它的配套bspatch来执行二进制文件的高效差异和修补程序.

如果您想获得更小的补丁,可以查看Google Chrome中的Courgette.它建立在bsdiff之上,但它们通过在进行差异之前实际拆解它们来提供更高效的可执行文件差异.它不是作为一个单独的项目发布的,但你可以从Chromium source repository(如何到check out the code)获得它.

还有xdelta工具,比bsdiff更长.根据bsdiff的作者,效率相当低;补丁更大.它的优点是它支持标准VCDIFF格式(RFC 3284),它也受到其他几个工具的支持,所以如果你需要使用其他工具,它会更有用.

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...