You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为Go程序构建.deb包失败,提示找不到上游tarball

Go程序构建.deb包失败,提示找不到上游tarball

嗨,我来帮你分析下这个问题——你遇到的报错核心原因是Debian源码格式的配置和你的项目结构不匹配。

你当前用的是默认的3.0 (quilt)源码格式,这种格式是专门给「基于上游开源项目做Debian定制打包」的场景设计的:它要求必须有一个单独的上游原始代码tar包(也就是报错里的deploy_1.0.orig.tar.{bz2,gz,lzma,xz}),用来区分上游源码和你添加的Debian打包补丁。但你的项目是自己开发的Go程序,源码和debian打包目录都在同一个git仓库里,根本没有单独的上游tar包,所以打包工具就报错了。

给你两个解决办法,推荐第一个:

方法一:改用Native源码格式(适合自己开发的项目)

这是最适配你场景的方案,因为你的项目是原创的,不需要区分上游和Debian修改:

  1. 在项目根目录的debian文件夹下创建source子目录(如果没有的话):
    mkdir -p debian/source
    
  2. 在debian/source/里创建format文件,写入内容:
    echo "3.0 (native)" > debian/source/format
    
  3. 回到项目根目录,重新运行打包命令:
    dpkg-buildpackage -us -uc
    

这样就不需要单独的上游tar包了,打包工具会直接用你当前仓库里的源码来构建。

方法二:生成上游tar包(适合基于上游项目的场景)

如果你确实需要用quilt格式(比如后续要给上游提交补丁),那你需要手动生成对应的上游tar包:

  1. 先退出你的项目目录(回到~/deploy的上级目录):
    cd ..
    
  2. 用git归档来生成符合要求的tar包:
    git archive --format=tar.gz --prefix=deploy_1.0/ HEAD > deploy_1.0.orig.tar.gz
    
    这里的deploy_1.0要和你debian/control里的版本号对应(你的是1.0),格式是项目名_版本号。
  3. 回到项目目录,重新运行打包命令即可。

另外检查了下你的debian/control和debian/rules配置,都是没问题的,主要就是源码格式的问题导致的报错。

备注:内容来源于stack exchange,提问作者Arnaud F.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 12:07:37