您好,登錄后才能下訂單哦!
這篇文章跟大家分析一下“Linux系統(tǒng)怎么打包Deb文件”。內(nèi)容詳細(xì)易懂,對(duì)“Linux系統(tǒng)怎么打包Deb文件”感興趣的朋友可以跟著小編的思路慢慢深入來(lái)閱讀一下,希望閱讀后能夠?qū)Υ蠹矣兴鶐椭?。下面跟著小編一起深入學(xué)習(xí)“Linux系統(tǒng)怎么打包Deb文件”的知識(shí)吧。
以tomcat舉例 1
control文件
control:這個(gè)文件主要描述軟件包的名稱(chēng)(Package),版本(Version),Installed-Size(大小),Maintainer(打包人 和聯(lián)系方式)以及描述(Description)等,是deb包必須具備的描述性文件,以便于軟件的安裝管理和索引,Architecture(架構(gòu)) 1
Package: Version: Installed-Size: Maintainer: Description: Architecture: 123456
字段 | 用途 | 例子/備注/其他 |
---|---|---|
Package | 程序名稱(chēng) | 中間不能有空格 |
Version | 軟件版本 | |
Description | 程序說(shuō)明 | |
Section | 軟件類(lèi)別 | utils, net, mail, text, x11 |
Priority | 軟件對(duì)于系統(tǒng)的重要程度 | required, standard, optional, extra等; |
Essential | 是否是系統(tǒng)最基本的軟件包 | yes/no,若為yes,則不允許卸載(除非強(qiáng)制性卸載) |
Architecture | 軟件所支持的平臺(tái)架構(gòu) | i386, amd64, m68k, sparc, alpha, powerpc等 |
Source | 軟件包的源代碼名稱(chēng) | |
Depends | 軟件所依賴(lài)的其他軟件包和庫(kù)文件 | 若依賴(lài)多個(gè)軟件包和庫(kù)文件,采用逗號(hào)隔開(kāi) |
Pre-Depends | 軟件安裝前必須安裝、 配置依賴(lài)性的軟件包和庫(kù)文件 | 常用于必須的預(yù)運(yùn)行腳本需求 |
Recommends | 推薦安裝的其他軟件包和庫(kù)文件 | |
Suggests | 建議安裝的其他軟件包和庫(kù)文件 |
備注:
inst是install(安裝)的縮寫(xiě)
pre是表示XX之前的前綴
post是表示XX之后的前綴
rm是remove(移除)的縮寫(xiě)
preinst文件
在Deb包文件解包之前(即軟件安裝前),將會(huì)運(yùn)行該腳本??梢酝V棺饔糜诖?jí)軟件包的服務(wù),直到軟件包安裝或升級(jí)完成。 1
postinst文件
負(fù)責(zé)完成安裝包時(shí)的配置工作。如新安裝或升級(jí)的軟件重啟服務(wù)。軟件安裝完后,執(zhí)行該Shell腳本,一般用來(lái)配置軟件執(zhí)行環(huán)境,必須以“#!/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 文件
該腳本負(fù)責(zé)停止與軟件包相關(guān)聯(lián)的daemon服務(wù)。它在刪除軟件包關(guān)聯(lián)文件之前執(zhí)行。 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文件
負(fù)責(zé)修改軟件包鏈接或文件關(guān)聯(lián),或刪除由它創(chuàng)建的文件。軟件卸載后,執(zhí)行該Shell腳本,一般作為清理收尾工作,必須以“#!/bin/sh”為首行 1 #!/bin/sh rm -rf /root/mydeb.log 二、dpkg 詳解 123
打包dpkg -b
dpkg -b . mydeb-1.deb 第一個(gè)參數(shù)為將要打包的目錄名(.表示當(dāng)前目錄),第二個(gè)參數(shù)為生成包的名稱(chēng) 123
安裝(解包并配置) dpkg -i|–install <.deb file="" name="">
dpkg -i mydeb-1.deb 1
強(qiáng)制安裝
dpkg --force-depends -i mydeb-1.deb 1
解包:
dpkg --unpack mydeb-1.deb #該命令僅對(duì) “mydeb-1.deb”進(jìn)行解包操作,不會(huì)執(zhí)行包配置工作。 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包文件內(nèi)容
dpkg -c mydeb-1.deb 1
查看當(dāng)前目錄某個(gè)deb包的信息
dpkg --info mydeb-1.deb 1
解壓deb中所要安裝的文件
dpkg -x mydeb-1.deb mydeb-1 第一個(gè)參數(shù)為所要解壓的deb包,第二個(gè)參數(shù)為將deb包解壓到指定的目錄 12
解壓deb包中DEBIAN目錄下的文件(至少包含control文件)
dpkg -e mydeb-1.deb mydeb-1/DEBIAN 1
列出與該包關(guān)聯(lián)的文件 dpkg -L|–listfiles
dpkg -L my-deb 1
配置軟件包 dpkg –configure
dpkg --configure my-deb 1
準(zhǔn)備好可執(zhí)行的二進(jìn)制文件,這個(gè)二進(jìn)制文件要可執(zhí)行,提前要考慮兼容性,如果程序有目錄要完整的一個(gè)程序目錄。
新建軟件文件夾 我們測(cè)試名稱(chēng)為JFeng-deb
新建一個(gè)名為DEBIAN文件夾 此文件夾內(nèi)存放控制信息
在DEBIAN里新建一個(gè)文本文檔, 名為control, 編碼為utf-8, 內(nèi)容如下所示:
Package: JFeng Version: 1.1.0 Architecture: amd64 Section: utils Priority: optional Maintainer: MC Homepage: http://montecarlo.org.cn Description: Gale debug
然后我們創(chuàng)建對(duì)應(yīng)的二進(jìn)制包安裝完成后的路徑信息放置在DEBIAN的同級(jí)目錄下,也就是把當(dāng)前的目錄當(dāng)成根(“/”)目錄,制作完成后安裝時(shí),當(dāng)前目錄下除了DEBIAN目錄的其他目錄都會(huì)被默認(rèn)安裝到系統(tǒng)的“/”目錄下。
下面是一個(gè)程序目錄的例子。
|——JFeng-deb |————usr |————bin |——可執(zhí)行文件(安裝后,就在你的/usr/bin生成相應(yīng)的可執(zhí)行文件) |————share |————icons
|——deb.png(圖標(biāo)文件生成到/usr/share/icons/) |————applications |——deb.desktop(桌面文件生成到/usr/share/applications/) |————DEBIAN(大寫(xiě)、用來(lái)制作打包文件) |————control(描述deb包的信息必須的文件) 12345
完整實(shí)驗(yàn)例子目錄結(jié)構(gòu):
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 [包名] [解包后的目錄](méi) # dpkg查看安裝包內(nèi)容 dpkg -c [包名]
Linux的版本有:Deepin、UbuntuKylin、Manjaro、LinuxMint、Ubuntu等版本。其中Deepin是國(guó)內(nèi)發(fā)展最好的Linux發(fā)行版之一;UbuntuKylin是基于Ubuntu的衍生發(fā)行版;Manjaro是基于Arch的Linux發(fā)行版;LinuxMint默認(rèn)的Cinnamon桌面類(lèi)似Windows XP簡(jiǎn)單易用;Ubuntu則是以桌面應(yīng)用為主的Linux操作系統(tǒng)。
關(guān)于Linux系統(tǒng)怎么打包Deb文件就分享到這里啦,希望上述內(nèi)容能夠讓大家有所提升。如果想要學(xué)習(xí)更多知識(shí),請(qǐng)大家多多留意小編的更新。謝謝大家關(guān)注一下億速云網(wǎng)站!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。