安装、PATH 与卸载
TUI 安装路径、环境变量不生效、command not found、升级和卸载的完整排查。
先确认你是哪种安装方式
CrabCode TUI 有多条公开安装路径。排查 PATH 和卸载时,先按实际安装方式确认程序目录。
| 安装方式 | 常见入口 | 程序目录 | 用户数据目录 |
|---|---|---|---|
| 安装脚本 | curl -fsSL https://updates.acosmi.com/crabcode/install.sh | sh 或 release 里的 install.sh | ${CRABCODE_HOME:-$HOME/.crabcode}/bin | ~/.crabcode |
| 下载页直链块 | /downloads 国际区 macOS / Linux 多步命令 | ~/.local/share/crabcode | ~/.crabcode |
| Windows 国内镜像脚本 | /downloads 中国区 Windows PowerShell 命令,或 install-win.ps1 | %CRABCODE_HOME%;未设置时 %LOCALAPPDATA%\CrabCode | %USERPROFILE%\.crabcode |
| Windows 国际直链块 | /downloads 国际区 Windows PowerShell 命令 | %LOCALAPPDATA%\crabcode\crabcode-<version>-win-x64 | %USERPROFILE%\.crabcode |
表里的用户数据目录按未设置 CRABCODE_CONFIG_DIR / CRABCODE_HOME 的默认场景列出。用户数据目录保存登录、配置、会话、记忆和调试日志。只想卸载程序时,不要删除整个 ~/.crabcode 或 %USERPROFILE%\.crabcode。
安装后打不开
先判断是“程序没装好”还是“PATH 没生效”。
command -v crabcode
crabcode --versioncommand -v crabcode
crabcode --version如果 command -v crabcode 没输出,但安装目录里能看到二进制,就是 PATH 没进当前 shell。
ls -la "$HOME/.crabcode/bin/crabcode" "$HOME/.local/share/crabcode/crabcode" 2>/dev/nullls -la "$HOME/.crabcode/bin/crabcode" "$HOME/.local/share/crabcode/crabcode" 2>/dev/null按你的实际安装目录手动加入 PATH:
# install.sh 默认路径
export PATH="$HOME/.crabcode/bin:$PATH"
# 下载页国际区直链路径
export PATH="$HOME/.local/share/crabcode:$PATH"# install.sh 默认路径
export PATH="$HOME/.crabcode/bin:$PATH"
# 下载页国际区直链路径
export PATH="$HOME/.local/share/crabcode:$PATH"确认能打开后,再把其中一行写入 shell 配置。
| Shell | 配置文件 | 写法 |
|---|---|---|
| zsh | ~/.zshrc | export PATH="$HOME/.crabcode/bin:$PATH" |
| bash | ~/.bashrc 或 ~/.bash_profile | export PATH="$HOME/.crabcode/bin:$PATH" |
| fish | ~/.config/fish/config.fish | set -gx PATH $HOME/.crabcode/bin $PATH |
写完后重新打开终端,或运行:
source ~/.zshrcsource ~/.zshrc如果你用的是下载页国际区直链路径,把上面的 ~/.crabcode/bin 换成 ~/.local/share/crabcode。
Windows PATH 排查
Windows 有两种公开安装路径:国内镜像脚本把安装根目录写进用户级 Path,国际直链块把版本化目录写进用户级 Path。新开一个 PowerShell 后检查:
Get-Command crabcode
crabcode --versionGet-Command crabcode
crabcode --version如果找不到命令,检查用户 Path:
[Environment]::GetEnvironmentVariable("Path", "User")[Environment]::GetEnvironmentVariable("Path", "User")先定位本机真实程序目录:
# 国内镜像脚本 / install-win.ps1
$CnBin = if ($env:CRABCODE_HOME) { $env:CRABCODE_HOME } else { "$env:LOCALAPPDATA\CrabCode" }
# 国际直链块,把 <version> 换成下载页命令中的版本号
$IntlBin = "$env:LOCALAPPDATA\crabcode\crabcode-<version>-win-x64"
@($CnBin, $IntlBin) | ForEach-Object {
if (Test-Path (Join-Path $_ "crabcode.exe")) { $_ }
}# 国内镜像脚本 / install-win.ps1
$CnBin = if ($env:CRABCODE_HOME) { $env:CRABCODE_HOME } else { "$env:LOCALAPPDATA\CrabCode" }
# 国际直链块,把 <version> 换成下载页命令中的版本号
$IntlBin = "$env:LOCALAPPDATA\crabcode\crabcode-<version>-win-x64"
@($CnBin, $IntlBin) | ForEach-Object {
if (Test-Path (Join-Path $_ "crabcode.exe")) { $_ }
}把存在的那个目录加入用户 Path 后,关闭并重新打开 PowerShell:
# 国内镜像脚本 / install-win.ps1
$Bin = if ($env:CRABCODE_HOME) { $env:CRABCODE_HOME } else { "$env:LOCALAPPDATA\CrabCode" }
# 国际直链块则改用下面这一行
# $Bin = "$env:LOCALAPPDATA\crabcode\crabcode-<version>-win-x64"
$UserPath = [Environment]::GetEnvironmentVariable("Path", "User")
[Environment]::SetEnvironmentVariable("Path", "$UserPath;$Bin", "User")# 国内镜像脚本 / install-win.ps1
$Bin = if ($env:CRABCODE_HOME) { $env:CRABCODE_HOME } else { "$env:LOCALAPPDATA\CrabCode" }
# 国际直链块则改用下面这一行
# $Bin = "$env:LOCALAPPDATA\crabcode\crabcode-<version>-win-x64"
$UserPath = [Environment]::GetEnvironmentVariable("Path", "User")
[Environment]::SetEnvironmentVariable("Path", "$UserPath;$Bin", "User")CRABCODE_HOME 与 CRABCODE_CONFIG_DIR
CRABCODE_HOME 改的是 CrabCode 的 home base,也会影响安装脚本的程序落点。Unix install.sh 默认把程序放到:
${CRABCODE_HOME:-$HOME/.crabcode}/bin${CRABCODE_HOME:-$HOME/.crabcode}/binWindows 国内镜像脚本默认把程序放到:
if ($env:CRABCODE_HOME) { $env:CRABCODE_HOME } else { "$env:LOCALAPPDATA\CrabCode" }if ($env:CRABCODE_HOME) { $env:CRABCODE_HOME } else { "$env:LOCALAPPDATA\CrabCode" }CRABCODE_CONFIG_DIR 改的是配置目录真源,不是程序目录。它适合隔离账号、配置、会话和记忆。不要用它来修 PATH。
优先级:
CRABCODE_CONFIG_DIR:显式配置目录,最高优先。CRABCODE_HOME:home base,配置默认落到<CRABCODE_HOME>/.crabcode。- 未设置时:真实 home 下的
~/.crabcode。
升级
推荐重跑同一种安装方式。
# 镜像安装脚本,国内网络更稳
curl -fsSL https://updates.acosmi.com/crabcode/install.sh | sh# 镜像安装脚本,国内网络更稳
curl -fsSL https://updates.acosmi.com/crabcode/install.sh | shWindows 国内镜像脚本:
powershell -NoProfile -ExecutionPolicy Bypass -Command "iex (irm 'https://updates.acosmi.com/crabcode/install-win.ps1')"powershell -NoProfile -ExecutionPolicy Bypass -Command "iex (irm 'https://updates.acosmi.com/crabcode/install-win.ps1')"如果用 /downloads 的国际区直链块,重新复制当前页面上的整段命令。升级只替换程序文件,不会清理 ~/.crabcode / %USERPROFILE%\.crabcode 里的配置、登录、历史和记忆。
卸载程序但保留数据
macOS / Linux:
# install.sh 默认程序目录
rm -rf "$HOME/.crabcode/bin"
# 下载页国际区直链程序目录
rm -rf "$HOME/.local/share/crabcode"# install.sh 默认程序目录
rm -rf "$HOME/.crabcode/bin"
# 下载页国际区直链程序目录
rm -rf "$HOME/.local/share/crabcode"然后从 ~/.zshrc、~/.bashrc、~/.bash_profile 或 ~/.config/fish/config.fish 里删除对应 PATH 行。
Windows:
# 国内镜像脚本 / install-win.ps1
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\CrabCode"
# 如果安装前设置过 CRABCODE_HOME,删这个自定义程序目录
if ($env:CRABCODE_HOME) { Remove-Item -Recurse -Force "$env:CRABCODE_HOME" }
# 国际直链块
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\crabcode"# 国内镜像脚本 / install-win.ps1
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\CrabCode"
# 如果安装前设置过 CRABCODE_HOME,删这个自定义程序目录
if ($env:CRABCODE_HOME) { Remove-Item -Recurse -Force "$env:CRABCODE_HOME" }
# 国际直链块
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\crabcode"再在“环境变量”里删除用户 Path 中的旧 %LOCALAPPDATA%\CrabCode、%CRABCODE_HOME% 或 crabcode-<version>-win-x64 目录,或用 PowerShell 重写用户 Path:
$Remove = @("$env:LOCALAPPDATA\CrabCode", "$env:LOCALAPPDATA\crabcode\crabcode-<version>-win-x64")
if ($env:CRABCODE_HOME) { $Remove += $env:CRABCODE_HOME }
$NextPath = ([Environment]::GetEnvironmentVariable("Path", "User") -split ';') |
Where-Object { $_ -and ($Remove -notcontains $_) }
[Environment]::SetEnvironmentVariable("Path", ($NextPath -join ';'), "User")$Remove = @("$env:LOCALAPPDATA\CrabCode", "$env:LOCALAPPDATA\crabcode\crabcode-<version>-win-x64")
if ($env:CRABCODE_HOME) { $Remove += $env:CRABCODE_HOME }
$NextPath = ([Environment]::GetEnvironmentVariable("Path", "User") -split ';') |
Where-Object { $_ -and ($Remove -notcontains $_) }
[Environment]::SetEnvironmentVariable("Path", ($NextPath -join ';'), "User")彻底清理个人数据
只有在你确认不需要本机登录、历史会话、记忆、插件和配置时,才清理用户数据目录。
rm -rf "$HOME/.crabcode"
rm -f "$HOME/.crabcode.json"rm -rf "$HOME/.crabcode"
rm -f "$HOME/.crabcode.json"Windows:
Remove-Item -Recurse -Force "$env:USERPROFILE\.crabcode"
Remove-Item -Force "$env:USERPROFILE\.crabcode.json"Remove-Item -Recurse -Force "$env:USERPROFILE\.crabcode"
Remove-Item -Force "$env:USERPROFILE\.crabcode.json"如果设置过 CRABCODE_CONFIG_DIR,还要清理那个自定义目录。
快速定位表
| 现象 | 先查 | 处理 |
|---|---|---|
crabcode: command not found | command -v crabcode、安装目录是否存在 | 把实际程序目录加到 PATH,重开终端 |
| 新终端找不到,当前终端能跑 | shell 配置是否写错文件 | zsh 写 ~/.zshrc,bash 写 ~/.bashrc 或 ~/.bash_profile |
| Windows 安装后找不到 | 用户 Path 是否包含真实程序目录 | 国内镜像查 %LOCALAPPDATA%\CrabCode 或 %CRABCODE_HOME%,国际直链查版本化目录 |
| 升级后仍是旧版 | PATH 里旧目录排在前面 | 删除旧 Path 项,确认 command -v crabcode 指向新目录 |
| 想只卸载程序 | 程序目录和数据目录是否混淆 | 只删程序目录,不删 ~/.crabcode |
| 想重置所有状态 | 是否备份过会话和配置 | 删除程序目录 + ~/.crabcode + ~/.crabcode.json |