天天看点

【linux】制作deb包方法 **

目录

  • 前言
  • 概念 **
  • 创建自己的deb包
  • 文件源码

  • 制作deb的方式很多
    • 使用 dpkg-deb 方式
    • 使用 checkinstall 方式
    • 使用 dh_make 方式
    • 修改原有的 deb 包
  • 李柱明博客:https://www.cnblogs.com/lizhuming/
  • 本文链接:https://www.cnblogs.com/lizhuming/p/13946825.html

  • deb包
    • deb包是在linux系统下的一种安装包
    • 它是基于tar包的
      • 所以同样会记录着文件的权限信息(读、写、可执行)、所有者、用户组等
    • 可以使用

      dpkg -l

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

  • 创建目录
    • 创建目录 myDeb
    • 创建目录 myDeb/DEBIAN
    • 创建目录 myDeb/home/lss/work
  • 创建文件
    • 在 myDeb/DEBIAN 目录下
  • 构建 deb 包
    • 运行

      sudo dpkg-deb -b ../mydeb ../MyAdcSoftware_1.0.0_armhf.deb

      • 【linux】制作deb包方法 **
    • sdpkg -c myHello_1.0.0_armhf.deb

      查看制作包的内容
      • 【linux】制作deb包方法 **
    • sdpkg -i myHello_1.0.0_armhf.deb

      安装了该软件
      • 【linux】制作deb包方法 **
    • sdpkg -s myHello

      查看是否安装了该软件
      • 【linux】制作deb包方法 **
    • 运行效果
      • 【linux】制作deb包方法 **

  • 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 <[email protected]>
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