Qt Installer Framework 使用說明
這份教程是去年翻譯的,有很多不准確或不正確的地方,請別介意。
原文鏈接 [http://doc.qt.io/qtinstallerframework/index.html](http://doc.qt.io/
qtinstallerframework/index.html)
以下offline翻譯為離線,online翻譯為聯機。widgets翻譯為小部件。
版本 2.0.3
The Qt Installer Framework提供了一套工具和實用程序用於創建桌面Qt安裝程序。支持的平台有: Linux, Microsoft
Windows, 和 OS X.
注意: 對於Qt Installer Framework中遇到的bug和錯誤可以通過Qt
Bugtracker(Qt錯誤追蹤)進行反饋。
1、Qt Installer Framework概述
Qt安裝程序框架提供了一組工具和實用程序,只需創建安裝程序一次,無需改動源碼,即可將它們部署在所有支持桌面QT的平台。 安裝程序將在運行它們的平台上具有原生外觀和感覺,支持:Linux,Microsoft Windows和OS X.
Qt安裝程序框架工具生成安裝程序,其中包含一組在安裝,更新或卸載過程中指導用戶的頁面。 您提供可安裝的內容並指定有關它的信息,例如產品和安裝程序的名稱以及許可協議的文本。
您可以通過向預定義的頁面添加窗口小部件或添加整個頁面來為用戶提供其他選項來自定義安裝程序。 您可以創建腳本以向安裝程序添加操作。
選擇安裝包類型
你可以為最終用戶提供一個離線(offline)
或聯機(online)
安裝包,或者同時支持。具體取決於您的使用情況。
兩個安裝程序都安裝了一個維護工具(maintenance tool)
,以后可用於添加,更新和刪除組件。 離線安裝程序包含所有可安裝的組件,並且在安裝期間 不需要網絡連接 。 聯機安裝程序僅安裝維護工具,然后從Web服務器上的聯機存儲庫下載和安裝組件。 因此,在線安裝程序二進制文件的大小較小,其下載時間比離線安裝程序二進制文件的大。 如果最終用戶沒有安裝所有可用的組件,則下載和運行聯機安裝程序所花費的總時間也可能短於下載和運行離線安裝程序。
最終用戶可以在初次安裝
后使用維護工具
從 服務器安裝其他組件 ,以及在服務器上發布更新后立即接收內容的自動更新。 但是,只有在離線安裝程序配置中指定存儲庫地址
或最終用戶在維護工具設置中指定存儲庫地址時,這才適用於離線安裝。
創建離線安裝程序以便用戶可以直接下載安裝軟件包在介質上,稍后在計算機上進行安裝。 例如,您還可以將安裝軟件包分發到CD-ROM或USB盤。
創建聯機安裝程序以使用戶始終安裝最新版本的內容二進制文件。
促進更新
使在線存儲庫可用於向安裝產品的最終用戶推廣更新。 提供更新的最簡單方法是重新創建存儲庫並將其上傳到Web服務器。 對於大型存儲庫,只能更新已更改的組件。
提供安裝內容
您可以啟用其他內容提供程序將組件作為附加組件添加到安裝程序。 組件提供程序必須設置包含可安裝組件的存儲庫,並將指向存儲庫的URL提供給最終用戶。 最終用戶必須在安裝程序中配置URL。 該附加組件在包管理器中可見。
2、入門指南
Qt安裝程序框架是作為Qt項目的一部分開發的。 框架本身使用Qt。 但是,它可以用於創建安裝所有類型應用程序的安裝程序,包括(但不限於)使用Qt構建的應用程序。
支持的平台
您可以使用Qt Installer Framework為桌面Qt支持的所有平台創建安裝程序。
安裝程序已在以下平台上測試:
- Microsoft Windows XP及更高版本
- Ubuntu Linux 11.10及更高版本
- OS X 10.7及更高版本
從源代碼構建
以下步驟描述如何自己構建Qt Installer Framework。 如果已下載框架的預構建(編譯)版本,則可以跳過此步驟。
最新的2.0.3 64位linux安裝包下載地址http://download.qt.io/official_releases/qt-installer-framework/2.0.3/QtInstallerFramework-linux-x64.run
支持的編譯器
Qt安裝程序框架可以使用Microsoft Visual Studio 2013、GCC 4.7、Clang 3.1及其更高版本進行編譯。
配置Qt
如果使用靜態構建Qt來構建Qt安裝程序框架,則不必提供Qt庫,這使您可以將安裝程序作為一個文件進行分發。
所需的Qt版本最低為5.5。
Windows上配置Qt
我們建議您在Windows配置Qt時使用以下選項:
configure -prefix %CD%\qtbase -release -static -static-runtime -target xp -accessibility -no-opengl -no-icu -no-sql-sqlite -no-qml-debug -nomake examples -nomake tests -skip qtactiveqt -skip qtenginio -skip qtlocation -skip qtmultimedia -skip qtserialport -skip qtquick1 -skip qtquickcontrols -skip qtscript -skip qtsensors -skip qtwebkit -skip qtwebsockets -skip qtxmlpatterns -skip qt3d
Linux上配置Qt
我們建議您在Linux配置Qt時使用以下選項:
configure -prefix $PWD/qtbase -release -static -accessibility -qt-zlib -qt-libpng -qt-libjpeg -qt-xcb -qt-pcre -qt-freetype -no-glib -no-cups -no-sql-sqlite -no-qml-debug -no-opengl -no-egl -no-xinput -no-xinput2 -no-sm -no-icu -nomake examples -nomake tests -skip qtactiveqt -skip qtenginio -skip qtlocation -skip qtmultimedia -skip qtserialport -skip qtquick1 -skip qtquickcontrols -skip qtscript -skip qtsensors -skip qtwebkit -skip qtwebsockets -skip qtxmlpatterns -skip qt3d
OS X上配置Qt
我們建議您在OS X使用以下配置選項:
configure -prefix $PWD/qtbase -release -static -accessibility -qt-zlib -qt-libpng -qt-libjpeg -no-cups -no-sql-sqlite -no-qml-debug -nomake examples -nomake tests -skip qtactiveqt -skip qtenginio -skip qtlocation -skip qtmultimedia -skip qtserialport -skip qtquick1 -skip qtquickcontrols -skip qtscript -skip qtsensors -skip qtwebkit -skip qtwebsockets -skip qtxmlpatterns -skip qt3d
設置Qt安裝程序框架
- 從http://code.qt.io/cgit/installer-framework/installer-framework.git倉庫
clone
Qt安裝框架工具源碼。 - 通過運行一個靜態編譯Qt的
qmake
來生成Makefile
,然后通過make
或nmake
進行構建。
注意: 要向Qt Installer Framework提供補丁,請遵循標准的Qt流程和指南。 欲了解更多信息,請參閱貢獻的Qt。
3、最終用戶工作流程
離線和在線安裝程序的最終用戶體驗類似。 與您的應用程序一起,安裝程序將安裝一個維護工具,該工具由程序包管理器,更新程序和卸載程序組成。 最終用戶可以使用維護工具添加,更新和刪除組件。 維護工具連接到外部存儲庫以獲取要添加或更新的組件。 您可以在配置文件中指定存儲庫,或者最終用戶可以在維護工具設置中指定它。
您可以支持以下最終用戶工作流:
初次安裝
下圖說明了安裝應用程序的默認工作流程:
本節使用在OS X上運行的應用程序安裝程序示例說明最終用戶的默認工作流程。 安裝程序在每個受支持的桌面平台上具有原生外觀,因此在Linux和Windows上運行時,它們的外觀和感覺不同。
示例文件存儲在Qt Installer Framework存儲庫中的examples\tutorial
目錄中。 您可以使用binarycreator
工具來創建應用程序安裝程序。
啟動安裝程序
當最終用戶啟動安裝程序時,將打開介紹頁面:
您可以在config.xml
配置文件中指定安裝程序的名稱和要安裝的產品。
當最終用戶選擇繼續時,將打開目標目錄
選擇頁面。
選擇目標目錄
最終用戶必須指定安裝的目標目錄。 您可以在config.xml
配置文件中指定默認值。
當最終用戶選擇繼續時,將打開組件選擇頁面。
如果該目錄已存在文件,將打開如下警告頁面:
選擇組件
組件選擇頁面列出了 可用於安裝的組件 以及每個組件的簡短描述。 最終用戶 選擇要安裝的組件 。 他們可以選擇全選以選擇所有組件,取消選擇全部可取消選擇它們,或選擇默認以恢復為默認選擇。
將可安裝的組件添加到包目錄中的data
目錄。 您可以在meta
目錄中的package.xml
文件中指定有關組件的信息。
您可以使用布爾運算符或腳本來指定是否默認選擇組件。
當最終用戶選擇繼續時,將打開許可證檢查頁面。
接受許可協議
在許可檢查頁面上,最終用戶 必須接受許可協議 的條款才能繼續安裝。
如果在package.xml文件中指定許可證文件並將文件復制到元目錄,則會顯示許可證檢查頁面。
選擇Windows程序組
在Windows上,“開始”菜單目錄選擇頁面 允許最終用戶在Windows開始菜單中選擇產品的 程序組。
您可以在config.xml
配置文件中為程序組指定 默認值 。
當最終用戶選擇下一步
時,將打開准備安裝
頁面。
安裝組件
在准備安裝頁面通知最終用戶,當用戶選擇安裝
時,安裝開始。
在安裝過程中,執行安裝頁面顯示有關安裝進度的信息。 最終用戶可以選擇“顯示詳細信息”以查看更多信息。

