openEuler 系统

在 openEuler 上安装与使用 Cloudnet。当前不支持通用一键安装脚本,请使用“手动添加 RHEL 风格 RPM 仓库”的方式,涵盖 repo 配置、GPG 导入、缓存刷新、安装/卸载、常见问题与安全建议。

在 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 等(以系统支持为准)
  • 权限:需要 rootsudo 权限
  • 包管理:RPM + DNF(兼容 yum)

openEuler 是 RPM 系,使用 DNF/YUM 管理 .rpm.src.rpm 包;仓库配置文件位于 /etc/yum.repos.d/


二、快速开始(手动)

手动配置仓库(四步)

  1. 写入仓库配置
sudo curl -fsSL -o /etc/yum.repos.d/cloudnet.repo \
  https://pkgs.cloudnet.world/stable/rhel/cloudnet.repo
  1. 导入仓库 GPG 公钥(建议开启元数据签名校验)
sudo rpm --import https://pkgs.cloudnet.world/stable/rhel/repo.gpg
  1. 刷新缓存并验证仓库可用
sudo dnf clean all
sudo dnf makecache
sudo dnf repolist

看到名为 Cloudnet stable(或相近名称)的条目,即表示仓库加载成功。

  1. 安装 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 核对 baseurlrepo_gpgcheckgpgcheckgpgkey 等配置。


结语

到这里,你已经在 openEuler 上添加、校验并启用了 Cloudnet 仓库,并掌握了日常使用、诊断与回滚方法。接下来可以选一个目标包做小范围部署验证,再决定是否纳入系统基线。需要我根据你的 openEuler 版本与 CPU 架构,给出兼容性与依赖评估清单,也可以继续。