Linux软件间的依赖关系(转)
2015-10-10 15:26
411 查看
Linux中的软件大部分是零碎的,其粒度比windows的小很多,软件之间的依赖关系很强烈,下面是自己的一些理解:
一、Linux中的软件依赖
Linux中的软件依赖关系成一颗拓扑树结构,比如A直接或间接依赖B,那么B就不可能直接或间接依赖A。试想从时间上A、B必然有一个先出现,而先出现的不可能依赖于后出现的;并且如果A与B互相依赖则就是“鸡与蛋”的问题,因此必然有一个先出现而另一个依赖于先者。
二、Linux的软件安装与卸载
(1)安装软件A必须率先安装A依赖的所有软件;卸载软件A则必须率先卸载依赖A的所有软件。如下图:
a\
b\
c\
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则是同时卸载其所依赖的无用软件
--------------------------------
autoremove的伪代码:
autoremove_soft(entity x) {
remove x;
for each p in x->parent {
p->child_num--;
if(p->child_num == 0)
autoremove_soft(p);
}
}
----------------------------------
sudo apt-get autoclean 清理旧版本的软件缓存
sudo apt-get clean 清理所有软件缓存
sudo apt-get remove softname1 softname2 ...
sudo apt-get --purge remove softname1 softname2 ...(同时清除配置)
sudo apt-get autoremove 删除系统不再使用的孤立软件
转自:http://www.linuxidc.com/Linux/2010-08/27972.htm
一、Linux中的软件依赖
Linux中的软件依赖关系成一颗拓扑树结构,比如A直接或间接依赖B,那么B就不可能直接或间接依赖A。试想从时间上A、B必然有一个先出现,而先出现的不可能依赖于后出现的;并且如果A与B互相依赖则就是“鸡与蛋”的问题,因此必然有一个先出现而另一个依赖于先者。
二、Linux的软件安装与卸载
(1)安装软件A必须率先安装A依赖的所有软件;卸载软件A则必须率先卸载依赖A的所有软件。如下图:
a\
b\
c\
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则是同时卸载其所依赖的无用软件
--------------------------------
autoremove的伪代码:
autoremove_soft(entity x) {
remove x;
for each p in x->parent {
p->child_num--;
if(p->child_num == 0)
autoremove_soft(p);
}
}
----------------------------------
sudo apt-get autoclean 清理旧版本的软件缓存
sudo apt-get clean 清理所有软件缓存
sudo apt-get remove softname1 softname2 ...
sudo apt-get --purge remove softname1 softname2 ...(同时清除配置)
sudo apt-get autoremove 删除系统不再使用的孤立软件
转自:http://www.linuxidc.com/Linux/2010-08/27972.htm
相关文章推荐
- linux下文件夹的创建、复制、剪切、重命名、清空和删除命令
- 【未完】fsck修复文件系统
- centos7 nfs服务器配置
- linux编译安装PHP
- Linux 下查看局域网内所有主机IP和MAC
- vi命令及用法
- Informatica9.6.1在Linux Red Hat 5.8上安装遇到的有关问题整理_4
- Informatica9.6.1在Linux Red Hat 5.8上安装遇到的有关问题整理_3
- Informatica9.6.1在Linux Red Hat 5.8上安装遇到的有关问题整理_2
- Informatica9.6.1在Linux Red Hat 5.8上安装遇到的有关问题整理_1
- Linux守护进程的编程实现
- linux 终端的几个概念
- Linux unison+inotify 文件实时双向同步
- linux命令行日志输出
- linux输入子系统(5) - 学习框架
- Linux命令总结【待续】
- Linux命令总结【待续】
- linux无锁化编程--__sync_fetch_and_add系列原子操作函数
- linux 输入子系统(4) intput_dev 接口描述
- Linux下基于bitnami的Redmine安装部署以及结合Subversion的设置