为什么“aptitude markauto”会卸载我的软件包?

为什么“aptitude markauto”会卸载我的软件包?

来自aptitude帮助:

aptitude 0.6.8.2
Usage: aptitude [-S fname] [-u|-i]

.. snip ..

markauto     - Mark packages as having been automatically installed.
unmarkauto   - Mark packages as having been manually installed.

.. snip ..

那么为什么当我将我的软件包标记为自动安装时,aptitude 会尝试卸载它?!

# aptitude -s -y markauto python-pip
The following packages will be REMOVED:
  python-pip{u}
0 packages upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
Need to get 0 B of archives. After unpacking 468 kB will be freed.
Would download/install/remove packages.

答案1

将软件包标记为已自动安装的目的是,aptitude只有在其他东西需要它们时才保留它们。手动安装的软件包是用户明确想要安装的软件包,自动安装的软件包是需要满足手动安装的软件包的依赖关系的软件包(并且通过 或 等工具自动安装apt-getaptitude。例如,这对于库很有用:一般来说,您不会显式安装库,您只需要您使用的程序所需的库;因此,当您安装一个程序时,它需要的所有库也会被安装,如果您删除该程序,不再需要的库也会被卸载。

因此,当您标记python-pip为自动安装时,您是在告诉您aptitude仅在其他需要时才保留它;大概没有什么作用,所以aptitude认为它应该被删除!

请参阅能力文档了解详情。

相关内容