BitBake 不允許更改所有權

BitBake 不允許更改所有權

我正在使用 BitBake 編譯 Yocto 專案。

BitBake的一個配方嘗試使用指令來變更某些目錄和檔案的權限chown。問題是該命令失敗的原因是不允許更改所有權操作

BitBake 指令由使用者 luca 啟動,該使用者也是 sudoers。如果我輸入ls -l在有問題的資料夾中看到的內容是:

-rw-r--r--  1 luca luca 1875 May 13 17:10 arm-thumb-mutex_db5.patch
-rw-r--r--  1 luca luca   33 May 13 17:10 configure.sstate
drwxr-xr-x 16 luca luca 4096 May 13 17:10 db-6.0.30
-rw-r--r--  1 luca luca  665 May 13 17:10 fix-parallel-build.patch
drwxr-xr-x  3 luca luca 4096 May 13 19:11 image
drwxr-xr-x  2 luca luca 4096 May 13 19:11 temp

顯然,如果我手動輸入,例如,sudo chowwn 777 image它可以工作,但我無法更改導致錯誤的 BitBake 腳本。

我的權限和使用者有什麼問題嗎?

答案1

最後我對整個原始資料夾進行了 chmod 777 操作,一切都開始工作。可能是腳本或執行檔案的權限。感謝大家的支持。

答案2

我在 bitbake 收到類似的錯誤。就我而言,這是由於偽實用程式失敗,但 Yocto 沒有清楚地顯示錯誤並停止。相反,它會繼續下去,直到無法chmod -R dir像普通用戶一樣執行操作。實用程式「Pseudo」用於攔截chownchmod調用,並在 sqlite 資料庫中追蹤它們。他們的行為就像是在更改您的 RFS 檔案權限,但實際上並不需要 root。就我而言,如果您在失敗的 pkg 中搜尋錯誤:

build/tmp/work/aarch64-fsl-linux/gcc-runtime/linaro-4.9-r2015.03/temp> grep pseudo *
log.do_install:ERROR: ld.so: object 'libpseudo.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.

log.do_install.17098:ERROR: ld.so: object 'libpseudo.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.

這是因為有人之前已經為先前的開發活動設定了安全功能:

setcap cap_net_admin,cap_net_raw+eip /bin/bash or to /usr/bin/python. To fix: setcap -r /bin/bash

這篇很難找到的貼文讓我明白了這一點:http://lists.openembedded.org/pipermail/openembedded-core/2012-February/056779.html

相關內容