Claude Code 安装并接入 DeepSeek-V4-Pro 指南 (CentOS)

本文档详细记录在 CentOS 7/8/9 及 RHEL 系统上安装 Claude Code 并配置使用 DeepSeek-V4-Pro 模型的完整步骤。

常见问题快速跳转


一、前置条件

1.1 系统版本要求

CentOS / RHEL 版本 支持状态 Node.js 最高版本 备注
CentOS 9 / RHEL 9 完全支持 最新 LTS 推荐
CentOS 8 / RHEL 8 完全支持 最新 LTS 推荐
CentOS 7 / RHEL 7 受限支持 ≤ 20.x GLIBC 版本较低,需特殊处理
CentOS 6 / RHEL 6 不支持 无法安装 GLIBC 过旧

建议: 使用 CentOS 8+ 或 RHEL 8+ 以获得最佳体验。CentOS 7 需要额外步骤升级 GLIBC 或使用容器方案。

1.2 安装 Node.js

Claude Code 基于 Node.js 运行,需要 Node.js ≥ 18.x。

方式一:NodeSource 官方仓库安装(推荐)

CentOS 9 / RHEL 9 / CentOS 8 / RHEL 8:

# 安装 Node.js 22.x LTS
curl -fsSL https://rpm.nodesource.com/setup_22.x | sudo bash -
sudo dnf install -y nodejs

CentOS 7 / RHEL 7:

# CentOS 7 最高支持 Node.js 20.x(GLIBC 限制)
curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash -
sudo yum install -y nodejs
方式二:nvm 安装(推荐用于多版本管理)
# 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash

# 重新加载 shell 配置
source ~/.bashrc

# 查看可用的 Node.js 版本
nvm list-remote --lts

# 安装 LTS 版本
nvm install 22

# 设为默认版本
nvm alias default 22

# 验证安装
node --version   # 应输出 v22.x
npm --version    # 应输出 10.x
验证安装
node --version   # 应输出 v18.x / v20.x / v22.x 等
npm --version    # 应输出 9.x / 10.x / 11.x 等
which node       # 确认 node 路径
which npm        # 确认 npm 路径

注意: 安装完成后需要重新登录或执行 source ~/.bashrc,否则 node 命令可能无法识别。

1.3 CentOS 7 的 GLIBC 问题处理

CentOS 7 自带的 GLIBC 版本为 2.17,而 Node.js 20+ 可能需要更高版本。以下提供两种解决思路:

方案一:使用 Node.js 18.x(稳定兼容)

curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -
sudo yum install -y nodejs

方案二:使用 Docker 容器(推荐)

# 拉取 CentOS 8 或 Ubuntu 镜像运行 Claude Code
sudo docker run -it --rm \
    -e ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic \
    -e ANTHROPIC_MODEL=deepseek-v4-pro \
    -e ANTHROPIC_AUTH_TOKEN=sk-你的API-Key \
    -v $(pwd):/workspace \
    -w /workspace \
    node:22 bash

1.4 依赖安装失败的兜底方案

若通过包管理器安装因网络或权限原因失败,可手动安装:

# 方案一:下载 Node.js 二进制包手动安装
wget https://nodejs.org/dist/v22.12.0/node-v22.12.0-linux-x64.tar.xz
tar -xJf node-v22.12.0-linux-x64.tar.xz
sudo cp -r node-v22.12.0-linux-x64/{bin,include,lib,share} /usr/local/

# 方案二:通过 n 版本管理器安装
sudo npm install -g n
sudo n lts

二、安装 Claude Code

有三种方式可选,推荐方式一。

方式一:npm 全局安装(推荐,所有 CentOS 版本通用)

国内用户建议先用淘宝镜像加速:

# 临时使用淘宝镜像安装(推荐)
npm install -g @anthropic-ai/claude-code --registry=https://registry.npmmirror.com

# 或者永久配置淘宝镜像后再安装
npm config set registry https://registry.npmmirror.com
npm install -g @anthropic-ai/claude-code

如果是全局安装(需要 sudo):

# 使用 sudo 时需保留 npm 配置
sudo npm install -g @anthropic-ai/claude-code --registry=https://registry.npmmirror.com

方式二:使用 npx 直接运行(无需全局安装)

# 每次运行时从 npm 获取最新版本
npx @anthropic-ai/claude-code

方式三:下载二进制包手动安装

