---
title: "环境工具"
canonical_url: "https://wwlight.vercel.app/guides/system/environment-tools"
---
# 环境工具

## Homebrew

<tip to="https://brew.sh/">

简称 brew，是 macOS 和 Linux 上最流行的包管理工具，它可以帮助你安装、更新和管理软件包。类似于 Ubuntu 的 apt 或 CentOS 的 yum。

</tip>

```bash [安装]
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```

```bash
# 在 ~/.zshrc 中追加：
export HOMEBREW_NO_AUTO_UPDATE=1    # 关闭自动更新
export HOMEBREW_NO_ENV_HINTS=1      # 去掉自动更新时的提示刷屏
export HOMEBREW_UPGRADE_GREEDY=1    # 升级时带上 auto_updates / :latest 的 cask
```

```bash [命令]
# 基础信息与查看
$ brew --version                        # 查看版本
$ brew help                             # 查看 Homebrew 的基础帮助信息
$ brew config                           # 显示当前 Homebrew 的配置信息（如镜像源、版本等）
$ brew doctor                           # 检查系统环境，诊断并提示潜在的配置问题
$ brew doctor --verbose                 # 输出详细诊断信息的检查
$ brew info <formula|cask>              # 显示某个软件包的详细信息（大小、依赖、官方主页等）
$ brew home <formula|cask>              # 直接在浏览器中打开该软件的官方主页

# 软件的搜索、安装与卸载
$ brew search <formula|cask>            # 在线搜索软件包（支持模糊匹配）
$ brew fetch <formula|cask>             # 仅下载软件的安装包到缓存目录，不执行安装
$ brew fetch --force <formula|cask>     # 强制重新下载指定软件的安装包
$ brew install <formula>                # 安装一个命令行工具（Formula）
$ brew install --cask <cask>            # 安装一个 macOS 图形界面应用程序（Cask）
$ brew uninstall <formula|cask>         # 卸载指定的软件包或应用

# 已安装软件管理
$ brew list/ls                          # 列出本地所有已经安装的软件包/应用
$ brew list <formula|cask>              # 查看某个已安装软件的具体文件安装路径
$ brew deps <formula>                   # 查看当前包依赖于哪些其他底层插件
$ brew uses <formula> --installed       # 查看本地有哪些已安装的软件正依赖着这个包

# 软件更新与锁定
$ brew update                           # 更新 Homebrew 自身以及所有的软件索引
$ brew update-reset                     # 【急救】强制将 Homebrew 核心重置到官方最新状态
$ brew outdated                         # 列出本地所有有新版本可更新的软件包
$ brew upgrade                          # 更新本地所有已经过期的软件包
$ brew upgrade <formula|cask>           # 仅更新指定的软件包
$ brew pin <formula>                    # 锁定该软件版本，使其在运行 upgrade 时不被自动更新
$ brew unpin <formula>                  # 取消版本锁定

# 带 auto_updates 标记的 cask（如 ghostty、chrome）默认会被 brew upgrade 跳过
$ brew outdated --cask --greedy -v      # 列出过期 cask（含 auto_updates / :latest），-v 显示版本对比
$ brew upgrade -g                       # 更新时把这类 cask 一起带上（等价于 --greedy）
$ brew upgrade --greedy-auto-updates    # 只额外包含 auto_updates 为 true 的 cask
$ brew upgrade --greedy-latest          # 只额外包含 version 为 :latest 的 cask
$ brew upgrade --cask --greedy ghostty  # 单独更新某个 cask

# 系统清理与维护
$ brew cleanup -n                       # 预览可以清理的旧版本和缓存文件（不实际执行删除）
$ brew cleanup                          # 清理所有已过期的旧版本软件、未下载完的碎片和缓存
$ brew cleanup <formula|cask>           # 仅清理指定软件的旧版本留存
$ brew autoremove                       # 自动卸载那些因为别的软件被删、现在孤立无用的依赖包
$ open $(brew --cache)                  # 直接在 Finder 中打开 Homebrew 的下载缓存文件夹

# 第三方仓库管理 (tap)
$ brew tap                              # 查看本地已经添加的所有第三方软件仓库
$ brew tap <user/repo>                  # 添加并追踪一个第三方的 GitHub 软件仓库
$ brew untap <user/repo>                # 移除已经添加的第三方仓库
$ brew tap --repair                     # 修复本地所有 tap 的 Git 仓库指针状态

# 第三方 tap 信任（记录在 ~/.homebrew/trust.json，untap 不会删除）
$ brew trust --json v1                       # 查看信任记录
$ brew trust --tap <user/repo>               # 信任整个 tap
$ brew trust --formula <user/repo/formula>   # 信任一条 formula
$ brew trust --cask <user/repo/cask>         # 信任一条 cask
$ brew untrust --tap <user/repo>             # 取消 tap 信任
$ brew untrust --formula <user/repo/formula> # 取消 formula 信任
$ brew untrust --cask <user/repo/cask>       # 取消 cask 信任

# 后台服务管理 (Services)
$ brew services list                    # 查看当前所有后台服务的运行状态（简写：brew services ls）
$ brew services list -d                 # 查看所有服务状态并显示详细的调试日志
$ brew services start <formula>         # 启动该服务，并设置开机自启
$ brew services stop <formula>          # 停止该后台服务，并取消开机自启
$ brew services restart <formula>       # 重启该后台服务
$ brew services info <formula>          # 查看该服务的详细运行信息（如进程 ID、路径等）

# 环境备份与迁移 (Bundle)
# 备份当前 Mac 上的所有 brew 软件到桌面（排除 VS Code 插件）
$ brew bundle dump --no-vscode --force --file=~/Desktop/Brewfile
# 检查桌面的 Brewfile 列表里有哪些软件在当前电脑上还没安装
$ brew bundle check --file=~/Desktop/Brewfile
# 读取桌面的 Brewfile 并自动开始批量静默安装
$ brew bundle install --file=~/Desktop/Brewfile
```

