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?
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!
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
.