相依性地狱

✍ dations ◷ 2025-06-08 12:01:53 #反模式,软件包管理系统,版本控制系统,计算机错误

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

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

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

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

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

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

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

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

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

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

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

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

相关

  • 氯化氢氯化氢(英语:hydrogen chloride),分子式为HCl,室温下为无色气体,遇空气中的水汽形成白色盐酸酸雾。氯化氢及其水溶液盐酸在化工中非常重要。二者分子式均可写为HCl。氯化氢分子是
  • 莫扎拉布语莫扎拉布语(Mozarabic)是指罗曼语言在伊比利亚半岛发展早期,在穆斯林统治地区(安达卢斯)所讲的一种方言连续体。它源自后期拉丁语及5-8世纪间在伊比利亚半岛出现的早期罗曼方言,使
  • H指数H指数(H index)是一个混合量化指标,可用于评估研究人员的学术产出数量与学术产出水平。H指数是2005年由美国加利福尼亚大学圣地亚哥分校的物理学家乔治·希尔施提出的。H指数的
  • 匡源匡源(1815年-1881年),字本如,号鹤泉,山东胶州人。清朝大臣。道光二十年(1840年)进士,历任皇子奕
  • 籼稻.mw-parser-output ruby.zy{text-align:justify;text-justify:none}.mw-parser-output ruby.zy>rp{user-select:none}.mw-parser-output ruby.zy>rt{font-feature-settings:
  • 黄秉干黄秉乾(英语:Huang Pien-chien,1931年7月13日-),美籍华裔分子遗传学家。祖籍广东、生于上海,美国约翰霍普金斯大学生物化学系教授,1986年当选中华民国中央研究院院士。黄秉乾的妻子
  • 主教座堂广场 (米兰)主教座堂广场(Piazza del Duomo)又译为杜莫广场,是意大利米兰市中心的一个大型矩形城市广场,得名于米兰主教座堂。7个世纪以来,是该市的几何中心和商业中心,也是该市各项庆祝活动
  • 琼·洛德强纳森·道格拉斯·洛德(英语:Jonathan Douglas Lord,1941年6月9日-2012年7月16日),昵称琼·洛德(Jon Lord),生于英国英格兰莱斯特,著名作曲家、钢琴家、与电子琴(Hammond organ)演奏家,
  • 孙运璿学术基金会财团法人孙运璿学术基金会是于1996年为了纪念前行政院院长孙运璿的贡献,由孙运璿的旧同事与旧部属如徐立德等人共同成立的基金会。成立时,由时任行政院副院长的徐立德担任董事
  • 玛丽亚·亚历山德鲁玛丽亚·亚历山德鲁(罗马尼亚语:Maria Alexandru,1939年12月30日-),出生于梅哈迪亚乡,罗马尼亚女子乒乓球运动员。她曾获得3枚世界乒乓球锦标赛金牌和4枚欧洲乒乓球锦标赛金牌。