Gemini CLI 装不上、命令找不到、MODULE_NOT_FOUND 怎么解决

2026-08-08

装个 CLI 工具本该是最简单的一步,但它偏偏是劝退率最高的一步。Gemini CLI 的安装期问题主要是三类,官方 troubleshooting 都有明确处理。

这篇按类别过一遍,并且专门指出其中一条完全可以无视的警告——很多人在那上面白白折腾。

一、command not found:装是装了,但找不到

现象:装完之后敲 gemini,回你一句命令找不到。

官方说明的成因很直接:没装好,或者不在系统 PATH 里。

处理办法取决于你怎么装的,官方分了两种情况:

全局安装的

检查 npm 的全局 bin 目录在不在 PATH 里。

先看看那个目录在哪:

npm bin -g

或者:

npm config get prefix

拿到路径之后,确认它在 PATH 中:

echo $PATH

Windows PowerShell:

$env:PATH

不在的话,把它加进 shell 配置文件(.bashrc.zshrc 等),然后重开终端

更新的命令官方给的是:

npm install -g @google/gemini-cli@latest

从源码跑的

官方提醒确认调用方式是对的,例子是:

node packages/cli/dist/index.js ...

更新的话,pull 最新代码之后重新构建:

npm run build

一个容易忽略的点

command not found 和「装失败了」是两回事。装的过程可能完全成功,只是那个可执行文件放的位置不在你的搜索路径里。

判断方法:

npm ls -g --depth=0

能看到 @google/gemini-cli,说明装上了,问题就在 PATH。

二、MODULE_NOT_FOUND 或 import 报错:依赖或构建的问题

官方说明的成因:依赖没装好,或者项目没构建。

官方给的处理是三步,按顺序做

  1. npm install —— 确保依赖都在
  2. npm run build —— 编译项目
  3. npm run start —— 验证构建成功

第三步别省。构建过程可能报了错但你没注意,直接去跑就会撞上莫名其妙的模块找不到。

这类问题在从源码跑的场景下最常见。全局安装的用户一般不会撞上——除非安装过程中途失败了,留下一个不完整的状态。那种情况下最干净的做法是卸载重装:

npm uninstall -g @google/gemini-cli
npm install -g @google/gemini-cli@latest

三、那些 npm 弃用警告:可以直接忽略

装或更新的时候,可能会看到:

npm WARN deprecated node-domexception@1.0.0
npm WARN deprecated glob

这条是本文最值得说的一条,因为它根本不是问题。

官方 troubleshooting 对它的说明是:这些警告的成因是某些依赖(或者它们的子依赖,比如 google-auth-library)用了较老版本的包。而由于 Gemini CLI 要求 Node.js 20 或更高版本,平台的原生特性(比如原生的 DOMException)已经在用了,所以这些警告纯粹是提示性的

官方的原话意思很明确:这些警告无害,可以安全忽略;安装或更新会正常完成并正常工作,不需要做任何事。

为什么要专门讲这条?因为 WARN deprecated 这种字眼看起来很吓人,很多人会:

  • 去手动升级那些子依赖(可能反而搞坏依赖树)
  • 反复卸载重装(浪费时间,警告照样在)
  • 以为安装失败了,转而怀疑别的地方

看到这两条警告,什么都别做,接着用。

顺带记住那个 Node 版本要求:Node.js 20 或更高。如果你的 Node 版本太低,那才是真问题——而且报错通常不会明说是版本问题,可能表现为各种语法错误或模块加载失败。装之前先看一眼:

node -v

四、装完之后立刻会撞上的那一类

安装过了,下一步就是登录,而登录是另一个高频卡点。这里只列出来让你有个预期,处理办法要看对应的专门内容:

报错一句话成因
You must be a named user on your organization's...Standard edition subscription环境里有 GOOGLE_CLOUD_PROJECTGOOGLE_CLOUD_PROJECT_ID,触发了组织订阅校验
Failed to sign in. Message: Request contains an invalid argumentWorkspace 账号或关联 Gmail 的 GCP 账号激活不了免费档
Failed to sign in...not currently available in your location所在地区不支持
UNABLE_TO_GET_ISSUER_CERT_LOCALLY企业网络拦截 TLS,先试 NODE_USE_SYSTEM_CA=1

第一条是这里面最反直觉的——个人用户也会撞上,而且报错文本会把你往「去找管理员」的死路上引。真因是环境变量,清掉就好。

五、CI 环境里的一个坑

