代码: 全选
*) deb 文件
deb 是一个打包文件,可以用 file-roller 打开,
里面包含 control.tar.gz data.tar.gz debian-binary 三个文件,
分别是 打包的控制文件 ,打包的数据文件, deb文件格式
控制文件:
config 有 config 的包,可以用 dpkg-reconfigure packagename 来重新配置一些选项
templates 包含 dpkg-reconfigure 时的 本地化 文字
control 包的简介、依赖信息文件,一个包装完后把内容加到 /var/lib/dpkg/status 里去
md5sums 文件的md5
preinst 安装包,解压这个包里的文件之前执行
postinst 安装包,解压这个包里的文件之后执行
prerm 删除包,准备删除文件时执行
postrm 删除包,删除文件后执行
conffiles 文件列表,指明的文件在 apt-get install --reinstall 时也不会解压的文件 [注1]
[注1] 例如 fontconfig-config 包含文件 /etc/fonts/fonts.conf , 也在 confiles 里列出
测试 sudo mv /etc/fonts /etc/fonts_test && sudo apt-get install --reinstall fontconfig-config
恢复 sudo mv /etc/fonts /tmp && sudo mv /etc/fonts_test /etc/fonts
deb包装好后放到这些文件名前面加上包名放在 info 目录里,
形成 packagename.md5sums 类似文件,除了 control
另外生成 packagename.list 文件,列出所有文件
*) /var/lib/dpkg/ dpkg 的数据库
*) /var/lib/dpkg/ 里其它文件目录
status 这个文件包含所有系统中安装的包的信息
status-old
available 这个文件好像包含 以前装过的包的信息,用 apt-get remove --purge 删除的包信息也仍在
available-old
diversions 文件转移 [注2]
diversions-old
alternatives/ 选择配置 [注3]
info/ 包含所有已安装包的控制文件
lock 锁文件, apt-get synaptic 等不能同时运行
statoverride
statoverride-old
cmethopt
methods/
parts/
triggers/
updates/
[注2] 解决不同包提供同名文件问题,如 locate slocate 包提供 /usr/bin/locate 文件,
slocate 的 preinst 脚本里就有 dpkg-divert 先将 /usr/bin/locate 删除,
再创建 指向 slocate 的 /usr/bin/locate 链接
[注3] 用于解决同时安装多个类似功能程序问题,如 gij/sun-java6-bin gcc-4.1/gcc-4.2
查看可选文件 update-alternavives --list java # cc cpp ...
配置 update-alternavives --config java
*) 其它
*) apt-get
apt-get 下载的文件放在 /var/cache/apt/archives/ ,
apt-get autoclean 可以删除旧版本的 deb 包
apt-get clean 删除目录里所有 deb 包
*) 创建 deb
1) 准备 mydeb/usr/bin/???
创建 mydeb/DEBIAN/ 里的 control md5sums .. 文件
dpkg -b 包名 程序目录
2) 安装 devscripts
下载源码 apt-get source
用新版源码替换
到源码目录执行 debuild binary 在上一级目录生成二进制 deb
3) apt-get build-dep