美文网首页
bsdiff工具

bsdiff工具

作者: 天蝎座无悔 | 来源:发表于2020-03-17 19:27 被阅读0次

一、准备c库

1、下载bsdiff库,里面包括bsdiff.cbspatch.c,前者用于生产差分包,后者用于合并差分包的。

2、下载bzip2库,里面包括的大量文件,只有.c.h文件是有需要的,其他都可以删掉;

二、集成C库

1、解压bsdiff

2、cd到bsdiff下ls,跟刚才解压看到的一样:bsdiff.1 bsdiff.c bspatch.1 bspatch.c Makefile

3、直接在该目录下运行make命令,结果:

Makefile:13: *** missing separator. Stop.

这时候需要修改Makefile

4.修改MakeFile:vim Makefile,使用tab增加第13行和15行缩进

5、再make:bsdiff.c:33:19: fatal error: bzlib.h: No such file or directory

说缺少bzip库,bzip是压缩工具,可以去下载bzip源码进行编译,也可以采用直接安装系统环境的方式:

Ubuntu: apt install libbz2-dev

Centos: yum -y install bzip2-devel.x86_64

Mac: brew install bzip2

三、下载bzip源码编译

1、将bzip2解压后保留.c和.h文件,bzip2目录置于bsdiff目录下

2、修改bsdiff.c和bspatch.c,增加下面代码

#include "bzip2/bzlib.c"

#include "bzip2/crctable.c"

#include "bzip2/compress.c"

#include "bzip2/decompress.c"

#include "bzip2/randtable.c"

#include "bzip2/blocksort.c"

#include "bzip2/huffman.c"

3、编译成功

生产可执行文件bsdiff和bspatch

四、运行

1、bsdiff

./bsdiff 源文件 目标文件 patch

会将源文件和目标文件进行比较,生成差分包patch

2、bspatch

./bspatch 源文件 目标文件 patch

会使用patch和源文件进行合成,生成目标文件

参考文档:

https://www.jianshu.com/p/0b9ae76b356a

https://www.jianshu.com/p/4ca7933185f7

下载两个工具的源码。

bsdiff:http://www.daemonology.net/bsdiff/bsdiff-4.3.tar.gz

bzip2:http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz

相关文章

网友评论

      本文标题:bsdiff工具

      本文链接:https://www.haomeiwen.com/subject/bedxyhtx.html