如何删除特定包的所有构建依赖项?

如何删除特定包的所有构建依赖项?

当我想在 Ubuntu/Debian 中从源代码编译某些东西时,我通常通过sudo apt-get build-dep PACKAGE_NAME在终端中运行“ ”来获取构建依赖项。

一旦编译工作完成,它们通常就没用了。

那么,如何删除所有构建依赖项对于特定的包裹?

答案1

风滚草写道

对于未来,我强烈建议使用mk-build-deps... 而不是aptitude build-dep。这样会在你的系统中留下一个包 ...,[它有 build-deps 的依赖关系],你以后可以轻松地卸载它。

mk-build-deps可以安装sudo apt install devscripts

答案2

要找出程序的构建依赖项,您可以运行apt-cache showsrc pkgname和 ,它将列出 以及其他信息Build-Depends,这些信息通常是以 结尾的文件-dev;尽管值得检查是否有任何文件(特别是那些未标记 的文件)是其他程序所需的。您可以使用和-dev来找出这一点。以下示例适用于:apt-cache depends fileapt-cache rdepends fileShotwell

apt-cache showsrc shotwell

构建依赖:debhelper(>= 7.0.50~)、m4、valac-0.16(>= 0.15)、libgee-dev(>= 0.5.0)、libgtk-3-dev(>= 3.0.11)、libexif-dev(>= 0.6.16)、libsqlite3-dev(>= 3.5.9)、libgexiv2-dev(>= 0.4.1-1build1)、libgnomevfs2-dev(>= 2.24.2)、libgphoto2-2-dev(>= 2.4.2)、libsoup2.4-dev(>= 2.26.0)、libxml2(>= 2.6.32)、libunique-3.0-dev(>= 1.0.0)、libwebkitgtk-3.0-dev(>= 1.1.5)、libgudev-1.0-dev (>= 145)、libdbus-glib-1-dev(>= 0.80)、libraw-dev(>= 0.13.1-2)、libusb-dev、libjson-glib-dev(>= 0.7.6)、libgstreamer0.10-dev(>= 0.10.28)、libgstreamer-plugins-base0.10-dev(>= 0.10.32)、python-scour、libunity-dev、liblaunchpad-integration-3.0-dev(>= 0.1.36)、librest-dev

有一个命令可以一次性完成所有操作webupd8 网站我发现它似乎不能可靠地与当前版本的 Ubuntu 配合使用,因为它似乎消除太多了。我尝试使用 Pinta,它建议删除整个 mono 库。关于使用 webupd8 等命令时出现此类问题的讨论,请访问发射台。在试验您可能找到的任何“解决方案”时要非常小心。

遗憾的是,没有autoremove用于安装包的命令build-dep

答案3

选项1:

记住安装了哪些包,sudo apt-get build-dep PACKAGE_NAME并在构建后将其删除。

选项 2:

apt-cache showsrc提供了有关源包的大量信息,包括构建依赖项的列表。

apt-cache showsrc PACKAGE_NAME

例如:

$ apt-cache showsrc pithos
Package: pithos
Binary: pithos
Version: 0.3.17~git07dcbd86a1
Section: python
Maintainer: Kevin Mehall <[email protected]>
Build-Depends: cdbs (>= 0.4.43), debhelper (>= 6), python, python-central (>= 0.6.11), python-distutils-extra (>= 2.10)
Architecture: all
Standards-Version: 3.8.2
Format: 1.0
Directory: pool/main/p/pithos
Files:
 cdf2129923e62bb62c246965453b40bd 2023031 pithos_0.3.17~git07dcbd86a1.tar.gz
 97689e8ada8be527d689f2c83415d3b0 1544 pithos_0.3.17~git07dcbd86a1.dsc
Python-Version: current
Checksums-Sha1: 35cbf3ae52922e50a0b81afcce2cd97a86afb254 2023031 pithos_0.3.17~git07dcbd86a1.tar.gz
Package-List: pithos deb python extra
Checksums-Sha256: 2b704d86f3dc1d36d180177d11e578bdcf74ea97b09b530144afe754e570b262 2023031 pithos_0.3.17~git07dcbd86a1.tar.gz
$ sudo apt-get remove cdbs debhelper python python-central python-distutils-extra

此选项的风险是,你可能会删除对某些事情很重要的包除了正在构建 PACKAGE_NAME。在继续之前,请先阅读要删除的软件包列表。

答案4

您可以使用/var/log/apt/history.log来完成此操作。使用grep找到正确的行并将清理后的包列表传递给apt remove

 apt remove $(cat /var/log/apt/history.log | grep "Install: fontconf" | sed -re 's/\([^)]+\)//g' -re 's/:[^ ]+//g' -re 's/, //g' -re 's/^Install: //g')

此示例用于从 中删除包apt build-dep linux

仔细检查 apt 删除操作中列出的软件包。

也执行一下apt autoremove,以防万一。

相关内容