Linux AI 开发环境搭建实录
一、 动机
Windows PowerShell 对 LLM + Agent 的工具调用(Function Calling)和上下文理解并不友好。Unix 标准工具链(grep、awk、sed)的结构化输出更容易被 Agent 调度。因此,选择在 Linux 环境下运行 AI 编程助手。
二、 环境选择:WSL 失败与 Hyper-V 替代
首选 WSL。在 PowerShell 执行 wsl --install -d Ubuntu-20.04 时报错:0x80072ee7。该错误指代网络连接问题,无法从微软服务器下载镜像。
尝试无果后,改用 Hyper-V 管理器进行全虚拟化安装。带来的副作用是:资源占用增加,且宿主机与虚拟机文件隔离。
三、 跨系统文件共享:SMB 挂载
为解决 Hyper-V 文件隔离,需将 Windows 代码目录挂载至 Linux。
手动执行 sudo mount -t cifs //192.178.30.80/Products /mnt/smb_w1351 报错。经排查,挂载必须明确以下参数:
vers=3.0:Windows 10/11 默认禁用 SMBv1。uid=1000:确保挂载文件由当前 Linux 用户读写。guest:对应 Windows 端的无密码共享。
写入 /etc/fstab 实现自动挂载:
bash
//192.178.30.80/Products /mnt/smb_w1351 cifs guest,uid=1000,iocharset=utf8,vers=3.0,_netdev,nofail 0 0
//192.178.30.80/W1351 /mnt/smb_w1351_mobile cifs guest,uid=1000,iocharset=utf8,vers=3.0,_netdev,nofail 0 0
执行 sudo mount -a 验证。读取 Windows 下的 .desc 文件出现 GBK 乱码,使用 iconv -f GBK -t UTF-8 转码。
四、 Node.js 安装
不使用 apt 安装 Node.js,避免版本过旧及依赖冲突。直接下载官方二进制包部署至 /opt。
bash
wget https://nodejs.org/dist/v24.21.0/node-v24.21.0-linux-x64.tar.xz
tar xvf node-v24.21.0-linux-x64.tar.xz
mv node-v24.21.0-linux-x64 /opt/node
创建 sudo nano /etc/profile.d/node.sh:
bash
export PATH=/opt/node/bin:$PATH
执行 source /etc/profile.d/node.sh 生效。此方案版本切换只需替换 /opt/node 目录,环境隔离。
五、 OpenCode 实战
bash
curl -fsSL https://opencode.ai/install | bash
运行环境:DeepSeek V4 Flash 模型。
工作目录:/mnt/smb_w1351/Client。
任务:重构 mock/framework.lua,移除硬编码的 MAHJONG_PLAY_NAME_1,改为从配置文件读取。
lua
-- 修改前
if szText ~= nil then return szText end
-- 修改后
GetString = GetStringEx
当前环境限制:LSPs 处于 disabled 状态,模型依赖文件读取和上下文分析。
六、 SSH 终端与图片交互
通过 SSH 链接 Linux,终端操作与本地 Windows 终端一致。
痛点:CLI 环境无法直接粘贴图片。
方案:将截图存至虚拟机路径,告知模型路径让其自行读取。此方案仅适用于原生多模态模型(如 GPT-4o、Claude 3.5 Sonnet)。