Ubuntu vs. CentOS und binäre Kompatibilität

9

Ich versuche, Software zu installieren, die auf CentOS 4.7 basiert. Wissen Sie, ob es auch in Ubuntu läuft? Ich habe gelesen, dass CentOS zu 100% binär kompatibel ist. Gilt das auch für die neueste Version von Ubuntu?

GTyler
quelle
1
"100% binär kompatibel" ist bedeutungslos: kompatibel mit was? Wie Caleb sagt, ist die Antwort darauf mit RHEL.
Gilles 'SO - hör auf böse zu sein'

Antworten:

3

Linux Standard Base (LSB) -Binärdateien sollen zwischen Distributionen kompatibel sein, die LSB unterstützen. CentOS unterstützt LSB. LSB-Unterstützung ist auch in Ubuntu verfügbar, aber ich weiß nicht, ob die entsprechenden LSB-Pakete standardmäßig installiert sind oder nicht. Es ist möglich zu testen, ob eine Anwendung binär kompatibel ist.

Beachten Sie, dass LSB umstritten ist, sowohl der Standard selbst als auch ob / wie viel Einfluss es hatte.

Alexander
quelle
15

Eine für eine Linux-Distribution kompilierte ausführbare Datei funktioniert auf einer anderen Distribution, wenn diese andere Distribution über die erforderlichen gemeinsam genutzten Bibliotheken verfügt. CentOS hat ziemlich alte Bibliotheksversionen, daher sind Ubuntus Versionen möglicherweise zu neu. Aber oft, wenn Ubuntu nur hat libfoo5und libfoo6und Sie brauchen libfoo3, können Sie es aus einer früheren Ubuntu-Version holen.

CentOS und Ubuntu verwenden unterschiedliche Verpackungssysteme: rpm vs. deb. Sie können eine Drehzahl in eine Deb mit umwandeln alien. Das resultierende Paket kann installiert werden oder nicht, je nachdem, ob Sie die erforderlichen Abhängigkeiten haben. Es ist möglicherweise einfacher, die Drehzahl in ein einfaches Archiv zu konvertieren (erneut mit alien) und diese in einem separaten Verzeichnis unter /optoder zu entpacken /usr/local.

Wenn das Programm keine Liste mit Abhängigkeiten enthält, können Sie ausführen, um ldd /path/to/binaryzu sehen, welche Bibliotheken es benötigt. Sie sehen die Ausgabe so, als libfoo.so.4 => not foundob etwas fehlt.

Gilles 'SO - hör auf böse zu sein'
quelle
Wie benutzt man die "Alien" -Funktion? an der Gnome-Eingabeaufforderung?
GTyler
@GTyler Ja, alienist ein Befehlszeilenprogramm. Ich weiß nicht, ob es eine grafische Benutzeroberfläche gibt. Wenn Sie mit der Befehlszeile nicht vertraut sind, empfehle ich, ein Binärpaket für Ubuntu zu erstellen.
Gilles 'SO - hör auf böse zu sein'
12

CentOS ist "100% binärkompatibel" mit seinem kommerziellen Pendant , RedHat Enterprise Linux . Da RHEL ein lizenziertes System ist, das Supportverträge und verschiedene unternehmerische Dinge umfasst, möchte es nicht jeder ausführen. In einer Open-Source-Welt muss jedoch die gesamte Entwicklung geteilt werden. Während sie für Supportverträge, Medien und was auch immer Gebühren erheben, müssen sie die Quelle dennoch teilen. CentOS ist eine Neuverpackung davon, um sie der Community kostenlos zur Verfügung zu stellen.

Darüber hinaus besteht "100% Kompatibilität" nur zwischen den entsprechenden Versionen von RHEL und CentOS . Bibliotheksversionen ändern sich mit jeder Hauptversion. Da diese Projekte jedoch synchron veröffentlicht werden, können Sie Pakete zwischen ihnen austauschen, sofern beide für dieselbe Hauptversion eingerichtet sind.

Die Unterschiede zwischen Distributionen, insbesondere RPM-basierten Distributionen wie CentOS und Debian- basierten Distributionen wie Ubuntu, können zahlreich sein, und ein bestimmtes Paket kann nicht zwischen ihnen portiert werden. Die Gesamtsysteme sind jedoch ungefähr gleich. Die für das eine entwickelte Software kann normalerweise leicht für das andere kompiliert werden. Sie muss nur etwas anders kompiliert und verpackt werden. Wenn Sie alle richtigen Bibliotheksversionen abrufen möchten, funktionieren die Binärdateien von einer tatsächlich auf einer anderen. Siehe Gilles 'Antwort .

Caleb
quelle
0

CentOS ist langfristig stabil und verfügt daher über ältere Bibliotheken, mit denen auf neueren Systemen kompilierte Binärdateien nicht verknüpft werden. CentOS verwendet den RPM-Paketmanager und Ubuntu Debian apt. Die Pakete sind also nicht einmal kompatibel.

Wenn Sie es unter CentOS möchten und es noch nicht vorhanden ist, müssen Sie im Allgemeinen ein RPM aus dem Quellcode auf einem anderen CentOS-Computer erstellen.

Keith
quelle