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揹包和完全揹包中最後給出的偽 只有一處不同,故如果只有兩類物品 一類物品只能取一...