
Ich befolge die Ratschläge meiner anderenFrageIch habe mein lokales RPM-Repository auf dem Computer eingerichtet Red Hat 8
, meine privaten Pakete dort abgelegt und kann nun installieren, aktualisieren usw.
Es gibt jedoch ein Problem: Ein Paket, das ich in meinem privaten Repository hinzugefügt habe, ist eigentlich eine modifizierte Version des Pakets, das in den offiziellen RedHat-Repositories verfügbar ist, und hat denselben Namen. Also würde yum search
oder yum install
das Paket vom offiziellen Spiegel ziehen, nicht von meinem. Ich habe versucht, dies mit zu lösen, yum --repo=my_private_repo ...
aber dies würde auch versuchen, alle Abhängigkeiten vonmein_privates_repoanstelle der offiziellen.
Was könnte der richtige Weg sein, dies zu lösen? Vielleicht wäre es die bessere Option, das Paket (das, das ich geändert und in mein Repository hinzugefügt habe) umzubenennen, damit es nicht mit dem offiziellen Paket in Konflikt gerät?
Würde mich über jeden Rat freuen!
Antwort1
Das Ersetzen von Paketen aus EL Baseos- oder Appstream-Repos ist schwierig. Albtraumhafte Abhängigkeitsprobleme können auftreten, wenn Sie das, was die Distribution erwartet hat, durch etwas anderes ersetzen. Dies ist einer der Gründe, warum die EL-Community bestimmteRepos von Drittanbietern.
Suchen Sie ein Repo, das vernünftige Dinge tut, und untersuchen Sie, was sie mit ihren Paketen machen.IUSist ein Beispiel. Um sicher zu sein, müssen alle diese Bedingungen erfüllt sein:
Die meisten IUS-Pakete sind sichere Ersatzpakete. Mit diesem Begriff beschreiben wir Pakete mit den folgenden Eigenschaften.
- Ersetzt die Funktionalität eines Standardpakets.
- Verwendet einen anderen Namen als das Standardpaket, um unbeabsichtigte Upgrades zu verhindern.
- Geben Sie den Standardpaketnamen an, um die Abhängigkeiten anderer Pakete zu erfüllen.
- Konflikt mit dem Bestandspaket.
- Es dürfen keine Bestandspakete veraltet sein.
So könnten Sie beispielsweise statt nur "haproxy" installieren"haproxy22". Dies ist ein Name, den nur IUS bereitstellt, der aber den von Appstream ersetzt:
Name: haproxy22
Provides: haproxy = %{version}-%{release}
Provides: haproxy%{?_isa} = %{version}-%{release}
Conflicts: haproxy < %{version}-%{release}
Beachten SieTunmöchte, dass RPM in Konflikt mit dem Standardpaket gerät, daher wird DNF es nicht berücksichtigen.
Dieses Schema erfordert eine höhere Versionsnummer als die Standardversion. Erwägen Sie, die Versionsnummer deutlich zu erhöhen.
Siehe auchFedora-Verpackungsrichtlinienfür Ressourcen.