OpenWrt之パッケージ: 依存関係の使用

OpenWrt之パッケージ: 依存関係の使用


序文

DEPENDSこの記事では、OpenWrt ドキュメントを翻訳して、 、@の分析について説明しますが、&必然的にいくつかの問題が発生します。|| ()

https://openwrt.org/docs/guide-developer/dependency

https://openwrt.org/docs/guide-developer/packages


概要・トピックス

パッケージ Makefile には次のセクションが含まれています。

define Package/tcpdump/default
  SECTION:=net
  CATEGORY:=Network
  DEPENDS:=+libpcap
  TITLE:=Network monitoring and data acquisition tool
  URL:=http://www.tcpdump.org/
endef

この記事では、DEPENDS:=+libpcapライン


依存関係の種類 / 依存関係の種類

  • libpcap選択しないtcpdump選択できません
DEPENDS:=libpcap
  • 選択するとtcpdumplibpcapも選択されます
DEPENDS:=+libpcap
  • tcpdump選択されている場合はarpd也会被选中libpcapこの時点で選択可能ですが、そうでない場合は選択できません。
DEPENDS:=+PACKAGE_arpd:libpcap
  • BUSYBOX入っていない場合はHOSTNAME選択してくださいnet-tools-hostname
DEPENDS:=+!BUSYBOX_CONFIG_HOSTNAME:net-tools-hostname
  • このオプションは存在USB_SUPPORT(定義)されている必要があります。そうでない場合、tcpdumpこのオプションは表示されません。
DEPENDS:=@USB_SUPPORT
  • tcpdump選択すると、KERNEL_DEBUG_FS関連項目 (選択した項目を含む) が自動的に設定されます。
DEPENDS:=+@KERNEL_DEBUG_FS

注:使用時にインストールされているかどうかopkg installは確認されません。KERNEL_DEBUG_FS

  • net-tools-hostname選択されていない場合は、BUSYBOX_CONFIG_HOSTNAME関連する項目が自動的に設定されます (選択済みも含む)。
DEPENDS:=+@!PACKAGE_net-tools-hostname:BUSYBOX_CONFIG_HOSTNAME

特記事項・特記事項

  • MakefileOpenWrt にないものを定義してPackageDEPENDSそれを呼び出すことができます。
define Package/package-name/config
    ...config stuff
endef

次のコマンドを含めます。

注文 意味
パッケージを選択 チェックが入っている場合はtcpdumppackageこちらもチェックされます。
packageb の場合はパッケージを選択 選択するとpackagebpackageも選択されます
SYMBOL の場合にパッケージを選択 CONFIG_SYMBOL定義されていない限りpackageオプションではありません
パッケージに依存しますb tcpdumpに依存しますpackagebpackageb選択しないと表示されませんtcpdump
packagec の場合は packageb に依存します 選択した場合はpackagectcpdump以下に依存しますpackageb
シンボルを選択 チェックを入れると にtcpdump設定されますCONFIG_SYMBOL=y
パッケージbの場合はSYMBOLを選択 選択した場合packageb、実行するselect SYMBOLアクション
SYMBOL2 の場合は SYMBOL を選択 定義されている場合SYMBOL2、実行するselect SYMBOLアクション

Package/foo/configなお、を使用する場合はselect barコンパイルが選択されますbarが、 を使用する場合はインストールされているかどうかopkg install fooを確認する必要はありません。foo


警告/警告

パッケージとパッケージの依存関係は相互に依存することはできません ( Package Adepend on Package BPackage Bdepend on Package A)。この状況は許可されません。この種の循環依存関係が発生すると、make menuconfigやがて他の問題が発生します。


ブール演算子の使用

  • DEPENDS:@SYMBOLまたDEPENDS:@SYMBOL:package、 if のブール演算子演算を構文的にサポートします。!&&||

  • DEPENDS:+SYMBOL:package構文には bool 演算子の操作に関する制限があり、!条件全体にのみ使用できます。括号読みやすくするためだけであり、効果はありません。&&優先順位はそれよりも高くなります||。したがって、 +(YYY||FOO&&BAR):packagewhen がYYY選択されている場合、またはFOO両方がBAR選択されている場合package選択することができます。

  • +YYY||(FOO&&BAR):package読みやすさを考えると、もっと良いかもしれません

  • ただし、+(YYY||FOO)&&BAR:packageこの括弧は優先順位を変更するものではなく、括号読みやすくするためだけのものであり、効果はありません。


あとがき

翻訳はまだ比較的弱いので、理解できるかどうかはわかりませんが、少なくとも私自身は理解できます。

WeChat 公開アカウント: NueXiniShare にご注目ください。

楽しんでください〜

おすすめ

転載: blog.csdn.net/a924282761/article/details/126316882