编译包并保持整洁

Mar*_*cel 3 compiling debian apt package-management

在我的 Linux (Debian) 职业生涯中,我似乎第一次有必要自己编译一个软件。

编译过程在项目网站上有很好的描述。但是,有一件事我不明白,这使我无法开始:

我想保持我的包管理 (APT) 整洁。为了编译项目,我需要下载很多包(大多数是 *-dev 版本),一旦我完成编译,我可能不需要这些包。

之后我不想保留那些 *-dev 包。

因此,我想知道是否有一种实用的方法可以为编译过程临时安装这些包,然后立即将它们全部删除(而不必记住每个包名)。

ali*_*nth 5

如果该软件包恰好位于某个 debian 存储库中,您可以使用它build-dep来安装构建依赖项并将其标记为“自动”安装。然后你可以autoremove用来清理那些构建依赖。

apt-get build-dep -o APT::Get::Build-Dep-Automatic=true WhatImBuilding
apt-get autoremove
Run Code Online (Sandbox Code Playgroud)

如果你正在构建的任何东西都没有一个带有 build deps 的 deb 包,那么这个技术就行不通了。然而,有一个 debian 功能建议添加这种类型的支持:https : //bugs.debian.org/cgi-bin/bugreport.cgi?bug=745769

我想您可以为您在管理的本地存储库中构建的任何内容定义一个假包,并在那里定义构建依赖,允许上述方法工作。不过,这有点做作。您还可以手动编辑/var/lib/apt/extended_states文件以将您正在安装的任何软件包标记为“自动”,从而使它们有资格使用autoremove,但这可能很危险。