天天看點

【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
           

繼續閱讀