Linux_apt-get remove 与 apt-get autoremove、aptitude remove的不同

2023-05-16

 

apt-get remove apt-get autoremoveaptitude remove的不同

 

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

 

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

 

apt-get一开始并没有记录auto-install的信息,在apt(0.6.44.2exp1)此版本时(06)apt-get增加了类似于aptitudeauto-install记录(/var/lib/apt/extended_states)。此后,aptitude在版本0.4.5.1(07)转向使用apt-getauto-install记录,而抛弃了自己原先的记录方式,再随后apt-get在版本0.7.7(07)增加了autoremove的选项。

 

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

 

1

2

3

以下图中, 绿色圆是为了满足依赖关系而apt-getaptitude自动安装上的包

蓝色圆是管理员使用apt-get install aptitude install

指定安装的包,简称为手动安装的包

 

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


 

 

1

2

3

apt-get remove C         将删除C, 同时提示你用apt-get autoremove去清除B

apt-get autoremove C     将删除B, C

aptitude remove C        将删除B, C

 

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

 

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

 

 

 

apt-get remove C 将删除C, 同时提示你用apt-get autoremove去清除B,D apt-get autoremove C 将删除B, C, D aptitude remove C 将删除B, C, D

 

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

 

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

 

 

 

1

2

3

apt-get remove C         将删除C, 同时提示你用apt-get autoremove去清除B,D

apt-get autoremove C     将删除B, C, D

aptitude remove C        将删除B, C, D

 

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

 

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

 

 

 

1

2

3

apt-get remove C         将删除C

apt-get autoremove C     将删除C

aptitude remove C        将删除C

 

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

 

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

 

 

 

1

2

3

apt-get remove C         将删除C, 同时提示你用apt-get autoremove去清除B

apt-get autoremove C     将删除B, C

