Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

install qt5.11 headles using the script option

My goal is to install Qt 5.11.1 on my headless ubuntu server 18.04.1 running jenkins2.

I am currently testing my current script on a virtual box running ubuntu desktop 18.04. note that i have not trouble installing or running qt if install using the gui installer manually

When trying to install qt using the installer gui free approach i get the following problem running using the terminal.

./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.

When The process finish a Qt folder is created containg qtcreator but no qt library is included.

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);
}

I have used the following resources but without any luck.

stack overflow: silent Qt install

Qt installer no interactive installer documentation

stack overflow, Silent install for Windows listing a set of commands

like image 225
Jesper Rytter Avatar asked Aug 18 '18 15:08

Jesper Rytter


2 Answers

to get the binaries component for qt 5.11.1 this is the correct path to add

widget.selectComponent("qt.qt5.5111.gcc_64"); 
like image 160
Jesper Rytter Avatar answered Sep 29 '22 11:09

Jesper Rytter


The script never worked for me (or I was just too dumb to use it), but I wrote a more or less simple python script that basically does the same as the official Qt installer does. You can find it here.

This is how to install the dependencies and run it:

sudo apt install python3-requests p7zip-full wget

wget https://git.kaidan.im/lnj/qli-installer/raw/master/qli-installer.py
chmod +x qli-installer.py

./qli-installer.py 5.11.3 linux desktop

Then the Qt installation can be found at ./5.11.3/gcc_64/ in this case. With other systems/targets (i.e. linux android android_armv7) this will differ of course.

like image 35
LNJ Avatar answered Sep 29 '22 13:09

LNJ