知识库

个人知识管理

用户工具

站点工具


linux:使用_apt-mirror_配置_ubuntu_本地软件仓库

使用 apt-mirror 配置 Ubuntu 本地软件仓库

背景

经常需要折腾不同的编译环境,所以在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

2. 配置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, 注释掉了一些无用的源,可以根据情况修改源地址,下载会更快一点。

3. 同步源

sudo apt-mirror

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

4. 安装Apache

sudo apt-get install apache2

5. 建立本地源的链接

sudo ln -s /media/sf_D_DRIVE/UbuntuLocalSource/dist/archive.ubuntu.com/ubuntu /var/www/html/ubuntu

启动apache服务

sudo service apache2 start

本地镜像源地址配置

1. 修改本地源文件

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vi /etc/apt/sources.list

修改本地源地址,注意apt-mirror默认同步的是amd64或者i386单架构的包(和同步的主机架构相同),需要将地址改为类似如下的形式,指明架构类型,不然后续更新时会提示错误。

deb [arch=amd64] http://127.0.0.1/ubuntu/ trusty main restricted universe

如果修改过配置,同步了多种架构源,则改为如下

deb http://127.0.0.1/ubuntu/ trusty main restricted universe

2. 同步测试

sudo apt-get update

参考引用

linux/使用_apt-mirror_配置_ubuntu_本地软件仓库.txt · 最后更改: 2019/09/11 00:49 (外部编辑)