Ubuntu12.04搭建自有源

Ubuntu12.04搭建自有源
 
其实,这个工作比较简单,主要两步:apt-mirror和apache。(这里的系统是ubuntu12.04)
 
1、apt-mirror
 
1.1 安装
 
一如既往地简单,直接sudo apt-get install apt-mirror即可。
 
1.2 配置apt-mirror
 
$ sudo vim /etc/apt/mirror.list
 
[plain] 
############# 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://archive.ubuntu.com/ubuntu precise main restricted universe multiverse  
deb http://archive.ubuntu.com/ubuntu precise-security main restricted universe multiverse  
deb http://archive.ubuntu.com/ubuntu precise-updates main restricted universe multiverse  
#deb http://archive.ubuntu.com/ubuntu precise-proposed main restricted universe multiverse  
#deb http://archive.ubuntu.com/ubuntu precise-backports main restricted universe multiverse  
  
deb-src http://archive.ubuntu.com/ubuntu precise main restricted universe multiverse  
deb-src http://archive.ubuntu.com/ubuntu precise-security main restricted universe multiverse  
deb-src http://archive.ubuntu.com/ubuntu precise-updates main restricted universe multiverse  
#deb-src http://archive.ubuntu.com/ubuntu precise-proposed main restricted universe multiverse  
#deb-src http://archive.ubuntu.com/ubuntu precise-backports main restricted universe multiverse  
  
clean http://archive.ubuntu.com/ubuntu  
将其修改为对自己比较快的源(这里用ustc的):
[plain] 
############ 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 ##############  
  
#precise 64bit Mirror  
deb-amd64 http://mirrors.ustc.edu.cn/ubuntu precise main restricted universe multiverse  
deb-amd64 http://mirrors.ustc.edu.cn/ubuntu precise-security main restricted universe multiverse  
deb-amd64 http://mirrors.ustc.edu.cn/ubuntu precise-updates main restricted universe multiverse  
deb-amd64 http://mirrors.ustc.edu.cn/ubuntu precise-proposed main restricted universe multiverse  
deb-amd64 http://mirrors.ustc.edu.cn/ubuntu precise-backports main restricted universe multiverse  
  
#precise 32bit Mirror  
deb-i386 http://mirrors.ustc.edu.cn/ubuntu precise main restricted universe multiverse  
deb-i386 http://mirrors.ustc.edu.cn/ubuntu precise-security main restricted universe multiverse  
deb-i386 http://mirrors.ustc.edu.cn/ubuntu precise-updates main restricted universe multiverse  
deb-i386 http://mirrors.ustc.edu.cn/ubuntu precise-proposed main restricted universe multiverse  
deb-i386 http://mirrors.ustc.edu.cn/ubuntu precise-backports main restricted universe multiverse  
  
deb-src http://mirrors.ustc.edu.cn/ubuntu precise main restricted universe multiverse  
deb-src http://mirrors.ustc.edu.cn/ubuntu precise-security main restricted universe multiverse  
deb-src http://mirrors.ustc.edu.cn/ubuntu precise-updates main restricted universe multiverse  
deb-src http://mirrors.ustc.edu.cn/ubuntu precise-proposed main restricted universe multiverse  
deb-src http://mirrors.ustc.edu.cn/ubuntu precise-backports main restricted universe multiverse  
  
clean http://mirrors.ustc.edu.cn/ubuntu  
1.3 apt-mirror同步源
 
用sudo apt-mirror命令开始同步源即可。
 
[plain] 
$ sudo apt-mirror  
Downloading 140 index files using 20 threads...  
Begin time: Fri Nov  1 17:23:49 2013  
[20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]...   
End time: Fri Nov  1 17:23:49 2013  
  
Proceed indexes: [SSSSSPPPPP]  
  
93.0 GiB will be downloaded into archive.  
Downloading 85303 archive files using 20 threads...  
Begin time: Fri Nov  1 17:23:55 2013  
[20]...   
这里,要注意,有时候会碰到“No such file apt-mirror: can't open index in proceed_index_gz at /usr/bin/apt-mirror line 445.”这样的错误,折腾了我一个下午。原因不怎么清楚,不过,貌似按照上面我的流程做,至少可以避免这个错误。具体原因,难道和我配置文件中没去掉注释有关系,总之,稍诡异。
 
