Ubuntu vs CentOS e compatibilità binaria


9

Sto cercando di installare un software basato su CentOS 4.7. Sai se funzionerà anche su Ubuntu? Ho letto CentOS è compatibile al 100% binario. Lo stesso vale per la versione più recente di Ubuntu?


1
"100% binario compatibile" non ha senso: compatibile con cosa? Come dice Caleb, la risposta è con RHEL.
Gilles 'SO- smetti di essere malvagio' il

Risposte:


3

I binari Linux Standard Base (LSB) dovrebbero essere compatibili tra le distro che supportano LSB. CentOS ha il supporto LSB. Il supporto LSB è disponibile anche in Ubuntu, ma non so se i pacchetti LSB pertinenti siano installati di default o meno. È possibile verificare se un'applicazione è compatibile binaria.

Si noti che l'LSB è controverso, sia lo standard stesso sia se / quanto impatto abbia avuto.


15

Un eseguibile compilato per una distribuzione Linux funzionerà su un'altra distribuzione se quell'altra distribuzione ha le librerie condivise richieste. CentOS ha versioni piuttosto vecchie della libreria, quindi le versioni di Ubuntu potrebbero essere troppo recenti; ma spesso se Ubuntu ha solo libfoo5e libfoo6ed è necessario libfoo3si può afferrare da una versione di Ubuntu in precedenza.

CentOS e Ubuntu utilizzano diversi sistemi di packaging: rpm vs. deb. È possibile convertire un rpm in un deb con alien. Il pacchetto risultante potrebbe essere o meno installabile a seconda che si disponga delle dipendenze richieste. Potrebbe essere più semplice convertire l'rpm in un semplice archivio (di nuovo con alien) e decomprimerlo in una directory separata sotto /opto /usr/local.

Se il programma non include un elenco di dipendenze, è possibile eseguire ldd /path/to/binaryper vedere quali librerie richiede. Vedrai un output come libfoo.so.4 => not foundse mancasse qualcosa.


Come si usa la funzione "alieno"? sul prompt dei comandi di Gnome?
Concerned_Citizen il

@GTyler Sì, alienè un programma da riga di comando. Non so se ci sia una GUI attorno. Se non hai familiarità con la riga di comando, ti consiglio di provare a ottenere un pacchetto binario per Ubuntu.
Gilles 'SO- smetti di essere malvagio' il

12

CentOS è "100% binario compatibile" con la sua controparte commerciale , RedHat Enterprise Linux . Poiché RHEL è un sistema con licenza che include contratti di supporto e varie attività aziendali, non tutti vogliono eseguirlo. Tuttavia, in un mondo open source tutti gli sviluppi devono essere condivisi, quindi mentre fanno pagare contratti di supporto, media e quant'altro, devono comunque condividere la fonte. CentOS è un reimballaggio di quello da fornire gratuitamente alla comunità.

Inoltre, la "compatibilità al 100%" è solo tra le versioni equivalenti di RHEL e CentOS . Le versioni delle librerie cambiano con ogni versione principale, ma poiché questi progetti vengono rilasciati in sincronia è possibile scambiare pacchetti tra di loro purché entrambi siano configurati per la stessa versione principale.

Le differenze tra le distro, in particolare le distro basate su RPM come CentOS e quelle basate su Debian come Ubuntu, possono essere legioni e un determinato pacchetto non sarà portatile tra di loro. Tuttavia, i sistemi complessivi sono più o meno gli stessi, il software sviluppato per uno di solito può essere facilmente compilato per l'altro, deve solo essere compilato e impacchettato in modo leggermente diverso. Se ti interessa inserire tutte le versioni di libreria corrette, i binari di una funzioneranno effettivamente su un'altra. Vedi la risposta di Gilles .


0

CentOS è stabile a lungo termine, quindi ha librerie più vecchie con cui i binari compilati su sistemi più recenti non si collegheranno. CentOS usa il gestore di pacchetti rpm e Ubuntu usa Debian apt. Quindi i pacchetti non sono nemmeno compatibili.

Generalmente, se lo desideri su CentOS e non ce l'ha già, dovrai creare un RPM dalla sorgente, su un'altra macchina CentOS.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.