故障排除指南
本指南提供常见问题的解决方案和调试技巧,包括以下主题:
- 身份验证或登录错误
- 常见问题解答 (FAQ)
- 调试技巧
- 与您的问题类似的现有 GitHub Issues 或创建新 Issues
身份验证或登录错误
错误:
Failed to login. Message: Request contains an invalid argument
- 拥有 Google Workspace 账户或与其 Gmail 账户关联的 Google Cloud 账户的用户可能无法激活 Google Code Assist 计划的免费套餐。
- 对于 Google Cloud 账户,您可以通过将
GOOGLE_CLOUD_PROJECT
设置为您的项目 ID 来解决此问题。 - 或者,您可以从 Google AI Studio 获取 Gemini API 密钥,该平台也包含单独的免费套餐。
错误:
UNABLE_TO_GET_ISSUER_CERT_LOCALLY
或unable to get local issuer certificate
- 原因: 您可能在具有防火墙的企业网络中,该防火墙拦截和检查 SSL/TLS 流量。这通常需要 Node.js 信任自定义根 CA 证书。
- 解决方案: 将
NODE_EXTRA_CA_CERTS
环境变量设置为您的企业根 CA 证书文件的绝对路径。- 示例:
export NODE_EXTRA_CA_CERTS=/path/to/your/corporate-ca.crt
- 示例:
常见问题解答 (FAQ)
问:如何将 Gemini CLI 更新到最新版本?
- 答:如果您通过
npm
全局安装,请使用命令npm install -g @google/gemini-cli@latest
更新。如果您从源代码编译,请从存储库拉取最新更改,然后使用命令npm run build
重新构建。
- 答:如果您通过
问:Gemini CLI 配置或设置文件存储在哪里?
答:Gemini CLI 配置存储在两个
settings.json
文件中:- 在您的主目录中:
~/.gemini/settings.json
。 - 在您项目的根目录中:
./.gemini/settings.json
。
有关更多详细信息,请参阅 Gemini CLI 配置。
- 在您的主目录中:
问:为什么我在统计输出中看不到缓存的令牌计数?
- 答:缓存令牌信息仅在使用缓存令牌时显示。此功能适用于 API 密钥用户(Gemini API 密钥或 Google Cloud Vertex AI),但不适用于 OAuth 用户(如 Google 个人/企业账户,分别如 Google Gmail 或 Google Workspace)。这是因为 Gemini Code Assist API 不支持缓存内容创建。您仍然可以使用 Gemini CLI 中的
/stats
命令查看您的总令牌使用情况。
- 答:缓存令牌信息仅在使用缓存令牌时显示。此功能适用于 API 密钥用户(Gemini API 密钥或 Google Cloud Vertex AI),但不适用于 OAuth 用户(如 Google 个人/企业账户,分别如 Google Gmail 或 Google Workspace)。这是因为 Gemini Code Assist API 不支持缓存内容创建。您仍然可以使用 Gemini CLI 中的
常见错误消息和解决方案
错误:
EADDRINUSE
(地址已在使用中)当启动 MCP 服务器时。- 原因: 另一个进程已经在使用 MCP 服务器试图绑定的端口。
- 解决方案: 停止使用该端口的其他进程,或配置 MCP 服务器使用不同的端口。
错误:找不到命令(尝试使用
gemini
运行 Gemini CLI 时)。- 原因: Gemini CLI 未正确安装或不在系统的
PATH
中。 - 解决方案: 更新取决于您如何安装 Gemini CLI:
- 如果您全局安装了
gemini
,请检查您的npm
全局二进制目录是否在您的PATH
中。您可以使用命令npm install -g @google/gemini-cli@latest
更新 Gemini CLI。 - 如果您从源代码运行
gemini
,请确保您使用正确的命令调用它(例如,node packages/cli/dist/index.js ...
)。要更新 Gemini CLI,请从存储库拉取最新更改,然后使用命令npm run build
重新构建。
- 如果您全局安装了
- 原因: Gemini CLI 未正确安装或不在系统的
错误:
MODULE_NOT_FOUND
或导入错误。- 原因: 依赖项未正确安装,或项目尚未构建。
- 解决方案:
- 运行
npm install
以确保所有依赖项都存在。 - 运行
npm run build
编译项目。 - 使用
npm run start
验证构建成功完成。
- 运行
错误:"Operation not permitted"、"Permission denied" 或类似错误。
- 原因: 启用沙箱时,Gemini CLI 可能尝试执行受沙箱配置限制的操作,例如在项目目录或系统临时目录之外写入。
- 解决方案: 有关更多信息,请参阅 配置:沙箱 文档,包括如何自定义您的沙箱配置。
Gemini CLI 在"CI"环境中未运行交互模式
- 问题: 如果设置了以
CI_
开头的环境变量(例如,CI_TOKEN
),Gemini CLI 不会进入交互模式(不会出现提示)。这是因为底层 UI 框架使用的is-in-ci
包检测到这些变量并假设是非交互式 CI 环境。 - 原因:
is-in-ci
包检查是否存在CI
、CONTINUOUS_INTEGRATION
或任何带有CI_
前缀的环境变量。当找到任何这些变量时,它表示环境是非交互式的,这阻止了 Gemini CLI 在交互模式下启动。 - 解决方案: 如果 CLI 功能不需要
CI_
前缀变量,您可以为命令临时取消设置它。例如,env -u CI_TOKEN gemini
- 问题: 如果设置了以
DEBUG 模式在项目 .env 文件中不工作
- 问题: 在项目的
.env
文件中设置DEBUG=true
不会为 gemini-cli 启用调试模式。 - 原因:
DEBUG
和DEBUG_MODE
变量会自动从项目.env
文件中排除,以防止干扰 gemini-cli 行为。 - 解决方案: 改用
.gemini/.env
文件,或在您的settings.json
中配置excludedProjectEnvVars
设置以排除更少的变量。
- 问题: 在项目的
调试技巧
CLI 调试:
- 对 CLI 命令使用
--verbose
标志(如果可用)以获得更详细的输出。 - 检查 CLI 日志,通常位于用户特定的配置或缓存目录中。
- 对 CLI 命令使用
核心调试:
- 检查服务器控制台输出中的错误消息或堆栈跟踪。
- 如果可配置,增加日志详细程度。
- 如果需要逐步执行服务器端代码,请使用 Node.js 调试工具(例如,
node --inspect
)。
工具问题:
- 如果特定工具失败,请尝试通过运行工具执行的命令或操作的最简单版本来隔离问题。
- 对于
run_shell_command
,请首先检查命令是否直接在您的 shell 中工作。 - 对于_文件系统工具_,验证路径是否正确并检查权限。
预检查:
- 在提交代码之前始终运行
npm run preflight
。这可以捕获许多与格式化、代码检查和类型错误相关的常见问题。
- 在提交代码之前始终运行
与您的问题类似的现有 GitHub Issues 或创建新 Issues
如果您遇到的问题在此_故障排除指南_中未涵盖,请考虑搜索 Gemini CLI GitHub 上的 Issue 跟踪器。如果您找不到与您的问题类似的 issue,请考虑创建一个新的 GitHub Issue 并提供详细描述。也欢迎提交 Pull Request!