CentOS 应用迁过去跑不了?
把 CentOS 上跑的应用搬到麒麟后异常:库版本、glibc 行为、架构差异。给出排查顺序与容器化替代方案。
简短答案
迁移跑不了,先分架构与运行环境两层:架构对了再查运行环境(库、glibc、服务)。直接搬二进制在跨架构时基本不可行。
| 现象 | 原因 | 处理 |
|---|---|---|
cannot execute: required file not found |
依赖动态库缺失 | 装依赖库或换二进制 |
GLIBC_x.x not found |
glibc 版本低于应用要求 | 重编译或用容器 |
报 wrong architecture |
架构不符 | 换对应架构二进制 |
怎么排查
# 1. 看应用依赖
ldd ./app
# 2. 看架构
file ./app
# 3. 看系统 glibc
ldd --version
- 架构一致再谈运行环境:x86_64 系统装 麒麟 V11 服务器版 x86_64,对应应用选 x86_64 包;ARM 系统装 麒麟 V11 服务器版 arm64,应用对应 arm64 包。
- 架构不符或 glibc 差太多时走容器化,比逐库修更稳。
- 业务兼容验证以 银河麒麟 条目发行说明为准。
操作小结
- 架构 → 库 → glibc,顺序排查。
- 架构不符直接换二进制或容器。
- 兼容验证以发行说明为准。