I'm confused about the use for "*-devel" packages, and so I looked it up. According to an answer in this post, What are *-devel packages?:
"For running an application using the library libfoo only the actualy shared library file (.so., for example libfoo.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 example foo.h) that describe the interface of that application as well as a version-less symlink to the shared library (.so, for example libfoo.so -> libfoo.so.1.0). Those are usually bundled in the *-devel packages."
This seems redundant to me. To me it sounds like this: "To use the library you need just the libfoo. But if you want to use the library, you need the header files and hence libfoo-devel"
I can't quite find the answer to the importance of the header files.