打deb包、建立 apt源倉庫

來源:互聯網
上載者:User

   如何製作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軟體倉庫了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.