web-dev-qa-db-ja.com

Yoctoでsstate-cacheディレクトリを削除するにはどうすればよいですか?

YoctoProjectの「fido」環境のsstate-cacheディレクトリのサイズが3GBを超えています。 sstate-cacheyocto/build-dirディレクトリを削除するにはどうすればよいですか?

rm -rfを使用するのは節約ですか、それとも他の方法はありますか?

4
yoctotutor.com

Yoctoリファレンスマニュアルによると、build/tmpディレクトリを含む完全なsstate-cacheディレクトリを削除することは保存されています。

最後の手段として、ビルドをクリーンアップして最初から(ダウンロード以外で)開始するには、tmpディレクトリ内のすべてを削除するか、ディレクトリを完全に削除します。その場合は、build/sstate-cacheディレクトリも完全に削除する必要があります。 ( [1] および [2] を参照)

さらに、以下に示すようにdo_cleansstateを呼び出すことにより、特定のレシピのbitbakeを使用してsstate-cacheを削除できます( do_cleansstate を参照)。

$ bitbake -c cleansstate recipe

共有状態キャッシュには多くのメモリスペースが必要であり、イメージの構築中に必要なサイズに再び拡大することに注意してください。

共有状態キャッシュの詳細については、Yoctoリファレンスマニュアルの次のセクションを参照してください: 共有状態キャッシュ および sstate-cache

5
g0hl1n

これに対する正しいタスクは次のとおりです。

$ bitbake -c cleansstate <recipe-name>

参照: Yoctoリファレンスマニュアル

Sstateキャッシュを削除するクリーニングのタスクは他にもあり、さらに多くのタスクがあります(例:do_cleanall)。

4
h0ch5tr4355

Sstate-cacheディレクトリを削除しても安全ですが、そのサイズを縮小する適切な方法は、poky/scripts/sstate-cache-management.shのスクリプトを使用して古いエントリを削除することです。 https://git.yoctoproject.org/cgit.cgi/poky/plain/scripts/sstate-cache-management.sh を参照してください

1
Étienne

Sstateキャッシュのサイズを縮小するコマンドがある部分を太字にしました。これは、キャッシュをクリーンアップする別の方法です。

https://www.yoctoproject.org/sites/default/files/yocto_devday_advanced_class_sandiego.pdf スライド37

Sstate:推奨事項

•複雑なシステムでは、ネイティブと非ネイティブのsstateディレクトリなどのsstateディレクトリと、異なるBSPとアーチを分離することをお勧めします。

•単一のディレクトリを再利用すると、非常に急速に大きくなります。古いファイルを削除するには、atimeを使用します。注:これには、ビルドパフォーマンスのために通常無効にすることをお勧めするatime/relatimeでマウントされたファイルシステムが必要です。

find $ {sstate_dir} -name'sstate * '-atime +3 -delete; fi *

•sstateを定期的に新しいディレクトリに再構築し、古いsstateディレクトリを削除して制限されたサイズを維持します。使用されなくなってスペースを占有するパッケージまたはパッケージバージョンが存在する場合があります。

•HTTPやFTPなど、sstateに他のプロトコルを使用することは可能ですが、これらは避ける必要があります。 HTTPを使用すると、sstateが読み取り専用に制限され、FTPではパフォーマンスが低下します。

•さらに、http/ftpサーバーにsstateファイルがないため、再試行とタイムアウトが原因でwgetが長時間ハングします。

1
Charles C.