一、摘要
網上有很不少關於搭建源鏡像的文章,可是對於通常人來說,用不着鏡像全部的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