What is the utility of devel packages like “libgtk+-devel” or “python-devel” etc.? Do they contain source of the library? How is it different from non-devel packages like libgtk+?
What is the utility of devel packages like libgtk+-devel or python-devel etc.? Do they
Share
The
*-develpackages (usually called*-devin Debian-based distributions) are usually all the files necessary to compile code against a given library.For running an application using the library
libfooonly the actualy shared library file (*.so.*, for examplelibfoo.so.1.0) are needed (plus possibly some data files and some version-specific symlinks).When you actually want to compile a C application that uses that library you’ll need the header files (
*.h, for examplefoo.h) that describe the interface of that application as well as a version-less symlink to the shared library (*.so, for examplelibfoo.so->libfoo.so.1.0). Those are usually bundled in the*-develpackages.Sometimes the
*-develpackages also include statically compiled versions of the libraries (*.a, for examplelibfoo.a) in case you want to build a complete stand-alone application that doesn’t depend on dynamic libraries at all.Other languages (such as Java, Python, …) use a different way of noting the API of a library (effectively including all the necessary information in the actual library) and thus usually need no separate
*-develpackages (except maybe for documentation and additional tools).