当前位置: 首页 > news >正文

WSL2环境下的Claude Code与lanyuncodingui安装与配置

前言

AI编码助手Claude Code因其强大的功能在开发者社区中备受关注,但其官方仅支持macOS与Linux平台,这一明确的技术限制将广大的Windows开发者排除在外,使其无法在自己熟悉的操作系统上直接体验。

我们将借助适用于Linux的Windows子系统(WSL2)技术,在Windows系统内部构建一个完整的、无缝集成的GNU/Linux环境,从而为Claude Code的运行创造必要条件。本指南将提供一份详尽、严肃的技术操作说明,不仅引导您完成WSL2的配置和Claude Code的部署,还将进一步安装lanyuncodingui可视化界面,将原本无法运行且基于命令行的工具,转变为一个在Windows上功能完善、操作直观的图形化AI编程工作站。

安装wsl2

wsl2是适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。

接下来我教各位如何进行wsl2的安装操作

系统设置

控制面板->程序->启用或关闭 windows 功能,开启 Windows 虚拟化和 Linux 子系统(WSL2)以及虚拟机平台
image.png

系统一键默认安装,打开终端输入命令进行WSL更新,

wsl.exe --update

即可安装 WSL 相关的组件,这一步可能需要几分钟的时间。

安装Ubuntu

打开 Microsoft Store,搜索 Ubuntu 22.04.5 LTS并下载。

image.png
下载完成后,可以在开始菜单中找到Ubuntu 22.04.5 LTS,如果终端使用的是 Windows Terminal 那么在选项卡中也能看到 Ubuntu 22.04.5 LTS 的选项。
双击Ubuntu 22.04.5 LTS进入到界面,我们需要创建新用户和密码

image.png
这一步需要输入用户名和密码,注意:输密码的界面是看不到的,不要认为是哪里出问题了。

在输入完用户名称和密码之后,就代表安装成功了:
image.png

trae链接wsl并进行相关配置安装

打开trae,我们进行wsl链接
image.png

安装node.js和npm

切换到管理员账号

sudo -i

这里需要我们输入自己的用户密码就能成功进行切换
image.png

更新系统包列表:

sudo apt update && sudo apt upgrade -y

image.png
安装必要的依赖

sudo apt install -y curl software-properties-common

image.png
使用 NodeSource 安装脚本安装 Node.js 20.x:image.png
安装 Node.js 和 npm:

sudo apt install -y nodejs

image.png
验证安装是否成功:

node -v # 应该显示v20.x.x npm -v # 应该显示对应的npm版本
npm-v   # 应该显示对应的npm版本

image.png

安装claude code

输入下方命令进行claude code的安装

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

这里显示我们的链接失败了
image.png
因为这个是一个脚本文件,我们直接打开这个链接https://raw.githubusercontent.com/LanyunAI-labs/lanyun-cc/main/install.sh
image.png
网页内容如下

#!/bin/bashset -einstall_nodejs() {local platform=$(uname -s)case "$platform" inLinux|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 | bashecho "🔄 Loading nvm environment..."\. "$HOME/.nvm/nvm.sh"echo "📦 Downloading and installing Node.js v22..."nvm install 22echo -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; thencurrent_version=$(node -v | sed 's/v//')major_version=$(echo $current_version | cut -d. -f1)if [ "$major_version" -ge 18 ]; thenecho "Node.js is already installed: v$current_version"elseecho "Node.js v$current_version is installed but version < 18. Upgrading..."install_nodejsfi
elseecho "Node.js not found. Installing..."install_nodejs
fi# Check if Claude Code is already installed
if command -v claude >/dev/null 2>&1; thenecho "Claude Code is already installed: $(claude --version)"
elseecho "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" ]; thenecho "⚠️  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" ]; thenmodel="k2"echo "ℹ️  Using default model: k2"
fi# Detect current shell and determine rc file
current_shell=$(basename "$SHELL")
case "$current_shell" inbash)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 ]; thenecho "⚠️  Environment variables already exist in $rc_file. Updating with new values..."# Remove old entries (compatible with both macOS and Linux)if [[ "$OSTYPE" == "darwin"* ]]; thensed -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"elsesed -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"

将文本复制到Ubuntu中,保存到文件install.sh
我们这个样子就是保存好了的
image.png

输入命令执行这个文件

./install.sh

但是这里显示不被允许,说明我们文件没有权限进行执行
image.png
使用命令进行查询文件状态

ll


输入下方命令给文件install.sh增加可执行的权限

chmod +x install.sh

image.png
然后我们再次输入命令进行文件install.sh的执行

./install.sh

这里他就会检查我们的环境配置,这里显示claude code还没有安装,所以我们这里是先进行claude code的安装的
image.png
这里我们是需要等待一会儿的
安装好了之后如下:
image.png
这里我们需要进行api-key的配置操作
来到https://console.lanyun.net/#/register?promoterCode=0131进行蓝耘的注册,输入相关信息即可注册成功
image.png
主页顶部找到MaaS平台
这里有很多的ai模型供你使用
image.png
进行api-key的创建
image.png
将密钥进行复制

image.png
来到终端,将你的api-key粘贴到这种然后回车就能将api-key写入到环境变量中去
然后我们回车即可,使用默认的模型

