DeepSeek Harness 使用 npx @deepseek-ai/dsh web 安装报错
正文
首先,在万众期待中,deepseek harness 开发者预览版终于发布了。
官网地址:https://www.deepseek.com/harness/
github地址:https://github.com/deepseek-ai/deepseek-harness
我在ubuntu22和debian13系统,使用npx安装报错:
~$ npx @deepseek-ai/dsh web
Need to install the following packages:
@deepseek-ai/dsh@0.1.0-rc.6
Ok to proceed? (y) y
npm warn deprecated node-domexception@1.0.0: Use your platform's native DOMException instead
npm notice run npx
npm notice run 'dsh' web
file:///home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/@deepseek-ai/dsh-app-boot/lib/index.js:1186
throw new Error(`${binName}: ${stage}: ${detail}${stack}`, { cause });
^
Error: dsh: plugin tree failed to load: failed to apply loader entry include (cordis:include): failed to import loader entry subprocess (@deepseek-ai/dsh-subprocess-local): Failed to load native module: pty.node, checked: build/Release, build/Debug, prebuilds/linux-x64: Error: Cannot find module './prebuilds/linux-x64//pty.node'
Require stack:
- /home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/node-pty/lib/utils.js
- /home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/node-pty/lib/index.js
Error: Failed to load native module: pty.node, checked: build/Release, build/Debug, prebuilds/linux-x64: Error: Cannot find module './prebuilds/linux-x64//pty.node'
Require stack:
- /home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/node-pty/lib/utils.js
- /home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/node-pty/lib/index.js
at Object.loadNativeModule (/home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/node-pty/lib/utils.js:36:11)
at Object.<anonymous> (/home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/node-pty/lib/unixTerminal.js:27:22)
at Module._compile (node:internal/modules/cjs/loader:1830:14)
at Object..js (node:internal/modules/cjs/loader:1961:10)
at Module.load (node:internal/modules/cjs/loader:1553:32)
at Module._load (node:internal/modules/cjs/loader:1355:12)
at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
at Module.require (node:internal/modules/cjs/loader:1576:12)
at require (node:internal/modules/helpers:153:16)
at Object.<anonymous> (/home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/node-pty/lib/index.js:15:20)
at boot (file:///home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/@deepseek-ai/dsh-app-boot/lib/index.js:1186:9)
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
at async runProfile (file:///home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/@deepseek-ai/dsh/lib/profile-boot-DG5t9aNs.js:247:14)
at async file:///home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/@deepseek-ai/dsh/lib/bin.js:133:3 {
[cause]: Error: failed to apply loader entry include (cordis:include): failed to import loader entry subprocess (@deepseek-ai/dsh-subprocess-local): Failed to load native module: pty.node, checked: build/Release, build/Debug, prebuilds/linux-x64: Error: Cannot find module './prebuilds/linux-x64//pty.node'
Require stack:
- /home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/node-pty/lib/utils.js
- /home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/node-pty/lib/index.js
at updateError (file:///home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/@deepseek-ai/cordis-plugin-loader/lib/index.js:299:9)
at Entry._init (file:///home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/@deepseek-ai/cordis-plugin-loader/lib/index.js:519:10)
at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
[cause]: Error: failed to import loader entry subprocess (@deepseek-ai/dsh-subprocess-local): Failed to load native module: pty.node, checked: build/Release, build/Debug, prebuilds/linux-x64: Error: Cannot find module './prebuilds/linux-x64//pty.node'
Require stack:
- /home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/node-pty/lib/utils.js
- /home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/node-pty/lib/index.js
at updateError (file:///home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/@deepseek-ai/cordis-plugin-loader/lib/index.js:299:9)
at Entry._init (file:///home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/@deepseek-ai/cordis-plugin-loader/lib/index.js:514:10)
at async Entry.init (file:///home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/@deepseek-ai/cordis-plugin-loader/lib/index.js:495:4)
at async Entry.update (file:///home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/@deepseek-ai/cordis-plugin-loader/lib/index.js:416:37)
at async EntryGroup.create (file:///home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/@deepseek-ai/cordis-plugin-loader/lib/index.js:55:4)
at async Promise.allSettled (index 22)
at async EntryGroup.update (file:///home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/@deepseek-ai/cordis-plugin-loader/lib/index.js:87:21)
at async Include._apply (file:///home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/@deepseek-ai/dsh-app-boot/lib/index.js:238:3) {
[cause]: Error: Failed to load native module: pty.node, checked: build/Release, build/Debug, prebuilds/linux-x64: Error: Cannot find module './prebuilds/linux-x64//pty.node'
Require stack:
- /home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/node-pty/lib/utils.js
- /home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/node-pty/lib/index.js
at Object.loadNativeModule (/home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/node-pty/lib/utils.js:36:11)
at Object.<anonymous> (/home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/node-pty/lib/unixTerminal.js:27:22)
at Module._compile (node:internal/modules/cjs/loader:1830:14)
at Object..js (node:internal/modules/cjs/loader:1961:10)
at Module.load (node:internal/modules/cjs/loader:1553:32)
at Module._load (node:internal/modules/cjs/loader:1355:12)
at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
at Module.require (node:internal/modules/cjs/loader:1576:12)
at require (node:internal/modules/helpers:153:16)
at Object.<anonymous> (/home/briansys/.npm/_npx/1e7f6d9597241db0/node_modules/node-pty/lib/index.js:15:20)
}
}
}
后来查询得知,npm 12 为了应对日益严峻的供应链安全风险,默认禁止了安装脚本的执行。这导致 node-pty 这个依赖包在安装时,其负责编译原生模块的脚本被阻止,从而无法生成必需的 pty.node 文件
解决方案:为 @deepseek-ai/dsh 单独开启脚本权限
根据 npm 官方文档,可以通过 --ignore-scripts=false 参数来临时覆盖这个安全设置。
执行以下命令重新安装:
npm install -g @deepseek-ai/dsh --ignore-scripts=false
安装完成后,执行指令检查版本, 运行web服务
$ dsh --version
0.1.0-rc.6
$ dsh web
dsh web: http://127.0.0.1:3080
接下来打开浏览器就可以访问 http://127.0.0.1:3080 页面了
配置完成deepseek token后,就可以愉快地和deepseek玩耍
dsh 的配置缓存文件目录:
~/.dsh
PS: 也可以从github下载源代码进行编译,参考官方说明:https://github.com/deepseek-ai/deepseek-harness/blob/master/README.zh.md
git clone https://github.com/deepseek-ai/deepseek-harness
cd deepseek-harness
# 如果没有pnpm,需要先安装pnpm
# npm install -g pnpm
pnpm install
pnpm run build
pnpm dsh web
附录
补充一些当前比较有意思的项目
[1]. https://github.com/awesome-dsh-plugin/awesome-dsh-plugin
[2]. https://github.com/alchaincyf/deepseek-harness-orange-book

浙公网安备 33010602011771号