.deb 包:使用 Ubuntu 18.04 构建包时无法上传到 Bintray

.deb 包:使用 Ubuntu 18.04 构建包时无法上传到 Bintray

所以我试图将我在运行 18.04 的机器上编译和构建的包上传到 Bintray。

这不起作用。我收到这样的消息:

Unable to upload files: Could not extract metadata for artifact 'pool/m/myapp/myapp_1.0~bionic1_amd64.deb', content might be malformed.

我尝试安装该软件包,但没有出现任何问题。我还尝试使用以下方式获取包裹信息:

dpkg-deb --build myapp_1.0~bionic1_amd64.deb

这也没有问题。

这是我用来构建包的命令:

dpkg-deb --build myapp_1.0~bionic1_amd64

如果我使用 16.04(从 LiveDVD 启动)构建软件包并运行相同的命令,我可以毫无问题地上传 .deb。

我尝试过其他 1 个存储库(不记得确切的站点,但它以“gem”开头),但出现了相同的错误。

关于我可能做错了什么以及如何解决它有什么想法吗?

感谢

答案1

我不确定,但 Ubuntu 18.04 使用 dpkg 1.19.0,它使用默认的统一压缩。也许 Travis CI 不支持它。

--[无-]均匀压缩

指定相同的压缩参数应用于所有存档成员(即control.tar 和data.tar;自dpkg 1.17.6 起)。否则,只有 data.tar 成员才会使用这些参数。唯一允许统一使用的受支持压缩类型是 none、gzip 和 xz。 --no-uniform-compression 选项禁用统一压缩(自 dpkg 1.19.0 起)。统一压缩是默认值(自 dpkg 1.19.0 起)。

答案2

区别在于的确在压缩部分使用的control包:

$ ar t example.deb # 16.04
debian-binary
control.tar.gz
data.tar.xz

$ ar t example.deb # 18.04
debian-binary
control.tar.xz
data.tar.xz

Bintray 仍然不支持在 Ubuntu 18.04 上创建的包。

可以通过指定选项来解决此问题dh_builddebdebian/rules文件中:

override_dh_builddeb:
        dh_builddeb -- --no-uniform-compression

答案3

bintray 会欢迎这个功能吗?

我对他们进行了 ping: https://github.com/travis-ci/travis-ci/issues/9656

敬请关注

相关内容