Silent install Qt run installer sur le serveur ubuntu

je voulais savoir s'il y avait un moyen de faire une installation silencieuse de L'installateur Qt run sur le serveur Ubuntu?

Je veux dire by-pass les options de l'installateur et faire une installation par défaut?

26
demandé sur Antoine Lafarge 2014-08-03 17:45:46

3 réponses

la boîte à outils Qt est empaquetée à l'aide du QT Installer Framework (QtIFW). Les installateurs QtIFW supportent un --script option qui vous permet de contrôler programmatiquement l'installation via le Contrôleur API de Script. Ici qt-installer-noninteractive.qs le fichier pour installer Qt 5 de manière non interactive:

// Emacs mode hint: -*- mode: JavaScript -*-

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

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

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

Ce script montre comment sélectionner/désélectionner certains composants. Personnalisez pour vos besoins ou simplement supprimez les lignes entièrement pour une installation par défaut. De même, vous pouvez personnaliser ou supprimer les TargetDirectoryLineEdit ligne. Exécutez L'installateur Qt comme:

qt-opensource-linux-x64-5.5.1.run --script qt-installer-noninteractive.qs

Ajouter -platform minimal pour une installation sans tête. Les futurs installateurs basés sur les nouvelles versions de QtIFW devraient pouvoir utiliser un --silent option à la place (voir QTIFW-166).

Ajouter --verbose pour plus de commentaires sortie de la console (utile pour glaner les noms des composants, page de l'assistant de noms, etc)

42
répondu nocnokneo 2015-12-02 14:11:42

il y a peu de différences mineures dans la réponse aux questions de wizard pour un autre type de version de Qt. Pour le rendre plus simple, j'ai emballé un script générique pour extraire Qt d'un installateur hors ligne/en ligne.

Le script: qtci/extrait-qt-installer au maître · benlau/qtci

Exemple D'Utilisation:

extract-qt-installer qt-opensource-linux-x64-android-5.5.1.run ~/Qt

Variables D'Environnement"

VERBOSE [Optional] Set to "true" will enable VERBOSE output
QT_CI_PAGEAGES [Optional] Select the components to be installed instead of using default (eg. QT_CI_PAGEAGES="qt.59.gcc_64")

qtci/recettes au maître · benlau/qtci

5
répondu benlau 2017-10-06 14:21:29

à partir de l'installateur 3.0.2-online 29-11-2017, vous devez ajouter un délai dans votre script JS car le bouton "Suivant" de la page "Bienvenue" est désactivé pendant une seconde environ.

Controller.prototype.WelcomePageCallback = function() {
    gui.clickButton(buttons.NextButton, 3000);
}
5
répondu Nil 2017-12-14 18:45:42