国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

多個(gè)deb包合并成一個(gè)deb包的方法

這篇具有很好參考價(jià)值的文章主要介紹了多個(gè)deb包合并成一個(gè)deb包的方法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


前言

在UOS系統(tǒng)中默認(rèn)沒有開啟開發(fā)者模式,此時(shí)若需要安裝多個(gè)deb包時(shí),只能通過手動(dòng)一個(gè)個(gè)點(diǎn)擊deb包并輸入密碼進(jìn)行安裝,若依賴包很多時(shí),這種方法非常的麻煩;我們需要提供一種方法將多個(gè)deb合并成一個(gè)deb包提供給用戶使用。

下面將一步步說明如何通過dpkg-deb管理工具實(shí)現(xiàn)deb提取和重新打包的工作。


一 deb基礎(chǔ)知識(shí)

“.deb”是Debian軟件包格式的文件擴(kuò)展名, deb包是Unixar的標(biāo)準(zhǔn)歸檔,將包文件信息以及包內(nèi)容,經(jīng)過gzip和tar打包而成;一個(gè)deb包通常由兩部分組成,控制腳本程序數(shù)據(jù)
多個(gè)deb包合并成一個(gè)deb包的方法,linux,deb包合并,dpkg,tigervnc,deb制作

1.1 目錄結(jié)構(gòu)

下面以tigervnc-viewer程序的目錄結(jié)構(gòu)為例進(jìn)行說明,如下圖所示:

多個(gè)deb包合并成一個(gè)deb包的方法,linux,deb包合并,dpkg,tigervnc,deb制作
tigervnc-viewer是當(dāng)前工程的根目錄,被當(dāng)做Linux系統(tǒng)的root目錄,deb安裝時(shí)也會(huì)按照當(dāng)前的目錄結(jié)構(gòu)將需要程序、庫以及各種腳本文件安裝到實(shí)際的linux系統(tǒng)中;DEBIAN是控制腳本目錄,usr目錄是程序數(shù)據(jù)目錄。

1.2 包結(jié)構(gòu)說明

DEBIAN目錄中主要存放控制腳本,在該目錄中至少有control文件,還可能有postinst(postinstallation)、postrm(postremove)、preinst(preinstallation)、prerm(preremove)、copyright (版權(quán))、changlog (修訂記錄)和conffiles等。

最常用的 5 個(gè)腳本文件:
? control,用了記錄軟件標(biāo)識(shí),版本號(hào),平臺(tái),依賴信息等數(shù)據(jù);
? preinst,在安裝數(shù)據(jù)包之前運(yùn)行的腳本,需要有執(zhí)行權(quán)限
? postinst,在安裝數(shù)據(jù)包之后運(yùn)行的腳本,需要有執(zhí)行權(quán)限;
? prerm,卸載時(shí),在刪除文件之前運(yùn)行的腳本,需要有執(zhí)行權(quán)限;
? postrm,在刪除文件之后運(yùn)行的腳本,需要有執(zhí)行權(quán)限.

control文件:描述軟件包的名稱(Package),版本(Version),描述(Description)等,是deb包必須具備的描述性文件,以便于軟件的安裝管理和索引。

為了能將軟件包進(jìn)行充分的管理,可能還具有以下字段 :
  Section:申明軟件的類別,常見的有utils, net, mail, text, x11 等;
  Priority:申明軟件對(duì)于系統(tǒng)的重要程度,如required, standard, optional, extra 等;
  Essential:申明是否是系統(tǒng)最基本的軟件包(選項(xiàng)為yes/no),如果是的話,這就表明該軟件是維持系統(tǒng)穩(wěn)定和正常運(yùn)行的軟件包,不允許任何形式的卸載(除非進(jìn)行強(qiáng)制性的卸載)
  Architecture:軟件包結(jié)構(gòu),如基于i386, amd64,m68k, sparc, alpha, powerpc’ 等;
  Source:軟件包的源代碼名稱;
  Depends:軟件所依賴的其他軟件包和庫文件。如果是依賴多個(gè)軟件包和庫文件,彼此之間采用逗號(hào)隔開;
  Pre-Depends:軟件安裝前必須安裝、配置依賴性的軟件包和庫文件,它常常用于必須的預(yù)運(yùn)行腳本需求;
  Recommends:這個(gè)字段表明推薦的安裝的其他軟件包和庫文件;
  Suggests:建議安裝的其他軟件包和庫文件。

二、多個(gè)deb包合并一個(gè)deb包

下面以tigervnc-viewer為例說明,將多個(gè)deb包合并成一個(gè)deb包,系統(tǒng)UOS 1050教育版。

2.1 下載離線deb包

先清空/var/cache/apt/archives目錄下deb包然后在安裝tigervnc-viewer。

sudo apt-get clean                   #清空/var/cache/apt/archives目錄下deb包
sudo apt-get install tigervnc-viewer #安裝tigervnc-viewer安裝包和依賴包

若在當(dāng)前系統(tǒng)下未安裝過 tigervnc-viewer和缺失的相關(guān)依賴包,則會(huì)在/var/cache/apt/archives目錄下下載多個(gè)deb包,如下所示:

多個(gè)deb包合并成一個(gè)deb包的方法,linux,deb包合并,dpkg,tigervnc,deb制作
從信息以上可以知道在當(dāng)前系統(tǒng)下,tigervnc-viewer程序還缺少libfltk1.3和libfltk-images1.3兩個(gè)依賴庫。

2.2 解壓安裝包

將這三個(gè)安裝包c(diǎn)p到其他目錄下,進(jìn)行安裝包解壓和重新打包動(dòng)作,這里目錄為jx目錄。
解壓命令如下:

dpkg-deb -R tigervnc-viewer_1.9.0.1-1+dde_amd64.deb  tigervnc
dpkg-deb -R libfltk-images1.3_1.3.4-9_amd64.deb  tk-images
dpkg-deb -R libfltk1.3_1.3.4-9_amd64.deb  tk

執(zhí)行命令后會(huì)新生成三個(gè)目錄,分別是tigervnc、tk-images、tk,如下圖所示:
多個(gè)deb包合并成一個(gè)deb包的方法,linux,deb包合并,dpkg,tigervnc,deb制作
dpkg-deb可以從deb包中提取出控制腳本和程序數(shù)據(jù),以便下一步用于合并deb包,相關(guān)內(nèi)容可以參考篇文章。Linux dpkg和dpkg-deb常用參數(shù)使用說明

2.3 deb包合并

從2.1步驟中知道,當(dāng)前tigervnc-viewer程序還缺少libfltk1.3和libfltk-images1.3兩個(gè)依賴庫文件,而本次需要將這兩個(gè)依賴庫文件合并到tigervnc-viewer;為了保證合并后的安裝包可以正確識(shí)別出依賴,我們需要修改tigervnc的control文件中的Depends字段;

整體合并打包流程如下:

1. 提取libfltk庫文件中的control文件中的Depends字段
2. 提取libfltk-images1.3庫文件中的control文件信息中的Depends段
3. 移除tigervnc-viewer control文件中關(guān)于libfltk和libfltk-images1.3 Depends信息。
4. 合并這三個(gè)目錄下的control 文件中的Depends信息,有重復(fù)的需要?jiǎng)h掉
5. 合并libfltk、libfltk-images1.3、tigervnc-viewer程序數(shù)據(jù)到vncviewer目錄下
6. 執(zhí)行打包命令dpkg-deb -b vncviewer vncviewer.deb 

libfltk庫文件中的Depends字段
多個(gè)deb包合并成一個(gè)deb包的方法,linux,deb包合并,dpkg,tigervnc,deb制作
libfltk-images1.3庫文件中的Depends字段
多個(gè)deb包合并成一個(gè)deb包的方法,linux,deb包合并,dpkg,tigervnc,deb制作
tigervnc-viewer程序中的Depends字段。
多個(gè)deb包合并成一個(gè)deb包的方法,linux,deb包合并,dpkg,tigervnc,deb制作
合并后的Depends信息如下:

