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

3
假设我有在Linux发行版X ver N上编译的共享库和二进制文件。 它们能在同一发行版的ver N+1上运行吗? 确定这一点的一般规则是什么?(例如gcc / glibc版本,可能是特定于发行版的LSB等。)
1个回答

3

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

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 filedpkg -S file),并比较在上游跟踪器中找到的软件包的版本(N和N+1)。

最后,检查gcc的版本是否发生了显著变化(从2.x到3.y或从3.x到4.y)。

此外,如果该工具支持,请尝试使用Linux应用程序检查器对所有二进制文件与N+1版本的分发进行检查。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接