Ubuntu 25.10 Server 部署 Claude Code 与 Agent 完整指南

一、前置条件与系统准备

1.1 系统要求确认

Claude Code 在 Ubuntu 20.04 及以上版本均受支持,Ubuntu 25.10 Server 完全兼容。硬件方面需要至少 4 GB RAM,处理器为 x64 或 ARM64 架构。网络方面需要能够访问 Anthropic API 端点(claude.ai 和 api.anthropic.com)。

1.2 更新系统与安装基础依赖

以 root 或具备 sudo 权限的用户登录服务器,依次执行:

bash

sudo apt update && sudo apt upgrade -y sudo apt install -y curl jq git build-essential

jq 用于后续 JSON 配置处理,git 用于 Agent 项目中的版本控制操作,build-essential 确保编译工具链完整。

注意事项:Ubuntu 25.10 的软件源可能包含较新版本的包,如果 apt upgrade 提示需要重启,建议先重启完成内核更新再继续。

二、安装 Claude Code

Claude Code 提供三种安装方式:原生脚本安装(推荐)、npm 全局安装、以及 Linux 包管理器安装(apt/dnf/apk)。推荐使用原生脚本方式,该方式自动处理依赖并在后台保持更新。

2.1 原生脚本安装(推荐)

bash

curl -fsSL https://claude.ai/install.sh | bash

安装完成后,刷新 Shell 配置以使 claude 命令生效:

bash

source ~/.bashrc

如果使用 zsh,则执行 source ~/.zshrc。

2.2 验证安装

bash

claude --version

如果命令未找到,检查 ~/.local/bin 是否在 PATH 中:

bash

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc source ~/.bashrc

也可以运行内置诊断命令检查安装状态:

bash

claude doctor

该命令会检查 PATH 配置、安装状态和自动更新设置。

2.3 替代方式:npm 安装

如果原生脚本因网络原因失败,可使用 npm 方式。确保 Node.js 18+ 已安装:

bash

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt-get install -y nodejs node --version # 确认 >= 18

然后全局安装(不要使用 sudo npm,以避免权限问题):

bash

npm install -g @anthropic-ai/claude-code

2.4 替代方式:Snap 安装

Ubuntu 25.10 Server 默认支持 Snap。社区维护的 Snap 包可用:

bash

sudo snap install claude-code

注意这是社区维护的封装包,不是 Anthropic 官方发布。

安装方式选择建议:优先使用原生脚本安装。Snap 方式因其严格沙箱限制,Agent 需要访问项目文件时可能需要额外配置文件系统权限。

三、配置 API Token

Claude Code 通过环境变量读取 API 密钥。API Key 需要从 Claude Console(platform.claude.com)创建和获取。

3.1 获取 API Key

  1. 访问 https://platform.claude.com/,使用 Anthropic 账户登录

  2. 进入 “API Keys” 页面

  3. 点击 “Create Key”,复制生成的密钥(格式为 sk-ant-api03-...)

重要:API Key 仅在创建时显示一次,务必立即保存到安全位置。

3.2 方式一:临时环境变量(适合测试)

bash

export ANTHROPIC_API_KEY="sk-ant-api03-你的密钥"

这种方式仅在当前 Shell 会话中生效,关闭终端后失效。

3.3 方式二:写入 ~/.bashrc(推荐,持久生效)

bash

echo 'export ANTHROPIC_API_KEY="sk-ant-api03-你的密钥"' >> ~/.bashrc source ~/.bashrc

验证设置是否生效:

bash

echo $ANTHROPIC_API_KEY

安全注意事项:~/.bashrc 中的密钥以明文存储,在多用户共享服务器上建议改用 .env 文件配合 dotenv 加载,或使用密钥管理工具。确保 .bashrc 文件权限为 600:

bash

chmod 600 ~/.bashrc

3.4 方式三:使用 .env 文件(适合 Agent 项目)

