UNIX® 系统下标准的[31]压缩格式是由 GNU 项目开发的 gzip 格式,它被认为是最好的通用压缩工具。
gzip 经常会同一个称为 tar 的工具一起使用。tar 是远古时代的孓遗,当年计算技术人员将他们的数据保存在磁带上。现在,软盘、CD-ROM 和 DVD 早已替代了磁带,然而 tar 依旧用于创建压缩包。比如,一个目录中的全部文件能够添加到一个单独的文件中。该文件能够简便地由 gzip 压缩。
这也就是为何许多自由软件以 gzip 压缩的 tar 包形式存在的缘故。因此,它们的扩展名为 .tar.gz (或简写为 .tgz)。
要解压这种包,请依次使用 gzip 和 tar。不过 tar 的 GNU 版本(gtar)可以“即时”调用 gzip,且不需要注意到此中每一步过程就能解压包(而且还不需要额外的磁盘空间)。
tar <文件选项> <.tar.gz 文件> [文件] |
其中 <文件> 选项并非必须。如果它被忽略,将会解压整个包。在解压 .tar.gz 压缩包内容时该参数并非必需。
$ tar xvfz guile-1.3.tar.gz -rw-r--r-- 442/1002 10555 1998-10-20 07:31 guile-1.3/Makefile.in -rw-rw-rw- 442/1002 6668 1998-10-20 06:59 guile-1.3/README -rw-rw-rw- 442/1002 2283 1998-02-01 22:05 guile-1.3/AUTHORS -rw-rw-rw- 442/1002 17989 1997-05-27 00:36 guile-1.3/COPYING -rw-rw-rw- 442/1002 28545 1998-10-20 07:05 guile-1.3/ChangeLog -rw-rw-rw- 442/1002 9364 1997-10-25 08:34 guile-1.3/INSTALL -rw-rw-rw- 442/1002 1223 1998-10-20 06:34 guile-1.3/Makefile.am -rw-rw-rw- 442/1002 98432 1998-10-20 07:30 guile-1.3/NEWS -rw-rw-rw- 442/1002 1388 1998-10-20 06:19 guile-1.3/THANKS -rw-rw-rw- 442/1002 1151 1998-08-16 21:45 guile-1.3/TODO ... |
对于一般用途,gzip 早已被称为 bzip2 的新压缩格式所替代。不过某些软件还会为了兼容旧有系统的而以 gzip 格式发布。现在,绝大多数自由软件已经以 .tar.bz2 形式发布。
命令 tar 以相同方式使用 bzip2 和 gzip。唯一的区别是您需要把选项 z 改成 j。比如:
$ tar xvjf foo.tar.bz2 |
$ tar --use-compress-program=bzip2 -xvf foo.tar.bz2 |
既然您已准备好要压缩某个包了,别忘了请用管理员身份(root)来做。您将需要执行普通用户不能执行的事情,而且即使您能以普通用户执行其中的某一些,一直作为 root 也要更为简单一些,尽管这样可能并不十分安全。
首先,请进入 /usr/local/src 目录并将压缩包复制到那里。如果您后来丢失了已安装的软件,那您总是能在那里找到原来的压缩包的。如果您的磁盘空间不足,请在安装完软件之后将压缩包保存到软盘上。您也可以将其删除,不过您必须确保在需要的时候能从网上得到它。
一般,解压某个 tar 包后将会创建一个新的目录(您可以使用 t 选项预先检查一下)。然后进入该目录,您就可以执行下一步了。
UNIX® 系统(比如 GNU/Linux 和 FreeBSD®)可以作为安全系统。这意味着普通用户不能执行可能会威胁到系统(比如格式化磁盘)或会更改其他用户文件的操作。而且它还对病毒免疫。
另一方面,root 可以作任何事情,甚至是运行一个恶意程序。拥有源代码让您能够检查其中是否含有恶意代码(病毒或木马)。小心谨慎为妙[32]。
其想法是使用 adduser 命令专门创建一个管理员用户(比如 free 或是 admin)。该用户必须能够写入以下目录:/usr/local/src、/usr/local/bin 和 /usr/local/lib,以及 /usr/share/man 目录下的所有子目录(他还需要能够在别的地方复制文件)。我们推荐您把这些目录的所有者改为该用户,或者为他创建一个组并让这些目录对该组可写。
这些先决条件满足之后,您就可以依照“最简单的方式”一节所示操作了。