Aufschalten yum Abhängigkeitsprüfungen, wenn neuere Versionen der abhängigen Software existieren

StackOverflow https://stackoverflow.com/questions/660398

  •  20-08-2019
  •  | 
  •  

Frage

Ich bin mit yum auf CentOS 5.1 - gebe ich kompilierte PHP 5.2.8 von der Quelle, haben aber andere Pakete installiert mit yum. Ich brauche eine PHP-Erweiterung über pecl zu installieren, und es erfordert phpize auch installiert werden. Um jedoch die folgenden Vorgänge ergibt sich ein Abhängigkeitsfehler:

  

sudo yum install php-devel

Fehler: Fehlende Abhängigkeit: php = 5.1.6-20.el5_2.1 von Paket php-devel benötigt wird,

Da ich eigentlich eine neuere Version von PHP bereits installiert haben, wie kann ich yum zwingen, dies zu ignorieren? Muss ich pecl / phpize von der Quelle zur Hand kompilieren? Ich zwar noch nie ein Problem hatte, es nur wegen einer Kombination aus compiliert zu sein scheint und yum installiert.

Alle Gedanken?

Danke, Kyle

War es hilfreich?

Lösung

Als Faustregel ist es besser, eine Paket-Management im System zu haben, so dass Sie besser dran, die Verpackung in RPMS alles sein werden und es über yum verwalten. Es wird Ihnen viel Zeit auf lange Sicht speichern.

Wenn Sie unbedingt wollen, von Hand etwas (zB PHP) Compiler von Quellen haben, verwenden Sie Stow / check / ... oder jede andere Lösung, die es Ihnen ermöglichen würde rudimentär Paketverwaltung für die Source-kompilierte Material zu tun.

Regerding Ihre Frage, Sie könnten versuchen, die Abhängigkeit außer Kraft zu setzen Überprüfung von RPM des erforderlichen Pakets herunterzuladen ein tun „rpm -i --force file.rpm“, da yum keine Option hat für Zwang Installationen

Andere Tipps

Generell gilt:

Wenn Sie es selbst bauen, es geht in /usr/local und ist nur zugänglich für andere Dinge in /usr/local.

Wenn Sie von RPM / Yum installieren, geht es in /usr, und ist zugänglich für /usr und /usr/local.

Also, wenn Sie PHP-Tools installieren möchten nach Hause kompilierte PHP verwenden, installieren Sie sie in /usr/local auch: in der Regel, mit GNU-Typ-Software, dass etwas sein würde wie:

   ./configure --prefix=/usr/local && make && sudo make install

oder

   make prefix=/usr/local all && sudo make prefix=/usr/local install

... obwohl die meisten Software sollte auf /usr/local Standard, wenn Sie dessen Präfix Einstellung außer Kraft setzen.

Wenn Sie auf „Hand-build“ -Pakete möchten, die auf Umdrehungen pro Minute beruhen, können Sie

   yumdownloader --source WHATEVER-PACKAGE
   rpm -i WHATEVER-PACKAGE.rpm
   rpmbuild -bp ~/rpm/SPECS/WHATEVER-PACKAGE.spec

(Ihr Weg entspricht ~/rpm variieren rpmbuild --showrc wird Ihnen sagen, wo)

Damit wird das .src.rpm Paket, das die Upstream-Quelle (in der Regel ein Tarball) sowie OS-spezifischen Patches (ursprünglicher Autors) enthält; installiert die Quellen in ~/rpm (oder Ihren rpmbuild Präfix); und dann entpackt die Quellen und wendet den Patches in ~/rpm/BUILD/WHATEVER-PACKAGE/

Von dort aus können Sie die configure tun / machen Schritte selbst, mit dem /usr/local Präfix

Natürlich nur von Umdrehungen pro Minute ist die Installation viel einfacher: -)

yum weiß nichts über Ihre Hand kompilierte PHP-Version. Sie können entweder die Auflösung von Abhängigkeiten der Bypass-RPM durch das Paket mit rpm --nodeps Installation und hoffen, dass es funktioniert.

oder die PHP-Version, die Sie sie in einem anderen Verzeichnis erstellt installieren, damit es mit der alten Version von yum nebeneinander bestehen kann, so dass jeder glücklich ist (nicht sicher, ob das möglich ist, ich denke, es hängt davon ab, ob Ihre Anwendungen einen fest codierten Pfad zu php oder nicht).

Oder, wenn Sie Glück haben, ein Drittanbieter-Repository wie EPEL oder RPMForge könnte ein neueres pHP-Paket hat, so müssen Sie Ihre eigenen nicht kompiliert werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top