This article shows how to prevent a certain package from being installed, manually or as a dependency, on Linux systems using apt (apt-get) like Ubuntu and Debian.
这篇文章介绍如何在使用 apt (apt-get) 的系统上(例如 Ubuntu 和 Debian),防止某个软件包被安装,包括手动或被依赖。
It utilizes the “pinning” feature of apt, which you can read about in detail with man apt_preferences
.
使用的原理是 apt 的 “pinning” 功能,可以通过 man apt_preferences
获取详细文档。
- Say we want to block “ttf-mscorefonts-installer” from being installed, which is a recommended dependency of “ubuntu-restricted-extras”. When we use
apt-get install ubuntu-restricted-extras
, the package will be automatically installed. If we use the “–no-install-recommends” switch, many other packages will be ignored, but we just want to block that one specific package.
假设我们不想安装 “ttf-mscorefonts-installer” 软件包,但它是 “ubuntu-restricted-extras” 的推荐依赖。如果我们使用apt-get install ubuntu-restricted-extras
命令,则依赖软件包也会自动安装。我们可以用 “–no-install-recommends” 开关阻止推荐依赖,但是同时会阻止其它很多软件包。接下来的方法适用于只阻止特定的一个软件包。 - In the folder “/etc/apt/preferences.d” we create a plain text file “block-package”, with the following contents:
在 “/etc/apt/preferences.d” 文件夹中创建一个文本文件 “block-package”,内容如下:Package: ttf-mscorefonts-installer Pin: version * Pin-Priority: -10
- With a negative priority, the package will not be installed either manually or as a dependency when using apt-get.
由于设置了负优先级,在使用 apt-get 时,这个软件包无论手动还是依赖都不会被安装。
Reference: http://askubuntu.com/questions/75895/how-to-forbid-a-specific-package-to-be-installed