Jigdo: 下载 Debian 光盘的新方法

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 光盘映像文件的分发。

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 索引文件。

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 把一个庞大的映像文件分割成了许多的小软件包,就可以从靠近用户的多个镜像站点同时下载了。这样一来,下载速度也提高了不少。

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 里面。

Jigdo-lite

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

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)。我们这里就不再多说了。

结语

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

Jigdo下载 Debian相关推荐

  1. 详解在ubuntu上使用Jigdo下载debian镜像

    最近需要下载旧版debian镜像,但各大开源镜像站没有旧版的包,由此才有了这篇文章. jigdo是什么? Jigdo("Jigsaw download",曲线下载)是为Debian ...

  2. 学会用Jigdo下载cd iso和DVD iso

    2019独角兽企业重金招聘Python工程师标准>>> 学会用Jigdo下载cd iso和DVD iso(中文版) Debian Jigdo HOWTO (中文版) Peter Ja ...

  3. debian linux镜像下载,Debian Wheezy 7.7 发布,已提供镜像下载更新

    Debian项目已经宣布Debian7.7 "Wheezy"发布并提供下载.这是常规维护更新,但它打包了很多重要的更新. Debian在这个发行版里面包含了常规的主要更新,但如果你 ...

  4. linux debian iso下载,Debian GNU/Linux 9.8 “Stretch” live和DVD ISO现在可供下载

    Debian项目发布了他们最新的Debian GNU/Linux 9.8 "Stretch" 操作系统的live实时和可安装的ISO映像,现在可以下载所有支持的体系结构. Debi ...

  5. 使用jigdo下载历史版本的debian镜像

    上次项目碰到了两个问题,一个是无法将opencv在64位的系统中编译成32位的库,这个的话,后来通过一通摸索,也算是解决了问题(当然,关于CMAKE的使用,还是要加强学习).另外一个问题,就是当时需要 ...

  6. 通过虚拟机下载Debian全量镜像,并保存至本地

    因为公司使用内网,且连接Internet需要定制的客户端,所以Linux必须能够离线运行. 由此,RHEL,Ubuntu--这些操作系统秒变废柴. 这种情况下,只有Debian真香. 1.需要一个能连 ...

  7. 通过Windows版jigdo下载debian10.4dvd镜像

    debian10.4的DVD镜像有16个,实际安装只用下DVD-1就可以,后续的DVD不用下载也能用. CD(和 DVD) 里面包含的软件包按照流行程度排列次序.也就是说,第一张光盘里面是最常用的软件 ...

  8. linux卸载第三方软件下载,debian/ubuntu软件安装卸载方法

    可能看我博客的人有许多不知道这个续从何而来,其实我也很奇怪,为什么当时在上一篇写了一个未完待续之后就忘记了,昨天写总结突然发现这是一太监文章,所以决定今天终结它.上一篇介绍了:1.使用新立得软件包管理 ...

  9. 树莓派64位系统官方下载Debian

    https://mirrors.aliyun.com/raspberry-pi-os-images/raspios_arm64/images/ https://developer.aliyun.com ...

最新文章

  1. “AI工厂”本质:AI基础设施及怎样将AI转化为运营动力
  2. android studio中如何设置注释模板
  3. 厦大诚招青年AI科学家:待遇不一般,连配偶和子女教育都考虑到了
  4. lamp介绍,wordpress,phpmyadmin,discuzz安装
  5. 微信小程序把玩(二十七)audio组件
  6. ITK:使用写访问权迭代图像中的区域
  7. 华为p40pro怎么用鸿蒙,数码知识:华为p40pro是鸿蒙系统吗系统版本
  8. 中国加速计算市场第二名,宁畅正领跑“智能算力定制”赛道
  9. 写html前端代码的软件_html用什么软件编写
  10. git21天打卡day15-添加提交修改文件
  11. Elasticsearch中的嵌套查询介绍及实例
  12. 链接link使用href=“#”和href=##的区别
  13. ChartControl控件绘制柱状图
  14. C语言入门程序——交换两个数
  15. SPI通信协议详解(四)
  16. [Python Nonebot]QQ自动聊天机器人
  17. 30个很棒的Photoshop技巧和窍门可帮助您提高计算机图形技能
  18. 计算机网络拓扑星型优点和缺点,星型结构拓扑有哪些优缺点 星型结构拓扑优缺点介绍【图文】...
  19. 趣味小游戏——扫雷(优化版)
  20. 软件测试 | 测试开发 | 双非院校,从外包到外企涨薪85%,他的涨薪秘籍全公开

热门文章

  1. 自由软件和开源软件的区别
  2. Spring Security教程 第一弹 初识spring security
  3. 计算机操作系统之CPU缓存
  4. linux 僵尸进程查看及删除
  5. java计算机毕业设计宿迁学院学生设计作品交流网站源代码+数据库+系统+lw文档
  6. Intel 3D XPoint存储黑科技显微镜下露出真面目
  7. 搜索邻近计算机打印机,使用组策略设置控制打印机 - Windows Server | Microsoft Docs...
  8. 数据分析师都了解的统计基本概念
  9. mapboxGL地图分享功能的实现
  10. NOIP2018T3(摆渡车)题解