在 Agent 项目目录中创建 .env 文件:

bash

echo 'ANTHROPIC_API_KEY=sk-ant-api03-你的密钥' > .env

并添加 .env 到 .gitignore,防止密钥被提交到版本库:

bash

echo '.env' >> .gitignore

在 Python Agent 代码中通过 python-dotenv 加载:

bash

pip install python-dotenv

python

from dotenv import load_dotenv load_dotenv()

3.5 方式四:settings.json 全局配置

Claude Code 也支持通过 ~/.claude/settings.json 的 env 字段配置环境变量。创建或编辑该文件:

bash

mkdir -p ~/.claude cat > ~/.claude/settings.json << 'EOF' { "env": { "ANTHROPIC_API_KEY": "sk-ant-api03-你的密钥" } } EOF chmod 600 ~/.claude/settings.json

3.6 企业代理环境配置

如果服务器位于企业内网需要通过代理访问外网,配置标准代理环境变量:

bash

export HTTPS_PROXY=https://proxy.example.com:8080 export HTTP_PROXY=http://proxy.example.com:8080 export NO_PROXY="localhost,127.0.0.1"

同样建议将这些写入 ~/.bashrc 以持久生效。如果使用自建 LLM Gateway,可额外设置 ANTHROPIC_BASE_URL 指向网关地址。

四、部署 Agent 智能体

Claude Code 的 Agent 能力通过 Agent SDK 实现。Python SDK 和 TypeScript SDK 均捆绑了原生 Claude Code 二进制文件,安装 SDK 后无需单独安装 Claude Code。

4.1 创建 Agent 项目目录

bash

mkdir -p ~/my-agent && cd ~/my-agent

Agent 默认有权访问该目录及其子目录中的文件。

4.2 安装 Agent SDK

Python 方式(推荐) :

bash

python3 -m venv .venv
source .venv/bin/activate pip install claude-agent-sdk

关键注意事项:Ubuntu 25.10 的 Python 启用了 PEP 668 的 externally-managed-environment 保护,必须使用虚拟环境,直接 pip install 到系统 Python 会报错。

TypeScript 方式:

bash

npm init -y npm pkg set type=module npm install @anthropic-ai/claude-agent-sdk npm install --save-dev tsx

4.3 编写 Agent 脚本

创建一个简单的代码审查 Agent。在项目目录下创建 agent.py:

python

import asyncio
import os from dotenv import load_dotenv from claude_agent_sdk import query load_dotenv() async def main(): prompt = """ 审查当前目录下的所有 Python 文件,找出以下问题: 1. 未处理的异常和边界条件 2. 安全漏洞(如硬编码密钥、SQL注入风险) 3. 性能瓶颈 对于每个问题,给出具体的文件路径、行号、问题描述和修复建议。 """ async for message in query(prompt=prompt): print(message) if __name__ == "__main__": asyncio.run(main())

Agent SDK 支持通过 env 选项传入自定义环境变量。Python SDK 会将 env 参数与继承的环境合并,因此父进程中已设置的 ANTHROPIC_API_KEY 会被自动传递。

4.4 运行 Agent

确保 API Key 已在当前 Shell 中设置:

bash

source .venv/bin/activate
export ANTHROPIC_API_KEY="sk-ant-api03-你的密钥" python agent.py

Agent 将自动读取目录中的代码文件,执行分析并输出结果。

4.5 在 Claude Code CLI 中直接使用 Agent

除了 SDK 编程方式,也可以在 Claude Code 交互式会话中直接调用 Agent 能力。启动 Claude Code:

bash

cd ~/my-agent
claude

在交互会话中,可以使用 /agents 命令查看和管理可用的子代理(subagent)。Claude Code 支持自定义子代理,当提示词中包含 @agent-name 时,该子代理会作为主会话代理运行。

4.6 创建 CLAUDE.md 项目上下文文件

在项目根目录创建 CLAUDE.md 文件,为 Agent 提供项目特定的上下文和约定:

