zoukankan      html  css  js  c++  java
  • 制作deb安装包


    今天讲一讲如何制作deb安装包。

    制作安装包的命令很简单,以我近期的项目为例:

    dpkg -b hsclient/ hsclient_1.0.0_arm64.deb
    

    以上命令会将hsclient文件夹的内容制作成hsclient_1.0.0_arm64.deb安装包。制作时间取决于hsclient文件夹的大小。

    所以,主要工作量在于hsclient文件夹的准备。

    使用tree命令查看hsclient目录结构如下:

    image

    可执行文件及相关依赖存放在HSClient目录,这里为了方便展示,我将里面的内容清空了,deb包安装完成后,可执行文件所在目录即为/opt/hbfec/HSClient。

    control文件内容如下:

    package: hsclient
    version: 1.0.0
    architecture: arm64
    maintainer: hbfec
    description: hsclient application
    

    主要指定包名、版本号、系统架构、维护者、描述,根据实际情况填写即可。

    desktop文件内容如下:

    [Desktop Entry]
    Name=HSClient
    Name[zh_CN]=会商客户端
    Comment=HSClient application
    Exec=/opt/hbfec/HSClient/HSClient
    Icon=/usr/share/icons/hsclient.png
    Terminal=false
    Type=Application
    Categories=Network;WebBrowser;
    MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;
    StartupNotify=true
    

    主要指定可执行文件相关配置:名称、可执行文件路径、图标、应用类型等。

    注意:需要给desktop文件增加可执行权限(如:744)

    程序图标这块没有固定的实现。简单实现,就放在/usr/share/icons目录下即可,推荐48*48大小,desktop中需要写绝对路径Icon=/usr/share/icons/hsclient.png。完整实现的话,icons目录下需要创建hicolor目录、kylin-icon-theme目录以及kylin-icon-theme-one目录,目录下都需要放置对应大小的图片,desktop中可以直接写文件名Icon=hsclient,可参考已安装的其他应用程序。

    以上内容都准备好以后,就可以通过文章开始处提到的命令制作安装包了。

    需要指出的是,在DEBIAN目录中至少要有control文件,还可以有preinst(preinstallation)、postinst(postinstallation)、prerm(preremove)、postrm(postremove)、copyright (版权)、changlog (修订记录)和conffiles等。

    preinst文件:解包前运行的脚本。
    postinst文件:解包完成并将目录文件拷贝到系统后,所需要执行的配置工作。
    prerm文件:软件卸载前需要执行的脚本。
    postrm文件:软件卸载后需要执行的脚本。
    control文件:描述软件包的名称(Package),版本(Version),描述(Description)等,是deb包必须具备的描述性文件,以便于软件的安装管理和索引。

    将Qt程序打包成deb文件,发布、安装及使用

    https://blog.csdn.net/qq_35605018/article/details/107808787


    对一个deb包的解压、修改、重新打包全过程方法

    https://blog.csdn.net/yygydjkthh/article/details/36695243


    ubuntu下对Qt工程进行deb打包发布

    https://www.cnblogs.com/magicdmer/p/13457843.html

  • 相关阅读:
    常用地市
    UML 类图总结
    什么是线程和进程
    一切皆是对象
    反射、Attribute
    js 面试题
    委托
    使用NPOI导出Excel引发异常(IsReadOnly = “book.IsReadOnly”引发了类型“System.NotImplementedException”的异常)
    lambda表达式封装对数据库的查询
    lambda表达式Expression<Func<Person, bool>> 、Func<Person, bool>区别
  • 原文地址:https://www.cnblogs.com/cute/p/15389438.html
Copyright © 2011-2022 走看看