日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

OS / Linux / 制作 deb 包

發布時間:2024/10/14 linux 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OS / Linux / 制作 deb 包 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、deb 簡介

deb 是 debian 系列系統下的安裝包,基于 tar 包,因此本身會記錄文件的權限(讀 / 寫 / 可執行)以及所有者 / 用戶組。

由于 Unix 類系統對權限、所有者、組的嚴格要求,而 deb 格式安裝包又經常會涉及到系統比較底層的操作,所以權限等的設置尤其重要。

二、deb包使用方法

dpkg -c xxx.deb // 安裝前根據 deb 文件查看 dpkg -L debname // 安裝后根據包名查看 dpkg -i xxx.deb // 安裝 deb 包,如果提示錯誤,可以加參數 —force-all 強制安裝,但不推薦這樣做 dpkg -r debname // 移除 deb 包 dpkg -S filepath // 查看某個文件屬于哪個 deb 包 dpkg -X xxx.deb dirname // 釋放安裝內容到 dirname 目錄中 dpkg -e xxx.deb // 釋放控制信息到當前目錄下的 DEBIAN 子目錄中

三、deb 包的數據組成

deb 包里面的結構:DEBIAN 目錄軟件具體安裝目錄(模擬安裝目錄)(如etc、usr、opt、tmp等)。

在 DEBIAN 目錄中至少有 control 文件,還可能有 postinst(postinstallation)、postrm(postremove)、preinst(preinstallation)、prerm(preremove)、copyright、changlog (修訂記錄)和 conffiles 等。


控制文件描述

control:用了記錄軟件標識,版本號,平臺,依賴信息等數據。

preinst:在解包 data.tar.gz 前運行的腳本。

postinst:在解包數據后運行的腳本。

prerm:卸載時,在刪除文件之前運行的腳本。

postrm:在刪除文件之后運行的腳本。

1、control文件

描述軟件包的名稱(Package),版本(Version),描述(Description)等,是 deb 包必須劇本的描述性文件,以便于軟件的安裝管理和索引。為了能將軟件包進行充分的管理,可能還具有以下字段:

Section:申明軟件的類別,常見的有`utils’, `net’, `mail’, `text’, `x11′ 等;

Priority:申明軟件對于系統的重要程度,如`required’, `standard’, `optional’, `extra’ 等;

Essential:申明是否是系統最基本的軟件包(選項為 yes / no),如果是的話,這就表明該軟件是維持系統穩定和正常運行的軟件包,不允許任何形式的卸載(除非進行強制性的卸載)

Architecture:軟件包結構,如基于`i386′, ‘amd64’,`m68k’, `sparc’, `alpha’, `powerpc’ 等;

Source:軟件包的源代碼名稱;

Depends:軟件所依賴的其他軟件包和庫文件。如果是依賴多個軟件包和庫文件,彼此之間采用逗號隔開;

Pre-Depends:軟件安裝前必須安裝、配置依賴性的軟件包和庫文件,它常常用于必須的預運行腳本需求;

Recommends:這個字段表明推薦的安裝的其他軟件包和庫文件;

Suggests:建議安裝的其他軟件包和庫文件。

control文件完整示例:

Package: cmakeBaseQt Version: 1.0.0 Section: free Priority: optional Essential: no Architecture: amd64 Maintainer: xclsoftware@163.com Provides: xcl Description: Basic qt project(此處必須空一行再結束)

四、使用 dpkg 命令制作 deb 包

制作如下目錄及文件:

postinst文件內容:

# !/bin/sh if [ "$1" = "upgrade" ] || [ "$1" = "install" ];thenecho "install" fi

postrm文件內容:

# !/bin/sh if [ "$1" = "upgrade" ] ; thenecho "upgrade" elif [ "$1" = "remove" ] || [ "$1" = "purge" ] ; thenecho "remove" fi

完成第一步的制作目錄及文件后可以給做好的 cmake_base_qt 目錄進行打包成 .deb 包

TARGET_NAME=cmake_base_qt ARCHITECTURE=amd64 VERSION=1.0.0cp ./code/build/${TARGET_NAME} ./package/etc/cmake_base_qt sudo dpkg-deb -b ./package ./${TARGET_NAME}-${ARCHITECTURE}-${VERSION}.debecho end

現在完成了deb包的制作。

參考:linux下制作deb的方法總結 - 知乎

源代碼:GitHub - xuchanglong/cmake_base_qt: 提供最基本的使用cmake的打包工程,包括qrc、deb的制作。

(SAW:Game Over!)

總結

以上是生活随笔為你收集整理的OS / Linux / 制作 deb 包的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。