工具
Qt Installer Framework包含以下工具:
> installerbase
> binarycreator
> repogen
> archivegen
> devtool
installerbase
installerbase工具描述了核心安裝程式本身, 所有資料和元資訊都將打包到此二進制檔案中, 對于安裝程式的創建程序,您無需直接呼叫它,
binarycreator
使用binarycreator工具創建離線和在線安裝程式, 組件資訊和資料將附加到離線安裝程式二進制檔案中,從而使檔案提取和安裝腳本無需Internet連接即可作業,
在線安裝程式存盤包含資料的存盤庫的位置, 在啟動時,它們加載組件資訊,而不是資料,
您還可以創建混合安裝程式,本地存盤某些組件,并通過網路連接接收其他組件, 有關更多資訊,請參見減小安裝程式大小章節,
有關如何將資料集成到安裝程式二進制檔案中的資訊,請參見QInstaller::BinaryContent,
注意:如果更改此配置,則必須重新編譯installerbase工具,
使用binarycreator
您可以使用binarycreator工具創建離線和在線安裝程式, 一些選項具有默認值,因此您可以忽略它們,
要創建離線安裝程式(在Windows中),請輸入以下命令:
> Windows:
<location-of-ifw>\binarycreator.exe -t <location-of-ifw>\installerbase.exe -p <package_directory> -c <config_directory>\<config_file> <installer_name>
> Linux and macOS
<location-of-ifw>/binarycreator -t <location-of-ifw>/installerbase -p <package_directory> -c <config_directory>/<config_file> <installer_name>
要創建僅在線安裝程式,可以使用--online-only,定義要從Web服務器上的在線存盤庫安裝的所有包:
> Windows:
<location-of-ifw>\binarycreator.exe -t <location-of-ifw>\installerbase.exe -p <package_directory> -c <config_directory>\<config_file> -e <packages> <installer_name>
> Linux and macOS
<location-of-ifw>/binarycreator -t <location-of-ifw>/installerbase -p <package_directory> -c <config_directory>/<config_file> -e <packages> <installer_name>
BinaryCreator引數總結
binarycreator工具接受以下引數:
| 引數 | 使用 |
|---|---|
| -t or --template file | 將file用作附加了組件資訊的安裝程式模板二進制檔案, 如果省略此引數,則使用installerbase模板, |
| -p or --packages directory | 使用directory作為包檔案夾, 默認為當前作業目錄, |
| --repository directory | 將directory用作包含要重新打包的包的存盤庫目錄,可以多次輸入該條目, |
| -n or --online-only | 編譯沒有任何組件的安裝程式二進制包, |
| -f or --offline-only | 創建永遠不訪問在線存盤庫的離線安裝程式, |
| -c or --config file | 把file作為組態檔, |
| -e or --exclude p1,...,pn | 逗號分隔的包串列,從聯機存盤庫檢索,這些包不包含在安裝程式二進制檔案中, |
| -i or --include p1,...,pn | 逗號分隔的包串列,從安裝程式二進制檔案中檢索,您不能聯合或合并使用--include和--exclude, |
| -r or --resources | 以逗號分隔的資源串列,包含在安裝程式二進制檔案中, |
| --ignore-translations | 禁用翻譯檔案以加快測驗速度, |
| --ignore-invalid-packages | 忽略沒有有效元資料資訊(package.xml)的組件或包目錄,以加快測驗速度, |
| --ignore-invalid-repositories | 忽略沒有有效元資料資訊(Updates.xml)的存盤庫目錄,而不是中止, |
| -v or --verbose | 顯示除錯輸出, |
| -s or --sign identity | 僅在macOS上可用, 允許指定代碼簽名身份,用于對生成的應用程式包進行簽名, |
這些引數后跟目標二進制檔案的名稱以及可用于安裝的包串列,
注意:除非您指定--nodeps引數,否則列出的包以及所有它們的依賴項和共享相同前綴的所有包都會包含在安裝程式中,
在通過--resources引數指定的可選資源檔案中,可以使用特殊的fonts/路徑來傳輸自定義字體, 這些字體將自動加載,因此可以在通過StyleSheet變數指定的樣式表中使用,
在Windows上,如果未指定擴展名,則目標二進制檔案的名稱將自動使用.exe擴展名, 在Mac上,目標將作為帶有擴展名.app的應用程式捆綁包創建,如果未提供,則會自動添加該擴展名, 此外,您可以指定.dmg擴展名,以創建包含.app捆綁包的DMG磁盤映像檔案,
使用圖示
在macOS上,如果目標二進制檔案帶有.app后綴,則會創建一個macOS應用程式捆綁包, 您在config.xml中指定的圖示后綴為.icns,并用作創建的包的圖示,
在Windows上,您在config.xml中指定的圖示后綴為.ico,并用作.exe檔案的應用程式圖示,
在Linux上,您在config.xml中指定的圖示后綴為.png,并用作視窗圖示,
repogen
使用repogen工具生成在線存盤庫,
repogen工具希望以下引數具有如下順序:
repogen.exe -p <package_directory> <repository_directory>
創建存盤庫后,您可以將其上傳到任何地方, 在創建安裝程式時,必須在安裝程式組態檔中指定該位置,
您可以使用現有存盤庫將包重新打包到另一個存盤庫或離線安裝程式,
repogen引數總結
| 引數 | 使用 |
|---|---|
| -p or --packages directory | 使用directory作為包檔案夾, 這是強制性的, |
| --repository directory | 將directory用作包含要重新打包的包的存盤庫目錄(不要與強制性目標存盤庫目錄混淆), 可以多次輸入該條目, |
| repository directory | 目標檔案夾,用于存盤庫, 在初始安裝期間,該目錄必須尚未存在, 更新時,該目錄可能存在,并且其內容可能會被覆寫或洗掉, 這是強制性的, |
| -e or --exclude p1,...,pn | 逗號分隔的包串列,將從包目錄中所有包的集合中忽略, |
| -i or --include p1,...,pn | 逗號分隔的包串列,將從包目錄中所有包的集合中選擇并使用, |
| --update | 更新packages目錄中的所有包, 可以使用-i,-e引數進一步過濾該串列, |
| --update-new-components | 僅更新新組件或具有較新版本的組件, 可以使用-i,-e引數進一步過濾該串列, |
| -r or --remove | 強制洗掉現有目標目錄,然后再次生成它, |
| -v or --verbose | 顯示除錯輸出, |
注意:我們建議您使用--update-new-components(原文為--update-new-packages,我認為是錯誤的)引數來更新現有存盤庫,尤其是在具有內容交付系統的情況下, 這可以幫助您避免更新未更改的組件,并且使內容交付系統更輕松地僅分發新檔案,因為僅為已更新的組件分配了新的SHA校驗和,
archivegen
您可以使用archivegen將檔案和目錄打包到7zip(.7z)存檔中,
archivegen工具希望以下引數具有如下順序:
archivegen <name.7z> <data>
其中,<name.7z>是要創建的存檔的路徑和檔案名,而包含要打包到存檔中的檔案或目錄的路徑和名稱,以空格分隔,
devtool
您可以使用devtool,來通過新的installer base更新現有的安裝程式或維護工具,將二進制內容從安裝程式或維護工具轉儲到目標,并執行操作, 有關可用操作的總結,請參見操作章節,
devtool工具希望以下引數具有如下順序:
devtool [options] binary
其中binary是現有安裝程式或維護工具的路徑和名稱,
devtool引數總結
| 引數 | 使用 |
|---|---|
| -?, -h, --help | 顯示幫助, |
| -v, --version | 顯示版本資訊, |
| --verbose | 顯示附加資訊, |
| --update |
使用新的installer base來更新現有安裝程式或維護工具, |
| --dump |
將屬于安裝程式或維護工具的二進制內容轉儲到目標中, |
| --operation <mode,name,args,...> | 執行帶有引數串列的操作, 模式可以是DO或UNDO,具體取決于該步驟是否包含安裝程式或卸載程式的說明, |
原創造福大家,共享改變世界
獻出一片愛心,溫暖作者心靈
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/2074.html
標籤:其他
