deb 打包

Linuxdeb包的製作方法

  1. 使用deb

  1. 查看deb包含有哪些文件(不安裝)

$dpkg -c xxx.deb //安裝前根據deb文件查看

$dpkg -L debname //安裝後根據包名查看

2.安裝deb

$dpkg -i xxx.deb

注意,如果提示錯誤,可以加參數—force-all強制安裝,但不推薦這樣做

3.查看某個文件屬於哪個deb

$dpkg -S filepath

4.移除deb

$dpkg -r debname

  1. 製作deb

1)deb包通常包含兩部分:控制信息(DEBIAN目錄)、安裝內容(模擬root目錄)

2)通過解開已有的deb包看其中內容

i.釋放安裝內容到dirname目錄中

$dpkg -X xxx.deb dirname

ii.釋放控制信息到當前目錄下的DEBIAN子目錄中

$dpkg -e xxx.deb

  1. 安裝打包工具

apt-getinstall dh-make checkinstall

  1. 使用checkinstall打包

在源代碼的目錄下創建Makefile文件。格式按照Makefile的規定格式,例如:

PROG=hello

CC=gcc

BINDIR=/usr/bin

INSTALL=cp

hello:hello.c

$(CC)-o $(PROG) hello.c

clean:

rm-f $(PROG)

install:

$(INSTALL)$(PROG) $(BINDIR)

uninstall:

rm-rf $(BINDIR)/$(PROG)

checkinstall就是在make後,取代makeinstall這個步驟,生成deb包。在make以後,輸入checkinstal,然後會出現:

Thepackage documentation directory ./doc-pak does not exist.

ShouldI create a default set of package docs? [y]:

的提示,選y,自己輸入deb包的描述,輸入一個空行結束

然後會出現

0- Maintainer: [ jarlyyn@Home ]

1- Summary: [ Package created with checkinstall 1.6.0 ]

2- Name: [ syncevolution ]

3- Version: [ 0.4 ]

4- Release: [ 1 ]

5- License: [ GPL ]

6- Group: [ checkinstall ]

7- Architecture: [ i386 ]

8- Source location: [ syncevolution-0.4 ]

9- Alternate source location: [ ]

10- Requires: [ ]

按需要選取相應數字編輯你需要改變的項目,當然,如果你什麼都不需要改變也可以

然後輸入回車,開始生成deb包。

  1. 使用dh_make創建deb

  1. 下載的源代碼包

$tar xvjf xxx.tar.bz2 //解包

$mv xxx xxx-0.98 //改目錄名爲包名-版本號

$cd xxx-0.98

$dh_make -s -e [email protected] -f ../xxx-0.98.tar.bz2 //生成製作deb包所需的默認信息

此時當前目錄下生成了debian目錄,此時通常修改兩個文件:

修改debian/control文件,配置你的信息,

1)Package包名

2)Version版本

3)Architecture目標機架構(i386,arm等)

4)Maintainer維護者

5)Depends依賴軟件包

6)Description描述

  修改debian/rules腳本,它決定編譯參數(也可以不改)

$dpkg-buildpackage -rfakeroot

此時可以看到,上層目錄中已建立了deb

  1. 自己的項目

使用autoconfautomake來創建Makefile文件(詳細步驟見其他文檔)

進入項目文件夾

$dh_make -s -e [email protected] -f ../xxx-0.98.tar.bz2 //生成製作deb包所需的默認信息

$dpkg-buildpackage -rfakeroot


製作的deb包使用dpkg–i xxx.deb安裝。

發佈了28 篇原創文章 · 獲贊 4 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章