Todas as distribuições Linux executam fundamentalmente o mesmo software. O que distingue as distribuições é principalmente o instalador, os mecanismos de instalação do software e que alguns componentes do sistema podem ser recomendados ou obrigatórios em uma distribuição específica (sistema init, gerenciamento de rede, etc.), bem como a seleção do software empacotado.
Na maioria dos casos, o software que é executado na distribuição A também será executado na distribuição B, contanto que os componentes necessários estejam instalados - principalmente bibliotecas . As distribuições de desktop / servidor são enviadas basicamente pelo mesmo conjunto de bibliotecas (as distribuições incorporadas são outra questão). No entanto, uma determinada versão da distribuição A e uma determinada versão da distribuição B podem incluir diferentes versões de bibliotecas.
Incompatibilidades entre distribuições são principalmente devido a diferentes versões de bibliotecas.
O Linux Mint é baseado no Ubuntu ou Debian (que o Ubuntu, por sua vez, é baseado), mas eles nem sempre fazem lançamentos ao mesmo tempo, então a versão do Ubuntu que você tinha e a versão do Mint que você pode agora não incluir as mesmas bibliotecas.
Para verificar quais bibliotecas um programa precisa, procure o (s) executável (s) e execute o ldd
comando sobre eles. Você verá a saída assim:
$ ldd /bin/ls
linux-vdso.so.1 => (0x00007fff0938a000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007ffbfb2c9000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007ffbfb0c1000)
libacl.so.1 => /lib/x86_64-linux-gnu/libacl.so.1 (0x00007ffbfaeb7000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ffbfab2c000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ffbfa928000)
/lib64/ld-linux-x86-64.so.2 (0x00007ffbfb525000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ffbfa70b000)
libattr.so.1 => /lib/x86_64-linux-gnu/libattr.so.1 (0x00007ffbfa506000)
Cada linha lista uma biblioteca que o programa requer e o caminho para o arquivo que contém esta biblioteca. Se você vir "não encontrado", isso significa que você não tem essa biblioteca específica instalada (ou a versão que você possui não é compatível). Muitas vezes, libfoo.so.42
está em um pacote com um nome como libfoo-42
, mas às vezes as bibliotecas são agrupadas de forma diferente, é possível que o arquivo da biblioteca e o pacote da biblioteca tenham numeração diferente. Você pode usar o comando apt-file
para localizar o pacote que contém um nome de arquivo específico.
Ocasionalmente acontece que você tem a versão correta da biblioteca A, mas o programa P requer a biblioteca A compilada contra a biblioteca B versão 1, e sua distribuição inclui tanto a versão 1 como a versão 2 da biblioteca B, mas apenas uma versão da biblioteca A compilada contra a versão 2. Esses problemas podem ser mais difíceis de diagnosticar e resolver. Recompilar o programa (se você tiver a origem) ou a biblioteca é uma solução, mas nem sempre é fácil. Mantendo duas distribuições ( ou duas versões de uma distribuição) em paralelo pode ser outra solução (com uma sobrecarga diferente de zero, mas não enorme em termos de trabalho de manutenção e de espaço em disco).