当我想在 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 file
apt-cache rdepends file
Shotwell
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
,以防万一。