稍后從存儲庫安裝其余組件。 軟件包管理器是在初次安裝期間與應用程序一起安裝的維護工具的一部分。 僅當包含組件的存儲庫可在本地或外部可用時,此操作才有效。
下圖說明了安裝附加組件的默認工作流程:
本節使用由在OS X上運行的Qt 5安裝程序安裝的維護工具
作為最終用戶在初次安裝后如何添加組件
實現的示例。 維護工具包含程序包管理器
,更新程序
和卸載程序
。
啟動程序包管理器
當最終用戶啟動維護工具時,將打開介紹頁面:
當最終用戶選擇包管理器(Package Manager)
,然后單擊繼續
時,將打開組件選擇頁面。
選擇其他組件
組件選擇頁面列出了可用於安裝的組件以及每個組件的簡短描述。 已安裝的組件在列表中顯示為已選擇。 最終用戶選擇要安裝的其他組件。 他們可以選擇重置以再次顯示當前安裝的組件。
當最終用戶選擇繼續時,將打開准備更新頁面。
安裝所選組件
准備更新頁面通知最終用戶,在用戶選擇 更新(Update)
時安裝組件。
更新頁面顯示有關安裝進度的信息。 最終用戶可以選擇“顯示詳細信息”以查看更多信息。
安裝完成后,將打開更新完成頁面。
移除組件
下圖說明了刪除全部或部分已安裝組件的默認工作流程:
本節使用在OS X上運行的Qt 5維護工具,作為最終用戶如何刪除選定或所有組件實現的示例。
刪除所有組件
當最終用戶啟動維護工具時,將打開介紹頁面:

