Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Installation and Deployment
  4. Qt silent installation on Linux server
Forum Updated to NodeBB v4.3 + New Features

Qt silent installation on Linux server

Scheduled Pinned Locked Moved Solved Installation and Deployment
25 Posts 3 Posters 9.6k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K Kallappa

    @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);
    }
            
    
    K Offline
    K Offline
    Kallappa
    wrote on last edited by
    #9

    @mrjj,

    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 applications

    if am wrong sorry for above information, i am new to this

    mrjjM 1 Reply Last reply
    1
    • K Kallappa

      @mrjj,

      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 applications

      if am wrong sorry for above information, i am new to this

      mrjjM Offline
      mrjjM Offline
      mrjj
      Lifetime Qt Champion
      wrote on last edited by
      #10

      @Kallappa
      Hi
      Well it worked so it seems fine. Good work.

      What you mean make is missing?
      But it did install a Qt version for you to use ?

      K 1 Reply Last reply
      0
      • mrjjM mrjj

        @Kallappa
        Hi
        Well it worked so it seems fine. Good work.

        What you mean make is missing?
        But it did install a Qt version for you to use ?

        K Offline
        K Offline
        Kallappa
        wrote on last edited by Kallappa
        #11

        @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/files

        InstallationLog.txt  
        MaintenanceTool.dat 
         components.xml 
         installerResources
        Licenses             
        MaintenanceTool.ini  
        dist            
        network.xml
        MaintenanceTool      
        Tools              
        installer.dat
        
        mrjjM 1 Reply Last reply
        0
        • K Kallappa

          @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/files

          InstallationLog.txt  
          MaintenanceTool.dat 
           components.xml 
           installerResources
          Licenses             
          MaintenanceTool.ini  
          dist            
          network.xml
          MaintenanceTool      
          Tools              
          installer.dat
          
          mrjjM Offline
          mrjjM Offline
          mrjj
          Lifetime Qt Champion
          wrote on last edited by
          #12

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

          K 1 Reply Last reply
          0
          • mrjjM mrjj

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

            K Offline
            K Offline
            Kallappa
            wrote on last edited by
            #13

            @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);
            }
            
            K 1 Reply Last reply
            0
            • K Kallappa

              @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);
              }
              
              K Offline
              K Offline
              Kallappa
              wrote on last edited by
              #14

              @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

              mrjjM 1 Reply Last reply
              0
              • K Kallappa

                @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

                mrjjM Offline
                mrjjM Offline
                mrjj
                Lifetime Qt Champion
                wrote on last edited by
                #15

                @Kallappa
                Hmm thats odd. it should work.

                Do you need a special Qt or jus the newest ?

                maybe you can just change the script to do that and ignore the Archive thing.

                K 1 Reply Last reply
                0
                • mrjjM mrjj

                  @Kallappa
                  Hmm thats odd. it should work.

                  Do you need a special Qt or jus the newest ?

                  maybe you can just change the script to do that and ignore the Archive thing.

                  K Offline
                  K Offline
                  Kallappa
                  wrote on last edited by
                  #16

                  @mrjj
                  Hi,
                  yes, i just need Qt5.14.0 or Qt5.14.2 installation on server,
                  thats it.

                  if any other ways kindly suggest here or the Qt's reference doc if any for command line installation in ubuntu

                  mrjjM 1 Reply Last reply
                  0
                  • K Kallappa

                    @mrjj
                    Hi,
                    yes, i just need Qt5.14.0 or Qt5.14.2 installation on server,
                    thats it.

                    if any other ways kindly suggest here or the Qt's reference doc if any for command line installation in ubuntu

                    mrjjM Offline
                    mrjjM Offline
                    mrjj
                    Lifetime Qt Champion
                    wrote on last edited by mrjj
                    #17

                    @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
                    alt text

                    1 Reply Last reply
                    0
                    • mrjjM Offline
                      mrjjM Offline
                      mrjj
                      Lifetime Qt Champion
                      wrote on last edited by mrjj
                      #18

                      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.

                      K 1 Reply Last reply
                      1
                      • mrjjM mrjj

                        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.

                        K Offline
                        K Offline
                        Kallappa
                        wrote on last edited by
                        #19

                        @mrjj,

                        yes sure, Thanks, for your time
                        just now i tried with widget.selectAll(); instead of selecting each one
                        it works for me on Local system and now i will try on server.

                        thanks again

                        mrjjM 1 Reply Last reply
                        0
                        • K Kallappa

                          @mrjj,

                          yes sure, Thanks, for your time
                          just now i tried with widget.selectAll(); instead of selecting each one
                          it works for me on Local system and now i will try on server.

                          thanks again

                          mrjjM Offline
                          mrjjM Offline
                          mrjj
                          Lifetime Qt Champion
                          wrote on last edited by
                          #20

                          @Kallappa
                          Ok, i cross fingers.
                          You might get a shitload of other stuff but hopefully, that won't matter :)

                          K 1 Reply Last reply
                          0
                          • R Offline
                            R Offline
                            rtvisions
                            wrote on last edited by
                            #21

                            Do yourself a favor and DO NOT USE the offical Qt installers anymore. Use aqt install: https://github.com/miurahr/aqtinstall - Works perfectly on every platform.

                            1 Reply Last reply
                            2
                            • mrjjM mrjj

                              @Kallappa
                              Ok, i cross fingers.
                              You might get a shitload of other stuff but hopefully, that won't matter :)

                              K Offline
                              K Offline
                              Kallappa
                              wrote on last edited by
                              #22

                              Thanks @mrjj it worked for me on server also. :)

                              mrjjM 1 Reply Last reply
                              1
                              • K Kallappa

                                Thanks @mrjj it worked for me on server also. :)

                                mrjjM Offline
                                mrjjM Offline
                                mrjj
                                Lifetime Qt Champion
                                wrote on last edited by
                                #23

                                @Kallappa
                                Good to hear :)
                                So did it install tons of stuff or just a few ?
                                I wonder what one will get with selectAll :)

                                K 1 Reply Last reply
                                0
                                • mrjjM mrjj

                                  @Kallappa
                                  Good to hear :)
                                  So did it install tons of stuff or just a few ?
                                  I wonder what one will get with selectAll :)

                                  K Offline
                                  K Offline
                                  Kallappa
                                  wrote on last edited by
                                  #24

                                  @mrjj

                                  hmm, Your right it is installed with all files related qt5.14.2

                                  mrjjM 1 Reply Last reply
                                  0
                                  • K Kallappa

                                    @mrjj

                                    hmm, Your right it is installed with all files related qt5.14.2

                                    mrjjM Offline
                                    mrjjM Offline
                                    mrjj
                                    Lifetime Qt Champion
                                    wrote on last edited by
                                    #25

                                    @Kallappa
                                    Ok i kinda though it might. but was not sure.
                                    Thank you for reporting back.

                                    1 Reply Last reply
                                    0

                                    • Login

                                    • Login or register to search.
                                    • First post
                                      Last post
                                    0
                                    • Categories
                                    • Recent
                                    • Tags
                                    • Popular
                                    • Users
                                    • Groups
                                    • Search
                                    • Get Qt Extensions
                                    • Unsolved