> Ubuntu >

创建和使用本地ubuntu source镜像服务器

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } H1 { margin-bottom: 0.21cm } H1.western { font-family: "DejaVu Sans", sans-serif; font-size: 16pt } H1.cjk { font-family: "DejaVu Sans"; font-size: 16pt; font-style: normal; font-weight: bold } H1.ctl { font-family: "Lohit Hindi"; font-size: 16pt; font-weight: bold } H2 { margin-bottom: 0.21cm } H2.western { font-family: "DejaVu Sans", sans-serif; font-size: 14pt; font-style: italic } H2.cjk { font-family: "DejaVu Sans"; font-size: 14pt; font-style: italic } H2.ctl { font-family: "Lohit Hindi"; font-size: 14pt; font-style: italic } A:link { so-language: zxx } -->

为什么需要创建ubuntu本地镜像

ubuntu发行版光盘中都只有少数常用软件包。ubuntu上要安装的软件,常常需要到ubuntu源服务器上下载。

使用如下命令可以搜索和安装可用的软件包。

apt-cache search packageName

sudo apt-get install packageName

 

apt-get实际使用wget命令,从/etc/apt/sources.list配置文件指定的源上下载对应的.deb软件包,然后使用dpkg -i packageName.deb安装软件。

 

如果ubuntu电脑所在的环境网络性能较差,或者不能连接互联网,那么就很难安装ubuntu source服务器上的海量软件包。

 

此时,你可以在局域网内创建自己的ubuntu source服务器,从而节省大量网络流量,并且可以大大提高安装软件的速度!

 

本文将介绍如何创建ubuntu source的本地镜像。

 

 

创建ubuntu本地镜像

需求

为了创建ubuntu mirror服务器,你需要至少60G硬盘剩余空间。Ubuntu每一个版本分为32bit和64bit两个版本,有两组deb包。最新的ubuntu版本两组deb包需要大约90GB的空间。

你可以创建ubuntu一个版本的32或者64bit服务器,也可以创建同时服务于32和64bit的服务器。也可以创建服务于所有ubuntu版本的source服务器。根据你的硬盘剩余空间和你的需要而定。

 

 

 

使用sohu的ubuntu source服务器作为源服务器

Sohu公司提供了多种Linux和BSD操作系统发行版的source服务器。点击下面链接

http://mirrors.sohu.com/

可以看到sohu公司提供的所有种类的source服务器。

 

点击http://mirrors.sohu.com/help/ubuntu.html 页面可以看到ubuntu source服务器的使用帮助。

你可以直接修改/etc/apt/sources.list文件,添加上sohu的source服务器,从而使用sohu的source服务器,这比使用国外的ubuntu官方source服务器速度要快很多。

 

我接下来,要根据sohu的ubuntu source服务器,构建本地的ubuntu source服务器。

我选择sohu的ubuntu source服务器作为复制的source的原因:

1,sohu的ubuntu source服务器速度相当快。如果我使用ubuntu官方的source服务器作为复制的源,显然会花费更多的时间。

2,sohu的ubuntu source服务器每天都会和ubuntu官方source服务器同步一次。因此可以保证我能够使用最新版本的deb包。

我构建的ubuntu source服务器也会每天和sohu的ubuntu source服务器同步一次。

 

使用apt-mirror创建ubuntu source服务器的本地镜像服务器

Sudo apt-get install apt-mirror 

sudo apt-get install apache2

我们需要上面这两个软件来构建我们的本地ubuntu source服务器。

 

我现在以构建ubuntu10.10和ubuntu10.04的32和64位版本的本地ubunt source服务器为例进行介绍。

如果你需要服务于其他版本,请修改对应的配置。

 

/etc/apt/mirror.list配置文件修改为如下:

############# config ##################

#

# 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 cleanscript $var_path/clean.sh

# set defaultarch <running host architecture>

# set postmirror_script $var_path/postmirror.sh

# set run_postmirror 0

set nthreads 20

set _tilde 0

#

############# end config ##############

 

deb http://mirrors.sohu.com/ubuntu lucid main main/debian-installer restricted restricted/debian-installer universe multiverse

deb http://mirrors.sohu.com/ubuntu maverick main main/debian-installer restricted restricted/debian-installer universe multiverse

deb http://mirrors.sohu.com/ubuntu lucid-security main restricted universe multiverse

deb http://mirrors.sohu.com/ubuntu maverick-security main restricted universe multiverse

deb http://mirrors.sohu.com/ubuntu lucid-updates main restricted universe multiverse

deb http://mirrors.sohu.com/ubuntu maverick-updates main restricted universe multiverse

#deb http://archive.ubuntu.com/ubuntu maverick-proposed main restricted universe multiverse

#deb http://archive.ubuntu.com/ubuntu maverick-backports main restricted universe multiverse

 

deb-src http://mirrors.sohu.com/ubuntu lucid main restricted universe multiverse

deb-src http://mirrors.sohu.com/ubuntu maverick main restricted universe multiverse

deb-src http://mirrors.sohu.com/ubuntu lucid-security main restricted universe multiverse

deb-src http://mirrors.sohu.com/ubuntu maverick-security main restricted universe multiverse

deb-src http://mirrors.sohu.com/ubuntu lucid-updates main restricted universe multiverse

deb-src http://mirrors.sohu.com/ubuntu maverick-updates main restricted universe multiverse

