流行的包管理器如何升级像 glibc 这样的包?

流行的包管理器如何升级像 glibc 这样的包?

我一直在深入研究 Linux from Scratch,我对系统的包管理方面特别感兴趣。我知道这本书没有涉及这一点,但如果我尝试 LFS,包管理将是一个很大的便利。

据我所知,当升级 glibc 之类的软件包时,您必须重新编译所有内容以反映更改。

如果这是真的,那么像 pacman 和 apt 这样的软件包管理器是如何解决这个问题的呢?在替换文件的过程中缺少 glibc 难道不会对系统造成灾难性的影响吗?

答案1

“当升级像 glibc 这样的软件包时,你必须重新编译所有内容以反映更改”这句话只有在你的软件基于静态库构建时才是正确的。几乎没有人这样做。因为重新编译很麻烦。相反,每个人都基于共享对象构建,这意味着如果库发生变化,那么应用程序将采用更改后的库。

嗯,它比 API 和 SONAME 等更复杂一些,但这就是基础。

相关内容