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

查看:117
本文介绍了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的软件包"文件并将其与i386进行比较,则昨天上传了名为"changelog"的软件包,并且仅在amd64的软件包"文件中对其进行了引用.这很奇怪,因为我使用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存储库,这也意味着没有"Releases"子文件夹.这是一个问题,因为apt-get更新会引发错误,指出存储库没有发布文件",并且无法在该存储库中找到任何软件包.同样,我的主要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提供程序上传软件包,在这些情况下都不创建dists目录.

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/解决J/go-github-release-test/blob/master/.travis.yml

以下是相应的二进制文件描述符文件:

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元数据(/dist下的ReleasePackage文件),您需要使用创建存储库 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天全站免登陆