1.10.28 6.28. Bzip2-1.0.3

优质
小牛编辑
117浏览
2023-12-01

Bzip2 包含了对文件进行压缩和解压缩的工具,对于文本文件,bzip2 比传统的 gzip 拥有更高压缩比。

预计编译时间: 少于 0.1 SBU所需磁盘空间: 5.3 MB

6.28.1. 安装 Bzip2

下面的补丁可以为这个软件包安装相应的文档:

patch -Np1 -i ../bzip2-1.0.3-install_docs-1.patch

bzgrep 命令并不将传递给它的文件名中的 '|' 和 '&' 进行转义,这就会允许别有用心的用户执行任意命令。下面的补丁可以解决这个问题:

patch -Np1 -i ../bzip2-1.0.3-bzgrep_security-1.patch

bzdiff 脚本仍然会使用原来的 tempfile 程序。可以使用 mktemp 来替换:

sed -i '[email protected] -d /tmp -p [email protected] -p /[email protected]' bzdiff

为编译 Bzip2 做准备:

make -f Makefile-libbz2_so
make clean

make 参数的含义:

-f Makefile-libbz2_so

这会采用一个另外一个 Makefile 来编译 Bzip2,也就是这里的 Makefile-libbz2_so 文件,它创建一个动态链接库 libbz2.so ,然后把Bzip2的工具都链接到这个库上。

编译并测试软件包:

make

如果重新安装Bzip2,必须首先执行 rm -vf /usr/bin/bz* ,否则下面的 make install 会出错。

安装Bzip2:

make install

bzip2 二进制共享库拷贝到 /bin 目录,创建必要的符号链接,再做一些清理工作:

cp -v bzip2-shared /bin/bzip2
cp -av libbz2.so* /lib
ln -sv ../../lib/libbz2.so.1.0 /usr/lib/libbz2.so
rm -v /usr/bin/{bunzip2,bzcat,bzip2}
ln -sv bzip2 /bin/bunzip2
ln -sv bzip2 /bin/bzcat

6.28.2. Bzip2 的内容

安装的程序: bunzip2(→bzip2), bzcat(→bzip2), bzcmp, bzdiff, bzegrep, bzfgrep, bzgrep, bzip2, bzip2recover, bzless, bzmore安装的库: libbz2.{a,so}

简要描述

bunzip2解压使用 bzip2 压缩的文件
bzcat解压缩指定的文件到标准输出
bzcmp对 bzip2 压缩的文件运行 cmp 命令
bzdiff对 bzip2 压缩的文件运行 diff 命令
bzgrep对 bzip2 压缩的文件运行 grep 命令
bzegrep对 bzip2 压缩的文件运行 egrep 命令
bzfgrep对 bzip2 压缩的文件运行 fgrep 命令
bzip2使用 Burrows-Wheeler 块排列文本压缩算法和霍夫曼编码来压缩文件。压缩比要大于 gzip 工具使用的基于"Lempel-Ziv"的压缩算法(如 gzip 格式),接近 PPM 统计压缩算法族的压缩比。
bzip2recover试图从被破坏的 bzip2 文件中恢复数据
bzless对 bzip2 压缩的文件运行 less 命令
bzmore对 bzip2 压缩的文件运行 more 命令
libbz2*利用 Burrows-Wheeler 算法,实现无损块顺序数据压缩的库文件。