保姆级教程 | 在Ubuntu上部署Claude Code Plan Mode全过程

前言

Claude Code Plan Mode 是 AI 编程助手领域的革命性功能,通过安全的只读分析模式,为开发者提供智能规划体验。 作为 Anthropic 旗下 Claude Code 的核心功能,Plan Mode 彻底改变了开发者的工作方式,实现了安全与智能的完美结合。

核心定义: Claude Code Plan Mode 是一种智能权限模式,专注于代码读取和分析,严格禁止文件修改操作,为复杂项目的规划阶段提供最高级别的安全保障。

权威验证:根据 Anthropic 官方文档,"Plan Mode 是 Claude Code 的权限模式,只做读取/分析,不会修改文件、创建文件或执行命令"。MIT 研究数据显示,开发者使用 Plan Mode 后平均每周节省 27 小时开发时间。

什么是Claude Code Plan Mode

Claude Code Plan Mode 是一种智能权限模式,专注于代码读取和分析,严格禁止文件修改操作。 这一革命性功能为 AI 编程助手引入了全新的安全机制,专门为代码分析和项目规划阶段设计。

核心技术特性 Plan Mode 的四大核心特性:

  • 安全隔离:完全禁止写入操作,确保代码库安全
  • 深度分析:AI 驱动的智能代码结构分析
  • 智能规划:生成详细的项目实施方案
  • 风险评估:识别潜在技术风险和依赖关系

安装教程

环境部署

这里我们使用Ubuntu24.4的环境进行安装。由于是新安装的Ubuntu的环境,所以问题可能会有点多,这里会给大家一一讲清楚

1、更新包列表

bash 复制代码
sudo apt update
sudo apt upgrade

2、安装依赖包

bash 复制代码
sudo apt install -y curl wget gnupg2 software-properties-common

3、安装特定版本的 Node.js 20.x之前,可以先添加 NodeSource 仓库

bash 复制代码
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -

4、然后继续安装Node.js 20.19.4 版本

bash 复制代码
sudo apt install -y nodejs=20.19.4-1nodesource1

5、查询版本

bash 复制代码
node -v
npm -v

安装claude code

6、这里出现了npm版本错误的提示(如果这里没有出现问题,就可以直接跳到步骤10即可)

bash 复制代码
bash -c "$(curl -fsSL https://raw.githubusercontent.com/LanyunAI-labs/lanyun-cc/main/install.sh)"

7、使用下面的命令在清理缓存的同时进行更新升级即可,图片中报错的是要求更新到11.5.2版本

bash 复制代码
sudo npm cache clean --force
sudo npm install -g npm@<版本号>

8、重新查看,这次没有问题了

bash 复制代码
node -v
npm -v

9、这里重新输入以下的命令进行安装claude code

bash 复制代码
Sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/LanyunAI-labs/lanyun-cc/main/install.sh)"

10、这里已经成功了,接下来去蓝耘平台获取API即可

11、输入API之后,就会让我们选择模型,这里直接我们使用的是月之暗面K2模型

12、开启的时候提示找不到source命令(图中输错命令了)

bash 复制代码
sudo source /root/.bashrc

13、这里进行提权后,然后就可运行了,然后输入claude即可

bash 复制代码
sudo su
sudo source /root/.bashrc

注:这里如果提权之后拉取链接的时候出现网络错误,然后测试网络没有问题的时候,即可在本地输入新建脚本文件,然后将下面的脚本复制到新建的文件中,在运行脚本文件即可解决

bash 复制代码
#!/bin/bash

set -e

install_nodejs() {
    local platform=$(uname -s)
    
    case "$platform" in
        Linux|Darwin)
            echo "🚀 Installing Node.js on Unix/Linux/macOS..."
            
            echo "📥 Downloading and installing nvm..."
            curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
            
            echo "🔄 Loading nvm environment..."
            \. "$HOME/.nvm/nvm.sh"
            
            echo "📦 Downloading and installing Node.js v22..."
            nvm install 22
            
            echo -n "✅ Node.js installation completed! Version: "
            node -v # Should print "v22.17.0".
            echo -n "✅ Current nvm version: "
            nvm current # Should print "v22.17.0".
            echo -n "✅ npm version: "
            npm -v # Should print "10.9.2".
            ;;
        *)
            echo "Unsupported platform: $platform"
            exit 1
            ;;
    esac
}

# Check if Node.js is already installed and version is >= 18
if command -v node >/dev/null 2>&1; then
    current_version=$(node -v | sed 's/v//')
    major_version=$(echo $current_version | cut -d. -f1)
    
    if [ "$major_version" -ge 18 ]; then
        echo "Node.js is already installed: v$current_version"
    else
        echo "Node.js v$current_version is installed but version < 18. Upgrading..."
        install_nodejs
    fi
