背景

经常需要折腾不同的编译环境,所以在Windows下用Virtual Box安装了许多Ubuntu虚拟机,每次在虚拟机里面更新软件都比较慢,于是想做一个本地镜像源,方便打开虚拟机时更快的安装软件。 Virtual Box支持共享文件夹的功能,于是想把Windows下的D盘(1T)作为共享目录存放Ubuntu的镜像源,所有虚拟机使用挂载的共享目录作为本地源目录。

准备

  • 系统: Ubuntu14.04
  • 虚拟机: Virtual Box 5.1

步骤

虚拟机配置

  1. 安装Virtual Box和增强包
  2. 安装Ubuntu14.04到虚拟机 用户名 dev 为例。
  3. 配置共享目录 打开虚拟机的设置菜单,将windows的D盘作为共享目录挂在到虚拟机中,勾选自动挂载。
  4. 配置虚拟机权限 打开虚拟机中的Ubuntu14.04镜像,在镜像内安装增强包,成功后可能需要重启,重启后可以看到虚拟机自动挂载了windows的D盘到了/media/sf_D_DRIVE目录下,此时以普通用户身份 dev 进入到该目录下可能会提示 权限不足。 以管理员身份打开系统 /etc/group 文件。
sudo vi /etc/group

在文件末尾可以看到Virtual Box所属的组,将当前登陆的用户名添加到该行之后。 重启后再进入虚拟机内就可以打开共享目录了。 现在在共享目录内建立一个文件夹用于存放本地源:

mkdir -p /media/sf_D_DRIVE/UbuntuLocalSource

在windows系统下应该可以看见这个文件夹。

配置网络源服务器

  1. 安装apt-mirror
sudo apt--get install apt-mirror
  1. 配置apt-mirror 打开 /etc/apt/mirror.list
sudo vi /etc/apt/mirror.list

修改配置文件如下

############# config ##################
#
set base_path    /media/sf_D_DRIVE/UbuntuLocalSource
#
# 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 trusty main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse
#deb http://archive.ubuntu.com/ubuntu trusty-proposed main restricted universe multiverse
#deb http://archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse

#deb-src http://archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu trusty-proposed main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse

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

主要是设置了源的根目录 base_path, 注释掉了一些无用的源,可以根据情况修改源地址,下载会更快一点。

  1. 同步源
sudo apt-mirror

看网速和上一步配置的源地址,可能需要十多个小时才能同步完成,大小在150G左右。

  1. 安装Apache
sudo apt-get install apache2
  1. 建立本地源的链接
sudo ln -s /media/sf_D_DRIVE/UbuntuLocalSource/dist/archive.ubuntu.com/ubuntu /var/www/html/ubuntu

启动apache服务

sudo service apache2 start

本地镜像源地址配置

  1. 修改本地源文件
sudo vi /etc/apt/sources.list

记得备份 修改本地源地址

deb http://127.0.0.1/ubuntu/ trusty main restricted universe
  1. 同步测试
sudo apt-get update

参考