美文网首页
利用 Qt installer framework制作run包 

利用 Qt installer framework制作run包 

作者: 秋风夜雨_6119 | 来源:发表于2020-05-12 16:17 被阅读0次

    利用 Qt installer framework制作run包 或者说是在linux下的使用教程


    Qt install framework是qt官方的打包工具,可以将我们的软件打包成一个像window一样的单一安装包,或者说就是我们下载的qt的run包,双击就可以下一步下一步的安装。


    下载,安装与配置 Qt install framework


    下载地址:http://download.qt.io/official_releases/qt-installer-framework/

    给于可执行权限后直接双击安装

    建议进行环境变量配置
    编辑 .bashrc,在后面追加:


    export PATH=软件安装目录/bin:$PATH


    打包前的准备


    话不多说,上链接:https://blog.csdn.net/mars_xiaolei/article/details/83825447
    一定要看才行,不然打包出来的软件运行不了就不好了。


    重点:如何编写installscript.qs脚本


    直接上我的installscript.qs脚本,看明白就会了!

    /****************************************************************************
    **
    ** Copyright (C) 2017 The Qt Company Ltd.
    ** Contact: https://www.qt.io/licensing/
    **
    ** This file is part of the FOO module of the Qt Toolkit.
    **
    ** $QT_BEGIN_LICENSE:GPL-EXCEPT$
    ** Commercial License Usage
    ** Licensees holding valid commercial Qt licenses may use this file in
    ** accordance with the commercial license agreement provided with the
    ** Software or, alternatively, in accordance with the terms contained in
    ** a written agreement between you and The Qt Company. For licensing terms
    ** and conditions see https://www.qt.io/terms-conditions. For further
    ** information use the contact form at https://www.qt.io/contact-us.
    **
    ** GNU General Public License Usage
    ** Alternatively, this file may be used under the terms of the GNU
    ** General Public License version 3 as published by the Free Software
    ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
    ** included in the packaging of this file. Please review the following
    ** information to ensure the GNU General Public License requirements will
    ** be met: https://www.gnu.org/licenses/gpl-3.0.html.
    **
    ** $QT_END_LICENSE$
    **
    ****************************************************************************/
    
    function Component()
    {
        // default constructor
    }
    
    Component.prototype.createOperations = function()
    {
        // call default implementation to actually install README.txt!
        component.createOperations();
    
    /*
     这儿是原来就有的,因为主要讲linux上怎么用,所以并没有修改这儿
     实际使用的时候,可以删除这儿的if
     */
        if (systemInfo.productType === "windows") {
            component.addOperation("CreateShortcut", "@TargetDir@/README.txt", "@StartMenuDir@/README.lnk",
                "workingDirectory=@TargetDir@", "iconPath=%SystemRoot%/system32/SHELL32.dll",
                "iconId=2", "description=Open README file");
        }
    
    /* 这儿的判断有问题 */
    /**************************************详解********************************************
    
    QSysInfo 和 systemInfo 见qt installer framework 安装目录下 /doc/html/scripting-systeminfo.html
    
    *************************************************************************************/
        if (systemInfo.kernelType === "linux" || QSysInfo.productType === "debian" ) {
    
            /***************************************路径说明****************************************
            系统自带变量
            TargetDir   目标安装目录,由用户选择
            DesktopDir  用户桌面目录名(路径)。仅在Windows上可用
            RootDir 文件系统根目录
            HomeDir 当前用户的home目录
            ApplicationsDir 应用程序目录。例如,Windows上的C:\Program Files,Linux上/opt以及OS X上/Applications
            InstallerDirPath    包含安装程序可执行文件的目录
            InstallerFilePath   安装程序可执行文件的文件路径
            
            注意:变量是包含在“@@”中的,以@开始,必须要以@结尾
            
            具体的其它信息可以参考 https://www.cnblogs.com/oloroso/p/6775318.html#7_3_2_3
            **************************************************************************************/        
            
            /* 建立桌面图标 */
            var exec = "Exec=" + "@TargetDir@/Ledger.sh " + "\n"; /* 执行程序 */
            var icon = "Icon=" + "@TargetDir@/icon/logo.svg " + "\n"; /* 图标资源路径 */
            var version =  "Version=" + "1.5.0.0023 " + "\n" ; /* 版本号 */
            var name = "Name=" + "盼盼簿" + "\n"; /* 桌面图标显示名称 */
            var desktop = "Ledger" + ".desktop";  /* 桌面图标名 */
            var comment = name + exec + icon + version + "Terminal=false\nEncoding=UTF-8\nType=Application\n";
            component.addOperation("CreateDesktopEntry", desktop , comment);
    
            /*******************************************卸载图标*************************************
            一般来说,应该是有卸载图标的,但是这儿不想细讲,因为卸载图标你可以根据上面建立桌面图标进行。
            只要类似下面即可:
            var exec = "Exec=" + "@TargetDir@/maintenancetool" + "\n"; /* 卸载程序 不建议修改
            var icon = "Icon=" + "@TargetDir@/icon/logo.svg " + "\n"; /* 图标资源路径 建议修改 
            var version =  "Version=" + "1.5.0.0023 " + "\n" ; /* 版本号 
            var name = "Name=" + "盼盼簿" + "\n"; /* 桌面图标显示名称 可修改 
            var desktop = "Ledger_uninstall" + ".desktop";  /* 桌面图标名 可修改 
            var comment = name + exec + icon + version + "Terminal=false\nEncoding=UTF-8\nType=Application\n";
            component.addOperation("CreateDesktopEntry", desktop , comment);
            **************************************************************************************/     
       }
    }
    
    

    最后开始打包


    命令

    binarycreator -c config/config.xml -p packages 软件包名.run -v
    

    相关文章

      网友评论

          本文标题:利用 Qt installer framework制作run包 

          本文链接:https://www.haomeiwen.com/subject/kvobnhtx.html