背景
最近开始在断网的情况下进行开发和系统部署,安装Ubuntu还好,毕竟已经有了用优盘安装系统的经验,但是安装后续软件就麻烦多了,毕竟从外网一个个导安装包就很烦的,而且还需要安装多台机器,包括实体机和虚拟机等,于是就有了一个想法,在内网自己搞一台ubuntu的镜像服务器。
这个想法的可行性还是蛮高的,而且网上很多例子,最简单的就是利用apt-mirror这个工具创建镜像。apt-mirror实际上是一个脚本(perl写的),本质上行就是连接服务器下载全部的文档。
创建镜像文件夹
首先要做的就是把Ubuntu仓库里的所有文件拉下来。此时需要准备一个目录,该目录唯一的要求就是要有足够的空闲空间,如果镜像的版本单一而且不包括源文件的话,大概有100个G的空间就够了。
然后安装apt-mirror,修改apt-mirror的配置文件。可通过apt安装apt-mirror,其默认配置文件在/etc/apt/mirror.list
中,用常用的编辑工具打开编辑即可。主要需要修改的参数为:
base_path
: 存放镜像文件的目录;
defaultarch
:Ubuntu的文件类型,默认为当前计算机的,一般是amd64。
下面需要修改的就是下载Ubuntu的版本号,例如20.04版本号是focal,那就得将原来的版本号都改为focal。为了节省空间,建议不下源文件。
其它默认即可。然后执行命令开始下载数据文件。
sudo apt-mirror
然后耐心等待。
20.04版本存在的问题
经过上面的方法下载下来的就是一个完整的Ubuntu镜像系统,但是对于20.04版本的Ubuntu而言,由于apt-mirror没有跟得上Ubuntu版本的更新速度,所以下载下来的镜像是不完整的,少了个关键的文件,即/cnf/Commands-amd64.xz
。可能是apt-mirror不知道20.04多了个这么个文件,解决方法是修改apt-mirror的脚本,在第450行增加一句:
add_url_to_download( $url . $_ . "/cnf/Commands-" . $arch . ".xz" )
然后重新执行apt-mirror即可。希望以后apt-mirror升级后能改掉这个bug。
后续工作
镜像做好后,要么将镜像路径加入到sources.list,要么自己配一台Web Server将镜像放在网上。一般情况下都是后者,这个可以用nginx或者apache实现。
Q.E.D.
Comments | 0 条评论