1

我认为我的问题与“ https://serverfault.com/q/299179 ”和“ https://serverfault.com/q/283 ​​330/71790 ”有些相关,但是对于我来说都没有令人满意的答案那些。

为了确保我的依赖项是正确的.rpm,我需要一个特定的最低版本。就我而言sl-release >= 6.1。好吧,所以我Requires: sl-release >= 6.1.spec文件中写道,然后我恍然大悟:“如果有人试图在相关发行版之一上安装它怎么办?” (如 CentOS 或 RHEL 本身)。

由于 Scientific Linux 是基于 RHEL 的,就像 CentOS 一样,应该有一种方式来表达我需要基于特定 RHEL 版本的东西。唉,一个快速的yum list installed|grep release只产生了:

sl-release.x86_64  6.1-2         @anaconda-ScientificLinux-201107272231.x86_64/6

Dang,sl-release显然是特定于 Scientific Linux 的(并且yum list没有任何帮助,yum grouplist也没有提供任何东西)。所以我认为依赖必须以某种方式表达Provides:并发布一个yum deplist sl-release. 唉,输出再次对我的事业没有帮助。

4

1 回答 1

2

...事实证明,除了“ https://serverfault.com/q/283​​330/71790 ”中指出的条件之外,上面还有类似符号/别名的名称。稍微猜测一下,出现了一个网络搜索centos-release,当然还有redhat-release其他两个相关发行版上使用的包名称。

由于我花了一些时间想出解决方案并且分享是关怀,我决定写下我发现的内容,以供下一位进行网络搜索的互联网用户使用。

所以,接下来我跑去yum install redhat-release安装它,希望它可以使用。它

$ sudo yum install redhat-release
Setting up Install Process
Package sl-release-6.1-2.x86_64 already installed and latest version
Nothing to do

显然,这个名字redhat-release以某种方式神奇地翻译为sl-release。即它是一个别名。

结论

您可以使用通用名称redhat-release,甚至在两个派生的发行版 CentOS 和 Scientific Linux 上来指代各自特定于发行版的软件包centos-releasesl-release. 所以:

Require: redhat-release >= 6.1

对所有人都有效。


在相关的说明中,我知道他们都有一个文件/etc/redhat-releaseyum whatprovides /etc/redhat-release给了我:

$ yum whatprovides /etc/redhat-release
sl-release-6.1-2.x86_64 : Scientific Linux release file
Repo        : local
Matched from:
Filename    : /etc/redhat-release



sl-release-6.1-2.x86_64 : Scientific Linux release file
Repo        : installed
Matched from:
Other       : Provides-match: /etc/redhat-release
于 2013-09-02T22:02:00.530 回答