Kann ich? - C/C++ in Fedora 14 mit GCC 4.4 entwickeln und in CentOS 5.2 mit GCC 4.4 bereitstellen.

Kann ich? - C/C++ in Fedora 14 mit GCC 4.4 entwickeln und in CentOS 5.2 mit GCC 4.4 bereitstellen.

In meiner Produktionsumgebung laufen die Versionen CentOS 5.2 und 5.5. Ich muss ein neues Tool mit C/C++ entwickeln und es in dieser Produktionsumgebung bereitstellen.

Ich hatte vor, Fedora 14 mit GCC 4.4 auf meinem Desktop zu verwenden, um die Entwicklung mit Eclipse IDE durchzuführen. Und später möchte ich die ausführbaren Dateien auf CentOS 5.2 oder 5.5 bereitstellen. Die Produktionsumgebung wird ebenfalls GCC 4.4 haben.

Da sowohl Fedora als auch CentOS auf RHEL basieren, dachte ich, dass dies möglich sei.

Kann ich das also tun?

Oder muss ich CentOS 5.2/5.5 auch auf meinem Entwicklungs-Desktop haben?

Danke, Amit

Antwort1

Wenn Sie statische Binärdateien erstellen, sollten Sie auf praktisch allem aufbauen und praktisch überall ausführen können. Die genauen Details dazu, wie Sie Dinge statisch erstellen, werden am besten auf Stackoverflow beantwortet.

Das Erstellen in einer anderen Umgebung erscheint jedoch etwas albern. Warum erstellen Sie nicht selbst eine VM oder Chroot, die mit der Produktion auf Ihrer Entwicklungsmaschine identisch ist? Auf diese Weise ist die Wahrscheinlichkeit, dass Sie seltsame/unerwartete Inkompatibilitäten erleben, viel geringer.

Antwort2

Wenn Sie dynamische Verknüpfungen mit Bibliotheken erstellen, die auf CentOS nicht vorhanden sind, müssen Sie auch die Bibliotheken bereitstellen.

Wenn Sie den Quellcode bereitstellen und auf der CentOS-Box kompilieren, müssen Sie alle Header oder Quelldateien bereitstellen, die Sie in Ihrem Code verwenden. Wenn Sie nichts Besonderes verwenden (Sie verwenden beispielsweise nur die libc), müssen Sie keine zusätzlichen Bibliotheken bereitstellen.

Sie müssen noch auf die CPU-Architektur achten. Wenn Sie Code für 64 Bit haben, funktioniert er nicht auf 32.

Antwort3

Dudürfentun Sie dies, aber Sie sollten es nicht tun.

Am besten erstellen Sie Ihre endgültigen Produktionspakete in einer sauberen Umgebung, was bei Ihrem Entwicklungsdesktop sicherlich nicht der Fall sein wird. Da CentOS kostenlos ist, gibt es keinen Grund, keine spezielle Build-Umgebung zu haben, die entweder jedes Mal von Kickstart bereinigt oder von einem zweifelsfrei funktionierenden Snapshot wiederhergestellt wird. Es ist vielleicht ein wenig Einrichtungsarbeit, aber danach wissen Sie, dass die resultierenden Pakete funktionieren, ohne dass sich versehentlich überraschende Abhängigkeiten einschleichen.

Und brauchen Sie gcc in Ihrer Produktionsumgebung? Es gibt nichtsfalschdamit, es per se dort zu haben (Angreifer kopieren ihre eigenen Binärdateien), aber generell sollte die Produktion so fokussiert wie möglich sein.

verwandte Informationen