YoctoProjectの「fido」環境のsstate-cache
ディレクトリのサイズが3GBを超えています。 sstate-cache
のyocto/build-dir
ディレクトリを削除するにはどうすればよいですか?
rm -rf
を使用するのは節約ですか、それとも他の方法はありますか?
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 。
これに対する正しいタスクは次のとおりです。
$ bitbake -c cleansstate <recipe-name>
参照: Yoctoリファレンスマニュアル
Sstateキャッシュを削除するクリーニングのタスクは他にもあり、さらに多くのタスクがあります(例:do_cleanall
)。
Sstate-cacheディレクトリを削除しても安全ですが、そのサイズを縮小する適切な方法は、poky/scripts/sstate-cache-management.sh
のスクリプトを使用して古いエントリを削除することです。 https://git.yoctoproject.org/cgit.cgi/poky/plain/scripts/sstate-cache-management.sh を参照してください
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が長時間ハングします。