2010-05-11 9 views
5

Mi código Perl instaló varios (4) archivos rpm como root. la próxima instalación los elimina (rpm -e) antes de instalar una versión más nueva. Uno no se elimina, con rpm -e dando el error de que no está instalado. Sin embargo, más adelante cuando se instala el archivo actualizado, aparece el mensaje de que ya está instalado.Linux rpm se instala pero no se puede borrar. ¿Por qué?

intentos manuales para eliminar dan los mismos resultados. Mis preguntas son cómo forzar la eliminación algo de la base de datos rpm, y ¿por qué este contradication existe (no instalados desde rpm -e y ya instalados desde rpm -Uvh y rpm -ivh)?

+4

Tal vez sea mejor para publicar esta pregunta en superuser.com ?! Pruebe también: rpm -e --nodeps {package_name} – mosg

Respuesta

11
  1. Una vez instalado, use el nombre del paquete, no el nombre del paquete.
  2. No debería necesitar eliminar un paquete antes de actualizarlo. Hacerlo significa que uno o ambos paquetes están rotos.
1

rpm -e --force se no retirar por la fuerza de un paquete, rpm -e --nodepsse deteniéndolo para comprobar si hay otras dependencias.

Es posible que su base de datos RPM es de alguna manera fuera de forma, es posible que desee probar un rpm --rebuilddb

+1

Obligar a eliminar rpm de esta manera ya no funciona a partir de CentOS 6.4. Intentando una fuerza devuelve la respuesta: rpm: única instalación, actualización y rmsource rmspec pueden verse obligados – Magellan

6

La razón de que no se borra es probable porque una de las scriptles está fallando. Hágalo manualmente y observe los errores. Si se menciona un scriptlet fallado, tratar de borrarlos con rpm -e --noscripts

+0

Gracias - esto soluciona un problema que tuve con un paquete que construí yo mismo, que tenía un error en el scriplet pre-eliminar. – RCross

Cuestiones relacionadas