首页 > 解决方案 > 需要 rpm 依赖项,即使它们存在

问题描述

我正在尝试在 Centos7 VM 上安装自定义的 openresty。

sudo rpm -i openresty-1.19.3.1-1.el7.x86_64.rpm

但是我收到此错误:

        perl(Test::Nginx::Socket::Lua) is needed by openresty-1.19.3.1-1.el7.x86_64
        perl(Test::Nginx::Socket::Lua::Stream) is needed by openresty-1.19.3.1-1.el7.x86_64

但是我已经用 cpan 安装了这些依赖项,当我尝试再次安装它们时,我得到:

Test::Nginx is up to date (0.29).

Text::Nginx 包含 socket::lua 子类。

我不确定那里发生了什么。似乎 rpm 并没有发现这些依赖项的存在。我重新启动,刷新..等,但没有改变。

标签: perlcentos7rpmrpmbuild

解决方案


检查我关于 python How to include pip packages in rpm build的非常相似的答案

RPM 检查您在 rpmdb 中的内容,而不是您在磁盘上安装的内容。RPM 无法真正理解所有这些生态系统(python、perl、ruby、rust、java、nojs ......)。

您要么需要打包依赖项(cpan2spec 是您的朋友),要么使用create-fake-rpm.


推荐阅读