Ubuntu vs. CentOS e compatibilidade binária


9

Estou tentando instalar um software desenvolvido 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 vale para a versão mais recente do Ubuntu?


11
"100% binário compatível" não tem sentido: compatível com o quê? Como Caleb diz, a resposta é com RHEL.
Gilles 'SO- stop be evil'

Respostas:


3

Os binários Linux Standard Base (LSB) devem ser compatíveis entre as distros que suportam LSB. O CentOS tem suporte a LSB. O suporte ao 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 um aplicativo é compatível com binários.

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


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 possui versões de bibliotecas bastante antigas, portanto as versões do Ubuntu podem ser muito recentes; mas muitas vezes se Ubuntu tem apenas libfoo5e libfoo6e você precisa libfoo3você pode agarrá-lo de uma versão anterior do Ubuntu.

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

Se o programa não vier com uma lista de dependências, você poderá executar ldd /path/to/binarypara ver quais bibliotecas são necessárias. Você verá a saída como libfoo.so.4 => not foundse algo estivesse faltando.


Como você usa a função "alienígena"? no prompt de comando do Gnome?
Concerned_Citizen

@GTyler Sim, aliené um programa de linha de comando. Não sei se há uma interface gráfica ao seu redor. Se você não estiver familiarizado com a linha de comando, recomendo tentar obter um pacote binário para o Ubuntu.
Gilles 'SO- stop be evil'

12

O CentOS é "100% compatível com binários" com seu parceiro comercial , o RedHat Enterprise Linux . Como o RHEL é um sistema licenciado que inclui contratos de suporte e várias coisas corporativas, nem todo mundo deseja executá-lo. No entanto, em um mundo de código aberto, todo o desenvolvimento precisa ser compartilhado; portanto, enquanto eles cobram por contratos de suporte, mídia e tudo o mais, eles ainda precisam compartilhar a fonte. O CentOS é uma re-embalagem para fornecer à comunidade gratuitamente.

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

As diferenças entre distribuições, particularmente distribuições baseadas em RPM, como CentOS e baseadas em Debian como Ubuntu, podem ser numerosas, e um determinado pacote não será portátil entre elas. No entanto, os sistemas em geral são praticamente os mesmos, o software desenvolvido para um geralmente pode ser facilmente compilado para o outro, apenas precisa ser compilado e empacotado de maneira um pouco diferente. Se você desejar obter todas as versões corretas da biblioteca, os binários de uma funcionarão na outra. Veja a resposta de Gilles .


0

O CentOS é estável a longo prazo, portanto, possui bibliotecas mais antigas com as quais os binários compilados em sistemas mais novos não se vinculam. O CentOS usa o gerenciador de pacotes rpm, e o Ubuntu usa o Debian apt. Portanto, os pacotes nem são compatíveis.

Geralmente, se você quiser no CentOS e ele ainda não o tiver, precisará criar um RPM a partir da fonte, em outra máquina CentOS.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.