所以我试图将我在运行 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_builddeb在debian/rules
文件中:
override_dh_builddeb:
dh_builddeb -- --no-uniform-compression