【问题标题】:Binary and shared library compatability across different versions of the same Linux distribution跨同一 Linux 发行版的不同版本的二进制和共享库兼容性
【发布时间】:2013-02-14 10:53:09
【问题描述】:

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

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

【问题讨论】:

    标签: linux compatibility


    【解决方案1】:

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

    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)并比较在upstream-tracker 中找到的包的版本(N 和 N+1) .

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

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

    【讨论】:

      猜你喜欢
      • 2011-01-02
      • 2010-12-18
      • 1970-01-01
      • 1970-01-01
      • 2014-02-10
      • 1970-01-01
      • 2019-04-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多