bsdiff的编译与使用

Posted by Hongjie Blog on April 28, 2019

bsdiff是一个差异包比较工具,可以用来实现增量更新.

前往下载页面

编译

Mac

  1. 解压下载的bsdiff-4.3.tar.gz

     tar -zxvf bsdiff-4.3.tar.gz
    
  2. 修改Makefile文件,修改后的文件内容如下:

     CFLAGS        +=    -O3 -lbz2
    
     PREFIX        ?=    /usr/local
     INSTALL_PROGRAM    ?=    ${INSTALL} -c -s -m 555
     INSTALL_MAN    ?=    ${INSTALL} -c -m 444
    
     all:        bsdiff bspatch
     bsdiff:        bsdiff.c
     bspatch:    bspatch.c
    
     install:
         ${INSTALL_PROGRAM} bsdiff bspatch ${PREFIX}/bin
         .ifndef WITHOUT_MAN
         ${INSTALL_MAN} bsdiff.1 bspatch.1 ${PREFIX}/man/man1
         .endif
    

即.ifndef WITHOUT_MAN,.endi语句f前面加TAB键进行缩进

  1. 在bspatch.c文件中加入#include <sys/types.h>

  2. 进入bsdiff-4.3目录,在终端下执行构建

     cd bsdiff-4.3
     make
    

命令执行成功,会在当前目录下生成bsdiff,bspatch文件

Ubuntu

在终端执行

sudo apt-get install bsdiff

执行完成后可以在/usr/bin目录下找到bsdiff,bspatch文件

使用

生成差异文件,常用于服务端生成差异包

bsdiff oldfile newfile patchfile

oldfile: 旧的文件

newfile:新的文件

patchfile:生成的差异文件

合并文件,常用于客户端根据差异包合并生成新的文件

bspatch oldfile newfile2 patchfile

oldfile:旧的文件

newfile2:生成的新的文件

patchfile:差异文件