linux - 同一 Linux 发行版的不同版本之间的二进制和共享库兼容性

标签 linux compatibility

假设我在 Linux 发行版 X ver N 上编译了共享库和二进制文件。 它能在同一个版本 N+1 上工作吗?

确定这一点的一般规则是什么? (例如 gcc/glibc 版本,可能是特定于发行版的,LSB 等)

最佳答案

首先,检查二进制文件和库的外部依赖关系:

ldd yourlib.so a.out ...

样本输出是

  librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f7906ee6000)
  libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7906b29000)
  libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f790690b000)

然后检查所需的库是否在 N+1 中没有显着变化:确定拥有这些库的包(rpm -qf 文件dpkg -S 文件)和比较在 upstream-tracker 中找到的包的版本(N 和 N+1) .

最后,检查gcc的版本是否有明显变化(从2.x到3.y或者从3.x到4.y)。

此外,尝试使用 Linux Application Checker如果该工具支持,则针对分发的 N+1 版本对所有二进制文件进行测试。

enter image description here

关于linux - 同一 Linux 发行版的不同版本之间的二进制和共享库兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15132310/

相关文章:

node.js - 如何将 NodeJS 和 NPM 更新到最新版本?

linux - 错误 : list of session IDs must follow -s

c++ - libopencv_gpu.so.2.4 : cannot open shared object file: No such file or directory

linux - sed + 从 bash 文件中删除函数

python - 如何保持动态库嵌入C(.so文件)在不同Python版本之间的向后兼容性

git - 开发人员之间的不同版本的git

linux - 当我更改 SConstruct 文件时,scons 不会触发重建?

html - 强制 IE9 进入浏览器兼容性 View

Javascript .print() 因 IE11 类型 application/pdf 失败

Python 3 : tokenize library changes