我有两组二进制文件(某个操作之前和之后),我需要对这两组文件进行差异比较,并对第一组文件进行修补以获得第二组文件。
如何使用预装的 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
使用。