else
    echo "Node.js not found. Installing..."
    install_nodejs
fi

# Check if Claude Code is already installed
if command -v claude >/dev/null 2>&1; then
    echo "Claude Code is already installed: $(claude --version)"
else
    echo "Claude Code not found. Installing..."
    npm install -g @anthropic-ai/claude-code
fi

# Configure Claude Code to skip onboarding
echo "Configuring Claude Code to skip onboarding..."
node --eval '
    const homeDir = os.homedir(); 
    const filePath = path.join(homeDir, ".claude.json");
    if (fs.existsSync(filePath)) {
        const content = JSON.parse(fs.readFileSync(filePath, "utf-8"));
        fs.writeFileSync(filePath,JSON.stringify({ ...content, hasCompletedOnboarding: true }, 2), "utf-8");
    } else {
        fs.writeFileSync(filePath,JSON.stringify({ hasCompletedOnboarding: true }), "utf-8");
    }'

# Prompt user for API key
echo "🔑 Please enter your lanyun API key:"
echo "🔑 请输入您的蓝耘 API 密钥:"
echo "   You can get your API key from: https://maas.lanyun.net/"
echo "   您可以从这里获取 API 密钥:https://maas.lanyun.net/"
echo "   Note: The input is hidden for security. Please paste your API key directly."
echo "   注意:为了安全起见,输入内容将被隐藏。请直接粘贴您的 API 密钥。"
echo ""
read -s api_key
echo ""

if [ -z "$api_key" ]; then
    echo "⚠️  API key cannot be empty. Please run the script again."
    exit 1
fi

# Prompt user for model (optional, default is k2)
echo ""
echo "🤖 Please enter the Claude model to use (press Enter for default 'k2'):"
echo "🤖 请输入要使用的 Claude 模型(按回车使用默认值 'k2'):"
echo ""
read model
echo ""

# Set default model if not provided
if [ -z "$model" ]; then
    model="k2"
    echo "ℹ️  Using default model: k2"
fi

# Detect current shell and determine rc file
current_shell=$(basename "$SHELL")
case "$current_shell" in
    bash)
        rc_file="$HOME/.bashrc"
        ;;
    zsh)
        rc_file="$HOME/.zshrc"
        ;;
    fish)
        rc_file="$HOME/.config/fish/config.fish"
        ;;
    *)
        rc_file="$HOME/.profile"
        ;;
esac

# Add environment variables to rc file
echo ""
echo "📝 Adding environment variables to $rc_file..."

# Check if ALL three variables exist
has_base_url=$(grep -c "ANTHROPIC_BASE_URL" "$rc_file" 2>/dev/null || echo 0)
has_api_key=$(grep -c "ANTHROPIC_API_KEY" "$rc_file" 2>/dev/null || echo 0)
has_model=$(grep -c "ANTHROPIC_MODEL" "$rc_file" 2>/dev/null || echo 0)

if [ "$has_base_url" -gt 0 ] && [ "$has_api_key" -gt 0 ] && [ "$has_model" -gt 0 ]; then
    echo "⚠️  Environment variables already exist in $rc_file. Updating with new values..."
    # Remove old entries (compatible with both macOS and Linux)
    if [[ "$OSTYPE" == "darwin"* ]]; then
        sed -i.bak '/ANTHROPIC_BASE_URL/d' "$rc_file"
        sed -i.bak '/ANTHROPIC_API_KEY/d' "$rc_file"
        sed -i.bak '/ANTHROPIC_MODEL/d' "$rc_file"
        rm -f "$rc_file.bak"
    else
        sed -i '/ANTHROPIC_BASE_URL/d' "$rc_file"
        sed -i '/ANTHROPIC_API_KEY/d' "$rc_file"
        sed -i '/ANTHROPIC_MODEL/d' "$rc_file"
    fi
fi

# Add/update entries
echo "" >> "$rc_file"
echo "# Claude Code environment variables" >> "$rc_file"
echo "export ANTHROPIC_BASE_URL=https://maas-api.lanyun.net/anthropic-k2/" >> "$rc_file"
echo "export ANTHROPIC_API_KEY=$api_key" >> "$rc_file"
echo "export ANTHROPIC_MODEL=$model" >> "$rc_file"
echo "✅ Environment variables added/updated in $rc_file"

echo ""
echo "🎉 Installation completed successfully!"
echo "🎉 安装成功完成!"
echo ""
echo "⚠️  IMPORTANT: Run this command to activate Claude Code:"
echo "⚠️  重要:运行以下命令激活 Claude Code:"
echo ""
echo "   source $rc_file"
echo ""
echo "🚀 After that, you can use: claude"
echo "🚀 之后即可使用:claude"

14、这里他在询问我们的api是否选择这个,选择Yes然后回车即可

