2016-03-23 39 views
2

私は "foo"という名前のコンポーネント、そのレシピ、およびイメージのレシピを持っています。これはスタック全体にfooを追加し、fooが有効なイメージを構築します。他のレシピで使用できるyoctoレシピにマクロまたは変数を追加するにはどうすればよいですか?

これで、foo対応の画像でのみ機能を有効にする必要があります。だから私はそれらを区別するために、fooを有効にしたイメージのためのマクロまたは変数を追加する必要があります。

以下に示すように、イメージのレシピを使ってディストロフィーチャーにfooを追加しようとしました。

DISTRO_FEATURES_append = " foo" 

しかし、他のレシピには反映されていないため動作しません。

fooに応じて別のモジュールを変更する必要があります。 2番目のモジュールからfooが有効かどうかを確認する必要があります。

これを達成する他の方法はありませんか?これにディストリビューション機能を使用できますか?

答えて

1

ディストロフィーチャは、その名前が示すとおり、ディストリビューションです。各レシピがディストリビューション全体の設定を継承し、独自の変更を行うため、レシピ内で変更したり、他のレシピに広めることはできません。

これにはイメージレシピが含まれています。イメージレシピはすべて、すでにビルドされたパッケージを取り出してインストールするためです。イメージレシピでDISTRO_FEATURESを変更すると、イメージ構築用に変更されますが、使用されているパッケージはすでに作成されています。

あなたの質問は詳細にはっきりとはっきりしていないので、良い答えを与えるのは難しいです。イメージが「有効になっている」かどうかによって、個々のレシピを別々に作成する必要があることを意味しますか?それとも、これはfooパッケージを持っているかどうかの問題なのでしょうか?

+0

イメージが「有効」になっているかどうかによって、個々のレシピを別々に作成する必要があるのでしょうか? - はい。私はfooに応じて別のモジュールを変更する必要があります。 2番目のモジュールからfooが有効かどうかを調べる必要があります。 –

+0

次に、ディストロフィーチャーを基本的に説明するので、mydistrofoo.confにmydistro.confとmydistrofooの2つのディストリビューションが必要です。mydistrofoo.confにはfooがDISTRO_FEATURESに追加されます。 抽象化しているように、具体的には難しいのは、常にfooでビルドすることですが、fooなしでパッケージをインストールできるようにパッケージを分割することです。 oe-coreのパッケージはたくさんあります。つまり、Pythonのサポートはデフォルトで有効になりますが、別のパッケージに入れてインストールする必要はありません。 –

+0

ディストロ機能の追加例を教えてください。私はyoctoの初心者です。 –

関連する問題