# 下载最新版本(检查 https://github.com/anthropics/anthropic-cli/releases 获取最新链接)
wget https://github.com/anthropics/anthropic-cli/releases/latest/download/claude-code-linux-amd64.tar.gz
tar -xzf claude-code-linux-amd64.tar.gz
sudo mv claude-code /usr/local/bin/claude
sudo chmod +x /usr/local/bin/claude

验证安装:

claude --version
# 应输出类似: 2.x.x (Claude Code)

三、配置 DeepSeek API

3.1 获取 DeepSeek API Key

  1. 访问 DeepSeek 开放平台
  2. 注册/登录账号
  3. 进入 API Keys 页面,点击 创建 API Key
  4. 复制保存生成的 sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 密钥

注意: API Key 只会在创建时显示一次,务必及时保存!

3.2 配置环境变量

需要设置三个环境变量,让 Claude Code 将请求路由到 DeepSeek 的 Anthropic 兼容端点。

方式一:写入 Shell 配置文件(推荐,永久生效)

将以下内容追加到 ~/.bashrc(或 ~/.bash_profile):

# === 替换为你自己的 API Key ===
cat >> ~/.bashrc << 'EOF'

# === Claude Code + DeepSeek 配置 ===
export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
export ANTHROPIC_MODEL="deepseek-v4-pro"
export ANTHROPIC_AUTH_TOKEN="sk-你的DeepSeek-API-Key"
EOF

# 立即生效
source ~/.bashrc

如果你使用 Zsh:

cat >> ~/.zshrc << 'EOF'

# === Claude Code + DeepSeek 配置 ===
export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
export ANTHROPIC_MODEL="deepseek-v4-pro"
export ANTHROPIC_AUTH_TOKEN="sk-你的DeepSeek-API-Key"
EOF

source ~/.zshrc
方式二:创建独立配置文件(多用户/多环境推荐)
# 创建独立配置文件
cat > ~/.claude-deepseek.env << 'EOF'
export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
export ANTHROPIC_MODEL="deepseek-v4-pro"
export ANTHROPIC_AUTH_TOKEN="sk-你的DeepSeek-API-Key"
EOF

# 在 ~/.bashrc 中引用它
echo 'source ~/.claude-deepseek.env' >> ~/.bashrc
source ~/.bashrc

# 设置安全权限(防止其他用户读取 API Key)
chmod 600 ~/.claude-deepseek.env
方式三:手动编辑环境变量文件
# 使用 vi/vim 或 nano 编辑
vi ~/.bashrc

# 在文件末尾添加以下三行:
export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
export ANTHROPIC_MODEL="deepseek-v4-pro"
export ANTHROPIC_AUTH_TOKEN="sk-你的DeepSeek-API-Key"

# 保存后重新加载
source ~/.bashrc
方式四:临时生效(仅当前终端会话)
export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
export ANTHROPIC_MODEL="deepseek-v4-pro"
export ANTHROPIC_AUTH_TOKEN="sk-你的DeepSeek-API-Key"
方式五:系统级环境变量(所有用户生效)
# 方式A:编辑 /etc/environment(需要 root 权限)
sudo tee -a /etc/environment << 'EOF'
ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
ANTHROPIC_MODEL=deepseek-v4-pro
ANTHROPIC_AUTH_TOKEN=sk-你的DeepSeek-API-Key
EOF

# 方式B:通过 /etc/profile.d 脚本(推荐方式,更规范)
sudo tee /etc/profile.d/claude-code.sh << 'EOF'
# Claude Code + DeepSeek 环境变量
export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_MODEL=deepseek-v4-pro
export ANTHROPIC_AUTH_TOKEN=sk-你的DeepSeek-API-Key
EOF

sudo chmod 644 /etc/profile.d/claude-code.sh
# 重新登录后生效
验证环境变量
echo $ANTHROPIC_BASE_URL    # https://api.deepseek.com/anthropic
echo $ANTHROPIC_MODEL       # deepseek-v4-pro
# 仅显示前几位,避免泄露
echo $ANTHROPIC_AUTH_TOKEN | sed 's/\(sk-\).*\(.\{4\}\)/\1***\2/'

3.3 多环境切换(开发/测试/生产)

若需要在不同环境和 API Key 之间切换:

# 方式一:创建多个配置文件
cat > ~/.claude-dev.env << 'EOF'
export ANTHROPIC_AUTH_TOKEN="sk-测试环境API-Key"
export ANTHROPIC_MODEL="deepseek-v4-pro-test"
EOF

