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

利用 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包 或者说是在linux下的使用教程)