在做FAI的过程中,需要用到debian的镜像,此时需要使用本地的镜像,如果直接使用fai-mirror,所生成的镜像将是package-config中的包,一般都不全,所以还是使用了debmirror的方法。
如何建立一个Debian镜像网站呢?在Debian的官方网站已经有专门的介绍:
http://www.debian.org/mirror/ftpmirror
这是基于rsync软件的方法,网页也提供了进行网站镜像的现成脚本,但是实现起来比较麻烦而且常常失败。我想使用debmirror这个软件来进行Debian镜像应该更简单一些。
Debmirror是一个德国人用perl写的Debian网站镜像工具,使用起来更为简单和方便。在缺省的情况下,debmirror使用ftp方式 (也可以使用rsync方式)来获取debian所有内容到本地硬盘,再通过系统的http服务器或是ftp服务器将本机设置为合法的apt源,其他客户 通过修改自己debian系统的/etc/sources.list文件指向该机器。
在对Debian做镜像之前有一个要考虑的问题是:你准备对Debian镜像到何种程度,或者说你的硬盘有多大?一些我们很少用的计算机类型的 Debian资源是否需要镜像?如果镜像整个Debian,大约需要100G的硬盘空间,每种CPU架构的Woody Sarge Sid软件加起来大约是6--8G。
下面来看看具体工作过程:
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电脑的sarge的main部分的软件包而且还不带源码,下载来的包放在mydebian目录下,那么命令是:
#debmirror -v -d unstable -s main/debian-installer -e http -h 192.168.10.202 --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更新就可以了。