This service is available only in Japanese-language.
【質問概要】
YocotoProjectバージョンをバージョンアップした際にrootfsイメージのサイズが依然のバージョンより大きい。
意識せずに(不要に)インストールされているパッケージの調査方法や適切な削除方法をご教授いただきたい。
【問題詳細】
以前YocotoProjectバージョン_Thud環境で構築したイメージファイルをzeus環境に変更し、
新しくイメージファイルを作成しました。
結果、ビルドが成功し、メイン機能であるアプリも正常にインストールすることができました。
しかし、出来上がったイメージファイルのサイズは依然に比べて約300Mbyteほど大きくなりました。
(各レイヤは全てzeus対応のものに変更。confの内容やインストールパッケージの内容は以前のバージョンから変更なし。)
【質問詳細】
問題詳細に記載したとおり、環境のバージョンアップにより意識していないパッケージが多数インストールされ、
想定よりもrootfsのサイズが大きくなってしまいました。
意識していないパッケージの調査方法と適切なパッケージの削除方法をご教授いただけないでしょうか。
また、上記のようにYoctoProjectをアップデートした際、上記のようなバージョンアップによる差分を
確認する方法、または差分を吸収するお作法のようなものがありましたら、
これに関しましてもご教授いただければ幸いです。
yakuhito
2020/3/31 (火) 17:20
DISTRO=poky MACHINE=beaglebone-yoctoの場合は
Thud対応のBSPを使用していていたものを、Zeus対応のBSPにバージョンアップしたところ、rootfsのサイズは233M → 242MBと、極端なサイズ差は出ておりません。
どのような構成でお使いになっているのかこちらでは推測できないのですが、ご利用のBSPでThud対応からZeus対応の間での
更新情報に何か記載されていませんでしょうか?
イメージに含まれるパッケージ名は、tmp/deploy/licenses/[イメージレシピ名]-[マシン名]-[ディストリビューション名]-構築日時/package.manifest に保存されていますので、ThudとZeusの差異を確認し、増えているパッケージを確認することは可能かと。
依存関係からイメージに追加されたpackageで不要と思われるものは、PACKAGE_EXCLUDE 変数にpackage名を連記することで、除去するjことは可能です。
sax_mizuno
2020/3/31 (火) 19:07
ご回答とご確認、ありがとうございます。
ご回答とご確認、ありがとうございます。
こちらは DISTRO=poky MACHINE = "intel-corei7-64" にて環境構築しておりました。
また、調査した結果、vim(vim_8.1.1518.bb)をIMAGE_INSTALL_appendすると、
サイズが大きくなることが分かりました。
さらに調査した結果、vimのレシピ上の「PACKAGECONFIG +=」にgtkguiが有効になっており、
(gtk+系パッケージがインストールされ、)サイズが大きくなる要因となっていたようです。
環境をバージョンアップした際に、上記vimのレシピバージョンも変わり、
上記の変更(PACKAGECONFIG +=部分の変更)に気づけなかったのが原因でした。
【追加質問】
①上記問題の解決策として、confに「DISTRO_FEATURES_remove = "gtkgui"」を記載し、
PACKAGECONFIGに含まれないように修正しました。
この方法は正しい直し方でしょうか。
②上記ようなレシピの変更に気づく方法/除去する方法として、ご回答いただいた、
-----
・「package.manifest」を参照してパッケージ一覧から不要なパッケージを発見する。
・PACKAGE_EXCLUDEにて除去対象を指定する。
-----
以外にもっと簡単に確認/調査する方法はないでしょうか。
(別の最良な方法がございましたら、ご教授お願います。)
yakuhito
2020/4/6 (月) 22:47
この件はかなり特殊なケースとなります
Yocto2.6 まで openembedded.org の meta-oe に含まれていた vim のレシピが Yocto2.7 から openembedded.org と Yocto Project で共同管理する openembedded-core に変更となった際の仕様変更が原因ですね。
その際の変更の実装も、かなり特殊な方式を採用しており(DISTRO_FEATURES 変数に含まれる gtkgui で構築時の動作を変更するレシピは、openembedded-core/meta-oe といった基本レイヤーには見当たらない)、上記①の対応が妥当と考えます。
②のレシピの変更に関してですが、openembedded-coreに含まれる(追加される、除去される)レシピは、各バージョンのリリース情報 https://lists.yoctoproject.org/g/yocto-announce/message/159 等をチェックするのが良いかと。
sax_mizuno
2020/4/7 (火) 09:25
ご対応いただきありがとうございました。
今後はYocotoProjectのバージョンをアップする際はリリース情報を確認し、
影響を確認したいと思います。