cat > ~/.claude-prod.env << 'EOF'
export ANTHROPIC_AUTH_TOKEN="sk-生产环境API-Key"
export ANTHROPIC_MODEL="deepseek-v4-pro"
EOF

# 切换环境
source ~/.claude-dev.env     # 切换到测试环境
source ~/.claude-prod.env    # 切换到生产环境

# 方式二:使用函数快速切换(添加到 ~/.bashrc)
cat >> ~/.bashrc << 'FUNC'
# Claude 环境切换函数
claude-env() {
    case "$1" in
        dev)
            export ANTHROPIC_AUTH_TOKEN="sk-测试环境API-Key"
            export ANTHROPIC_MODEL="deepseek-v4-pro-test"
            echo "已切换到测试环境"
            ;;
        prod)
            export ANTHROPIC_AUTH_TOKEN="sk-生产环境API-Key"
            export ANTHROPIC_MODEL="deepseek-v4-pro"
            echo "已切换到生产环境"
            ;;
        *)
            echo "用法: claude-env {dev|prod}"
            ;;
    esac
}
FUNC

四、首次运行与常用命令

4.1 首次启动

claude

首次启动会:

  1. 提示是否授权工具执行权限(建议选 Yes
  2. 自动读取环境变量,连接到 DeepSeek 端点
  3. 进入交互式对话界面

如果一切正常,会看到 Claude Code 的欢迎界面,表示已成功接入 DeepSeek-V4-Pro

4.2 常用命令行参数

# 单次提问(非交互式,执行完直接返回)
claude "用Python写一个快速排序算法"

# 读取文件并针对内容提问
claude --file ./test.py "分析这段代码的性能瓶颈"

# 设置本次对话的最大输出长度
claude --max-tokens 4096

# 进入指定项目目录后启动
claude --project ./my-project

# 启动调试模式
claude --debug

4.3 交互模式常用命令

claude 的交互式对话中:

命令 作用
/cls 清空当前对话上下文
/exitCtrl+CCtrl+D 退出 Claude Code
/help 查看所有可用命令
/config 打开配置面板(主题、模型等)

4.4 集成到 VS Code (Remote SSH / 本地)

本地 VS Code:

  1. 在 VS Code 扩展市场搜索 “Claude Code” 并安装
    或访问: https://marketplace.visualstudio.com/items?itemName=Anthropic.claude-vscode

  2. 安装后打开 VS Code 设置 (Ctrl+,),搜索 “Anthropic”,配置:

    • Base Url: https://api.deepseek.com/anthropic
    • Auth Token: sk-你的API-Key
    • Model: deepseek-v4-pro

通过 Remote SSH 连接到 CentOS 服务器:

VS Code Remote SSH 会自动读取服务器上的 ~/.bashrc 环境变量,前提是已在服务器上完成配置。

4.5 配置 systemd 服务(常驻后台)

如果需要 Claude Code 作为守护进程运行:

# 创建 systemd 用户服务
mkdir -p ~/.config/systemd/user

cat > ~/.config/systemd/user/claude-code.service << 'EOF'
[Unit]
Description=Claude Code AI Assistant
After=network.target

[Service]
Type=simple
EnvironmentFile=%h/.claude-deepseek.env
ExecStart=/usr/bin/claude
Restart=on-failure
RestartSec=10

[Install]
WantedBy=default.target
EOF

# 启用服务
systemctl --user daemon-reload
systemctl --user enable --now claude-code.service

五、常见问题及解决方法

❌ 问题1:claude: command not foundbash: claude: command not found

原因: npm 全局包路径不在 PATH 环境变量中。

解决:

# 查看 npm 全局安装路径
npm config get prefix

# 确认 claude 是否在该路径下
ls -la $(npm config get prefix)/bin/claude

# 将 npm 全局 bin 目录添加到 PATH
echo "export PATH=\$(npm config get prefix)/bin:\$PATH" >> ~/.bashrc
source ~/.bashrc

# 如果使用 sudo 安装,路径可能在 /usr/local/bin
which claude || find / -name "claude" -type f 2>/dev/null

❌ 问题2:启动后显示 Authentication required401 Unauthorized

原因: API Key 未设置或无效。

解决:

# 检查环境变量是否设置
echo $ANTHROPIC_AUTH_TOKEN

# 如果为空,重新设置
export ANTHROPIC_AUTH_TOKEN="sk-你的DeepSeek-API-Key"

# 确保已写入配置文件
grep ANTHROPIC ~/.bashrc
source ~/.bashrc

确认 API Key 以 sk- 开头,且在 DeepSeek 平台 上状态为"有效";同时检查账户余额是否充足。


❌ 问题3:提示 Model not founddeepseek-v4-pro not available

原因: 模型名称拼写错误,或 DeepSeek 端点不支持该模型。

解决:

# 确认模型名称正确(注意是 v4 不是 v3)
echo $ANTHROPIC_MODEL    # 必须是 deepseek-v4-pro

# 完整检查三个变量是否都正确
echo "BASE_URL: $ANTHROPIC_BASE_URL"    # 必须是 https://api.deepseek.com/anthropic
echo "MODEL:    $ANTHROPIC_MODEL"       # 必须是 deepseek-v4-pro
echo "TOKEN:    ${ANTHROPIC_AUTH_TOKEN:0:5}***${ANTHROPIC_AUTH_TOKEN: -4}"

❌ 问题4:Network errorECONNREFUSED / ENOTFOUND

原因: 网络无法访问 DeepSeek API。

解决:

# 测试网络连通性
curl -v https://api.deepseek.com/anthropic/v1/messages \
    -H "Content-Type: application/json" \
    -d '{}'

如果返回 401 或 400 是正常的(说明已连通)。如果超时或拒绝连接,则:

# DNS 解析检查
nslookup api.deepseek.com

# 路由追踪
traceroute api.deepseek.com

# 检查代理设置(如果使用了代理)
echo $http_proxy
echo $https_proxy

# 如果需要配置代理
export https_proxy=http://your-proxy:port
  • 检查服务器网络连接是否正常
  • 检查防火墙/安全组是否放行 443 端口出站请求
  • 如果在公司网络内,可能需要配置代理

❌ 问题5:npm install -g 报权限错误 (EACCES / EPERM)

原因: npm 全局目录需要 root 权限。

解决方式一(推荐): 配置 npm 全局安装目录为用户目录:

# 创建用户级 npm 全局目录
mkdir -p ~/.npm-global

# 配置 npm 使用该目录
npm config set prefix "$HOME/.npm-global"

# 添加到 PATH
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

# 重新安装 Claude Code(无需 sudo)
npm install -g @anthropic-ai/claude-code --registry=https://registry.npmmirror.com

解决方式二: 使用 sudo 安装(快速但不够优雅):

sudo npm install -g @anthropic-ai/claude-code --registry=https://registry.npmmirror.com

❌ 问题6:Node.js version too old, requires >= 18.x

原因: Node.js 版本过低。

解决:

node --version   # 查看当前版本

如果低于 v18:

# 使用 nvm 快速升级(推荐)
nvm install 22
nvm use 22
nvm alias default 22

# 或通过 NodeSource 仓库升级
# CentOS 8+/RHEL 8+:
curl -fsSL https://rpm.nodesource.com/setup_22.x | sudo bash -
sudo dnf upgrade -y nodejs

# CentOS 7/RHEL 7:
curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash -
sudo yum upgrade -y nodejs

推荐: 使用 nvm 管理多版本 Node.js,详见 第六章


❌ 问题7:中文输出乱码

原因: 终端 locale 不是 UTF-8。

解决:

# 检查当前 locale 设置
locale

# 如果 LANG 不是 UTF-8,修改为 UTF-8
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8

# 永久设置
sudo localectl set-locale LANG=zh_CN.UTF-8

# 或者写入配置文件
echo 'export LANG=zh_CN.UTF-8' >> ~/.bashrc
echo 'export LC_ALL=zh_CN.UTF-8' >> ~/.bashrc
source ~/.bashrc

# 如果系统缺少中文语言包,安装它
# CentOS 8+/RHEL 8+:
sudo dnf install -y glibc-langpack-zh

# CentOS 7/RHEL 7:
sudo yum install -y glibc-common
sudo localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8

❌ 问题8:Failed to fetch 或请求超时

原因: DeepSeek API 响应较慢(尤其是高峰期)。

解决:

# 查看日志了解详细错误
tail -50 ~/.anthropic/logs/claude-code.log

# 启动调试模式查看实时请求
claude --debug

建议:

  • 避开高峰时段(晚间 20:00-23:00)
  • 检查 DeepSeek 平台服务状态页
  • 重试几次,通常高峰过后恢复

❌ 问题9:防火墙或安全组拦截 Claude 联网

原因: 服务器防火墙(firewalld/iptables)或云服务商安全组阻止出站 HTTPS 请求。

解决:

1. 检查 firewalld(CentOS 7+ 默认防火墙):

# 查看防火墙状态
sudo firewall-cmd --state

# 检查出站规则
sudo firewall-cmd --list-all

# 通常 firewalld 默认允许所有出站流量
# 如果被限制,添加规则:
sudo firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p tcp --dport 443 -j ACCEPT
sudo firewall-cmd --reload

2. 检查 iptables:

# 查看当前规则
sudo iptables -L -n -v

# 查看 OUTPUT 链策略
sudo iptables -L OUTPUT -n -v

# 如果 OUTPUT 默认策略为 DROP,添加放行规则
sudo iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
sudo service iptables save   # CentOS 7

3. 云服务器安全组:

  • 登录云服务商控制台(阿里云/腾讯云/华为云/AWS 等)
  • 检查实例关联的安全组规则
  • 确保出站方向允许 TCP 443 端口

4. 测试出站连通性:

# 测试能否访问 DeepSeek API
curl -m 10 https://api.deepseek.com/anthropic/v1/messages
# 返回 401 或 400 = 连通正常
# 超时 = 可能被防火墙拦截

❌ 问题10:GLIBC 版本过低 (CentOS 7 特有问题)

原因: CentOS 7 自带的 GLIBC 2.17 不满足新版 Node.js 的要求。

排查:

# 检查 GLIBC 版本
ldd --version

# 如果 claude 启动报类似以下错误:
# /lib64/libc.so.6: version `GLIBC_2.28' not found

解决方案:

# 方案一:降级到 Node.js 18.x(兼容 GLIBC 2.17)
curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -
sudo yum install -y nodejs

# 方案二:使用 Docker 容器运行(推荐)
sudo yum install -y docker
sudo systemctl start docker

# 创建 claude 别名
cat >> ~/.bashrc << 'EOF'
alias claude='docker run -it --rm \
    -e ANTHROPIC_BASE_URL=$ANTHROPIC_BASE_URL \
    -e ANTHROPIC_MODEL=$ANTHROPIC_MODEL \
    -e ANTHROPIC_AUTH_TOKEN=$ANTHROPIC_AUTH_TOKEN \
    -v $(pwd):/workspace \
    -w /workspace \
    node:22 npx @anthropic-ai/claude-code'
EOF
source ~/.bashrc

# 方案三:升级到 Rocky Linux 8/9
# 参考:https://rockylinux.org/ (CentOS 的替代发行版)

六、进阶工具推荐

6.1 nvm:Node.js 版本管理器

nvm 允许在一台机器上安装多个 Node.js 版本并随时切换。

# 1. 安装 nvm(如果尚未安装)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
source ~/.bashrc

# 2. 安装指定版本
nvm install 20.10.0

# 3. 切换到指定版本
nvm use 20.10.0

# 4. 查看已安装的版本
nvm list

# 5. 设置默认版本
nvm alias default 20.10.0

# 6. 安装 LTS 最新版
nvm install --lts

# 7. 验证
node --version

6.2 更新 Claude Code

# 更新到最新版本
npm update -g @anthropic-ai/claude-code

# 如果使用 sudo 安装
sudo npm update -g @anthropic-ai/claude-code

# 查看更新后的版本
claude --version

# 查看当前安装的版本列表
npm list -g @anthropic-ai/claude-code

6.3 环境变量备份与迁移

更换服务器时,备份并恢复环境变量配置:

# === 导出(旧服务器) ===
grep -E "^export ANTHROPIC_" ~/.bashrc > ./claude-config-backup.sh
echo "已导出到 ./claude-config-backup.sh"

# === 导入(新服务器) ===
cat ./claude-config-backup.sh >> ~/.bashrc
source ~/.bashrc
echo "已导入环境变量"

# === 或者直接复制整个配置文件 ===
scp old-server:~/.claude-deepseek.env ~/
echo 'source ~/.claude-deepseek.env' >> ~/.bashrc
source ~/.bashrc

6.4 使用 tmux/screen 保活 Claude Code 会话

# 安装 tmux
sudo dnf install -y tmux   # CentOS 8+
sudo yum install -y tmux   # CentOS 7

# 创建新会话并启动 Claude
tmux new -s claude
# 在 tmux 窗口中运行
claude

# 断开会话(不关闭 Claude):按 Ctrl+B 然后按 D
# 重新连接会话
tmux attach -t claude

七、一键排障脚本

将以下脚本保存为 ClaudeCheck.sh,使用 bash ClaudeCheck.sh 运行即可自动检测所有配置项:

#!/bin/bash
# ============================================
#  Claude Code + DeepSeek 环境检测工具 (CentOS)
# ============================================

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
CYAN='\033[0;36m'
GRAY='\033[0;90m'
NC='\033[0m' # 无颜色

PASS=0
FAIL=0
WARN=0

echo ""
echo -e "${CYAN}========================================"
echo -e "  Claude Code + DeepSeek 环境检测工具"
echo -e "  系统: $(cat /etc/redhat-release 2>/dev/null || echo 'Unknown')"
echo -e "========================================${NC}"
echo ""

# 1. 操作系统版本检测
echo -e "${YELLOW}[1/9] 操作系统版本检测...${NC}"
if [ -f /etc/redhat-release ]; then
    OS_VERSION=$(cat /etc/redhat-release)
    echo -e "  ${GREEN}PASS${NC}  系统: ${OS_VERSION}"
    PASS=$((PASS+1))

    # 检查 CentOS 7 的 GLIBC
    if grep -q "release 7" /etc/redhat-release 2>/dev/null; then
        GLIBC_VER=$(ldd --version 2>&1 | head -1 | awk '{print $NF}')
        echo -e "  ${YELLOW}WARN${NC}  CentOS 7 检测到,GLIBC 版本: ${GLIBC_VER}"
        echo -e "  ${GRAY}INFO${NC}  建议使用 Node.js 18.x 或 Docker 方案"
        WARN=$((WARN+1))
    fi
else
    echo -e "  ${YELLOW}WARN${NC}  非 CentOS/RHEL 系统,本脚本适配可能不完整"
    WARN=$((WARN+1))
fi

# 2. Node.js 版本检测
echo -e "${YELLOW}[2/9] Node.js 版本检测...${NC}"
if command -v node &> /dev/null; then
    NODE_VERSION=$(node --version 2>&1)
    echo -e "  ${GREEN}PASS${NC}  Node.js ${NODE_VERSION}"
    PASS=$((PASS+1))

    # 检查版本是否 >= 18
    NODE_MAJOR=$(echo "$NODE_VERSION" | grep -oP '\d+' | head -1)
    if [ "$NODE_MAJOR" -lt 18 ]; then
        echo -e "  ${RED}FAIL${NC}  Node.js 版本过低 (${NODE_VERSION}),需要 >= v18.x"
        FAIL=$((FAIL+1))
    fi
else
    echo -e "  ${RED}FAIL${NC}  Node.js 未安装或不在 PATH 中"
    echo -e "  ${GRAY}FIX${NC}   参考本指南第一章安装 Node.js"
    FAIL=$((FAIL+1))
fi

# 3. npm 版本检测
echo -e "${YELLOW}[3/9] npm 版本检测...${NC}"
if command -v npm &> /dev/null; then
    NPM_VERSION=$(npm --version 2>&1)
    echo -e "  ${GREEN}PASS${NC}  npm ${NPM_VERSION}"
    PASS=$((PASS+1))
else
    echo -e "  ${RED}FAIL${NC}  npm 未安装或不在 PATH 中"
    FAIL=$((FAIL+1))
fi

# 4. Claude Code 版本检测
echo -e "${YELLOW}[4/9] Claude Code 版本检测...${NC}"
if command -v claude &> /dev/null; then
    CLAUDE_VERSION=$(claude --version 2>&1)
    echo -e "  ${GREEN}PASS${NC}  ${CLAUDE_VERSION}"
    PASS=$((PASS+1))
else
    echo -e "  ${RED}FAIL${NC}  Claude Code 未安装或不在 PATH 中"
    echo -e "  ${GRAY}FIX${NC}   npm install -g @anthropic-ai/claude-code --registry=https://registry.npmmirror.com"
    FAIL=$((FAIL+1))
fi

# 5. 环境变量检测
echo -e "${YELLOW}[5/9] 环境变量检测...${NC}"
VARS=("ANTHROPIC_BASE_URL" "ANTHROPIC_MODEL" "ANTHROPIC_AUTH_TOKEN")
for VAR in "${VARS[@]}"; do
    VAL="${!VAR}"
    if [ -n "$VAL" ]; then
        if [ "$VAR" = "ANTHROPIC_AUTH_TOKEN" ]; then
            # 掩码显示 API Key
            MASKED=$(echo "$VAL" | sed 's/\(sk-\).*\(.\{4\}\)/\1***\2/')
            echo -e "  ${GREEN}PASS${NC}  ${VAR} = ${MASKED}"
        else
            echo -e "  ${GREEN}PASS${NC}  ${VAR} = ${VAL}"
        fi
        PASS=$((PASS+1))
    else
        echo -e "  ${RED}FAIL${NC}  ${VAR} 未设置"
        echo -e "  ${GRAY}FIX${NC}   参考本指南第三章配置环境变量"
        FAIL=$((FAIL+1))
    fi
done

# 6. 网络连通性检测
echo -e "${YELLOW}[6/9] DeepSeek API 连通性...${NC}"
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 5 \
    "https://api.deepseek.com/anthropic/v1/messages" \
    -H "Content-Type: application/json" \
    -d '{}' 2>/dev/null)

