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?
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?
Respostas:
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.
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 libfoo5
e libfoo6
e você precisa libfoo3
você 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 /opt
ou /usr/local
.
Se o programa não vier com uma lista de dependências, você poderá executar ldd /path/to/binary
para ver quais bibliotecas são necessárias. Você verá a saída como libfoo.so.4 => not found
se algo estivesse faltando.
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.
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 .
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.