为什么linux装软件要那么多的依赖关系?

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
smilewit
帖子: 20
注册时间: 2009-11-25 13:58

为什么linux装软件要那么多的依赖关系?

#1

帖子 smilewit » 2011-04-15 13:44

接触linux,安装系统并不是难事,但是进入桌面后会遇到一系列让人崩溃的事情:
1、驱动安装不了,windows中安装驱动多简单,双击驱动安装程序就可以了。linux我是一头雾水,不知道,听说要自己编译,编译还要有编译环境,好象我的系统还没编译环境,试过了,不行啊,我的妈呀,我是小白菜呀,我不会。我是鼠标党,喜欢双击运行。
2、安装软件麻烦,安装个软件要连网下载很多依赖关系,面对龟速的网络,直接让人崩溃掉。
3、不知道怎么输入中文,还好linux deepin解决了这个问题,我现在不用想了(若不谈中文输入法,我觉得linuxmint更好用)。
小白菜该怎样使用linux啊,神啊,救救我吧。

linux系统本身不能就包括了软件运行的依赖关系吗?怪不得linux系统只是技术人员玩的玩具。
andriod是基于linux的,幸亏在andriod上安装软件不像linux上这么烦,否则肯定没人用了
头像
月下叹逍遥
论坛版主
帖子: 33994
注册时间: 2010-10-07 14:23
系统: Archdows10
来自: 某系某星某洲某国某省某市
联系:

Re: 为什么linux装软件要那么多的依赖关系?

#2

帖子 月下叹逍遥 » 2011-04-15 13:48

1,驱动用附加驱动安装就是,也是点两下的事。
2,软件依赖关系节省了程序员开发的时间。
3,输入法,10.10的ibus挺好用的。
浮生七十今三十,从此凄惶未可知
头像
lainme
论坛版主
帖子: 7805
注册时间: 2008-09-13 19:17
系统: Arch Linux (x86_64)
联系:

Re: 为什么linux装软件要那么多的依赖关系?

#3

帖子 lainme » 2011-04-15 13:55

为了省地方,编程也省力。其实对于一些软件来说,也简化了安装,因为无须判断其它需要链接的软件的位置。

驱动多数可以在系统-》系统管理-》硬件驱动里找到,基本不需要你自己去下载安装,可能也就某些无线网卡的多点。而且多数驱动也是二进制包啊,直接运行的

装软件,联网然后用软件中心就行了。速度不快可以换源
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 为什么linux装软件要那么多的依赖关系?

#4

帖子 eexpress » 2011-04-15 14:06

带包管理的软件,不都是自动解决依赖关系的嘛。
你啥软件啊,需要编译的,那当然要编译环境和库了。你在win下,如果要编译,还要被强奸安装巨大的ide的,和全套的开发库。都不带零买的。 :D
win下的软件,都是打成静态包了(除开系统的api),你看哪个软件不巨大。
● 鸣学
头像
Don't kiss me!
帖子: 717
注册时间: 2010-02-28 23:13

Re: 为什么linux装软件要那么多的依赖关系?

#5

帖子 Don't kiss me! » 2011-04-15 14:10

拜神 :em70
啊哈哈哈哈
头像
remeber
论坛版主
帖子: 13030
注册时间: 2009-01-06 15:18
来自: 人间

Re: 为什么linux装软件要那么多的依赖关系?

#6

帖子 remeber » 2011-04-15 14:10

1
系统-》系统管理-》硬件驱动
2 系统 xxxx(忘了名字==) 软件源 总会有一个适合你速度的源
3 fcitx 小小输入法 ibus(默认)

不明白右上角搜索下。 :em11
“有一种被人抛诸脑后的过去,包含一些不该遗忘的点点滴滴。欢笑之余,我将故旧拾起,才刹见自己的薄情。人世间似乎存在着某种公平,每个人都曾被抛掷在他人的遗忘中;而今你所有哽咽难宣的话语,也正是你曾为人所期盼,却永远听不见的字句。” —赫曼 赫塞
头像
tenzu
论坛版主
帖子: 36924
注册时间: 2008-11-21 20:26

