一、摘要
网上有很不少关于搭建源镜像的文章,可是对于通常人来说,用不着镜像全部的deb包,只对咱们能用到的感兴趣。另外,对于一些在Ubuntu的源中没有的软件,咱们也能够放在咱们本身的源里,这样须要的时候就用不着去网上从新搜了。
二、源服务器目录结构
dists
+------Lucid
| +---------main
| | +------------binary-i386
| | | +--------------xxx.deb
| | | +--------------xxx.deb
| | | +--------------……
| | | +--------------Packages.gz
| | +------------其它体系结构
| +---------restricted
| | +------------binary-i386
| | +------------其它体系结构
| +---------universe
| +---------multiverse
+------Maverick
+------Natty
dists目录下包含各类ubuntu发布版本名称:Lucid(10.04)、Maverick(10.10)等等;
版本名称(Lucid)目录下包含4种软件包类别:
main : 官方支持的软件包
restricted :受限(许可证)支持软件包
universe :社区支持软件包,非官方支持软件包
multiverse :收费软件包
包类别(main)目录下包含各类体系结构:binary-i386等等
体系结构(binary-i386)目录下包含软件包deb文件,而且第一个体系结构目录下都有一个Packages.gz文件。
三、source.list文件
deb http://us.archive.ubuntu.com/ubuntu/ hardy main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ hardy main restricted
以上两行为source.list文件的一部分,其含义以下:
ubuntu中根据deb包中所包含的内容将其分为两种,一种是包含已编译的二进制可执行文件或预编译的deb包,另外一种是包含软件源码的deb包。在source.list文件中用deb和deb-src区分这种包;
hardy表示ubuntu的发布版本号;
main restricted表软件包的类别。
当执行apt-get install xxx时,会根据apt-get update获得的deb文件列表获取相应的deb文件。
由以上过程可知,搭建源服务器最关键的步骤是生成Packages.gz文件,由dpkg-scanpackages命令完成。举例,如须要给dists/hardy/main/binary-i386目录生成Packages.gz,命令以下:
cd dists/../ # 进入dists的父目录
dpkg-scanpackages dists/hardy/main/binary-i386 | gzip -9 > dists/hardy/main/binary-i386/Packages.gz
四、服务器搭建
安装完Apache后,将dists目录拷贝到Apache服务器根目录的ubuntu目录下,或者建立符号连接。
五、其它
查看一个dpkg-scanpackages命令属于哪一个软件包:
apt-file search dpkg-scanpackages | grep bin
六、参考连接
转载自:http://blog.chinaunix.net/uid-24874146-id-2556553.html