apt-get remove 与 apt-get autoremove、aptitude remove的比较

说明:原文来自http://www.cnblogs.com/jankie/archive/2011/07/02/2096394.html,但是图片打不开了。因为文章不错,在别的地方找到了图片,重新整理一下发在这里共享。


apt-get remove的行为我们很好理解,就是删除某个包的同时,删除依赖于它的包
例如: A 依赖于 B, B 依赖于 C
apt-get remove 删除B的同时,将删除A(很好理解,A依赖于B,B被删了,A也就无法正常运行了)


先说明下apt-get autoremove与aptitude remove是一样的效果的, 我们先了解下这两者的瓜葛


依赖关系是一个复杂而交错的链条,我们把举几个例子来看看它们的行为



例子1:
1. C 依赖于或推荐B软件包(apt-get和aptitude在安装软件时除了安装必要的依赖包,默认也会安装Recommends关系的包)
2. B 依赖于或推荐A, A被其他手动安装的包依赖




我的理解: 删除C, 那么B这个包既是自动安装的,且没有其他手动安装的包依赖于它,则可以判定B也是没必要的


例子2:
1. 在例子1的基础上, D 依赖于或者推荐B, 且D没有被其他手动安装的包依赖
这样的情况一般出现在用apt-get remove 某个手动安装的包之后.



我的理解: 删除C, 那么B,D 这两个包既是自动安装的,且没有其他手动安装的包依赖于它们, 则可以判定B,D也是没必要的


例子3:
1. 在例子2的基础上, 有个手动安装的包E推荐D(既E Recommends D,手动安装E时,也会把D装上)



我的理解: 删除C, 那么B,D 这两个包既是自动安装的,且没有其他手动安装的包依赖于它们, 则可以判定B,D也是没必要的虽然D被E Recommend, 但为啥是这么设计的, 我也没猜出开发人员的想法


例子4:
1. 在例子3的基础上, D变成依赖于B, E变成依赖于D



我的理解: 只删除C, 因为B被D依赖, D被E依赖, 间接来说,E不能没有B,D而正常运行,所以B,D被保留


例子5:
1. 在例子4的基础上, D变成推荐B, E依然依赖于D



我的理解: 删除C, 而B没有被其他手动安装的包直接依赖或者间接依赖(我指那些一层层depend on的关系), D被E依赖所以B不是必要的,可以删除, 而D不能删除



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值