Поскольку в разных дистрибутивах пакеты называются по-разному, это чрезвычайно сложно осуществить. Например, в Debian пакет может называться libfoo, а его пакет разработки аналогичен libfoo-dev. В RHEL / CentOS это могут быть libfoo1 и libfoo1-devel.
Хорошо написанный файл configure.ac (который используется для генерации скрипта 'configure') должен мета сказать вам, какой пакет вам не хватает. Т.е.
Checking for libfoo ... no Checking for libfoo usability .... no ./configure: Error: You are missing the package 'libfoo' and possibly 'libfoo-dev(el)'
Это позволяет apt-cache / yum искать что-то для установки, если ошибки, предшествующие configure: Error: не очевидны. Вывод настроек в Google обычно приносит плоды, чтобы выяснить, какой пакет вам не хватает.
Реальная проблема возникает, когда версия libfoo предлагает ваш дистрибутив слишком стара для программы, которую вы пытаетесь собрать. В этом случае вы должны собрать сам libfoo, установить его отдельно от версии, предоставленной вашим дистрибутивом, и указать программе, как на него ссылаться (также это делается через «configure»)
По этой причине я обычно использую быстродвижущиеся дистрибутивы (т.е. Ubuntu) для своей машины для разработки. Обычно я могу найти то, что мне нужно, в обновленном хранилище юниверса.
Я просто должен был обновить Glibc на машине Debian Lenny просто, чтобы иметь возможность построить и установить многопоточную цель АоЙ на на основе AIO, плюс катить мое собственное 2.6.31.6 ядро, потому что программа хочет eventfd поддержки. Я чувствую твою боль :)
Тем не менее, это часть удовольствия создавать свои собственные вещи ... как только это работает, вы вдвойне удовлетворены ... или вдвойне разочарованы, если это не так :)