Ubuntu 18.04实现自建Mirror源

企业内网,很多机器不方便直接去外网安装和更新,所以想到了自建Ubuntu Mirror的想法。最开始不知道实现方法,网上上搜索了很多文章,借鉴了很多做法。最后发现,网上别人成功的方法只能借鉴,没法照搬。每一个不同环境实现Mirror都会有不同的差异,但是大道同归,主题思路是差不多的。下面分享我总结和整理的方法。

一、安装Ubuntu 18.04,此过程步骤跳过。

二、安装apt-mirror:

sudo apt-get install apt-mirror

因为最后是通过Web的方式提供源文件,所以我们也把nginx安装了:

sudo apt-get install nginx

安装完apt-mirror后,会在/etc/apt下产生一个mirror.list文件,我们需要在里面设置数据根目录 :

sudo vi /etc/apt/mirror.list

编辑mirror.list文件:

set base_path    /var/spool/apt-mirror
#
# 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
# 20个线程同时下载
set nthreads     20
set _tilde 0

保存退出,就可以开始下载离线镜像包了。不过下载前,我们需要先确认自己网络环境,确认是去ubuntu官网同步下载速度,如何很慢的话,建议要更改为国内源,国内源很多,有ubuntu国内官方源,也有一些大学和大厂自建的源。下面网址收录了官网和国内源的地址,大家根据自己喜爱选择,建议选择官网、aliyun、清华:

模板:18.04source - Ubuntu中文

mirror.list里面默认是国外官网的镜像地址,我修改为国内官网的镜像地址,过程中发现cn.archive.ubuntu.com速度其实很慢,反而直接使用archive.ubuntu.com更改。这还是跟自己的网路环境有关系,因为同步文件数百G,建议大家一定要选好镜像地址。镜像文件目录,因为是测试,我只选择了main、security、updates。

deb http://cn.archive.ubuntu.com/ubuntu bionic main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu bionic-security main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu bionic-updates main restricted universe multiverse
clean http://cn.archive.ubuntu.com/ubuntu

以上准备好以后,我们开始进行同步:

sudo apt-mirror

这个过程要等很久,同步文件有几百G,大家要提前规划好server磁盘空间。也注意专线频宽占用。

同步完成后,接下来我们开始配置HTTP访问,前面我们安装了nginx,先要调整配置:

先打开配置文件:

sudo vi /etc/nginx/sites-enabled/default

编辑文件内容,主要设定服务端口,autoindex on;调整根目录。

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        # SSL configuration
        #
        # listen 443 ssl default_server;
        # listen [::]:443 ssl default_server;
        #
        # Note: You should disable gzip for SSL traffic.
        # See: https://bugs.debian.org/773332
        #
        # Read up on ssl_ciphers to ensure a secure configuration.
        # See: https://bugs.debian.org/765782
        #
        # Self signed certs generated by the ssl-cert package
        # Don't use them in a production server!
        #
        # include snippets/snakeoil.conf;
        autoindex on;

        root /var/spool/apt-mirror/mirror/;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

保存配置后,我们看看nginx配置是否成功:

sudo nginx -t
成功后有如下提示:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

如果测试通过,表示配置文件没有问题,那么就可以开启服务:

sudo service nginx restart

通过web可以成功访问:http://localhost 。

三、客户端验证,打开客户端(18.04)source文件:

sudo vi /etc/apt/source.list

将source.list中的网址替换为内网的Ubuntu mirror网址:

deb http://yourservername/ubuntu bionic main restricted universe multiverse
deb http://yourservername/ubuntu bionic-security main restricted universe multiverse
deb http://yourservername/ubuntu bionic-updates main restricted universe multiverse

更新镜像源缓存:

sudo apt-get update

客户端安装测试:

sudo apt-get install nginx

验证安装来源:

sudo apt policy nginx
nginx:
  Installed: 1.14.0-0ubuntu1.9
  Candidate: 1.14.0-0ubuntu1.9
  Version table:
 *** 1.14.0-0ubuntu1.9 500
        500 http://yourservername/ubuntu bionic-updates/main amd64 Packages
        500 http://yourservername/ubuntu bionic-security/main amd64 Packages
        100 /var/lib/dpkg/status
     1.14.0-0ubuntu1 500
        500 http://yourservername/ubuntu bionic/main amd64 Packages

四、此外,还可以在mirror server设置定时更新镜像源,我们需要配置apt-mirror每天定时同步,其实就是配置cron。这里apt-mirror提供了cron模板文件,在/etc/cron.d/apt-mirror 中:

0 4 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log

PS:注意目录要根据自己的安装目录配置。每台Ubuntu安装后因分区差异,目录都略有不同。

五、以上过程,很多方法都是网上自学的,如果不足之处,望予以指正。极少有ubuntu 自建mirror需求,如有使用,您可以选择作为实现参考方法。镜像URL需要根据自己使用的client架构选择,URL可以参考aliyun、清华等给出的建议URL地址。谢谢!

猜你喜欢

转载自blog.csdn.net/weixin_37813152/article/details/121349996