Como várias distribuições nomeiam pacotes de maneira diferente, isso é extremamente difícil de realizar. Por exemplo, no Debian, um pacote pode ser chamado de libfoo e seu pacote de desenvolvimento de contraparte libfoo-dev. No RHEL / CentOS, pode ser libfoo1 e libfoo1-devel.
Um configure.ac bem escrito (que é usado para gerar o script 'configure') deve informar, de uma maneira meta, qual pacote está faltando. Ou seja,
Checking for libfoo ... no
Checking for libfoo usability .... no
./configure: Error: You are missing the package 'libfoo' and possibly
'libfoo-dev(el)'
Isso permite que o apt-cache / yum procure por algo para instalar, se os erros que precederem a configuração: Erro: não são óbvios. A pesquisa na configuração do Google Googling geralmente dá frutos para descobrir exatamente o pacote que está faltando.
O problema real vem quando a versão do libfoo que sua distro oferece é muito antiga para o programa que você está tentando compilar. Nesse caso, você deve construir o próprio libfoo, instalá-lo separadamente da versão fornecida pela sua distro e dizer ao programa como fazer o link (também feito via 'configure')
Por esse motivo, costumo usar distribuições de movimentação rápida (ou seja, Ubuntu) para minha máquina de desenvolvimento. Normalmente, posso encontrar o que preciso, atualizado no repositório do universo.
Eu só tive que atualizar o glibc em uma máquina Debian Lenny apenas para poder construir e instalar um alvo AoE multi threaded baseado em AIO, além de criar meu próprio kernel 2.6.31.6 porque o programa queria eventfd Apoio, suporte. Eu sinto sua dor:)
No entanto, isso é parte da diversão de construir suas próprias coisas ... uma vez que funciona, você está duplamente satisfeito ... ou duplamente frustrado se não funcionar:)