前序

国产操作系统一般部署在内网中,和外部网络隔离且无法访问官方软件源。需要镜像官方源,并在全量软件包集合的基础上做定制化裁剪,在内网为客户机提供私有源服务。

麒麟Desktop和统信系统私有镜像源搭建

先利用apt-mirror工具将官方Debian源克隆到本地,然后使用nginx或apache提供Web服务即可,下面是操作步骤。

1.工具安装

apt-get install apt-mirror nginx

2.编辑apt-mirror工具的镜像源配置。克隆并发线程数为20个,目标目录·/data·,请确保目录空间大小足够。

3.确保软件包源的URL,版本号,component信息正确。并根据需要指定架构参数。


############# config  ##################  
#  set base_path   /data  
#  
# 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 ##############    
## kylin v10 sp1  
deb [arch=amd64] http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1-2303-updates  main restricted universe multiverse  
deb [arch=arm64] http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1-2303-updates  main restricted universe multiverse  
deb [arch=loongarch64] http://archive.kylinos.cn/kylin/KYLIN-ALL  10.1-2303-updates main restricted universe multiverse    
deb [arch=amd64] http://archive.kylinos.cn/kylin/KYLIN-ALL  10.1-2303-updates-preview main restricted universe multiverse  
deb [arch=arm64] http://archive.kylinos.cn/kylin/KYLIN-ALL  10.1-2303-updates-preview main restricted universe multiverse  
deb [arch=loongarch64] http://archive.kylinos.cn/kylin/KYLIN-ALL  10.1-2303-updates-preview main restricted universe multiverse  

4.开始执行同步操作。首先将远程源的索引文件同步到本地,然后对索引文件解析出软件包的相对路径,这也是耗时最长的部分。

 apt-mirror

5.启动nginx服务,提供局域网访问,以下是最小配置。

user nginx;  
worker_processes auto;  
http {   
    sendfile           on;   
    server {       
        listen      80 default_server;       
        listen      [::]:80 default_server;       
        server_name_;       
        root          /data/mirrors/;       
        location / {           
            autoindex on;           
            autoindex_localtime on;           
            autoindex_exact_size off;           
            charset utf-8,gbk;           
            index index.html;       
        }       
    }  
}

6.在客户机器上修改apt的更新源配置/etc/apt/sources.list。当安装更新时都会从该源下载。

deb [arch=amd64]  http://192.168.1.100 10.0 main restrict universe multiverse

麒麟Server系私有镜像源搭建

使用yum进行软件包管理,而做源同步一般使用reposync和createrepo这两个工具。有的系统会自带这两个工具。

1.工具安装

yum -y install yum-utils  createrepo plugin-priorities

2.·reposync包镜像源同步工具使用和yum同一个配置文件来指定需要同步的软件目录。编辑文件/etc/yum.repos.d/update.repo。

[REPO_ID]  
name = KYLIN10SP2UPDATE  
baseurl =  https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/updates/\$basearch/  
gpgcheck = 0  
enabled = 1

其中REPO_ID需要在当前配置文件中保持唯一。baseurl为需要同步的官方源地址。gpgcheck指定在同步时是否对源进行认证检查,该操作会下载源仓库中相同目录下的签名文件并验签,官方源的证书已在系统安装时就包含,如果是私有源需要把这个开关关闭。

·enabled·指定当前块是否进行同步。

3.创建同步目录,并进行同步操作。

mkdir /data  
reporsync -p /data [--repoid=<REPO_ID>]

4.当文件通过rsync全部镜像到本地后,要逐一对不同架构的目录中的软件包创建索引文件,否则该私有源无法被使用。

cd  /data/{base,updates....}/{aarch64,x86.64}  
createrepo -v Packages/ -o repodata

5.启动nginx服务,提供局域网访问。

6.在客户机器上修改yum的更新源配置/etc/yum.repos.d/update.repo。

[KYLIN10SP2UPDATE]  
name = KYLIN10SP2UPDATE  
baseurl = http://192.168.1.100/updates/\$basearch/  
gpgcheck = 0  
enabled = 1

软件源更新

yum clean all  
yum makecache  
yum repolist  
yum install git