1

これがここに属しているかどうかは定かではありませんが...

Centos 用の RPM を正常にビルドしています。問題は、それが 32 ビット バイナリであることです (聞かないでください..) - rpm 仕様の必要な部分は、必要なライブラリの 64 ビット/x86_64 バージョンのみをインストールします。

libicu に対してリンクしています。rpm で 32 ビット バージョンを依存関係として自動的にインストールする必要があります。私の rpmspec ファイルでは、私の require は次のようになります。

Requires: libicu

rpm のビルドは問題なく動作しますが、完全にクリーンなシステムに rpm をインストールしようとすると、yum がこれを依存関係としてインストールする必要があります。

libicu    x86_64

ライブラリの x86_64 バージョンのみであるため、これは機能しません。libicu を手動でインストールしようとすると:

yum install libicu

私は得る:

libicu    x86_64
libicu    i386

ライブラリの 32 ビット バージョンもインストールされ、アプリケーションが動作します。このライブラリの 32 ビット バージョンを自動的にインストールするように rpm を取得するにはどうすればよいですか? どんなアイデアでも大歓迎です...

4

2 に答える 2

1

この質問はおそらく 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 を実行しているため、あなたのソリューションを使用する必要がありました...そして、ありがとうございます。:-)

于 2011-05-04T17:08:26.257 に答える
0

私は(ついに)うまくいくと思われる答えを見つけました。rpm 仕様の Requires: タグに以下を追加します。

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

したがって、例として、私の場合はlibicuが必要で、次のことを行いました(たまたまリンクしているicu .soファイルの1つを選択しました):

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

これはうまくいくようです。

より良い方法はありますか?

于 2010-09-15T04:37:32.143 に答える