荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: cycker (希望能PASS每一科), 信区: Linux
标  题: Jigdo: 下载 Debian 光盘的新方法
发信站: 荔园晨风BBS站 (Fri Jan 10 20:08:28 2003), 转信

赵蔚 (zhaoway@public1.ptt.js.cn)
2002 年 7 月

本文介绍 Jigdo。Jigdo 一词是 Jigsaw Download 缩写,意思是拼图式的下载工
具。这是 Debian 推荐的下载 Debian GNU/Linux 光盘的工具。Jigdo 不仅是一个
好用的下载大型文件(比如 CD 和 DVD 光盘映像文件)的实用工具,它也从一个
侧面展示了 Debian GNU/Linux 的一些有别于其它 GNU/Linux Distribution 的特
点。
1. Debian GNU/Linux 的规模

Debian 是一个完全由志愿者组成的组织,他们来自世界各地,其中也有来自中国
大陆和港台的成员。这些志愿者有一个共同的兴趣,就是 Debian GNU/Linux 这个
系统。大概估计一下,现在 Debian 有 1000 名左右的志愿开发者,他们把散见于
网络各处的自由软件打包整理,再经过品管质保,包装成 Debian GNU/Linux 这个
系统。然后,再经过遍布全球的 Debian 镜像网络,把一个完全由自由软件组成的
系统送到用户的手中。这个遍布全球的 Debian 镜像网络也是由志愿者所维护的,
其中也有相当多来自于各国的大学、科研机构以及商业公司的资源支持。

Debian 支持十几种计算机架构,其中包括 i386、Power PC、Sparc、S/390 以及
 ARM 等等。Debian 在 i386 架构上,支持有将近一万个软件包,体积超过 3G 字
节。一个完整的 Debian 镜像大概要占据超过 50G 字节的硬盘空间。可以想象,
一个繁忙的 Debian Mirror 站点会需要多少网络带宽。不但如此,据估计,每过
十二个月,Debian 的体积就会翻上一番。此外,在 Debian 将近要发布一个新版
本的时候,由于 Debian 的品管质保等方面的工作,Debian 的体积也会增加。等
到 Debian 发布了一个新版本以后,庞大的 CD 光盘映像文件又要向 Debian 的全
球镜像网络发起新一轮的冲锋。而且,Debian 最近又已经开始支持用更加庞大的
 DVD 光盘映像文件来发布 Debian 系统。由于 Debian 的如此庞大的规模,
Debian 镜像网络的站点都有些不堪重负。这其中,受到冲击最严重的,就是 CD
和 DVD 光盘映像文件的分发。

2. Jigdo 和 Package Pool

Jigdo 就是为了缓解庞大的 CD 和 DVD 光盘映像文件对 Debian 镜像网络造成的
冲击而开发出来的。在介绍 Jigdo 之前,先让我们对 Debian 镜像站点的构成,
有一个初步的了解。

Debian 镜像站点围绕着 Package Pool 这个结构展开。Package Pool,确实就好
像是一个承载软件包的池子。Debian 志愿者把散见于网络上各处的自由软件打包
整理,放进这个池子。这以后,其他的人就可以根据各种规则,从这个池子中打捞
出他们所需要的文件。这个池子本身则负担有垃圾收集的责任,过时的软件包就给
淘汰掉。Package Pool 一刻不停地进行着新陈代谢和 Debian 软件包的管理工作


Debian 最让用户称道的 Apt-Get 升级工具,就得益于 Package Pool 结构。最近
,Debian 的新版本的发布也开始围绕着 Package Pool 来进行。确实可以说,
Package Pool 是 Debian 的 基础架构(Infrastructure)中最重要的一环。

每个 Debian 镜像站点都至少镜像了 Package Pool 的一个完整的部分,比如,包
含全部 i386 架构的那一部分。另一方面,由于 CD 光盘映像文件的巨大体积,以
及 CD 光盘映像文件所要消耗的巨大的网络带宽资源,许多镜像站点都不愿意为它
们做镜像。我们故事的主角 Jigdo 就在此时登场。

Jigdo 为每一个光盘映像文件生成了一个索引,这个索引文件就如同许多钓在
Debian 的 Package Pool 上的渔钩,钩住了一个个的软件包。需要下载 CD 光盘
映像文件的用户,只需要运行 Jigdo,告诉它索引文件的位置,Jigdo 就会自动从
 Package Pool 里面把需要的软件包钓出来,然后在用户的计算机上,把它们制成
所需要的 CD 光盘映像文件。这样一来,Debian 的镜像站点就不再需要为 Debian
 的 CD 光盘映像文件作镜像了,他们只需要为 Package Pool 的一个完整的部分
,比如,包括 i386 架构的全部软件包的那一部分,做上镜像就可以了。可以说,
Jigdo 在相当程度上缓解了分发 Debian 的 CD 光盘映像文件为 Debian 的镜像网
络带来的压力。

另一方面,由于有了 Jigdo 的支持,Debian 现在可以发布更多的 CD 光盘映像文
件了。因为发布一个光盘映像文件,实际上就等于发布一个新的 Jigdo 索引文件


3. Jigdo 使用起来很简单

Jigdo 可以在 Linux 和 Windows 上运行。说了上面那么多,下面我们来看看
Jigdo 使用起来到底怎么样。

第一步,是要确认您有一个工作良好的光盘刻录机。;) 此外,你还需要足够大的
硬盘空间。由于 Jigdo 的良好设计,您的硬盘上可以只需要能放得下一张 CD 光
盘映像文件的自由空间,大概有 650M 字节左右。Jigdo 在从 Debian 的 Package
 Pool 上下载了需要的软件包之后,会立即把它写入 CD 光盘映像文件,然后就把
这个软件包删除,再开始下载下一个软件包,这样一来,有效的使用了硬盘空间。
所以您不用担心,由于 Jigdo 一边下载软件包,一边制作 ISO 文件,会浪费多少
硬盘空间。

