-
はじめに
Qt Creator (C++/Qt6) で作成した画像ビューア「PhotoMT」を Linux 向けに配布しようとした際、linuxdeployqt で直面したエラーとその解決策についてまとめます。 -
直面した問題:The host system is too new.
最新の Ubuntu 環境(glibc 2.35以上)で linuxdeployqt を実行すると、以下のエラーが発生します。
Plaintext
ERROR: The host system is too new.
Please run on a system with a glibc version no newer than ... Ubuntu Jammy Jellyfish.
これは古いディストリビューションとの互換性を保つための仕様ですが、個人の開発環境で手軽に AppImage を作りたい場合には障壁となります。
- 解決策:強制フラグと qmake パスの指定
以下の3つのポイントを押さえることで、最新環境でも AppImage を生成できました。
① 非推奨オプションの利用
-unsupported-allow-new-glibc フラグを付与することで、チェックを回避します。
② ビルドフォルダでの実行
ソースフォルダではなく、バイナリが出力された build/.../Release フォルダへ移動して実行する必要があります。
③ qmake のフルパス指定
環境によっては qmake が見つからないため、-qmake=$(which qmake) または直接パスを指定します。
- 実行コマンド
最終的に成功したコマンドがこちらです。
Bash
ビルドフォルダへ移動
cd ~/PhotoMT/build/unknown-Release/
ツールとダミーアイコンの準備
cp ~/PhotoMT/linuxdeployqt .
touch PhotoMT.png # アイコンがない場合の回避策
実行
VERSION=1.0 ./linuxdeployqt PhotoMT -appimage
-unsupported-allow-new-glibc
-qmake=/usr/lib/qt6/bin/qmake
5. 配布について
生成された .AppImage ファイルは、さくらのレンタルサーバなどの一般的なWebサーバに置くだけで配布可能です。
実行権限(chmod +x)を付与するだけで、他の Linux 環境でも動作することを確認しました。
深夜のデバッグ作業でしたが、無事に AppImage 化に成功しました。
同じエラーで足止めを食っている方の参考になれば幸いです。