使用命令行界面获取和安装 Qt

使用 Qt 在线安装程序和 Qt 维护工具通过命令行界面安装、卸载、更新和搜索组件。

命令行界面支持交互式和非交互式使用(无人值守使用)。以下主题提供了关于如何使用命令行界面的示例和信息

安装组件名称:

使用别名包快速安装:

注意:使用别名包的快速安装将在 Qt 在线安装程序 4.8 版本中提供。

安装时,您可以不搜索特定的包名称,而是使用别名包来安装最常见的配置。别名包是包含实际包的快捷方式,以便更容易进行安装。

使用以下命令在命令行界面中列出现有的别名包

installer.exe / maintenancetool.exe search

别名包的内容列在下面的表格中。

注意:以下列出别名包示例中使用了 Qt 6.7.0 版本。请始终确保使用与您正在工作的 Qt 发布版匹配的包。

别名包名称Qt 在线安装程序(包含的包内容)
qt6.7.0-essentials
  • 基本模块库
  • 基本模块头文件
  • 基本模块私有头文件
  • 基本模块运行时工具
  • 基本模块开发工具
qt6.7.0-essentials-dev
  • 基本模块库
  • 基本模块头文件
  • 基本模块私有头文件
  • 基本模块运行时工具
  • 基本模块开发工具
qt6.7.0-full
  • 基本模块库
  • 基本模块头文件
  • 基本模块私有头文件
  • 基本模块运行时工具
  • 基本模块开发工具
  • 附加模块库
  • 附加模块头文件
  • 附加模块私有头文件
  • 附加模块运行时工具
  • 附加模块开发工具
  • 源代码
qt6.7.0-full-dev
  • 基本模块库
  • 基本模块头文件
  • 基本模块私有头文件
  • 基本模块运行时工具
  • 基本模块开发工具
  • 附加模块库
  • 附加模块头文件
  • 附加模块私有头文件
  • 附加模块运行时工具
  • 附加模块开发工具
  • 源代码
qt6.7.0-full-dbg
qt6.7.0-sdk
  • 最新 Qt Creator
  • qt6.7.0-full-dev(细节见上方)
  • qt6.7.0-full-dbg(细节见上方)
  • Ninja
  • CMake

Qt 在线安装程序命令示例

# Windows: new installation with Qt Online Installer
qt-unified-windows-x64-[Qt Online Installer version]-online.exe install qt6.7.0-sdk

# macOS: new installation with Qt Online Installer
hdiutil attach qt-unified-macOS-x64-[Qt Online Installer version]-online.dmg
/Volumes/qt-unified-macOS-x64-[Qt Online Installer version]-online/qt-unified-macOS-x64-[Qt Online Installer version]-online.app/Contents/MacOS/qt-unified-macOS-x64-[Qt Online Installer version]-online install qt6.7.0-sdk
hdiutil detach /Volumes/qt-unified-macOS-x64-[Qt Online Installer version]-online

# Linux: new installation with Qt Online Installer
qt-unified-linux-x64-[Qt Online Installer version]-online.run install qt6.7.0-sdk

列出非别名包:

使用以下命令在命令行界面中列出非别名包:

installer.exe / maintenancetool.exe search --type package

高级搜索特定安装包:

使用search命令和正则表达式搜索可用包:search <regexp>。您可以使用--filter-packages <regexp>筛选结果。例如,使用显示名称信息进行筛选可以帮助搜索。

例如,以下命令找到了所有 Qt 6.7.0 的 MSVC 2019 包:

search .*670.*msvc2019

您将得到以下筛选搜索结果:

search --filter-packages DisplayName=MSVC 2019,Version=6.7.0

因此,您将得到以下程序包:

<availablepackages>
    <package name="qt.qt6.670.win64_msvc2019_64" displayname="MSVC 2019 64-bit" version="6.7.0-0-202303290841"/>
    <package name="qt.qt6.670.win64_msvc2019_arm64" displayname="MSVC 2019 ARM64 (TP)" version="6.7.0-0-202303290841"/>
</availablepackages>

您还可以在搜索提供特定包的所有 Qt 版本时使用筛选。例如,搜索为 Qt 版本提供的所有 Qt Charts 包

search --filter-packages DisplayName=charts

搜索结果如下

<availablepackages>
    <package name="qt.qt5.5125.qtcharts" displayname="Qt Charts" version="5.12.5-0-201909090651"/>
    <package name="qt.qt6.641.addons.qtcharts" displayname="Qt Charts" version="6.4.1-0-202211101525"/>
    <package name="qt.qt5.5123.qtcharts" displayname="Qt Charts" version="5.12.3-0-201904161619"/>

无用户交互安装

默认情况下,Qt Online 安装程序或 Qt 维护工具在安装过程中可能会请求更多信息,这需要用户注意。可以通过在命令行界面之前提供所有请求的信息来实现无人值守使用。

使用 Qt Online 安装程序进行新安装

您可以按以下方式从命令行界面无用户交互地执行新安装

  1. 定义 Qt Online 安装程序 可执行文件。
  2. 使用 --root 定义安装目录。
  3. 使用带有 无用户交互选项install <包列表> 命令。有关可选参数的完整列表,请参见无用户交互选项