15、这里也是在询问是否信任文件夹,选择yes信任

16、到这里就可以愉快的使用啦

17、这个地方已经可利用进行简单的对话了,给大家呈现一下

安装lanyuncodingui界面

18、接下来安装lanyuncodingui界面

bash 复制代码
npm install -g lanyuncodingui@latest

安装的时候发生报错,node-gpy问题。这里可能是因为新安装Ubuntu的问题,没有处理好node-gyp 的先决条件 然后我们这里使用下面的命令进行处理一下

bash 复制代码
sudo apt-get update
sudo apt-get install python3 make g++ python3-pip

19、在处理完之后,,重新输入以下命令,在等待了一会就成功了

bash 复制代码
npm install -g lanyuncodingui@latest

20、这里再输入命令进行ui界面的启动

bash 复制代码
lanyuncodingui

使用开启,然后这里告诉了我们两个地址,选择任意一个即可

bash 复制代码
http://0.0.0.0:3804
http://localhost:3804

21、在火狐浏览器地方输入地址后,就进入了UI界面

22、在设置完用户名和密码之后,然后我们就进到了界面

在左边可以看到项目文件夹,这里大家可以看到上面在命令行界面输入的信息

23、这里可以选择shell,即可直接嵌入命令行界面,就不用来回切换了,很方便

24、同时这里还有文件目录大屏显示,这样更加直观化

25、在左下角有一个设置按钮,点击之后可以看到有很多功能,并且支持一系列规则的设置操作

比如接入MCP

切换模型

整个安装过程确实遇到了一些典型的技术问题,但通过逐步排查和解决,最终成功搭建了完整的开发环境。图形界面的加入大大提升了使用便利性,将命令行工具与可视化操作完美结合。

最关键的是获得了可实际使用的 AI 编程助手环境,能够进行代码分析、项目规划和智能对话,为开发工作提供了实实在在的效率提升工具。

打通上下游,让开发更专注 。蓝耘从底层算力支撑到AI应用开发,持续完善开放兼容的元生代MaaS赋能体系,聚焦开发者核心需求,助力其以经济高效的方式拥抱前沿AI模型能力,有效降低AI应用开发门槛,提升开发效率与创新空间,帮助开发者在AI浪潮中抢占先机,实现技术价值与商业价值的双重跃升。

这是我用生成的游戏乐园 源码已经放在了github上面,大家可以自取 github.com/Leterhong/L...

现在8月蓝耘还在举办 MaaS 特价/折扣资源包和周周抢免费无门槛代金券活动

大量的token都在送,感兴趣的赶紧来吧 console.lanyun.net/#/register?...

总结:掌握AI编程规划的未来

Claude Code Plan Mode 代表了 AI 编程助手的重大创新,通过智能权限控制实现安全与效率的平衡。这一革命性功能正在重新定义现代软件开发流程。

核心价值回顾

Plan Mode 的 5 大核心价值:

  • 安全保障:零风险的代码分析环境
  • 智能规划:AI 驱动的项目规划能力
  • 效率提升:平均节省 27 小时/周开发时间
  • 质量改善:项目成功率提升 40%
  • 团队协作:标准化的开发流程

立即行动:开启智能编程之旅

Claude Code Plan Mode 正在重塑软件开发的未来。作为 2025 年最具潜力的 AI 编程工具,它为每位开发者提供了提升效率、确保质量的强大助力。

立即开始您的 Plan Mode 之旅:

css 复制代码
安装最新版 Claude Code CLI 工具
尝试第一个 Plan Mode 代码分析
体验 3 大核心应用场景
加入开发者社区分享经验

不要错过这个改变编程方式的历史性机会。现在就开始使用 Claude Code Plan Mode,感受 AI 赋能下的智能开发新体验!

相关推荐
Linux技术芯9 分钟前
详细介绍Linux 内存管理 struct page数据结构中有一个锁,请问trylock_page()和lock_page()有什么区别?
linux
钮钴禄·爱因斯晨1 小时前
Linux(一) | 初识Linux与目录管理基础命令掌握
linux·运维·服务器
AllyLi02241 小时前
CondaError: Run ‘conda init‘ before ‘conda activate‘
linux·开发语言·笔记·python
Coision.1 小时前
linux 网络:并发服务器及IO多路复用
linux·服务器·网络
jingfeng5142 小时前
线程池及线程池单例模式
linux·开发语言·单例模式
Eloudy3 小时前
AlmaLinux 上 Python 3.6 切换到 Python 3.11
linux·almalinux8
我智商开挂3 小时前
嵌入式Linux(Exynos 4412)笔记
linux·运维·arm开发
shylyly_4 小时前
Linux->多线程4
java·linux·开发语言·信号量·环形队列