¿Cómo elimino solo un paquete específico con apt-get?

18

Acabo de instalar MySQL-server y todas sus dependencias, entre otras necesidades. Pero cuando fue a configurar mysql-server no pudo hacerlo, y escupió un error. Qué error no es relevante aquí ya que logré localizar el problema como un problema de dependencia entre mysql-server y mysql-common. Mysql-common necesita ser eliminado.

Pero cuando voy a

apt-get purge remove mysql-common 

También quiere eliminar automáticamente todo lo relacionado con él, incluidas todas las dependencias de mysql, incluso apache2 y php5.

Entonces, ¿qué argumento debe agregarse al comando apt-get para desinstalar SOLO UN paquete y dejar todos los demás intactos?

insomnio
fuente

Respuestas:

21

apt-get no le permitirá hacer eso, ya que es un paso potencialmente peligroso para que lo permita un sistema de administración de paquetes.

Siempre y cuando sepa que puede haber consecuencias, utilícelo dpkgcon la --removeopción de hacerlo. Por ejemplo:

sudo dpkg --remove mysql-common

Nota : En mi sistema 12.04 con apache2, php5, mysql-serverinstalado por separado, usar apt-getpara eliminar mysql-commonNO QUIERE eliminar apache2 o php5 .

Del comentario del insomnio: si necesita anular la decisión del sistema de dependencia, puede (con mucho cuidado y asegurarse de saber lo que está haciendo) usar un adicional --force-depends.

sudo dpkg --remove --force-depends mysql-common
ish
fuente
Bien gracias. Muchos otros afirmaron que funcionó. Me refiero a mucha gente. Pero sí, eso sucede en ubuntu. Pero en realidad estoy en Debian. Pero pregunté aquí porque soy un usuario aquí, y son muy similares y el sistema de paquetes es el mismo ... gracias amigo.
insomnio
no te preocupes hombre. No te dejaré colgando. Siempre acepto La gente generalmente lo ignora después de aceptar y todavía hay un problema. Pero lo intenté y no me lo permitió. ¿Hay un comando de fuerza?
insomnio
Lo siento, es cierto. Creo que tienes que esperar una cierta cantidad de tiempo antes de poder hacerlo. ¿15 minutos, creo? Inténtalo de nuevo cada vez que tengas una oportunidad, no tengas prisa. Además, me acabo de dar cuenta de que mencionaste que estás usando Debian; ten en cuenta que las preguntas que involucran a Debian están fuera de tema y, a menudo, están cerradas como tales. Por favor considere preguntar en unix.stackexchange.com por algo específico de Debian en el futuro :)
ish
Sí, pensé como tal ... razón principal por la que realmente no lo mencioné hasta que lo necesité. Me refiero a que sus administradores de paquetes son los mismos, Ubuntu solo es compatible con Debian. pero bien Sin embargo, lo de 15 minutos no funciona, porque lo intenté mucho más de 15 minutos después. ¿Pero no puedo escribir algo similar a "dpkg -f --remove mysql-common"?
insomnio
Si plain --removete da una advertencia y aborta, seguro, puedes forzarlo -f. Por cierto, --removees lo mismo que -r.
ish
0

Si a alguien le gustaría saber que el comando debian 2014 es:

dpkg --force-all -r name_of_package

Ha cambiado un poco

Hay muchos argumentos de --force-, así que por razones de confianza, mejor compruébelos:

dpkg --force-help
Michal Sapsa
fuente
--force-alldefinitivamente no es seguro, ¿por qué no sugerir --force-dependsY proporcionar una advertencia adecuada también?
guntbert
Nunca es seguro eliminar el paquete que se necesita para otros paquetes sin desinstalar el otro. --force-all es un enfoque rápido y sucio
Michal Sapsa