製作Ubuntu deb包的三種方法

2021-07-11 17:15:18 字數 2118 閱讀 1244

original url: 

一、使用deb包

1. 檢視deb包含有哪些檔案(不安裝)

$ dpkg -c ***.deb // 安裝前根據deb檔案檢視

$ dpkg -l debname // 安裝後根據包名檢視

2. 安裝deb包

$ dpkg -i ***.deb

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

3. 檢視某個檔案屬於哪個deb包

$ dpkg -s filepath

4. 移除deb包

$ dpkg -r debname

二、製作deb包

1. 原理

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

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

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

$ dpkg -x ***.deb dirname

ii.釋放控制資訊到當前目錄下的debian子目錄中

$ dpkg -e ***.deb

2. 準備

1) 實驗平台

ubuntu 8.04

2) 安裝相關工具

$ apt-get install dh-make checkinstall

4) 注意:對於自己寫的**製做deb包,建議用autoconf, automake生成編譯指令碼,例程見

3. 方法一: 使用checkinstall方法建立deb包

checkinstall不僅可以生成deb包,還可以生成rpm包,使用簡單,但是不靈活,功能粗糙,只做介紹,不推薦使用

$ tar xvjf fceu-0.98.12.src.tar.bz2 // 解包

$ cd fceu;./configure;make // 編譯

$ checkinstall -d -y -install=no –pkgversion-0.98 –pkgname=fceuxy –pkgcource=./ –showinstall=no -default make install // 製作deb包

此時當前目錄下生成了deb包

4. 方法二: 使用dpkg方法建立deb包

dpkg是最基本的製作deb包的方法,推薦使用

$ tar xvjf fceu-0.98.12.src.tar.bz2 // 解包

$ mv fceu fceu-0.98 // 改目錄名為 包名-版本號

$ cd fceu-0.98

$ dh_make -s -e [email protected] -f ../fceu-0.98.12.src.tar.bz2 // 生成製作deb包所需的預設資訊

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

修改debian/control檔案,配置你的資訊,具體欄位見參考部分

修改debian/rules指令碼,它決定編譯引數(也可以不改)

$ dpkg-buildpackage -***keroot

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

5. 方法三: 修改已有deb包

自己建立deb所需目錄結構(控制資訊和安裝內容),然後打包,一般使用這種方法來修改已有的deb包,而不是新建deb包,命令如下:

$ dpkg -x ***.deb test // 解包安裝內容

$ cd test

$ dpkg -e ../***.deb // 解包控制資訊

修改其中內容

$ cd ../

$ dpkg -b dirname ***_new.deb // 重新打包

三、參考

1. debian/control檔案中資訊說明

1) package 包名

2) version 版本

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

4) maintainer 維護者

5) depends 依賴軟體包

6) description 描述

2. checkinstall詳細例程

linux/l-cn-checkinstall/index.html">

3. 自己製作deb包例程

4. 官方的debian製作手冊(比較長)

製作Ubuntu deb包的三種方法

一 使用deb包 1.檢視deb包含有哪些檔案 不安裝 dpkg c deb 安裝前根據deb檔案檢視 dpkg l debname 安裝後根據包名檢視 2.安裝deb包 dpkg i deb 注意,如果提示錯誤,可以加引數 force all強制安裝,但不推薦這樣做 3.檢視某個檔案屬於哪個deb...

ubuntu deb安裝包製作方法

sudo apt get install dh make fakeroot 注 fakeroot 模擬root身份。2 製作makefile檔案 提供install和uninstall命令 3 把二進位制檔案以及makefile放入乙個帶有版本資訊的目錄中 client 0.1 makefile c...

混合三種揹包問題

問題 如果將01揹包 完全揹包 多重揹包混合起來。也就是說,有的物品只可以取一次 01揹包 有的物品可以取無限次 完全揹包 有的物品可以取的次數有乙個上限 多重揹包 應該怎麼求解呢?01揹包與完全揹包的混合 考慮到在01揹包和完全揹包中最後給出的偽 只有一處不同,故如果只有兩類物品 一類物品只能取一...