从一次安装崩溃论为什么Linux系统架构是落后的

这个问题我在知乎骂过,引起了无数Linux粉丝的反击;但是类似的错误又重演了,我只好再骂一遍。Linux系统和Android系统不同,采用了最落后的垄断库体系,所以造成了无法避免的脆弱性。

踩坑经过

事情的经过是这样的,我在Redhat 9安装了Postgresql之后,安装灾备工具PgPool-II 4.4.3. 安装不上去,说找不到libpq,官方给出的回复是得找个特殊的库安装上去:

dnf install --enablerepo=crb postgresql-server-devel

然而我又发现postgresql官方提供了手动备份工具pgAdmin,跑到官网上找到了安装介绍:

pgAdmin在Redhat官方安装指南

结果在安装清单里也有libpq,是另一个版本的

====================================================================================================
 Package                    Architecture    Version                        Repository          Size
====================================================================================================
Installing:
 pgadmin4-web               noarch          7.3-1.el9                      pgAdmin4           8.8 k
Installing dependencies:
 apr                        x86_64          1.7.0-11.el9                   appstream          123 k
 apr-util                   x86_64          1.6.1-20.el9                   appstream           94 k
 apr-util-bdb               x86_64          1.6.1-20.el9                   appstream           13 k
 httpd                      x86_64          2.4.53-11.el9_2.5              appstream           47 k
 httpd-core                 x86_64          2.4.53-11.el9_2.5              appstream          1.4 M
 httpd-filesystem           noarch          2.4.53-11.el9_2.5              appstream           14 k
 httpd-tools                x86_64          2.4.53-11.el9_2.5              appstream           81 k
 libpq5                     x86_64          15.3-42.1PGDG.rhel9            pgAdmin4           223 k
 mailcap                    noarch          2.1.49-5.el9                   baseos              32 k
 pgadmin4-server            x86_64          7.3-1.el9                      pgAdmin4            87 M
 python3-mod_wsgi           x86_64          4.7.1-11.el9                   appstream          931 k
 rocky-logos-httpd          noarch          90.14-1.el9                    appstream           24 k
Installing weak dependencies:
 apr-util-openssl           x86_64          1.6.1-20.el9                   appstream           15 k
 mod_http2                  x86_64          1.15.19-4.el9_2.4              appstream          149 k
 mod_lua                    x86_64          2.4.53-11.el9_2.5              appstream           61 k

Transaction Summary
====================================================================================================
Install  16 Packages

Total download size: 90 M
Installed size: 402 M
Is this ok [y/N]: N

这个时候我要是点No就好了,但是我点了y,结果是安装失败,因为libpq和现有的,即之前安装的有冲突。

安了几个小时,最后告诉失败。网上找了卸载教程:

cd /etc/yum.repos.d
rm pgadmin4.repo
yum clean all

好像是卸载了,其实并没有。我现在连启动pgpool都做不到了:

pgpool -h
pgpool: error while loading shared libraries: libpq.so.5: cannot open shared object file: No such file or directory

反思

为什么会出这种错误?本质原因是Linux的垄断库思想——即一个类型的库只能在/usr/lib文件夹中有一个版本,如果你安装的软件恰巧需要另一个版本,对不起,把原来的卸了装新的。原来的软件怎么办?完蛋。

Windows和后来的Android都不这么做(.Net运行任意个版本并存)。之所以Android占用空间大,也是每一个新的应用都安装自己的私有依赖库,即使表面上相同,也必须另装一份。

为什么Linux从Redhat到Ubuntu几十年都坚持这个思路,死性不改?几种猜想:

1)计划经济理想,一个萝卜一个坑,一个部门就一家企业,别无分号(苏联的经互会思维)。

2)如果允许每一个应用单独启动自己的依赖库,那么硬盘占用和内存占用很快就比Windows的大(如Android),怎么体现自己的优越性?

3)开源Linux的大赞助商以服务器厂商为主,特别是云服务厂商。正是因为你装了第二个软件就造成库冲突,所以对不起,再租台服务器不就解决问题了?你抱怨Linux烂,但是人家是免费的,你明明可以通过多付费来解决问题,你到底想不想解决吧?

我觉得2和3的可能性较大,也不排除1的因素,毕竟创始人也不像好说话的人。欢迎补充或提出可行性建议,谢绝粉丝性谩骂。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值