```bash [brew 遥测]
# Homebrew 默认开启匿名遥测（上报安装/搜索统计给官方维护团队）
$ brew analytics state               # 查看遥测状态
$ brew analytics off                 # 关闭遥测
$ brew analytics on                  # 重新开启
```

```bash [Brew services 问题]
# Brew services list 报错可尝试
$ brew untap homebrew/services        # 删除当前的 services
$ brew tap homebrew/services          # 重新安装
```

## Scoop

<tip to="https://scoop.sh/">

Windows 下的命令行软件包安装程序，无需管理员权限即可安装软件。

</tip>

```bash [安装]
env:SCOOP='D:\SoftwareApps\Scoop'
[Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
```

```bash [命令]
$ scoop --version                       # 查看版本
$ scoop help                            # 列出所有可用命令
$ scoop config                          # 查看 Scoop 的配置
$ scoop search <query>                  # 在可用的 Bucket 中搜索应用程序
$ scoop list                            # 列出所有已安装的软件
$ scoop info <app>                      # 显示软件包信息
$ scoop home <app>                      # 打开软件包主页
$ scoop install <app>                   # 安装软件
$ scoop install -g <app>                # 全局安装(管理员权限)
$ scoop uninstall <app>                 # 卸载软件

$ scoop update                          # 更新 Scoop 自身
$ scoop update --all                    # 更新所有应用
$ scoop update <app>                    # 更新指定应用
$ scoop status                          # 检查可更新的应用
$ scoop hold <app>                      # 禁止更新指定应用
$ scoop unhold <app>                    # 解除禁止更新指定应用

$ scoop cache show                      # 显示缓存
$ scoop cache rm <app>                  # 删除指定应用缓存
$ scoop cleanup <app>                   # 清理旧版本

# Bucket 是应用清单仓库，用来扩展可安装的软件。
$ scoop bucket list                     # 列出已添加的所有 Bucket
$ scoop bucket known                    # 列出所有官方认可的 Bucket
$ scoop bucket add <bucket>             # 添加 Bucket
$ scoop bucket rm <bucket>              # 删除 Bucket

$ scoop export > ~/Desktop/scoop_backup.json   # 导出已安装 Scoop 应用
$ scoop import ~/Desktop/scoop_backup.json     # 从备份文件恢复所有应用

$ scoop alias list
$ scoop alias add <name> <command>      # scoop alias add ls 'scoop list'
$ scoop alias rm <name>
$ scoop alias show <name>
```

