`

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

 
阅读更多

 

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不能删除

  • 大小: 32 KB
  • 大小: 36 KB
  • 大小: 40 KB
  • 大小: 40 KB
  • 大小: 37.5 KB
分享到:
评论

相关推荐

    Ubuntu下Apt-get命令使用指南

    与`apt-get purge`不同的是,`apt-get remove`不会删除软件包的配置文件,而`apt-get purge`会同时删除软件包及其配置文件。 - **`apt-get autoremove`**:此命令用于删除不再使用的软件包,这些软件包可能是其他...

    dpkg,apt 和 aptitude 的使用

    - `sudo apt-get autoremove`:自动删除不再需要的包 - `sudo apt-get update`:更新源列表 - `sudo apt-get upgrade`:更新已安装的包 - `sudo apt-get dist-upgrade`:升级整个系统至最新版本 - `sudo apt-...

    ubuntu命令大全-详细命令大全

    - `sudo apt-get autoremove`: 删除系统不再使用的孤立软件。 - `sudo apt-get --purge remove 软件包名`: 彻底卸载软件包及其配置文件。 7. **其他实用命令** - `sudo apt-cdrom add`: 添加新的光盘源。 - `...

    linux常用命令及技巧[文].pdf

    - 自动删除无用软件: `apt-get autoremove` - 删除软件: `apt-get remove packages` - 删除软件及配置文件: `apt-get remove package --purge` - 清理缓存: `dpkg -l |grep ^rc|awk '{print $2}' |tr ["/n"] [" ...

    乌班图(Ubuntu)命令使用技巧.doc

    使用 sudo apt-get autoremove 14. 查看包在服务器上面的地址 使用 apt-get -qq --print-uris install ssh | cut -d\' -f2 15.彻底删除 Gnomes 使用 sudo apt-get --purge remove liborbit2 16.彻底删除 KDE ...

    Ubuntu的软件管理工具

    * sudo apt-get autoremove:自动删除不需要的软件包 * sudo apt-get update:更新软件源 * sudo apt-get upgrade:升级已安装的软件包 * sudo apt-get dist-upgrade:升级系统 * sudo apt-get dselect-upgrade:...

    linux菜鸟进阶系列之Linux常用命令(新手必看).pdf

    - 自动删除无用软件:`apt-get autoremove` - 删除软件:`apt-get remove packages` - 删除软件及配置:`apt-get remove package --purge` - 清理已删除包的配置:`dpkg -l |grep ^rc|awk '{print $2}' |tr ["/n...

    linux 常用的命令以及技巧

    - `apt-get autoremove`: 删除不再需要的软件包。 - `apt-get remove packages`: 删除软件包。 - `apt-get remove package --purge`: 删除包并清除配置。 - 清理软件包残余配置文件: `dpkg -l |grep ^rc|awk '{...

    ubuntu终端命令

    - **彻底删除软件环境**:例如,`sudo apt-get --purge remove liborbit2`彻底删除Gnome环境,`sudo apt-get --purge remove libqt3-mt libqtcore4`彻底删除KDE环境。 - **一键安装LAMP服务**:`sudo tasksel ...

    ubuntu skills

    `sudo apt-get autoremove`删除系统不再使用的孤立软件。 #### 系统信息与配置 - **系统与内核信息**:`uname -a`查看内核信息;`cat /etc/issue`、`cat /etc/lsb-release`或`lsb_release -dsc`查看Ubuntu版本。 -...

    ubuntu系统清理及常用命令

    - `sudo apt-get remove linux-image-内核版本号`: 例如,`sudo apt-get remove linux-image-2.6.27-2-generic`。 每个内核大约会占用130-140MB的空间,删除多余内核有助于释放磁盘空间。 #### 三、系统备份与...

    Ubuntu最全命令大全【珍藏版】.docx

    - `sudo apt-get autoremove`:删除不再使用的软件包及其依赖。 18. **查看包在服务器上的位置** - `apt-get -qq --print-uris install ssh | cut -d\' -f2`:显示软件包 `ssh` 在服务器上的 URL 地址。 19. **...

    Ubuntu命令大全(详细版).docx

    使用 `sudo apt-get autoremove` 命令来删除不再使用的孤立软件包。 #### 其他操作 - **查看包在服务器上的地址** 使用 `apt-get -qq --print-uris install ssh | cut -d '\'' -f 2` 命令可以查看特定软件包在...

    Ubuntu命令大全.pdf

    - **命令**: `sudo apt-get autoremove` - **描述**: 移除那些不再需要且未被任何已安装软件包依赖的软件包。 #### 三、其他高级操作 **1. 查看软件包的服务器地址** - **命令**: `apt-get -qq --print-uris ...

    linux 常用命令及技巧

    - **自动删除无用的软件**: `apt-get autoremove` - **删除软件**: `apt-get remove 包名` - **删除包并清除配置文件**: `apt-get remove --purge 包名` - **清除删除包的残余配置文件**: - `dpkg -l | grep ^rc | ...

    ubuntu shell命令

    - **命令**: `sudo apt-get autoremove` - **功能**: 删除不再需要的软件包及其依赖项。 - **应用场景**: 优化系统,去除不再使用的软件。 #### 八、查看系统信息 - **查看内核**: - **命令**: `uname -a` - *...

Global site tag (gtag.js) - Google Analytics