/usr/lib 和 /usr/local/lib 有什么区别?

/usr/lib 和 /usr/local/lib 有什么区别?

我在 Void Linux 上。

我安装了自由通过 Void 包管理器。它把libssl.so.48.0.1/usr/lib。通过这个设置我遇到了错误并且https在我的应用程序中无法正常工作。

所以我编译了openssl-1.1从来源并复制libssl.so.1.1/usr/local/lib进而LD配置

然后我的应用程序开始正常工作。

为何libssl.so.48.0.1libressl 附带的那个不工作?难道它的版本比我们编译的版本高吗?

另外,为什么libssl.so.1.1/usr/local/lib覆盖libssl.so.48.0.1/usr/lib?既然他们都在场?

答案1

  • 对于主题中的问题:/usr/local/lib适用于您自己安装(编译)的库。/usr/lib适用于您的发行版提供的库。您可能想阅读有关文件系统层次结构标准(FHS)了解更多信息。
  • 对于正文中的第一个问题:要知道为什么确切地它不起作用,需要更多信息。您已经可以记住,新版本的软件/库并不总是更好。它们可能会破坏兼容性,由于新功能而引入错误,......
  • 对于第二个问题:
    • 原因是系统遵循目录中提到的顺序,$LD_LIBRARY_PATH直到找到可以使用的库。如果 var 不存在,它将使用 的内容/etc/ld.so.conf
    • 其背后的想法是系统管理员应该控制系统,而不是发行版的开发人员。如果您想使用自己的版本(即 中的版本/usr/local/lib),那么系统应该允许您这样做。

相关内容