Ubuntu vs. CentOS e compatibilidade binária

7

Eu estou tentando instalar o software que é construído no CentOS 4.7. Você sabe se ele também será executado no Ubuntu? Eu li que o CentOS é 100% compatível com binários. O mesmo acontece com a versão mais recente do Ubuntu?

    
por GTyler 23.06.2011 / 04:36

4 respostas

3

Os binários Linux Standard Base (LSB) devem ser compatíveis entre as distribuições que suportam LSB. O CentOS tem suporte a LSB. O suporte a LSB também está disponível no Ubuntu, mas não sei se os pacotes LSB relevantes estão instalados por padrão ou não. É possível testar se uma aplicação é binária compatível.

Observe que o LSB é controverso, tanto o próprio padrão quanto o impacto que ele teve.

    
por 23.06.2011 / 12:52
15

Um executável compilado para uma distribuição Linux funcionará em outra distribuição se essa outra distribuição tiver as bibliotecas compartilhadas necessárias. O CentOS tem versões bem antigas de bibliotecas, então as versões do Ubuntu podem ser muito recentes; mas muitas vezes, se o Ubuntu tiver apenas libfoo5 e libfoo6 e você precisar de libfoo3 , poderá obtê-lo a partir de uma versão anterior do Ubuntu.

O CentOS e o Ubuntu usam sistemas de pacotes diferentes: rpm vs. deb. Você pode converter um rpm em um deb com alien . O pacote resultante pode ou não ser instalável, dependendo de você ter as dependências necessárias. Pode ser mais fácil converter o rpm em um arquivo simples (novamente com alien ) e descompactar em um diretório separado em /opt ou /usr/local .

Se o programa não vier com uma lista de dependências, você pode executar ldd /path/to/binary para ver quais bibliotecas ele requer. Você verá a saída como libfoo.so.4 => not found se algo estiver faltando.

    
por 23.06.2011 / 11:56
12

CentOS é "100% compatível com binários" com sua contraparte comercial , RedHat Enterprise Linux . Como o RHEL é um sistema licenciado que inclui contratos de suporte e várias atividades empresariais, nem todo mundo quer executá-lo. No entanto, em um mundo de código aberto, todo o desenvolvimento precisa ser compartilhado, portanto, enquanto cobram pelos contratos de suporte, mídia e qualquer outra coisa, eles ainda precisam compartilhar a fonte. O CentOS é um re-empacotamento do que é disponibilizado para a comunidade, gratuitamente.

Além disso, "100% de compatibilidade" é apenas entre as versões equivalentes do RHEL e CentOS . As versões da biblioteca mudam a cada lançamento principal, mas como esses projetos são lançados em sincronia, você pode trocar pacotes entre eles, desde que ambos sejam configurados para a mesma versão principal.

As diferenças entre distros, particularmente distribuições baseadas em RPM como CentOS e baseadas em Debian como Ubuntu podem ser legionárias, e um determinado pacote não será portátil entre elas. No entanto, os sistemas globais são praticamente os mesmos, o software desenvolvido para um pode ser facilmente compilado para o outro, ele só precisa ser compilado e empacotado de forma um pouco diferente. Se você quiser obter todas as versões corretas da biblioteca, os binários de um deles funcionarão em outro. Veja a resposta de Gilles .

    
por 23.06.2011 / 09:57
0

O CentOS é estável a longo prazo, por isso tem bibliotecas mais antigas que os binários compilados em sistemas mais novos não irão vincular. O CentOS usa o gerenciador de pacotes rpm e o Ubuntu usa o apt do Debian. Portanto, os pacotes nem são compatíveis.

Geralmente, se você quiser no CentOS e já não o possui, você terá que construir um RPM a partir do código-fonte, em outra máquina do CentOS.

    
por 23.06.2011 / 07:43