首页/系统/信创系统运维速查/二进制架构与依赖检查:file / ldd / readelf
迁移适配65 条

二进制架构与依赖检查:file / ldd / readelf

部署前先验二进制:file 看目标架构、ldd 看动态库依赖、readelf 看 ELF 头;缺库与架构不匹配是常见的两类部署失败。

信创系统运维速查系统更新于 2026-10-12

检查三件套

检查三件套
file /opt/app/bin/app              # 显示架构与静态/动态链接
ldd /opt/app/bin/app               # 依赖库解析结果
ldd /opt/app/bin/app | grep 'not found'   # 关键:缺库清单
readelf -h /opt/app/bin/app | head  # ELF 头(Class/Machine)

缺库处理

缺库处理
# 按缺失库名找包(示例):
dnf provides 'libssl.so.1.1' 2>/dev/null | head
# 或确认库位于自定义路径:
LD_LIBRARY_PATH=/opt/app/lib ldd /opt/app/bin/app | grep 'not found' || echo OK
ldd 输出依赖运行环境的库搜索路径;对比目标机缺失项再决定装包还是随包携带库目录。

易错点

  • 不要对不受信任的二进制直接跑 ldd(历史上存在利用风险),先在隔离环境检查
  • not found 逐条清零再启动,带缺库运行常表现为莫名段错误

数据来源与参考

  • man 1 file
  • man 1 ldd
  • man 1 readelf
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