找回密码
 骑士注册

QQ登录

微博登录

搜索
❏ 站外平台:

Linux中国开源社区 观点 查看内容

讨论:为什么 Linux 到现在也不能双击安装软件

2011-05-28 10:10    评论: 18    

本帖最后由 wxy 于 2011-5-28 10:07 编辑

  看最近cnbeta的评论,有一位仁兄矢志不渝的重复“世界上最差的系统就是linux,双击不能安装软件”,而对于该评论的观点众多,但是真正正 确的确极少。综合来看,广大cber尤其是喜欢评论的cber对Linux理解的还比较少,而且很多都是跟Windows做比较(当然这里我承认高手也大 有人在),所以我想在这里有必要说一下为什么Linux到现在也不能做到双击安装软件。

  首先要说一下,很多Linux的发行版例如Ubuntu或者CentOS、Fedora等,已经早就可以双击安装自己发行版的安装包了,例如deb、rpm等。

  那么为什么现在大部分软件还是需要下载一个tar.gz然后./configure/make/make install繁琐的命令安装呢?

  其实,Linux下跟Windows的软件发布有一个最大的不同就是Linux下大部分软件都是开源的,只提供源码下载,不提供编译好的二进制下载。所以,上面的三个命令实际上是编译一个软件,然后拷贝到系统对应目录,准确来说不是安装。

  但是为什么非要这三个命令,而不是双击之后自动执行上述三个命令呢?

  主要还是跨平台和定制化的考虑。我们知道Linux发行版众多,Linux支持的平台也很多,从使用最多的x86到arm,solaris等,所以这个./configure脚本可以支持很多编译参数,从而让软件支持几乎所有的硬件平台。

  而Windows下,由于几乎所有软件都是编译好的二进制打包发布,所以软件要么是32位版本,要么是64位版本不能通用的。好在Windows目前只支 持x86和x64两个硬件平台,假若以后Windows支持其他平台,那么我们日常软件的版本区分就要更多了。而Linux下只要发布一个源码包,你用户 是什么硬件平台自己编译好了。

  另外稍微学过软件工程的都知道,软件开发都是模块化的,通过./configure命令加上合理参数,可以不编译不需要的模块,比如最常用的php,自带几十个模块,通常我们需要哪个编译哪个好了。

  有人可能说Windows安装软件也能选择性安装,我可以不安装我不需要的模块。

  其实,Windows就算你不安装你选择的模块,那也只是这个模块不安装。而主程序的模块访问是编译好的,他只不过能自动判断这个模块不存在就不加载罢了。

  另外,Linux很多模块是通用的,这就是依赖关系,举例来说要用php的iconv功能,就需要系统安装libiconv库,而不同的电脑的 libiconv库安装路径不同,所以需要通过./configure的参数指定你电脑的libiconv安装路径是多少,php才能顺利编译通过。 Windows则是必须在C:WindowsSystem32下,可定制化太差了。

  再说一下make命令。make命令就是根据刚才./configure的配置参数,来把源码编译成二进制文件,放到当前目录,而不是复制到系统目录。为什么不能把make和make install放在一起呢?

  因为有些时候,我们只需要一个软件包里面的某个动态链接库,而不是整个程序。比如我们经常需要lighttpd中的spawn-fcgi,所以我们不必安装lighttpd,而是直接编译完,得到其中的spawn-fcgi即可。

  最后,make install就是把编译好的二进制文件和链接库、配置文件等复制到系统的各个目录即可,安装完成。

  说道这里,可能有些网友根本没看上面文字,就说:普通用户不需要知道这么多,他们就需要知道怎么用就行了。是的,话说回来了,这些人如果不用Windows,完全可以尝试Ubuntu或者Fedora,这两个发行版都可以双击安装程序。但是缺点就是无法深度定制。

  我们畅想一下,如果QQ有tar.gz源码版发布,那么我希望的安装命令是:

cd qq2012-beta2/
./configure --without-ad --without-qqshow --without-popnews --without-qzone --with-ipaddress --with-showip
make;make install

来自:http://www.cnbeta.com/articles/143724.htm

该贴已经同步到 DeadFire的微博

本文内容由 DeadFire 提供
 已同步至 wxy的微博

最新评论

我也要发表评论

kyohand 2011-05-25 12:38 回复

呃.米有表情符了...

双击安装软件.这个事...不是重要的.

只是很多LINUX初学者,安装完LINUX软件,却不知道这个软件在哪儿.....

 

soli 2011-05-25 15:55 回复

我觉得关键是Linux下的软件都不想依赖图形界面。

如果图形界面是Linux不可分割的一部分的话,那肯定都支持图形界面的双击安装了。并且在安装的过程中提示参数选择。

 

Roowe 2011-05-25 23:07 回复

最后一句才是重点~(*^__^*) 嘻嘻……

wangweizhu 2011-05-25 23:19 回复

不太了解LINUX下的软件安装

道家书生 2011-05-27 19:51 回复

那些学不好的人肯定会问为什么不能双击安装,他们总是嫌麻烦,总是希望省略步骤。

feng2000 2011-05-28 11:21 回复
装个QQ要这么多命令。。不用了吧。
ekd123 2011-05-29 11:04 回复

RPM和Deb都是雙擊安裝的啊。。。

miyingchun 2011-05-29 17:28 回复

对于不懂鸟语的用户可是煎熬呀!什么都得死记硬背………………  安装是个问题,安装完找不到还是个问题,找到后启动不了是最大的问题!linux想说爱你不容易呀!

cjboof 2011-05-30 16:58 回复

使用软件包机制的安装方式都是ikeyi双击的,而且linux基金会正在统一一键安装的行业规范

nemesis74 2011-06-01 09:32 回复

看了下 文章才明白是什么意思    

老实说   我现在也变得懒了  直接下载deb包 然后双击安装  

最开始用ubuntu的时候 还在折腾源码包   然后  ./configure    ==

 

InMySin 2011-06-09 16:56 回复
对啊,装完找不到软件,卸载也不熟悉,虽然还是挺喜欢命令行 ha
wangweizhu 2011-06-12 11:00 回复

Linux世界中,对版本的选择很重要,有一些是适合普通用户的,有一些是适合计算机高手的,在一些高端版本,双击安装软件根本就不是问题,用Linux会加深用户对计算机的理解,加阔眼界,会让用户慢慢知道Windows是非常专制与傻瓜的。

shengyouxiao 2011-06-12 18:01 回复
回复 道家书生 的帖子

杨振宁也是这么对中学生说的,不要取巧。

shengyouxiao 2011-06-12 18:04 回复

不知道为什么,我一看就看到了那个在第七段首句中的“所以软件要么是32位版本,要么是64位版本不能通用的”这个语病,应该是“不合逻辑”。

可能是高三综合征吧。。。(这里的征不是症)

creek 2011-06-15 12:48 回复
圖片真是給力啊!
DeadFire 2011-06-15 14:31 回复
回复 creek 的帖子

木有图片呀。

creek 2011-06-17 10:58 回复
回复 DeadFire 的帖子

俺說的是最后的那個安裝QQ的圖片!

呵呵

creek 2011-06-17 10:59 回复

呵呵,原來那不是圖片啊!

沒仔細看!

收藏

返回顶部

分享到微信

打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。