Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Silent install Qt run installer on ubuntu server

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?

like image 853
Antoine Avatar asked Aug 03 '14 13:08

Antoine


People also ask

How do I install Qt without an account?

As of today, there is no way to download pre-built binaries from the official installer without logging in. You can, however, build Qt from source code (wiki.qt.io/Building_Qt_5_from_Git) or use an unofficial installer (github.com/miurahr/aqtinstall), both without logging in.

Where does Qt get installed on Ubuntu?

For the per user install, the default installation will be a subdirectory called Qt in the current working directory. For the global install, the default location is /opt/Qt.


1 Answers

Updated Answer:

Newer Qt installers have a proper CLI that allows you to do something like:

qt-unified-windows-x86-4.2.0-online.exe ^   --accept-licenses ^   --default-answer ^   --confirm-command install ^   qt.qt5.5158.win64_msvc2019_64 ^   qt.qt5.5158.qtcharts ^   qt.qt5.5158.debug_info ^   qt.qt5.5158.src ^   qt.tools.qtcreator 

See --help for all options. To figure out package names, go through a graphical install but stop at the final confirmation screen that lists the package names for all your selections.

Previous Answer

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

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 

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

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.

like image 130
nocnokneo Avatar answered Sep 26 '22 13:09

nocnokneo