相依性地狱

✍ dations ◷ 2025-08-13 07:14:35 #反模式,软件包管理系统,版本控制系统,计算机错误

相依性地狱(英语:dependency hell),又称依赖地狱,是指在操作系统中由于软件之间的依赖性不能被满足而引发的问题。

一个软件包依赖于其它必要的软件包(且版本要符合要求),使得软件包系统形成了复杂的依赖关系网络,并可能引发一系列问题。一些软件包可能因为依赖性无法满足,需要安装大量软件包;另一方面,一个软件包的卸载可能引发数量众多的软件包无法工作。

目前,GNU/Linux通过高级软件包管理机制,一定程度上解决了相依性地狱问题。较著名的有Debian阵营的APT和Redhat阵营的Yum,及 Yum 的后继包管理工具 DNF。

相较“另起炉灶”的做法,现代软件往往会利用一些已有的组件(如库、程序、多媒体文件)进行开发。这些组件可能是某个软件,也可能是专门为其他软件使用而设计(库)。程序开发者根据特定版本的组件来设计自己的软件。这种方式减少了开发的工作量,使得程序比较轻便。但是该软件要正确运行,必须安装了指定版本的某些组件。

做一个比喻:你在建造一所房子,而并不生产门窗。由于门洞和窗口的尺寸要和门窗配合,因此你不得不寻找了一家门窗厂商,以他们生产的门窗作为标准,来建造合适的房子。你建造的房屋必须依赖于这家门窗厂商所生产的特定型号的门。

这便是相依性的产生过程。

若只有简单的相依性,则比较容易解决。如A软件依赖e、z软件包,而e、z软件包没有依赖,只需要安装e、z软件包,再安装A软件即可。就如建造商与门窗商的依赖关系,简单明了。

而当依赖性过多,且具有多级结构,形成错综复杂的网络,依赖性的解析就会变得异常困难,甚至出现无法解析的致命错误。

一个软件包可能依赖于众多的库,因此安装一个软件包的同时要安装几个甚至几十个库包。

指从所需软件包到最底层软件包之间的层级数过多。这会导致依赖性解析过于复杂,并且容易产生依赖冲突和环形依赖。

即两个软件包无法共存的情况。除两个软件包包含内容直接冲突外,也可能因为其依赖的低层软件包互相冲突。因此,两个看似毫无关联的软件包也可能因为依赖性冲突而无法安装。

即依赖性关系形成一个闭合环路,最终导致:在安装A软件包之前,必须要安装A、B、C、D软件包,然而这是不可能的。

相关

  • 冈瓦那大陆在地质学中,冈瓦那大陆(英语:Gondwana,/ɡɒndˈwɑːnə/,或Gondwanaland),也称冈瓦纳古陆、南方大陆,是存在于新元古代至侏罗纪前期(约5.73亿至1.8亿年前)的超大陆,它是从罗迪尼亚大
  • 哈雷迪哈雷迪犹太教(希伯来语:.mw-parser-output .script-hebrew,.mw-parser-output .script-Hebr{font-size:1.15em;font-family:"Ezra SIL","Ezra SIL SR","Keter Aram Tsova","Ta
  • 男性向男性向(英语:Androphilia),是行为科学中用来描述性取向的术语,作为性别二分法的同性恋和异性恋概念的替代词。是指在情感、心理、性爱方面对男性产生爱慕倾向的一群人。男性向者
  • 阿戈美拉汀阿戈美拉汀(英语:Agomelatine) ,商品名为维度新(Valdoxan),是一种褪黑素受体激动剂类抗抑郁药,由法国施维雅(Servier)公司研制。阿戈美拉汀主要用来治疗重度抑郁症(MDD),并且证据指出阿戈
  • 五重键五重键(英语:Quintuple Bond),是指有机化学中,原子之间有5对价电子组成的共价键。五重键很罕见,直到2005年才从一个二铬化合物中发现,仅能在含铬、钼、钨的化合物中发现。例如:
  • 吴国吴(222年-280年5月1日,史称孙吴或东吴)是中国历史上三国时期由孙坚与其子孙策丶孙权三人奠基、而孙权更建立的政权。孙权以古为春秋战国吴国的据地,故定国号为“吴”;所统治地区古
  • 弗兰克·丘奇-不归路河原野弗兰克·丘奇-不归路河原野(英语:Frank Church—River of No Return Wilderness)是美国爱达荷州一处受保护的荒原地区(英语:wilderness area),1980年间由美国国会设立,1984年更名为
  • 卡尔·莫尔魏德卡尔·布兰丹·莫尔魏德(德语:Karl Brandan Mollweide,1774年2月3日 - 1825年3月10日)是德国哈雷和莱比锡的数学家和天文学家。在三角学中,他引入了莫尔魏德公式。莫尔魏德发明了
  • 马来西亚乐高乐园马来西亚乐高乐园(马来语:Legoland Malaysia)位处马来西亚柔佛州依斯干达公主城,于2012年9月15日开幕,是亚洲第一个乐高乐园。该乐园设计予所有年龄层的家庭,尤其以2至12岁的小童
  • 国家巴利拉组织国家巴利拉组织(意大利语:Opera Nazionale Balilla,缩写:ONB)是意大利的一个法西斯主义青年组织,成立于1926年,1937年被并入意大利青年刀斧手。该组织以巴利拉(英语:Balilla)命名,即据