#deb-src http://archive.ubuntu.com/ubuntu maverick-proposed main restricted universe multiverse

#deb-src http://archive.ubuntu.com/ubuntu maverick-backports main restricted universe multiverse

 

deb-i386 http://mirrors.sohu.com/ubuntu lucid main main/debian-installer restricted restricted/debian-installer universe multiverse

deb-i386 http://mirrors.sohu.com/ubuntu maverick main main/debian-installer restricted restricted/debian-installer universe multiverse

deb-i386 http://mirrors.sohu.com/ubuntu lucid-security main restricted universe multiverse

deb-i386 http://mirrors.sohu.com/ubuntu maverick-security main restricted universe multiverse

deb-i386 http://mirrors.sohu.com/ubuntu lucid-updates main restricted universe multiverse

deb-i386 http://mirrors.sohu.com/ubuntu maverick-updates main restricted universe multiverse

#deb http://archive.ubuntu.com/ubuntu maverick-proposed main restricted universe multiverse

#deb http://archive.ubuntu.com/ubuntu maverick-backports main restricted universe multiverse

 

#deb-src http://mirrors.sohu.com/ubuntu lucid main restricted universe multiverse

#deb-src http://mirrors.sohu.com/ubuntu maverick main restricted universe multiverse

 

说明:

maverick和lucid分别是ubuntu10.10和10.04的代号。

deb http://*  表示下载64位版本的deb软件。

deb-i386 http://*  表示下载32位版本的deb软件。

 

然后执行: sudo apt-mirror

这会启动20个线程【上面文件中配置】运行wget到 http://mirrors.sohu.com/ubuntu 下面下载相应的deb包。

sudo apt-mirror执行完成后,/var/spool/apt-mirror目录下就有了所有需要的deb包和相应的配置文件。

因为我现在是从sohu下载的,所以实际的文件在:/var/spool/apt-mirror/mirror/mirrors.sohu.com/ubuntu目录下。

如果你选择其他ubuntu source服务区,那么会下载到其他对应的目录下。

 

启动本地Web服务器以启动本地ubuntu source服务器

现在我们本地已经有了所有ubuntu source服务器需要的文件,但是现在我们还不能使用本地的ubuntu source服务器。因为它还没有启动。

 

Ubuntu source服务器实际上是一个http服务器。我们访问sohu的ubuntu source服务器就是用浏览器访问的。

 

所以,我们也需要启动一个web服务器来启动本地的ubuntu source服务器。

 

我选择使用apache2这个web服务器来为ubuntu source服务器服务。Ubuntu source服务器实际上就是一系列静态文件。 

Apt-cache ,apt-get 程序就是通过wget下载对应的静态文件实现软件下载和安装的。

众所周知,Apache2 Web服务器服务于静态文件时非常高效、稳定。因此我选择apache2服务器。

 

apache2服务器安装后,默认使用/var/www/目录作为Web的根目录。

我这里取个巧,直接

cd /var/www/

然后

ln /var/spool/apt-mirror/mirror/mirrors.sohu.com/ubuntu -s

在/var/www目录下创建一个ubuntu超链接,链接到/var/spool/apt-mirror/mirror/mirrors.sohu.com/ubuntu目录下。

 

sudo apache2ctl start/restart/stop/status 命令可以管理apache2服务器。使用sudo apache2ctl start启动。

 

打开浏览器,输入http://localhost/ubuntu

就可以看到和http://mirrors.sohu.com/ubuntu/ 相同的页面。

 

至此,我们的本地ubuntu source服务器已经创建成功了。

 

每天定时同步本地ubunt source服务器和远程ubunt source服务器

我们现在创建的ubunt source服务器的内容和sohu版本的服务器相同。但是,每天ubuntu团队都在向ubuntu source服务器中添加新的deb包。

Sohu每天也都会和ubuntu官方source服务器同步。

我们必须经常使用sudo apt-mirror命令才能同步最新的deb包。

 

我们可以使用一个定时执行的脚本,实现每天和sohu的ubuntu source服务器同步来解决这个问题。

Sudovim /etc/cron.d/apt-mirror

把命令签名的#去掉。命令如下:

0 4 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log

这样,计算机每天就会自动启动apt-mirror和ubuntu source服务器同步。

 

 

使用本地ubuntu source镜像服务器

现在,我们可以修改/etc/atp/source.list文件以使用本地ubuntu source服务器作为apt源。

 

如,我的ubunt服务器的地址是172.16.1.1,那么加入:

deb http://172.16.1.1/ubuntu maverick main

deb-src http://172.16.1.1/ubuntu maverick main

deb http://172.16.1.1/ubuntu maverick main restricted universe multiverse

deb-src http://172.16.1.1/ubuntu maverick main restricted universe multiverse

deb http://172.16.1.1/ubuntu maverick-security main restricted universe multiverse

deb-src http://172.16.1.1/ubuntu maverick-security main restricted universe multiverse

deb http://172.16.1.1/ubuntu maverick-updates main restricted universe multiverse

deb-src http://172.16.1.1/ubuntu maverick-updates main restricted universe multiverse

 

即可。如果你还想同时使用其他的ubunt source服务器,那么把上述配置放在配置文件的上面,以先匹配。

 

然后执行sudo apt-get update更新,以重建本地索引。以后就会使用本地的ubunt source服务器了。速度嗖嗖的:)

(责任编辑:IT)