aptitude remove C        将删除B, C

 

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux_apt-get remove 与 apt-get autoremove、aptitude remove的不同 的相关文章

  • Bash:检查是否给出了参数(例如是否有参数“-a”?)

    我有一个脚本 它应该接受 2 个参数 s 和 d 如果未给出 d 参数 我想删除我的调试文件 与 s 相同 如何检查 1 或 2 是否为 s 或 d 舒尔有两个参数 我可以做到 蛮力 if test 1 d test 2 d then rm
  • 找出Linux上一个进程使用了​​多少内存页

    我需要找出进程分配了多少内存页 每个页面是 4096 进程内存使用情况我在查找正确值时遇到一些问题 当我查看 gome system monitor 时 内存映射下有几个值可供选择 Thanks 这样做的目的是将内存使用量除以页数并验证页大
  • 我们如何在使用循环时调用 ansible playbook 中的变量

    我有两个文件 其中这些文件包含server names and server IP s 我想更改 替换一些特定的server names and IP addressees根据要求在两个文件中 这与这篇文章 因为它被要求开设一个新职位 ht
  • 如何通过 makefile 在 Linux 上安装程序? [复制]

    这个问题在这里已经有答案了 可能的重复 Linux Unix make install 应该包含什么 https stackoverflow com questions 528399 what should linux unix make
  • 选择fasta文件中氨基酸超过300个且“C”出现至少4次的序列

    我有一个包含蛋白质序列的 fasta 文件 我想选择超过 300 个氨基酸且半胱氨酸 C 氨基酸出现超过 4 次的序列 我使用此命令来选择具有超过 300 个 aa 的序列 cat 72hDOWN fasta fasta bioawk c
  • Linux中如何避免sleep调用因信号而中断?

    我在 Linux 中使用实时信号来通知串行端口中新数据的到达 不幸的是 这会导致睡眠呼叫在有信号时被中断 有人知道避免这种行为的方法吗 我尝试使用常规信号 SIGUSR1 但我不断得到相同的行为 来自 nanosleep 联机帮助页 nan
  • 使用脚本检查 git 分支是否领先于另一个分支

    I have branch1 and branch2我想要某种 git branch1 isahead branch2 这将显示如果branch1已承诺branch2没有 也可能指定这些提交 我无法检查差异原因branch2 is在之前br
  • Vagrant 遇到问题 - “404 - 未找到”

    我正在尝试使用 Vagrant 制作一个 LAMP 盒子 有人告诉我它使用起来非常简单 我对网络和虚拟机完全陌生 对 Linux Ubuntu 的经验也很少 我目前已尝试按照官方文档页面上的教程进行操作 http docs vagrantu
  • 更新Linux中的包含路径

    我的 my path to file 文件夹中有几个头文件 我知道如何将这些文件包含在新的 C 程序中 但每次我都需要在包含它之前输入头文件的完整路径 我可以在linux中设置一些路径变量 以便它自动查找头文件吗 您可以创建一个 makef
  • MySQL 与 PHP 的连接无法正常工作

    这是我的情况 我正在尝试使用 Apache 服务器上的 PHP 文件连接到 MySQL 数据库 现在 当我从终端运行 PHP 时 我的 PHP 可以连接到 MySQL 数据库 使用 php f file php 但是当我从网页执行它时 它只
  • 使用 libusb 输出不正确

    我用libusb编写了一个程序 我怀疑输出是否正确 因为所有条目都显示相同的供应商和产品 ID 以下是代码 include
  • LINUX:如何锁定内存中进程的页面

    我有一个 LINUX 服务器 运行一个具有大量内存占用的进程 某种数据库引擎 该进程分配的内存太大 需要将其中一部分换出 换出 我想做的是将所有其他进程 或正在运行的进程的子集 的内存页面锁定在内存中 以便只有数据库进程的页面被换出 例如
  • 嵌入清单文件以要求具有 mingw32 的管理员执行级别

    我正在 ubuntu 下使用 i586 mingw32msvc 交叉编译应用程序 我很难理解如何嵌入清单文件以要求 mingw32 具有管理员执行级别 对于我的例子 我使用了这个hello c int main return 0 这个资源文
  • Ubuntu Python shebang 线不工作

    无法让 shebang 线在 Ubuntu 中为 python 脚本工作 我每次只收到命令未找到错误 test py usr bin env python print Ran which python usr bin python 在 sh
  • 通话后返回App

    我正在尝试通过应用程序拨打电话 我希望它在通话后返回到应用程序 我在这个论坛问过这个问题 但我不明白答案 如何在 Android 中拨打电话并在通话结束后返回到我的活动 https stackoverflow com questions 1
  • grep 排除文件的数组参数

    我想从我的文件中排除一些文件grep命令 为此我使用参数 exclude excluded file ext 为了更容易阅读 我想使用包含排除文件的 bash 数组 EXCLUDED FILES excluded file ext 然后将
  • 如何在 PHP 中使用 cURL 发出同时包含 GET 和 POST 参数的请求?

    其他人已经问过如何从 perl java bash 等执行此操作 但我需要在 PHP 中执行此操作 并且我没有看到任何已提出的专门与 PHP 相关的问题 或包含 PHP 的答案 My code ch curl init url curl s
  • 在内核代码中查找函数的最佳方法[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我开始浏览内核代码 遇到的一件事是如何跟踪函数调用 结构定义等 有没有一种好的方法可以快速跳转到函数定义并退出 我尝试过 Source N
  • 找不到包“gdk-pixbuf-2.0”

    我正在尝试在 Amazon Linux 发行版实例上构建 librsvg 我已经通过 yum 安装了大部分依赖项 其中一些在实例上启用的默认 yum 存储库中不可用 因此必须从头开始构建它们 我已经走了很远 但还停留在最后一点 跑步时sud
  • 如何使用 JSch 将多行命令输出存储到变量中

    所以 我有一段很好的代码 我很难理解 它允许我向我的服务器发送命令 并获得一行响应 该代码有效 但我想从服务器返回多行 主要类是 JSch jSch new JSch MyUserInfo ui new MyUserInfo String

随机推荐

  • Eclipse:全局搜索和更替

    Eclipse 中全局搜索和更替 Eclipse 全局搜索步骤 使用快捷键 ctrl 43 H 打开文件搜索对话框 xff0c 选择 File Search 标签 xff0c 在 Containing text 中输入你需要搜索的字符串 x
  • 研发人员绩效评价常见误区

    1 光环化 xff1a 将被评价人某一优点或缺点扩大 xff0c 以偏概全 xff0c 一好百好 xff0c 或一无是处 xff0c 凭个人印象评价下属 2 宽容化 严格化 xff1a 评价人怕承担责任 xff0c 有意放松评价标准 xff
  • malloc分配的内存空间是连续的吗

    1 linux内核管理内存空间的分配 xff0c 所有程序对内存空间的申请和其他操作 xff0c 最终都会交给内核来管理 2 linux实现的是 虚拟内存系统 xff0c 对用户而言 xff0c 所有内存都是虚拟的 xff0c 也就是说程序
  • NLP参考资源

    https antkillerfarm github io NLP参考资源 https mp weixin qq com s 4eyxX EfrImGXnYmTRUFHw 自然语言处理 NLP 入门指南 https www geekhub
  • 找工作笔试面试那些事儿(15)---互联网公司面试的零零种种和多家经验

    作者 xff1a 寒小阳 时间 xff1a 2013年9月 出处 xff1a http blog csdn net han xiaoyang article details 11400719 声明 xff1a 版权所有 xff0c 转载请注
  • 一个很有趣的问题:那些用QQ邮箱发应聘邮件的人啊(附:怎样写一封得体的电子邮件)...

    最近这个话题频频出现 xff0c 而且讨论地越来越激烈 xff0c 也越来越有趣 最开始是在人人网上当做笑口被大家广为扩散的那张图片 xff0c 某大学在申请出国联系导师的时候使用 数字 64 qq com的邮箱 xff1b 之后又有了如下
  • linux(边压缩边传输边解压)

    比如我要转移旧VPS home wwwroot 下的web目录到新VPS 123 123 123 123 的 home wwwroot 目录下 1 进入目录 cd home wwwroot 2 压缩 xff0c 传输 xff0c 解压同步进
  • 让Editplus和SVN集成

    很多人用Editplus xff0c 但是修改了文件后 xff0c 需要切换到文件目录 xff0c 点击鼠标右键使用TortoiseSVN的提交菜单项来提交 xff0c 需要增加很多鼠标点击和确认的操作 xff0c 对于频繁修改的文件来说
  • 服务器是否支持断点续传

    通常情况下 xff0c Web服务器 如Apache 会默认开启对断点续传的支持 因此 xff0c 如果直接通过Web服务器来提供文件的下载 xff0c 可以不必做特别的配置 xff0c 即可享受到断点续传的好处 断点续传是在发起HTTP请
  • git-cola

    http git cola github io downloads html you can get a binary git cola https github com git cola git cola archive v2 3 tar
  • 北邮IT类就业攻略

    发信人 noobody everybody 信区 Job 标 题 北邮IT类就业攻略 发信站 北邮人论坛 Sun Sep 6 12 16 28 2009 站内 不久前发了那篇 盘点IT类就业方向 的文章 xff0c 感受到了师弟师妹们对找工
  • Android开发又将带来新一轮热潮,很多开发者都投入到这个浪潮中去了,创造了许许多多相当优秀的...

    Android开发又将带来新一轮热潮 xff0c 很多开发者都投入到这个浪潮中去了 xff0c 创造了许许多多相当优秀的 应用 其中也有许许多多的开发者提供了应用开源项 目 xff0c 贡献出他们的智慧和创造力 学习开源代码 是掌握技术的一
  • 关于Java加密扩展的出口限制

    近日 xff0c 在Matrix Security版上 http www matrix org cn thread shtml topicId 61 39543 amp forumId 61 55 提出一个问题 xff0c 即他的程序不能正
  • Win7 USB接口无法使用/驱动错误/该设备无法启动。(代码10) 故障解决方法

    电脑USB接口突然有一个不能用了 xff0c 开始以为是驱动问题 xff0c 可是用好几个驱动软件 xff08 驱动精灵 驱动人生等 xff09 更新驱动都无法解决 xff0c 后来发现在设备管理器里有一个设备驱动有问题 xff0c 尝试卸
  • Linux操作手册

    Linux操作手册 查看防火墙是否开启 systemctl status firewalld 开启防火墙 systemctl start firewalld 关闭防火墙 systemctl stop firewalld 查看所有开启的端口
  • 【转】实现电子词典要解决的技术问题及初步的解答

    转自 url http www blogjava net nokiaguy archive 2010 07 31 327623 html url quote 英文词典是手机中经常使用的应用 因此 xff0c 在本文将结合Android来讨论
  • 关于I2C和SPI总线协议

    关于I2C和SPI总线协议 IICvs SPI 现今 xff0c 在低端数字通信应用领域 xff0c 我们随处可见IIC Inter Integrated Circuit 和 SPI Serial Peripheral Interface
  • strchr()、strrchr()、strchrnul()函数

    原文链接 xff1a http blog sina com cn s blog 8b745a5f01017t8b html 头文件 xff1a include 函数原型 xff1a char strchr char str int c ch
  • 面向对象编程之分层思想

    分层 xff1a 就是为了忽略细节 xff0c 关注自己需要关注的地方 1 实体层 xff1a 分析模块所要设计的表 xff0c 确定表之间的关系 gt 编写hibernate Mapping 文件和持久化实体类 2 DAO层 xff1a
  • Linux_apt-get remove 与 apt-get autoremove、aptitude remove的不同

    apt get remove 与 apt get autoremove aptitude remove 的不同 apt get remove 的行为我们很好理解 xff0c 就是删除某个包的同时 xff0c 删除依赖于它的包 例如 xff1