免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1122 | 回复: 0
打印 上一主题 下一主题

使用APT-MIRROR在本地建立debian镜像服务器 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-12 10:19 |只看该作者 |倒序浏览
第一次翻译,翻译得不好还请大家见谅,多多指出错误~!:)
原文可以见如下的贴子:http://forum.ubuntu.org.cn/viewtopic.php?t=40082&highlight=%E7%BF%BB%E8%AF%91
使用apt-mirror建立局域网内的Debian/Ubuntu源镜像
Version 1.0
Author: Falko Timme  
Last edited 12/26/2006
翻译:icyfire (icyfire0105@gmail.com)
本教程将指导你如何利用apt-mirror建立局域网内的Debian/Ubuntu源镜像。如果你需要在局域网内安装多套系统,那么建立一个本地的Debian/Ubuntu源镜像将会有益,在您更新系统的时候将获得比互联网连接快得多的速度,而且还能节省您的互联网带宽。
我首先想说的是本文所讲的方法并不是唯一建立Debian/Ubuntu源镜像的方法。有很多方法可以达成这个目标,但是这却是我采用的办法。我并不保证这个方法适用于您。
1 前期准备
你可以在debian和ubuntu系统上建立Debian/Ubuntu源镜像,也就是说,debian系统可以建立Debian和Ubuntu源镜像,ubuntu系统上也能建立Debian和Ubuntu源镜像。
需要注意的是要建立一个源镜像你需要有一个快一点的连接和足够大的硬盘空间。在我的测试过程中我做了一个Debian Sarge的main,contrib 和non-free部分的镜像和 Ubuntu Edgy Eft的 main, restricted, universe部分的镜像,这总共占用了大概25G的硬盘空间,在16M的DSL的带宽下,花了6小时的时间才下载完。
我没有建立安全部分的镜像,因为我认为直接从互联网上下载安全更新会更好一点,因为这样可以保证你总能获得最新的版本。
本测试基于 Debian Sarge 和Ubuntu Edgy Eft操作系统,如果你使用的是其他的版本,那么这个步骤可能会有细微的差异。你需要安装一个基本的 Debian Sarge 系统(安装步骤
http://www.howtoforge.com/perfect_setup_debian_sarge
)或者 Ubuntu Edgy Eft系统(安装步骤http://www.howtoforge.com/perfect_setup_ubuntu_6.10)
这个例子中本地源镜像的ip是192.168.0.100.
2,1安装apt-mirror
修改/etc/apt/sources.list(Debian Sarge必须)
如果你安装的是 Debian Sarge,你必须要修改sources.list.我不清楚Debian Etch 或者 Sid是否必须要修改,你可以自己尝试一下。对Ubuntu Edgy Eft. 这一步不适必须的。
代码:
vi /etc/apt/sources.list
加入下面怪这一行。
代码:
deb http://apt-mirror.sourceforge.net/ apt-mirror/
然后执行:
代码:
apt-get update
2.2安装apt-mirror
这一步对Debian和Ubuntu都是必须的,安装apt-mirror,执行
代码:
apt-get install apt-mirror
3安装阿帕奇。
我想要通过http的方式获得本地Debian/Ubuntu的源镜像,因此需要安装apache web服务器。
代码:
apt-get install apache2
默认的根目录是/var/www,接下来我会symlink这个目录到Debian and Ubuntu 的软件仓库所在目录。
4配置apt-mirror
apt-mirror的配置文件在/ etc/apt/mirror.list,debian sarge中的默认配置文件如下:
引用:
# apt-mirror configuration file
##
## The default configuration options (uncomment and change to override)
##
#
# set base_path /var/spool/apt-mirror
# set mirror_path $base_path/mirror
# set skel_path $base_path/skel
# set var_path $base_path/var
#
# set defaultarch
# set nthreads 20
#
##
## Example sources
##
# sarge's section
deb
http://ftp.fi.debian.org/debian
sarge main contrib non-free
deb-src
http://ftp.fi.debian.org/debian
sarge main contrib non-free
deb
http://security.debian.org/debian-security
sarge/updates main contrib non-free
deb-src
http://security.debian.org/debian-security
sarge/updates main contrib non-free
deb
http://ftp.fi.debian.org/debian
sarge main/debian-installer
# sarge-proposed-updates's section
deb
http://ftp.fi.debian.org/debian
sarge-proposed-updates main contrib non-free
deb-src
http://ftp.fi.debian.org/debian
sarge-proposed-updates main contrib non-free
# sid's section
deb
http://ftp.fi.debian.org/debian
sid main contrib non-free
deb-src
http://ftp.fi.debian.org/debian
sid main contrib non-free
deb
http://ftp.fi.debian.org/debian
sid main/debian-installer
# experimental section
deb
http://ftp.fi.debian.org/debian
../project/experimental main contrib non-free
deb-src
http://ftp.fi.debian.org/debian
../project/experimental main contrib non-free
##
## Cleaner configuration example
##
#
# set cleanscript $var_path/clean.sh
#
# Cleaning section
clean
http://security.debian.org/

clean
http://ftp.fi.debian.org/

skip-clean
http://ftp.fi.debian.org/doc/

skip-clean
http://ftp.fi.debian.org/tools/

skip-clean
http://ftp.fi.debian.org/debian-cd/

skip-clean
http://ftp.fi.debian.org/debian-minicd/

skip-clean
http://ftp.fi.debian.org/debian/dists/s ... ller-i386/

skip-clean
http://ftp.fi.debian.org/debian/dists/s ... ller-i386/

skip-clean
http://ftp.fi.debian.org/debian/doc/

skip-clean
http://ftp.fi.debian.org/debian/tools/

skip-clean
http://ftp.fi.debian.org/debian/project/

skip-clean
http://ftp.fi.debian.org/debian-non-US/project/

Ubuntu Edgy Eft中的默认文件如下:
引用:
############# config ##################
#
# 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
set nthreads 20
set tilde 0
#
############# end config ##############
deb
http://archive.ubuntu.com/ubuntu
edgy main restricted universe multiverse
deb
http://archive.ubuntu.com/ubuntu
edgy-updates main restricted universe multiverse
#deb
http://archive.ubuntu.com/ubuntu
edgy-backports main restricted universe multiverse
deb
http://archive.ubuntu.com/ubuntu
edgy-security main restricted universe multiverse
#deb
http://archive.ubuntu.com/ubuntu
edgy-proposed main restricted universe multiverse
deb-src
http://archive.ubuntu.com/ubuntu
edgy main restricted universe multiverse
deb-src
http://archive.ubuntu.com/ubuntu
edgy-updates main restricted universe multiverse
#deb-src
http://archive.ubuntu.com/ubuntu
edgy-backports main restricted universe multiverse
deb-src
http://archive.ubuntu.com/ubuntu
edgy-security main restricted universe multiverse
#deb-src
http://archive.ubuntu.com/ubuntu
edgy-proposed main restricted universe multiverse
clean
http://archive.ubuntu.com/ubuntu

如果你对比/etc/apt/sources.list 和/etc/apt/mirror.list,你会发现两者非常相似,二者都列举了一些应当被镜像的软件库,另外还有一些其他选项。
现在我修改/etc/apt/mirror.list.就象我前面说过的一样,我要镜像Debian Sarge的main,contrib 和non-free部分和 Ubuntu Edgy Eft的 main, restricted, universe部分
,不镜像应该直接从互联网上下载的安全部分。另外,我也没有镜像源代码包,因为95%的安装文件不需要源代码,而源代码包文件又会占据巨大的硬盘空间。所以我的/etc/apt/mirror.list 修改成下面的样子:
代码:
vi /etc/apt/mirror.list
引用:
# apt-mirror configuration file
##
## The default configuration options (uncomment and change to override)
##
#
# set base_path /var/spool/apt-mirror
# set mirror_path $base_path/mirror
# set skel_path $base_path/skel
# set var_path $base_path/var
#
# set defaultarch
# set nthreads 20
#
##
## Example sources
##
# sarge's section
deb
http://ftp.de.debian.org/debian
sarge main contrib non-free
# Ubuntu Edgy Eft
deb
http://de.archive.ubuntu.com/ubuntu/
edgy main restricted universe
##
## Cleaner configuration example
##
#
# set cleanscript $var_path/clean.sh
#
# Cleaning section
clean
http://ftp.de.debian.org/

clean
http://de.archive.ubuntu.com/

请注意我用ftp.de.debian.org 代替了ftp.fi.debian.org ,用 de.archive.ubuntu.com代替了
archive.ubuntu.com. 你应该选择一个距离你比较近的镜像,所以如果你在美国,就用us替代de。
最后的cleaning部分告诉apt-mirror本地的硬盘应该和哪个软件仓库对比以确定哪些文件可以自动清除掉。我要检查Debian 和Ubuntu全部的软件,所以我修改成了,
clean
http://ftp.de.debian.org/

clean
http://de.archive.ubuntu.com/

如果你使用了其他的 Debian/Ubuntu版本,请用etch或者sid替换sarge;breezy或者dapper替换edgy。
5创建本地软件仓库
现在apt-mirror已经配置好了,现在应该第一次运行它,下载所有的包构建本地的Debian/Ubuntu软件仓库。我们只需要执行:
  1. su - apt-mirror -c apt-mirror
  2. [/eode]
  3. apt-mirror会告诉你到底要下载多少GB的文件。这将会花上几个小时,所以要耐心点。这些包将会存储在/var/spool/apt-mirror/mirror的子目录中,所以你要保证该分区还有足够的硬盘空间。
  4. debian的在/var/spool/apt-mirror/mirror/ftp.de.debian.org/debian,
  5. unbuntu的在/var/spool/apt-mirror/mirror/de.archive.ubuntu.com/ubuntu.
  6. 如果你在第四步选择了一个不同的镜像,那么这个路径或许有些不同。
  7. 6清理软件仓库
  8. 等到apt-mirror下载完了所有的包,它非常可能会告诉你可以清除出一些硬盘空间来,使用以下脚本:
  9. /bin/bash /var/spool/apt-mirror/var/clean.sh
  10. 输出如下:
  11. server1:~# /bin/bash /var/spool/apt-mirror/var/clean.sh
  12. Removing 157 unnecessary files [13316096 bytes]...
  13. [0%]................done.
  14. Removing 18 unnecessary directories...
  15. [0%]..................done.
  16. 这样你就能看到有多少硬盘空间被清理出来了。
  17. 7 更新本地软件仓库
  18. 更新本地镜像是非常简单的,执行
  19. [code]su - apt-mirror -c apt-mirror
复制代码
如果你不想手工执行更新,那么你可以编写一个定时执行的corn任务。只需要编辑/etc/corn.d/apt-mirror,在最后一行添加如下即可:
  1. vi /etc/cron.d/apt-mirror
复制代码
引用:
#
# Regular cron jobs for the apt-mirror package
#
0 4 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log
8 通过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到真正的库地址。
  1. ln -s /var/spool/apt-mirror/mirror/ftp.de.debian.org/debian /var/www/debian
  2. ln -s /var/spool/apt-mirror/mirror/de.archive.ubuntu.com/ubuntu /var/www/ubuntu
复制代码

如果你使用了其他镜像,记得调整这两行命令。
接下来要考虑的一件事情是,你认为DebianSarge是sarge而且是稳定的e(至少目前是稳定的,而Etch仍旧在测试中),那么当你运行
  1. ls -l /var/spool/apt-mirror/mirror/ftp.de.debian.org/debian/dists
复制代码

你会发现那里有一个sarge的目录,但却是不稳定的,但是如果你在source.list中用稳定的替换了 sarge,或者在本地全新安装一个debian系统,这样就会出现这样的问题debian sarge的安装工具仍旧会认为stable替换sarge。解决办法是
  1. cd /var/spool/apt-mirror/mirror/ftp.de.debian.org/debian/dists
  2. ln -s sarge/ stable
复制代码

当debian Etch变成稳定版本的时候你也可以镜像Etch。到时候不要忘了修改stable的symlink。
  1. cd /var/spool/apt-mirror/mirror/ftp.de.debian.org/debian/dists
  2. rm -f stable
  3. ln -s etch/ stable
复制代码

这个问题不会出现在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那么你可以按照以下步骤进行:


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/62871/showart_2092248.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP