为什么linux发行版之间不能有一个统一的二进制软件包标准?

2013-01-11 10:12:43 +08:00
 tioover
发行版之间的差异不是问题 包管理器能解决
我觉得这是限制linux桌面发展的一大要素
11410 次点击
所在节点    Linux
75 条回复
sNullp
2013-01-11 10:14:24 +08:00
不都是ELF格式的么?
你说的是dependency hell吧?
BOYPT
2013-01-11 10:28:34 +08:00
这个标题和某中二贴: 为什么人类不只说一种语言,我觉得这限制了人类文明的发展

神似。
alayii
2013-01-11 10:46:24 +08:00
呃...二进制...不是一样的么,楼主是说打包格式?
aisk
2013-01-11 10:55:09 +08:00
大家都觉得自己的最好
Radeon
2013-01-11 11:00:15 +08:00
为什么非要包管理器呢。像Windows那样做成.msi类型的installer是最好的
tioover
2013-01-11 11:01:47 +08:00
@sNullp 孤陋寡闻了
但没有看到过发行版用这种格式 也没见什么软件用这种格式发布 不是源代码就是直接可执行文件
fox000002
2013-01-11 11:09:00 +08:00
@Radeon 单个包或软件没有问题,批量或大规模后就需要包管理器了,msi也是一样的
seeker
2013-01-11 11:09:42 +08:00
自由的代价
Radeon
2013-01-11 11:13:45 +08:00
@fox000002 软件包应该自带依赖。这样就不需要一个全局包管理器了。用户也可以安装同一个软件的多个版本实例,互不干扰。目前msi的做法就很好,用户指定一个安装目录就行了。
sNullp
2013-01-11 11:17:43 +08:00
@tioover 啊,ELF就是可执行文件的格式。
我现在知道你说的是打包的问题了,那就是dependency hell,这属于unix设计哲学的事情了,没办法。。
clowwindy
2013-01-11 11:34:27 +08:00
shared object 版本也会升级的原因。
haohaolee
2013-01-11 11:40:45 +08:00
说白了,linux 本质就是个核,核以上的事情都是发行版自行处理的,而大多数软件又都是动态链接的,library 版本又各自不同,所以才会有这种兼容性问题,在 Windows 上这叫做 dll hell,但是 Windows 操作系统这一块因为它从核到用户态都是封闭的,所以兼容性要好很多。
可以静态编译,这样的程序可以直接 copy 到不同发行版上使用,前提是只要核是兼容的
haohaolee
2013-01-11 11:43:41 +08:00
Linux 还有个所谓的 LSB 规范,也是为了解决这个兼容性问题
bearsprite
2013-01-11 11:47:59 +08:00
@Radeon 没有一个全局的安装包管理,windows下的安装/卸载必然会造成垃圾遗留,因为一个程序它无法知道它安装的dll是它自己的还是别的程序的,于是卸载就不会删除。这也是windows用久之后会变慢的一大原因。如果用过linux包管理的人还会认为windows下安装模式好的话,那我真是无语了~~
toctan
2013-01-11 12:01:38 +08:00
@Radeon 老大,你用过 Linux 么? 在 Windows 下安装软件和配置开发环境是一件及其蛋疼的事。想一想,如果你在 windows 下需要安装数十个软件,首先要到这几十个软件的官网把这几十个 msi installer 下载下来,然后逐个双击这些 installer,每个installer还不知道要让你点多少下next,你不会点到想吐么?如果你要升级,卸载这些软件呢,我不知道又要点多少次next?在Linux下,因为包管理器,这些事情都是一条命令的事情。

软件自带依赖?在Linux下,很多软件都依赖glibc这个包,每个软件都带这个依赖,不是对空间的浪费么?而且,这与UNIX的哲学不符。

windows 卸载残留不是一两天的事了,office,vs, photoshop 这种大型一点的软件卸载不干净还会造成安装不成功,身边不知道有多少人因此重装系统了,那些uninstaller就是渣渣,蛋碎。
wliment
2013-01-11 12:14:38 +08:00
@Radeon 软件包自带依赖,如果放在自己单独一个文件夹下,不和系统的库放到一起,还好说,不过每个软件都这么做,站用的硬盘空间应该相当大. 包管理系统还是很必要的,各个发行办只是打包不一样,里面的二进制执行程序没有什么不同.
lyric
2013-01-11 12:16:32 +08:00
打嘴炮的节奏?我最喜欢了
tioover
2013-01-11 12:25:42 +08:00
如果要什么依赖 在软件包里说明就好了 包管理器处理依赖呀
我的意思仅仅是例如ubuntu的deb archlinux的(忘了是什么格式)之类的 这些软件包格式统一起来可以互通多好
reusFork
2013-01-11 12:37:56 +08:00
@tioover 不统一也没有什么害处,更谈不上“限制linux桌面发展”
clww
2013-01-11 12:41:23 +08:00
一些人对现有的包管理器(和打的包)不满,然后搞一个自己想要的,然后搞出来后宣称这是一个可以统一的东西。。。

http://xkcd.com/927/

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/57266

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX