This service is available only in Japanese-language.
ツールチェイン(populate_sdk)を作成しようと試みたところ、エラーが発生して停止しました。
エラーの内容を確認してみると、以下の内容が表示されていました。
- package postgresql-11.5-r0.aarch64 requires libperl.so.5()(64bit), but none of the providers can be installed
- conflicting requests
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
通常のイメージ作成(bitbake core-image-minimal)は成功し、libperl.so.5もrootfsのuser/libに展開されていました。
またIMAGE_INSTALL_appendからpostgresqlを外すと、populate_sdkが完了いたします。
postgressqlを含めたsdkを作成する場合、何か良い方法は無いでしょうか?
※allowerasingのオプションを追加する方法などご教授願えればと考えております。
takeda
2020/3/31 (火) 11:45
記載が漏れていました。
現在のYoctoバージョンは、Warriorの最新バージョンで実施しております。
yakuhito
2020/3/31 (火) 18:19
postgresql のperl拡張は必須ですか?
meta-oe/recipes-dbs/postgresql/postgresql.inc の記載を見ますと、
123 do_configure() {
124 # do_configure
125 autotools_do_configure
126
127 # do_configure_append
128 # workaround perl package related bugs
と、perlのパッケージのbugに由来するかなりトリッキーなことを行っており、これが原因でpopulate_sdk 実施時にエラーになっています。
postgresql を使用する際に、perl拡張を使用していないのであれば
PACKAGECONFIG ?= "${enable_pam} openssl python uuid libxml tcl nls libxml"
と、PACKAGECONFIG変数に含まれているperlを除外する上記のようなbbappendを作成することで、
sdkの構築は可能となることを確認しております。
perl拡張が必要な場合は、
・もともとのperlのbugを解消
・perlのbugを解消したことで生じる副作用の調査
・副作用が無い場合には、build systemで生成されるperl(-native ?)を使用するように
do_configureを上書き定義
といった修正が必要になると考えます。
takeda
2020/4/1 (水) 10:19
回答ありがとうございます。
perlを除外できるか検討し、必要な場合はSDKの作成を諦める方向で検討します。
因みにエラーメッセージにある--allowerasingを追加する方法はありますか?
(oe_runmake前にlibperl.soを確認して、libperl.soが無ければ--allowerasingオプションを付与という感じでしょうか?)