Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1817610
  • 博文数量: 473
  • 博客积分: 13997
  • 博客等级: 上将
  • 技术积分: 5953
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-22 11:52
文章分类

全部博文(473)

文章存档

2014年(8)

2013年(38)

2012年(95)

2011年(181)

2010年(151)

分类: LINUX

2010-09-03 15:10:06

让ubuntu星星之火,可以燎原!

本教程将指导你如何利用apt-mirror建立局域网内的Debian/Ubuntu源镜像。如果你需要在局域网内安装多套系统,那么建立一个本 地的Debian/Ubuntu源镜像将会有益,在您更新系统的时候将获得比互联网连接快得多的速度,而且还能节省您的互联网带宽。

我首先想说的是本文所讲的方法并不是唯一建立Debian/Ubuntu源镜像的方法。有很多方法可以达成这个目标,但是这却是我采用的办法。我并不保证这个方法适用于您。

前期准备
你可以在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 系统(安装步骤 )或者 Ubuntu Edgy Eft系统(安装步骤)
这个例子中本地源镜像的ip是192.168.0.100.



首先,部分本地源的制作


平时apt-get 或新立得安装软件时,下载的deb文件都会存放在/var/cache/apt/archives/下, 为了今后重装或给别人用,特别是没有网络时,这些deb文件实际上是可以派上用途的,也就是可以用这些deb制作成本地源


下面给出可行且实用的部分本地源制作步骤:

1 sudo apt-get install nautilus-open-terminal dpkg-dev
2 将 /var/cache/apt/archives/下的所有deb文件拷到(cp命令,图形界面都没问题) 你想要的地方,拷贝前建议执行一下
代码:
sudo apt-get autoclean


比方说拷至一个windows分区下的APT1目录中: /media/hda3/APT1
3 拷完后用文件浏览器(nautilus)进入刚才新建的目录APT1所在的上一级目录,也就是: /media/hda3
4 在文件浏览器(nautilus) 中的空白处点右键,选在终端中打开,这时会打开一个新的终端。
5 在新打开的终端中执行: sudo dpkg-scanpackages APT1 /dev/null |gzip >APT1/Packages.gz
6 gksu gedit /etc/apt/sources.list
把 deb file:///media/hda3/ APT1/
注意APT1后面有一个斜杠,前面还要有空格
加入到sources.list即可。
如果你安装了apache2,也可以把这个部分源对外开放,方法如下
sudo ln -s /media/hda3/APT1/ /var/www/ubuntu-local
gksu gedit /etc/apt/sources.list
把 deb /
加入到sources.list即可。
注意空格后有一个斜杠
网上其它电脑修改源时,要把127.0.0.1改为你的ip地址或域名


另外,也可以:

代码:
sudo apt-get install  aptoncd

aptoncd可以把/var/cache/apt/archives/下的所有deb文件打包到iso文件,并且自动生成一个虚包,在新立得中加入这个光盘源后,只要安装这个虚包,即可把所有deb一次性安装好。

接下来,完整的镜相源制作,这一步大部分人都用不着,除非你在局域网者或者上行网速很快:


镜像目录为/var/spool/下的 apt-mirror

安装前一定要注意:

尽量用官方源或找口碑不错的镜像站进行镜像

安装不放心的镜像站软件时,没有认证的软件要慎重安装

制作好的朋友,建议对自己的朋友共享出来,对于没有网络的朋友,可以通过同城交流来进行拷贝。


我试了不少镜像方案,发现下面的方法比较简单

下面以镜像中国科技大学(USTC) ubuntu源 和 ubuntu-cn 以及 ubuntu 终级版 7.04 三个 pc 源为例

注意,/var下要有35G以上的空间,建议在35G的基础上再保留30%以上的余量

