技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機(jī)純凈版,64位旗艦版,綠色軟件,免費(fèi)軟件下載基地!

當(dāng)前位置:主頁(yè) > 教程 > 服務(wù)器類 >

打deb包、創(chuàng)建 apt源倉(cāng)庫(kù)

來(lái)源:技術(shù)員聯(lián)盟┆發(fā)布時(shí)間:2019-01-16 00:01┆點(diǎn)擊:201

  首先了解一下deb包的文件結(jié)構(gòu):

  deb 軟件包里面的結(jié)構(gòu),它具有DEBIAN和軟件具體安裝目錄(如etc, usr, opt, tmp等)。在DEBIAN目錄中起碼具有control文件,其次還可能具有postinst (postinstallation)、postrm (postremove)、preinst(preinstallation)、prerm (preremove)、copyright (版權(quán))、changlog (修訂記錄)和conffiles等。

  control: 這個(gè)文件主要描述軟件包的名稱(Package),版本(Version)以及描述(Description)等,是deb包必須具備的描述性文件,以便 于軟件的安裝管理和索引。同時(shí)為了能將軟件包進(jìn)行充分的管理,可能還具有以下字段:

  Section: 這個(gè)字段申明軟件的類別,常見(jiàn)的有`utils’, `net’, `mail’, `text’, `x11′ 等;

  Priority: 這個(gè)字段申明軟件對(duì)于系統(tǒng)的重要程度,如`required’, `standard’, `optional’, `extra’ 等;

  Essential: 這個(gè)字段申明是否是系統(tǒng)最基本的軟件包(選項(xiàng)為),如果是的話,這就表明該軟件是維持系統(tǒng)穩(wěn)定和正常運(yùn)行的軟件包,不允許任何形式的卸載(除非進(jìn)行強(qiáng)制性 的卸載)

  Architecture:申明軟件包結(jié)構(gòu),如基于`i386′, `m68k’, `sparc’, `alpha’, `powerpc’ 等構(gòu)建,選項(xiàng) 為;

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

  Depends: 軟件所依賴的其他軟件包和庫(kù)文件。如果是依賴多個(gè)軟件包和庫(kù)文件,彼此之間采用逗號(hào)隔開;

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

  Recommends: 這個(gè)字段表明推薦的安裝的其他軟件包和庫(kù)文件;

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

  對(duì)于control,這里有一個(gè)完整的例子:

  Package: bioinfoserv-arb

  Version: 2007_14_08

  Section: BioInfoServ

  Priority: optional

  Depends: bioinfoserv-base-directories (>= 1.0-1), xviewg (>= 3.2p1.4), xfig (>= 1:3), libstdc++2.10-glibc2.2

  Suggests: fig2ps

  Architecture: i386

  Installed-Size: 26104

  Maintainer: Mingwei Liu

  Provides: bioinfoserv-arb

  Description: The ARB software is a graphically oriented package comprising various tools for sequence database handling and data analysis.

  If you want to print your graphs you probably need to install the suggested fig2ps package.

  preinst: 這個(gè)文件是軟件安裝前所要進(jìn)行的工作,工作執(zhí)行會(huì)依據(jù)其中腳本進(jìn)行;

  postinst這個(gè)文件包含了軟件在進(jìn)行正常目錄文件拷貝到系統(tǒng)后,所需要執(zhí)行的配置工作。

  prerm :軟件卸載前需要執(zhí)行的腳本

  postrm: 軟件卸載后需要執(zhí)行的腳本

  現(xiàn)在來(lái)看看如何修訂一個(gè)已有的deb包軟件

  假 如您已經(jīng)從本BioInfoServ Deb倉(cāng)庫(kù)中獲取了bioinfoserv-base-directories_1.1-22_i386.deb,采用dpkg -x bioinfoserv-base-directories_1.1-22_i386.deb bioinfoserv-base-directories

  這樣,您就可以將已經(jīng)打包好的bioinfoserv-base- directories_1.1-22_i386.deb解開在bioinfoserv-base-directories的目錄中,此時(shí)解開的軟件包在 bioinfoserv-base-directories目錄中就是一些文件目錄和相應(yīng)的文件。

  采用dpkg -e bioinfoserv-base-directories_1.1-22_i386.deb bioinfoserv-base-directories/DEBIAN

  此時(shí),就可以將bioinfoserv-base-directories_1.1-22_i386.deb軟件包的規(guī)則文件解開,可以看見(jiàn) control、postrm等包含腳本的文件,如果要修改軟件的信息和安裝行為,那么就打開這些文件,進(jìn)行修改。

  修改完成,可以采用dpkg -b bioinfoserv-base-directories bioinfoserv-base-directories_1.1-22_i386.deb重新包裝這個(gè)軟件包。

  如何從源碼打包deb?

  這個(gè)可以參考deb 檔的包裝

  如何制作deb倉(cāng)庫(kù)?

  一個(gè)簡(jiǎn)單的deb倉(cāng)庫(kù)可以采用apt-get install *的方式來(lái)進(jìn)行快速軟件安裝。制作軟件包倉(cāng)庫(kù)其實(shí)很簡(jiǎn)單:

  首先, 將制作好的deb包放在一個(gè)目錄下,當(dāng)然您也可以依據(jù)軟件名稱建立子目錄,再存放deb包,如您建立一個(gè)Version1.1-Xubuntu6.06的 目錄存放已經(jīng)建立的軟件包

  隨后,采用sudo dpkg-scanpackages Version1.1-Xubuntu6.06 /dev/null | gzip -9c >Packages.gz建立倉(cāng)庫(kù)索引文件

  然后,解開Packages.gz以便編輯:gzip -d Packages.gz, 此時(shí)得到Packages文件

  編輯,nano Packages,采用替換功能去掉Packages里面的Version1.1-Xubuntu6.06/字段,然后保存

  重新打包gzip Packages Packages.gz放到目錄Version1.1-Xubuntu6.06中。

  現(xiàn)在設(shè)定/etc/apt/sources.list中的倉(cāng)庫(kù)源,如果Version1.1-Xubuntu6.06目錄在你系統(tǒng)中的/var /www/Version1.1-Xubuntu6.06下的話,可在/etc/apt/sources.list加入:

  deb file:////var/www/Version1.1-Xubuntu6.06/ /

  保存后,采用apt-get update更新,此時(shí)就可以采用apt-get install bioinfoserv-base-directories_1.1-22_i386.deb安裝你創(chuàng)建好的deb軟件了。