【问题标题】:Why linux doesn't support different software versions at the same time? [closed]为什么linux不能同时支持不同的软件版本? [关闭]
【发布时间】:2019-01-18 11:43:52
【问题描述】:

我们可以采用任何编程语言,它有包管理器可以为program1lib-v2安装lib-v1 用于 program2

当新版本的 lib 在 linux 上发布时,您无法预测更新后哪些程序会中断。提醒一下,linux在稳定性最优先的服务器上很受欢迎。

例如,许多程序被主要版本的 openssh 破坏。

那么,为什么?每种编程语言都可以提供这样的功能,而 linux 不能?

【问题讨论】:

  • Linux 不是一种编程语言,所以不,它不能提供这个功能。
  • 其实可以的。看看NixOSGuix
  • BSD、OS X 和 Solaris 支持开箱即用的版本控制和并行安装。 Linux 是跛脚的,并将其技术债务推给用户。也就是说,您必须做额外的工作才能获得其他操作系统提供的功能。其中很大一部分是链接和“安装名称”。 Linux 认为主要的用例是编译和链接一组头文件和库,然后在运行时使用错误的库(是的,你不能编造这些东西......)

标签: linux packaging


【解决方案1】:

为什么 Linux 不能同时支持不同的软件版本?

这不是真的。例如NixOSGuix 支持多个包版本。

如果您问为什么 Debian 或 RedHat 不支持多个软件版本,那么我会说这是因为其遗留问题。在 Linux 时代的早期,磁盘空间很昂贵,因此共享库是减少所需空间的方法。 Windows 也有同样的问题,也就是 DLL hell

每种编程语言都能提供这样的功能,而 Linux 不能?

这不是真的。例如,在 java 中,您有 JAR hell 并且可以使用您的依赖项的唯一单一版本。我不确定您是否可以找到可以同时使用同一个库的多个版本的语言。您可以这样做,但默认情况下不支持。例如,在 Java 中,您可以将依赖项重新打包为不同的名称。

【讨论】:

  • 我正在阅读有关 NixOS 的文章,这听起来像是我等了这么多年的发行版!难以置信
猜你喜欢
  • 2011-05-23
  • 2014-10-16
  • 1970-01-01
  • 2011-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-03
  • 1970-01-01
相关资源
最近更新 更多