libc6 (>= 2.15), libfontconfig1 (>= 2.12.6), libgcc1 (>= 1:3.0), libgnutls30 (>= 3.6.6), 
libjpeg62-turbo (>= 1.3.1), libpam0g (>= 0.99.7.1), libstdc++6 (>= 5), libx11-6, libxcursor1 (>> 1.1.2),libxext6, 
libxfixes3, libxft2 (>> 2.1.1), libxinerama1, libxrender1, zlib1g (>= 1:1.1.4),  libpng16-16 (>= 1.6.2-1), 

在純凈的UOS系統(tǒng)上經(jīng)過驗(yàn)證vncviewer.deb可以正常執(zhí)行,如下圖所示:
多個(gè)deb包合并成一個(gè)deb包的方法,linux,deb包合并,dpkg,tigervnc,deb制作
我們?cè)趉ylin系統(tǒng)上驗(yàn)證該安裝包時(shí),系統(tǒng)可以正確的給出告警信息如下:
多個(gè)deb包合并成一個(gè)deb包的方法,linux,deb包合并,dpkg,tigervnc,deb制作

三、使用合并deb包可能存在的問題

如果我們的UOS系統(tǒng)上已安裝了vncviewer.deb安裝包,后續(xù)在單獨(dú)安裝libfltk-images1.3和libfltk庫時(shí)

sudo apt-get install libfltk1.3

安裝包管理器會(huì)給出錯(cuò)誤信息,提示文件已存在
多個(gè)deb包合并成一個(gè)deb包的方法,linux,deb包合并,dpkg,tigervnc,deb制作
為了解決該問題只能使用強(qiáng)制安裝命令:

dpkg -i  --force-overwrite xx.deb

四、總結(jié)

以上就是使用dpkg-deb命令實(shí)現(xiàn)多個(gè)deb包合并成一個(gè)deb包的方法,大家根據(jù)自己的需要進(jìn)行使用,整體過程還是比較簡單,多注意control文件中的Depends字段的準(zhǔn)確。

參考文章:
https://www.cnblogs.com/Genesis-007/p/5219960.html
https://blog.csdn.net/GW569453350game/article/details/49301427文章來源地址http://www.zghlxwxcb.cn/news/detail-600105.html

