そのため、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