if [ "$HTTP_CODE" = "401" ] || [ "$HTTP_CODE" = "400" ] || [ "$HTTP_CODE" = "405" ]; then
    echo -e "  ${GREEN}PASS${NC}  API 端点连通 (HTTP ${HTTP_CODE})"
    PASS=$((PASS+1))
elif [ -n "$HTTP_CODE" ]; then
    echo -e "  ${YELLOW}WARN${NC}  API 返回 HTTP ${HTTP_CODE}"
    WARN=$((WARN+1))
else
    echo -e "  ${RED}FAIL${NC}  无法连接 DeepSeek API"
    echo -e "  ${GRAY}FIX${NC}   检查网络和防火墙设置"
    FAIL=$((FAIL+1))
fi

# 7. DNS 解析检测
echo -e "${YELLOW}[7/9] DNS 解析检测...${NC}"
if command -v nslookup &> /dev/null; then
    if nslookup api.deepseek.com &> /dev/null; then
        echo -e "  ${GREEN}PASS${NC}  api.deepseek.com 解析正常"
        PASS=$((PASS+1))
    else
        echo -e "  ${RED}FAIL${NC}  DNS 解析失败"
        FAIL=$((FAIL+1))
    fi
elif command -v dig &> /dev/null; then
    if dig api.deepseek.com +short &> /dev/null; then
        echo -e "  ${GREEN}PASS${NC}  api.deepseek.com 解析正常"
        PASS=$((PASS+1))
    else
        echo -e "  ${RED}FAIL${NC}  DNS 解析失败"
        FAIL=$((FAIL+1))
    fi