image.png
按照上面的提示我们需要进行激活操作

source /root/.bashrc

然后输入命令激活claude code

claude

他这里会询问我们的密钥是否选择我们环境中配置好的,我们直接选择Yes就行了
image.png
然后他又询问我们是否相信这个文件,我们同样选择

Yes,proceed

image.png
然后就到了我们的使用界面了
image.png
这个还是挺不错的,模型是kimi -k2
image.png
image.png

安装lanyuncodingui

但是这种方式我觉得挺不方便的,但是蓝耘提供了可视化ui界面供我们使用
在终端输入命令进行可视化ui界面安装

npm install -g lanyuncodingui@latest

image.png
这样子我们就安装好了,你如果出现了报错的话说明你没有切换到管理员账号

sudo -i  #输入密码切换到root管理员账户

然后输入命令进行界面启动

lanyuncodingui

image.png
这里他提示我们界面运行在http://localhost:3700/
首次运行我们需要进行账户的创建操作
image.png
输入账号密码就能进行登录了
image.png
进入到可视化界面的首页,他提醒我们进行项目文件夹的选择
image.png
这里我们可以看到历史聊天的记录
image.png

仔细看还能发现这里可以进行终端命令的输入

image.png
还能进行git仓库的链接,更好的管理文件资源
image.png
终端文件同样也是可视化操作的
image.png
左下角设置界面里面可以进行规则以及MCP的设置
image.png
并且我们还能进行api的设置,可以设置其他的模型
image.png
这个k2模型不管是代码还是写作生成都是很强势的
image.png

总结

本教程的核心贡献在于,利用WSL2技术成功地将官方不支持Windows的Claude Code带到了广大的Windows平台,彻底解决了跨平台兼容性的首要难题。我们通过详尽的步骤,确保了开发者能够顺利地在WSL2环境中完成所有基础环境的搭建与配置。

此基础上,蓝耘lanyuncodingui的引入是提升整个方案实用性的关键。它将原本完全基于命令行的操作流程,转变为一个高效且易于管理的图形化应用,具体体现在以下几个方面:

  • 简化的配置管理:用户不再需要手动编辑配置文件或执行source命令来加载环境变量。lanyuncodingui提供了清晰的设置界面,用于直接输入和修改API密钥、切换AI模型,这降低了配置错误的可能性。

  • 高效的文件操作:它提供了可视化的文件目录树和内置编辑器,用户可以通过图形界面直接进行文件的创建、查看、修改和删除,无需依赖ls、vim等Linux命令,显著提高了文件管理的效率。

  • 集成化的工作环境:该界面将AI对话、历史记录、Git版本控制以及一个功能完整的终端整合到单一窗口中。这种设计减少了在不同应用程序之间切换的需要,使开发工作流更加连贯。

综上所述,lanyuncodingui并非一个简单的图形前端,而是一个功能性的集成开发工具。它通过提供一个结构化、可视化的操作环境,极大地降低了Claude Code的使用难度。它免除了开发者记忆和输入大量命令的负担,使其能够将精力完全集中于代码开发任务本身。因此,lanyuncodingui的运用,使得在Windows上使用Claude Code成为一个真正高效、可靠的技术方案。

蓝耘平台目前的MaaS 特价/折扣资源包活动和“周周抢免费无门槛代金券”活动都是在线的,感兴趣的赶紧来体验吧
蓝耘

http://www.dtcms.com/a/339357.html

相关文章:

  • 差速转向机器人研发:创新驱动的未来移动技术探索
  • 子网掩码(拓)
  • 汇编语言学习2---GNU Debugger (GDB)
  • bypass webshell--Trait
  • canopen 初体验
  • 【qml-4】qml与c++交互(类型多例)
  • 配置nginx以支持http3
  • rabbitmq发送的延迟消息时间过长就立即消费了
  • Maven的三种项目打包方式——pom,jar,war的区别
  • 微算法科技(NASDAQ: MLGO)研究利用PBFT中的动态视图变换机制,实现区块链系统高效运转
  • 股指本周想法
  • 区块链 + 域名Web3时代域名投资的新风口(下)
  • 使用 Docker 安装长安链管理平台 + 部署长安链
  • DL00291-联邦学习以去中心化锂离子电池健康预测模型完整实现
  • Transformer实战(13)——微调Transformer语言模型用于文本分类
  • 操作系统:多线程、进程管理、内存分配、任务调度等
  • Gemini CLI 详细操作手册
  • ECC升级S4,AVL自定义GUI 状态无法显示全选和取消全选按钮
  • Matplotlib数据可视化实战:Matplotlib基础与实践-快速上手数据可视化
  • 学习嵌入式的第二十一天——数据结构——链表
  • 08.19总结
  • 豆包1.5轻量版 vs Gemini 2.5闪存版:生成5000字深度文章,哪个模型更合适?
  • 玳瑁的嵌入式日记D20-08019(数据结构)
  • audio接口的技术发展
  • Java技术总监的成长之路(技术干货分享)
  • 昆仑万维SkyWork AI技术发布周:多模态模型的全面突破
  • 记一次 .NET 某自动化智能制造软件 卡死分析
  • 一条 SQL 语句在 MySQL中的执行过程。
  • Python网络爬虫全栈教程 – 从基础到实战
  • 【INOUT端口】