在Linux系统的软件包管理中,devel是常见的包后缀,它是development的缩写,代表开发版本软件包,主要面向软件开发者和需要编译源码的用户提供相关依赖文件。

Linux devel包的核心构成
devel包通常包含对应软件的开发相关文件,不会包含软件运行时需要的核心可执行文件,主要包含以下几类内容:
- 头文件(.h文件),用于C/C++等语言编译时引用函数、结构体的定义
- 静态库文件(.a文件)和动态库开发文件(.so的链接文件),用于程序编译阶段链接依赖
- pkg-config配置文件,帮助编译工具自动获取依赖的路径和编译参数
- 开发相关的文档和示例代码,方便开发者了解接口用法
devel包和普通软件包的区别
同名称的普通软件包和devel包面向的使用场景完全不同,具体差异可以通过下表清晰对比:
| 对比项 | 普通软件包 | devel软件包 |
|---|---|---|
| 面向用户 | 普通使用者,只需要运行软件 | 开发者、需要编译源码的用户 |
| 核心内容 | 可执行程序、运行时依赖库、配置文件 | 头文件、开发库、编译配置文件 |
| 安装必要性 | 运行软件必须安装 | 仅编译依赖该软件的程序时需要安装 |
| 占用空间 | 通常较大,包含完整的运行组件 | 通常较小,仅包含开发相关文件 |
什么时候需要安装devel包
如果你只是正常安装运行软件,不需要安装devel包,直接安装普通软件包即可。以下场景需要安装对应的devel包:
- 从源码编译安装其他软件,且该软件依赖某个库的开发文件
- 自己开发程序,需要调用某个第三方库的接口
- 使用某些需要编译模块的软件,比如Python的某些C扩展模块,编译时需要对应库的devel包
安装devel包的示例
以CentOS系统安装openssl的devel包为例,命令如下:
# 安装openssl的普通运行包 yum install openssl # 安装openssl的devel开发包,用于编译依赖openssl的程序 yum install openssl-devel
如果是Ubuntu/Debian系统,对应的包名后缀是-dev,安装命令如下:
# 安装openssl的普通运行包 apt install openssl # 安装openssl的dev开发包 apt install libssl-dev
常见问题说明
很多用户编译软件时遇到xxx.h: No such file or directory的错误,通常就是没有安装对应的devel包导致头文件缺失。比如编译依赖zlib的程序时,报错找不到zlib.h,只需要安装zlib-devel(CentOS)或者zlib1g-dev(Ubuntu)即可解决。
另外要注意,devel包是和系统的软件包版本匹配的,安装时需要保证devel包的版本和已安装的普通软件包版本一致,避免出现兼容性问题。