else
    echo -e "  ${YELLOW}WARN${NC}  未找到 nslookup/dig 工具,跳过 DNS 检测"
    echo -e "  ${GRAY}INFO${NC}  可安装: sudo dnf install -y bind-utils"
    WARN=$((WARN+1))
fi

# 8. npm 全局路径检测
echo -e "${YELLOW}[8/9] npm 全局路径检测...${NC}"
NPM_PREFIX=$(npm config get prefix 2>/dev/null)
if echo "$PATH" | grep -q "$NPM_PREFIX/bin"; then
    echo -e "  ${GREEN}PASS${NC}  npm 全局路径已在 PATH 中 (${NPM_PREFIX}/bin)"
    PASS=$((PASS+1))
elif [ -n "$NPM_PREFIX" ]; then
    echo -e "  ${YELLOW}WARN${NC}  npm 全局路径可能不在 PATH 中: ${NPM_PREFIX}/bin"
    echo -e "  ${GRAY}FIX${NC}   echo 'export PATH=\"${NPM_PREFIX}/bin:\$PATH\"' >> ~/.bashrc"
    WARN=$((WARN+1))
else
    echo -e "  ${YELLOW}WARN${NC}  无法确定 npm 全局路径"
    WARN=$((WARN+1))
fi

# 9. 配置文件权限检测
echo -e "${YELLOW}[9/9] 配置文件权限检测...${NC}"
if [ -f ~/.claude-deepseek.env ]; then
    PERMS=$(stat -c "%a" ~/.claude-deepseek.env 2>/dev/null)
    if [ "$PERMS" = "600" ]; then
        echo -e "  ${GREEN}PASS${NC}  ~/.claude-deepseek.env 权限安全 (600)"
        PASS=$((PASS+1))
    else
        echo -e "  ${YELLOW}WARN${NC}  ~/.claude-deepseek.env 权限为 ${PERMS},建议设为 600"
        echo -e "  ${GRAY}FIX${NC}   chmod 600 ~/.claude-deepseek.env"
        WARN=$((WARN+1))
    fi