```bash [其它工具下载]
$ scoop install winsw                   # 可执行包装程序，起 windows 服务
$ scoop install tabby                   # SSH 和 Telnet 连接终端

# 安装字体
$ scoop bucket add nerd-fonts
$ scoop install LXGWWenKaiMono
$ scoop install FiraCode-NF
$ scoop install FiraCode-NF-Mono
$ scoop install Monaspace-NF
$ scoop install Monaspace-NF-Mono
$ scoop install Maple-Mono-NF-CN
```

## Mise

<tip to="https://mise.jdx.dev/">

集成的开发工具与运行时版本管理器，替代 asdf、pyenv、nvm 等。

</tip>

<tabs sync="os">
<tabs-item label="Windows">

```bash
$ scoop install mise
```

```bash [zsh 配置]
# mise — shims only; 'mise activate zsh' fails under MSYS
(( $+commands[mise] )) && {
    mise reshim >/dev/null 2>&1
    _ms="$(cygpath -u "$LOCALAPPDATA/mise/shims" 2>/dev/null)"
    [[ -n "$_ms" && -d "$_ms" ]] && path=("$_ms" $path)
}
```

</tabs-item>

<tabs-item label="MacOS">

```bash
$ brew install mise
```

```bash [zsh 配置]
# mise
if (( $+commands[mise] )); then
    eval "$(mise activate zsh)"
fi
```

</tabs-item>
</tabs>

```bash [命令]
# 查看
$ mise --version                        # 查看版本
$ mise help                             # 列出所有可用命令
$ mise doctor                           # 检查安装和环境问题

# 版本
$ mise which java                       # 当前生效的二进制路径
$ mise ls                               # 列出已安装的工具与版本
$ mise ls --current                     # 当前配置要求的版本
$ mise ls --missing                     # 配置里有、还没安装的
$ mise ls-remote java                   # 查看可安装的远程版本

# 配置
$ mise config ls                        # 当前读了哪些配置文件
$ mise trust                            # 信任当前目录的配置（克隆后，带任务的 mise.toml 需要）

# 安装与切换
$ mise install                          # 安装 mise.toml 中声明的所有工具
$ mise use -g java@zulu-8.96.0.205      # 全局使用该版本
$ mise use java@zulu-17.68.203.0        # 当前目录使用该版本（写入 mise.toml）
$ mise use --pin java@zulu-17.68.203.0  # 写入精确版本
$ mise use --remove java                # 从配置里去掉，不卸载已安装的版本
$ mise uninstall java@zulu-8.96.0.205   # 卸载指定版本

# 更新与清理
$ mise outdated                         # 查看有新版本的工具
$ mise upgrade                          # 在配置的版本范围内升级
$ mise upgrade --bump                   # 升级到最新版，并改写配置里的版本号
$ mise prune -n                         # 预览可清理的旧版本
$ mise prune                            # 删除没人用的旧版本

# 执行
$ mise x java -- java -version          # 用当前配置的 Java 执行命令
$ mise x java@zulu-17 -- java -version  # 只这一次用指定版本
$ mise run                              # 运行任务

# 自身
$ mise self-update                      # 更新 mise 自身
```

```bash [Rust]
# 工具链由 rustup 安装，放在 ~/.rustup；mise 只记录版本并设置 RUSTUP_TOOLCHAIN
$ mise ls rust                          # 查看已安装的 Rust
$ mise ls-remote rust                   # 查看可安装的通道和版本
$ mise use -g rust@stable               # 全局使用 stable
$ mise use rust@1.98                    # 当前目录使用该版本（写入 mise.toml）
$ mise use --pin rust@1.98              # 写入精确版本
$ mise use rust@nightly                 # 使用滚动 nightly
$ mise use rust@nightly-2026-08-13      # 固定某一天的 nightly
$ mise upgrade rust                     # 在配置范围内升级
$ mise x rust -- rustc --version        # 用当前配置的 Rust 执行命令
$ mise x rust@1.98 -- cargo --version   # 只这一次用指定版本

# 项目已有 rust-toolchain.toml 时，交给它选版本，不必再在 mise.toml 里写一份
$ mise settings add idiomatic_version_file_enable_tools rust
```

## Vite+

<tip to="https://viteplus.dev/">

