Anular las comprobaciones de dependencia de yum cuando existen versiones más nuevas del software dependiente

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

  •  20-08-2019
  •  | 
  •  

Pregunta

Estoy usando yum en CentOS 5.1. Compilé manualmente PHP 5.2.8 desde el código fuente, pero tengo otros paquetes instalados usando yum.Necesito instalar una extensión PHP a través de pecl, y también requiere la instalación de phpize.Sin embargo, hacer lo siguiente produce un error de dependencia:

sudo yum instalar php-devel

Error:Dependencia faltante:php = 5.1.6-20.el5_2.1 es necesario para el paquete php-devel

Dado que ya tengo instalada una versión más nueva de PHP, ¿cómo puedo forzar a yum a ignorar esto?¿Necesito compilar manualmente pecl/phpize desde la fuente?Es cierto que nunca tuve un problema antes, solo parece deberse a una combinación de compilaciones e instalaciones de yum.

¿Alguna idea?

Gracias Kyle

¿Fue útil?

Solución

Como regla general, es mejor tener una administración de paquetes en el sistema, por lo que será mejor empaquetar todo en RPMS y administrarlo a través de yum. Le ahorrará mucho tiempo a largo plazo.

Si absolutamente quiere tener algo (por ejemplo, PHP) compilador de las fuentes a mano, use stow / checkinstall / ... o cualquier otra solución que le permita hacer una administración de paquetes rudimentaria para las cosas compiladas en la fuente.

En relación con su pregunta, puede intentar anular la verificación de dependencia descargando RPM del paquete requerido y haciendo " rpm -i --force file.rpm " ;, ya que yum no tiene ninguna opción para instalaciones forzadas

Otros consejos

En general:

Si lo construyes tú mismo, entra en /usr/local, y sólo es accesible para otras cosas en /usr/local.

Si instala desde RPM/Yum, entra en /usr, y es accesible a /usr y /usr/local.

Entonces, si desea instalar herramientas PHP usando PHP compilado en casa, instálelas en /usr/local también:normalmente, con software tipo GNU, sería algo como:

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

o

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

…a pesar de mayoría el software debe ser predeterminado /usr/local a menos que anule su configuración de prefijo.

Si desea “construir manualmente” paquetes basados ​​en RPM, puede usar

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

(tu camino equivalente a ~/rpm puede variar; rpmbuild --showrc te diré dónde)

Esto descarga el .src.rpm paquete, que contiene la fuente original (del autor original) (generalmente un tarball), así como parches específicos del sistema operativo;instala las fuentes en ~/rpm (o su prefijo rpmbuild);y luego descomprime las fuentes y aplica los parches en ~/rpm/BUILD/WHATEVER-PACKAGE/

Desde allí, puede realizar los pasos de configuración/realización usted mismo, con el /usr/local prefijo

Por supuesto, simplemente instalar desde RPM es mucho más fácil :-)

yum No sabe nada acerca de su versión de PHP compilada a mano.Puede omitir la resolución de dependencia de RPM instalando el paquete usando rpm --nodeps y espero que funcione.

O instale la versión de php que compiló usted mismo en otro directorio para que pueda coexistir con la versión anterior de yum, para que todos estén contentos (no estoy seguro de si eso es posible, supongo que depende de si sus aplicaciones usan una ruta codificada a php o no) .

O, si tienes suerte, un repositorio de terceros como EPEL o RPMForge Es posible que tenga un paquete php más nuevo, por lo que no es necesario compilar el suyo propio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top