.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はそれをサポートしていません。

--[なし-]均一圧縮

同じ圧縮パラメータを指定すると、すべてのアーカイブメンバー(つまり、dpkg 1.17.6以降のcontrol.tarとdata.tar)に適用されます。それ以外の場合は、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

見続けてください。

関連情報