You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EL9系列发行版(AlmaLinux/Ubi9等)中找不到libc++相关包的解决方案求助

EL9系列发行版(AlmaLinux/Ubi9等)中找不到libc++相关包的解决方案求助

我有一个C应用,需要自动为多平台构建发布,Linux发行版这边用Docker镜像来做构建。最近碰到了std::regex里的一个libstdc老bug——已经确认存在但官方没修复,所以决定切换到Clang+libc++的组合。

Debian系发行版切换起来毫无压力,macOS本身就用Clang,也没毛病,但企业级Linux的构建直接卡壳了。我试过redhat/ubi9、CentOS Stream 9还有AlmaLinux这些EL9系列的镜像,死活找不到能提供libc和对应开发包的软件源。llvm-toolset里也没附带libc,我已经开了Code Ready Builder(CRB)、EPEL这些额外源,能找到的Clang和LLVM包全装了,甚至把整个文件系统grep了一遍,还是没踪影。

补充一下:我也试过各种包名变体,比如libcxx、libcpp,用dnf search搜也没结果,真的快愁死了!求各位大佬支招,千万别建议我从源码编译libc++,那会把CI构建时间拉得巨长,完全不现实。

下面是我用来复现问题的极简Dockerfile:

# syntax=docker/dockerfile:1.2
FROM almalinux:9 as builder

RUN dnf install -y 'dnf-command(config-manager)'
RUN dnf config-manager -y --set-enabled crb

RUN dnf update -y && \
    dnf install -y llvm-toolset && \
    dnf clean all

RUN /usr/bin/crb enable
RUN dnf install -y epel-release

# 本来应该在这安装libc++、libc++-devel之类的包,但不管试啥名字都找不到
# 为了证明llvm-toolset里没带libc++,下面这条命令会执行失败:
RUN echo '#include <iostream> int main() { std::cout << "Hello, World!\n"; return 0; }' > hello.cpp
RUN clang++ -stdlib=libc++ -o hello hello.cpp

执行这个Dockerfile时,最后一步会报错,具体错误信息如下:

0.326 hello.cpp:1:10: fatal error: 'iostream' file not found
0.326 1 | #include <iostream> int main() { std::cout << "Hello, World!\n"; return 0; }
0.326 |          ^~~~~~~~~~

我看也有其他开发者遇到过同样的问题,不过目前只发现有人自行重新打包了EL9的libc++ RPM,但我还是希望能找到官方或者靠谱的预编译包源来解决问题。


内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 11:48:10