Web 开发的统一工具链，命令是 `vp`。全局 CLI 管理 Node 和包管理器；项目里用同一条命令做 dev、check、lint、fmt、test、build、pack。

</tip>

<tabs sync="os">
<tabs-item label="Windows">

```bash
$ irm https://vite.plus/ps1 | iex
```

</tabs-item>

<tabs-item label="MacOS">

```bash
$ curl -fsSL https://vite.plus | bash
```

</tabs-item>
</tabs>

```bash [命令]
# 查看
$ vp --version                          # 查看版本
$ vp help                               # 列出所有可用命令
$ vp toolchain                          # 查看当前项目正在用的工具链
$ vp toolchain --global                 # 查看全局安装自带的工具链

# 依赖
$ vp install                            # 按项目的包管理器安装依赖（简写：vp i）
$ vp install --frozen-lockfile          # 锁文件需要改动时失败，适合 CI
$ vp install -g <pkg>                   # 全局安装，不写入项目依赖
$ vp uninstall -g <pkg>                 # 移除 Vite+ 安装的全局包
$ vp add <pkg>                          # 添加到 dependencies
$ vp add -D <pkg>                       # 添加到 devDependencies
$ vp remove <pkg>                       # 移除依赖（别名：rm / un / uninstall）
$ vp update                             # 更新依赖（简写：vp up）
$ vp dedupe                             # 合并可去掉的重复依赖
$ vp outdated                           # 查看可更新的包
$ vp list                               # 列出已安装的包（简写：vp ls）
$ vp why <pkg>                          # 为什么装了这个包
$ vp info <pkg>                         # 查看注册表里的版本和 dist-tag
$ vp rebuild                            # 重编译原生模块（换 Node 版本后）
$ vp link                               # 链接本地包做联调
$ vp unlink                             # 取消本地链接
$ vp pm <cmd>                           # 把命令原样转给底层包管理器

# Node 与包管理器版本
$ vp env pin lts                        # 把当前项目的 Node 固定成精确 LTS
$ vp env pin lts pnpm@10                # 同时固定 Node 和包管理器
$ vp env unpin                          # 去掉当前项目里生效的固定
$ vp env use 20 pnpm@10                 # 只在当前 shell 改 Node 和包管理器
$ vp env use --unset                    # 取消当前 shell 的临时版本
$ vp env default lts                    # 全局默认跟随最新 LTS，含新的主版本
$ vp env default node@24                # 全局默认固定到 Node 24 的精确版本
$ vp env default pnpm@10                # 全局默认把 pnpm 固定到 10 的精确版本
$ vp env on                             # 由 Vite+ 管理 Node 和包管理器
$ vp env off                            # 优先使用系统里的 Node 和包管理器
$ vp env current                        # 查看当前解析出的环境
$ vp env which node                     # 查看将要执行的 node 路径
$ vp env doctor                         # 检查 Node 和包管理器环境
$ vp env print                          # 打印 PATH 配置
$ vp node <script>                      # 用解析出的 Node 运行脚本

# 项目
$ vp create                             # 从模板创建项目
$ vp migrate                            # 把现有项目迁到 Vite+
$ vp dev                                # 内置开发服务器；脚本要用 vp run dev
$ vp check                              # 一起做格式化、lint、类型检查
$ vp lint                               # 只做 lint
$ vp lint --fix                         # lint 并写回可自动修的问题
$ vp fmt                                # 格式化（别名：format）
$ vp fmt --check                        # 只检查格式，不改文件
$ vp test                               # 跑测试
$ vp build                              # 构建应用
$ vp preview                            # 本地预览生产构建
$ vp pack                               # 构建库或独立可执行文件
$ vp run <task>                         # 跑 package.json 脚本或任务（别名：vpr）
$ vp exec <bin>                         # 运行项目 node_modules/.bin 里的命令
$ vp dlx <pkg>                          # 临时执行包里的命令，不写入依赖（别名：vpx）
$ vp cache clean                        # 清除任务缓存
$ vp staged                             # 对已暂存文件跑检查
$ vp config                             # 安装 Git hook，并配置 agent 集成

# 自身
$ vp upgrade                            # 更新全局 vp
$ vp implode                            # 卸载全局 vp 及其数据
```


## Sitemap

See the full [sitemap](https://wwlight.vercel.app/sitemap.md) for all pages.
