Depois de uma atualização, alguns programas do meu Ubuntu 10.04 pararam de funcionar. Um deles, o Poedit, informava o seguinte problema ao ser executado pelo terminal:

poedit: relocation error: poedit: symbol _ZN21wxMemoryFSHandlerBase19[...]ERK8wxStringPKvjS2_, version WXU_2.8 not defined in file libwx_baseu-2.8.so.0 with link time reference

Como resolver? Enquanto não sai uma atualização, o jeito é recompilar. Mas usando Ubuntu, fica um pouco mais fácil.

Aqui vou usar como exemplo o próprio Poedit, mas funcionou perfeitamente com o Pgadmin3, que também estava com o mesmo problema.

1) Abra um terminal, e obtenha os pacotes necessários para compilar o programa

sudo apt-get build-dep poedit

2) Obtenha o código-fonte do programa

sudo apt-get source poedit

Isso criará um diretório, e vários arquivos. No caso do poedit…

poedit-1.4.2
poedit_1.4.2-5.diff.gz
poedit_1.4.2-5.dsc
poedit_1.4.2-5_i386.changes
poedit_1.4.2.orig.tar.gz

3) Entre no diretório poedit-1.4.2 e execute o comando a seguir para iniciar a compilação

sudo dpkg-buildpackage

E aguarde. Dependendo do programa e do seu computador, isso pode demorar um pouco. Quando terminar, volte ao diretório anterior. Ali estará um pacote .deb com o programa compilado.

poedit-1.4.2
poedit_1.4.2-5.diff.gz
poedit_1.4.2-5.dsc
poedit_1.4.2-5_i386.changes
poedit_1.4.2-5_i386.deb
poedit_1.4.2.orig.tar.gz
poedit-dbg_1.4.2-5_i386.deb

4) Como dá pra ver, ele criou dois arquivos .deb; um do programa (o da linha 5), e outro com instruções de debug (o da linha 7). Basta agora instalar o .deb do programa, usando o dpkg:

sudo dpkg -i poedit_1.4.2-5_i386.deb

E está pronto.