/var下没有空间的朋友可以把镜像目录改到windows分区中,可以参考本贴81楼的方法,也可修改mirror.list中的第一行 base_path指定apt-mirror所在路径 同时在这个目录下建立mirror skel var三个文件夹,对应三行的注释(#)去掉即可, 7.10 或以上版本空间上要留一定的余量,就如同安装xp,如果说安装xp c盘至少要2G的空间,你会只给c盘分2G吗?

如果镜像其它ubuntu源,只要把下面提到的源做相应 修改即可!url全部用颜色标出,根据自身情况修改,feisty为7.04 ,如果镜像ubuntu 7.10 ,改为gutsy ,8.04 改为hardy...............8.10改为intrepid ........9.04 改为Jaunty..............10.04 改为.................................


1、安装相应软件

代码:
apt-get install apt-mirror
apt-get install apache2  #如果不打算对局域网或互联网开放,这个不必装

2、配制镜像
代码:
gksu gedit  /etc/apt/mirror.list

引用:
############# 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
#默认为20线程下载,雕推荐3线程,20可能会造成服备器或网络loading太重
set nthreads 20
set tilde 0
#
############# end config ##############
#ubuntu-cn 7.04源
deb feisty main restricted universe multiverse
# ubuntu 终级版 7.04 源, ubuntu 7.04可用
deb feisty all
#中国科技大学(USTC) ubuntu 7.04 源
deb feisty main restricted universe multiverse
deb feisty-backports restricted universe multiverse
deb feisty-proposed main restricted universe multiverse
deb feisty-security main restricted universe multiverse
deb feisty-updates main restricted universe multiverse
#ubuntu 7.04 src源不进行同步,因为大部分人用不上,如果同步,要多增加一倍空间
#deb-src feisty main restricted universe multiverse
#deb-src feisty-backports main restricted universe multiverse
#deb-src feisty-proposed main restricted universe multiverse
#deb-src feisty-security main restricted universe multiverse
#deb-src feisty-updates main restricted universe multiverse

#同步了三个源,所以有三行,下面的代码是为了镜像成功后节省空间的,实际上下面的三行不写也是可以的
clean
clean
clean

3、进行镜像


代码:
sudo  apt-mirror

网速不同,时间不同,完成后有提示,如果时间太长,可以关闭终端或ctrl+c ,如果电脑关机,什么时候要继续,再重新执行代码即可,这时原来下载过的是不会重新下载的。

代码:
sudo  apt-mirror

直到完成,完成后有如何节约空间的提示,可以不去理会

4。接下来,配制镜像源/本地源/更新源/离线升级包,颜色部分根据你镜像的源进行修改即可,如果只同步一个,就只执行其中一行即可

引用:
sudo ln -s /var/spool/apt-mirror/mirror/debian.ustc.edu.cn/ /var/www/ubuntu #如果第一步中的apache2 没装,这一步跳过
sudo ln -s /var/spool/apt-mirror/mirror/archive.ubuntu.org.cn/ /var/www/ubuntu-cn #如果第一步中的apache2 没装,这一步跳过
sudo ln -s /var/spool/apt-mirror/mirror/ubuntusoftware.info/ /var/www/ubuntu-ultimate #如果第一步中的apache2 没装,这一步跳过

修改源,

代码:
gksu gedit  /etc/apt/sources.list

引用:
#局域网或互联网用户只要把地址127.0.0.1改为你的实际ip地址或域名即可,如果你的apache2没装或关闭,你自己和你要服务的网上用户不可以用这个做源
deb feisty main restricted universe multiverse
deb feisty-backports restricted universe multiverse
deb feisty-proposed main restricted universe multiverse
deb feisty-security main restricted universe multiverse
deb feisty-updates main restricted universe multiverse
deb feisty main restricted universe multiverse
deb feisty all

引用:
#如果只给自己用,或从朋友处直接拷贝过来的,在不开apache2或不装apache2情况下,要写成这样的格式
deb file:///var/spool/apt-mirror/mirror/archive.ubuntu.org.cn/ubuntu-cn/ feisty main restricted universe multiverse
deb file:///var/spool/apt-mirror/mirror/ubuntusoftware.info/ feisty all
deb file:///var/spool/apt-mirror/mirror/debian.ustc.edu.cn/ubuntu/ feisty main restricted universe multiverse
deb file:///var/spool/apt-mirror/mirror/debian.ustc.edu.cn/ubuntu/ feisty-backports restricted universe multiverse
deb file:///var/spool/apt-mirror/mirror/debian.ustc.edu.cn/ubuntu/ feisty-proposed main restricted universe multiverse
deb file:///var/spool/apt-mirror/mirror/debian.ustc.edu.cn/ubuntu/ feisty-security main restricted universe multiverse
deb file:///var/spool/apt-mirror/mirror/debian.ustc.edu.cn/ubuntu/ feisty-updates main restricted universe multiverse

如果镜像完成后想对镜像源进行更新,只要再

代码:
sudo  apt-mirror

这时原来下载过的是不会重新下载的


##########################################

如何建立一个Debian镜像网站呢?在Debian的官方网站已经有专门的介绍:

    在对Debian做镜像之前有一个要考虑的问题是:你准备对Debian镜像到何种程度,或者说你的硬盘有多大?一些我们很少用的 计算机类型的 Debian资源是否需要镜像?如果镜像整个Debian,大约需要100G的硬盘空间,每种CPU架构的Woody Sarge Sid软件加起来大约是6--8G。

[编辑]方法一:使用Debmirror简单实现
    官方提供的是基于rsync软件的方法,网页也提供了进行网站镜像的现成脚本,但是实现起来比较麻烦而且常常失败。使用debmirror这个软件来进行Debian镜像应该更简单一些。

    Debmirror是一个德国人用perl写的Debian网站镜像工具,使用起来更为简单和方便。在缺省的情况下, debmirror使用ftp方式 (也可以使用rsync、http方式)来获取debian所有内容到本地硬盘,再通过系统的http服务器或是ftp服务器将本机设置为合法的apt 源,其他客户通过修改自己debian系统的/etc/sources.list文件指向该机器。

下面来看看具体工作过程:

1、安装debmirror软件

#apt-get install debmirror
2、运行debmirror软件获得debian软件包

在此之前,你要决定你的debian软件包放在硬盘的那个目录,这是debmirror运行必需参数,假如:

#debmirror /mydebian
    意思是将整个debian以所有的缺省参数镜像到我的电脑的/mydebian目录下。啊,100G呀!要下载多久啊!显然不现实,我们需要使用一些其他参数来调整我们的镜像过程,debmirror的可选参数很多,你可以:

#man debmirror
来查看,下面介绍几个重要的:

-v:详细显示镜像的具体步骤,最好选上,时刻掌握debmirror的动向。-h:从哪个主机下载debian软件包,缺省是 ftp.debian.org,国内我想最好使用debian.cn99.com。-d:决定镜像debian的哪个版本,我喜欢折中主义,选择 sarge。缺省都选。-s:决定镜像debian的哪个部分,即在main,contrib,non-free三者中选一个,缺省都选。-a:选择计算 机架构方式,缺省为i386。  --nosource:缺省情况下,debmirror会把debian包的源码一起下载,该参数则禁止下载源码
    假如我想做个最简单的debian源,从我身边最快的debian网站,镜像i386、arm、amd64电脑的sid、sarge、 testing、unstable、stable的main部分的软件包而且带源码,下载来的包放在debmirror目录下,并且当 Release.gpg和 Release文件下载错误时,忽略继续进行;下载那么命令是:

debmirror -v -e http -h ftp.tw.debian.org -a i386,arm,amd64 -d sid,sarge,testing,unstable,stable --ignore-release-gpg --ignore-missing-release   --nosource /debmirror
3、下载完后的设置
我想通过http方式发布我的debian镜像,先在我的httpd.conf后面加一句:

Alias /debmirror /mydebian
再用#apachectl restart重新启动apache服务器,就好了。

4、客户端的修改
现在修改/etc/apt/sources.list文件,加入或者只保留:

deb sarge main
再用#apt-get update更新就可以了。

##############################################

sudo debmirror -v -e http -h -r grip -a armel -d lenny -s main,dev --ignore-release-gpg --ignore-missing-release --nosource /media/49e79724-20ae-4492-bb7f-967dcdfba9e3/


阅读(1440) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~