openEuler 系统
在 openEuler 系统上安装使用 Cloudnet
提要:openEuler 使用 DNF(兼容 YUM)的 RPM 包管理。当前 openEuler 暂不支持通用一键安装脚本(
install.sh),请使用“手动添加并使用 Cloudnet RHEL 风格仓库(https://pkgs.cloudnet.world/stable/rhel/)”的方式。覆盖
.repo配置、GPG 导入、缓存刷新、安装/卸载、问题诊断与安全建议。关键词:openEuler、RPM、DNF、YUM、Cloudnet、RHEL 仓库、repo、GPG、公钥、软件源。
一、前置条件与适用范围
- 系统:openEuler(任意近期版本,LTS/创新版均可)
- 架构:x86_64、AArch64 等(以系统支持为准)
- 权限:需要
root或sudo权限 - 包管理:RPM + DNF(兼容 yum)
openEuler 是 RPM 系,使用 DNF/YUM 管理
.rpm与.src.rpm包;仓库配置文件位于/etc/yum.repos.d/。
二、快速开始(手动)
手动配置仓库(四步)
- 写入仓库配置
sudo curl -fsSL -o /etc/yum.repos.d/cloudnet.repo \
https://pkgs.cloudnet.world/stable/rhel/cloudnet.repo
- 导入仓库 GPG 公钥(建议开启元数据签名校验)
sudo rpm --import https://pkgs.cloudnet.world/stable/rhel/repo.gpg
- 刷新缓存并验证仓库可用
sudo dnf clean all
sudo dnf makecache
sudo dnf repolist
看到名为 Cloudnet stable(或相近名称)的条目,即表示仓库加载成功。
- 安装 Cloudnet 客户端
sudo dnf install cloudnet
# 或者
sudo yum install cloudnet
三、.repo 文件要点(核查清单)
/etc/yum.repos.d/cloudnet.repo 中核心字段通常包括:
name:仓库名称(展示用)baseurl=https://pkgs.cloudnet.world/stable/rhel/enabled=1:启用仓库repo_gpgcheck=1:校验仓库元数据签名(建议开启)gpgcheck=0:是否校验单个包签名(可按需改为1)gpgkey=https://pkgs.cloudnet.world/stable/rhel/repo.gpg
安全建议:
- 保持
repo_gpgcheck=1,并导入对应repo.gpg。- 如仓库提供包级签名,建议把
gpgcheck改为1,并确保gpgkey指向正确公钥。
四、日常使用命令
- 搜索软件:
dnf search <关键词>
- 查看包信息:
dnf info <包名>
- 安装软件:
sudo dnf install <包名>
- 升级全部:
sudo dnf upgrade -y
- 仅启用/禁用特定仓库安装:
sudo dnf --enablerepo=cloudnet-stable install <包名>
sudo dnf --disablerepo=cloudnet-stable install <包名>
提示:仓库 ID 以
.repo中的节名为准(如[cloudnet-stable]),可能与name字段不同。
五、注册设备
# 查看命令行帮助
cnet start --help
通过网页注册
cnet start --accept-dns=false --accept-routes=false
通过密钥注册
cnet start --accept-dns=false --accept-routes=false --auth-key=<PreAuthKey>
六、问题诊断与常见报错
1)repomd.xml/签名校验失败
-
重新导入公钥:
sudo rpm --import https://pkgs.cloudnet.world/stable/rhel/repo.gpg -
检查网络与代理、确认
baseurl可访问。 -
临时排查可设
repo_gpgcheck=0(排障后请恢复为 1)。
2)找不到包 / 依赖冲突
- 刷新缓存:
sudo dnf clean all && sudo dnf makecache - 限定仓库尝试:
dnf --enablerepo=<id> info <包名> - 查看冲突详情并记录具体依赖名称,考虑使用
module/compat包或启用 EPEL 风格兼容源(若适配)。
3)被其它仓库“覆盖”
-
在
cloudnet.repo中调高优先级(若系统启用priority插件):priority=1数字越小优先级越高。请谨慎使用,避免系统包被不必要替换。
七、安全与合规最佳实践
- 最小化权限:仅在需要时使用
sudo。 - 签名校验:保持
repo_gpgcheck=1;尽量开启gpgcheck=1并正确配置gpgkey。 - 变更可追溯:将
.repo改动纳入配置管理(如 Ansible / Git)。 - 灰度验证:先在测试/沙箱环境安装验证,再推广到生产。
八、移除/禁用 Cloudnet 仓库
- 禁用(保留文件,随时可再启用):
# /etc/yum.repos.d/cloudnet.repo
enabled=0
- 彻底移除:
sudo rm -f /etc/yum.repos.d/cloudnet.repo
sudo dnf clean all
九、FAQ(精简)
Q:openEuler 是 deb 还是 rpm? A:openEuler 属于 RPM 系,使用 DNF(兼容 YUM)。
Q:仓库只支持 RHEL/CentOS 吗? A:Cloudnet 提供的是 RHEL 系风格的 RPM 仓库。openEuler 同为 RPM + DNF 生态,通常可直接使用,但仍需按包、依赖与 ABI 实测验证。
Q:必须导入 GPG 公钥吗?
A:强烈建议。启用 repo_gpgcheck=1 需要导入公钥以校验仓库元数据签名;若你开启 gpgcheck=1,也需要公钥校验包签名。
十、SEO 关键信息速览
| 关键词 | 用途 |
|---|---|
| openEuler RPM | 指明发行版与包格式 |
| DNF / YUM | 包管理器生态 |
| Cloudnet RHEL 仓库 | 第三方软件源 |
.repo 配置 |
软件源启用方法 |
| GPG / repo.gpg | 元数据与包签名校验 |
十一、更新客户端
sudo dnf update cloudnet
# 或者
sudo yum update cloudnet
# 或者
cnet upgrade
十二、卸载客户端
sudo dnf remove cloudnet
# 或者
sudo yum remove cloudnet
# 或者
cnet uninstall
十三、可复制的自动化脚本(手动仓库方式)
#!/usr/bin/env bash
set -euo pipefail
REPO_DIR="/etc/yum.repos.d"
REPO_URL="https://pkgs.cloudnet.world/stable/rhel"
REPO_FILE="${REPO_DIR}/cloudnet.repo"
sudo curl -fsSL -o "${REPO_FILE}" "${REPO_URL}/cloudnet.repo"
sudo rpm --import "${REPO_URL}/repo.gpg"
sudo dnf clean all
sudo dnf makecache
sudo dnf repolist
echo "Cloudnet repo installed. Try: sudo dnf search <pkg> or sudo dnf install <pkg>"
# 安装 Cloudnet 客户端示例
sudo dnf install cloudnet || sudo yum install cloudnet
# 注册设备示例
cnet start --accept-dns=false --accept-routes=false
在生产环境执行前,请先打开
cloudnet.repo核对baseurl、repo_gpgcheck、gpgcheck、gpgkey等配置。
结语
到这里,你已经在 openEuler 上添加、校验并启用了 Cloudnet 仓库,并掌握了日常使用、诊断与回滚方法。接下来可以选一个目标包做小范围部署验证,再决定是否纳入系统基线。需要我根据你的 openEuler 版本与 CPU 架构,给出兼容性与依赖评估清单,也可以继续。