Linux 软件包存储库中的 *​​-dev 软件包实际上包含啥?

Posted

技术标签:

【中文标题】Linux 软件包存储库中的 *​​-dev 软件包实际上包含啥?【英文标题】:What do the *-dev packages in the Linux package repositories actually contain?Linux 软件包存储库中的 *​​-dev 软件包实际上包含什么? 【发布时间】:2010-11-12 12:48:07 【问题描述】:

我的问题非常基础,我现在的知识也是如此。

我是 Linux 的老用户,但最近才对编程产生了浓厚的兴趣。我看到 Ubuntu 存储库中的许多流行应用程序都有 -dev 包(例如 pidgin-devpidgin)。我的问题是这样的:

这些包中有什么?下载 pidgin-dev 对 Pidgin 开发有何帮助?是否像为给定应用程序创建插件所需的工具进行依赖性检查一样简单?

我希望 -dev 包中有大量文档,但如果有,我不知道如何访问它。我正在考虑类似手册页之类的东西,但对编辑代码很有用。

非常欢迎任何和所有建议!

【问题讨论】:

What are *-devel packages?的可能重复 开发与开发不同。 (就字符串的值而言) 【参考方案1】:

*-dev 包通常包含与库接口相关的标头。接下来最常见的是描述构建选项和静态链接库的包配置文件 (*.pc)。

一般来说,如果您想知道已安装的软件包的内容,dpkg -L pkgname 会告诉您。 apt-file 程序可以告诉您存储库中任何包的相同信息。

另外请注意,William Pursell 和 caf 的回答包含有用的附加细节。如果您觉得他们的意见有帮助,请点赞。

【讨论】:

如果不安装也想知道内容,也可以用apt-get下载,然后dpkg-deb -c @Jeff 更简单的方法是使用apt-file list packagename【参考方案2】:

(免责声明:我熟悉 Debian,但不熟悉 Ubuntu,因此尽管几乎可以肯定我在下面写的所有内容都适用,但有可能不是。)

*-dev 包中的另一项是/usr/lib/lib*.so 链接。 libfoo0 包将安装文件/usr/lib/libfoo.so.0.0,而libfoo-dev 安装链接/usr/lib/libfoo.so.0/usr/lib/libfoo.so。这是允许您同时安装libfoo0libfoo1 的机制,因此需要旧库的软件可以与使用新库的软件共存。当您安装libfoo-dev 时,任何编译的软件都将跟随*.so 链接并链接到该链接所引用的库版本。

【讨论】:

【参考方案3】:

-dev 包通常包含 C 头文件和库文件的静态编译版本(.a 扩展名)。有时它们包含额外的文档和示例,甚至是帮助应用程序。

【讨论】:

【参考方案4】:

此包包含主 pidgin 包中未包含的头文件和其他开发文件。如果您想编译自己的插件,请安装 -dev。

【讨论】:

以上是关于Linux 软件包存储库中的 *​​-dev 软件包实际上包含啥?的主要内容,如果未能解决你的问题,请参考以下文章

Linux中的LVM和软RAID

linux系统中的目录dev, usr, opt, etc , 啥样的文件或软件应该放哪里?

轻松安装已从 CRAN 存储库中删除的软件包

CentOS 7 - 更新默认存储库中未找到的软件包

如何从命令行列出 Github 包注册表存储库中的所有包?

Linux安装相关