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

Jas*_*ker 9 debian easy-install ubuntu synaptic-pkg-mgr

假设我有一个使用 Synaptic 安装的包(在本例中为 Python 包)。由于这个包的版本有些过时,我在 Synaptic 中将其删除,然后使用easy_install. 它的一个依赖项也是使用 Synaptic 安装的,但我宁愿保留 Synaptic 安装的版本而不是easy_installing它。

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

dan*_*dam 6

我知道你有能力做到这一点。您可以通过选择包并点击“m”或从“包”菜单中选择“标记手册”或使用命令行在其 GUI 中执行此操作:

aptitude install <package_name>&m


Tho*_*est 6

您可以使用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>
Run Code Online (Sandbox Code Playgroud)

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


小智 1

你可以在 Ubuntu 中“保存”一个包。

持有一个包基本上意味着你告诉包管理器无论如何都要保留当前版本。如果当前正在运行的程序的更新版本在更新后中断,这非常有用。

您可以通过 Synaptic 或通过 apt/dpkg 在命令行上完成此操作。保存包的命令行版本是:

echo package_name hold | dpkg --set-selections
Run Code Online (Sandbox Code Playgroud)

Ubuntu 社区文档有更完整的指南,解释如何固定或保留软件包

  • Hold 通常用于防止升级到新版本;它不应该用来保存包裹。使用保留将阻止您接收安全和发行版更新,并且在升级过程中将成为额外的负担。将软件包标记为手动安装应该是正确的方法(请参阅我的答案...)。 (2认同)