Qt silent installation on Linux server
-
Hi,
I have Linux server(Ubuntu 20.04) and i am triying to install Qt using command line but i didn't get succeed yet
I have tried using below reference
https://stackoverflow.com/questions/25105269/silent-install-qt-run-installer-on-ubuntu-server
and the command i am using here is./qt-opensource-linux-x64-5.14.2.run --script qt-installer-noninteractive.qs --platform minimal --verbose
but the installation stucks in between, the log is as follows
IFW Version: 3.2.2, built with Qt 5.12.7. Build date: Mar 11 2020 Installer Framework SHA1: 42d8165 [0] Language: No UI language set [0] Arguments: ./qt-opensource-linux-x64-5.14.2.run, --script, qt-installer-noninteractive.qs, --verbose [1] Operations sanity check succeeded. [2] License type read from resource file: "open source" [2] License display name read from resource file: "open source" [2] Product read from resource file: "" [2] Reading Qt Account settings from disk: "/home/dev/.local/share/Qt/qtaccount.ini" [2] Warning: Qt Account settings file [/home/dev/.local/share/Qt/qtaccount.ini] does not exist. [2] QtAccount information: [2] Login completed: false [2] Email: "" [2] Total number of licenses: 0 [2] Account type: 3 [2] Resource tree: [3] :/translations [3] :/translations/ifw_zh_CN.qm [3] :/translations/qt_da.qm [3] :/translations/qt_de.qm [3] :/translations/qt_en.qm [3] :/translations/qt_es.qm [3] :/translations/qt_fr.qm [3] :/translations/qt_ja.qm [3] :/translations/qt_it.qm [3] :/translations/qt_pl.qm [3] :/translations/qt_ru.qm [3] :/translations/ifw_de.qm [3] :/translations/ifw_da.qm [3] :/translations/ifw_es.qm [3] :/translations/ifw_en.qm [3] :/translations/ifw_fr.qm [3] :/translations/ifw_it.qm [3] :/translations/ifw_ja.qm [3] :/translations/ifw_pl.qm [3] :/translations/ifw_ru.qm [3] :/translations/qt_zh_CN.qm [3] :/files-to-patch-macx-emb-arm-qt5 [3] :/files-to-patch-windows [3] :/files-to-patch-linux-emb-arm-qt5-no-bin-patch [3] :/files-to-patch-linux-emb-arm-qt5 [3] :/files-to-patch-windows-emb-arm-qt5-no-bin-patch [3] :/files-to-patch-windows-emb-arm [3] :/files-to-patch-linux-qt5 [3] :/files-to-patch-windows-qt5 [3] :/files-to-patch-linux-emb-arm [3] :/files-to-patch-windows-emb-arm-qt5 [3] :/files-to-patch-windows-qt5-no-bin-patch [3] :/files-to-patch-macx [3] :/files-to-patch-linux-qt5-no-bin-patch [3] :/files-to-patch-macx-qt5 [3] :/files-to-patch-macx-emb-arm-qt5-no-bin-patch [3] :/files-to-patch-macx-qt5-no-bin-patch [3] :/files-to-patch-linux [3] :/uninstall.png [3] :/installer.png [3] :/installer.ico [3] :/keepinstalled.png [3] :/installer.icns [3] :/install.png [3] :/keepuninstalled.png [5] :/qgradient [5] :/qgradient/webgradients.binaryjson [5] :/metadata [5] :/metadata/qt [5] :/metadata/qt/installscript.qs [5] :/metadata/qt.qt5.5142.qtquicktimeline.android [5] :/metadata/qt.qt5.5142.qtquicktimeline.android/installscript.qs [6] :/metadata/qt.qt5.5142.qtquicktimeline.gcc_64 [6] :/metadata/qt.qt5.5142.qtquicktimeline.gcc_64/installscript.qs [6] :/metadata/qt.qt5.5142.qtpurchasing.gcc_64 [6] :/metadata/qt.qt5.5142.qtpurchasing.gcc_64/installscript.qs [6] :/metadata/qt.tools.qtcreator [6] :/metadata/qt.tools.qtcreator/launchqtcreatorcheckboxform.ui [6] :/metadata/qt.tools.qtcreator/associatecommonfiletypesform.ui [6] :/metadata/qt.tools.qtcreator/installscript.qs [6] :/metadata/qt.qt5.5142.qtnetworkauth [6] :/metadata/qt.qt5.5142.qtnetworkauth/installscript.qs [6] :/metadata/qt.qt5.5142.qtwebglplugin.gcc_64 [6] :/metadata/qt.qt5.5142.qtwebglplugin.gcc_64/installscript.qs [6] :/metadata/qt.license.gplv3except [6] :/metadata/qt.license.gplv3except/LICENSE.GPL3-EXCEPT [6] :/metadata/qt.qt5.5142.gcc_64 [6] :/metadata/qt.qt5.5142.gcc_64/installscript.qs [6] :/metadata/qt.license.lgpl [6] :/metadata/qt.license.lgpl/LICENSE [6] :/metadata/qt.qt5.5142.qtquicktimeline [6] :/metadata/qt.qt5.5142.qtquicktimeline/installscript.qs [6] :/metadata/rccprojectyfhCHx.qrc [6] :/metadata/qt.qt5.5142.qtquick3d [6] :/metadata/qt.qt5.5142.qtquick3d/installscript.qs [6] :/metadata/qt.qt5.5142.qtscript [6] :/metadata/qt.qt5.5142.qtscript/installscript.qs [6] :/metadata/qt.qt5.5142.android [6] :/metadata/qt.qt5.5142.android/installscript.qs [6] :/metadata/config [6] :/metadata/config/config-internal.ini [6] :/metadata/installer-config [6] :/metadata/installer-config/watermark_linux_png.png [6] :/metadata/installer-config/config.xml [6] :/metadata/installer-config/logo-small.png [6] :/metadata/qt.qt5.5142.qtlottie [6] :/metadata/qt.qt5.5142.qtlottie/installscript.qs [6] :/metadata/qt.tools [6] :/metadata/qt.tools/installscript.qs [6] :/metadata/qt.qt5.5142.qtvirtualkeyboard [6] :/metadata/qt.qt5.5142.qtvirtualkeyboard/installscript.qs [6] :/metadata/qt.qt5.5142.qtcharts [6] :/metadata/qt.qt5.5142.qtcharts/installscript.qs [6] :/metadata/qt.qt5.5142.qtdatavis3d.android [6] :/metadata/qt.qt5.5142.qtdatavis3d.android/installscript.qs [6] :/metadata/qt.qt5.5142.qtlottie.android [6] :/metadata/qt.qt5.5142.qtlottie.android/installscript.qs [6] :/metadata/qt.qt5.5142 [6] :/metadata/qt.qt5.5142/installscript.qs [6] :/metadata/qt.qt5.5142.qtwebglplugin [6] :/metadata/qt.qt5.5142.qtwebglplugin/installscript.qs [6] :/metadata/qt.qt5.5142.qtcharts.android [6] :/metadata/qt.qt5.5142.qtcharts.android/installscript.qs [6] :/metadata/qt.qt5.5142.qtvirtualkeyboard.gcc_64 [6] :/metadata/qt.qt5.5142.qtvirtualkeyboard.gcc_64/installscript.qs [6] :/metadata/qt.license.win10sdk [6] :/metadata/qt.license.win10sdk/sdk_license [6] :/metadata/qt.qt5.5142.qtscript.gcc_64 [6] :/metadata/qt.qt5.5142.qtscript.gcc_64/installscript.qs [6] :/metadata/Updates.xml [7] :/metadata/qt.qt5.5142.qtwaylandcompositor.gcc_64 [7] :/metadata/qt.qt5.5142.qtwaylandcompositor.gcc_64/installscript.qs [7] :/metadata/qt.qt5.5142.qtwebengine.gcc_64 [7] :/metadata/qt.qt5.5142.qtwebengine.gcc_64/installscript.qs [7] :/metadata/qt.qt5.5142.qtcharts.gcc_64 [7] :/metadata/qt.qt5.5142.qtcharts.gcc_64/installscript.qs [7] :/metadata/qt.license.python [7] :/metadata/qt.license.python/LICENSE.PYTHON [7] :/metadata/qt.qt5.5142.qtdatavis3d.gcc_64 [7] :/metadata/qt.qt5.5142.qtdatavis3d.gcc_64/installscript.qs [7] :/metadata/qt.qt5.5142.qtnetworkauth.gcc_64 [7] :/metadata/qt.qt5.5142.qtnetworkauth.gcc_64/installscript.qs [7] :/metadata/qt.qt5.5142.qtwebengine [7] :/metadata/qt.qt5.5142.qtwebengine/installscript.qs [7] :/metadata/qt.qt5.5142.qtquick3d.gcc_64 [7] :/metadata/qt.qt5.5142.qtquick3d.gcc_64/installscript.qs [7] :/metadata/qt.qt5.5142.qtwaylandcompositor [7] :/metadata/qt.qt5.5142.qtwaylandcompositor/installscript.qs [7] :/metadata/qt.qt5.5142.qtpurchasing [7] :/metadata/qt.qt5.5142.qtpurchasing/installscript.qs [7] :/metadata/qt.qt5.5142.qtdatavis3d [7] :/metadata/qt.qt5.5142.qtdatavis3d/installscript.qs [7] :/metadata/qt.qt5.5142.qtpurchasing.android [7] :/metadata/qt.qt5.5142.qtpurchasing.android/installscript.qs [7] :/metadata/qt.qt5.5142.src [7] :/metadata/qt.qt5.5142.src/installscript.qs [7] :/metadata/qt.qt5.5142.qtnetworkauth.android [7] :/metadata/qt.qt5.5142.qtnetworkauth.android/installscript.qs [7] :/metadata/qt.qt5.5142.qtscript.android [7] :/metadata/qt.qt5.5142.qtscript.android/installscript.qs [7] :/metadata/qt.qt5.5142.qtlottie.gcc_64 [7] :/metadata/qt.qt5.5142.qtlottie.gcc_64/installscript.qs [40] Loaded control script "qt-installer-noninteractive.qs" [40] Using control script: "qt-installer-noninteractive.qs"
kindly suggest for the correct way if i am wrong
thanks in advance
-
@Kallappa said in Qt silent installation on Linux server:
/home/dev/.local/share/Qt/qtaccount.ini
Did you make this file with login info ?
Since it says
Warning: Qt Account settings file [/home/dev/.local/share/Qt/qtaccount.ini] does not exist.It might be the issue.
-
@mrjj ,
after adding this qtaccount.ini file ~/.local/share/Qt
account login is done but may be problem with .qs script it stops after login[5] :/metadata/qt.qt5.5142.src
[5] :/metadata/qt.qt5.5142.src/installscript.qs
[5] :/metadata/qt.qt5.5142.qtnetworkauth.android
[5] :/metadata/qt.qt5.5142.qtnetworkauth.android/installscript.qs
[5] :/metadata/qt.qt5.5142.qtscript.android
[5] :/metadata/qt.qt5.5142.qtscript.android/installscript.qs
[5] :/metadata/qt.qt5.5142.qtlottie.gcc_64
[5] :/metadata/qt.qt5.5142.qtlottie.gcc_64/installscript.qs
[20] Loaded control script "qt-installer-noninteractive.qs"
[20] Using control script: "qt-installer-noninteractive.qs"
[3130] Login completed to Qt Account: "kallappa.bachagundi@verolt.com"
[3130] Saving Qt Account settings to file: "/home/dev/.local/share/Qt/qtaccount.ini"
[3210] "Installation preconditions ok, installation can proceed!" [ "success" ]
[3218] Control script callback "ObligationsPageCallback" does not exist. -
@mrjj , You can find the script here
function Controller() { installer.autoRejectMessageBoxes(); installer.setMessageBoxAutomaticAnswer("installationError", QMessageBox.Retry); installer.setMessageBoxAutomaticAnswer("installationErrorWithRetry", QMessageBox.Retry); installer.setMessageBoxAutomaticAnswer("DownloadError", QMessageBox.Retry); installer.setMessageBoxAutomaticAnswer("archiveDownloadError", QMessageBox.Retry); 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() { //dev is the user in our docker image gui.currentPageWidget().TargetDirectoryLineEdit.setText(installer.value("HomeDir") + "/Qt"); gui.clickButton(buttons.NextButton); } Controller.prototype.PerformInstallationPageCallback = function() { gui.clickButton(buttons.CommitButton); } Controller.prototype.ComponentSelectionPageCallback = function() { function list_packages() { var components = installer.components(); console.log("Available components: " + components.length); var packages = ["Packages: "]; for (var i = 0 ; i < components.length ;i++) { packages.push(components[i].name); } console.log(packages.join(" ")); } list_packages(); var widget = gui.currentPageWidget(); console.log(widget); widget.deselectAll(); widget.selectComponent("qt.qt5.5130"); widget.selectComponent("qt.qt5.5130.gcc_64"); // widget.deselectComponent(""); 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); }
-
@Kallappa
Hi
It seems it's missing a section for the new screen with openSource infoI can't recall if it has a next button or an ok button
you could try to addController.prototype.ObligationsPageCallback= function()
{
gui.clickButton(buttons.NextButton);
}and see.
-
i have added ObligationsPageCallback function as below
Controller.prototype.ObligationsPageCallback = function() { var page = gui.pageWidgetByObjectName("ObligationsPage"); page.obligationsAgreement.setChecked(true); page.completeChanged(); gui.clickButton(buttons.NextButton); }
and it completes the installation
but but i don't have qmake to compile qt applicationsif am wrong sorry for above information, i am new to this
-
@mrjj
hi,
I mean i need qt environement to build qt application on Linux server
so i need qmake and make to compile qt source code.but i didn't found this on ~/Qt directory
i have only below folders/filesInstallationLog.txt MaintenanceTool.dat components.xml installerResources Licenses MaintenanceTool.ini dist network.xml MaintenanceTool Tools installer.dat
-
@Kallappa
It seems that
widget.selectComponent("qt.qt5.5130");
widget.selectComponent("qt.qt5.5130.gcc_64");didnt really select anything?
if you look at the link a user posted
Controller.prototype.ComponentSelectionPageCallback = function() { var page = gui.pageWidgetByObjectName("ComponentSelectionPage"); var archiveCheckBox = gui.findChild(page, "Archive"); var latestCheckBox = gui.findChild(page, "Latest releases"); var fetchButton = gui.findChild(page, "FetchCategoryButton"); archiveCheckBox.click(); latestCheckBox.click(); fetchButton.click(); // ... }
Do you have that in script ?
As now the versions are grouped so i think the script is not totally updated with the new installers. -
@mrjj ,
No the part above mentioned is not there in script for this it is as below
Controller.prototype.ComponentSelectionPageCallback = function() { function list_packages() { var components = installer.components(); console.log("Available components: " + components.length); var packages = ["Packages: "]; for (var i = 0 ; i < components.length ;i++) { packages.push(components[i].name); } console.log(packages.join(" ")); } list_packages(); var widget = gui.currentPageWidget(); console.log(widget); widget.deselectAll(); widget.selectComponent("qt.qt5.5130"); widget.selectComponent("qt.qt5.5130.gcc_64"); // widget.deselectComponent(""); gui.clickButton(buttons.NextButton); }
-
@mrjj,
Hi,if i add the part
var page = gui.pageWidgetByObjectName("ComponentSelectionPage"); var archiveCheckBox = gui.findChild(page, "Archive"); var latestCheckBox = gui.findChild(page, "Latest releases"); var fetchButton = gui.findChild(page, "FetchCategoryButton"); archiveCheckBox.click(); latestCheckBox.click(); fetchButton.click(); // ...
it give error for click() as function doesn't exist
-
@Kallappa
sadly there is no commandline install version.We need to change these lines
widget.selectComponent("qt.qt5.5130");
widget.selectComponent("qt.qt5.5130.gcc_64");
but I not sure what names should be for
Qt5.14.0
or if they will be in Archive.Do you use the newest online installer from Qt site ?
It seems to have Qt5.14.0 in front
-
hi
You can try
widget.selectComponent("qt.qt5.14.2");
widget.selectComponent("qt.qt5.14.2.gcc_64");
and see if that works.I hope "Latest releases" is checked by default when running with this script else it wont work as nothing in list then.