溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux系統(tǒng)怎么打包Deb文件

發(fā)布時(shí)間:2022-01-27 09:31:45 來(lái)源:億速云 閱讀:757 作者:kk 欄目:開(kāi)發(fā)技術(shù)

這篇文章跟大家分析一下“Linux系統(tǒng)怎么打包Deb文件”。內(nèi)容詳細(xì)易懂,對(duì)“Linux系統(tǒng)怎么打包Deb文件”感興趣的朋友可以跟著小編的思路慢慢深入來(lái)閱讀一下,希望閱讀后能夠?qū)Υ蠹矣兴鶐椭?。下面跟著小編一起深入學(xué)習(xí)“Linux系統(tǒng)怎么打包Deb文件”的知識(shí)吧。

DEB文件擴(kuò)展名是包含兩個(gè)gzip壓縮或bzip2壓縮的檔案壓縮標(biāo)準(zhǔn)的Unix存檔。每個(gè)存檔是在一個(gè)不同的任務(wù),實(shí)際數(shù)據(jù)和另一個(gè)用于安裝控制信息其中之一,那么Linux系統(tǒng)中如何打包deb?

linux-deb安裝包打包

1、目錄結(jié)構(gòu)
 以tomcat舉例
 1

Linux系統(tǒng)怎么打包Deb文件

2、常用配置

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|&ndash;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|&ndash;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|&ndash;listfiles

 dpkg -L my-deb
 1

配置軟件包 dpkg &ndash;configure

 dpkg --configure my-deb
 1
3、制作deb流程

準(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è)程序目錄的例子。

|&mdash;&mdash;JFeng-deb |&mdash;&mdash;&mdash;&mdash;usr |&mdash;&mdash;&mdash;&mdash;bin |&mdash;&mdash;可執(zhí)行文件(安裝后,就在你的/usr/bin生成相應(yīng)的可執(zhí)行文件) |&mdash;&mdash;&mdash;&mdash;share |&mdash;&mdash;&mdash;&mdash;icons

                 |&mdash;&mdash;deb.png(圖標(biāo)文件生成到/usr/share/icons/)
             |&mdash;&mdash;&mdash;&mdash;applications                          
                 |&mdash;&mdash;deb.desktop(桌面文件生成到/usr/share/applications/)
  |&mdash;&mdash;&mdash;&mdash;DEBIAN(大寫(xiě)、用來(lái)制作打包文件)
         |&mdash;&mdash;&mdash;&mdash;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解包
 dpkg -x [包名] [解包后的目錄](méi)
 # dpkg查看安裝包內(nèi)容
 dpkg -c [包名]

Linux有哪些版本

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)站!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI