Пакеты *-devel
(обычно называемые *-dev
в дистрибутивах на основе Debian) обычно представляют собой все файлы, необходимые для компиляции кода для данной библиотеки.
Для запуска приложения, использующего библиотеку libfoo
, необходим только фактически используемый файл библиотеки (*.so.*
, например libfoo.so.1.0
) (плюс, возможно, некоторые файлы данных и некоторые символические ссылки для конкретной версии).
Если вы действительно хотите скомпилировать приложение C, которое использует эту библиотеку, вам понадобятся заголовочные файлы (*.h
, например foo.h
), которые описывают интерфейс этого приложения, а также символическую ссылку без версии на общая библиотека (*.so
, например libfoo.so
-> libfoo.so.1.0
). Обычно они упакованы в пакеты *-devel
.
Иногда пакеты *-devel
также включают в себя статически скомпилированные версии библиотек (*.a
, например, libfoo.a
) на случай, если вы хотите создать законченное автономное приложение, которое вообще не зависит от динамических библиотек. .
Другие языки (такие как Java, Python, ...) используют другой способ отметить API библиотеки (эффективно включая всю необходимую информацию в реальной библиотеке) и, таким образом, обычно не нуждаются в отдельных пакетах *-devel
( за исключением, может быть, документации и дополнительных инструментов).