麒麟V10离线源环境搭建

系统环境

系统发行版:V10 SP3 2403/(Halberd)-x86_64

内核版本:4.19.90-89.11.v2401.ky10.x86_64

查看系统版本

# nkvers
############## Kylin Linux Version #################
Release:
Kylin Linux Advanced Server release V10 (Halberd)

Kernel:
4.19.90-89.11.v2401.ky10.x86_64

Build:
Kylin Linux Advanced Server
release V10 SP3 2403/(Halberd)-x86_64-Build20.01/20240426
#################################################

一、制作离线源(服务器能联网)

1. 修改默认的源文件

在系统初始化时,/etc/yum.repos.d 目录下默认有一个源文件 kylin_x86_64.repo ,这里需要修改文件,让服务器从官方源下载我们需要的安装包,用于制作离线源。

# 进入源文件目录
[root@localhost ~]# cd /etc/yum.repos.d/

[root@localhost yum.repos.d]# pwd
/etc/yum.repos.d

# 当前系统是 x86_64 架构的,地址:https://update.cs2c.com.cn/NS/V10/V10SP3-2403/os/adv/lic/ 
# 写入源文件配置如下:
cat >/etc/yum.repos.d/kylin_x86_64.repo <<EOF
[ks10-adv-os]
name = Kylin Linux Advanced Server 10 - Os 
baseurl = https://update.cs2c.com.cn/NS/V10/V10SP3-2403/os/adv/lic/base/x86_64/
gpgcheck = 0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin
enabled = 1
[ks10-adv-updates]
name = Kylin Linux Advanced Server 10 - Updates
baseurl = https://update.cs2c.com.cn/NS/V10/V10SP3-2403/os/adv/lic/updates/x86_64/
gpgcheck = 0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin
enabled = 1
[ks10-adv-addons]
name = Kylin Linux Advanced Server 10 - Addons
baseurl = https://update.cs2c.com.cn/NS/V10/V10SP3-2403/os/adv/lic/addons/x86_64/
gpgcheck = 1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin
enabled = 0
EOF

2. 刷新缓存

# 清理 DNF 的所有缓存数据
dnf clean all
# 主动更新所有启用仓库的元数据缓存(repodata)
dnf makecache
# 显示当前系统启用的所有仓库列表
dnf repolist

操作成功,应显示如下内容:

[root@localhost ~]# dnf repolist
repo id											repo name
ks10-adv-os                     				Kylin Linux Advanced Server 10 - Os
ks10-adv-updates                				Kylin Linux Advanced Server 10 - Updates

3. 安装必要的软件包

# 更新系统包缓存
sudo yum update -y

# 安装 createrepo 和 httpd(可选,用于本地服务测试)
sudo yum install createrepo httpd -y

# 验证安装
createrepo --version

# 下载离线源插件(用于下载离线源)
# dnf install -y dnf-plugins-core

4. 创建离线源目录

mkdir -p /opt/offline

# 修改权限
chmod 777 -R /opt/offline/

后面所有的安装包都会放到此目录,及子目录下。

5. 下载安装包

下载需要安装的应用的离线安装包,用于制作离线源给其他无法联网的服务器使用。

这里下载一些常用的应用安装包,如下:

dnf download --resolve --alldeps vim --destdir=/opt/offline
dnf download --resolve --alldeps curl --destdir=/opt/offline
dnf download --resolve --alldeps zip --destdir=/opt/offline
dnf download --resolve --alldeps unzip --destdir=/opt/offline
dnf download --resolve --alldeps wget --destdir=/opt/offline
dnf download --resolve --alldeps net-tools --destdir=/opt/offline
dnf download --resolve --alldeps openssh-server --destdir=/opt/offline
dnf download --resolve --alldeps tree --destdir=/opt/offline
dnf download --resolve --alldeps ntp --destdir=/opt/offline
dnf download --resolve --alldeps nfs-utils rpcbind --destdir=/opt/offline
dnf download --resolve --alldeps dos2unix --destdir=/opt/offline
dnf download --resolve --alldeps vsftpd --destdir=/opt/offline
dnf download --resolve --alldeps createrepo_c --destdir=/opt/offline
dnf download --resolve --alldeps httpd --destdir=/opt/offline
dnf download --resolve --alldeps ffmpeg --destdir=/opt/offline

