Remplacement des vérifications de dépendance yum lorsqu'il existe de nouvelles versions du logiciel dépendant

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

  •  20-08-2019
  •  | 
  •  

Question

J'utilise yum sur CentOS 5.1 - J'ai compilé à la main PHP 5.2.8 à partir des sources, mais d'autres packages sont installés avec yum. J'ai besoin d'installer une extension PHP via pecl, et cela nécessite que phpize soit également installé. Cependant, ce qui suit génère une erreur de dépendance:

  

sudo yum install php-devel

Erreur: dépendance manquante: php = 5.1.6-20.el5_2.1 est nécessaire pour le package php-devel

Étant donné qu'une version plus récente de PHP est déjà installée, comment puis-je forcer yum à l'ignorer? Dois-je compiler manuellement pecl / phpize à partir des sources? Certes, je n’ai jamais eu de problème auparavant, cela semble être dû à une combinaison de compilations et d’installations miam.

Avez-vous des idées?

Merci, Kyle

Était-ce utile?

La solution

En règle générale, il est préférable d’avoir une seule gestion des packages dans le système. Vous feriez donc mieux de tout empaqueter dans RPMS et de le gérer via yum. Cela vous fera gagner beaucoup de temps à long terme.

Si vous voulez absolument avoir à la main un compilateur (PHP) des sources, utilisez stow / checkinstall / ... ou toute autre solution qui vous permettrait de faire une gestion rudimentaire des paquets pour les choses compilées à la source.

En répondant à votre question, vous pouvez essayer de remplacer la vérification de dépendance en téléchargeant RPM du paquet requis et en faisant " rpm -i --force file.rpm " ;, car yum n’a aucune option. pour les installations forcées

Autres conseils

En général:

Si vous le construisez vous-même, il entrera dans /usr/local et ne sera accessible qu'à d'autres éléments de /usr.

Si vous installez à partir de RPM / Yum, il ira dans ~/rpm et sera accessible à rpmbuild --showrc et .src.rpm.

Donc, si vous souhaitez installer des outils PHP à l'aide de PHP compilé à la maison, installez-les également dans ~/rpm/BUILD/WHATEVER-PACKAGE/: en règle générale, avec un logiciel de type GNU, cela ressemblerait à quelque chose comme:

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

ou

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

& # 8230; bien que la plupart des logiciels soient configurés par défaut sur <=>, à moins que vous ne surchargiez leur paramètre de préfixe.

Si vous voulez & # 8220; construire à la main & # 8221; packages basés sur les RPM, vous pouvez utiliser

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

(votre chemin équivalent à <=> peut varier; <=> vous dira où)

Ceci télécharge le package <=> qui contient la source en amont (de l’auteur) (généralement une archive), ainsi que des correctifs spécifiques au système d’exploitation; installe les sources dans <=> (ou votre préfixe rpmbuild); puis décompresse les sources et applique les correctifs dans <=>

À partir de là, vous pouvez effectuer vous-même les étapes de configuration / création, avec le préfixe <=>

.

Bien sûr, il est beaucoup plus simple d'installer à partir de RPM: -)

yum ne sait rien de votre version php compilée à la main. Vous pouvez contourner la résolution de dépendance de RPM en installant le package à l'aide de rpm --nodeps et en espérant qu'il fonctionne.

Ou installez la version php que vous avez vous-même compilée dans un autre répertoire afin qu'elle puisse coexister avec l'ancienne version de yum, afin que tout le monde soit content (je ne sais pas si c'est possible, je suppose que cela dépend du fait que vos applications utilisent un chemin d'accès codé en dur vers php ou pas).

Ou, si vous êtes chanceux, un référentiel tiers tel que EPEL ou RPMForge pourrait avoir un paquet php plus récent, vous n'avez donc pas à compiler le vôtre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top