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

构建Deb包:如何计算安装大小并解决仓库Size信息警告

解决Deb包构建中Installed-Size不匹配与仓库警告问题

方法一:用dpkg-gencontrol自动生成合规的Control信息

dpkg-gencontrol是Debian打包工具链的核心组件,能自动计算Installed-Size并生成标准的control文件,推荐用完整打包流程替代手工编写:

  1. 调整包目录结构
    新建源码包目录(比如my-package-1.0.0),将待打包的所有文件放入该目录,再在其中创建debian子目录。

  2. 编写debian目录下的基础文件

    • debian/control:填写包核心信息,无需手动写Installed-Size
      Package: my-package
      Version: 1.0.0
      Section: custom
      Priority: optional
      Architecture: arm64
      Essential: no
      Maintainer: martin
      Homepage: https://github.com/xxxx
      Description: xxxx
      Depends: net-tools, logrotate
      
    • debian/rules:打包规则脚本,赋予可执行权限chmod +x debian/rules,最简内容如下:
      #!/usr/bin/make -f
      %:
          dh $@
      
    • debian/install:指定文件安装路径,比如你的包文件在src目录,要安装到/usr/local/bin,就写:
      src/* /usr/local/bin/
      
  3. 执行打包命令
    在源码包目录(my-package-1.0.0)下运行:

    dpkg-buildpackage -rfakeroot -us -uc
    

    该命令会自动调用dpkg-gencontrol计算Installed-Size,生成符合规范的deb包,同时自动处理依赖、权限等问题。

方法二:手动修正Installed-Size并消除仓库警告

如果坚持用fakeroot dpkg-deb --build的方式,可按以下步骤处理:

  1. 准确计算Installed-Size
    Installed-Size是包内文件安装到系统后占用的磁盘空间,单位为KB(取整)。在待打包目录(比如my-package)下执行:

    du -s -k . | awk '{print $1}'
    

    将输出数值替换control文件中的Installed-Size字段。

  2. 解决仓库Size信息缺失警告
    警告中的Size指deb包本身的大小,而非Installed-Size。将deb包放入本地仓库后,重新生成仓库索引文件:
    在仓库目录下执行:

    dpkg-scanpackages . /dev/null | gzip -c > Packages.gz
    

    该命令会自动计算每个deb包的大小、MD5等信息,更新后的索引文件会消除警告。

内容的提问来源于stack exchange,提问作者martin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:06:22