二进制发行包还是编译安装

这引出了一个真正的问题——在linux下安装软件时,使用二进制发行包还是编译安装?

[@more@]以前对于源码编译安装软件的方式还是很喜欢的,然而实际使用中我发现,编译安装会出现各种各样的问题,比如centos下编译PHP,centos5.2中除了curl-devel,还必须安装好e2fsprogs-devel krb5-devel libidn-devel openssl-devel才可以把curl编译进php,5.3版则不需要,但5.3版centos中make时又要加 ZEND_EXTRA_LIBS='-liconv' ,否则可能出现 undefined reference to 'libiconv_open' 错误,5.2版则不需要,如果php依赖的libmcrypt和mhash也是编译安装,可能还需要把生成的文件链接到/usr/lib文件夹下...你说头大不头大。其结果就是每次软件升级,我都要查看有没有新的编译错误出现,一旦出现新错误又要赶快去解决,而且这类琐碎的问题对我自身技术的提高没有任何帮助,大多数情况只不过是弥补开发人员的小疏漏,比如以前碰到过开发者在ubuntu下编译测试过,但有使用者发现到centos下就报错,原因是二者的gcc不一样,源码里有1句c的代码在ubuntu下的gcc通得过,centos下通不过……这时我才理解为什么有专家建议普通用户不要自己编译安装各种软件,尽量直接使用二进制发行包。
当然,php是属于比较极端的例子,它依赖大量的c语言库,我编译python、mysql、nginx时都是很简单的,没出过什么问题,但这还只是编译过程,在使用过程中出现问题呢?每个人的编译结果都会有细微差别,各种软件搭配到一起,出现的问题更是千奇百怪,一个全部是编译安装的软件堆栈(指lamp这样的组合),很可能出现的问题是别人很少遇到的,网上也不一定找得到解决方法,如果对linux、c、c++不太懂,想自己解决是非常困难的。
使用二进制发行包则可以极大的缩小问题出现的范围。程序文件的一致,使得使用者碰到的问题也类似,很容易在网上找到解决方法。事实上,因为二进制发行包使用者众多,出现问题很快被反馈、修复,也就很少出问题。因此,应该尽量先安装二进制发行包,在二进制发行包版本实在太低或缺省安装缺乏某些编译参数,导致无法提供某些功能,或者要大规模部署,需要很深入的系统调优时,才有必要编译安装。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23595918/viewspace-1035054/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23595918/viewspace-1035054/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值