当前位置: 首页>>技术教程>>正文


在Ubuntu/Debian中,如何将软件包标记为不可自动移动?

, , ,

问题描述

假设我有一个使用Synaptic安装的软件包(在本例中为Python软件包)。由于此软件包的版本有些过时,因此我在Synaptic中将其删除,然后使用easy_install进行安装。还使用Synaptic安装了其依赖项之一,但我宁愿保留Synaptic-installed版本,也不要保留easy_installing版本。

唯一的问题是该依赖项现在标记为可自动删除。除了删除并重新安装外,是否有其他方法可以将其标记为手动安装?如果有所作为,我正在使用Ubuntu Jaunty。

最佳办法

您可以在Ubuntu中”hold”一个软件包。

Holding a package basically means you’re telling the package manager to keep the current version no matter what. This is useful if more recent version of a currently working program breaks after an update.

您可以通过Synaptic或通过apt /dpkg在命令行上进行。用于容纳软件包的命令行版本为:

echo package_name hold | dpkg --set-selections

Ubuntu社区文档拥有更完整的指南,解释了to pin or hold packages的操作方式。

次佳办法

我知道您可以做到。您可以在其GUI中通过选择软件包并单击’m’或从”Package”菜单中选择”Mark manual”来执行此操作,或者使用命令行:

aptitude install <package_name>&m

第三种办法

您可以为此使用apt-mark manual <package>,来自Synaptic,Package => [ ] Automatically Installed(取消选中它)。

例如:

# Mark <some_package> as manually-installed:
apt-mark manual <some_package>

# Mark <other_package> as automatically-installed (ex if you know it's a
# dependency to something else and you want to make sure it'll be
# auto-removable if it's no longer used):
apt-mark auto <other_package>

另外,如果在已安装的程序包上使用apt-get install <package>,它将被隐式标记为手动。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8583.html,未经允许,请勿转载。