Re: 为什么linux装软件要那么多的依赖关系?

#7

帖子 tenzu » 2011-04-15 14:26

了解点Linux的基础知识再来喷,效果会好点
smilewit
帖子: 20
注册时间: 2009-11-25 13:58

Re: 为什么linux装软件要那么多的依赖关系?

#8

帖子 smilewit » 2011-04-15 14:37

月下叹逍遥 写了:1,驱动用附加驱动安装就是,也是点两下的事。
2,软件依赖关系节省了程序员开发的时间。
3,输入法,10.10的ibus挺好用的。
这倒未必,也未见得linux有多少高效易用的软件,软件依赖关系现在看来只有坏处,没有好处。
andriod没有这些麻烦的依赖关系,所以成功了。
chole
帖子: 482
注册时间: 2010-05-11 17:27

Re: 为什么linux装软件要那么多的依赖关系?

#9

帖子 chole » 2011-04-15 14:49

smilewit 写了:
月下叹逍遥 写了:1,驱动用附加驱动安装就是,也是点两下的事。
2,软件依赖关系节省了程序员开发的时间。
3,输入法,10.10的ibus挺好用的。
这倒未必,也未见得linux有多少高效易用的软件,软件依赖关系现在看来只有坏处,没有好处。
andriod没有这些麻烦的依赖关系,所以成功了。
那你用过多少linux下的软件呢?不要以windows的目光看linux。
还是那句话,解点Linux的基础知识再来喷。
如果你非得问飞机为什么没有汽车跑得快,我也没办法。
头像
justyl
帖子: 349
注册时间: 2009-09-28 14:36
联系:

Re: 为什么linux装软件要那么多的依赖关系?

#10

帖子 justyl » 2011-04-15 14:58

LZ和我之前差不多,一头的雾水,要淡定,多学习学习就会了
刚接触windows不也是这样吗
Inner peace,宁静致远、勿忘心安!
我的博客
我最喜欢的云同步
头像
oneonezero
帖子: 19
注册时间: 2011-04-09 10:10

Re: 为什么linux装软件要那么多的依赖关系?

#11

帖子 oneonezero » 2011-04-15 15:10

同是小白的表示,当你接受一个东西的,都是要一段时间的。

代码: 全选

请不要假装对我好,我很傻,会当真。。。
CRAZY_PALADIN
帖子: 302
注册时间: 2009-07-04 16:18

Re: 为什么linux装软件要那么多的依赖关系?

#12

帖子 CRAZY_PALADIN » 2011-04-15 16:30

刚看了你另外一帖……
楼主你09年注册的还在纠结这些问题???
1.啥驱动?Ubuntu的驱动基本上都是安好就能用的,我这除了闭源的Nvidia显卡驱动会需要手动按以外其他都不用管就可以用。原来倒是遇到过声音不行的问题,靠编译Alsa驱动搞定的,但是那个编译也就是三部曲:./configure - make - make install就可以搞定了的啊。如果用其他的Linux发行版,安装驱动确实比较麻烦,不适合初学者,那不要用这些就好了。就好像Win Server 2008默认也一样难用,需要自己调教。
2.这还麻烦?网速慢不要怪需要依赖关系啊……好歹不需要自己去一个一个手动安。从某些方面讲,这是Linux的一大优点。
.Net Framework 1.0\ 2.0\ 2.0 SP1\ 2.0 SP1 Language support\ 3.0\ 3.5\ 3.5 SP1\3.5 SP1 Lang\ 4.0... 难道楼主就不蛋疼了么? :em09
不过要是遇到了依赖黑洞,那确实会很蛋疼…………
3.输入法,默认的有ibus,不爽还有fcitx、SCIM什么的,虽然词库没有搜狗、谷歌输入法那么大,不过用起来还算顺手。要说现在Linux下的中文输入法确实是不够好,不过本人是从MS的智能ABC过来的,表示压力不大。
4.Linux本身就包括了很多依赖包了,但是不能什么也往里面塞啊,看看Win下自带安装的DLL吧,有多少DLL库是从来没有被用到过的啊……
5.别没事就说啥硬伤啥的……
Freedom is the power to decide what your computer does, and the only way to have this freedom is to know what your computer is
doing. Freedom is a computer that is without secrets, one where everything can be known if you care enough to find out.
头像
daniel_c
帖子: 194
注册时间: 2010-01-03 11:35

