使用脚本选项安装qt5.11标题

Jes*_*ter 6 javascript installer qt

我的目标是在运行jenkins2的无头ubuntu服务器18.04.1上安装Qt 5.11.1。

我目前正在运行ubuntu桌面18.04的虚拟盒上测试当前脚本。请注意,如果手动使用gui安装程序进行安装,则我可以轻松安装或运行qt

当尝试使用安装程序gui free方法安装qt时,使用终端运行时出现以下问题。

./qt-opensource-linux-x64-5.11.1.run --script qt-installer-noninteractive.qs --platform minimal --verbose
or
./qt-unified-linux-x64-3.0.5-online.run --script qt-installer-noninteractive.qs --platform minimal --verbose

...
...
[9732] Warning: Other components depend on component qt.tools which has child components. This will not work properly.
[9745] Warning: Component qt.qt5.5111 depends on other components while having child components. This will not work properly.
Run Code Online (Sandbox Code Playgroud)

完成该过程后,将创建一个包含qtcreator的Qt文件夹,但不包括qt库。

qt-installer-noninteractive.qs

function Controller() {
    installer.autoRejectMessageBoxes();
    installer.installationFinished.connect(function() {
        gui.clickButton(buttons.NextButton,3000);
    })
}

Controller.prototype.WelcomePageCallback = function() {
    gui.clickButton(buttons.NextButton,3000);
}

Controller.prototype.CredentialsPageCallback = function() {
    gui.clickButton(buttons.NextButton,3000);
}

Controller.prototype.IntroductionPageCallback = function() {
    gui.clickButton(buttons.NextButton,3000);
}

Controller.prototype.TargetDirectoryPageCallback = function()
{
    gui.currentPageWidget().TargetDirectoryLineEdit.setText(installer.value("HomeDir") + "/Qt");
    gui.clickButton(buttons.NextButton,3000);
}

Controller.prototype.ComponentSelectionPageCallback = function() {
    var widget = gui.currentPageWidget();

    widget.deselectAll();

// pretty sure the line below is the problem, but cant find a list over the proper paths to use for linux.

    widget.selectComponent("qt.5111.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,3000);
}

Controller.prototype.LicenseAgreementPageCallback = function() {
    gui.currentPageWidget().AcceptLicenseRadioButton.setChecked(true);
    gui.clickButton(buttons.NextButton,10000);
}

Controller.prototype.StartMenuDirectoryPageCallback = function() {
    gui.clickButton(buttons.NextButton,3000);
}

Controller.prototype.ReadyForInstallationPageCallback = function()
{
    gui.clickButton(buttons.NextButton,3000);
}

Controller.prototype.FinishedPageCallback = function() {
var checkBoxForm = gui.currentPageWidget().LaunchQtCreatorCheckBoxForm
if (checkBoxForm && checkBoxForm.launchQtCreatorCheckBox) {
    checkBoxForm.launchQtCreatorCheckBox.checked = false;
}
    gui.clickButton(buttons.FinishButton);
}
Run Code Online (Sandbox Code Playgroud)

我使用了以下资源,但没有任何运气。

堆栈溢出:静默Qt安装

Qt安装程序没有交互式安装程序文档

堆栈溢出,Windows的静默安装列出了一组命令

Jes*_*ter 4

要获取 qt 5.11.1 的二进制文件组件,这是要添加的正确路径

widget.selectComponent("qt.qt5.5111.gcc_64"); 
Run Code Online (Sandbox Code Playgroud)