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的不同 的相关文章

  • 仅打印“docker-container ls -la”输出中的“Names”列

    发出时docker container ls la命令 输出如下所示 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a67f0c2b1769 busybox tail f dev
  • 应用程序无缘无故地被杀死。怀疑 BSS 高。如何调试呢?

    我已经在CentOs6 6中成功运行我的应用程序 最近 硬件 主板和内存 更新了 我的应用程序现在毫无理由地被杀死 root localhost PktBlaster PktBlaster Killed 文件和 ldd 输出 root lo
  • nginx 上的多个网站和可用网站

    通过 nginx 的基本安装 您的sites available文件夹只有一个文件 default 怎么样sites available文件夹的工作原理以及如何使用它来托管多个 单独的 网站 只是为了添加另一种方法 您可以为您托管的每个虚拟
  • 如何在 shell 脚本中并行运行多个实例以提高时间效率[重复]

    这个问题在这里已经有答案了 我正在使用 shell 脚本 它读取 16000 行的输入文件 运行该脚本需要8个多小时 我需要减少它 所以我将其划分为 8 个实例并读取数据 其中我使用 for 循环迭代 8 个文件 并在其中使用 while
  • 为什么内核需要虚拟寻址?

    在Linux中 每个进程都有其虚拟地址空间 例如 32位系统为4GB 其中3GB为进程保留 1GB为内核保留 这种虚拟寻址机制有助于隔离每个进程的地址空间 对于流程来说这是可以理解的 因为有很多流程 但既然我们只有 1 个内核 那么为什么我
  • Linux中的定时器类

    我需要一个计时器来以相对较低的分辨率执行回调 在 Linux 中实现此类 C 计时器类的最佳方法是什么 有我可以使用的库吗 如果您在框架 Glib Qt Wx 内编写 那么您已经拥有一个具有定时回调功能的事件循环 我认为情况并非如此 如果您
  • 域套接字“sendto”遇到“errno 111,连接被拒绝”

    我正在使用域套接字从另一个进程获取值 就像 A 从 B 获取值一样 它可以运行几个月 但最近 A 向 B 发送消息时偶尔会失败 出现 errno 111 连接被拒绝 我检查了B域套接字绑定文件 它是存在的 我也在另一台机器上做了一些测试 效
  • 加载数据infile,Windows和Linux的区别

    我有一个需要导入到 MySQL 表的文件 这是我的命令 LOAD DATA LOCAL INFILE C test csv INTO TABLE logs fields terminated by LINES terminated BY n
  • Android 时钟滴答数 [赫兹]

    关于 proc pid stat 中应用程序的总 CPU 使用率 https stackoverflow com questions 16726779 total cpu usage of an application from proc
  • 如何有效截断文件头?

    大家都知道truncate file size 函数 通过截断文件尾部将文件大小更改为给定大小 但是如何做同样的事情 只截断文件的尾部和头部呢 通常 您必须重写整个文件 最简单的方法是跳过前几个字节 将其他所有内容复制到临时文件中 并在完成
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • nslookup 报告“无法解析 '(null)': 名称无法解析”,尽管它成功解析了 DNS 名称

    我在 ubuntu 上 并且正在运行 docker 默认桥接网络 我有 Zookeeper kafka 的容器化版本 以及我编写的与 kafka 对话的应用程序 I do a docker exec it
  • 如何在Linux内核源代码中打印IP地址或MAC地址

    我必须通过修改 Linux 内核源代码来稍微改变 TCP 拥塞控制算法 但为了检查结果是否正确 我需要记录 MAC 或 IP 地址信息 我使用 PRINTK 函数来打印内核消息 但我感觉很难打印出主机的MAC IP地址 printk pM
  • 安装J语言的JQt IDE,出现错误

    我一直按照这里的说明进行操作 http code jsoftware com wiki System Installation Linux http code jsoftware com wiki System Installation L
  • 如何在shell中输出返回码?

    我正在尝试通过调用自定义 shell 脚本sh bin sh c myscript sh gt log txt 2 gt 1 echo 该命令的输出是创建的后台进程的 PID 我想指导 bin sh保存返回码myscript sh到某个文件
  • jpegtran 优化而不更改文件名

    我需要优化一些图像 但不更改它们的名称 jpegtran copy none optimize image jpg gt image jpg 但是 这似乎创建了 0 的文件大小 当我对不同的文件名执行此操作时 大小仍然完全相同 怎么样 jp
  • C语言中如何通过内存地址映射函数名和行号?

    如何用 GCC 中的内存地址映射回函数名称和行号 即假设一个 C 语言原型 void func Get the address of caller maybe this could be avoided MemoryAddress get
  • 为什么我可以直接从 bash 执行 JAR?

    我是一个长期从事 Java 工作的人 并且知道运行带有主类的 JAR 的方法MANIFEST MFJar 中的文件很简单 java jar theJar jar 我用它来启动 Fabric3 服务器 包含在bin server jar在其标
  • PHP 无法打开流:是一个目录

    非常简单的 PHP 脚本 我在我亲自设置的 Ubuntu Web 服务器上的 EE 模板中运行 我知道这与权限有关 并且我已经将我尝试写入的目录的所有者更改为 Apache 用户 我得到的错误是 遇到 PHP 错误 严重性 警告 消息 fi
  • 如何更改 Apache 服务器的根目录? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何更改 Apache 服务器的文档根目录 我基本上想要localhost从 来 users spencer projects目录而不是

随机推荐

  • 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