私はrpmbuild
コマンドを使用してrpmを構築しています:
rpmbuild -bb --root <DIRECTORY> --target i386 --define "_topdir <DIRECTORY>" <specfile>.spec
SLED 10 SP3 x86マシンを使用すると、正常に実行されます。しかし、私のSLES 10 SP3 x64仮想マシンでは、次のエラーが発生します。
error: No compatible architectures found for build
最初は--target
オプションを使用していませんでしたが、x86マシンで実行されていましたが、x64マシンでも同じエラーが発生しました。
このエラーを解決するために私を助けてください
Rpm、specファイル、rpmbuildに関するFedoraのドキュメントから:
The --target option sets the target architecture at build time. Chapter 3,
Using RPM covers how you can use the --ignoreos and --ignorearch options
when installing RPMs to ignore the operating system and architecture that
is flagged within the RPM. Of course, this works only if you are installing
on a compatible architecture.
On the surface level, the --target option overrides some of the macros in
the spec file, %_target, %_target_Arch, and %_target_os. This flags the RPM
for the new target platform.
Under the covers, setting the architecture macros is not enough. You really
cannot create a PowerPC executable, for example, on an Intel-architecture
machine, unless you have a PowerPC cross compiler, a compiler that can make
PowerPC executables.
http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch-rpmbuild.html
したがって、それが言うように、追加のコンパイラーがインストールされていることを確認してください(例えば、gcc.i686&gcc.x86_64)。
"-bb"フラグを使用しているため、binaryからビルドしているため、他のアーキテクチャー用のコンパイラーをインストールする必要はありません。
スペックファイルの "Buildarch"行を削除して、コマンドラインから渡すだけです。
--target i386
または
--target x86_64
そして、それはあなたのためにrpmを作成するはずです。