故障排除

卡住了?有问题吗?以下是提交错误报告之前要尝试的步骤。

  • 确保您使用的是最新版本。 如果您不在最新版本上,您的问题可能已经解决了!升级始终是最好的第一步。

  • 尝试旧版本。 如果你已经 on 最新的结构,尝试回滚几个次要版本(例如,如果在2.3上,尝试结构2.2或2.1),并查看问题是否消失。这将帮助开发人员在提交日志中首次出现问题时缩小范围。

  • 试着把你的帕拉米科调高。 Fabric在其ssh功能上严重依赖于Paramiko库,因此也尝试将上述两个步骤应用到您的Paramiko安装中。

    备注

    Fabric版本有时有不同的paramiko依赖关系-因此要尝试较旧的paramiko,您可能还需要降级Fabric。

  • 确保 Fabric 确实是问题所在。 如果问题出在远程命令的行为或输出中,请尝试在不涉及结构的情况下重新创建该命令:

    • 了解Fabric代表您执行的确切命令:

      • 在2.x和更高版本中,通过 echo=True 关键字参数, run.echo 配置设置,或 -e CLI选项。

      • 在1.x中,使用 --show=debug 寻找 run:sudo: 线。

    • 首先在交互式远程shell中执行该命令,以确保它对普通人有效;这将捕获诸如命令构造错误之类的问题。

    • 如果找不到问题,请在非shell ssh会话上运行该命令,例如 ssh yourserver "your command" . 根据您的设置和结构版本,您可能需要使用 ssh -T (禁用PTY)或 -t (启用pty)以最接近地匹配结构执行命令的方式。

  • Enable Paramiko-level debug logging. 如果您的问题在较低级别的paramiko库中,它可以帮助我们查看调试输出paramiko打印。在FabFile的顶层(或在适当的模块中,如果不使用FabFile),添加以下内容:

    import logging
    logging.basicConfig(level=logging.DEBUG)
    

    这应该开始将Paramiko的调试语句打印到标准错误流中。(请随意添加更多的伐木禁运 basicConfig()filename='/path/to/a/file' 如果你愿意的话)

    然后将此信息提交给任何在IRC或Bug报告中帮助您的人。