当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 2 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [原创]关于debian的源下载方式,适用apt-get包管理器(原创,转载注明)
帖子发表于 : 2007-11-12 23:22 

注册: 2006-10-25 18:37
帖子: 54
送出感谢: 0 次
接收感谢: 0 次
2007-11-12 23:12
看了网上很多的文章介绍关于如何下载debian的镜像方法。清一色讲的是利用rsync的--exclude参数来排除,或者是用debmirror来下载。但是效率都不高,而且都有很大的缺点。
而我的想法是利用Packages这个文件来下载。因为apt-get是依照这个文件来建立软件仓库的,所以我只要解开这个文件后,将里面的包名提取出来,再用rsync来一次性下载,这样子,效率高,对磁盘空间的利用率也是百分百的。下面就是整个脚本。
########################################################################
#首先是一些变量
dists="--exclude *README* --exclude doc --exclude indices --exclude project --exclude tools --exclude *experimental* --exclude *proposed-updates*" #这是源根目录的一些文件,不需要
distribute="--exclude *Debian* --exclude *oldstable* --exclude *stable* --exclude *testing* --exclude *unstable* --exclude sid --exclude *sarge* --exclude etch-* --exclude lenny-*"#这是debian其它不需要的发行版本
#***各种架构***#

alpha="--exclude *-alpha.diff --exclude *-alpha --exclude *alpha.gz --exclude *_alpha.deb --exclude *_alpha.udeb"
arm="--exclude *-arm.diff --exclude *-arm --exclude *arm.gz --exclude *_arm.deb --exclude *_arm.udeb"
amd64="--exclude *-amd64.diff --exclude *-amd64 --exclude *amd64.gz --exclude *_amd64.deb --exclude *_amd64.udeb"
hppa="--exclude *-hppa.diff --exclude *-hppa --exclude *hppa.gz --exclude *_hppa.deb --exclude *_hppa.udeb"
i386="--exclude *-i386.diff --exclude *-i386 --exclude *i386.gz --exclude *_i386.deb --exclude *_i386.udeb"
ia64="--exclude *-ia64.diff --exclude *-ia64 --exclude *ia64.gz --exclude *_ia64.deb --exclude *_ia64.udeb"
m68k="--exclude *-m68k.diff --exclude *-m68k --exclude *m68k.gz --exclude *_m68k.deb --exclude *_m68k.udeb"
mips="--exclude *-mips.diff --exclude *-mips --exclude *mips.gz --exclude *_mips.deb --exclude *_mips.udeb"
mipsel="--exclude *-mipsel.diff --exclude *-mipsel --exclude *mipsel.gz --exclude *_mipsel.deb --exclude *_mipsel.udeb"
powerpc="--exclude *-powerpc.diff --exclude *-powerpc --exclude *powerpc.gz --exclude *_powerpc.deb --exclude *_powerpc.udeb"
s390="--exclude *-s390.diff --exclude *-s390 --exclude *s390.gz --exclude *_s390.deb --exclude *_s390.udeb"
sparc="--exclude *-sparc.diff --exclude *-sparc --exclude *sparc.gz --exclude *_sparc.deb --exclude *_sparc.udeb"
source="--exclude source --exclude *.diff.gz --exclude *.orig.tar.gz --exclude *.dsc --exclude *tar.gz --exclude *tar.bz2"
#***以上是各种架构***#

src="rsync://ftp.tw.debian.org/debian/" #打算从那个rsync服务器下载镜像呢?
dest="/media/sdb1/sources/debian/" #打算将镜像下载到那里呢?

rsync -avzPS --delete $dists $distribute $alpha $arm $amd64 $hppa $ia64 $m68k $mips $mipsel $powerpc $s390 $sparc $source $src/dists/ $dest/dists #首先下载Packages的文件

#***需要下载的镜像文件***#
dist="/dists/lenny/main/binary-i386/" #目录结构定义
gunzip -cd $dest/$dist/Packages.gz > $dest/$dist/Packages #将Packages解开
cat $dest/$dist/Packages | grep Filename: | sed '/^Filename/s/Filename: //g' > $dest/$dist/needfiles #清理文件,分离所需的文件名
rsync -avzP --delete --files-from=$dest/$dist/needfiles $src/ $dest/ #开始下载所需的镜像文件

dist="/dists/lenny/contrib/binary-i386/"
gunzip -cd $dest/$dist/Packages.gz > $dest/$dist/Packages
cat $dest/$dist/Packages | grep Filename: | sed '/^Filename/s/Filename: //g' > $dest/$dist/needfiles
rsync -avzP --delete --files-from=$dest/$dist/needfiles $src/ $dest/

dist="/dists/lenny/non-free/binary-i386/"
gunzip -cd $dest/$dist/Packages.gz > $dest/$dist/Packages
cat $dest/$dist/Packages | grep Filename: | sed '/^Filename/s/Filename: //g' > $dest/$dist/needfiles
rsync -avzP --delete --files-from=$dest/$dist/needfiles $src/ $dest/

#***以上是需要下载的镜像文件***#
http://hi.baidu.com/slong42/blog/item/b ... f364e.html


最后由 slong42 编辑于 2007-11-12 23:29,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-11-12 23:23 

注册: 2006-10-25 18:37
帖子: 54
送出感谢: 0 次
接收感谢: 0 次
稍做修改就是ubuntu的了,我就把原文贴这里了.有兴趣的ubuntu迷们自个改改吧


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 2 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译