您好,登錄后才能下訂單哦!
這篇文章跟大家分析一下“Linux系統怎么打包Deb文件”。內容詳細易懂,對“Linux系統怎么打包Deb文件”感興趣的朋友可以跟著小編的思路慢慢深入來閱讀一下,希望閱讀后能夠對大家有所幫助。下面跟著小編一起深入學習“Linux系統怎么打包Deb文件”的知識吧。
以tomcat舉例 1
control文件
control:這個文件主要描述軟件包的名稱(Package),版本(Version),Installed-Size(大小),Maintainer(打包人 和聯系方式)以及描述(Description)等,是deb包必須具備的描述性文件,以便于軟件的安裝管理和索引,Architecture(架構) 1
Package: Version: Installed-Size: Maintainer: Description: Architecture: 123456
字段 | 用途 | 例子/備注/其他 |
---|---|---|
Package | 程序名稱 | 中間不能有空格 |
Version | 軟件版本 | |
Description | 程序說明 | |
Section | 軟件類別 | utils, net, mail, text, x11 |
Priority | 軟件對于系統的重要程度 | required, standard, optional, extra等; |
Essential | 是否是系統最基本的軟件包 | yes/no,若為yes,則不允許卸載(除非強制性卸載) |
Architecture | 軟件所支持的平臺架構 | i386, amd64, m68k, sparc, alpha, powerpc等 |
Source | 軟件包的源代碼名稱 | |
Depends | 軟件所依賴的其他軟件包和庫文件 | 若依賴多個軟件包和庫文件,采用逗號隔開 |
Pre-Depends | 軟件安裝前必須安裝、 配置依賴性的軟件包和庫文件 | 常用于必須的預運行腳本需求 |
Recommends | 推薦安裝的其他軟件包和庫文件 | |
Suggests | 建議安裝的其他軟件包和庫文件 |
備注:
inst是install(安裝)的縮寫
pre是表示XX之前的前綴
post是表示XX之后的前綴
rm是remove(移除)的縮寫
preinst文件
在Deb包文件解包之前(即軟件安裝前),將會運行該腳本。可以停止作用于待升級軟件包的服務,直到軟件包安裝或升級完成。 1
postinst文件
負責完成安裝包時的配置工作。如新安裝或升級的軟件重啟服務。軟件安裝完后,執行該Shell腳本,一般用來配置軟件執行環境,必須以“#!/bin/sh”為首行。 1 #!/bin/sh echo "my deb" > /root/mydeb.log #!/bin/sh if [ "$1" = "configure" ]; then /Applications/MobileLog.app/MobileLog -install /bin/launchctl load -wF /System/Library/LaunchDaemons/com.iXtension.MobileLogDaemon.plist fi 1234567
prerm 文件
該腳本負責停止與軟件包相關聯的daemon服務。它在刪除軟件包關聯文件之前執行。 1 #!/bin/sh if [[ $1 == remove ]]; then /Applications/MobileLog.app/MobileLog -uninstall /bin/launchctl unload -wF /System/Library/LaunchDaemons/com.iXtension.MobileLogDaemon.plist fi 12345
postrm文件
負責修改軟件包鏈接或文件關聯,或刪除由它創建的文件。軟件卸載后,執行該Shell腳本,一般作為清理收尾工作,必須以“#!/bin/sh”為首行 1 #!/bin/sh rm -rf /root/mydeb.log 二、dpkg 詳解 123
打包dpkg -b
dpkg -b . mydeb-1.deb 第一個參數為將要打包的目錄名(.表示當前目錄),第二個參數為生成包的名稱 123
安裝(解包并配置) dpkg -i|–install <.deb file="" name="">
dpkg -i mydeb-1.deb 1
強制安裝
dpkg --force-depends -i mydeb-1.deb 1
解包:
dpkg --unpack mydeb-1.deb #該命令僅對 “mydeb-1.deb”進行解包操作,不會執行包配置工作。 12
卸載
dpkg -r|--remove 1
刪除包,但保留配置文件
dpkg -r my-deb dpkg -P|--purge my-deb 該命令刪除包,且刪除配置文件。 123
查看deb包是否安裝/deb包的信息 dpkg -s|–status
dpkg -s my-deb 1
查看deb包文件內容
dpkg -c mydeb-1.deb 1
查看當前目錄某個deb包的信息
dpkg --info mydeb-1.deb 1
解壓deb中所要安裝的文件
dpkg -x mydeb-1.deb mydeb-1 第一個參數為所要解壓的deb包,第二個參數為將deb包解壓到指定的目錄 12
解壓deb包中DEBIAN目錄下的文件(至少包含control文件)
dpkg -e mydeb-1.deb mydeb-1/DEBIAN 1
列出與該包關聯的文件 dpkg -L|–listfiles
dpkg -L my-deb 1
配置軟件包 dpkg –configure
dpkg --configure my-deb 1
準備好可執行的二進制文件,這個二進制文件要可執行,提前要考慮兼容性,如果程序有目錄要完整的一個程序目錄。
新建軟件文件夾 我們測試名稱為JFeng-deb
新建一個名為DEBIAN文件夾 此文件夾內存放控制信息
在DEBIAN里新建一個文本文檔, 名為control, 編碼為utf-8, 內容如下所示:
Package: JFeng Version: 1.1.0 Architecture: amd64 Section: utils Priority: optional Maintainer: MC Homepage: http://montecarlo.org.cn Description: Gale debug
然后我們創建對應的二進制包安裝完成后的路徑信息放置在DEBIAN的同級目錄下,也就是把當前的目錄當成根(“/”)目錄,制作完成后安裝時,當前目錄下除了DEBIAN目錄的其他目錄都會被默認安裝到系統的“/”目錄下。
下面是一個程序目錄的例子。
|——JFeng-deb |————usr |————bin |——可執行文件(安裝后,就在你的/usr/bin生成相應的可執行文件) |————share |————icons
|——deb.png(圖標文件生成到/usr/share/icons/) |————applications |——deb.desktop(桌面文件生成到/usr/share/applications/) |————DEBIAN(大寫、用來制作打包文件) |————control(描述deb包的信息必須的文件) 12345
完整實驗例子目錄結構:
JFeng-deb ├── DEBIAN │ └── control ├── opt │ └── JFeng │ ├── heart │ └── heart.desktop └── usr ├── bin │ └── heart -> /home/wxyz/桌面/JFeng-deb/opt/MyDeb/heart └── share ├── applications │ └── heart.desktop └── icons └── heart_98.png
directories, 6 files 打包
sudo dpkg -b JFeng-deb/ JFeng-linux-amd64.deb
# dpkg解包 dpkg -x [包名] [解包后的目錄] # dpkg查看安裝包內容 dpkg -c [包名]
Linux的版本有:Deepin、UbuntuKylin、Manjaro、LinuxMint、Ubuntu等版本。其中Deepin是國內發展最好的Linux發行版之一;UbuntuKylin是基于Ubuntu的衍生發行版;Manjaro是基于Arch的Linux發行版;LinuxMint默認的Cinnamon桌面類似Windows XP簡單易用;Ubuntu則是以桌面應用為主的Linux操作系統。
關于Linux系統怎么打包Deb文件就分享到這里啦,希望上述內容能夠讓大家有所提升。如果想要學習更多知識,請大家多多留意小編的更新。謝謝大家關注一下億速云網站!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。