markdown

# 项目约定 ## 代码风格 - Python 使用 PEP 8 - 函数必须包含类型注解 - 所有公共函数必须有 docstring ## 安全规则 - 禁止在代码中硬编码任何密钥 - 数据库查询必须使用参数化查询 ## 目录结构 - src/ 源代码 - tests/ 测试文件 - docs/ 文档

Claude Code 启动时会自动加载 CLAUDE.md 中的上下文。

五、测试与验证

5.1 基础功能测试

在项目目录中创建测试文件:

bash

cat > test_code.py << 'EOF' def divide(a, b): return a / b def get_user(db, user_id): query = f"SELECT * FROM users WHERE id = {user_id}" return db.execute(query) EOF

该文件包含两个典型问题:divide 函数未处理除零异常,get_user 函数存在 SQL 注入风险。

5.2 使用 Claude Code CLI 测试

bash

cd ~/my-agent
claude "分析 test_code.py 中的安全问题并给出修复方案"

预期输出应包含:除零异常未被捕获、SQL 注入风险、以及相应的修复代码。

5.3 使用 Agent SDK 测试

bash

source .venv/bin/activate
python agent.py

5.4 验证 API 连通性

如果上述测试失败,先确认 API 连通性:

bash

curl -s -o /dev/null -w "%{http_code}" \ -H "x-api-key: $ANTHROPIC_API_KEY" \ -H "anthropic-version: 2023-06-01" \ https://api.anthropic.com/v1/messages \ -d '{"model":"claude-sonnet-4-20250514","max_tokens":10,"messages":[{"role":"user","content":"hi"}]}'

返回 200 表示 API 连通正常;返回 401 表示密钥无效;返回 403 表示地区限制或权限不足。

六、注意事项汇总

网络与地区限制:Anthropic API 对部分国家/地区有访问限制。如果服务器位于受限地区,需要配置代理或使用支持的 API 网关。安装和运行 Claude Code 需要能够访问 claude.ai 和 Anthropic API 端点。

Python 虚拟环境强制要求:Ubuntu 25.10 的 Python 3.13 启用了 PEP 668 保护,Agent SDK 必须安装在虚拟环境中。创建虚拟环境后,每次运行 Agent 前需先激活:source .venv/bin/activate。

密钥安全管理:API Key 应以明文出现在 .bashrc、.env 或 settings.json 中时,确保文件权限为 600。在多用户服务器上,考虑使用 env 命令通过进程环境传递密钥,避免写入磁盘文件。.env 必须加入 .gitignore,防止密钥泄露到版本库。

Snap 沙箱限制:如果使用 Snap 方式安装 Claude Code,Snap 的严格沙箱机制可能阻止 Agent 访问项目目录中的文件。需要按照 Snap 包文档配置文件系统访问权限,或将项目放在 Snap 允许访问的目录中。

代理环境变量优先级:Claude Code 按照 https_proxy、HTTPS_PROXY、http_proxy、HTTP_PROXY 的顺序读取代理配置,第一个被设置的变量生效。同时设置大小写变体时注意优先级顺序。

Agent SDK 与 CLI 的关系:Agent SDK 捆绑了原生 Claude Code 二进制文件,安装 SDK 后无需单独安装 CLI。但如果 SDK 无法自动解析捆绑的 CLI 路径,可以手动指定:

bash

export CLAUDE_BIN="/usr/local/bin/claude"

自动更新:原生脚本安装的 Claude Code 会在后台自动更新。如果服务器环境要求版本锁定,需要禁用自动更新或使用 Snap/npm 方式安装并手动控制版本。

资源消耗:Agent 执行复杂任务时会进行大量文件读取和代码分析,在低配服务器上可能消耗较多内存。建议监控内存使用情况,必要时限制 Agent 的文件访问范围。

文章摘自:https://www.cnblogs.com/Johny-zhao/p/23101767