xpzouying/xiaohongshu-mcp · error
解压后未找到二进制 %s
Error message
解压后未找到二进制 %s
What it means
EnsureBrowser 解压成功后在缓存目录中 findBinary 找不到预期名称的二进制文件(binName):压缩包内容结构与预期不符,或解压产物路径与查找规则不匹配,属打包/版本错位问题。
Source
Thrown at browser/browser_download.go:122
return "", fmt.Errorf("下载内置浏览器失败: %w\n"+
" 本项目只用内置浏览器,缺它不继续。请检查网络后重试;\n"+
" 离线环境可手动下载 %s,解压到 %s 后重启。", dlErr, browserURL(asset), cacheDir)
}
defer os.Remove(archivePath)
// 校验 SHA256(本地已成分发点,必须校验完整性)
if err := verifySHA256(archivePath, asset); err != nil {
return "", fmt.Errorf("校验失败: %w", err)
}
logrus.Infof("解压内置浏览器 ...")
if err := extractArchive(archivePath, cacheDir); err != nil {
return "", fmt.Errorf("解压失败: %w", err)
}
bin := findBinary(cacheDir, binName)
if bin == "" {
return "", fmt.Errorf("解压后未找到二进制 %s", binName)
}
logrus.Infof("内置浏览器就绪: %s", bin)
return bin, nil
}
// verifySHA256 下载同目录的 SHA256SUMS,校验 asset 的哈希。
func verifySHA256(archivePath, asset string) error {
want, err := fetchExpectedSHA(asset)
if err != nil {
return err
}
f, err := os.Open(archivePath)
if err != nil {
return err
}
defer f.Close()
h := sha256.New()
if _, err := io.Copy(h, f); err != nil {View on GitHub (pinned to 332d196854)
Solutions
- 解压后手动检查缓存目录结构,确认二进制实际名称与位置
- 更新 findBinary 的搜索逻辑以匹配新布局
- 清空缓存目录重新下载,排除旧版本残留干扰
Example fix
// before
return "", fmt.Errorf("解压后未找到二进制 %s", binName)
// after
return "", fmt.Errorf("解压后未找到二进制 %s (cache: %s)", binName, cacheDir) Defensive patterns
Strategy: validation
Validate before calling
// 升级浏览器资产后先本地解压验证产物 // tar -tf linux-x64.tar.xz | grep -E 'chrome$' 确认二进制路径
Prevention
- 上游浏览器版本升级后核对压缩包内部目录结构
- 保持 findBinary 的搜索逻辑与资产布局同步
- 缓存目录中只保留同一版本的产物,避免旧残留干扰
- 确保解压保留可执行权限(tar -p / chmod +x)
When it happens
Trigger: extractArchive 解压出的目录结构与 findBinary 搜索逻辑不匹配:资产版本更新后内部路径变化、解压多套一层目录、二进制文件名变更(如 chrome → chrome-headless-shell)。
Common situations: 上游浏览器版本升级改变了压缩包内部结构;手动放置文件时目录层级不对;解压未保留可执行位导致 findBinary 判断失败。
Related errors
- 下载内置浏览器失败: %w 本项目只用内置浏览器,缺它不继续。请检查网络后重试; 离线环境可手动下载 %s,解压
- 解压失败: %w
- 不支持的压缩格式: %s
- dmg 内未找到 .app
- 落点 (%.0f,%.0f) 在视口 %.0fx%.0f 之外
AI-assisted analysis of xpzouying/xiaohongshu-mcp@332d196854 (2026-09-05).
Data as JSON: /api/errors/0c2d82ade94afdf2.
Report an issue: GitHub.