如果你在 CI 或者容器里装完之后发现它「不出提示符」,官方对这条有明确说明。

成因是底层用的 is-in-ci 包会检测这几个东西:CICONTINUOUS_INTEGRATION以及任何以 CI_ 开头的环境变量。检测到任何一个,就判定这是非交互环境,于是不进交互模式。

坑在于最后那条:你自己定义的 CI_TOKENCI_ENV 之类,哪怕跟 CI 一点关系没有,也会触发。

官方给的办法是临时取消它:

env -u CI_TOKEN gemini

还有一个相关的:项目 .env 里设 DEBUG=true 不生效。官方说明是 DEBUGDEBUG_MODE 会被自动从项目 .env 里排除,防止干扰行为。要开调试,用 .gemini/.env,或者调整 settings.json 里的 advanced.excludedEnvVars 少排除一些变量。

六、全局安装还是从源码跑

官方 troubleshooting 在好几条里都按这两种方式分开给处理,说明它们的问题类型确实不一样。选之前值得知道各自会遇到什么。

全局安装(npm install -g @google/gemini-cli

  • 更新简单:npm install -g @google/gemini-cli@latest
  • 典型问题:PATH 配置、npm 全局目录的权限
  • 适合:只想用,不打算改代码

从源码跑

  • 需要自己 npm install + npm run build
  • 典型问题:依赖没装全、没构建、调用方式不对MODULE_NOT_FOUND 基本都出在这边)
  • 更新要 pull 之后重新 npm run build——忘了重新构建是这条路上最常见的坑,你 pull 了新代码,跑的还是旧的产物
  • 适合:要改代码、要跟最新提交、或者要调试

大多数人应该选全局安装。 从源码跑的唯一充分理由是你要动代码或者跟主干——否则你只是给自己多添了一类会出问题的环节。

一个常见的混乱是两种方式共存:以前从源码跑过,后来又全局装了一份,结果 gemini 指向的是哪个自己都不清楚。用这个确认:

which gemini

Windows:

where gemini

如果输出了多条路径,那就是有多份——按 PATH 顺序,排在前面的那个生效。这能解释「我明明更新了怎么还是老版本」。

七、更新与卸载

更新

npm install -g @google/gemini-cli@latest

确认版本

gemini --version

彻底重装(安装中途失败、留下不完整状态时用):

npm uninstall -g @google/gemini-cli
npm install -g @google/gemini-cli@latest

什么时候该优先考虑升级:如果你撞上的是那种「看起来像程序内部出错」的报错——比如某个属性读不到、某个模块加载不了——升级的性价比通常比逐条排查高。这类问题往往是边界情况没处理好,后续版本会加上判空和兜底。

反过来,登录类、额度类、沙箱类的问题升级基本没用,因为那些是配置和策略层面的,跟版本无关。

八、安装期问题的排查顺序

  1. node -v —— 确认 Node.js 20 或更高
  2. npm ls -g --depth=0 —— 确认包确实装上了
  3. 装上了但命令找不到 → PATH 问题,检查 npm bin -g 的路径在不在 PATH 里,加完重开终端
  4. MODULE_NOT_FOUNDnpm installnpm run buildnpm run start 验证
  5. 看到 npm WARN deprecated无视它
  6. CI 里不进交互模式 → 查有没有 CI_ 开头的环境变量,用 env -u 临时取消
  7. 装完登录报错 → 那是另一族问题,先看是不是环境里有 GOOGLE_CLOUD_PROJECT

九、总结

  • command not found 通常是 PATH 问题,不是装失败。先用 npm ls -g --depth=0 分清。
  • MODULE_NOT_FOUNDnpm installnpm run buildnpm run start 三步走,第三步别省。
  • npm WARN deprecated node-domexceptionglob 是无害的,官方明说可以忽略——别去手动升级子依赖。
  • Node.js 要 20 或更高,版本太低的报错往往不会明说是版本问题。
  • CI 里不进交互模式,可能是任何 CI_ 开头的变量引起的,用 env -u 绕开。
  • 装完紧接着的登录报错是另一族,最常见的真因是环境里的 GOOGLE_CLOUD_PROJECT

本文所引官方内容来自 google-gemini/gemini-cli 仓库自带的 troubleshooting 文档,核对日 2026-08-08。包名、命令与版本要求会变化,以官方文档为准。

相关阅读

想系统学会用 AI?报名体系课或加入会员,照着学、照着用。