第二步,是到 Jigdo 的主页上(http://home.in.tum.de/~atterer/jigdo/)下载
 Jigdo 的软件。当然,如果你是要在 Windows 上运行 Jigdo 的话,你要下载
Jigdo 的 Windows 版本。这个软件体积很小,不到 1M 字节。下载之后,把
ZIP 包打开就可以运行,不需要编译。

第三步,运行 jigdo-lite 这个程序,它会问你要一个 .jigdo 文件,这就是它要
的索引。如果你是准备下载 Debian 的最新版本的 CD 光盘映像文件的话,可以从
这里(http://us.cdimage.debian.org/jigdo-area/current/jigdo/)得到一份这
个 CD 光盘映像文件的 .jigdo 索引文件。

然后呢,然后就没有什么特别的事情要做了。;) 如果一切顺利的话,就等着下载
完毕,就可以刻光盘了。你看,从用户的角度来说,Jigdo 使用起来是非常简单的
,对不对?而且,Jigdo 充分利用了 Debian 的环绕全球的镜像网络。以往下载一
个 CD 光盘映像文件只能从一个站点慢慢的下载。而现在,Jigdo 把一个庞大的映
像文件分割成了许多的小软件包,就可以从靠近用户的多个镜像站点同时下载了。
这样一来,下载速度也提高了不少。

4. Jigdo-file

Jigdo 软件包里面主要包括三个工具,下面我们来一一的介绍这三个工具。首先是
 Jigdo-file,这是给站点管理员用来扫描一个 CD 光盘映像文件,以生成一份相
应的 .jigdo 索引文件。Jigdo-file 不仅可以处理 Debian 的 CD 光盘映像文件
,它其实还可以处理任何网站管理员需要分割开来下载的大型文件。比如一个大型
的 DivX 电影文件,或者是一个巨大的 ZIP 压缩包。Jigdo-file 为了要处理这个
大文件,需要知道这个大文件的组成部分都在哪里。下面我们用一个例子来说明。


假设我们在 /pub/project/snapshot 下放了我们的一个自由软件项目的全部需要
备份的文件。然后,我们把这个目录下的所有内容刻成了一张 ISO9660 格式的 CD
 光盘映像文件。接下来,我们需要让大家能够下载这个 ISO 文件,以便让网络上
更多的自由软件开发者了解我们的自由软件项目的进展。假设我们有许多支持者作
我们的镜像网站,他们已经 mirror 了我们的主站上的 /pub/project/snapshot
目录,但是他们不想再从我们这里下载一份 ISO 文件,因为他们的带宽和硬盘资
源都很有限。那么,我们如何利用 Jigdo 呢?

我们只要运行 Jigdo-file,告诉它,我们要处理的是 snapshot.iso,它的内容来
自于 /pub/project/snapshot 目录下面的文件。这样,Jigdo-file 就会生成一份
 .jigdo 索引。我们的镜像网站只需要 mirror 这一个小小的索引文件就可以了。
这以后,当用户需要下载这个 ISO 文件的时候,它可以用 Jigdo-lite 从靠近的
镜像站点上下载这些独立的小文件,然后把它们在自己的机器上组装成一个 CD 光
盘映像文件。

那么,如果我们不是要处理一个 ISO9660 格式的光盘映像文件,而是要处理一个
巨大的 DivX 电影文件怎么办呢?我们可以用 split 命令把一个大文件分割成若
干个小文件。关于 split 命令,可以参看它的 Man Page。这以后,你的镜像站点
可以只 mirror 这些由 split 生成的小文件。但是对于用户来说,他们还是可以
从你的镜像站点下载完整的 DivX 文件。

关于 Jigdo-file 的命令行选项,我们就不在这里介绍了,它的手册(http:
//home.in.tum.de/~atterer/jigdo/jigdo-file.html)才是权威的参考。

这一节的最后,说明一下 Jigdo-file 生成的 .template 文件,这是 Jigdo 从诸
多小文件组装一个大文件时所用到的模版。大文件里面可能有一些没有包括在任何
一个小文件中的内容,这些内容就被 Jigdo 放在 template 里面。

5. Jigdo-lite

Jigdo-lite 就是用户用来下载好多个小文件,然后把它们在自己的机器上组装成
一个大文件的工具。它的用法我们已经在前面讲过了。用户只要告诉它从哪里找到
一个 .jigdo 索引就可以了。剩下的一切就交给它去做。直到最后用户得到那个想
要的完整的大文件,比如是 CD 光盘映像文件,或者 DivX 电影文件等等。

6. Jigdo-mirror

Jigdo-mirror 是镜像站点管理员所用的工具。用来从主站点把那许多个小文件
mirror 下来。需要做镜像的文件有 .jigdo 索引文件、.template 模版文件,以
及所有的分割开的独立的小文件。Jigdo-mirror 还要做一些额外的维护工作,所
以最好是用 Jigdo-mirror 做镜像,这样也方便。关于 Jigdo-mirror 的命令行选
项,请参考 Jigdo-mirror 的手册(http://home.in.tum.
de/~atterer/jigdo/jigdo-mirror.html)。我们这里就不再多说了。

7. 结语

Jigdo 良好的设计,使得它可以有许多额外的用途。比如,可以更新一个 CD 光盘
映像文件。Debian 每天都有最新的测试版的 CD 光盘映像文件可以通过 Jigdo 下
载。用了 Jigdo,你就可以不必每次都从头开始下载那么大的文件。因为每天的映
像文件都是在前一天的映像文件的基础上更新的,你可以用 Jigdo 每天在本地计
算机上更新一下前一天下载的映像文件就可以了。这样大大节约了网络带宽。从管
理员方面来说,他或她也可以更加频繁的更新 CD 光盘映像文件。因为,比如说,
如果有一个 Debian Package Pool 的镜像的话,发放一个新的 CD 光盘映像文件
,等于是只要在镜像网络上放一个新的 .jigdo 索引文件就可以了。

参考资料

标出了 Debian Developer 的大概地理位置的世界地图:http://www.debian.
org/devel/developers.loc 地图上的每一个红点代表一个 Debian 志愿者。
关于 Debian 的规模的图表:http://ftp-master.debian.org/~mmagallo/
关于 Debian GNU/Linux 的 CD 光盘映像文件的主站点:http://www.debian.
org/CD/
Debian 的最新版本的 CD 光盘映像文件的 Jigdo 索引:http://us.cdimage.
debian.org/jigdo-area/current/jigdo/i386/
Jigdo 的主页:http://home.in.tum.de/~atterer/jigdo/
关于作者

赵蔚,自由职业者。曾经作过一年左右的 Debian 志愿者。欢迎您通过
zhaoway@public1.ptt.js.cn 和他联系。他的网络日记位于 http://www.
advogato.org/person/zhaoway/ 上面列有他在网络上发表的其它的文章,欢迎您
批评指教!



--

真的猛士,敢于直面无聊的日子.

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.36.220]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店