首页
斐讯设备
疯言疯语
系统运维
编程语言
网站建设
友情连接
推荐
autojs
Search
1
charles破解注册码(含windows和mac)最新安装教程「亲测有效」
39 阅读
2
【omv5安装教程二】N1盒子Armbian系统下,一条命令搞定Openmediavault(OMV5)安装
18 阅读
3
博客简介
11 阅读
4
SSH如何访问fe80开头的ipv6????
11 阅读
5
【N1安装飞牛优化四】关闭不必要服务优化记录
11 阅读
登录
Search
标签搜索
JAVA
JAVA学习系列
docker
Linux
js
N1
git
模块二
端口
模块一
模块五
模块九
数据库
模块四
镜像
模块三
模块六
MySQL
百度网盘
nginx
DaiMaFengZi
累计撰写
587
篇文章
累计收到
8
条评论
首页
栏目
斐讯设备
疯言疯语
系统运维
编程语言
网站建设
页面
友情连接
推荐
autojs
搜索到
17
篇与
的结果
2026-07-17
Nginx平滑升级离线编译与零停机热替换完整手册
Nginx 1.30.4 离线编译与零停机热替换完整手册⚠️ 前置条件确认当前身份:root旧版 Nginx 前缀:/usr/local/nginx编译依赖:gcc、make、pcre-devel、zlib-devel、openssl-devel 等必须已在离线环境中提前安装。若未安装,需先通过 rpm/deb 包离线安装依赖,否则 ./configure 会失败。📥 第一阶段:获取源码与解压1. 下载 Nginx 1.30.4 源码包在有网络的机器上下载后,通过 U盘/SCP 等方式传入服务器 /home/zjgzwyjsadmin/ 目录:# 在联网机器执行示例 wget https://nginx.org/download/nginx-1.30.4.tar.gz2. 解压并进入源码目录cd /home/nginx-1.30.4 tar -zxvf nginx-1.30.4.tar.gz cd nginx-1.30.4路径约定后续所有命令均假设源码位于 /home/nginx-1.30.4。若您实际路径不同,请全局替换。🔧 第二阶段:编译构建(仅编译,不安装)1. 提取旧版编译参数OLD_ARGS= $ (nginx -V 2>&1 | grep "configure arguments:" | sed 's/configure arguments: //') echo "📋 旧版参数: $ OLD_ARGS"2. 配置编译选项# 使用旧版参数确保模块完全兼容 ./configure $ OLD_ARGS3. 编译生成新二进制# 利用多核加速编译,绝不执行 make install! make -j $ (nproc)4. 编译后双重验证(必做)# 验证1:参数一致性(注意 -- 分隔符防止 grep 误解析) ./objs/nginx -V 2>&1 | grep "configure arguments:" | grep -F -- " $ OLD_ARGS" \ && echo "✅ 编译参数一致" || { echo "❌ 参数不一致,停止!"; exit 1; } # 验证2:新二进制能正确解析现有配置 ./objs/nginx -t # 期望输出: syntax is ok / test is successful只有两个验证均通过,才能继续。 若失败,检查 $OLD_ARGS 完整性或重新 make clean && make。🔒 第三阶段:全量备份(不可跳过)BACKUP_TIME= $ (date +%Y%m%d_%H%M%S) NGINX_BIN= $ (which nginx) # 备份二进制 cp " $ NGINX_BIN" " $ {NGINX_BIN}.bak. $ {BACKUP_TIME}" # 备份配置目录 cp -a /usr/local/nginx/conf "/usr/local/nginx/conf.bak. $ {BACKUP_TIME}" echo "✅ 备份完成:" ls -lh " $ {NGINX_BIN}.bak. $ {BACKUP_TIME}" ls -ld "/usr/local/nginx/conf.bak. $ {BACKUP_TIME}"🔄 第四阶段:零停机热替换执行💡 原理:USR2 启动新 Master → 新 Worker 接管新请求 → WINCH 优雅关闭旧 Worker→ QUIT 退出旧 Master。全程无连接中断。# 确保在源码目录下 cd /home/zjgzwyjsadmin/nginx-1.30.4 NGINX_BIN= $ (which nginx) # 步骤1:覆盖二进制(旧进程在内存中运行,不受磁盘影响) cp ./objs/nginx " $ NGINX_BIN" # 步骤2:启动新 Master 进程 kill -USR2 $ (cat /usr/local/nginx/logs/nginx.pid) sleep 3 # 步骤3:确认双 Master 共存(必须看到两行 master) ps aux | grep "[n]ginx: master" # 步骤4:优雅关闭旧 Worker kill -WINCH $ (cat /usr/local/nginx/logs/nginx.pid.oldbin) # 步骤5:业务健康检查(关键决策点!) curl -sI http://localhost | head -3 tail -20 /usr/local/nginx/logs/error.log | grep -E "emerg|crit|alert" # ✅ 正常 → 继续步骤6 # ❌ 异常 → 立即执行下方【紧急回滚预案】 # 步骤6:彻底退出旧 Master kill -QUIT $ (cat /usr/local/nginx/logs/nginx.pid.oldbin) # 步骤7:最终版本确认 nginx -v # 期望输出: nginx version: nginx/1.30.4✅ 第五阶段:升级后验证矩阵检查项命令合格标准版本号nginx -vnginx/1.30.4进程唯一性`ps aux \grep "[n]ginx: master" \wc -l`输出 1配置语法nginx -ttest is successful错误日志tail -20 /usr/local/nginx/logs/error.log无新增 emerg/crit业务响应curl -sI http://localhostHTTP 2xx/3xx监听端口`ss -tlnp \grep nginx`所有预期端口 LISTEN🔙 紧急回滚预案(30秒内恢复)仅在第四阶段步骤5健康检查失败时执行:NGINX_BIN= $ (which nginx) # ⚠️ 将下方时间戳替换为第三阶段输出的实际 BACKUP_TIME BACKUP_TIME="YYYYMMDD_HHMMSS" # 1. 终止新进程组 kill -QUIT $ (cat /usr/local/nginx/logs/nginx.pid) 2>/dev/null # 2. 恢复旧二进制 cp " $ {NGINX_BIN}.bak. $ {BACKUP_TIME}" " $ NGINX_BIN" # 3. 重启旧版本 nginx -t && nginx # 4. 验证回滚成功 nginx -v && curl -sI http://localhost⚠️ Root 环境安全警告SELinux:若启用,覆盖二进制后必须执行 restorecon -v "$NGINX_BIN",否则新 Master 无法绑定端口。WINCH 耐心等待:WebSocket/大文件下载等长连接可能导致旧 Worker 持续数分钟。用 watch -n1 'ps aux | grep "[n]ginx: worker"' 监控,绝不要 kill -9。PID 路径:以上命令假设 PID 在 /usr/local/nginx/logs/nginx.pid。若不同,通过 nginx -V 2>&1 | grep -oP '(?<=--pid-path=)\S+' 获取实际路径并全局替换。操作窗口:尽管零停机,仍建议在业务低峰期执行。离线依赖:若 ./configure 报错缺少库,需在离线环境中提前准备好对应的 devel 包(如 pcre2-devel、zlib-devel、openssl-devel)并通过 rpm -ivh 或 dpkg -i 安装。
2026年07月17日
5 阅读
0 评论
0 点赞
2026-05-20
NGINX 零停机平滑升级全流程实操指南
一、 概述在生产环境下,升级 NGINX 二进制文件通常面临一个挑战:如何升级而不需要停止服务(零停机)?NGINX 通过一套精巧的信号量(Signals)机制实现了平滑升级。其核心原理是:启动一个新的主进程(Master Process)接管监听端口,让旧进程在处理完现有请求后优雅退出,从而实现无缝切换。二、 升级前置准备与环境摸底在升级之前,必须确保新版本的编译参数与当前运行的版本完全一致,否则会导致启动失败或功能缺失。1. 查询当前版本及编译参数# 查看当前版本号 nginx -v # 查看详细编译参数 (极其重要,升级时必须使用相同的参数) nginx -V记录项: 重点记录 configure arguments 之后的所有内容(如 --prefix=/usr/local/nginx)。2. 确认二进制文件路径与 PID# 确认 nginx 可执行文件路径 which nginx # 确认当前运行的主进程 PID ps aux | grep nginx 记录项: 记录 master process 的 PID。3. 配置文件语法检查在任何操作前,确保当前配置文件没有语法错误。nginx -t三、 新版本编译准备核心原则:只编译→→不安装。 严禁直接执行 make install,因为这会覆盖您生产环境的配置文件。1. 下载并解压wget http://nginx.org/download/nginx-x.x.x.tar.gz tar -zxvf nginx-x.x.x.tar.gz cd nginx-x.x.x2. 配置与编译使用第一阶段记录的编译参数进行配置:# 使用之前 nginx -V 记录的参数 ./configure --prefix=/usr/local/nginx [其他参数...] # 编译生成二进制文件 make编译完成后,新的二进制文件位于 objs/nginx。四、 执行平滑升级(核心步骤)步骤 1:二进制文件替换由于 Linux 内核禁止覆盖正在运行的二进制文件(会报 Text file busy),我们必须使用 mv 命令通过改变 inode 的方式进行替换。 # 1. 备份旧文件 cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak # 2. 使用 mv 替换新文件 (绕过 Text file busy) mv objs/nginx /usr/local/nginx/sbin/nginx # 3. (可选) 如果系统中有快捷路径 /usr/local/bin/nginx,请同步更新 cp /usr/local/nginx/sbin/nginx /usr/local/bin/nginx步骤 2:启动新主进程 (USR2)向旧主进程发送 USR2 信号,通知其启动新版本的二进制进程。 kill -USR2 <旧MasterPID> 状态: 此时,旧主进程和新主进程同时存在,它们共同监听端口,但新请求将开始分发给新进程。 步骤 3:优雅停止旧工作进程 (WINCH) 向旧主进程发送 WINCH 信号,通知旧的工作进程(Worker Processes)在处理完当前请求后立即退出。 code Bash kill -WINCH <旧MasterPID> 状态: 此时,所有新流量已全部由新版本进程处理。步骤 4:业务验证(关键环节) 在彻底删除旧版本前,必须进行全方位验证: 本地验证: curl -I http://127.0.0.1:端口 外部验证: telnet IP 端口 或 浏览器访问。 日志验证: tail -f /usr/local/nginx/logs/error.log 检查是否有 [emerg] 报错。 ### 步骤 5:彻底关闭旧主进程 (QUIT) 确认业务运行稳定后,关闭不再需要的旧主进程。 ```text kill -QUIT ``` 五、 异常处理与回滚方案 1. 怎么回滚? 如果在 步骤 3 之后发现新版本运行异常,可以通过以下指令将流量瞬间切回旧版本: code Bash # 向新主进程发送 WINCH 信号,让新 worker 退出 kill -WINCH # 此时流量会自动切回尚未关闭的旧 worker 进程 2. 常见坑点排查 ```text Text file busy: 不要用 cp 覆盖运行中的文件,必须用 mv。 版本显示不一致: 如果 nginx -v 显示旧版而 ps 显示新版,说明 /usr/local/bin/nginx 和 /usr/local/nginx/sbin/nginx 两者不一致,请同步覆盖。 Telnet 不通: 若 curl 内部通但外部不通,请检查防火墙(Firewalld/Security Group)策略,这通常与 NGINX 升级无关,而是网络层波动。 ``` 六、 总结流程图 备份→→编译→→mv替换→→USR2(启动新版)→→WINCH(切流量)→→验证→→QUIT(删旧版)
2026年05月20日
6 阅读
0 评论
0 点赞
2026-03-29
【N1安装飞牛优化二】限制现有的docker容器使用内存,调整 Swappiness 权重
限制现有的docker容器使用内存批量设置内存上限(复制并执行即可)# 1. 核心数据库(MySQL)限额 256M docker update --memory 256m --memory-swap 256m mysql # 2. 核心网络/Git 工具(mihomo, gogs)限额 128M ~ 256M docker update --memory 256m --memory-swap 256m mihomo docker update --memory 128m --memory-swap 128m gogs # 3. 基础服务组件(PHP, Redis, Nginx)限额 128M docker update --memory 128m --memory-swap 128m fn-php docker update --memory 128m --memory-swap 128m fn-redis docker update --memory 128m --memory-swap 128m fn-nginx # 4. 其他小工具(账本、面板)限额 128M 和 64M docker update --memory 128m --memory-swap 128m cashbook4 docker update --memory 64m --memory-swap 64m metacubexd为什么这样改?--memory 256m:限制该容器最多只能吃掉 256M 物理内存。--memory-swap 256m:限制该容器的“物理内存 + Swap(交换内存)”总共只有 256M。这意味着这个容器严禁过度占用系统资源。一旦这些容器内存超标,Docker 内部会自行清理,而绝不干扰您 OpenVPN 服务器的正常运行。调整 Swappiness 权重低 Swappiness 值,让系统尽量优先使用内存(和我们刚才设置的 ZRAM),减少对闪存的频繁读写。# 查看当前值 (默认通常是 60) cat /proc/sys/vm/swappiness # 临时修改为 10 sysctl vm.swappiness=10 # 永久修改 echo "vm.swappiness=10" >> /etc/sysctl.conf
2026年03月29日
0 阅读
0 评论
0 点赞
2025-11-26
在联网机器上下载所有 RPM 包并在离线机器上安装所有软件
在联网机器上下载所有 RPM 包并在离线机器上安装所有软件下载1. 安装下载工具sudo dnf install -y dnf-utils2. 创建目录mkdir ~/openEuler-20.03-LTS-SP4 && cd ~/openEuler-20.03-LTS-SP43. 启用必要仓库(关键!)欧拉openEuler系统sudo dnf config-manager --set-enabled everything EPOLCentos8.5系统sudo dnf config-manager --set-enabled base AppStream3. 下载dnf download --resolve \ nginx \ redis \ docker \ java-1.8.0-openjdk \ java-1.8.0-openjdk-devel4. 验证ls -l *.rpm | wc -l5. 打包tar -czvf openEuler-24.03-LTS-x86_64.tar.gz *.rpm安装:1. 解压 RPM 包cd /tmp tar -xzvf offline-apps.tar.gz dnf deplist java-1.8.0-openjdk2. 安装所有软件(自动解决依赖顺序)sudo dnf install -y *.rpm# (如果系统只有 yum,没有 dnf,可用:) # sudo yum localinstall -y *.rpm3. 启动并启用服务sudo systemctl enable --now nginx sudo systemctl enable --now redis sudo systemctl enable --now docker4. 验证安装结果nginx -v # 应显示版本 redis-cli --version # 应显示版本 docker --version # 应显示版本 java -version # 应显示 OpenJDK 17 curl http://localhost # 应看到 nginx 欢迎页
2025年11月26日
3 阅读
0 评论
0 点赞
2025-10-15
nginx安装顺序之:麒麟V10系统安装nginx
1.查询并删掉旧包 rpm -qa | grep perl #查看当前以及安装的perl开头的安装包 rpm -e --nodeps perl-devel-5.28.0-434.ky10.x86_64 # 卸载命令 rpm -e --nodeps perl-libs-5.28.0-434.ky10.x86_64 # 卸载命令 rpm -e --nodeps perl-5.28.0-434.ky10.x86_64 # 卸载命令2.按顺序安装插件离线包 rpm -ivh perl-libs-5.28.3-3.p01.ky10.x86_64.rpm --nodeps --force rpm -ivh perl-devel-5.28.3-3.p01.ky10.x86_64.rpm --nodeps --force rpm -ivh perl-5.28.3-3.p01.ky10.x86_64.rpm --nodeps –force3.按照顺序安装 rpm -ivh gd-2.2.5-6.ky10.x86_64.rpm --nodeps --force rpm -ivh gperftools-libs-2.7-7.ky10.x86_64.rpm --nodeps --force rpm -ivh nginx-filesystem-1.16.1-9.p01.ky10.noarch.rpm --nodeps --force rpm -ivh nginx-mod-http-image-filter-1.16.1-9.p01.ky10.x86_64.rpm --nodeps --force rpm -ivh nginx-mod-http-perl-1.16.1-9.p01.ky10.x86_64.rpm --nodeps --force rpm -ivh nginx-mod-http-xslt-filter-1.16.1-9.p01.ky10.x86_64.rpm --nodeps --force rpm -ivh nginx-mod-mail-1.16.1-9.p01.ky10.x86_64.rpm --nodeps --force rpm -ivh nginx-all-modules-1.16.1-9.p01.ky10.noarch.rpm --nodeps --force rpm -ivh nginx-1.16.1-9.p01.ky10.x86_64.rpm --nodeps --force rpm -ivh nginx-mod-stream-1.16.1-9.p01.ky10.x86_64.rpm --nodeps –force4.启动nginxsystemctl start nginx.service #启动服务5.可能出现的问题使用rpm -ivh安装驱动包过程中提示“/sbin/ldconfig: /usr/ib64/ibLLVM-7.so is not a symbolic link”用root用户cd /usr/lib64 In sf libLLVM-7.0.0.so libLLVM-7.so6.下载地址https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/base/x86_64/Packages/
2025年10月15日
1 阅读
0 评论
0 点赞
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 点赞
2025-06-18
OpenEuler离线部署Redis、Nginx
前言OpenEuler虽然是基于Linux,和CentOS很像,但是其内部还是有很大差别,尤其是基础组件像gcc这,故直接拿CentOS中的组件去安装可能会出问题在开发环境,服务器可以连外网,很多组件可以直接yum安装,各种依赖包会自动安装好但在项目现场,如果服务器在内网无法访问Internet,就很棘手了,这时只能准备rpm包一个个去安装安装包下载地址OpenEuler镜像站罗列(推荐使用华为的官方镜像),基于OpenEuler 22.03 LTS SP3版本华为开源镜像站:https://mirrors.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/everything/x86_64/Packages/华中科技大学镜像站:https://mirrors.hust.edu.cn/openeuler/openEuler-22.03-LTS-SP3/everything/x86_64/Packages/中国科学技术大学镜像站:https://mirrors.ustc.edu.cn/openeuler/openEuler-22.03-LTS-SP3/everything/x86_64/Packages/官方:https://easysoftware.openeuler.openatom.cn/zh/rpm?name=nginx准备安装包下载这些基础包:redis安装执行命令rpm -ivh /opt/redis6-6.2.7-3.oe2203sp3.x86_64.rpmnginx安装执行命令rpm -ivh /opt/nginx-1.21.5-6.oe2203sp3.x86_64.rpm重要事项没把握的话,千万不要用下面这个命令,这个命令会忽略依赖和兼容性,可能会导致基础组件被卸载掉。rpm -Uvh *.rpm --nodeps --force
2025年06月18日
1 阅读
0 评论
0 点赞
2024-08-27
当前国内可用的docker加速器搜集
可用镜像加速器以下地址搜集自网络,仅供参考,请自行验证。1、https://docker.m.daocloud.io 2. https://dockerpull.com 3. https://atomhub.openatom.cn 4. https://docker.1panel.live 5. https://dockerhub.jobcher.com 6. https://hub.rat.dev 7. https://docker.registry.cyou 8. https://docker.awsl9527.cn 9. https://do.nark.eu.org/ 10. https://docker.ckyl.me 11. https://hub.uuuadc.top 12. https://docker.chenby.cn 13. https://docker.ckyl.me如何使用cat /etc/docker/daemon.json { "registry-mirrors": ["https://docker.m.daocloud.io"] }使其生效systemctl daemon-reload systemctl restart docker前缀方式加速源/镜像:TAG直接进行使用docker pull docker.m.daocloud.io/nginx:latest自建镜像源1、https://github.com/dqzboy/Docker-Proxy 2. https://github.com/cmliu/CF-Workers-docker.io
2024年08月27日
0 阅读
0 评论
0 点赞
1
2
3