前言

  • 制作deb的方式很多

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

概念 **

  • deb包

    • deb包是在linux系统下的一种安装包
    • 它是基于tar包的
      • 所以同样会记录着文件的权限信息(读、写、可执行)、所有者、用户组等
    • 可以使用 dpkg -l 命令来查看系统以及安装了哪些deb包。
  • 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

最新文章

  1. 给自己立下一个巨大的flag
  2. localForage——轻松实现 Web 离线存储
  3. SOL面向对象 五大原则
  4. 测试c语言函数调用性能因素之测试三
  5. 如何让Windows程序只运行一个程序实例?
  6. 关于Html无宽度居中
  7. VLAN间通信----实验
  8. ASP.Net MVC-Web API使用Entity Framework时遇到Loop Reference
  9. 编写自己的javascript功能库之Ajax(仿jquery方式)
  10. 运行ORB-SLAM笔记_使用篇(二)
  11. R formulas in Spark and un-nesting data in SparklyR: Nice and handy!
  12. 一颗简单的JDBC栗子
  13. RMAN备份介质的移动与再恢复测试 [ catalog start with ‘dir’ ]
  14. ubuntu18安装navicat
  15. 深入理解mongodb查询条件语句
  16. linux 终端上网设置
  17. 【六】php 错误异常处理
  18. &lt;基础&gt; PHP 数据类型
  19. 2018软工实践—Beta冲刺(7)
  20. Debugging Java Native Memory Leaks

热门文章

  1. json-server All In One
  2. SVG 场馆图
  3. React Hooks &amp; useCallback &amp; useMemo
  4. PBN离场定高转弯保护区插件发布测试
  5. 2021年-在windwos下如何用TOMACT发布一个系统(完整配置案列)
  6. SpringBoot 项目初始化
  7. SpringCloud之服务注册中心
  8. POJ1852-换向思考
  9. 【重磅】iNeuOS工业互联平台,系统集成业务模型和WEB组态视图建模集成3D模型
  10. 翻译:《实用的Python编程》03_02_More_functions