我认为我的问题与“https://serverfault.com/q/299179”和“https://serverfault.com/q/283330/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
。唉,输出再次对我的事业没有帮助。
答案 0 :(得分:2)
...除了“https://serverfault.com/q/283330/71790”中指出的条件之外,还有类似上面的符号/别名的内容。稍微猜一下,网络搜索出现了centos-release
,当然还有redhat-release
作为其他两个相关发行版上使用的包名。
由于我花了一些时间来提出解决方案并且分享是关心的,所以我决定写下我为下一个internaut进行网络搜索所发现的内容。
所以,接下来我运行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-release
和sl-release
。所以:
Require: redhat-release >= 6.1
完成所有这些工作。
在相关的说明中,我知道所有人都有一个文件/etc/redhat-release
和yum 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