首页 > 解决方案 > RPM 包文件名语法,与 Debian 的区别

问题描述

我最近为 Debian(实际上是 Ubuntu 18 和 20)构建了一个可执行文件包。核心内容的 tarball 能够在 Fedora 34 上运行。所以现在我被要求为它创建一个 RPM。

Debian 文件名类似于:

mystuff-sfwrname-edu_21.05-0715.1234-u20_amd64.deb

这对应于 Debian 软件包文件名的name _ version _ arch .deb 语法。下划线是主要分隔符;减号并不重要。(u20表示 Ubuntu 20.04 版本;由于libc问题,还有一个u18Ubuntu 18.04 版本。)

来到 RPM 世界,我发现语法是: name - version - releasearch .rpm,其中减号和最后一个周期很重要。然而,在架构之前的名称和句点中似乎有包名称,例如openssh-clients-7.4p1-16.el7.x86_64带有减号。

然后我可以将我的包裹命名为:

mystuff-sfwrname-edu-21.05-0715.1234.el7.x86-64.rpm

在哪里:

如果我假设相同的 RPM 在 Fedora 34 和 CentOS 7 上工作,我会直接删除el7还是有其他一些我不知道的规则/实践?

标签: packagerpmdebian-packaging

解决方案


简而言之 - 是的,你可以。

有关版本指南的更多信息https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/

.el7disttag。通常在规范中写为:

发布:0715.1234%{?dist}

RPM 本身根本不关心它。它把它当作一个简单的字符串。只是.el7< .el8. 所以从技术上讲,您可以将软件包安装.el7到 RHEL8。但当然,有时由于不同平台上的路径不同,它并不能按预期工作。你必须自己测试它。


推荐阅读