Open1

Qt Installer 作成

yonishiyonishi

0. 前提環境

追加であると良いもの(Qt Creator ビルド用)
llvm, clang, libclang-dev(C/C++ 補完や解析を使うなら推奨。無くても最小構成でビルドは可能)
doxygen(ドキュメント生成を無効にするなら不要)

例:sudo apt install -y clang llvm-dev libclang-dev
使わない場合は後述の CMake オプションで無効化します。


1. Qt Installer Framework (スタンドアロン) を導入

  1. ダウンロード

    # 例: Linux x86-64
    wget https://download.qt.io/official_releases/qt-installer-framework/4.8.1/QtInstallerFramework-linux-x64-4.8.1.run
    

    他 OS 用は同ディレクトリに並んでいます(*.exe, *.dmg など)。([download.qt.io][2])

  2. 実行属性を付与して起動

    chmod +x QtInstallerFramework-linux-x64-4.8.1.run
    ./QtInstallerFramework-linux-x64-4.8.1.run
    

    GUI ウィザードで展開先(例 /opt/QtIFW-4.8.1)を指定して完了。

  3. 動作確認

    /opt/QtIFW-4.8.1/bin/binarycreator --version   # → 4.8.1 と出れば OK
    

    以降このパスをそのまま使います(PATH に追加しても可)。


2. Qt 6.8.3 をビルドして“ステージング”に配置

# ソースを展開
tar -xf qt-everywhere-src-6.8.3.tar.xz
mkdir qt6.8.3-build && cd qt6.8.3-build

# Qt 独自 configure (CMake ラッパ) でセットアップ
../qt-everywhere-src-6.8.3/configure \
  -qt-pcre \
  -prefix /opt/Qt/6.8.3 \
  -release -opensource -confirm-license \
  -nomake tests -nomake examples \
  -skip qtwebengine                # 不要なら除外
cmake --build . --parallel $(nproc)
sudo cmake --install .

ここまでで /opt/Qt/6.8.3 が出来上がります。


2.5. Qt Creator 17.0.2 をビルドして配置

# 上位ディレクトリに戻る
cd ..

# ソース展開
tar -xf qt-creator-opensource-src-17.0.2.tar.xz
mkdir qtcreator-17.0.2-build && cd qtcreator-17.0.2-build

# Qt のパスを CMake に教える(CMAKE_PREFIX_PATH)
cmake ../qt-creator-opensource-src-17.0.2 \
  -G Ninja \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_INSTALL_PREFIX=/opt/Qt/Tools/QtCreator \
  -DCMAKE_PREFIX_PATH=/opt/Qt/6.8.3 \
  -DBUILD_WITH_QT6=ON \
  -DWITH_QT_CREATOR_FEEDBACK_PLUGIN=OFF \
  -DWITH_DOCS=OFF
  # (任意)libclang系を無効化したい場合は下記も
  # -DWITH_CLANG=OFF

ninja -j"$(nproc)"
sudo ninja install

動作確認(ビルド後のローカル環境で)

/opt/Qt/Tools/QtCreator/bin/qtcreator --version
# 17.0.2 が出ればOK

C/C++ のコード補完などを強化したい場合は -DWITH_CLANG=ON と必要な libclang を用意してください。


3. IFW の packages/ ツリーを作る

my-installer/
├─ config/
│  └─ config.xml
└─ packages/
   ├─ org.qt.qt6.8.3/
   │  ├─ meta/
   │  │  └─ package.xml
   │  └─ data/
   └─ org.qt.qtcreator/
      ├─ meta/
      │  └─ package.xml
      └─ data/

3-1. Qt/Qt Creator をコピー

# Qt 6.8.3
mkdir -p my-installer/packages/org.qt.qt6.8.3/data/6.8.3
sudo rsync -a /opt/Qt/6.8.3/ my-installer/packages/org.qt.qt6.8.3/data/6.8.3/

# Qt Creator 17.0.2
mkdir -p my-installer/packages/org.qt.qtcreator/data/Tools/QtCreator
sudo rsync -a /opt/Qt/Tools/QtCreator/ my-installer/packages/org.qt.qtcreator/data/Tools/QtCreator/

rsync -a を使うと実行ビットやシンボリックリンクも保たれます。

3-2. package.xml(Qt 本体)

<?xml version="1.0"?>
<Package>
  <DisplayName>Qt 6.8.3 Desktop (x86-64)</DisplayName>
  <Description>ローカルビルド版 Qt 6.8.3</Description>
  <Version>6.8.3-1</Version>
  <ReleaseDate>2025-06-23</ReleaseDate>
  <Default>true</Default>
  <License>LGPL-3.0</License>
