我对使用 Web 前端技术构建 Linux 桌面应用程序感兴趣。我尝试过这两个平台——Chrom 嵌入式框架/CEFPython, 和敬畏者,似乎依赖于libudev.so.0
,并且当他们找不到它时会以最不愉快的方式失败。
libudev.so.0
然而,最近的 Ubuntu 版本中似乎没有任何软件包提供此功能,并且这个AUR包只实现了常见但有争议的修复,将其符号链接到libudev.so.1
.另一方面,Chromium 浏览器(CEF 和 Awesomium 均基于其最新版本)可以在没有这种依赖性的情况下正常运行。
有谁知道这个图书馆背后有什么故事吗?如何正确确保依赖嵌入 Chromium 的软件在不同 Linux 发行版之间可靠运行?
答案1
基本上,udev
它被带入了整个systemd
革命,并成为一个更大、更复杂的系统的一部分。各种更改增加了界面,并且需要从 跳转.so.0
到.so.1
。
.so.0
开发人员没有通过提供和来同时支持旧接口和新接口.so.1
,而是选择说“操它,我们会让它们全部升级其依赖项!”他们.so.0
从二进制包中删除了。
如果有必要的话,可以构建一个libudev
仍然提供的旧版本。.so.0
也有可能这种变化是最近发生的,以至于大多数包维护者都没有注意到明确声明“这个包需要libudev
之前版本xyz
”的故障,并且大多数开发人员还没有切换他们的二进制文件以需要最新版本的libudev
.
第三种可能性是,一些关键开发人员实际上符号链接.so.0
到了.so.1
。
基本上,当任何关键组件进行重大界面更改时,都会发生同样混乱的可能性。
和:程序库指南