Wie installiere ich zwei verschiedene Versionen des gleichen Pakets mit yum

8

Sagen wir, ich möchte zwei verschiedene Versionen desselben Pakets installieren.

Um genau zu sein, möchte ich zwei Versionen von Javascript-Bindung für GNOME, gjs Paket installieren. Ich möchte gjs-1.38.1-1.fc20.x86_64 und gjs-1.36.1-1.fc19.x86_64 haben.

Es gibt andere Pakete in Fedora 20, die stark von gjs-1.38.1-1.fc20.x86_64 abhängen, daher ist es unmöglich, sie durch gjs-1.36.1-1.fc19.x86_64 zu ersetzen.

Ich habe ein bestimmtes Programm, das nicht mit gjs-1.38.1-1.fc20.x86_64 kompatibel ist und das vorherige benötigt.

So ist es möglich, die vorherige Version von gjs gjs-1.36.1-1.fc19.x86_64 zu installieren und auf die von /usr/bin/env gjs1 ( mit etwas Magie! ) zuzugreifen, um das inkompatible Programm auszuführen, ohne etwas zu kaputt zu machen?

    
spherical_cow 15.03.2014, 15:33
quelle

3 Antworten

0

Soweit ich weiß, gibt es keinen einfachen yum-Befehl, um das zu tun, was Sie tun wollen, es wird ein wenig Aufwand erfordern. Ich werde ein paar Wege aufzählen, die mir bekannt sind. Es könnte sein, dass Ihr Anwendungsfall eines oder mehrere oder alle der folgenden Dinge eliminiert.

Softwaresammlungen (SCL). Das Ziel von SCL besteht darin, mehrere Versionen eines Pakets oder Paketsatzes installieren zu können. Es gibt ein Benutzerhandbuch , und es gibt ein Seite hier mit einigen Sammlungen, aber sie scheinen bei RHEL zielgerichteter zu sein. Wenn Sie mit dieser Option gehen, denke ich, dass Sie Ihre eigene Sammlung erstellen müssen.

Sie können das F19-Paket in seinem eigenen Installationsstammverzeichnis installieren. Hier ist ein Blogbeitrag , der erklärt, wie man das macht (Beispiel ist eine Rohhautwurzel, sollte aber möglich sein mit ein f19 man auch). Dies ist wahrscheinlich der Weg der geringsten Anstrengung, aber ich bin nicht 100% sicher, ob es für Ihre Situation funktionieren wird. Es muss eine Menge Zeug installiert werden, aber es ist notwendig, dies zu tun, da Pakete in verschiedenen Fedora-Versionen gegen verschiedene Abhängigkeitssätze erstellt wurden.

Dieser Weg mag funktionieren oder auch nicht, ich denke, es sollte zumindest zu einem gewissen Grad; kann jedoch erheblichen Aufwand erfordern. Es basiert auf der Annahme, dass das, was Sie wollen, tatsächlich gjs-1.36.1 ist und keine gepackte Version von einem früheren Fedora-Release. Wenn Sie zum Quell-Repository für gjs gehen und auf Releases klicken, können Sie eine Archivdatei für Ihre Version herunterladen wollen. Dann können Sie es aus der Quelle erstellen, indem Sie im Konfigurationsschritt ein anderes Präfix angeben als den Standardwert /usr - vielleicht ist /usr/local in Ordnung. Wenn Sie es installiert haben, können Sie den vollständigen Pfad angeben, z. B. /usr/local/bin/gjs anstelle von /usr/bin/gjs . Beachten Sie, dass der Standardwert der erste Wert in $PATH ist. Wenn also /usr/local/bin vor /usr/bin steht, müssen Sie entweder Ihre Bestellung PATH ändern oder Ihre benutzerdefinierte Version in eine andere Version installieren Speicherort als /usr/local .

Im Zusammenhang mit der letzten Option könnten Sie vielleicht die RPM-Spezifikationsdatei für gjs erhalten und sie so bearbeiten, dass Sie sie anders benennen und an einem anderen Ort installieren. Dies ist möglicherweise einfacher, wenn Sie nicht daran gewöhnt sind, gjs zu erstellen, da es Anweisungen für das Kompilieren von rpmbuild enthält. Möglicherweise können Sie daraus zumindest einige Hinweise erhalten, wenn Sie die vorherige Option wählen. Siehe gjs spec-Datei hier .

Es könnte auch möglich sein, mit alternatives etwas magisches zu tun, wie es mit java und anderen Paketen gemacht wurde. Dies würde wahrscheinlich erfordern, dass Sie die oben genannte Spezifikationsdatei verwenden, aber auch einige Änderungen daran vornehmen, um mit alternatives zu funktionieren - möglicherweise installierte benutzerdefinierte Pakete für beide Versionen, 1.36.1 und 1.38.1.

Viel Glück!

    
Gerard Ryan 16.03.2014 15:39
quelle
0

Normalerweise wird dies in der Fedora / RedHat-Welt so gehandhabt, dass ein sekundäres " compat " -Paket erstellt wird. Es wäre also etwas wie compat-gjs-136 , wo die spec -Datei die 136 anhängen würde. Suffix für alle ausführbaren Dateien und Bibliotheken. Einige Beispiele, die Sie betrachten könnten, wären compat-gcc-34 und compat-expat1 .

    
Aaron D. Marasco 17.03.2014 12:54
quelle
-1
%Vor%

vielleicht eine hässliche Option als letztes Mittel. wird nicht empfehlen, in einem herkömmlichen System zu tun.

    
Number79 28.08.2014 16:43
quelle

Tags und Links