GNU/Linux 系统的标准[33]压缩格式是由 GNU 计划开发的 gzip 格式。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
也要更为简单一些,尽管这样可能并不十分安全[34]。
首先,请进入 /usr/local/src
目录并将压缩包复制到那里。如果您后来丢失了已安装的软件,那您总是能在那里找到原来的压缩包的。如果您的磁盘空间不足,请在安装完软件之后将压缩包保存到软盘上。您也可以将其删除,不过您必须确保在需要的时候能从网上得到它。将配置软件所用的命令行或者用于生成工作副本的整个命令序列保存起来,这也是一个好的习惯,在进行升级时您可能需要相同的选项。
一般,解压某个 tar 包后将会创建一个新的目录(您可以使用 t
选项预先检查一下)。然后进入该目录,您就可以执行下一步了。
UNIX® 系统(比如 GNU/Linux 和 FreeBSD®)可以作为安全系统。这意味着普通用户不能执行可能会威胁到系统(比如格式化磁盘)或会更改其他用户文件的操作。而且它还对病毒免疫。
另一方面,root
可以作任何事情,甚至是运行一个恶意程序。拥有源代码让您能够检查其中是否含有恶意代码(病毒或木马)。小心谨慎为妙[35]。
其想法是使用 adduser 命令专门创建一个管理员用户(比如 free
或是 admin
)。该用户必须能够写入以下目录:/usr/local/src
、/usr/local/bin
和 /usr/local/lib
,以及 /usr/share/man
目录下的所有子目录(他还需要能够在别的地方复制文件)。我们推荐您把这些目录的所有者改为该用户,或者为他创建一个组并让这些目录对该组可写。
这些先决条件满足之后,您就可以以 root
的身份依照第 2.4.1 节 “最简单的方式”所示操作了。
[33] 如今在 GNU/Linux 上,标准是 bzip2 格式。bzip2 对文本文件更为有效,但需要更多计算能力。请参考第 2.3 节 “Bzip2”中针对该程序的详细介绍。
[34] 通常要在系统中安装生成的文件,您必须是 root
。至于设计的其它步骤,应该可以在非特权用户下完成。
[35] 在 BSD 业界有句俗话:“决不信任没有得到源代码的软件包。”