以下示例演示了如何使用 Qt Online 安装程序在 Windows、macOS 和 Linux 上安装 Qt 6.7.0 二进制文件。无人值守命令自动接受许可证(--accept-licenses)、回答所有消息查询的默认答案(--default-answer)和跳过询问是否继续执行(--confirm-command)。

# Windows: new installation with Qt Online Installer
qt-unified-windows-x64-[Qt Online Installer version]-online.exe --root C:\Users\[username]\installation_dir --accept-licenses --default-answer --confirm-command install qt.qt6.670.win64_msvc2019_64

# macOS: new installation with Qt Online Installer
qt-unified-macOS-x64-[Qt Online Installer version]-online.dmg --root /home/<username>/installation_dir --accept-licenses --default-answer --confirm-command install qt.qt6.670.clang_644

# linux: new installation with Qt Online Installer
qt-unified-linux-x64-[Qt Online Installer version]-online.run --root /home/<username>/installation_dir --accept-licenses --default-answer --confirm-command install qt.qt6.670.gcc_64

无用户交互选项 列出了所有可用选项。

使用 Qt 维护工具更新安装

您可以通过以下方式从命令行界面无用户交互地更新现有安装

  1. 定义 Qt 维护工具 可执行文件。
  2. 使用带有 无用户交互选项install <包列表>。有关可选参数的完整列表,请参见 无用户交互选项

以下示例演示了如何使用 Qt 维护工具将 Qt 6.7.0 二进制文件添加到 Windows、macOS 和 Linux 上的现有安装。无人值守命令自动接受许可证(--accept-licenses)、回答所有消息查询的默认答案(--default-answer)和跳过询问是否继续执行(--confirm-command)。

# Windows: update installation with Qt Maintenance Tool
MaintenanceTool.exe --accept-licenses --default-answer --confirm-command install qt.qt6.670.win64_msvc2019_64

# macOS: update installation with Qt Maintenance Tool
MaintenanceTool.app/Contents/MacOS/MaintenanceTool --accept-licenses --default-answer --confirm-command install qt.qt6.670.clang_64

# linux: update installation with Qt Maintenance Tool
MaintenanceTool.run --accept-licenses --default-answer --confirm-command install qt.qt6.670.gcc_64

无用户交互选项

以下表格列出了所有无人值守命令行使用的选项

无用户交互选项描述
--accept-licenses自动接受所有许可协议。
--accept-obligations在开源安装中,无需用户输入即可接受 Qt 开源使用义务。
--default-answer以默认答案回答所有消息查询。
--auto-answer <identifier=value>如果您想要对某些查询的不同答案,则可以使用此选项。例如,--auto-answer telemetry-question=Yes,AssociateCommonFiletypes=Yes。有关所有消息标识符的列表,请参见自动回答消息标识符
--accept-messages接受所有消息查询。
--reject-messages拒绝所有消息查询。
--confirm-command默认情况下,Qt Online 安装程序和 Qt 维护工具会打印出受选项影响组件的摘要。然后他们会请求权限以继续执行,以防止意外更改。此选项跳过请求权限。
--email <your_email>当您从命令行登录时提供电子邮件。有关更多信息,请参阅提供登录信息
--pw <your_pw>当您从命令行登录时提供密码。有关更多信息,请参阅提供登录信息
--file-query <标识=值>有时 Qt 在线安装程序会要求输入文件或文件夹的位置。您可以使用 --file-query <标识=值> 提供位置。例如,--file-query PathForSDP7=<路径_to_sdp>

标识符在实际问题之前打印到命令行,您可以在那里获取标识符。

自动应答的消息标识符

使用 --auto-answer 选项提供特定查询的答案。以下表格列出了用于 --auto-answer 的已知标识符和值

ID默认值
OperationDoesNotExistError终止,忽略忽略
OverwriteTargetDirectory是,否
stopProcessesForUpdates重试,忽略,取消取消
installationErrorWithCancel重试,忽略,取消取消
installationErrorWithIgnore重试,忽略忽略
AssociateCommonFiletypes是,否
telemetry-question是,否

提供登录信息

Qt 在线安装程序和 Qt 维护工具具有强制登录。如果缓存中存在,强制登录将使用 qtaccount.ini 文件中的信息。您可以在以下位置找到 qtaccount.ini

主机qtaccount.ini 位置
WindowsC:\Users\<用户名>\AppData\Roaming\Qt
macOS/Users/<用户名>/Library/Application Support/Qt/qtaccount.ini
Linux/home/<用户名>/.local/share/Qt/qtaccount.ini

可选地,您可以使用命令行通过电子邮件和密码切换登录: --email <你的电子邮件>--pw <你的密码>

或者,您可以将 jwt 令牌保存到环境变量 QT_INSTALLER_JWT_TOKEN。您可以在 qtaccount.ini 文件中找到令牌。

用户交互安装

您可以使用以下方式使用带用户交互的命令行界面:

  1. 定义可执行文件
    • Qt 在线安装程序 如果您需要进行全新安装。
    • Qt 维护工具 如果您需要更新现有安装。
  2. 进行全新安装时,请使用 --root 定义安装目录。
  3. 使用 install <包列表> 安装列出的包。

以下示例展示了如何使用 Windows、macOS 和 Linux 的 Qt 在线安装程序创建 Qt 6.7.0 二进制程序的新安装。

# Windows: new installation with user interaction
qt-unified-windows-x64-[Qt Online Installer version]-online.exe --root C:\Users\[username]\installation_dir install qt.qt6.670.win64_msvc2019_64

# macOS: new installation with user interaction
qt-unified-macOS-x64-[Qt Online Installer version]-online.dmg --root /home/<username>/installation_dir install qt.qt6.670.clang_64

# linux: new installation with user interaction
qt-unified-linux-x64-[Qt Online Installer version]-online.run --root /home/<username>/installation_dir install qt.qt6.670.gcc_64

以下示例展示了如何通过使用 Qt 维护工具安装 Qt 6.7.0 二进制程序来更新您的现有安装。

# Windows: update installation with Qt Maintenance Tool
MaintenanceTool.exe install qt.qt6.670.win64_msvc2019_64

# macOS: update installation with Qt Maintenance Tool
MaintenanceTool.dmg install qt.qt6.670.clang_64

# Linux: update installation with Qt Maintenance Tool
MaintenanceTool.run install qt.qt6.670.gcc_64

卸载程序包

命令行界面提供了两个用于卸载包的命令

  • remove <包列表> 命令卸载列出的包。
  • purge 命令卸载所有已安装的程序包。

您应使用这两个命令与 Qt 维护工具一起使用。

默认情况下,Qt 维护工具会打印要受命令影响的所有组件的摘要。然后工具请求继续操作的权限,以防止意外更改。使用 --confirm-command 跳过请求继续权限。

以下示例展示了在没有用户交互的情况下卸载 Qt 6.7.0 二进制程序。

# windows
MaintenanceTool.exe --confirm-command remove qt.qt6.670.win64_msvc2019_64

# macOS
MaintenanceTool.dmg --confirm-command remove install qt.qt6.670.clang_64

# linux
MaintenanceTool.run --confirm-command remove qt.qt6.670.gcc_64

以下示例展示了卸载所有包并请求继续执行操作的权限。

# Windows
MaintenanceTool.exe purge

# macOS
MaintenanceTool.dmg purge

# Linux
MaintenanceTool.run purge

列出已安装程序包

list 命令列出了您已安装的所有程序包。以下是如何使用 Qt 维护工具使用该命令的示例。

# Windows
MaintenanceTool.exe list

# macOS
MaintenanceTool.dmg list

# Linux
MaintenanceTool.run list

检查更新

check-updates 命令用于检查已安装软件包的可用更新。请按以下步骤使用 Qt 维护工具

# Windows
MaintenanceTool.exe check-updates

# macOS
MaintenanceTool.dmg check-updates

# Linux
MaintenanceTool.run check-updates

更新软件包

update 命令用于更新已安装的软件包。请按以下步骤使用 Qt 维护工具

# windows
MaintenanceTool.exe update

# macOS
MaintenanceTool.dmg update

# linux
MaintenanceTool.run update

使用以下命令 <installer_executable> --help 了解所有可用命令和选项。以下是一些常用命令

命令用法
in, install <pkg ...>安装作为参数提供的软件包。如果您不提供任何软件包,则安装默认软件包集。
rm, remove <pkg ...>卸载指定的软件包及其子组件。
ch, check-updates显示 Qt 维护工具上的可用更新信息。
up, update <pkg ...>更新作为参数提供的软件包。如果没有提供软件包,则安装所有可用更新。
se, search <regexp>搜索可用软件包。如果您不提供搜索模式,则显示所有可用软件包。您可以使用 --filter-packages 选项为搜索操作指定附加过滤器。请参阅 Qt 安装器框架手册中的选项摘要

Qt 安装器框架手册提供了有关命令和选项的更多信息。

选择开源镜像

Qt 在线安装器允许选择开源元数据和下载的镜像。使用 --mirror 选项从命令行设置镜像。

例如,如下使用 --mirror

installer(.exe) --mirror http://www.nic.funet.fi/pub/mirrors/download.qt-project.org
installer(.exe) --mirror http://ftp2.nluug.nl/languages/qt
maintenancetool(.exe) --mirror http://qt.mirror.constant.com

如示例所示,请勿使用完整路径,而应使用 '/online' 之前的路径(路径末尾不带反斜杠)。

您可以从https://download.qt.io/online/qtsdkrepository/windows_x86/root/qt/Updates.xml.mirrorlist 获取可用的镜像。

命令行界面用法摘要

Qt 安装器框架手册提供了有关命令行界面的更详细信息。

© 2024 Qt 公司有限公司。包含在此处的文档贡献为各自所有者的著作权。本手册提供的文档是根据自由软件基金会发布并由其版权所涵盖的GNU 自由文档许可证版本 1.3许可。Qt 及相关标志是芬兰及/或全球其他地区 Qt 公司有限公司的商标。所有其他商标均为各自所有者的财产。