else
    echo -e "  ${GRAY}INFO${NC}  未使用独立配置文件,跳过权限检测"
fi

# 汇总
echo ""
TOTAL=$((PASS + FAIL + WARN))
echo -e "${CYAN}========================================${NC}"

if [ "$FAIL" -eq 0 ] && [ "$WARN" -eq 0 ]; then
    echo -e "${GREEN}  全部检测通过!可以正常使用。${NC}"
elif [ "$FAIL" -eq 0 ]; then
    echo -e "${GREEN}  检测通过 (${PASS}/${TOTAL}),存在 ${WARN} 个警告。${NC}"
else
    echo -e "${RED}  存在 ${FAIL} 个未通过项,${WARN} 个警告,请根据提示修复。${NC}"
fi

echo -e "  通过: ${PASS}  |  警告: ${WARN}  |  失败: ${FAIL}"
echo -e "${CYAN}========================================${NC}"
echo ""

# 提供快速修复建议
if [ "$FAIL" -gt 0 ]; then
    echo -e "${YELLOW}快速修复建议:${NC}"
    echo ""
    echo -e "  # 安装 Node.js (CentOS 8+):"
    echo -e "  curl -fsSL https://rpm.nodesource.com/setup_22.x | sudo bash -"
    echo -e "  sudo dnf install -y nodejs"
    echo ""
    echo -e "  # 安装 Claude Code:"
    echo -e "  npm install -g @anthropic-ai/claude-code --registry=https://registry.npmmirror.com"
    echo ""
    echo -e "  # 配置环境变量:"
    echo -e "  cat > ~/.claude-deepseek.env << 'EOF'"
    echo -e "  export ANTHROPIC_BASE_URL=\"https://api.deepseek.com/anthropic\""
    echo -e "  export ANTHROPIC_MODEL=\"deepseek-v4-pro\""
    echo -e "  export ANTHROPIC_AUTH_TOKEN=\"sk-你的API-Key\""
    echo -e "  EOF"
    echo -e "  echo 'source ~/.claude-deepseek.env' >> ~/.bashrc"
    echo -e "  source ~/.bashrc"
    echo ""
