Linux中的包名"xxx"和"xxx-dev"有什么区别?
1. 引入
在安装包的时候,有时候需要安装xxx
的包,有时候又需要安装xxx-dev
的包 (在CentOS系列发行版上则是xxx-devel
)。这两类包之间又什么区别呢?
2. 结论
不包含-dev
的包里面包含的是运行所需要的二进制文件或者连接库文件(如xxx.so
),而包含-dev
的包则包含包的源码文件(如.h
文件),为的是在编译使用了这些库的程序的时候,能找到对应的头文件,否则只有二进制文件或者.so
文件,编译时会报代码找不到头文件的错误。
下面举个例子进行说明。
我们只使用Python的话,用sudo apt install python
即可,安装后就可以正常使用Python。
如果想要编译一个叫lxml的库,它依赖Python的源码,例如这里的代码依赖Python.h
这个文件,因此我们需要安装python-dev
包,把Python.h
安装到本地上,这样lxml包才能正常安装。