LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1299|回复: 1

制作 Ubuntu 和 Debian 都可以用的 deb 包

[复制链接]
发表于 2005-4-18 21:38:13 | 显示全部楼层 |阅读模式
制作 Ubuntu 包的朋友请注意一下依赖关系,即 Depends: 字段


一般情况下,用 dh_make 生成的框架里,
debian/control 里边都是类似
Depends: ${shlibsepends}, ${miscepends}  

这样的

而 Ubuntu 的好些包的版本号都会带上 ubuntu 后缀
那么这种 Depends: ${shlibsepends}, ${miscepends}  在 Ubuntu 下编译,就会扩展为类似
libgcc1 (>= 1:4.0-0pre6ubuntu4) , 这样带 ubuntu 后缀的依赖关系
这个在 Sid 里是不满足依赖关系的

包管理系统会认为 1:4.0-0  和  1:4.0-0pre6ubuntu4 是不一样的版本
几十系统里装了 libgcc1 1:4.0-1  ,  包管理系统也会认为不满足依赖关系
造成 deb 包无法安装



我现在的临时解决方法是手工指定依赖关系
把类似 libgcc1 (>= 1:4.0-0pre6ubuntu4) 的修改为 libgcc1
即去掉版本号

或者用 libgcc1 (>= 1:4.0-0pre6ubuntu4) | libgcc1 (>= 1:4.0-0)


我想更彻底的是修改 apt 和 dpkg 的版本号规则
让她像 Gentoo 的 emerge 那样处理




示例:

http://www.linuxsky.net/down/ftp ... _0.8.0-1.2_i386.deb
这个是我修正了依赖关系的 chmsee 包,
把依赖 libgtkhtml3.2-11 去掉版本号要求

在 Ubuntu / Sid / sarge 上都可以正常安装

Ubuntu 的所谓不兼容一般都是由于版本号的 ubuntu 后缀,并不是什么不兼容
发表于 2005-4-19 16:51:34 | 显示全部楼层
华华功德无量啊!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表