如何使用标准 Ubuntu(Debian)工具执行二进制差异和修补?

如何使用标准 Ubuntu(Debian)工具执行二进制差异和修补?

我有两组二进制文件(某个操作之前和之后),我需要对这两组文件进行差异比较,并对第一组文件进行修补以获得第二组文件。

如何使用预装的 Ubuntu(或者更好的 Debian)工具进行修补?

我并不关心如何产生差异,因为它在我的开发机器上,但是修补是在基本的 Ubuntu/Debian 机器上执行的。

我知道bspatch,但它不是预装的。

  • 澄清1:二进制意味着该标准diff/patch工具不能使用;
  • 澄清2:using preinstalled tools暗示无法安装任何软件包。

答案1

根据的确切解释using standard [...] tools,一个有效且非常独立于平台的解决方案是在目标机器上下载并构建 bspatch。

bspatch 没有依赖项;它只需要 gcc(至少在 Ubuntu 上已预安装):

wget https://github.com/mendsley/bsdiff/archive/master.zip -O /tmp/bsdiff-master.zip
unzip /tmp/bsdiff-master.zip -d /tmp
cd /tmp/bsdiff-master
./autogen.sh
./configure
make

即可/tmp/bsdiff-master/bspatch使用。

相关内容