【问题标题】:Debian repository on Bintray multiple errors and unexpected behaviorBintray 上的 Debian 存储库出现多个错误和意外行为
【发布时间】:2017-07-08 22:34:51
【问题描述】:

我是 debian 上传的新手,所以我愿意相信我只是做错了什么。但是,我让它“按预期”工作,但现在在上传/下载时遇到“奇怪的行为”和一些错误。我花了一整天的时间,我想我已经缩小了一些症状:

注意:我所有的存储库都是使用自动布局创建的。我想知道如果

第一

上周下面的 repo 工作正常,但本周当我为 i386 上传包时,i386 的“包”文件不再正确更新:

https://dl.bintray.com/solvingj/public-deb/dists/unstable/main/

如果您查看 amd64 的“Packages”文件并将其与 i386 进行比较,则会发现名为“changelog”的软件包是昨天上传的,它仅在 amd64 的“Packages”文件中引用。这很奇怪,因为我使用 Bintray UI 将 i386 包和 amd64 包一起上传,并且两个 .deb 文件都存在于正确的文件夹中并且在 UI 中正确显示。注意:问题是从我开始从 Travis CI 发布到存储库时开始的,所以我认为可能是 TravisCI 上传模块不正确地上传了一些文件并破坏了存储库。

第二次

自从我开始测试以来,无论我做什么,我都无法创建生成 /dists 目录的 debian repo,这也意味着没有“Releases”子文件夹。这是一个问题,因为 apt-get update 会抛出一个错误,指出存储库“没有发布文件”,并且无法在该存储库中找到任何包。同样,我的主要 deb 存储库“public-deb”具有应有的 /dists/unstable/Releases 结构,但我的新存储库都没有得到它。

示例: https://dl.bintray.com/solvingj/public-deb-test/

我认为这些目录可能只是在上传包后创建,但我现在尝试从 CURL、UI 和使用 travis 的 Bintray 提供程序上传包,在这些情况下都没有创建 dists 目录。

第三

我已尝试按照本教程以及其他教程进行操作。目前,使用 CURL 上传失败并出现以下错误:

https://blog.bintray.com/2014/12/16/hosting-debian-packages-on-bintray-rocks/

{"message":"Unable to upload files: Debian distribution, component and architecture were not found on repo and were not specified"}

这是我的 curl 命令以供查看:

curl -X PUT -T go-github-release-test-amd64-0.0.0.1.deb -usolvingj:mybintraykey https://api.bintray.com/content/solvingj/public-deb-test/go-github-release-test/0.0.1/pool/main/go-github-release-test/go-github-release-test-amd64-0.0.1.deb;deb_distribution=unstable;deb_component=main;deb_architecture=amd64

附加

这是我用来从 travis 推送 .deb 文件的 travis 文件的链接:

https://github.com/solvingJ/go-github-release-test/blob/master/.travis.yml

这里是对应的bintray描述符文件:

https://github.com/solvingJ/go-github-release-test/blob/master/deb-publish-data.json

终于

通过谷歌搜索,我也发现这个人有类似的错误,我想他们可能是相关的:

https://github.com/electron-userland/electron-builder/issues/1702

【问题讨论】:

    标签: debian apt bintray


    【解决方案1】:

    为了在空存储库上创建 Debian 元数据(ReleasePackage 文件在 /dist 下),您需要使用 create repository REST API。
    请参阅 Debian 存储库 参考。

    您可以使用 REST API re-calculate your metadata,它会更新您的 PackagesRelease 文件。
    注意:如果您想签署文件(使用 GPG),您应该 provide key or passphrase

    我会就您的第三个问题与 Bintray 支持团队联系。

    【讨论】:

    • 感谢您的反馈。我不知道重新计算元数据 API,很高兴知道。另外,我使用 UI 创建了我的第一个存储库,并且自动计算了元数据(我没有像你说的那样使用 REST API)。我已经联系了 Bintray 支持,谢谢。他们确实做出了回应,但尚未提供任何明确的答案。我会发布我得到的任何更新。
    • @solvingJ,你是如何解决第三个上传问题的?
    • 我没有得到 Bintray 的确认,但我认为该文章不再有效,您必须将 Debian 元数据放在标题中,如下所示:github.com/roboconf/roboconf-release-scripts/blob/… Lines 134-141
    • 尝试在卷曲#curl -X PUT -T go-github-release-test-amd64-0.0.0.1.deb -usolvingj:mybintraykey "https://api.bintray.com/content/solvingj/public-deb-test/go-github-release-test/0.0.1/pool/main/go-github-release-test/go-github-release-test-amd64-0.0.1.deb;deb_distribution=unstable;deb_component=main;deb_architecture=amd64"加引号
    猜你喜欢
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2021-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多