背景信息:
Linux操作系统:简化,简约和非常自定义(没有apt-get,yum等)
Linux内核:2.6.19.1
目前的glibc版本:2.3.6
目标glibc版本:2.6.1
问题:
尝试安装第三方提供的ipk软件包,该软件包依赖于glibc版本> = 2.6(当前版本为2.3.6)
第三方提供了一个不同的ipk包来将glibc升级到2.6.1。在执行软件包的安装之后,依赖于glibc报告" libc.so.6的所有其他应用程序都无法处理TLS数据"
是否有人熟悉在自定义Linux操作系统上升级glibc而不使用任何类型的软件包管理器进行支持?
我的理解是glibc应该向后兼容并且升级它不应该导致以前一直在工作的应用程序出现问题。这个假设是不正确的吗?
我可以根据要求发布更多信息。非常感谢任何和所有的帮助,谢谢你。
答案 0 :(得分:1)
我的理解是glibc应该向后兼容,升级它不应该导致以前一直在运行的应用程序出现问题。
这是正确的。
您的问题很可能是ld-linux
和libc.so.6
不匹配的结果 - 他们必须来自同一个版本,会发生不好的事情(GLIBC实际上包含许多库,他们所有必须匹配)。
您的第三方提供的glibc软件包可能是错误配置的,而是替换为一个,而不是另一个。可能会将libc.so.6
安装到/usr/local/lib
,而不是适合您的操作系统的任何位置。
在安装第三方更新之前找到“属于”GLIBC的所有文件,并验证它们中的每一个都被替换。
虽然不太可能,第三方软件包可能会被破坏,或者在没有TLS支持的情况下进行配置。
如果您将应用程序与GLIBC链接并支持TLS,则将GLIBC升级到没有TLS支持的配置,应用程序将中断。这是预期的和“正常”(配置没有TLS支持的GLIBC根本不是一个好主意)。