DeepSeek Harness踩了 5 个官方文档不会提的坑

103 阅读3分钟

在 Android 手机上跑 DeepSeek Harness,我踩了 5 个官方文档不会提的坑

别人写「如何安装」,我写「装完会死在哪、怎么救」。

在 Android 手机 + Termux + proot 里把 DeepSeek Harness(DSH)当随身终端, 踩了 5 个 Google 都搜不到的坑,每个都附根因和修法。

dsh_infographic.png

我为什么写这个

DeepSeek Harness(DSH)官方文档默认环境是「一台正经的 Linux 服务器」。 我偏要在一台 Android 手机上把它跑起来当随身终端,于是踩了一堆官方文档 不会提、Google 也搜不到的坑。

这篇把 5 个坑 + 根因 + 修法原样记录。如果你也在 Android/Termux/proot 里 折腾 DSH,能帮你省大半天。

坑 1:FUSE 文件系统禁止硬链接 link(),session 落盘失败

现象:第一次「保存会话到磁盘」就报错,session 永远写不进去。

根因:Android 的 /sdcard 走 FUSE 文件系统,FUSE 不支持硬链接 系统调用 link()。DSH 落盘 session 的代码用了 link() 做「原子写」, 在 ext4 上没问题,一碰 FUSE 就挂。

修法:把所有 link() 换成 rename()(rename 在 FUSE 上支持,且同样 能原子替换):

link(tmpfile, finalfile)   # FUSE 上失败
rename(tmpfile, finalfile) # FUSE 上正常

坑 2:dsh web 启动假死,DSH_HOME 不设就卡住

现象:进程「起来了」但界面死等;netstat 读不到端口,以为没起; 结果 curl 一测其实是通的。

根因:web 模式启动会读写 DSH_HOME 指向的目录,没设置时它在不存在的 默认路径上兜圈子,表现为「起了但没完全起」。

修法

export DSH_HOME=/data/data/com.termux/files/home/.dsh
dsh web

坑 3:CLI 的三个行为坑

3.1 --help 会阻塞:本该秒出帮助,某些版本却卡住不返回,直接 Ctrl+C。

3.2 headless 不支持连续对话:它不是一问一答的 REPL,每轮都要重新发起, 想连续对话得靠外部包装脚本维持上下文。

3.3 --resume 参数位置敏感:放错位置不生效或报错,正确姿势:

dsh <subcommand> --resume <session_id>   # 靠后、紧跟子命令

坑 4:web 模式在手机上基本无解,走 CLI 才是正道

sharp 图像库性能极差,页面动不动卡死。在 Android/proot 这种非原生环境, 放弃 web、走 CLI:轻量、无需图像处理、还能嵌进脚本配合语音输入。

坑 5:配图别用 AI 文生图,中文必乱码

AI 文生图画中文,出来全是形近乱码「天书」。改用 HTML/SVG 代码排版渲染 成 PNG,文字 100% 准确。这也是技术文章配图最专业的做法。

顺带:DSH 的 CLI 没有 plugin 子命令,别按插件那套调用。

总结

根因修法
1FUSE 不支持 link()换成 rename()
2DSH_HOME 未设导致 web 假死export DSH_HOME
3CLI 三个行为坑headless 用包装脚本
4web 在手机无解走 CLI
5AI 文生图中文乱码HTML/SVG 渲染

📌 完整仓库 + SVG 源文件见 GitHub:a13418414529/dsh-android-guide