如何在 Windows 上卸载Bazelisk
Bazelisk 负责选择和下载 Bazel 版本,移除它和删除源码、Bazel 构建输出、项目配置是不同的事,项目及固定构建版本的文件留着。
先保存数据,再退出程序
先等构建结束,再关闭仍使用 Bazelisk 的终端。检查是否设置过 BAZELISK_HOME,实际下载目录可能不同,每个项目里的 .bazelversion 留着。删除已下载的 Bazel 版本,其他项目下次构建时可能需要重新下载。
卸载对应的安装包
Windows 11 打开「设置 › 应用 › 已安装的应用」,找到 Bazelisk 后选择卸载,Windows 10 对应的是「设置 › 应用 › 应用和功能」。先让自带卸载器走完,不提前删除程序目录。如果是 winget 安装,先确认准确的包名:
winget list --id Bazel.Bazelisk --exact
查询正常完成,并且显示的确实是准备移除的安装,再执行:
winget uninstall --id Bazel.Bazelisk --exact
这会调用该安装包登记的卸载方式,便携包则由包管理器移除。命令报错或没有匹配条目,都不能单独证明软件已经不在,还要核对 Windows 应用列表和最初的安装方式。卸载器要求确认或重启时,先保存其他工作再处理,命令行为见微软的 winget 卸载文档。
数据与独立组件分别处理
下面这些位置或组件要单独判断,看到目录还在,不代表里面的内容可以直接删除。
| 位置或组件 | 保留或检查什么 |
|---|---|
%LOCALAPPDATA%\bazelisk |
实测下载目录,downloads 子目录也在里面,构建停止且仍能重新下载时,再决定是否移除。 |
BAZELISK_HOME |
如果设置过,另查对应目录,不能认为默认缓存已经覆盖。 |
参考 Bazelisk 官方资料。
检查卸载结果
winget list --id Bazel.Bazelisk --exact
Test-Path -LiteralPath "$env:LOCALAPPDATA\bazelisk"
包查询正常完成且没有匹配行,才说明没找到该包登记,有匹配行就还在,报错则结果未知。每条 Test-Path 的 True 表示对应位置仍存在,False 表示没找到,权限错误不等于已删除。主动保留的数据留着即可,再用任务管理器核对进程的可执行文件是否属于这次安装,先区分另一版本或独立组件,再决定是否处理。
Mole 会列出什么
Mole 会列出 Local 下的 bazelisk 目录,默认不选,测试主动勾选后将它移除。从其他入口卸载后,Mole 也能找到同一目录,项目源码和 Bazel 构建输出不在这次检查范围内。
这次检查覆盖了什么
测试移除了 winget 用户范围便携包,Bazelisk 这次没有留下常驻图形进程,没有验证实际升级、所有自定义缓存位置或离线项目重新构建。
本次测试使用 Mole 开发构建,未逐一验证正式发布的各个版本。