Sind RPMs plattformübergreifend gültig?

7

Ich bin ein wenig verwirrt über RPMs in Red Hat und / oder Fedora (und / oder anderen Distributionen?). Ich kann mit Sicherheit akzeptieren, dass 64-Bit-RPMs für 64-Bit-Betriebssysteme und 32-Bit-RPMs für 32-Bit-Betriebssysteme benötigt werden, aber ... Wenn ich ein RPM für ... OpenOffice.org habe, ist dieses RPM gültig Muss ich für eines meiner RPM-akzeptierenden Betriebssysteme ein RPM suchen, das speziell auf das Betriebssystem zugeschnitten ist, mit dem ich arbeite?

Nate
quelle

Antworten:

7

Wie immer: Die Antwort hängt davon ab. RPMs (oder grundsätzlich ein beliebiger binärer Paketcontainer) enthalten ausführbaren Code. Meistens hängt dieser Code von bestimmten Bibliotheken oder Programmen ab. Das Paket gibt an, dass er beispielsweise von der Bibliothek libAin einer Version> = 1.0 abhängt .

Nehmen Sie nun zwei verschiedene Distributionen mit beiden im RPM-Verpackungsformat. Nehmen wir an, man ruft das Paket libA-1.0 auf, sodass die von Ihnen angegebene Drehzahl angibt, dass es von libA abhängt. Die zweite Binärdistribution hat ein anderes Naimg-Schema und stellt dem Paket ein vor, languageso dass es benannt ist language-libA. Selbst wenn der Inhalt dieser beiden libA-Pakete identisch ist, kann der Paketmanager dies nicht wissen. Sie können RPM natürlich zwingen, das Paket trotzdem zu installieren, ohne die Abhängigkeiten zu berücksichtigen, aber das verlangt normalerweise nur eine Bestrafung.

Das Problem ist weniger schlimm, wenn beide Distributionen miteinander verwandt sind oder sogar aufeinander basieren: Ubuntu basiert beispielsweise auf Debian und teilt daher viele der Namenskonventionen und -pakete, sodass Sie ein Paket für Debian auf eine Ubuntu-Box übertragen können.

Es hängt auch stark davon ab, in welcher Sprache das Paket geschrieben ist: Wenn Sie etwas wie Python interpretiert haben, bei dem das Paket im Grunde nur aus einer Reihe von Textdateien besteht, ist es normalerweise einfach, ein Paket für eine andere Distribution zu verwenden, aber wenn es geschrieben ist C ++ und abhängig und beide Distributionen verwenden unterschiedliche Versionen von Kernbibliotheken oder Compilern. Sie haben im Grunde kein Glück.

tante
quelle
2

zusätzlich tantes antwort . Es hängt im Wesentlichen davon ab, ob der binäre Inhalt einer Zip-Datei mit Metadaten ordnungsgemäß verknüpft ist oder nicht. Wenn sie nicht ordnungsgemäß verknüpft sind, müssen sie erneut verknüpft werden oder funktionieren auf andere Weise nicht. Einige RPMS enthalten möglicherweise nur Perl-Module, für die keine Verknüpfung erforderlich ist. Solange sie sich an der richtigen Stelle befinden, funktionieren sie. IIRC, es gibt jedoch mehr als ein RPM-Format. Ich glaube, das RPM-Format von OpenSuse unterscheidet sich geringfügig von Red Hats und würde daher unter Fedora nicht funktionieren. Natürlich funktioniert ein Fedora-Paket wahrscheinlich nicht unter Red Hat, da die Bibliotheksversionen so unterschiedlich sind und die Verknüpfung deaktiviert wäre.

Kurz gesagt, nein, es wird nicht funktionieren, versuchen Sie es nicht. Nur generische Drehzahlen wie die für Flash, Oracle (Sie werden feststellen, dass Oracle erneut verknüpft werden muss), Avg usw. können an anderer Stelle funktionieren.

Xenoterracid
quelle