基于Ubuntu的开发环境,一般需要开发者在连接互联网的情况下从Ubuntu官方软件源(Main/China/USA)下载和更新需要使用的软件包(deb)。
当前公司的工作环境,工作计算机不能够访问外网。故需要预先将官方软件源内容全部下载,导入公司的内网,在内网中创建本地软件源。
本文将介绍在Ubuntu18.04(.2)中如何使用脚本工具apt-mirror创建一个本地的软件源仓库。主要信息来自于互联网的相关技术内容。
首先需要确定系统的版本号,可以使用以下命令查看当前系统的版本号。
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
由输出信息得知,当前计算机安装的操作系统是Ubuntu 18.04.2,从2018年4月发布至今(2019年7月),18.04 LTS已经迭代升级到了18.04.2。Bionic是Ubuntu18.04的代号(简称),全称是Bionic Beaver。在下面通过修改mirror.list文件指定软件源的时候,不同版本的Ubuntu LTS(18.04/16.04/14.04)就是通过这个代号去区分的。
近年来Ubuntu LTS的版本与代号的对应关系如下:
12.04.5 LTS Precise Pangolin
14.04.6 LTS Trusty Tahr
16.04.6 LTS Xerial Xerus
18.04.2 LTS Bionic Beaver
这里需要用到两个软件,apt-mirror和apache2。使用apt-mirror可以将官方的软件源镜像包下载到本地;使用apache2可以将软件源从本机发布出去。
1、安装apt-mirror,在命令行中执行以下命令:
sudo apt install apt-mirror
安装完毕后会在/etc/apt/路径下自动生成文件mirror.list
2、配置apt-mirror,修改mirror.list文件(安装apt-mirror后生成的mirror.list文件里的内容仅为示例),在命令行中执行以下命令:
sudo vi /etc/apt/mirror.list
mirror.list文件中包含配置信息和软件源地址,首先修改配置信息。
<base_path> 代表下载软件源的存储位置
<nthreads> 代表下载的线程数,默认20
修改并去掉该行注释。
############# config ##################
#
set base_path /home/xxx/xxx
#
# 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 ##############
源地址的修改,Ubuntu官方的软件源有的时候下载速度过慢,可以替换为国内软件源地址,下面是阿里云的源地址。
每一行都需要以deb-i386或者deb-amd64开始(deb-src表示下载源代码,目前不需要),deb-i386是32位的软件源,deb-amd64是64位软件源,这里同时下载32位和64位的软件源。
每一行中都有单独“版本代号”(bionic)或者“版本代号-限定词”(updates/secrity/proposed/backports)的字段,bionic表示Ubuntu 18.04,每一个发行版,每一种架构(amd64/i386)都需要有5行的内容。所以现在是10行的内容。
*proposed可以选择性的添加,不是必须的。官方解释该文件夹里的内容属于测试性质的软件包。系统默认的软件源中不包括proposed内容。
每行最后的 main/restricted/universe/multiverse 代表开源软件的级别分类,都需要添加进去。
最终源地址部分修改的结果如下所示:
deb-i386 http:// mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-i386 http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-i386 http:// mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-i386 http:// mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-i386 http:// mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-amd64 http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb- amd64 http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb- amd64 http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-amd64 http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb- amd64 http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
3、同步源
sudo apt-mirror
当前Ubuntu18.04(.2)的软件源大小为110GB左右,网速不同,下载速度也不同,等待下载完成。
4、安装apache2
sudo apt install apache2
5、创建软连接
将软件源软连接到/var/www/html路径下,apache2将自动发布。
ln –s /home/xxx/xxx/mirror/mirrors.aliyun.com/Ubuntu /var/www/html/Ubuntu
6、在个人工作用计算机修改软件源文件,/etc/apt/sources.list。其中192.168.0.36为放置软件源的内网计算机的IP地址
deb http://192.168.0.36/ubuntu/ bionic main restricted universe multiverse
deb http://192.168.0.36/ubuntu/ bionic-updates main restricted universe multiverse
deb http://192.168.0.36/ubuntu/ bionic-security main restricted universe multiverse
deb http://192.168.0.36/ubuntu/ bionic-backports main restricted universe multiverse
deb http://192.168.0.36/ubuntu/ bionic-proposed main restricted universe multiverse
7、更新软件源
sudo apt update
之后就可以使用apt命令从本地软件源仓库更新和安装需要的软件了。
参考资料: