Linux软件间的依赖关系学习

Posted bcbobo21cn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux软件间的依赖关系学习相关的知识,希望对你有一定的参考价值。

Linux中的软件大部分是零碎的,其粒度比windows的小很多,软件之间的依赖关系很强烈;

一、Linux中的软件依赖
Linux中的软件依赖关系成一颗拓扑树结构,比如A直接或间接依赖B,那么B就不可能直接或间接依赖A。试想从时间上A、B必然有一个先出现,而先出现的不可能依赖于后出现的;并且如果A与B互相依赖则就是“鸡与蛋”的问题,因此必然有一个先出现而另一个依赖于先者。

二、Linux的软件安装与卸载
(1)安装软件A必须率先安装A依赖的所有软件;卸载软件A则必须率先卸载依赖A的所有软件。
        b,c依赖于a,那么安装b或c都先要确保a的存在;同时卸载a必须确保b和c都已经被卸载。
(2)卸载A不代表同时卸载A所依赖的所有无用软件,比如:B<--A,卸载A以后B就没用了(因为没有其他软件再依赖B了),Linux默认不卸载B,但可以使用特殊的参数让系统这么做。

    在Ubuntu下,apt-get remove就是一般的卸载,而apt-get autoremove则是同时卸载其所依赖的无用软件


Linux软件的依赖关系是非常复杂的,通常的Linux都是依靠软件包管理工具来自动解决依赖关系的。以经常出现的Debian和Redhat这两大类来说,无论是deb包,还是rpm,都存在很严重的依赖问题。反观这个问题在Windows和Unix系统中就比较少见。当然Windows有时候遇见缺少某个动态链接库的时候,但是非常少,即使这种情况出现了,在Windows下一般可以比较容易的解决,例如安装某个版本的VC++库。


模块依赖关系查询 登录:www.rpmfind.net 查看

以上是关于Linux软件间的依赖关系学习的主要内容,如果未能解决你的问题,请参考以下文章

linux运维基础程序包管理

使用puppet实现自动化运维

如何解决源码包安装时的依赖性问题

自动化运维三贱客之 Puppet 安装

自动化运维之puppet

RPM红帽软件包