Wie füge ich Fedora Repo zu einer CentOS 7-Installation hinzu?

7

Ich habe eine CentOS 7 x86_64-Installation, auf der ich ein Paket namens installieren möchte frama-c. Dieses Paket befindet sich nicht in den Repos, die ich bisher konfiguriert habe:

# yum search frama-c
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.datente.com
 * epel: epel.besthosting.ua
 * epel-testing: epel.besthosting.ua
 * extras: centos.mirror.iphh.net
 * updates: artfiles.org
Warning: No matches found for: frama-c
No matches found

Ich habe das fullfilelistvon https://dl.fedoraproject.org/pub/fedora/ heruntergeladen und wenn ich nach frama-c greife, sieht das Ergebnis vielversprechend aus:

$ grep 'development.*x86_64.*frama-c' fullfilelist.txt
./linux/development/26/Everything/x86_64/debug/tree/Packages/f/frama-c-debuginfo-1.14-1.fc26.x86_64.rpm
./linux/development/26/Everything/x86_64/os/Packages/f/frama-c-doc-1.14-1.fc26.noarch.rpm
./linux/development/26/Everything/x86_64/os/Packages/f/frama-c-emacs-1.14-1.fc26.noarch.rpm
./linux/development/26/Everything/x86_64/os/Packages/f/frama-c-xemacs-1.14-1.fc26.noarch.rpm
./linux/development/26/Everything/x86_64/os/Packages/f/frama-c-1.14-1.fc26.x86_64.rpm
./linux/development/rawhide/Everything/x86_64/debug/tree/Packages/f/frama-c-debuginfo-1.14-1.fc27.x86_64.rpm
./linux/development/rawhide/Everything/x86_64/os/Packages/f/frama-c-doc-1.14-1.fc27.noarch.rpm
./linux/development/rawhide/Everything/x86_64/os/Packages/f/frama-c-1.14-1.fc27.x86_64.rpm
./linux/development/rawhide/Everything/x86_64/os/Packages/f/frama-c-emacs-1.14-1.fc27.noarch.rpm
./linux/development/rawhide/Everything/x86_64/os/Packages/f/frama-c-xemacs-1.14-1.fc27.noarch.rpm

Was ist der richtige Weg, um beispielsweise das Rohleder-Repository zu meiner aktuellen Liste von Repos hinzuzufügen, damit ich es mit einem einzigen installieren kann yum install frama-c?

Jens
quelle
2
Haben Sie darüber nachgedacht, eine Fedora-Umgebung in einem Docker-Container auszuführen?
Mattdm

Antworten:

9

Es ist niemals eine gute Idee, Pakete für verschiedene Systeme zu mischen. Es könnte funktionieren, aber es könnten schwer zu debuggende Probleme auftreten. Aber höchstwahrscheinlich wird es nicht funktionieren.

Der beste Weg ist, das Paket für Ihr System neu zu erstellen. Entweder können Sie den aktuellen Paketbetreuer bitten, dies für Sie zu tun (fügen Sie das EPEL7-Paket hinzu, das in Ihrem EPEL-Repository angezeigt wird), oder Sie können es selbst tun:

  • Laden Sie das neueste SRPM-Paket von Koji herunter :

    wget https://kojipkgs.fedoraproject.org//packages/frama-c/1.14/1.fc27/src/frama-c-1.14-1.fc27.src.rpm
    
  • Erstellen Sie es für Ihr System neu (beheben Sie möglicherweise fehlende Abhängigkeiten, falls verfügbar):

    rpmbuild --rebuild frama-c-1.14-1.fc27.src.rpm
    
  • Installieren Sie das Paket:

    yum install ~/rpmbuild/RPMS/.../path/../to/your.rpms
    
Jakuje
quelle
Nach meinem Verständnis ist CentOS ein Red Hat-Klon und Fedora das Red Hat-Testgelände. In erster Näherung sollten sie daher "kompatibel" sein. Ist das zu weit hergeholt? Ich weiß, dass es keine Garantien gibt, aber es ist nicht so, als würde ich versuchen, einen quadratischen Stift in ein rundes Loch zu stecken, oder? Das Problem beim Erstellen von frama-c aus dem Quellcode sind die Tonnen von teilweise veralteten Abhängigkeiten, z. B. benötigt es ocaml 4.02, wenn CentOS 7 ab heute ocaml 4.01.1 hat - und dies ist nur der Anfang.
Jens
Der Befehl rpmbuild stoppt mit Installing frama-c-1.14-1.fc27.src.rpm, error: line 61: Unknown tag: Suggests: alt-ergo. Haben Sie einen Vorschlag, wie Sie vorgehen sollen? Vielen Dank, dass Sie sich die Zeit genommen haben, um zu antworten!
Jens
1
Es ist sehr weit hergeholt. Sie sind kompatibel, indem Sie dasselbe Verpackungssystem verwenden - rpm (daher können Sie die Pakete einfach neu erstellen, wie in dieser Antwort angegeben, wenn Sie die Abhängigkeiten haben). Aber sie haben verschiedene Kernel-Versionen, gcc, glibc und viele andere Bibliotheken, die nicht immer kompatibel sind. Wenn einige Abhängigkeiten älter als nötig sind, haben Sie möglicherweise mehr Glück, ein Paket aus einer älteren Fedora-Version zu installieren, das mit einer älteren ocaml funktionieren sollte (versuchen Sie es beispielsweise mit einem oder zwei Jahren).
Jakuje
Das Suggests:ist ein neues Tag, das RHEL nicht bekannt ist rpm. Sie müssen es aus der Spezifikationsdatei entfernen, die sich im SRPM befindet.
Jakuje