</Package>

3-3. package.xmlQt Creator

my-installer/packages/org.qt.qtcreator/meta/package.xml

<?xml version="1.0"?>
<Package>
  <DisplayName>Qt Creator 17.0.2</DisplayName>
  <Description>Qt 公式 IDE(ローカルビルド)</Description>
  <Version>17.0.2-1</Version>
  <ReleaseDate>2025-10-06</ReleaseDate>
  <Default>true</Default>
  <Licenses>
    <License name="GPL-3.0 notice" file="LICENSE.txt"/>
  </Licenses>
  <Dependencies>org.qt.qt6.8.3</Dependencies>
</Package>

Dependencies により、Qt 本体が先に導入されます。
Defaulttrue にしてあるので、デフォルトで Qt Creator も選択されます。
LICENSE.txt は次節で作成します。


3-3-1. ライセンスファイル配置

Qt Installer Framework は <License file="..."> で指定されたファイルを実際に同梱・表示します。
このため、LICENSE.txtmeta/ フォルダに配置します。

# Qt Creator パッケージの meta にライセンスを作成
mkdir -p my-installer/packages/org.qt.qtcreator/meta
cat > my-installer/packages/org.qt.qtcreator/meta/LICENSE.txt <<'EOF'
Qt Creator 17.0.2 — License notice
This package redistributes Qt Creator built from source.
Qt Creator is available under GPLv3 (and commercial terms).
See https://www.qt.io/licensing and the upstream source tree for
full license texts and third-party notices.
EOF

実際の配布時には、LICENSE.txt に Qt Creator ソース中の
LICENSE.GPL3, LICENSE.LGPL3, ThirdPartySoftware.txt 等の内容を
適宜統合しておくとより正確です。
最低限このファイルが存在すれば binarycreator
「Cannot find any license matching」エラーは解消します。


3-4. config.xmlTargetDir を /opt/Qt に変更

<?xml version="1.0"?>
<Installer>
  <Name>Qt 6.8.3 + Qt Creator オフライン</Name>
  <Version>1.0.0</Version>
  <Title>Qt 6.8.3/Qt Creator オフラインインストーラ</Title>
  <Publisher>Your Org</Publisher>
  <StartMenuDir>Qt 6.8.3</StartMenuDir>
  <TargetDir>/opt/Qt</TargetDir>
</Installer>

これで、Qt は /opt/Qt/6.8.3、Qt Creator は /opt/Qt/Tools/QtCreator に入ります。


4. binarycreator でオフラインインストーラ生成

/opt/QtIFW-4.8.1/bin/binarycreator \
  --offline-only \
  -c my-installer/config/config.xml \
  -p my-installer/packages \
  -t /opt/QtIFW-4.8.1/bin/installerbase \
  qt-6.8.3-with-qtcreator-offline.run

これで LICENSE.txt の不在エラーが出なくなり、
Qt 6.8.3 と Qt Creator 17.0.2 を同梱したオフラインインストーラが生成されます。


5. テスト(Qt + Qt Creator)

chmod +x qt-6.8.3-with-qtcreator-offline.run
./qt-6.8.3-with-qtcreator-offline.run

インストール後の動作確認

/opt/Qt/6.8.3/bin/qmake -v          # Qt 側の確認(存在すればOK)
/opt/Qt/Tools/QtCreator/bin/qtcreator --version

(任意)PATH に追加
~/.bashrc などに追記:

export PATH=/opt/Qt/6.8.3/bin:/opt/Qt/Tools/QtCreator/bin:$PATH

6. よくある質問(Qt Creator 追加分)

症状 対処
qtcreator: command not found PATH に /opt/Qt/Tools/QtCreator/bin を追加するか、/usr/local/bin/qtcreator へシンボリックリンクを作成(root権限)。
C/C++ 補完が弱い libclang 連携を有効化してビルド(-DWITH_CLANG=ONlibclang-dev を導入)。
ビルドで LLVM/Clang が見つからない いったん -DWITH_CLANG=OFF で最小構成ビルドにし、後で再ビルド。
Wayland セッションで起動に難がある QT_QPA_PLATFORM=xcb で起動して挙動比較。

参考メモ

  • IFW では 1 つのインストーラに複数パッケージを同梱できます。本手順では org.qt.qt6.8.3org.qt.qtcreator を同時収録。
  • 将来、Qt Creator のみ更新したい場合は org.qt.qtcreatorVersiondata/ を差し替え、同じ config.xml で再生成すれば OK です。