在 debian 系统上,我可以使用aptitude markauto并将aptitude unmarkauto软件包标记为手动或自动安装。我使用它通过标记我知道我想要的包来删除不需要的包。然后apt-get autoremove将删除所有不需要的包。
我现在使用的是 Fedora 系统,并希望在 rpm 或 yum 或其他程序中使用类似的功能。rpm/yum 甚至有像 debian 系统这样的手动/自动安装软件包的概念吗?
小智 9
至少较新的 yum 版本(在 Fedora 20 上用 yum 3.4.3 测试)能够区分手动安装的软件包和作为依赖项安装的软件包。此信息使用键“reason”存储在 yumdb 中,该键可以设置为“user”或“dep”。
# yumdb set reason dep [package name or wildcard]
Run Code Online (Sandbox Code Playgroud)
应该相当于“aptitude markauto”。如果您不提供包名称,则更改将应用于所有包。我不会那样做,不太激进的方法是使用
# yumdb search reason user
Run Code Online (Sandbox Code Playgroud)
并手动删除您不想要的包。
如果你跑
# yum autoremove
Run Code Online (Sandbox Code Playgroud)
如果其他包不再引用标记为“dep”的所有包,则将删除它们。应该相当于“aptitude autoremove”。
不使用 yum 安装的软件包(例如 rpm -i)可能没有“reason”键,我假设 autoremove 的默认行为是将它们视为“用户”软件包,但它们不会使用“yumdb search”命令列出。
小智 5
取消将软件包标记为用户安装的软件包(即,如果该软件包不是用户安装的软件包的依赖项,则该软件包将被自动删除删除):
dnf mark remove [package name or wildcard]
Run Code Online (Sandbox Code Playgroud)
相反,将软件包标记为用户安装(该软件包永远不会被自动删除删除):
dnf mark install [package name or wildcard]
Run Code Online (Sandbox Code Playgroud)
还有dnf mark group [package],它将软件包标记为已作为某个软件包组的一部分安装。当一个软件包被标记为由某个组安装时,如果它不属于另一个已安装的组,则使用该dnf group remove命令删除它所属的任何组时,该软件包也会被删除。
| 归档时间: |
|
| 查看次数: |
2481 次 |
| 最近记录: |