我已经安装了jhbuild并将PATH变量设置为$PATH:~/..local/bin。现在,当我运行jhbuild命令时,我得到了错误:您不应该使用jhbuild作为root用户,当我将用户更改为非根用户时,我再次将路径值更改为上面的路径值,用/root替换~,我得到了错误jhbuild命令not查找。我使用的是kali linux,所以默认用户是root用户。
发布于 2018-02-22 16:57:49
因此,我找到了命令的解决方案,我改变了shell正在寻找命令的目录的权限(/root/..local/bin)和jhbuild想要从命令创建的所有文件(例如,/jhbuild,/jhbuild/..cache)。我手动创建它们,并以类似的方式更改它们的权限。
发布于 2018-12-16 14:33:30
您正在经历的行为与权限或二进制文件的位置无关,而是与执行它的用户无关。指定具有任意值的环境变量JHBUILD_RUN_AS_ROOT,例如env JHBUILD_RUN_AS_ROOT= jhbuild ...,以便能够以根用户身份运行jhbuild。
这是一个相当没有文档记录的特性,我肯定我建议对应用程序反馈进行一次改进,这一点已经被忽略了;请参阅https://github.com/GNOME/jhbuild/blob/master/jhbuild/main.py#L97来了解为什么应该这样做。
发布于 2021-04-26 14:51:38
正如Karl所说,您需要使用env JHBUILD_RUN_AS_ROOT= jhbuild ...才能以根用户身份运行jhbuild。
因为他们放置了根检查https://github.com/GNOME/jhbuild/blob/master/jhbuild/main.py#L59,如果运行它的用户是根用户,则会得到该错误。
当您更新或构建模块时,该解决方案是很好的。
但是,如果您想运行已经构建的gnome版本,您将无法再次获得该错误。
我在日志上看到的。
因此,您需要从jhbuild文件中删除根检查。
在您不需要设置env之后,您可以只使用jhbuild ...。
jhbuild包删除根检查:apt source jhbuild.jhbuild-<version>/jhbuild/main-py.行删除根检查以删除(或注释):如果'JHBUILD_RUN_AS_ROOT‘不在os.environ和hasattr(os,'getuid')和os.getuid() == 0中:uprint(_(’您不应该将jhbuild作为根.\n‘),file=sys.stderr) sys.exit(1)
apt build-dep jhbuild..deb文件安装在父目录:dpkg -i *.deb中。对于command not found,您可以使用apt安装jhbuild,这样它就可以在系统范围内使用。
或者为每个用户重新构建它,或者像您所说的那样修复权限。
https://unix.stackexchange.com/questions/425891
复制相似问题