fi

赋予执行权限并运行:

chmod +x ClaudeCheck.sh
bash ClaudeCheck.sh

八、环境变量参考

变量名 说明 示例值
ANTHROPIC_BASE_URL API 端点地址,指向 DeepSeek 的 Anthropic 兼容接口 https://api.deepseek.com/anthropic
ANTHROPIC_MODEL 使用的模型名称 deepseek-v4-pro
ANTHROPIC_AUTH_TOKEN API 认证密钥(相当于访问模型的"密码") sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

术语解释:

  • ANTHROPIC_BASE_URL: Claude Code 原生调用 Anthropic Messages API。DeepSeek 提供了一个兼容该协议格式的端点,设置此变量可将请求重定向到 DeepSeek 服务器。
  • ANTHROPIC_AUTH_TOKEN: API 密钥,用于验证用户身份和计费。在 DeepSeek 平台创建,格式为 sk- 开头。
  • LTS 版本: Long-Term Support,长期支持版本,稳定性更高,推荐生产使用。

九、快速安装总结(一行脚本)

# === 一键安装脚本(CentOS 8+ / RHEL 8+) ===
# 1. 安装 Node.js
curl -fsSL https://rpm.nodesource.com/setup_22.x | sudo bash - && sudo dnf install -y nodejs

# 2. 安装 Claude Code
npm install -g @anthropic-ai/claude-code --registry=https://registry.npmmirror.com

# 3. 配置环境变量(替换 sk-你的DeepSeek-API-Key)
cat > ~/.claude-deepseek.env << 'EOF'
export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
export ANTHROPIC_MODEL="deepseek-v4-pro"
export ANTHROPIC_AUTH_TOKEN="sk-你的DeepSeek-API-Key"
EOF
echo 'source ~/.claude-deepseek.env' >> ~/.bashrc
chmod 600 ~/.claude-deepseek.env
source ~/.bashrc

# 4. 启动
claude

十、免责声明

  • DeepSeek API Key 需妥善保管,泄露可能导致账户被盗用和费用损失。请勿将包含真实 Key 的配置文件上传到公开仓库。建议使用 chmod 600 设置严格权限。
  • DeepSeek 模型的使用需遵守 DeepSeek 平台服务条款
  • Claude Code 本身由 Anthropic 开发,通过第三方兼容端点使用时,Anthropic 不提供技术支持。
  • 本指南仅提供安装与配置方法,不构成任何商业推荐。
  • 对于 CentOS 7 等较老系统,推荐使用 Docker 容器方案以确保安全和兼容性。
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