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

Ubuntu 18.04仓库的InRelease段是否为必填项?

解答:Freight仓库未生成InRelease及Ubuntu 18.04签名报错问题

先直接回应你的两个核心疑问:

InRelease是否为必填项?

对于Ubuntu 18.04来说,InRelease并非严格意义上的强制文件,但缺少它会触发安全验证失败,进而导致apt无法正常识别并使用你的仓库。

InRelease是仓库Release文件的明文签名版本,和Release.gpg(Release文件的二进制签名)配合工作,用于apt验证仓库内容的完整性与真实性。Ubuntu 18.04的apt客户端默认会优先尝试读取InRelease,如果找不到,会退而尝试Release.gpg;但如果两者都缺失,apt就会判定仓库未签名,直接拒绝信任该仓库——这就是你遇到The repository 'http://[our_repo]/Debian/apt-repo bionic InRelease' is not signed.报错的原因,同时也会导致无法搜索到仓库内的软件包。

解决方法:配置Freight生成签名文件

问题的核心是Freight默认未启用GPG签名,所以不会自动生成InRelease和签名文件。你可以按以下步骤配置:

  1. 生成GPG密钥对(如果还没有的话)
    在运行Freight的服务器上执行:

    gpg --gen-key
    

    按照终端提示完成密钥生成流程,记住生成的密钥ID(通常是输出内容里最后8位的字符串)。

  2. 配置Freight启用签名
    编辑Freight的主配置文件(默认路径为/etc/freight.conf),添加或修改以下行:

    GPG_KEY=你的密钥ID
    

    比如你的密钥ID是87654321,就写GPG_KEY=87654321。

  3. 重新生成仓库内容
    执行以下命令让Freight重新构建仓库并生成签名文件:

    freight cache --verbose
    freight update
    
  4. 验证文件生成
    检查你的仓库根目录(/Debian/apt-repo)下是否出现了InRelease、Release和Release.gpg三个文件,出现即说明签名配置生效。

额外排查点

  • 确保Ubuntu 18.04机器上的sources.list配置正确,比如你的仓库条目应该是:
    deb http://[our_repo]/Debian/apt-repo bionic main
    
    根据你的包所在组件,可能需要追加contrib或non-free。
  • 检查仓库服务器的web权限:确保Nginx/Apache等web服务器能读取仓库目录下的所有文件,包括新生成的签名文件。
  • 确认GPG密钥的权限:如果Freight是以系统用户身份运行的,要确保该用户能访问你的GPG私钥(可以把密钥导入到系统用户的GPG密钥环中)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:04:23