QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: haulm

deb 打包与 rpm 打包孰优孰劣?

[复制链接]
 楼主| 发表于 2006-11-18 11:26:45 | 显示全部楼层
嗯,郁闷--打包到最后阶段,有一个打包内容多了一个字母,在较大程序的打包过程中如果spec档中有打包前未发现的错误,在编译过程中中断是否有办法补救呢?
回复

使用道具 举报

发表于 2006-11-18 11:33:33 | 显示全部楼层
因为我们经常忘了开启数据库服务就运行了PHP代码,并非如你所述的那么危险。

…………………………
没有打开服务并不代表没有 so ……………

Windows 的 Dll 调用有自己的错误处理,而且 Windows 系统本体就尽量包含足够的程序。如果你想看看 Windows 缺失 Dll 的样子,你可以删掉 Windows\system 里面所有 MSV*.DLL 之后找些新版本的使用 VS 编写的程序。

我记得:
MSVC6.DLL 是 VC 6 的动态库,Win98 未包含(至少第一版没有)。
MSVC71.Dll 好像是 VS 2003 的动态库,WinME、2000(老版本)未包含。

Linux 的 so 管理和 Windows 的 Dll 管理不一样。

编译器的方式也不太相同,我建议你编译程序的时候使用 --enable-static 参数。
回复

使用道具 举报

发表于 2006-11-18 11:34:47 | 显示全部楼层
[quote:9435b483b3="haulm"]嗯,郁闷--打包到最后阶段,有一个打包内容多了一个字母,在较大程序的打包过程中如果spec档中有打包前未发现的错误,在编译过程中中断是否有办法补救呢?[/quote]
我也想知道……………
回复

使用道具 举报

发表于 2006-11-18 12:13:22 | 显示全部楼层
[quote:fb31a8a8dc="jiangtao9999"][quote:fb31a8a8dc="haulm"]嗯,郁闷--打包到最后阶段,有一个打包内容多了一个字母,在较大程序的打包过程中如果spec档中有打包前未发现的错误,在编译过程中中断是否有办法补救呢?[/quote]
我也想知道……………
[/quote]
呵呵,我都是重新打一次。
回复

使用道具 举报

发表于 2006-11-18 12:39:04 | 显示全部楼层

如果编译 OOo ……………
回复

使用道具 举报

发表于 2006-11-18 17:44:45 | 显示全部楼层
[quote:41aef9203b="jiangtao9999"]
如果编译 OOo ……………[/quote]
我都是用服务器编译的,反正等就是了。
回复

使用道具 举报

发表于 2006-11-18 17:58:01 | 显示全部楼层
回复

使用道具 举报

发表于 2006-11-18 19:07:46 | 显示全部楼层
[quote:975ad6a03a="sejishikong"][quote:975ad6a03a="jiangtao9999"]
如果编译 OOo ……………[/quote]
我都是用服务器编译的,反正等就是了。[/quote]
回复

使用道具 举报

发表于 2006-11-18 21:46:45 | 显示全部楼层
★★★
在较大程序的打包过程中如果 spec 档中有打包前未发现的错误,打包过程中断是否有办法补救呢?
打包过程中断是很常见的现象。并非没有办法补救,我们曾经用这种偷懒的方法对付需要反复编译巨大软件包的困境。但是也发现有时会造成一些难以发现,或者难以解释的错误。如果你在 make 阶段就出了错,我们建议重头来过,不建议使用这种方法,因为这是非常不可靠的。所以还是不要偷懒为好。

如果编译已经通过,但是在分包过程中中断,单纯为了验证 rpm 的分包是否有错,可以这样做:
1、不删除编译产生的所有文件(即 mBUILD 目录里的东西),并删除先前生成的虚拟根目录(即 /var/tmp/软件名称-版本号 目录)
2、建立一个当前 spec 的副本,删除其中 prepare 小节以后和 install 小节以前的部分,对这个 spec 运行建包命令,即可跳过所有编译过程,直接安装、打包。
回复

使用道具 举报

 楼主| 发表于 2006-11-20 11:29:08 | 显示全部楼层
由于PHP编译的复杂性(虽然包不大),没有借荐前人的spec档是写不好的。
回复

使用道具 举报

 楼主| 发表于 2008-5-5 22:47:16 | 显示全部楼层
N久前的主题了,现在看来讨论还是相当的经典,所以顶了一下。

RPM包体系的麻烦在于它的严格依赖,对于开发者来说它有利于理清整个系统,但对于用户安装软件来说,严格的依赖却是脚绊石,因为Linux上的应用越来越多的商业软件和它们的静态编译库,还有就是高版本的类库有时还能兼容低版本,所以用户应用上的是否应该保持版本号关联也正在模糊,但总的来说,如果有足够的人力、有那么一个团队在唯护系统及软件的安装的话,RPM包还是最佳的选择。
回复

使用道具 举报

发表于 2008-5-6 09:29:36 | 显示全部楼层
deb也有依赖,而且依赖是可以手工调整的。而且如果因为依赖不全造成软件不能运行,也挺麻烦的。
回复

使用道具 举报

发表于 2008-5-8 16:24:37 | 显示全部楼层
rpm 如果发行版带了全套 rpm 的数据库,好像可以自动识别以来的文件对应的是哪个 rpm 包,这个功能我认为减少了不少的rpm包依赖文件不知何处的问题。
如果rpm生成时,rpmbuild 可以自动根据rpm数据库里面依赖的 so 等库自动添加依赖的软件包名字,也能省下不少的事情。

至少不是输出一个 xxxx.so.x.x 的方式,让别人也有些解决依赖的根据。
回复

使用道具 举报

发表于 2008-5-8 19:50:56 | 显示全部楼层
有一部分包好像可以,不过具体的不太清楚。
回复

使用道具 举报

发表于 2008-5-8 20:43:21 | 显示全部楼层
我觉得弄这么一个数据库很有必要,以前我装 RH 是必须手动选择软件包去选上 rpm-db 的。

如果能自动加入数据库里面可以搜索到的包就更好了。
rpm 应该支持吧?
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-4-18 13:56 , Processed in 0.098468 second(s), 12 queries .

© 2021 Powered by Discuz! X3.5.

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