当我想在Ubuntu / Debian中从源代码编译某些内容时,通常会通过sudo apt-get build-dep PACKAGE_NAME
在终端中运行“ ” 来获得构建依赖性。
一旦完成编译工作,它们(通常)就无用了。
那么,如何删除特定软件包的所有构建依赖关系?
当我想在Ubuntu / Debian中从源代码编译某些内容时,通常会通过sudo apt-get build-dep PACKAGE_NAME
在终端中运行“ ” 来获得构建依赖性。
一旦完成编译工作,它们(通常)就无用了。
那么,如何删除特定软件包的所有构建依赖关系?
Answers:
为了找出程序的构建依赖性,您可以运行该程序,该程序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-集成3.0开发(> = 0.1.36),librest开发
在webupd8站点上有一个命令可以一次完成所有操作,但是我发现它似乎不能与当前版本的Ubuntu可靠地一起工作,因为它似乎删除了太多。我用Pinta尝试过,它建议删除整个Mono库。在Launchpad上使用webupd8之类的命令讨论了此类问题。在尝试可能找到的任何“解决方案”时,请务必小心。
autoremove
对于build-dep
已安装的软件包没有命令是很可惜的。
pbuilder
。因此,无需担心安装/卸载依赖项。
风滚草写道:
对于将来,我强烈建议使用
mk-build-deps
...而不是aptitude build-dep
。这就在系统中留下了一个软件包...,该软件包[具有依赖项]位于build-deps上,以后可以轻松卸载。
mk-build-deps
可以安装 sudo apt install devscripts
记住安装了哪些软件包,sudo apt-get build-dep PACKAGE_NAME
并在构建后将其删除。
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 <km@kevinmehall.net>
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 之外的其他重要内容的软件包。继续之前,请通读要删除的软件包列表。
sudo apt-get build-dep -o APT::Get::Build-Dep-Automatic=true PACKAGE_NAME
。现在可以使用删除它们apt-get autoremove
。但这仅在删除主程序包后有效。