如何找到软件包的构建依赖关系?


48

我想找出哪些包裹

sudo apt-get build-dep <package>

将会安装(如果我已经安装了一些依赖项,我还想看看那些依赖项,因此仅运行或模拟上述依赖项是不够的)。首选命令行。


1
我很困惑,没有sudo apt-get build-dep <package>显示要安装的软件包列表(如果软件包具有任何构建依赖项)?
以赛亚书

1
不幸的是,这仅显示未安装的软件包。
htorque 2011年

Answers:


45

有关依赖项的完整列表,包括依赖项的依赖项,可以使用:

apt-rdepends --build-depends openoffice.org

该命令可能会提示您先安装apt-rdepends

您可以使用以下命令仅显示未安装的那些:

apt-rdepends --build-depends --print-state openoffice.org | grep NotInstalled

请参阅apt-rdepends --help所有选项。

注意:这将生成大量列表。
apt-rdepends -b xterm,例如,生成8773行输出,并且花时间去做。

如果只想查看构建最顶层软件包所需的软件包,即构建Nautilus需要安装什么,请运行:

apt-rdepends --build-depends --follow=DEPENDS nautilus

这大致相当于Carsten Thiel的答案The following NEW packages will be installed),但输出格式更好一些。它还仅显示最顶层的软件包,而模拟的apt-get还将显示安装为依赖软件包的软件包。

这也显示已安装的软件包。但是它可能还会显示默认安装的软件包。不幸的是,当您尝试运行apt-get build-dep 来清理系统时,这两种方法都无济于事。据我所知,除了查看位于的apt日志文件之外,没有一种可靠的方法来查找已安装的文件/var/log/apt/history.log


1
谢谢,版本--follow=DEPENDS正是我想要的。您还可以在Launchpad上找到这些构建依赖项,例如。对于Nautilus:launchpad.net/ubuntu/natty/+source/nautilus(向下滚动)。
htorque 2011年

18

选项-s--simulate)将输出无需执行任何操作即可完成的所有操作。您甚至不需要root特权。

apt-get -s build-dep <package>

5
请参阅上方我的评论-这不会显示已安装的软件包。对不起,我的问题不够精确。
htorque 2011年

不工作-失败E: Unable to find a source package for inkscape
阿纳托利techtonik

16
apt-cache showsrc <pkgname> | grep ^Build-Depends

showsrc显示给定源软件包的debian / control文件。然后,我们对以“ Build-Depends”开头的行进行grep,其中包含从源代码构建所需的软件包列表。


如果您说明什么apt-cache showsrc以及做什么,| grep则+1 。不过,很好的答案。感谢您抽出宝贵的时间来提供它。
MadMike 2014年

sudo apt-cache showsrc inkscape对于不工作inkscape在Ubuntu 18.10 -让W: Unable to locate package inkscape N: No packages found
阿纳托利techtonik
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.