为什么 `dbbotctl env setup` 会失败?
先执行:
/usr/local/dbbot/bin/dbbotctl doctor
它会先把 python3、sshpass、绿色版 Ansible 入口是否存在等前置问题暴露出来。
常见原因:
- 控制机没有兼容的
python3。当前发行包内置的是ansible-base 2.10.17,控制机侧要求 Python3.6到3.11,3.12+不在支持范围内。最小化 CentOS 7 通常没有python3,dbbotctl env setup会提示安装;按回车或输入y后继续。 - Linux 控制机既没有
yum也没有dnf,导致dbbotctl env setup无法自动补齐依赖。 - Linux 控制机缺少 SELinux Python 绑定,且仓库里没有可安装的
python3-libselinux/libselinux-python3。 - macOS 缺少 Command Line Tools,导致
tar、ssh或pip不可用。 - 发行包不完整,
/usr/local/dbbot/portable-ansible/ansible-playbook或libexec/dbbotctl/sshpass-x64缺失。
建议排查顺序:
- 先跑
dbbotctl doctor看是WARN还是FAIL。 - 手工验证绿色版入口是否能启动:
python3 /usr/local/dbbot/portable-ansible/ansible-playbook --version
- 如果是 macOS,先执行
xcode-select --install,再重新运行dbbotctl env setup。 - 如果控制机上只有 Python
3.12+,请补一个3.11或更低版本的python3。
补充说明:
- Linux 初始化阶段会尝试写入
~/.bashrc,并在缺少sshpass时把随包的sshpass-x64放到/usr/bin/sshpass,所以控制机本地权限必须足够。 - 直接使用绿色版路径排障时,请优先写死
/usr/local/dbbot/portable-ansible/...,不要自行假设公开环境变量名。
相关文档: