首页
斐讯设备
疯言疯语
系统运维
编程语言
网站建设
友情连接
推荐
autojs
Search
1
charles破解注册码(含windows和mac)最新安装教程「亲测有效」
57 阅读
2
aris常用命令收集
32 阅读
3
【N1和Armbian】一、N1刷Linux系统armbian
31 阅读
4
docker更新现有容器为自动重启
28 阅读
5
[上]JAVA学习系列模块九第五章186.对象数组_基本使用
26 阅读
登录
Search
标签搜索
JAVA
JAVA学习系列
docker
Linux
js
N1
git
模块二
模块一
端口
模块五
数据库
模块九
模块四
镜像
模块三
模块六
MySQL
百度网盘
nginx
DaiMaFengZi
累计撰写
591
篇文章
累计收到
10
条评论
首页
栏目
斐讯设备
疯言疯语
系统运维
编程语言
网站建设
页面
友情连接
推荐
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日
5 阅读
0 评论
0 点赞
2024-03-20
【基础学习KylinOS三】【麒麟系统环境安装之安装好系统,无法SSH连接,无网络】
麒麟v10服务器版本安装完毕配置完网络后,ping不通网关,重启网络服务问题依旧,如图所示网络服务重启依然不行,通过命令nmcli con show查看网络显示网卡没有激活,nmcli con up p5p1激活已经插线的网卡此时网络端口已经激活,ping网关可以通信,但是重启会丢失,需要在设置一下,执行nmtui激活以太网,网络。完美收工!
2024年03月20日
0 阅读
0 评论
0 点赞