麒麟 V10 SP3 服务器装 vLLM 0.6.3,pip 编译 ray 时报 GLIBC_2.28 not found,系统 glibc 是 2.17,Python 3.10 是源码编的,机器不能联网也不能升级系统库。
一开始怀疑是「源码编译 ray 需要更高版本的工具链」,查了一圈,方向不对。
这类报错背后常见的原因有几处,逐个排除就行。vLLM 依赖的 manylinux wheel 要求 glibc 2.28。另一种情况是麒麟 V10 基于 CentOS 7,glibc 只有 2.17。
不容易想到的是,conda 装的 Python 仍链接系统 glibc。
先确认系统 glibc 和 Python 的链接情况
ldd --version | head -1 && ldd $(which python) | grep libc
接着找 manylinux2014 的预编译 wheel 离线安装
pip install --no-index --find-links wheels vllm==0.6.3 --only-binary=:all:
然后用 conda 的 sysroot 提供新 glibc 后编译
conda install -c conda-forge sysroot_linux-64=2.28
实在装不上就用官方镜像跑容器
docker run --gpus all -v /models:/models vllm/vllm-openai:v0.6.3 --model /models/qwen2-7b
那几天正好在做别的变更,先把时间线对齐才敢动手。
排查用的命令都是临时敲的,没有写成脚本,事后才整理。
别只看报错消失,验证要多做一步。vLLM 能正常 import 并起服务,curl /v1/models 返回模型列表,日志里没有 GLIBC_2.28 not found。
容易忽略的是,麒麟 V10 的 glibc 版本是硬约束,不要在生产机上替换系统 libc;优先找 manylinux2014 的 wheel,实在不行用容器把用户态隔离掉。这类问题最好一次改到位,反复小改反而容易把原因搅混。
