Solución:
dpkg
devolver un código de error 1 no significa nada específico, pero generalmente tiene que ver con problemas de dependencia. En su caso, intentó instalar dos versiones / instancias del mismo paquete, es decir mysql-server
y mysql-server-5.7
. Entonces, haga lo siguiente para eliminar cualquier problema de dependencia redundante e instalar un paquete mysql en funcionamiento
sudo apt-get clean
sudo apt-get purge mysql*
sudo apt-get update
sudo apt-get install -f
sudo apt-get install mysql-server-5.7
sudo apt-get dist-upgrade
esto debería solucionar el problema en cuestión. Pero en el futuro, tenga cuidado con los nombres de paquetes que agrega después sudo apt-get install
dado que la lista incorrecta de nombres de paquetes, por ejemplo, entradas redundantes en la lista, da como resultado una falla en la instalación de cualquiera de los paquetes o algo peor, incluso puede encontrarse vadeando las profundidades infernales de # DEPENDENCY-HELL
Todas las respuestas que he podido encontrar para esta pregunta han sido del tipo “purgue su instalación de Mysql y vuelva a instalarla”. Pero en mi caso, ya tengo una instalación de Mysql activa / en funcionamiento. Para mi, la razon por la cual dpkg --configure -a
falla es porque Mysql ya está instalado. Por qué dpkg piensa que el script postinstall debe ejecutarse para mi Mysql ya instalado y actualizado, es posible que nunca lo sepa, pero lo hace.
Después de un tiempo considerable buscando respuestas, encontré una solución que debería funcionar si hay otros que ya tienen un Mysql 5.7 en funcionamiento y solo quieren superar este script post-instalación falso. Puede editar el script postinstall directamente como (en Ubuntu):
sudo vi /var/lib/dpkg/info/mysql-server-5.7.postinst
Y luego, en la segunda línea, simplemente agregue exit 0
y luego corre dpkg
de nuevo y debería obtener algo como:
$ sudo dpkg --configure -a
Setting up mysql-server-5.7 (5.7.28-0ubuntu0.18.04.4) ...
Definitivamente no querrá seguir estas instrucciones si su instalación de Mysql no se ha completado previamente (hay una razón por la que el script postinstall insiste en ejecutarse). Pero para aquellos que podrían terminar con dpkg en un estado inestable, como yo, lo anterior puede ahorrarles mucho tiempo purgando y reinstalando una versión de Mysql que ya funciona.
Esto debería ayudar
sudo apt-get purge mysql*
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get dist-upgrade
Y ahora reinstale mysql
sudo apt-get install mysql-server