2016-01-06 73 views
0

我使用rpm-maven-plugin創建了一個RPM。我想有在Tomcat版本6或以上扶養,因此: -RPM依賴性如何覆蓋不同版本的Tomcat?

<requires> 
    <require>tomcat &gt;= 6.0</require> 
</requires> 

所以我創建了一個流浪初始化虛擬機,並嘗試安裝Tomcat: -

[[email protected] ~]$ sudo yum install tomcat 
Loaded plugins: fastestmirror 
Setting up Install Process 
Loading mirror speeds from cached hostfile 
* base: www.mirrorservice.org 
* extras: mirror.ukhost4u.com 
* updates: mirror.ukhost4u.com 
No package tomcat available. 
Error: Nothing to do 

所以我通過的tomcat6軟件包安裝相反,這很好。問題是tomcat6安裝不能滿足我的RPM依賴項,因爲它是tomcat6而不是tomcat。你如何解決這個問題?

據我所知,沒有辦法或依賴關係,所以我不能做tomcat >= 6 or tomcat6 or tomcat7 or tomcat8不知何故,這將是醜陋的無論如何。

回答

1

你說得對。在Requires中使用布爾值是不可能的。它目前正在開發中,並且可用於rpm的devel版本(並稱爲富有依賴性)。但是,這在任何發行版中都不可用。所以它不會幫助你。

您可以使用虛擬包解決它。在規範文件

%if 0%{?rhel} > 0 && 0%{?rhel} < 7 
Requires: tomcat6 
%else 
Requires: tomcat8 
%endif 

然而,這需要http://wiki.netbeans.org/Fedora_RPMs_-_Virtual_Packages

或者使用條件在規範文件中直接完成。我不知道如何/如果這可以在rpm-maven-plugin中完成。

+0

我是否認爲Tomcat rpms需要指定一個'provide'以使虛擬包可以工作? http://www.rpm.org/max-rpm/s1-rpm-depend-manual-dependencies.html#S3-RPM-DEPEND-VIRTUAL-PACKAGES –

相關問題