zoukankan      html  css  js  c++  java
  • 【linux】制作deb包方法 **


    前言

    • 制作deb的方式很多
      • 使用 dpkg-deb 方式
      • 使用 checkinstall 方式
      • 使用 dh_make 方式
      • 修改原有的 deb 包

    概念 **

    • deb包
      • deb包是在linux系统下的一种安装包
      • 它是基于tar包的
        • 所以同样会记录着文件的权限信息(读、写、可执行)、所有者、用户组等
      • 可以使用 dpkg -l 命令来查看系统以及安装了哪些deb包。
        • f70a2515aa8be5c267263722ef4f225f.png
    • deb包组成(一般分成两部)**
      • 控制信息 (放在 DEBIAN 目录下)
        • 本 deb 包的 DEBIAN 目录下有 changelog、control、copyright、postinst、postrm 等文件(不一定全部都要有)
          • changelog
            • 记录了该deb包的作者、版本以及最后一次更新日期等信息
          • control
            • 记录了包名、版本号、架构、维护者及描述等信息
          • copyright
            • 文件记录了一些版权信息
          • postinst
            • 安装后执行的配置文件
          • postrm
            • 软件卸载后需要执行的脚本
      • 安装的内容
        • 目录方式和文件系统根目录一样
        • 最终存放着需要运行的脚本

    创建自己的deb包

    • 创建目录

      • 创建目录 myDeb
      • 创建目录 myDeb/DEBIAN
      • 创建目录 myDeb/home/lss/work
    • 创建文件

      • myDeb/DEBIAN 目录下
    • 构建 deb 包

      • 运行 sudo dpkg-deb -b ../mydeb ../MyAdcSoftware_1.0.0_armhf.deb

      • sdpkg -c myHello_1.0.0_armhf.deb 查看制作包的内容

      • sdpkg -i myHello_1.0.0_armhf.deb 安装了该软件

      • sdpkg -s myHello 查看是否安装了该软件

      • 运行效果

    文件源码

    • myDeb/home/lss/work/myHello.sh
    #/** @file         myHello.sh
    # *  @brief        简要说明
    # *  @details      详细说明
    # *  @author       lzm
    # *  @date         2020-11-08 19:33:53
    # *  @version      v1.0
    # *  @copyright    Copyright By lizhuming, All Rights Reserved
    # *
    # **********************************************************
    # *  @LOG 修改日志:
    # **********************************************************
    #*/
    
    #!/bin/bash
    
    echo hello
    
    • myDeb/DEBIAN/control
    Package: myHello
    Version: 1.0.0
    Section: free
    Priority: optional
    Essential: no
    Architecture: armhf
    Maintainer: lss <821350342@qq.com>
    Provides: MyHello
    Description: hello detect
    
    • myDeb/DEBIAN/postinst
    if [ "$1" = "upgrade" ] || [ "$1" = "install" ];then
      echo "install"
    fi
    
    • myDeb/DEBIAN/postrm
    if [ "$1" = "upgrade" ] ; then
    echo "upgrade"
    elif [ "$1" = "remove" ] || [ "$1" = "purge" ] ; then
    echo "remove"
    fi
    
  • 相关阅读:
    Web开发学习之路--Eclipse+Tomcat+mysql之初体验
    Android必知必会-Stetho调试工具
    Android开发学习之路--NDK、JNI之初体验
    OpenMP基础----以图像处理中的问题为例
    leetcode 2 Add Two Numbers
    Java在linux下调用C/C++生成的so文件
    OpenCV特征点检测匹配图像-----添加包围盒
    [POJ 1442] Black Box
    [POJ 2019] Cornfields
    [HDU 1806] Frequent values
  • 原文地址:https://www.cnblogs.com/lizhuming/p/13946825.html
Copyright © 2011-2022 走看看