创建本地ubuntu mirror镜像

  前两天成功“欺骗”一位同事安装了个ubuntu dapper,能够得手的原因主要是他忙于在网上看小说,原来的xp被恶意软件、恶意网站和病毒搞垮了,而我为他安装的linux和firefox对这些都基本免疫,所以才能够得手。如果能够再克服activex和msword两个障碍,就可以推广到更大的范围了。

  安装很顺利,不过使用的是外置usb光驱启动安装,所以读盘的速度比较慢,下回我会尝试下载一个server版的光盘安装,会快很多,只是安装完要在手工安装desktop包。另外安装完成以后按照“官方配置指南”配置中文和java等也需要下载一些东西,我这里是网通的线路,官方的源中很少有快的,除了国立台湾大学的。不过这样总不是办法,随着线路情况的变化,这些源的快慢变化不定,还是局域网内有一个稳定的源最为稳妥,所以萌生了mirror一个ubuntu的念头。

  作一个镜像也很简单的,只要有一台ubuntu,配置好apache,安装上rsync程序,准备足够的硬盘空间,就可以了,通过rsync编写一个小的脚本,就可以了,脚本如下:

#! /bin/bash
rsync -aPS –delete-after \
–exclude *amd64* –exclude *ia64* \
–exclude *powerpc* –exclude *sparc* \
–exclude *hoary* –exclude *warty* \
–exclude *breezy* \
–exclude *.iso \
–exclude *.orig.tar.gz –exclude *.diff.gz \
–exclude *.dsc \
rsync://archive.ubuntu.com/ubuntu \
/home/ubuntu

  这个例子抄自这里,从hiweed传出来的,不过注释有些小错误,更正如下:

exclude amd64 ia64 powerpc sparc 是去掉不想要的架构
exclude hoary warty breezy 是去掉不想要的发行版本
exclude .iso 是去掉光盘镜像文件
exclude orig diff dsc 是去掉源代码软件包(?)
rsync://… 是镜像来源,和source.list中的一样
/home/ubuntu 是镜像文件保存到哪里

  apache配置虚拟目录就不说了,以后局域网的电脑的source.list就简单了。

  crontab -e把这个脚本放到cron中,每天执行,嘿嘿。

  # m h dom mon dow command
  0 4 * * * /home/fwolf/rsync_ubuntu.sh
  镜像不知道需要花费多少空间,有了结果以后再告诉大家。

  顺路推荐一个不错的,可以在win、linux、osx等各种os环境下运行的,类似中游和联众的联网游戏,蓝迪游戏,除了现在人少点,别的都还不错,甚至支持龙芯电脑。

  补充一点,不是所有apt源都可以作为rsync源的,因为对方可能只开了http,没有开rsync。现在知道的,至少archive和us.archive.ubuntu.com这系列的服务器是都支持的。

  只镜像edgy的i386部分,不要iso不要源码,花费73G空间,够大的,寒!

  上面介绍的那个蓝迪游戏,不是人少么?但是可以邀请机器人陪玩,虽然性质有点像单机游戏了,可是机器人的水平可真不低,斗地主的时候出炸弹的时机掌握得也很好,刚才被搞得很郁闷:(。在线游戏刚开始运行人少的时候,不失为一个不错的办法,即使是人多了,也可以当作rpg中的npc打怪赚钱嘛。

  Ubuntu in Launchpad这里有一份完整的官方ubuntu镜像站点清单,不仅列出了每个站点的所在国家和带宽情况,标注有“Alternatives: rsync”的就是可以使用rsync进行同步的站点。

  同时,如果镜像过来的文件是存储在通过samba访问的windows共享目录下的话,会因为windows无法正确设置文件权限和日期而导致每次都需要从头开始同步,打开”-checksum”参数通过md4校验值来解决这个问题的话又巨慢,每次同步的时候,两端都要对所有文件计算checksum,所以,可以下载cwRsync(windows下运行的把cygwin和rsync打包在一起的一个软件),从windows这端来同步文件,对外提供共享服务仍然用linux。