安装rpm
软件包时,它会警告缺少必要的依赖库。事实上,我已经从源代码安装了该库,所以我想rpm
只是不知道这一点。
那么我可以让我rpm
知道现有的图书馆吗?如何?也许在配置文件中添加一些代码rpm
?
顺便说一句,(再次)安装缺少的库rpm
可能会(快速)解决问题,但有时没有rpm
可用的版本。
答案1
RPM 依赖项数据库无法判断您是否从源安装了软件包。 RPM 数据库仅了解 RPM 包中存在的元数据,从源安装的包不包含此元数据。
一些从源代码构建包的配置脚本会生成pkg-config
,这是有关已安装包的元数据。然而,来自pkg-config
RPM 元数据(或DEB
元数据,或pacman
元数据)的元数据之间没有明确的集成。当打包发行版时,打包者将特定格式的元数据插入到包(例如 RPM 包)中,并且该元数据用于确定依赖性。不以任何其他形式提供元数据。
另一方面,您可以在同一系统上拥有不同版本的库。默认情况下(即根据GNU 编码标准大多数软件包都遵循)configure
脚本应将其产品安装到/usr/local
.虽然发行版(例如)打包的软件包RPM
应将其内容安装到/usr
.
因此,如果您遵循约定(称为FHS)并保留从源代码安装的包/库/usr/local
,然后通过安装相同的库RPM
不会与您的库冲突(因为发行版的打包程序确实遵循 FHS)。
当没有可用的 RPM 时,您可以自己构建它。为此,您需要从源代码构建包/库并将其安装到虚拟位置(构建根)。然后提供RPM包所需的元数据,并将其打包成RPM文件。 TLDP 有一个过时但非常彻底的构建 RPM 的指南。
答案2
这是坚持使用包管理器(例如 )的一个很好的理由yum
,或者在最坏的情况下rpm
避免从源安装。
因此,解决方案将使用 RPM 包安装缺少的依赖项。首先从源代码中删除您安装的版本是一个好主意,但这有时会有点困难。