Linux AI 开发环境搭建实录

Linux AI 开发环境搭建实录

一、 动机

Windows PowerShell 对 LLM + Agent 的工具调用(Function Calling)和上下文理解并不友好。Unix 标准工具链(grepawksed)的结构化输出更容易被 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)。

相关推荐
itCatface1 小时前
Linux离线部署Dify+Vllm(Qwen2.5-7b)
docker·ai·dify
七牛云行业应用2 小时前
最新!MiniMax Code CLI 开源:一条命令安装,支持自带模型
ai·agent·ai编程
看浪的路人2 小时前
第2讲:分布式追踪(Trace)——让请求在全链路中可见
agent
高亦真2 小时前
今天是学习嵌入式的第39天
linux·学习·算法
AR-26710-2 小时前
Linux Day8——FHS文件系统层次
linux
happy_king_zi2 小时前
Milvus 生产环境部署,优化,日常维护中遇到的问题
llm·milvus
qq_297670873 小时前
Ubuntu 打开系统应用老弹密码?三步彻底关闭免密
linux
杨云龙UP3 小时前
DB2 HADR 主备切换实战:SQL1639N 认证问题、备库只读与双向 Takeover
linux·运维·数据库·db2·主备切换·角色互换