使用 jigdo 下载 Debian USB/CD/DVD 映像
Jigsaw Download,简称 jigdo,是一种带宽友好的分发 Debian USB/CD/DVD 映像的方式。
为什么 jigdo 比直接下载更好
因为它更快!由于各种原因,USB/CD/DVD 映像的镜像站个数远少于正常的
Debian 镜像的个数。结果是,如果您从 USB/CD/DVD 映像的镜像站下载,它不但离您更远,而且会不堪重负,尤其是新版本刚发布的时候。
更重要的是,有些类型的映像不提供完整的 .iso 下载,因为我们的服务器没有足够空间容纳它们。
当然,一个正常的
Debian 镜像不包含任何 USB/CD/DVD 映像,所以 jigdo 是怎么从它那边下载的呢?jigdo 通过单独下载 USB/CD/DVD 包含的每一个文件来达到这个目的。下一步,它会把所有下载的文件组装成一个大文件,它和原 USB/CD/DVD 映像完全相同。然而,这一切都在幕后发生 — 对 您 而言,只需告诉下载工具.jigdo
文件的位置。
更多信息请参阅 jigdo 主页。我们随时欢迎愿意帮助 jigdo 开发的志愿者!
如何用 jigdo 下载映像
- 下载含有 jigdo-lite 的软件包。可通过 Debian 和 Ubuntu 发行版中的 jigdo-file 软件包直接取得并安装它。FreeBSD 可以从 /usr/ports/net-p2p/jigdo 安装,或者用 pkg_add -r jigdo 安装软件包。若需要其它安装选项(用于 Windows 的二进制文件、源代码),请访问 jigdo 主页。
- 运行 jigdo-lite 脚本。它会询问
.jigdo
文件的URL。(您也可以在命令行提供URL,如果您乐意的话。) - 从下方列出的地址中选择您想下载的
.jigdo
文件,并在 jigdo-lite 提示符中输入它们的URL。每一个.jigdo
文件对应一个.iso
USB/CD/DVD 映像。 - 如果您是首次使用,在
Files to scan
提示符出现时,只需按下回车键。 - 在提示符
Debian mirror
中,输入http://deb.debian.org/debian/ 或者http://ftp.XY.debian.org/debian/,其中XY 是您国家的双字母代码(比如 us、de、uk。参见可用的 ftp.XY.debian.org 地址列表。) - 遵照脚本给出的指示。如果一切顺利的话,脚本最后会打印生成的映像的校验和,并告诉您该校验和与原映像文件一致。
该步骤的详细描述,请参看 Debian jigdo 迷你 HOWTO 文档。该 HOWTO 文档也解释了 jigdo 的高级特性,例如将旧版本的 USB/CD/DVD 映像升级为最新版本(只下载有改动的文件,而不是整个映像文件)。
在您完成映像文件的下载并写入 USB/CD/DVD 之后,请务必阅读关于安装过程的详细信息。
官方映像
稳定(stable)
版本的官方 jigdo 文件
请您务必在安装前阅读文档。如果您在安装前只想阅读一份文档,请阅读我们的安装指南,这是一份安装过程的简要介绍。其他有用的文档包括:
- 安装手册,详细的安装步骤
- Debian 安装程序文档,包括常见问题及解答(FAQ)
- Debian 安装程序勘误,安装程序的已知问题列表
测试(testing)
版本的官方 jigdo 文件
搜索 USB/CD/DVD 映像的内容
某个文件位于哪个 USB/CD/DVD 映像?在下方,您可以在大量 Debian USB/CD/DVD 映像所包含的文件列表中搜索。您可输入多个关键词,每个关键词必须匹配文件名的子串。添加例如_i386
的字符串以搜索一个特定架构。添加_all
以限制搜索范围为所有架构都相同的软件包。
某个映像包含哪些文件?如果您需要特定 Debian USB/CD/DVD 映像包含的 所有 文件列表,只需在 cdimage.debian.org 查看该映像对应的 list.gz 文件。
常见问题及解答
如何让 jigdo 使用代理?
在文本编译器中打开 ~/.jigdo-lite(对于 Windows 版本则是jigdo-lite-settings.txt)并找到以wgetOpts
开头的行。可以在该行添加以下选项:
-e ftp_proxy=http://代理地址:端口/
-e http_proxy=http://代理地址:端口/
--proxy-user=用户名
--proxy-passwd=密码
当然,根据您的代理服务器的情况修改各项的值。最后两项只在您的代理服务器需要密码验证时才需要填写。以上各项设置需要添加到 wgetOpts 行末的 ' 字符 之前。所有选项必须写在同一行。
作为替代方法,在 Linux 中您也可以设置 ftp_proxy 和 http_proxy 环境变量,比如在文件 /etc/environment 或者 ~/.bashrc 中。
啊!脚本出错了 — 之前的都白下载了吗?!
虽然这不应该发生(真的),但是仍有可能出现这种情况,就是已经生成了一个巨大的.iso.tmp
文件,而 jigdo-lite 似乎出现了问题,反复让您重试下载。有几种解决方案可以尝试:
- 直接按回车键重试。可能有些文件因为超时或者某些暂时性的错误而无法下载 — 这将再次尝试下载所有还没下载的文件。
- 换一个镜像站。有些 Debian 镜像的内容稍有点旧 — 或许另一个镜像仍保留着您指定的镜像已经删除的文件,或者已经更新了您指定的镜像中还不存在的文件。
- 用 rsync 下载映像中缺失的部分。首先,您需要获得想下载的映像的正确的 rsync URL:选择一个对 stable 或者 testing 映像提供 rsync 访问的镜像,然后确定正确的路径和文件名。目录列表可以用类似 rsync rsync://cdimage.debian.org/debian-cd/的命令获得。
下一步,重命名 jigdo-lite 的临时文件,删除.tmp
扩展名,将远程主机的 URL 和本地文件名都传给 rsync:rsync rsync://server.org/path/binary-i386-1.iso binary-i386-1.iso
您可能想要使用 rsync 的 --verbose 和 --progress 选项获得状态信息,以及用--block-size=8192 提高下载速度。 - 如果其他方法都失败了,您下载的内容仍未丢失:在Linux 中,您可以挂载 .tmp 文件以访问已经下载的软件包,并重新利用它们以使用一个新的 jigdo 文件生成映像(比如一个新的 testing 快照,如果您下载失败的映像也是一个 testing 快照的话)。要如此做,首先以 root 权限在下载失败的目录下执行以下命令:mkdir mnt;
mount -t iso9660 -o loop *.tmp mnt。然后,在另外一个目录开始一个新的下载,并在
Files to scan
提示符输入 mnt 目录的路径。