手动安装包后 yum 信息不更新

手动安装包后 yum 信息不更新

我的libevent安装版本是2.0.12

我通过以下命令安装新版本的 libevent (v2.1.12),一切顺利,但之后 yum info 再次显示 libevent 版本 2.0.12。

百胜怎么了?我怎样才能更新 yum 数据库?

  $ wget https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz

   $ tar -zxf libevent-*.tar.gz
   $ cd libevent-*/
   $ ./configure --prefix=/usr/local --enable-shared
   $ sudo make && make install

答案1

yum只查看 RPM 数据库中的内容,因为yum它只是rpm.当您从源代码编译该软件包并且没有使用yum或安装它rpm时,它不在 RPM 数据库中,也yum不会对其进行操作,而只会考虑libeventRPM 数据库中的内容。由于它libevent已经是最新的,yum不会做任何事情,也不会做任何事情rpm

您无需对数据库执行任何操作,因为它会正常运行。从源代码编译软件的原因是为了获得存储库中不可用的版本,以便您可以将其添加到环境中,而不会引起冲突,这些冲突可能会导致您陷入臭名昭著的“依赖地狱”,从而破坏您的系统。

答案2

您在发行版的版本上安装了该软件包,从而破坏了所安装内容的 RPM 数据库。如果你去问,例如,rpm verify libevent它会尖叫血腥谋杀。

如果您绝对必须安装新版本(通常是发行版,更重要的是“企业”长期版本,请保留旧的基本版本并添加补丁——本地化、错误修复、增强功能……从前沿上游反向移植--- 并添加定制的配置和文档;不是相同数量的上游版本,有时甚至相差很远),创建您自己的 RPM 包:

  • src.rpm从发行版的存档中获取最新信息。对于 CentOS,您还可以查看密切相关的 Fedora 的软件包,无论是发行版的最新版本,还是实验版本rawhide(正在准备成为发行版的下一个版本)。
  • 打开包装。保留手动的手头的(警告,这有点过时了)或通用的指导附近。
  • 更改spec文件以包含新版本很简单,但您必须确保原始版本中附带的任何补丁或配置文件仍然适用/是必需的。
  • 构建您自己的包,修复任何错误/警告。满意后安装即可。运行您认为必要的任何测试。

这样做可以确保 RPM(以及 dnf 等)了解您的新软件包,并在将其干净地集成到您的系统中大有帮助。但是您得到的是发行版的修改版本,并且距离向未修改系统的用户寻求帮助又近了一步。

另一种方法是安装非官方版本的软件,例如/usr/local,这样就不会冒严重损坏的风险。

相关内容