如何制作Deb包和相應的軟件倉庫,其實這個很簡單。這裡推薦使用dpkg來進行deb包的創建、編輯和制作。
首先了解一下deb包的文件結構:
deb 軟件包裡面的結構,它具有DEBIAN和軟件具體安裝目錄(如etc, usr, opt, tmp等)。在DEBIAN目錄中起碼具有control文件,其次還可能具有postinst (postinstallation)、postrm (postremove)、preinst(preinstallation)、prerm (preremove)、copyright (版權)、changlog (修訂記錄)和conffiles等。
control: 這個文件主要描述軟件包的名稱(Package),版本(Version)以及描述(Description)等,是deb包必須具備的描述性文件,以便 於軟件的安裝管理和索引。同時為了能將軟件包進行充分的管理,可能還具有以下字段:
Section: 這個字段申明軟件的類別,常見的有`utils’, `net’, `mail’, `text’, `x11′ 等;
Priority: 這個字段申明軟件對於系統的重要程度,如`required’, `standard’, `optional’, `extra’ 等;
Essential: 這個字段申明是否是系統最基本的軟件包(選項為),如果是的話,這就表明該軟件是維持系統穩定和正常運行的軟件包,不允許任何形式的卸載(除非進行強制性 的卸載)
Architecture:申明軟件包結構,如基於`i386′, `m68k’, `sparc’, `alpha’, `powerpc’ 等構建,選項 為;
Source: 軟件包的源代碼名稱;
Depends: 軟件所依賴的其他軟件包和庫文件。如果是依賴多個軟件包和庫文件,彼此之間采用逗號隔開;
Pre-Depends: 軟件安裝前必須安裝、配置依賴性的軟件包和庫文件,它常常用於必須的預運行腳本需求;
Recommends: 這個字段表明推薦的安裝的其他軟件包和庫文件;
Suggests: 建議安裝的其他軟件包和庫文件。
對於control,這裡有一個完整的例子:
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: 這個文件是軟件安裝前所要進行的工作,工作執行會依據其中腳本進行;
postinst這個文件包含了軟件在進行正常目錄文件拷貝到系統後,所需要執行的配置工作。
prerm :軟件卸載前需要執行的腳本
postrm: 軟件卸載後需要執行的腳本
現在來看看如何修訂一個已有的deb包軟件
假 如您已經從本BioInfoServ Deb倉庫中獲取了bioinfoserv-base-directories_1.1-22_i386.deb,采用dpkg -x bioinfoserv-base-directories_1.1-22_i386.deb bioinfoserv-base-directories
這樣,您就可以將已經打包好的bioinfoserv-base- directories_1.1-22_i386.deb解開在bioinfoserv-base-directories的目錄中,此時解開的軟件包在 bioinfoserv-base-directories目錄中就是一些文件目錄和相應的文件。
采用dpkg -e bioinfoserv-base-directories_1.1-22_i386.deb bioinfoserv-base-directories/DEBIAN
此時,就可以將bioinfoserv-base-directories_1.1-22_i386.deb軟件包的規則文件解開,可以看見 control、postrm等包含腳本的文件,如果要修改軟件的信息和安裝行為,那麼就打開這些文件,進行修改。
修改完成,可以采用dpkg -b bioinfoserv-base-directories bioinfoserv-base-directories_1.1-22_i386.deb重新包裝這個軟件包。
如何從源碼打包deb?
這個可以參考deb 檔的包裝
如何制作deb倉庫?
一個簡單的deb倉庫可以采用apt-get install *的方式來進行快速軟件安裝。制作軟件包倉庫其實很簡單:
首先, 將制作好的deb包放在一個目錄下,當然您也可以依據軟件名稱建立子目錄,再存放deb包,如您建立一個Version1.1-Xubuntu6.06的 目錄存放已經建立的軟件包
隨後,采用sudo dpkg-scanpackages Version1.1-Xubuntu6.06 /dev/null | gzip -9c >Packages.gz建立倉庫索引文件
然後,解開Packages.gz以便編輯:gzip -d Packages.gz, 此時得到Packages文件
編輯,nano Packages,采用替換功能去掉Packages裡面的Version1.1-Xubuntu6.06/字段,然後保存
重新打包gzip Packages Packages.gz放到目錄Version1.1-Xubuntu6.06中。
現在設定/etc/apt/sources.list中的倉庫源,如果Version1.1-Xubuntu6.06目錄在你系統中的/var /www/Version1.1-Xubuntu6.06下的話,可在/etc/apt/sources.list加入:
deb file:////var/www/Version1.1-Xubuntu6.06/ /
保存後,采用apt-get update更新,此時就可以采用apt-get install bioinfoserv-base-directories_1.1-22_i386.deb安裝你創建好的deb軟件了。
當 然如果您需要將這個軟件倉庫發布到互聯網上,假定您的網絡地址為http://cydia.reyo.cn,其互聯網訪問的路徑為http: //cydia.reyo.cn/BioinfoServDeb/Version1.1-Xubuntu6.06,那麼在/etc/apt /spurce.list中添加:
deb http://cydia.reyo.cn/BioinfoServD … buntu6.06/ /
此時,其他人就可以采用互聯網使用您的deb軟件倉庫了。