簡體   English   中英

RPM需要軟件包的i386版本

[英]RPM Requires i386 version of a package

不確定是否屬於這里...但是...

我已成功為Centos構建RPM,問題是它是32位二進制文​​件(不要問。)-rpm規范的require部分僅安裝所需庫的64bit / x86_64版本。

我鏈接到libicu,我希望rpm自動安裝32bit版本作為依賴項。 我的需求在我的rpmspec文件中看起來像這樣:

Requires: libicu

構建rpm可以正常工作,除了當我嘗試在完全干凈的系統上安裝rpm時,yum希望將其安裝為依賴項:

libicu    x86_64

這不起作用,因為那只是該庫的x86_64版本。 如果我嘗試手動安裝libicu:

yum install libicu

我得到:

libicu    x86_64
libicu    i386

它還安裝了該庫的32位版本,並且我的應用程序正常工作。 如何獲得rpm以自動安裝此庫的32位版本? 任何想法,將不勝感激...

這個問題可能更好地屬於ServerFault,但我認為從RPM 4.6.0開始,您可以執行以下操作:

Requires: libicu%{_isa}
%if %{__isa_bits} == 64
Requires: libicu(%{__isa_name}-32)
%endif

[請參閱http://www.rpm.org/wiki/PackagerDocs/ArchDependencies]

但是,不幸的是,我當前正在使用的服務器正在運行RPM 4.4.2.3,因此我不得不使用您的解決方案...謝謝,順便說一句。 :-)

我(終於)找到了一個似乎可行的答案。 將以下內容添加到rpm規范中的Requires:標簽中:

actual-so-name()(64bit), actual-so-name-again, package-name

因此,作為示例,在我的情況下,我需要libicu進行以下操作(只是選擇了我碰巧鏈接到的icu .so文件之一):

Requires: libicui18n.so.36()(64bit), libicuuc.so.36, libicu

這似乎有效。

有沒有更好的辦法?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM