在ubuntu服务器上静默安装Qt运行安装程序
我想知道是否有一种方法可以在Ubuntu Server上进行静默安装Qt run安装程序吗?
我的意思是绕过安装程序的选项并进行默认安装?
I wanted to know if there is a way to do a silent install of the Qt run installer on Ubuntu Server?
I mean by-pass the options of the installer and do a default install?
Qt工具包是使用Qt安装程序框架(QtIFW)打包的. QtIFW安装程序支持--script
选项,通过该选项,您可以通过控制器脚本API href ="http://doc.qt.io/qtinstallerframework/noninteractive.html">一个>.这是qt-installer-noninteractive.qs
文件,用于以非交互方式安装Qt 5:
The Qt toolkit is packaged using the Qt Installer Framework (QtIFW). QtIFW installers support a --script
option that allows you to programatically control the installation via the Controller Scripting API. Here's qt-installer-noninteractive.qs
file to install Qt 5 non-interactively:
// Emacs mode hint: -*- mode: JavaScript -*-
function Controller() {
installer.autoRejectMessageBoxes();
installer.installationFinished.connect(function() {
gui.clickButton(buttons.NextButton);
})
}
Controller.prototype.WelcomePageCallback = function() {
// click delay here because the next button is initially disabled for ~1 second
gui.clickButton(buttons.NextButton, 3000);
}
Controller.prototype.CredentialsPageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.IntroductionPageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.TargetDirectoryPageCallback = function()
{
gui.currentPageWidget().TargetDirectoryLineEdit.setText(installer.value("HomeDir") + "/Qt");
gui.clickButton(buttons.NextButton);
}
Controller.prototype.ComponentSelectionPageCallback = function() {
var widget = gui.currentPageWidget();
widget.deselectAll();
widget.selectComponent("qt.55.gcc_64");
widget.selectComponent("qt.55.qtquickcontrols");
// widget.deselectComponent("qt.tools.qtcreator");
// widget.deselectComponent("qt.55.qt3d");
// widget.deselectComponent("qt.55.qtcanvas3d");
// widget.deselectComponent("qt.55.qtlocation");
// widget.deselectComponent("qt.55.qtquick1");
// widget.deselectComponent("qt.55.qtscript");
// widget.deselectComponent("qt.55.qtwebengine");
// widget.deselectComponent("qt.extras");
// widget.deselectComponent("qt.tools.doc");
// widget.deselectComponent("qt.tools.examples");
gui.clickButton(buttons.NextButton);
}
Controller.prototype.LicenseAgreementPageCallback = function() {
gui.currentPageWidget().AcceptLicenseRadioButton.setChecked(true);
gui.clickButton(buttons.NextButton);
}
Controller.prototype.StartMenuDirectoryPageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.ReadyForInstallationPageCallback = function()
{
gui.clickButton(buttons.NextButton);
}
Controller.prototype.FinishedPageCallback = function() {
var checkBoxForm = gui.currentPageWidget().LaunchQtCreatorCheckBoxForm;
if (checkBoxForm && checkBoxForm.launchQtCreatorCheckBox) {
checkBoxForm.launchQtCreatorCheckBox.checked = false;
}
gui.clickButton(buttons.FinishButton);
}
此脚本演示了如何选择/取消选择某些组件.根据您的需求进行自定义,或者完全删除这些行以进行默认安装.同样,您可能要自定义或删除TargetDirectoryLineEdit
行.像这样运行Qt安装程序:
This script demonstrates how to select/deselect certain components. Customize for your needs or just remove the lines entirely for a default installation. Likewise, you may want to customize or remove the TargetDirectoryLineEdit
line. Run the Qt installer like:
qt-opensource-linux-x64-5.5.1.run --script qt-installer-noninteractive.qs
添加-platform minimal
进行无头安装.将来基于较新版本QtIFW的安装程序应该可以使用--silent
选项(请参阅 QTIFW- 166 ).
Add -platform minimal
for a headless installation. Future installers based on newer versions of QtIFW should be able to use a --silent
option instead (see QTIFW-166).
添加--verbose
可获得更多详细的控制台输出(有助于收集组件名称,向导页面名称等). 此链接对确定组件名称也很有帮助.
Add --verbose
for more verbose console output (helpful for gleaning component names, wizard page names, etc). This link is also helpful for figuring out component names.