跳转到内容
搜索 CentOS Stream 文档

    浏览当前文档目录

    排查常见报错

    适用:CentOS Stream 9 / 10 · 核对日:2026-11-01 · 特点:每条报错都在容器里复现过,输出为真实摘录而非转述;报错信息随版本演进,以你的实际输出为准。

    本页按「看到报错 → 判断原因 → 处理」组织。Stream 特有的报错排在前面——它们最容易把从其它 EL 带来的经验变成坑。

    报错(Stream 10 实测):

    Error: Problems in request:
    missing groups or modules: nginx

    原因:执行了 dnf module <动词>,但系统上没有模块化内容。Stream 10 已清空模块流(dnf module list 为 0 条),dnf 4.20.0 并警告 modularity is deprecated;Stream 9 仍有 24 条模块记录,模块化命令只在那里有效。

    处理:查该软件的安装页确认当前形态——Node.js/Python 在 Stream 10 走普通包(Node.js、Python);dnf module list 可直接确认本机有没有模块化内容。

    报错(Stream 9 实测):

    The version RHEL10 is not supported by pykickstart

    原因:ksvalidator -v RHEL10 跑在 Stream 9 的 pykickstart 上,它支持到 RHEL9 为止。

    处理:给 Stream 10 装机写 ks 就用 Stream 10 环境校验:

    Terminal window
    $ podman run --rm -v "$PWD:/w:Z" quay.io/centos/centos:stream10 \
    bash -c "dnf -qy install pykickstart >/dev/null && ksvalidator -v RHEL10 /w/ks.cfg"

    背景见Kickstart 自动安装。

    报错(容器实测,把 epel.repo 的 gpgkey 指向内容错误的文件后安装 htop):

    The GPG keys listed for the "Extra Packages for Enterprise Linux 9 - aarch64" repository
    are already installed but they are not correct for this package.
    Check that the correct key URLs are configured for this repository..
    Failing package is: htop-3.3.0-1.el9.aarch64
    GPG Keys are configured as: file:///tmp/badkey
    Error: GPG check FAILED

    原因:仓库配置里的 key 来源与包的签名对不上——常见于手工改过 gpgkey= 行、key 文件被删/损坏、或包真不是该仓库签的。key 文件路径不存在时是另一种输出:Curl error (37): Couldn't read a file:// file …。

    处理:还原仓库自带的 gpgkey= 行与 /etc/pki/rpm-gpg/ 里的官方 key 文件(EPEL 是 RPM-GPG-KEY-EPEL-$releasever,CentOS 官方仓库 Stream 9 为 RPM-GPG-KEY-centosofficial、Stream 10 为 RPM-GPG-KEY-centosofficial-SHA256)。不要用 --nogpgcheck 绕过——那是放弃验证包来源,只有临时诊断身份问题(确认「就是 key 配错了」)时可用。

    kickstart:failed to fetch kickstart 循环

    Section titled “kickstart:failed to fetch kickstart 循环”

    报错(Stream 10 实测,dracut 阶段滚动刷屏):

    curl: (7) Failed to connect to 192.168.2.2 port 8000 after 0 ms: Could not connect to server
    Warning: anaconda: failed to fetch kickstart from http://192.168.2.2:8000/ks.cfg

    原因:ks 文件在 initramfs 阶段拉取,此阶段没有网络配置——只给 inst.ks= 不给 ip= 参数,dracut 无法组网。

    处理:内核参数同时写 ip=(七字段语法,第 5 字段是主机名、第 6 字段才是设备名)。完整写法与避坑见Kickstart 自动安装。

    报错(boot ISO + 局域网镜像源、完全离线时实测,packaging.log):

    Error downloading metadata for repository 'extras-common':
    Curl error (6): Could not resolve hostname for
    https://mirrors.centos.org/metalink?repo=centos-extras-sig-extras-common-10-stream&arch=x86_64&protocol=https,http
    Failed to download metadata for repo 'extras-common'
    "The repositories are set to: []"

    原因:boot ISO 的安装环境内置 extras-common 仓库(metalink 指向 mirrors.centos.org),离线时解析失败,且失败会把整个仓库集清空——哪怕你自己的 BaseOS 源完全可用。

    处理:保证安装环境能访问 mirrors.centos.org(哪怕只给这条链路出网),或改用自带完整仓库树的 DVD ISO。相关的镜像与离线源问题见切换国内镜像源与安装 CentOS Stream。

    报错(最小容器实测,安装 curl):

    package curl-minimal-7.76.1-43.el9.aarch64 from baseos conflicts with curl provided by
    curl-7.76.1-44.el9.aarch64 from baseos
    (try to add '--allowerasing' to command line to replace conflicting packages or
    '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best
    candidate packages)

    原因:系统里已有 curl-minimal(minimal 安装的默认形态),再装完整 curl 就是同一软件两个包互相冲突。

    处理:先 dnf repoquery --installed curl\* 看清冲突双方;最小镜像上通常 dnf remove curl-minimal 后装 curl 即可(或直接继续用 curl-minimal,它覆盖大多数用途)。--allowerasing 会移除挡路的已装包,生产机上先看清要被移除的是什么再按 y。

    报错(关闭口令登录后实测):

    root@localhost: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

    判断方法在报错本身:括号里是服务器当前接受的认证方式列表。列表里没有 password → 口令登录已被关闭(按 SSH 密钥登录的流程这是预期行为);列表里有 password 但密钥登录失败 → 查 ~/.ssh 权限(700/600)与 SELinux 上下文(restorecon -Rv ~/.ssh)。

    镜像与仓库:切了 baseurl 却不生效

    Section titled “镜像与仓库:切了 baseurl 却不生效”

    现象:往仓库段里加了 baseurl= 指向国内镜像,dnf makecache 却还是走原来的速度/地址。

    原因:仓库段里 metalink= 与 baseurl= 同时存在时 metalink 优先,baseurl 被忽略。本站实测:只加 baseurl 不注释 metalink 的容器,makecache 照常成功——走的是 metalink。

    处理:切换镜像必须先注释 metalink 行再写 baseurl,完整命令见切换国内镜像源。

    现象原因处理
    Cannot find a valid baseurlbaseurl 拼错或镜像目录不存在核对 $stream 变量与目录大小写(见镜像)
    装 epel-release 失败没先启用 CRB先 --set-enabled crb(见EPEL)
    module list 全空Stream 10 正常现象模块化已移除,不是故障
    启动类报错不在本页范围转启动排障