将 Qt 依赖项添加到 rpmbuild 中的规范文件

Posted

技术标签:

【中文标题】将 Qt 依赖项添加到 rpmbuild 中的规范文件【英文标题】:Adding Qt Dependencies to spec file in rpmbuild 【发布时间】:2019-06-03 18:24:02 【问题描述】:

我使用的是 Ubuntu 14.04,我正在更新现在使用 Qt 的应用程序的 rpmbuild 规范文件。

我需要的包如下:

sudo apt-get build-essential
sudo apt-get install mesa-common-dev -y
sudo apt-get install libglu1-mesa-dev -y
sudo apt-get qt5-default
sudo apt-get qtwebengine5-dev

我知道规范文件有“BuildRequires”和“Requires”依赖标签...编写此文件的任何帮助以及一些示例都会有所帮助。我有一个工作规范文件,我只需要添加依赖项。

【问题讨论】:

【参考方案1】:

我认为这里有些混乱。 spec 文件用于生成rpm 文件。但是 Ubuntu 使用 deb 文件。

假设你真的想创建一个 rpm;那么你需要知道这一点:

构建要求 构建 rpm 需要这些软件包。通常你需要 build-essential 和 '*-dev` 包来构建你的应用程序

需要 安装时需要这些软件包才能使您的应用程序正常工作;大多数情况下,您不再需要构建工具,但您仍然需要 qt5-default


PS:顺便说一句,我可能是世界上唯一使用带有特殊转换脚本https://bitbucket.org/klaussfreire/spec2deb/src/default/ 的规范文件构建 deb 包的人之一,但我不会真的推荐。

【讨论】:

感谢您的回复,非常感谢。我知道在 RHEL 中他们使用的 yum 没有与 Ubuntu 下的 apt-get 对应的包名称(例如 qt5-default 在 yum 中称为其他名称)......我如何创建一个兼容 Ubuntu 和红帽? 除了使用spec2deb你不能从spec文件创建Deb,你需要在Ubuntu上的Deb文件... 忘记deb...我只想创建一个RPM文件...我只想知道Qt依赖项 我不太明白。如果我理解得很好;你只需要登录你的redhat系统,找到你需要的包的包名;然后将它们添加到Requires 部分。假设您需要 /some/lib.so ;您可以使用rpm -qf /some/lib.so 来了解哪个包拥有该文件。

以上是关于将 Qt 依赖项添加到 rpmbuild 中的规范文件的主要内容,如果未能解决你的问题,请参考以下文章

vs添加附加依赖项后qt页面不显示

将所有 Maven 依赖项添加到 Arquillian

如何在 rpmbuild 规范文件中检查操作系统版本

如何将 git 存储库中的 jar 文件添加为 gradle 中的依赖项?

sbt / maven是否包含jar文件中的完整依赖项?

rpmbuild %dist 没有在 CentOS 5.5 上定义?