【linux】制作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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM