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