问题
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
FIRST
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/
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.
SECOND
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.
Example: https://dl.bintray.com/solvingj/public-deb-test/
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.
THIRD
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"}
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
Additional
Here is a link to the travis file I was using to push the .deb file up from travis:
https://github.com/solvingJ/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
Finally
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
回答1:
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.
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
I would contact Bintray support team on your THIRD issue.
来源:https://stackoverflow.com/questions/44991329/debian-repository-on-bintray-multiple-errors-and-unexpected-behavior