如何建立一个Debian镜像网站呢?在Debian的官方网站已经有专门的介绍:http://www.debian.org/mirror/ftpmirror

    在对Debian做镜像之前有一个要考虑的问题是:你准备对Debian镜像到何种程度,或者说你的硬盘有多大?一些我们很少用的 计算机类型的 Debian资源是否需要镜像?如果镜像整个Debian,大约需要100G的硬盘空间,每种CPU架构的Woody Sarge Sid软件加起来大约是6--8G。



方法一:使用Debmirror简单实现

    官方提供的是基于rsync软件的方法,网页也提供了进行网站镜像的现成脚本,但是实现起来比较麻烦而且常常失败。使用debmirror这个软件来进行Debian镜像应该更简单一些。

    Debmirror是一个德国人用perl写的Debian网站镜像工具,使用起来更为简单和方便。在缺省的情况下, debmirror使用ftp方式 (也可以使用rsync、http方式)来获取debian所有内容到本地硬盘,再通过系统的http服务器或是ftp服务器将本机设置为合法的apt 源,其他客户通过修改自己debian系统的/etc/sources.list文件指向该机器。

下面来看看具体工作过程:

1、安装debmirror软件

#apt-get install debmirror

2、运行debmirror软件获得debian软件包

在此之前,你要决定你的debian软件包放在硬盘的那个目录,这是debmirror运行必需参数,假如:

#debmirror /mydebian

    意思是将整个debian以所有的缺省参数镜像到我的电脑的/mydebian目录下。啊,100G呀!要下载多久啊!显然不现实,我们需要使用一些其他参数来调整我们的镜像过程,debmirror的可选参数很多,你可以:

#man debmirror

来查看,下面介绍几个重要的:

-v:详细显示镜像的具体步骤,最好选上,时刻掌握debmirror的动向。
-h:从哪个主机下载debian软件包,缺省是ftp.debian.org,国内我想最好使用debian.cn99.com。
-d:决定镜像debian的哪个版本,我喜欢折中主义,选择sarge。缺省都选。
-s:决定镜像debian的哪个部分,即在main,contrib,non-free三者中选一个,缺省都选。
-a:选择计算机架构方式,缺省为i386。  
--nosource:缺省情况下,debmirror会把debian包的源码一起下载,该参数则禁止下载源码

    假如我想做个最简单的debian源,从我身边最快的debian网站,镜像i386、arm、amd64电脑的sid、sarge、 testing、unstable、stable的main部分的软件包而且带源码,下载来的包放在debmirror目录下,并且当 Release.gpg和 Release文件下载错误时,忽略继续进行;下载那么命令是:

debmirror -v -e http -h ftp.tw.debian.org -a i386,arm,amd64 -d
 sid,sarge,testing,unstable,stable --ignore-release-gpg 
--ignore-missing-release   --nosource /debmirror

3、下载完后的设置
我想通过http方式发布我的debian镜像,先在我的httpd.conf后面加一句:

Alias /debmirror /mydebian

再用#apachectl restart重新启动apache服务器,就好了。

4、客户端的修改
现在修改/etc/apt/sources.list文件,加入或者只保留:

deb http://your_ip/debmirror sarge main

再用#apt-get update更新就可以了。