首页
斐讯设备
疯言疯语
系统运维
编程语言
网站建设
友情连接
推荐
autojs
Search
1
charles破解注册码(含windows和mac)最新安装教程「亲测有效」
39 阅读
2
【omv5安装教程二】N1盒子Armbian系统下,一条命令搞定Openmediavault(OMV5)安装
18 阅读
3
【N1安装飞牛优化四】关闭不必要服务优化记录
12 阅读
4
博客简介
11 阅读
5
SSH如何访问fe80开头的ipv6????
11 阅读
登录
Search
标签搜索
JAVA
JAVA学习系列
docker
Linux
js
N1
git
模块二
端口
模块一
模块五
模块九
数据库
模块四
镜像
模块三
模块六
MySQL
百度网盘
nginx
DaiMaFengZi
累计撰写
588
篇文章
累计收到
9
条评论
首页
栏目
斐讯设备
疯言疯语
系统运维
编程语言
网站建设
页面
友情连接
推荐
autojs
搜索到
2
篇与
的结果
2025-10-14
构建离线 YUM 仓库:银河麒麟 V10 上构建 openEuler 25.03 离线 YUM 仓库
支持 openEuler 22.03 / 23.09 / 25.03 等多个版本,标准化命名,便于长期维护目标在银河麒麟 V10 系统上,通过解析 openEuler 官方仓库元数据,自动化采集、下载、打包指定版本的 RPM 包,并制作成 标准化命名的离线 YUM 仓库,支持✅ 多版本共存(22.03、23.09、25.03)✅ 多架构支持(aarch64、x86_64)✅ 多类型仓库(everything、baseos)✅ 标准化命名与目录结构✅ 离线部署一键配置环境准备操作系统:银河麒麟 V10(aarch64 或 x86_64)网络环境:当前机器可联网(用于下载)目标系统:openEuler / 银河麒麟 离线环境存储空间:≥ 10GB(建议使用 /data 分区)依赖工具:wget, zstd, createrepo_c, genisoimage(可选)命名规范(核心!避免混淆)为支持多版本管理,采用统一命名格式:openeuler-{version}-{repo_type}-{arch}.{format}字段示例值{version}22.03, 23.09, 25.03{repo_type}everything, baseos{arch}aarch64, x86_64{format}tar.gz, iso✅ 示例:含义文件名openEuler 25.03 Everything aarch64openeuler-25.03-everything-aarch64.tar.gzopenEuler 25.03 BaseOS x86_64openeuler-25.03-baseos-x86_64.tar.gzopenEuler 22.03 Everything aarch64openeuler-22.03-everything-aarch64.iso推荐目录结构 /data/openeuler-offline/ ├── 22.03/ │ └── openeuler-22.03-everything-aarch64.tar.gz ├── 23.09/ │ └── openeuler-23.09-everything-aarch64.tar.gz └── 25.03/ ├── openeuler-25.03-everything-aarch64.tar.gz └── openeuler-25.03-everything-aarch64.iso✅ 第一步:创建工作目录 VERSION="25.03" REPO_TYPE="everything" ARCH="aarch64" WORK_DIR="/data/openeuler-offline/${VERSION}/${REPO_TYPE}-${ARCH}" mkdir -p "$WORK_DIR" cd "$WORK_DIR"🔁 你可以修改 VERSION、REPO_TYPE、ARCH 来适配不同组合。✅ 第二步:下载 repomd.xml BASE_URL="https://repo.openeuler.org/openEuler-${VERSION}/${REPO_TYPE}/${ARCH}" wget "${BASE_URL}/repodata/repomd.xml" -O repomd.xml✅ 第三步:提取 primary.xml.zst 文件名PRIMARY_FILE=$(grep -A2 "primary" repomd.xml | grep "location href" | grep -o 'href="[^"]*"' | cut -d'"' -f2) echo "Primary XML: $PRIMARY_FILE"✅ 第四步:下载 primary.xml.zstwget "${BASE_URL}/repodata/${PRIMARY_FILE##*/}" -O primary.xml.zst✅ 第五步:解析出所有 RPM 包名 zstd -dc primary.xml.zst | \ grep -o 'location href="Packages/[^"]*\.rpm"' | \ sed 's/location href="Packages\///' | sed 's/"$//' | \ sort -u > rpm-list.txt # 验证 wc -l rpm-list.txt head rpm-list.txt✅ 第六步:批量下载所有 RPM 包 cat rpm-list.txt | xargs -I {} -P 8 \ wget -c --show-progress \ "${BASE_URL}/Packages/{}"⚠️ 如果网络不稳定,可改用 -P 4 减少并发。✅ 第七步:创建本地 YUM 仓库(生成元数据)1. 安装 createrepo_csudo dnf install -y createrepo_c || sudo yum install -y createrepo_c2. 生成 repodatacreaterepo_c .✅ 成功后会生成 repodata/ 目录。✅ 第八步:制作可移动离线包1. 创建离线包目录 OFFLINE_DIR="${WORK_DIR}/../openeuler-offline-repo" rm -rf "$OFFLINE_DIR" mkdir -p "$OFFLINE_DIR/repo" # 复制 RPM 和 repodata cp *.rpm "$OFFLINE_DIR/repo/" cp -r repodata "$OFFLINE_DIR/repo/"2. 创建一键配置脚本 setup-repo.sh cat > "$OFFLINE_DIR/setup-repo.sh" << 'EOF' #!/bin/bash # openEuler 离线仓库自动配置脚本 # 用法:chmod +x setup-repo.sh && ./setup-repo.sh set -e echo "🔍 正在查找仓库目录..." SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" REPO_DIR="$SCRIPT_DIR/repo" if [ ! -d "$REPO_DIR" ]; then echo "❌ 错误:未找到 repo 目录,请确保 repo/ 在同一路径下" exit 1 fi echo "✅ 找到仓库目录:$REPO_DIR" # 转义路径中的 / 用于 sed REPO_DIR_ESCAPED=$(echo "$REPO_DIR" | sed 's/\//\\\//g') # 创建 YUM 源文件 cat > /etc/yum.repos.d/local-openeuler-offline.repo << REPOEOF [local-openeuler-offline] name=Local openEuler Offline Repository baseurl=file://$REPO_DIR_ESCAPED enabled=1 gpgcheck=0 priority=1 REPOEOF echo "✅ 已创建 YUM 源:/etc/yum.repos.d/local-openeuler-offline.repo" # 清理并重建缓存 sudo dnf clean all sudo dnf makecache echo "🎉 离线仓库配置成功!" echo "📦 你现在可以使用 dnf 安装软件,例如:" echo " dnf install nginx" echo " dnf install docker" echo " dnf groupinstall Base" EOF chmod +x "$OFFLINE_DIR/setup-repo.sh"3. 创建说明文档 README.txt cat > "$OFFLINE_DIR/README.txt" << EOF openEuler ${VERSION} ${REPO_TYPE} ${ARCH} 离线仓库 用途: 用于无网络环境下安装 openEuler 软件包。 使用方法: 1. 将整个目录复制到目标机器 2. 进入目录并运行:./setup-repo.sh 3. 即可使用 dnf 安装软件 注意事项: - 目标机器需为 openEuler 或银河麒麟 ${ARCH} - 需 root 权限运行 setup-repo.sh EOF✅ 第九步:打包为标准命名格式方式一:打包为 .tar.gz cd "$WORK_DIR" tar -czf "openeuler-${VERSION}-${REPO_TYPE}-${ARCH}.tar.gz" -C "$OFFLINE_DIR" .方式二:打包为 .iso(推荐用于分发) # 安装 genisoimage(若未安装) sudo dnf install -y genisoimage || sudo yum install -y genisoimage # 创建 ISO 工作目录 ISO_DIR="${WORK_DIR}/../openeuler-offline-iso" rm -rf "$ISO_DIR" mkdir -p "$ISO_DIR" cp -r "$OFFLINE_DIR"/* "$ISO_DIR/" # 生成 ISO genisoimage \ -o "openeuler-${VERSION}-${REPO_TYPE}-${ARCH}.iso" \ -r -J -l \ -V "OE${VERSION}_${REPO_TYPE^^}_${ARCH}" \ "$ISO_DIR/"✅ 第十步:拷贝到目标机器并使用1. 拷贝文件将生成的包拷贝到目标机器:scp openeuler-25.03-everything-aarch64.tar.gz user@target:/opt/2. 解压并配置 tar -xzf openeuler-25.03-everything-aarch64.tar.gz -C /opt cd /opt/openeuler-offline-repo sudo ./setup-repo.sh3. 验证 dnf list available | head -5 dnf install -y nginx #如果需要安装指定版本,请使用 dnf list available nginx #然后再进行安装指定版本✅ 批量构建脚本(可选)保存为 build-offline-repo.sh: #!/bin/bash # 用法:./build-offline-repo.sh 25.03 everything aarch64 tar.gz VERSION="$1" REPO_TYPE="$2" ARCH="$3" FORMAT="${4:-tar.gz}" [[ -z "$VERSION" || -z "$REPO_TYPE" || -z "$ARCH" ]] && { echo "用法:$0 <version> <repo_type> <arch> [format]" echo "示例:$0 25.03 everything aarch64 tar.gz" exit 1 } WORK_DIR="/data/openeuler-offline/${VERSION}/${REPO_TYPE}-${ARCH}" mkdir -p "$WORK_DIR" cd "$WORK_DIR" echo "🚀 开始构建 openEuler ${VERSION} ${REPO_TYPE} ${ARCH}" # (此处插入上述完整流程命令,略) echo "✅ 构建完成:openeuler-${VERSION}-${REPO_TYPE}-${ARCH}.${FORMAT}"✅ 最终成果示例 /data/openeuler-offline/25.03/ ├── openeuler-25.03-everything-aarch64.tar.gz ├── openeuler-25.03-everything-aarch64.iso ├── openeuler-25.03-baseos-aarch64.tar.gz └── 20250405-build.log📌 总结步骤输出采集包名rpm-list.txt下载 RPM*.rpm生成元数据repodata/打包输出openeuler-{ver}-{type}-{arch}.tar.gz 或 .iso目标使用./setup-repo.sh
2025年10月14日
3 阅读
0 评论
0 点赞
2024-03-20
【基础学习KylinOS三】【麒麟系统环境安装之安装好系统,无法SSH连接,无网络】
麒麟v10服务器版本安装完毕配置完网络后,ping不通网关,重启网络服务问题依旧,如图所示网络服务重启依然不行,通过命令nmcli con show查看网络显示网卡没有激活,nmcli con up p5p1激活已经插线的网卡此时网络端口已经激活,ping网关可以通信,但是重启会丢失,需要在设置一下,执行nmtui激活以太网,网络。完美收工!
2024年03月20日
0 阅读
0 评论
0 点赞