manifest分支为br_release_openUBMC2509_20251230;
bingo是用的pip安装的,版本为:
![]()
但是在sudo的情况下显示没有bingo命令。
![]()
答案内容由AI生成,仅供参考:
在您描述的场景中,bingo 命令在普通用户模式下可以正常执行(路径为 /home/cftc/.local/bin/bingo),但在使用 sudo 时提示“找不到命令”,这是典型的 PATH 环境变量差异问题,而非权限或安装缺失问题。
以下是详细分析和解决方案:
普通用户与 root 用户的 PATH 不同:
pip install 安装的 bingo 被安装到了用户本地目录:/home/cftc/.local/bin/sudo bingo build 时,系统会在 root 的 PATH(如 /usr/bin, /bin, /usr/local/bin)中查找 bingo,但找不到,因此报错。sudo 默认会重置环境变量:
sudo 默认不会继承普通用户的 PATH、HOME 等环境变量。bingo,sudo 也无法感知该路径。命令拼写错误:
sudo binggo build(多了一个 g),应为 sudo bingo build。sudo -E 保留当前用户环境变量(推荐用于开发调试)sudo -E bingo build -b openUBMC -r openubmc_dev
-E 参数表示 preserve environment,即保留当前用户的 PATH 和其他环境变量。sudo 就能识别 /home/cftc/.local/bin/bingo。
注意:仅在您信任当前环境且为开发调试时使用此方法。生产环境建议使用方法二或三。
bingo 安装到系统级路径(推荐长期使用)将 bingo 重新安装到系统级可执行目录,例如 /usr/local/bin,这样所有用户(包括 root)都能访问。
# 卸载当前用户安装的版本
pip3 uninstall openubmc-bingo
# 重新安装到系统级目录(需 sudo)
sudo pip3 install --system openubmc-bingo
如果
--system无效或报错,可尝试:
sudo pip3 install --user openubmc-bingo
然后手动将 /usr/local/bin 加入 PATH,或创建软链接:
# 查看 bingo 是否已安装到 /usr/local/bin
ls -l /usr/local/bin/bingo
# 若没有,手动创建软链接
sudo ln -sf /home/cftc/.local/bin/bingo /usr/local/bin/bingo
验证是否成功:
which bingo # 应返回 /usr/local/bin/bingo
sudo which bingo # 也应返回相同路径
sudo bingo -v # 应输出版本号
直接使用 bingo 的完整路径执行命令:
sudo /home/cftc/.local/bin/bingo build -b openUBMC -r openubmc_dev
虽然繁琐,但最安全、最明确,适合脚本或临时调试。
非root用户安装在家目录下的~/.local/bin中,使用PATH环境变量查找命令。
切换用户身份时PATH环境变量会变更,如果切换到root,请在root环境中安装bingo。
手动git clone AtomGit | GitCode - 全球开发者的开源社区,开源代码托管平台 下载源码
然后切换到root权限下,运行sh install_local.sh安装就行了,
可能需要一些依赖,报什么就安装什么就可以了。
安装官网文档里直接使用pip或者apt安装都会有权限或者其他问题,
建议提前安装conan
pip install conan --trusted-host pypi.tuna.tsinghua.edu.cn --index-url https://pypi.tuna.tsinghua.edu.cn/simple/