我们的目的是搭建一个能够在局域网内使用的软件源服务器,总的来说,首先我们得利用apt-mirror拷贝国内的镜像网站上的软件,然后再利用apache2把这个镜像挂上去。

好的,具体来说,首先我们得安装相关的软件$sudo apt-get install apt-mirror      $sudo apt-get install apache2

安装完软件后,我们还需要对其进行配置。因为通常情况下,我们都是给ubuntu分配30到40G的空间,其他均被windows所使用,显然这么点空间完全不够用的,所以我们有必要去改变apt-mirror的默认存储位置,我们可以直接到/var/spool内把apt-mirror这个文件夹给复制到你想要用来存储的地方,假设是在d盘内,这里提一下最好设置一下使windows盘自动挂载,具体方法,在另外一篇博文上有提到。然后就是去找apt-mirror的配置文件把对应的配置改变,具体在我的测试中就是$sudo vim /etc/apt/mirror.list



# set base_path /var/spool/apt-mirror
#
# if you change the base path you must create the directories below with write privlages
#
# set mirror_path $base_path/mirror
# set skel_path $base_path/skel
# set var_path $base_path/var
# set cleanscript $var_path/clean.sh
# set defaultarch <running host architecture>



改为



set base_path   /media/win-D/apt-mirror
set mirror_path $base_path/mirror
set skel_path $base_path/skel
set var_path $base_path/var
set cleanscript $var_path/clean.sh
set nthreads 20
set _tilde 0




其实就是source.list的内容,加上一头一尾。
因为需求比较少,我就没加deb-src,可以节省不少空间。另外,默认是20线程的,我改成了40线程。
修改好了以后就可以建立镜像了:  




把对应的基本路径给改了,同时把#去掉,使其生效。

然后在下面你要是向指定具体复制哪个网站的话,就把原来的地址去掉加上你的地址。

配置好后我们就开始与服务器进行同步,具体是执行$sudo apt-mirror

过程大概需要十几个小时,大可以把电脑设置设置洗洗睡去。

等同步完后,就可以使用apache发布出去,具体就是$sudo gedit /etc/apache2/sites-enabled/000-default

把DocumentRoot /var/www改为DocumentRoot /media/win-D/apt-mirror

重启apache执行$sudo /etc/init.d/apache2 start

如果你想要本地使用的话只要把sources.list软件源地址改为你服务器的地址即可。



通过http访问镜像

Apache默认的根目录是/var/www,但是软件仓库却在/var/spool/apt-mirror/mirror
为了能够通过 http://192.168.0.100/debian and http://192.168.0.100/ubuntu
访问到相应的软件库,我们可以symlinks /var/www/debian and /var/www/ubuntu到真正的库地址。

[code]ln -s /var/spool/apt-mirror/mirror/ftp.de.debian.org/debian /var/www/debian 
 ln -s /var/spool/apt-mirror/mirror/de.archive.ubuntu.com/ubuntu /var/www/ubuntu[/code]



如果你使用了其他镜像,记得调整这两行命令。

接下来要考虑的一件事情是,你认为DebianSarge是sarge而且是稳定的e(至少目前是稳定的,而Etch仍旧在测试中),那么当你运行

[code]ls -l /var/spool/apt-mirror/mirror/ftp.de.debian.org/debian/dists [/code]



你会发现那里有一个sarge的目录,但却是不稳定的,但是如果你在source.list中用稳定的替换了 sarge,或者在本地全新安装一个debian系统,这样就会出现这样的问题debian sarge的安装工具仍旧会认为stable替换sarge。解决办法是

[code]cd /var/spool/apt-mirror/mirror/ftp.de.debian.org/debian/dists 
 ln -s sarge/ stable[/code]


当debian Etch变成稳定版本的时候你也可以镜像Etch。到时候不要忘了修改stable的symlink。

[code]cd /var/spool/apt-mirror/mirror/ftp.de.debian.org/debian/dists 
 rm -f stable 
 ln -s etch/ stable [/code]



这个问题不会出现在ubuntu中。

9 配置你的客户端电脑使用本地镜像
现在本地镜像已经可以使用了,我们所要做得是告诉 Debian Sarge和Ubuntu Edgy Eft 系统如何使用本地镜像。

Debian Sarge系统,在source。list中修改main,contrib,non-free的软件仓库
vi /etc/apt/sources.list


[...]
deb http://192.168.0.100/debian sarge main contrib non-free
[...]

Instead of sarge you could also use stable:

[...]
deb http://192.168.0.100/debian stable main contrib non-free
[...]

然后运行:
apt-get update

在 Ubuntu Edgy Eft系统中,你可以在sources.list中更换 main restricted universe的软件仓库。
vi /etc/apt/sources.list
[...]
deb http://192.168.0.100/ubuntu/ edgy main restricted universe
[...]

然后运行:
apt-get update

9.3 全新安装系统
如果你从本地镜像全新安装一个 Debian Sarge 或者 Ubuntu Edgy Eft那么你可以按照以下步骤进行: