6.39. Gzip-1.3.5
最后更新于:2022-04-01 22:50:24
# 6.39\. Gzip-1.3.5
gzip 包含用 Lempel-Ziv 编码(LZ77)来压缩和解压文件的程序。
**预计编译时间:** 少于 0.1 SBU**所需磁盘空间:** 2.2 MB
## 6.39.1\. 安装 Gzip
Gzip 有两个安全漏洞,下面的补丁可以修正它:
```
patch -Np1 -i ../gzip-1.3.5-security_fixes-1.patch
```
为编译 Gzip 做准备:
```
./configure --prefix=/usr
```
`gzexe` 脚本里包含对 `gzip` 程序的硬路径引用。由于我们后面要改变 `gzip` 程序的位置,就需要用下面的命令改变脚本中的硬路径:
```
sed -i 's@"BINDIR"@/bin@g' gzexe.in
```
编译软件包:
```
make
```
这个软件包没有附带测试程序。
安装软件包:
```
make install
```
把 `gzip` 程序移动到 `/bin` 目录并创建一些常用的符号连接:
```
mv -v /usr/bin/gzip /bin
rm -v /usr/bin/{gunzip,zcat}
ln -sv gzip /bin/gunzip
ln -sv gzip /bin/zcat
ln -sv gzip /bin/compress
ln -sv gunzip /bin/uncompress
```
## 6.39.2\. Gzip 的内容
**安装的程序:** compress(→gzip), gunzip(→gzip), gzexe, gzip, uncompress(→gunzip), zcat(→gzip), zcmp, zdiff, zegrep, zfgrep, zforce, zgrep, zless, zmore, znew
### 简要描述
| | |
| --- | --- |
| `compress` | 压缩和解压缩文件 |
| `gunzip` | 解压由 gzip 压缩过的文件 |
| `gzexe` | 将文件压缩成可以自解压的可执行文件 |
| `gzip` | 通过 Lempel-Ziv 编码(LZ77)压缩指定的文件 |
| `uncompress` | 解压由 gzip 压缩过的文件 |
| `zcat` | 将解压缩的数据写到标准输出上 |
| `zcmp` | 在压缩文件上调用 `cmp` 命令 |
| `zdiff` | 在压缩文件上调用 `diff` 命令 |
| `zegrep` | 在压缩文件上调用 `egrep` 命令 |
| `zfgrep` | 在压缩文件上调用 `fgrep` 命令 |
| `zforce` | 强制性地为每一个 gzip 文件加上 `.gz` 扩展名,这样`gzip` 就不会对它们再次进行压缩。这个程序可能在一个文件经过传输后名字被截短的情况下能够派上用场。 |
| `zgrep` | 在压缩文件上调用 `grep` 命令 |
| `zless` | 在压缩文件上调用 `less` 命令 |
| `zmore` | 在压缩文件上调用 `more` 命令 |
| `znew` | 将`.Z`格式的文件(使用 compress 压缩)转压缩成`.gz`格式(使用 gzip 压缩) |
';