龙芯什么时候能着手解决Linux系统安装软件需要安装依赖的问题?

Linux系统为了节约硬盘空间,对软件包采取分包机制。然而,这种机制对服务器来说是好的,毕竟服务器有专门的人来维护。但是对于普通桌面用户来说,哪会操作啊。
 
现在的桌面系统,主要是Windows和Mac。对于Windows系统,安装软件可以下载一个安装程序,大型软件可以执行setup.exe进行安装。对于与Unix同源的macOS,安装软件从应用商店下载一个文件夹就搞定,那个文件夹里面有那个软件的所有文件,不需要额外安装依赖包;哪怕有些软件不能通过应用商店安装,也可以挂载pkg后一拖动文件夹就安装上了。
 
试想,一个坐在办公室里用着龙芯电脑,只会用到office软件和PS等软件的人,当他想安装一个软件需要输入命令,输入完命令执行后电脑又告诉他你要想安装这个软件得先安装另一个软件的时候,他是多么崩溃和无助?为什么几岁的小孩子都可以在Windows电脑上安装他喜欢的游戏,不就是因为Windows下安装个软件动动鼠标就能完成吗?
 
为了解决这个问题,有人想到的应用商店。想安装软件,通过应用商店,自动解决依赖问题。但是这种方式治标不治本!这种方式还是要解决依赖问题,而且后台的操作看不到。当软件安装太多的时候,可能发生依赖错乱。
 
还有人想到,用一种包含所有依赖的安装包,比如flatpak。这种特殊格式的安装包,安装后在沙盒中运行,与其他软件互不干扰。但是目前来说这种方式并不是很好用,也不能很彻底地解决。
 
问题是,龙芯丝毫没有解决这个问题的意思。龙芯上并没有flatpak软件包。龙芯要做市场化,假如真的做成了,龙芯上面还是运行标准的Linux系统发行版,那是很灾难的。
 
而且Linux下安装软件还需要root权限。
 
我觉得可以制定相关标准,龙芯上的Linux系统必须包含哪些系统组件,开发者开发和编译软件的时候按照这个标准执行。龙芯还可以制定龙芯专用的软件包,开发一个专用的软件包管理器,不需要root权限就安装用户软件,并且以后就按照这个格式打包用户软件;当然系统软件包爱用啥用啥。
 
安装软件的问题是Linux的大问题。如果在龙芯大规模推广之前就制定关于软件的标准,推广之后顺其自然,那是非常好的,可以少走很多不必要的弯路。毕竟大规模应用的电脑,还是越简单越好。
已邀请:

flygoatfree

赞同来自: 中国原创 Holoo

就这样子吵起来了,甚至有点人生攻击的感觉,没有这个必要吧。
作为一个资历并不是很老的Linux用户,来说两句吧。
Flatpak这种分发形式我并不是很支持,因为会导致无端的磁盘占用,并且软件不一定能得到及时的更新,面临安全问题。
关于目前Linux Desktop OS在软件依赖方面到底存在不存在问题呢?我的认为虽然存在,但是问题不大。大部分Desktop发行版在设计上认定一般用户只会使用软件源内的软件,所有软件集中分发。在软件包的QA阶段,一定会测试源内存在的所有依赖问题,从死包到API/ABI兼容性,正常的软件源必须满足用户安装源内软件的所有依赖需求。对于正常的Linux User,这样的发行版应该是个半封闭生态,就像iOS的APP都通过App Store分发一样,用户的软件都应该通过源来获得。这种方式也是Linux的软件从质量到安全性相比WIndows随便下载的exe要高出许多的根本保障。如果说操作系统的发行方无法保证源内包含所有必要的软件,部分外部软件开发商可以考虑采用类似于Fedora Copr或者Ubuntu Launchpad PPA的模式来提供外部源以填补分发与依赖的问题。
对于有自己编译/搞来搞去需求的Advanced User,那自然应该另当别论,既然有Advanced的需求,那就应该去学习Linux的Advanced knowledge,去掌握自己解决依赖问题的Advanced Skill。
 
其实,这还是一个思考方式的问题,以使用Windows PC的惯性思维来思考Linux的问题,那自然会觉得这里不适合那里不好。Linux是一盘散沙互相吸引聚合起来的力量,Windows是一个核心吸引着散沙的力量,这是两种不同的哲学,两者都不失作为OS的生存之道,去比较好坏毫无意义。但是以其中一种的价值观去衡量另一种,那绝对是大错特错。
 
话题无关:推荐一本IBM做的微电影 《一往无前》https://www.vmovier.com/52934
挺有意义的。

shikongzhineng

赞同来自:

这与龙芯何干?

jiangtao9999

赞同来自:

依赖包混乱是发行版的 bug ,和用户有鸟事?
而且分包和用户有鸟事,用户用软件管理器去选择自己要用的软件就行了。
而且软件本来就写好了依赖关系了,软件管理器里面装软件,系统会自动安装依赖,还要个毛 flatpak ?
 
除非是那种不开源,不对目标发行版编译的软件,这会导致软件自己依赖不同版本的函数库。
这个时候,软件必须自己携带自己用的依赖环境,才需要这种安装方式。
但是这个是软件的问题,和发行版还有用户鸟事?
 
不需要 root 权限就安装软件,是个高风险的安全隐患。为了安全,很多情况下,个人目录都是禁止运行的挂载,增加运行权限都不允许。
而且安装到自己的个人目录里面,这个程序只能自己用。
对于多用户系统来说,你私自装软件可能导致机器出问题。而且软件也只能自己用。
而对于单用户来说,找你要个密码也是为了防止你被人恶意下病毒程序的。都是自己用你还不知道密码非要装到个人目录?
 
我觉得你还是去喷 Windows 吧。居然 Windows 现在自己带了 DirectX ,而不是每个软件都自己带一套 DirectX 。
一个 10M 的小软件,带个几百 M 的 DLL 数据包,计算机里面装十几个常用小软件,占地几个 G 甚至上 10G 。
很美不是吗?
 
你还不如说每个软件都用 Docker 封装呢。这东西也是可以自带全套支撑环境的。但是要知道这东西的目的是为了隔离,整体上传整体使用的服务器跑服务的用途,本身是虚拟机的一个竞争方案。
请问你的软件还要整体上传整体使用干什么?
一个软件就自带一整套发行版?现在的发行版,整个系统压缩了也小 1G 了。解压缩好几个 G ,一个软件就好几个 G ,硬盘不要钱?
 
而且即便硬盘不要钱,你有没有考虑到系统的函数库的内存占用?
一个软件就自己一套独立的函数支撑体系,需要多少内存?
现在的操作系统,其实不过都是用了共享只读内存的方式实现了函数库的共用来降低内存需求。
你现在强行分开。一个软件就至少几百 M 的函数库支撑环境,开几个软件内存就满了你考虑这怎么办了吗?
 

gugudu

赞同来自:

龙芯也有商店呀!点击一下安装就行。目前还没有发现哪个app的依赖找不到。

xen0n

赞同来自:

有空喷来喷去,没空自己去把 Flatpak/Snap 移植到龙芯系统

要回复问题请先登录注册