Bintray 上的 Debian 存储库多个错误和意外行为 [英] Debian repository on Bintray multiple errors and unexpected behavior

查看:26
本文介绍了Bintray 上的 Debian 存储库多个错误和意外行为的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm new to debian uploading, so I'm willing to believe I'm just doing something wrong. However, I had it working "as expected", but now am experiencing "strange behavior" and some errors when uploading/downloading. I spent a whole day and I think I've narrowed down some of the symptoms:

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

NOTE: All my repositories are created with the Automatic Layout. I was wondering if

第一

下面的存储库上周正常运行,但本周当我上传 i386 的包时,i386 的包"文件不再正确更新:

The repo below was working normally last week, but this week the "Packages" file for i386 is no longer getting updated properly when I upload a package for 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 上传模块不正确地上传了一些文件并破坏了存储库.

If you look at the "Packages" file for amd64 and compare it to i386, the package named "changelog" was uploaded yesterday and it is only referenced in the "Packages" file for amd64. This is odd because I uploaded the i386 package and the amd64 package together using the Bintray UI, and both .deb files exist in the correct folder and appear correctly in the UI. Note: the problem began when I started publishing to the repository from Travis CI, so I thought it might be possible that the TravisCI upload module uploaded some files improperly and broke the repository.

第二个

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

Since I started testing, no matter what I do, I can't create a debian repo where the /dists directory is generated, which also means there's no "Releases" subfolder. This is a problem because apt-get update throws an error saying the repository "does not have a Release file", and fails to find any packages in that repo. Again, my main deb repo "public-deb" has the /dists/unstable/Releases structure as it should, but none of my new repos get it.

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

我想也许这些目录是在包上传后才创建的,但我现在尝试从 CURL、UI 和使用 travis 的 Bintray 提供程序上传包,在这些情况下都没有创建 diss 目录.

I thought perhaps those directories are only created after packages are uploaded, but I've now tried uploading packages from CURL, the UI, and using travis's Bintray provider, and under none of these circumstances is the dists directory created.

第三

我已尝试按照本教程以及其他教程进行操作.当前,使用 CURL 上传失败并显示以下错误:

I've tried following this tutorial, as well as others. Currently, the upload with CURL fails with the error below:

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 命令:

Here is my curl command for review:

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 文件的链接:

Here is a link to the travis file I was using to push the .deb file up from travis:

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

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

Here is the corresponding bintray descriptor file:

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

终于

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

Through googling, I also found this person having a similar error, I thought perhaps they were related:

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

推荐答案

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

In order to create Debian metadata (Release and Package files under /dist) on an empty repository you'll need to use the create repository REST API.
see Debian repository reference.

您可以使用 REST API重新计算您的元数据,它会更新您的PackagesRelease 文件.
注意:如果您想对文件进行签名(使用 GPG),您应该提供密钥或密码

You can re-calculate your metadata using REST API, it will update your Packages and Release files.
NOTE: In case you want to sign your files (using GPG) you should provide key or passphrase

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

I would contact Bintray support team on your THIRD issue.

这篇关于Bintray 上的 Debian 存储库多个错误和意外行为的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