如何制作完整的Ubuntu本地源镜像(以Ubuntu12.04为例)

03-19

本地部分源镜像的优点是占用空间比较小,一个部分软件包源根据系统需要所占的空间大概也就在1G~2G之间。能满足系统备份还原的基本需求,凡是备份下来的软件包都能安装。但是它的缺点和局限性也是很明显的,它只能使用系统安装过的的软件包,也就是/var/cache/apt/archives/下的所有软件包。如果你的系统是32位的,那么这个源也就是32位的源,而不能被64位的系统所使用。或者如果要安装没有在本机上安装过的软件,那么就不行。因此制作完整的本地软镜像就是个不错的选择。

制作部分软件包源镜像可以作为个人备份系统,还原之用;如果是公司企业的话,推荐还是使用完整的本地源镜像。

下面介绍下制作完整的本地源镜像的方法:

安装前一定要注意:

首先,镜像目录为/var/spool/下的 apt-mirror 。

其次,要尽量用官方源或者Ubuntu系统源列表中列出来的镜像站进行镜像。

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

/var下如果没有空间,可以把镜像目录改到其他分区中,可以参考如下方法:

[plain] view plain copy

  • sudo ln -s /media/g/Ubuntu_local/apt-mirror/  /var/spool/apt-mirror  

1. 安装apt-mirror工具[plain] view plain copy

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

2. 配置apt-mirror工具

gksugedit /etc/apt/mirrors.list

清除原有内容,没关系,输入以下内容:

[plain] view plain copy

  • #############config ##################  
  • #  
  • # set base_path    /var/spool/apt-mirror  
  • #  
  • # setmirror_path  $base_path/mirror  
  • # setskel_path    $base_path/skel  
  • # setvar_path     $base_path/var  
  • # setcleanscript $var_path/clean.sh  
  • # setdefaultarch  <running hostarchitecture>  
  • # setpostmirror_script $var_path/postmirror.sh  
  • # setrun_postmirror 0  
  • #默认为20线程下载,推荐10线程,20可能会造成服备器或网络loading太重  
  • setnthreads     20  
  • set _tilde 0  
  • #  
  • #############end config ##############  
  • #网易源(速度很快)  
  • debhttp://mirrors.163.com/ubuntu/ precise main universe restricted multiverse  
  • debhttp://mirrors.163.com/ubuntu/ precise-security universe main multiverserestricted  
  • debhttp://mirrors.163.com/ubuntu/ precise-updates universe main multiverserestricted  
  • debhttp://mirrors.163.com/ubuntu/ precise-proposed universe main multiverse restricted  
  • debhttp://mirrors.163.com/ubuntu/ precise-backports universe main multiverserestricted  
  • #ubuntu12.04 src源不进行同步,因为大多数人用不上,如果同步,要多增加一倍空间  
  • #deb-srchttp://mirrors.163.com/ubuntu/ precise main universe restricted multiverse  
  • #deb-srchttp://mirrors.163.com/ubuntu/ precise-security universe main multiverserestricted  
  • #deb-srchttp://mirrors.163.com/ubuntu/ precise-proposed universe main multiverserestricted  
  • #deb-srchttp://mirrors.163.com/ubuntu/ precise-backports universe main multiverse restricted  
  • #deb-srchttp://mirrors.163.com/ubuntu/ precise-updates universe main multiverserestricted  
  • #下面的代码是为了镜像成功后节省空间的,实际上下面的这一句不写也是可以的  
  • clean http://mirrors.163.com/ubuntu/  

这里的地址规则和sources.list中是一样的,用的是163网速不同,时间不同,完成后有提示,
3. 开始制作镜像sudo apt-mirror

制作完成后会有提示,制作过程可以中断,如果时间太长,可以关闭终端或ctrl+c ,如果电脑关机,什么时候要继续,再重新执行代码即可,这时原来下载过的是不会重新下载的。直到完成,完成后有如何节约空间的提示,可以不去理会;镜像内容很全的,与官方同步的.

之后再次运行apt-mirror会继续以前的工作.每次都可以这样更新.

此过程根据网速不同,会有不同的时间.网速快的话,1个晚上就能完成.

4. 作为本地源使用更新

这一部分和部分软件包源镜像源的使用一样,可参考

制作完成后,在本地存储的地址为:

/var/spool/apt-mirror/mirror/mirrors.163.com/Ubuntu

编辑sources.list

sudo gedit /ets/apt/sources.list

删除原有内容,写入:

debfile:///var/spool/apt-mirror/mirror/mirrors.163.com/ubuntu/ precise mainuniverse restricted multiverse  
debfile:///var/spool/apt-mirror/mirror/mirrors.163.com/ubuntu/ precise-securityuniverse main multiverse restricted  
debfile:///var/spool/apt-mirror/mirror/mirrors.163.com/ubuntu/ precise-updatesuniverse main multiverse restricted  
debfile:///var/spool/apt-mirror/mirror/mirrors.163.com/ubuntu/ precise-proposeduniverse main multiverse restricted  
debfile:///var/spool/apt-mirror/mirror/mirrors.163.com/ubuntu/ precise-backportsuniverse main multiverse restricted

5. 本地安装软件包sudo apt-get update
sudo apt-get install xxxx

6. 制作成局域网源

安装apaches

/var/spool/apt-mirror/mirror/mirrors.163.com/ubuntu/作为webroot

地址为局域网ip地址即可.

说明: 完整的本地源做好后,通过新立得或apt-get,可以完全免除ubuntu官方源或ubuntu-cn源的负担,你想装什么,就装什么吧