,然后單擊繼續
以刪除所有已安裝的組件。
准備卸載頁面通知最終用戶,當用戶選擇卸載時,可以開始 卸載 。
刪除所選組件
最終用戶可以選擇包管理器(Package Manager)
,然后選擇 繼續 ,以在 組件選擇頁面 上選擇要刪除的組件:
當最終用戶取消要刪除的組件的選中狀態,然后選擇繼續時,將打開即將更新的頁面。 它通知最終用戶在用戶選擇 更新(Update)
時刪除組件。
更新頁面顯示有關安裝進度的信息。 最終用戶可以選擇“顯示詳細信息”以查看更多信息。
安裝完成后,將打開更新完成頁面。
更新組件
下圖說明了用於更新已安裝組件的默認工作流程:
本節使用在OS X上運行的Qt 5維護工具,作為最終用戶如何刪除選定或所有組件實現的示例。
啟動更新程序
當最終用戶啟動維護工具時,將打開介紹頁面:
當最終用戶選擇更新組件(Update components)
,然后單擊繼續
時,將打開組件選擇頁面。
選擇要更新的組件
更新選擇列表顯示最終用戶 可以選擇 的 可用更新列表 。
當用戶選擇繼續
,將打開准備更新頁面。
更新所選組件
准備更新頁面通知最終用戶,選擇更新(Update)
進行組件更新。
更新頁面顯示有關安裝進度的信息。 最終用戶可以選擇“顯示詳細信息”以查看更多信息。
安裝完成后,將打開更新完成頁面。
特定設置
設置頁面允許最終用戶指定代理設置或安裝附加組件。 最終用戶在介紹頁面上選擇以進行指定設置。
指定代理設置
默認情況下,安裝程序不使用任何代理設置。 最終用戶可以選擇使用系統代理設置或手動指定代理設置。
安裝附加組件
要安裝附加組件,最終用戶需選擇存儲庫(Repositories)
選項卡。
如果Web服務器需要身份驗證,則最終用戶可以添加其用戶名和密碼。 如要顯示密碼,最終用戶可以選擇顯示密碼。
要將其自己的存儲庫添加到安裝程序,最終用戶可以選擇添加並指定指向存儲庫的URL。
臨時存儲庫只能在初次安裝時使用一次。 安裝后,只有默認和用戶定義的存儲庫可用。