Re: 为什么linux装软件要那么多的依赖关系?

#13

帖子 daniel_c » 2011-04-15 16:47

smilewit 写了:
月下叹逍遥 写了:1,驱动用附加驱动安装就是,也是点两下的事。
2,软件依赖关系节省了程序员开发的时间。
3,输入法,10.10的ibus挺好用的。
这倒未必,也未见得linux有多少高效易用的软件,软件依赖关系现在看来只有坏处,没有好处。
andriod没有这些麻烦的依赖关系,所以成功了。
这个我想说其实android的成功和这个没有半毛钱关系....就好像iphone一样....成功他靠的不是技术...不要跟我说apple的技术什么多先进....那都是他们自己吹的....android成功也好...iphone成功也好...大部分靠的是市场的战略和营销手段...现在作为技术人员不要老认为技术是第一....市场营销以及战略的布局这些才是android的关键....

还有linux软件不一定不好用...你要细心的找找.....最好翻墙到外面找....你用linux英语不好那个比任何都致命....顺便说下....还是少点抱怨好...毕竟windows下你也不能保证自己的系统和软件都是正版的....还是踏踏实实的学点linux东西好.....
头像
jary_p
帖子: 135
注册时间: 2009-10-25 20:14

Re: 为什么linux装软件要那么多的依赖关系?

#14

帖子 jary_p » 2011-04-15 16:59

Linux软件要依赖其他的东西就是为了不重复造车轮
比如某些动态或静态函数库,你总不能每个软件都各自装一个吧...(虽然现在硬盘便宜了)

Linux要的就是KISS,很多软件依赖其他的功能,并且有其他软件能完成的很好.那就直接拉过来...
so 这应该就是依赖问题吧
头像
peter_huang
帖子: 391
注册时间: 2006-11-07 14:32

Re: 为什么linux装软件要那么多的依赖关系?

#15

帖子 peter_huang » 2011-04-15 17:14

确如14楼所说;一般来说依赖关系可以使得软件较小并且某个lib修复bug以后所有被依赖的软件都能得到好处。

不过lz说的也有些道理,有些时候依赖关系也确实有点烦人。
我上次碰到一个例子:

我安装的是gentoo,并且安装了docky这个软件,而docky依赖于mono。
有一次我在做emerge -Dup world的时候提示我mono有更新,从2.2更新到2.8了,但是docky还没有。
于是我就emerge --update --deep world把这个mono更新了。
之后发现docky就无法启动了。
从命令行启动docky以后就发现原来依赖于mono的某个api函数被删除了... 囧死。
google了一下发现新版本的docky已经修复了这个问题,但是emerge --sync的时候发现新的ebuild还没有进去。
没办法只好找gentoo bug,里面发现了一个ebuild(当然自己写ebuild也简单的很),down下来以后再次emere docky, 终于搞定了。

幸好docky并不是什么重要的软件,但即便如此,仍然让人感觉不爽。
当然这更多的是portage系统的问题,因为ebuild一般对于依赖关系会指定>=某个版本的软件,而很少用=某个版本的软件。
然而>=才是合理的,这样才能保证被依赖的软件也能得到升级。所以此问题几乎不可避免。

依赖问题的关键在于,开发软件A的人员,很少会顾及,甚至未必知道还有个软件B依赖于它,所以想改就改了,虽然大部分情况下,软件能做到向后兼容,但是仍然有意外的时候。
回复