如何区分构建依赖项和使用依赖项?

如何区分构建依赖项和使用依赖项?

包的某些依赖项仅在编译时需要,而另一些则在实际使用时需要。作为一个例子,我碰巧知道net-misc/unison确实dev-lang/ocaml只需要编译,而它的sys-libs/glibc依赖项(也)用于使用。但如何才能真正找出其中的差异呢?

答案1

根图有点特别...;-)

这将取决于来源。如果您需要一些特殊工具 - awk、sed、flex ... - 来处理/生成程序源代码的某些部分,那么您将需要这些工具来编译/构建它...但是,一旦该程序已构建 - 即。您有一些可执行文件 - 使用该程序不需要这些工具。

对于用不寻常的语言编写部分的程序也是如此。如果程序的某些部分是用 Ocaml、Ada 或 Pascal 编写的;您需要为这些语言安装合适的编译器。一旦它们被编译成目标文件并链接到完成的可执行文件中,就只需要共享库 - 除非它是使用静态库构建的,在这种情况下甚至不需要库。

即使文档的某些部分有时也可能需要安装额外的工具和程序 - 例如用 LaTeX 编写的内容,因此需要使用 LaTeX 创建。毕竟,即使是简单的手册页也需要 TROFF 来解释所使用的标记语言。

对于除 Gentoo 之外的其他发行版(您不需要自己构建所有内容的发行版),您不必担心构建过程中所需的工具,因为软件包是预先构建的。

相关内容