最后完成后的输出如下:
 
[plain] 
$ sudo apt-mirror  
Downloading 140 index files using 20 threads...  
Begin time: Fri Nov  1 17:23:49 2013  
[20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]...   
End time: Fri Nov  1 17:23:49 2013  
  
Proceed indexes: [SSSSSPPPPP]  
  
93.0 GiB will be downloaded into archive.  
Downloading 85303 archive files using 20 threads...  
Begin time: Fri Nov  1 17:23:55 2013  
[20]...   [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]...   
End time: Fri Nov  1 18:12:35 2013  
  
0.0 bytes in 0 files and 0 directories can be freed.  
Run /var/spool/apt-mirror/var/clean.sh for this purpose.  
  
Running the Post Mirror script ...  
(/var/spool/apt-mirror/var/postmirror.sh)  
  
  
Post Mirror script has completed. See above output for any possible errors.  
2、apache2
 
2.1 安装
 
sudo apt-get install apache2
 
2.2 配置
 
apache2的配置,这里就不班门弄斧了。反正我是直接在网上搜的帖子,方法很简单。
 
[plain] 
(1) 进入/var/www目录  
cd /var/www  
(2) 创建一个指向apt-mirror的mirror存放路径的软链接,这里命名为ubuntu  
$ ln -s /var/spool/apt-mirror/mirror/mirrors.ustc.edu.cn/ubuntu ubuntu  
到这里,就可以在浏览器地址栏输入“202.xxx.xxx.xxx/ubuntu”来访问该源目录了。
3、使用源
 
为了使用该源之需要修改/etc/apt/source.list文件:
 
[plain] 
比如原来用的是ustc的源,source.list文件如下:  
deb http://mirrors.ustc.edu.cn/ubuntu/ precise main restricted universe multiverse  
deb http://mirrors.ustc.edu.cn/ubuntu/ precise-security main restricted universe multiverse  
deb http://mirrors.ustc.edu.cn/ubuntu/ precise-updates main restricted universe multiverse  
deb http://mirrors.ustc.edu.cn/ubuntu/ precise-proposed main restricted universe multiverse  
deb http://mirrors.ustc.edu.cn/ubuntu/ precise-backports main restricted universe multiverse  
deb-src http://mirrors.ustc.edu.cn/ubuntu/ precise main restricted universe multiverse  
deb-src http://mirrors.ustc.edu.cn/ubuntu/ precise-security main restricted universe multiverse  
deb-src http://mirrors.ustc.edu.cn/ubuntu/ precise-updates main restricted universe multiverse  
deb-src http://mirrors.ustc.edu.cn/ubuntu/ precise-proposed main restricted universe multiverse  
deb-src http://mirrors.ustc.edu.cn/ubuntu/ precise-backports main restricted universe multiverse  
现在想改成,我们刚刚搭建好的源,只需在vim中用一个命令":%s/mirrors.ustc.edu.cn/202.xxx.xxx.xxx/g",即可将source.list修改为如下:  
deb http://202.xxx.xxx.xxx/ubuntu/ precise main restricted universe multiverse  
deb http://202.xxx.xxx.xxx/ubuntu/ precise-security main restricted universe multiverse  
deb http://202.xxx.xxx.xxx/ubuntu/ precise-updates main restricted universe multiverse  
deb http://202.xxx.xxx.xxx/ubuntu/ precise-proposed main restricted universe multiverse  
deb http://202.xxx.xxx.xxx/ubuntu/ precise-backports main restricted universe multiverse  
deb-src http://202.xxx.xxx.xxx/ubuntu/ precise main restricted universe multiverse  
deb-src http://202.xxx.xxx.xxx/ubuntu/ precise-security main restricted universe multiverse  
deb-src http://202.xxx.xxx.xxx/ubuntu/ precise-updates main restricted universe multiverse  
deb-src http://202.xxx.xxx.xxx/ubuntu/ precise-proposed main restricted universe multiverse  
deb-src http://202.xxx.xxx.xxx/ubuntu/ precise-backports main restricted universe multiverse  
然后,sudo apt-get update就可以看到,我们搭建的似有源的确已经生效了,速度飞快