在我的 Linux (Debian) 职业生涯中,我第一次似乎有必要自己编译一个软件。
项目网站上详细描述了编译过程。然而,有一件事情我不明白,这让我无法开始:
我想保持我的包管理 (APT) 整洁。为了编译该项目,我需要下载很多包(其中大多数是 *-dev 版本),一旦完成编译,我可能就不需要这些包了。
之后我不想保留那些 *-dev 包。
因此,我想知道是否有一种实用的方法可以在编译过程中临时安装这些软件包,然后立即将它们全部删除(而不必记住每个软件包名称)。
答案1
如果该软件包恰好位于 debian 存储库中的某个位置,您可以使用它build-dep
来安装构建依赖项并将其标记为“自动”安装。然后您可以使用它autoremove
来清理这些构建依赖。
apt-get build-dep -o APT::Get::Build-Dep-Automatic=true WhatImBuilding
apt-get autoremove
如果您正在构建的任何内容还没有在某处包含带有构建 deps 的 deb 包,那么此技术不起作用。然而,有一个 Debian 功能建议来添加这种类型的支持:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=745769
我想您可以为您在管理的本地存储库中构建的任何内容定义一个假包,并在那里定义构建依赖,从而允许上述方法起作用。不过,这有点做作。您还可以手动编辑该/var/lib/apt/extended_states
文件,将您要安装的任何软件包标记为“自动”,从而使它们符合 的条件autoremove
,但这可能很危险。