デフォルトでは、有効でないシステムサービス(ただしapache2)を有効にするためにYoctoでシンボリックリンクを作成しようとしています。私の後処理コマンドは次のとおりです。
my_postprocess_function() {
ln -s ${IMAGE_ROOTFS}/lib/systemd/system/apache2.service ${IMAGE_ROOTFS}/etc/systemd/system/multi-user.target.wants/apache2.service
}
ROOTFS_POSTPROCESS_COMMAND += "my_postprocess_function; "
もちろん、問題はソースファイルがターゲットに存在しないことです。ただし、正しいパス(たとえば/lib/systemd/system/apache2.service
)を使用すると、開発システムに存在しないため、レシピは失敗します。
rootfs(サブ)パスにシンボリックリンクを作成する正しい方法は何ですか?
答え1
通常、存在しないターゲットへのシンボリックリンクを作成できます。たとえば、すべてのシェルで次のようにします。
ln -s /no/such/file xxx
リンクを作成しますxxx
。そのため、コマンドから最初の$ {IMAGE_ROOTFS}を削除してください。
ln -s /lib/systemd/system/apache2.service ${IMAGE_ROOTFS}/etc/systemd/system/multi-user.target.wants/apache2.service