相依性地狱

✍ dations ◷ 2025-09-10 03:23:53 #反模式,软件包管理系统,版本控制系统,计算机错误

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

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

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

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

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

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

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

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

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

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

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

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

相关

  • 粪口路径粪口路径(也称为口腔-粪便路径或者口粪路径),是一种疾病传播(英语:Transmission (medicine))途径。具体指的是,病原体由一个宿主的粪便中被引入另一个宿主的口腔中的传播方式。在一
  • 约翰·卡蒂约翰·约瑟夫·卡蒂(英语:John Joseph Carty,1861年4月14日-1932年12月27日),美国电气工程师,电话线和相关技术的主要贡献者。卡蒂曾获得IEEE爱迪生奖章。作为AT&T的首席工程师,他对
  • 哈姆立克法腹部冲击(英语:Abdominal thrusts),又名海姆立克急救法或海姆立克法(Heimlich maneuver),是一种清除上呼吸道异物堵塞(噎)的急救方法。“海姆立克法”得名于美国医师亨利·海姆立克(He
  • 肉类替代品列表此清单列出了目前市场上所有能够购买到的肉类替代产品。素肉或素料,又称为肉类替代品,是一系列透过模仿肉类食物特征(主要是口感、味道以及外观)或是针对特定肉类生化特性而制
  • 格兰特·哈克特格兰特·乔治·哈克特(英语:Grant George Hackett,1980年5月9日-),生于昆士兰州绍斯波特,澳大利亚游泳运动员。 格兰特获得2004年雅典奥运会男子1500米自由泳的金牌以及2008年北京
  • 姿态性低血压姿位性低血压(英语:Postural hypotension),又称姿势性低血压、姿态性低血压、直立性低血压或体位性低血压(Orthostatic hypotension,或简称 Orthostasis)。主要指患者在站姿时血压
  • 苗栗县立图书馆苗栗县立图书馆为苗栗县政府成立的县立公共图书馆,成立于1953年11月,隶属于苗栗县政府教育处。台铁苗栗车站、苗栗县政府、苗栗县城市规划馆、苗栗县政府国际文化观光局、苗栗
  • 西乡从道西乡从道(1843年6月1日-1902年7月18日)是日本近代的军人、政治家、元老。其兄为维新三杰之一的西乡隆盛,兄弟二人在倒幕运动、维新运动中十分活跃。西乡从道出生于萨摩藩鹿儿岛
  • 圭恩·布鲁福德小圭恩·布鲁福德(Guion Bluford, Jr.,1942年11月22日-),前美国空军上校及美国国家航空航天局宇航员,执行过STS-8、STS-61-A、STS-39以及STS-53任务。
  • 伊莫金·坎宁安伊莫金·坎宁安(英文:Imogen Cunningham,1883年4月12日-1976年6月24日),是著名的美国摄影师,f/64的成员之一,以其人像和花卉摄影而闻名。坎宁安出生于美国俄勒冈州的波特兰市,她的摄