开发下载是否与常规下载一样完整?

开发下载是否与常规下载一样完整?

我想知道,开发下载是否总是与常规下载一样完整?

答案1

我假设您指的是 Debian 和 Ubuntu 中看到的软件包名称。

包的后缀-dev表示它包含使用无后缀包进行开发相关的文件。

例如,软件包zlib1g-dev包含使用创建应用程序所需的文件zlib1gzlib1g仅包含库,因此现有应用程序可以使用其中的功能。编译需要 -dev 文件,因为编译器必须知道函数来自何处,但是一旦程序编译完成,只需要常规软件包,因为编译后的应用程序知道加载库并使用其中的函数。

除非你手动编译使用库的应用程序,否则你通常不需要软件包-dev- 你需要的是非软件包-dev。但是,如果你编译应用程序,您将需要它们两者 - 该-dev包不包含库本身(但它通常依赖于库,因此您可以通过这种方式获得它)。

答案2

以 结尾的软件包包含-dev构建调用该库的应用程序时使用的标头和静态库。如果您从源代码构建应用程序,并且想要静态编译库,那么这可能就足够了。

但是,您从软件包安装的所有应用程序都将使用软件包所不提供的共享库-dev,因此您还需要安装基础软件包。

几乎所有以 结尾的库包都-dev依赖于基础包,因此如果您选择libpng-dev并安装它,您的包管理器应该会libpng自动下载。如果您libpng-dev自己下载并尝试安装它,安装可能会失败,因为它libpng也需要指定。通常有命令行开关可以强制安装而不检查依赖项,但它们很少使用,也不推荐。

总之:您确实应该下载基础包以及包-dev,但通常包管理器会为您处理这些。

相关内容