6. 生成离线源

# 进入离线源安装目录
cd /opt/offline
# 执行命令,生成离线源
createrepo .

#如果你后续往目录里新增 RPM 包,只需要执行:
createrepo --update /opt/offline

7. 离线源打包

# 打包
tar -czvf /opt/kylin-offline-repo.tar.gz -C /opt offline

# 查看打包后的离线源文件
[root@localhost /]# ll /opt/
-rw-r--r-- 1 root root 213864300 12月 11 16:38 kylin-offline-repo.tar.gz

至此,离线源就制作完成了,可以使用 scp 、rsync 命令发送到没有联网的服务器上,用于离线安装

二、使用离线源安装服务器

在无网络连接的麒麟服务器上,配置和使用离线源,系统的版本和系统架构需相同。

1. 备份旧源

mkdir -p /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/

2. 上传离线源

将打包好的离线源文件 kylin-offline-repo.tar.gz 放到 /opt 目录下

# 解压离线源
tar -zxvf /opt/kylin-offline-repo.tar.gz -C /opt/

# 查看解压后的源文件
[root@localhost ~]# cd /opt/

[root@localhost opt]# ll
-rw-r--r-- 1 root root 213864300 12月 11 16:38 kylin-offline-repo.tar.gz
drwxrwxrwx 3 root root     24576 12月 11 16:34 offline

3. 配置系统源文件

cat >/etc/yum.repos.d/local.repo <<EOF
[local-yum]
name=Kylin Local Repository
baseurl=file:///opt/offline
enabled=1
gpgcheck=0
EOF

4. 刷新缓存,测试离线源

刷新缓存

# 清理 DNF 的所有缓存数据
dnf clean all
# 主动更新所有启用仓库的元数据缓存(repodata)
dnf makecache
# 显示当前系统启用的所有仓库列表
dnf repolist

操作成功,应显示如下内容:

[root@localhost opt]# dnf repolist
repo id                            repo name
local-yum                          Kylin Local Repository

测试离线源

dnf install -y wget net-tools dos2unix ntp

三、离线安装Docker、Docker-Compose

Docker 和 Docker-Compose 都可以使用二进制包的形式离线安装

1. 下载Docker二进制包

# 创建必要的文件夹
mkdir -p /opt/software
chmod 777 -R /opt/software/

# 下载Docker二进制包
wget https://download.docker.com/linux/static/stable/x86_64/docker-28.5.2.tgz

2. 安装Docker

# 解压Docker二进制包
tar -zxvf docker-28.5.2.tgz -C /opt/software/

# 移动二进制包到 /usr/bin 目录下
mv /opt/software/docker/* /usr/bin/

编辑 docker.service

cat >/usr/lib/systemd/system/docker.service <<EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
EOF

3. 配置Docker

# 1. 创建文件夹
mkdir -p /etc/docker /mnt/sdb

# 2. 写入daemon.json 配置
cat >/etc/docker/daemon.json <<EOF
{
  "log-driver": "json-file",
  "log-opts": {
        "max-size": "100m",
        "max-file": "10"
  },
  "data-root":"/mnt/sdb/docker",
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

4. 启动Docker

systemctl daemon-reload
systemctl restart docker
  • 测试

    docker info

5. 安装 Docker-Compose

# 下载二进制包
wget https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-x86_64

# 放到 /usr/local/bin/ 目录下
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose

# 授权
chmod +x /usr/local/bin/docker-compose

# 查看版本
docker-compose --version

参考链接

https://www.osyunwei.com/archives/13225.html

https://www.cnblogs.com/windwillow/p/17822122.html


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 george_95@126.com