当 build-essential 是另一个包的一部分时,如何手动删除它?

当 build-essential 是另一个包的一部分时,如何手动删除它?

我们安装了带有 build-essential 的 Nagios 插件,但我想删除它,因为我不想在生产服务器上构建工具。

当我模拟apt-get 删除命令:

apt-get remove build-essential --simulate

据称它还将删除 Nagios 插件。

我怎样才能删除 build-essential 并保留插件?

答案1

您安装的“nagios 插件”可能将 build-essential 列为依赖项。

软件包将 build-essential 列为依赖项的最常见原因是该软件包在安装过程中编译了一些源代码。依赖 build-essential 并不是 Ubuntu 自身提供的软件包的常见做法,在极少数情况下,它们确实需要在安装过程中进行一些编译,因此不会包含 build-essential 的全部内容。

假设它被列为“需要”依赖项,则无法使用 APT 删除依赖项,但会保留依赖于它的包。这是 APT 在安装包的整个过程中强制执行的约束。

理论上,如果构建工具仅在安装包时才需要但不再使用,则可以强行移除属于 build-essential 的各种文件和东西大概继续工作。但这是绝对不推荐因为就 APT/dpkg 而言,它将给你的系统带来损坏!

您说您不想在生产服务器上安装构建工具。这是出于安全原因吗?因为如果是这样,仅仅没有可用的特定工具并不能真正加强安全性。首先,构建工具不会为普通用户提供任何额外的权限 - 他们仍然被限制在文件系统的相同部分。例如,他们无法安装代码以作为超级用户运行。此外,无论系统范围内安装了什么,用户仍然可以使用其用户权限在自己的主目录中安装和运行二进制工具(例如编译器)。

相关内容