我创建了一个自定义组,例如“grp1”,在我的应用程序配方中说“app.bb”。
GROUPADD_PARAM_${PN} = "grp1"
我正在尝试将我的自定义用户添加到“space.bb”中的“grp1”组中,例如:“user1”。
USERADD_PARAM_${PN} = "-d ${localstatedir}/lib/space/ -s /bin/false -G grp1 -U user1"
useradd 命令失败:“useradd:组‘grp1’不存在”。 我也尝试过在 space.bb 中添加
DEPENDS_${PN} = "app"
,但没有帮助。
如何将自定义用户添加到 bitbake 配方中的自定义组?
TL;博士:
如果您可以重新定义配方中所有需要的组(因为它们以前不存在),那么它就可以正常工作。
我的工作方式是:
即使在您的
space.bb
中,我也重新定义了 app.bb
中的组,例如:
inherit useradd
...
# Forcing group from app.bb to exist here
GROUPADD_PARAM:${PN} = "grp1"
USERADD_PARAM_${PN} = "-d ${localstatedir}/lib/space/ -s /bin/false -G grp1 -U user1"
它会导致一些重复,但最终在发行版本身内部一切都工作正常,并且根本没有组重复。
此错误的另一个可能原因,如果正在使用某些配方
inherit extrauser
而不是
inherit useradd
并在的帮助下添加相同的组grp1
EXTRA_USERS_PARAMS = "\
useradd -p '' grp1; \
groupadd grp1; \
"
而不是经典
GROUPADD_PARAM_libAPP = "grp1"
USERADD_PARAM_libAPP = "--no-create-home --home /var/tmp --shell /bin/nologin --gid grp1 grp1"
将导致组grp1重复和useradd命令失败
Paiusco 的答案通过修复缺失依赖的症状来起作用。
为了使其更清晰,请找出哪个配方创建了该组(例如,在所有 *.bb 文件中搜索组名称)。由于
useradd
需要该组存在,因此您的配方取决于首先运行的其他配方。
因此,添加到您的食谱中:
DEPENDS += "recipe-that-creates-the-group"
这应该以正确的方式修复它。有关更多信息,请阅读参考手册中有关取决于的部分。