到了這里,關(guān)于多個(gè)deb包合并成一個(gè)deb包的方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 如何將兩個(gè)pdf合并成一個(gè)?pdf合并技巧分享

    如何將兩個(gè)pdf合并成一個(gè)?pdf合并技巧分享

    在日常工作過程當(dāng)中,我們經(jīng)常需要處理一些文件,而文件的處理往往是瑣碎的,想要提高工作效率,需要選擇一些合適的方法,并掌握一定的技巧,那么,如何將兩個(gè)pdf合并成一個(gè)?pdf合并技巧有哪些呢?接下來就針對(duì)這些問題做一下介紹,希望可以幫助您更為高效的完成文

    2024年02月10日
    瀏覽(20)
  • 將多個(gè)單獨(dú)的 Excel 文件合并成一個(gè),并添加標(biāo)題行

    要將多個(gè)單獨(dú)的 Excel 文件合并成一個(gè),并添加標(biāo)題行,可以使用 Python 的 pandas 庫。以下是一個(gè)示例代碼,假設(shè)要合并的 Excel 文件都在同一個(gè)文件夾中: import os import pandas as pd # 指定文件夾路徑 folder_path = \\\'path/to/folder\\\' # 獲取文件夾中所有 Excel 文件名 excel_files = [f for f in os.l

    2024年02月13日
    瀏覽(16)
  • 多個(gè)word轉(zhuǎn)化成PDF文件后再合并成一個(gè)PDF文件

    多個(gè)word 文檔 轉(zhuǎn)化成 PDF 文件, 最后合并成一個(gè)PDF文件

    2024年02月10日
    瀏覽(22)
  • 數(shù)據(jù)處理(11):3Dmax中如何操作可以將多個(gè)對(duì)象實(shí)體合并成一個(gè)對(duì)象實(shí)體

    數(shù)據(jù)處理(11):3Dmax中如何操作可以將多個(gè)對(duì)象實(shí)體合并成一個(gè)對(duì)象實(shí)體

    在使用3Dmax中,經(jīng)常會(huì)有將多個(gè)對(duì)象拼接成一個(gè)完整的對(duì)象得需求,只是看每個(gè)人的解決方法是否一致了。但是如果是合并多個(gè)對(duì)象,推薦使用下面兩種方法 通過使用附加功能合并對(duì)象 在3Dmax中,雖然分組工具可以將對(duì)象組合成一個(gè)整體,但是這種分組綁定是可以隨時(shí)解開的

    2024年02月04日
    瀏覽(21)
  • seatunnel hive source 未設(shè)置分隔符導(dǎo)致多個(gè)字段合并成一個(gè)的問題定位解決

    seatunnel hive source 未設(shè)置分隔符導(dǎo)致多個(gè)字段合并成一個(gè)的問題定位解決

    seatunnel hive source 未設(shè)置分隔符導(dǎo)致多個(gè)字段沒有切分全保存在一個(gè)字段中了,翻看源碼發(fā)現(xiàn)分隔符是是通過delimiter設(shè)置的,只要設(shè)置這個(gè)delimiter=\\\",\\\"就可以了。 設(shè)置這個(gè)屬性 delimiter=“,” 他的默認(rèn)值是u0001,如果沒有設(shè)置delimiter屬性則會(huì)根據(jù)文件類型判斷,如果是csv則使用”,”

    2024年02月16日
    瀏覽(26)
  • C#利用Costura.Fody制作綠色單文件程序(含多個(gè)Dll)合并成一個(gè)Exe)

    開發(fā)程序的時(shí)候經(jīng)常會(huì)引用一些第三方的DLL,然后編譯生成的exe文件就不能脫離這些DLL獨(dú)立運(yùn)行了。這樣交給用戶很不方便,希望的效果是直接交付一個(gè)exe文件。 這時(shí)候就需要借助一款名為Fody.Costura的插件。Fody.Costura是一個(gè)Fody框架下的插件,可通過Nuget安裝到VS工程中。安裝

    2024年02月09日
    瀏覽(21)
  • 怎么將pdf合并成一個(gè)?將pdf合并成一個(gè)的方法

    怎么將pdf合并成一個(gè)?將pdf合并成一個(gè)的方法

    在日常工作和學(xué)習(xí)中,我們經(jīng)常會(huì)遇到需要將多個(gè)PDF文件合并成一個(gè)的情況。這不僅能夠提高文件管理的便捷性,還能節(jié)省存儲(chǔ)空間并使閱讀更加流暢。那么,怎么將pdf合并成一個(gè)呢?在本文中,我將為您介紹幾種簡單實(shí)用的方法,現(xiàn) 在日常工作和學(xué)習(xí)中,我們經(jīng)常會(huì)遇到需

    2024年02月10日
    瀏覽(16)
  • 將多個(gè)EXCEL 合并一個(gè)EXCEL多個(gè)sheet

    合并老版本xls using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using NPOI.HSSF.UserModel; using System.IO; using NPOI.XSSF.UserModel; namespace Merge_Excel { ? ? public partial class Form1

    2024年02月10日
    瀏覽(30)
  • Matlab怎樣合并兩個(gè)矩陣(怎樣合并多個(gè)矩陣)為一個(gè)矩陣

    ? ?Hi,科研大神,厭倦了某寶的Chat賬號(hào)總是封號(hào)失聯(lián)嗎?需要穩(wěn)定的單獨(dú)賬號(hào)嗎?聯(lián)系下方企鵝號(hào)走起來,都是科研人為大家做點(diǎn)有意義的事情,為您的科研助力~ 如果您需要穩(wěn)定的-Chat哥婆特賬號(hào)or圖書文獻(xiàn)資料- 請(qǐng)加企鵝號(hào)-都是科研人為大家科研助力~ ?

    2024年02月11日
    瀏覽(28)
  • 多個(gè)excel文件合并為一個(gè)excel

    Python openpyxl庫實(shí)現(xiàn)將同一目錄下的excel文件合并為一個(gè)excel功能(包含格式,不含宏),運(yùn)行程序后,輸入要生成的excel文件名稱即可

    2024年02月16日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包