Esto me ha sucedido muchas veces en los últimos 5 años: una actualización rompió mi sistema. Cada vez que termino con esta situación, tengo que reinstalar todo el sistema, lo cual es realmente molesto.
¿Hay alguna forma de revertir la actualización más reciente para poder tener un sistema funcional sin reinstalar? Si no, ¿cuál es la mejor manera de sugerir esto como una idea de máxima prioridad?
Leí que esta idea se describió en brainstorm.ubuntu.com, pero parece que está muerta ... y los foros están llenos de ejemplos de actualizaciones que rompen cosas, es por eso que siento que hay que hacer algo al respecto. ¡Gracias!
Respuestas:
En synaptics, al menos puedes controlar cuáles han sido las actualizaciones recientes: menú Archivo, historial.
(si synaptic es iniciable, con el sistema roto). Entonces, con un comando apt -...-, para revertir su actualización, no debería ser demasiado difícil.
Supongo que también hay un comando de historial para la línea de comando.
Quizás tenga que eliminar todo el paquete e instalar una versión específica. Afaik, es posible instalar una versión específica, pero nunca tuve la necesidad de hacerlo.
actualización: Busqué cómo hacer con apt:
Encuentra paquetes instalados en las últimas 3x24h:
Con la política apt-cache, verá las versiones disponibles de un programa:
aquí 3.6.7 y 3.6.3. Ahora ya sabe qué versión anterior podría instalarse (a menudo no el predecesor inmediato):
Luego, debe hacer una fijación adecuada para evitar futuras actualizaciones:
Cree un nuevo archivo en /etc/apt/preferences.d/ (si> = 10.4) con el nombre de su programa,
fuente
1.0.2g-1ubuntu4.12
acuerdo con apt? Sin embargo, se niega a aceptar eso como un número de versión. Quiero rebajar la forma1.0.2g-1ubuntu4.13
a1.0.2g-1ubuntu4.12
find /var/lib/dpkg/info/ -name \*.list -mtime -3 | sed 's#.list$##;s#.*/##'
en este punto, es menos complicado reinstalar todo mi sistemaEn su mayoría, puede consultar los
/var/log/apt/history.log
cambios realizados por apt / synaptic. Es solo un poco forense y mucho cortar / pegar.Regrese a la fecha en que su sistema todavía funcionaba bien.
Primero tome todos los paquetes que se instalaron desde entonces y póngalos juntos en un script de desinstalación. Cuando finalice el script, comience a volver a agregar todos los paquetes eliminados nuevamente.
Un ejemplo de caso:
logfile:
puedes ver,
fue instalado por Synaptic. como si
libfglrx:amd64
fuera eliminado por Synaptic.Seguimos el orden inverso, por lo que primero eliminamos los paquetes recién instalados y volvemos a agregar los paquetes que se eliminaron.
Un comando de trabajo para este caso podría verse así:
Tal vez no sería la mejor idea ir sin el
-y
interruptor: tener más control sobre el proceso (para evitar dependencias interrumpidas). La mayoría de ustedes no se romperían el dedo mientras hacen algunas verificaciones "y"En la mayoría de los casos, es posible una reversión de esta manera, pero si las dependencias ya están rotas, puede encontrarse con un problema aún mayor.
fuente
La mayoría de las veces si su sistema está roto, es un problema del núcleo .
Simplemente inicie un núcleo antiguo y reinstale los paquetes más recientes (especialmente los paquetes del núcleo) que probablemente no se actualizaron correctamente. Pocas notas:
es su amigo para verificar cuál es la lista de los paquetes recientemente actualizados / instalados
puede la mayoría de las veces arreglar paquetes a medio instalar
fuente
Lamentablemente, todavía no hay forma de hacerlo. La instantánea / reversión a nivel del sistema de archivos es una de las características de los próximos btrfs, pero aún tiene formas de convertirse en una característica completa y lo suficientemente estable como para usarla como el sistema de archivos predeterminado.
fuente
Al hacer una actualización importante, clono el disco usando Clonezilla . Grabe en un CD, tenga disponible un disco duro (externo) de repuesto y siga las instrucciones en el LiveCD de Clonezilla. Elija el
partition-image
modo, esto usa menos espacio.Si cree que ha dañado su sistema (o desea revertir cualquier cambio), simplemente inicie el Clonezilla LiveCD, seleccione la imagen en su HDD (externo) y restaure. Como estas imágenes son una copia literal de cada bit en su disco, esto puede tomar algunas horas dependiendo de la velocidad de su disco y la velocidad de conexión (la conexión entre los datos, generalmente un HDD USB externo y la computadora).
Por cierto, esto se llama un método de respaldo.
fuente
Puede instalar una versión anterior de un paquete dado (downgrade) con apt o dpkg fácilmente . El problema es encontrar una versión anterior del paquete, ya que a menudo desaparecen del grupo y se reflejan a medida que se introducen las actualizaciones.
Si instala el paquete desde un CD de instalación o un espejo anticuado o un caché, también deberá mantenerlo anclado a la versión anterior para que no se actualice hasta que lo permita. Lo que significa que debe buscar actualizaciones y probarlas hasta que se solucione el problema. Por supuesto, esto es un problema, ya que mientras tanto (tal vez para siempre) se quedará con el paquete no fijado, posiblemente inseguro. Eso significa que cada usuario con algún tipo de problema del sistema quedará en un estado aleatorio hasta que pueda resolverlo.
Todo el software tampoco es compatible con versiones anteriores, por lo que es posible que una versión anterior de algo no se comporte correctamente cuando se alimenta con una configuración más reciente o archivos de datos. Obviamente, esto es imposible de resolver a menos que también revierta todos los datos del usuario a un estado anterior a la actualización.
Sería genial si hubiera una manera de hacer esto, pero es enormemente problemático. Cualquiera que piense que hay una solución coherente debe escribir una propuesta e invitar comentarios o, mejor aún, hacer una solución de prueba de concepto (código, script, documento). Trolling y quejarse no es constructivo.
Debido a que no existe una solución técnica limpia, la mayoría del software está desarrollado (e integrado) con la mentalidad de "la única forma es avanzar". Intentar gestionar versiones desactualizadas es una pérdida de tiempo para todos. Los problemas encontrados se corrigen en las versiones más recientes lo antes posible. Como una solución menor, me gustaría ver un archivo de versiones anteriores de paquetes guardados en algún lugar para la solución temporal ocasional.
Mientras tanto, puede informar errores y no esperar que el software de última generación nunca falle. Una solución, una vez encontrada, debería estar en la próxima actualización. Los desarrolladores son humanos (en su mayoría) y, por lo tanto, falibles. Las computadoras son complicadas y están llenas de variedad y detalles insanos. Los sistemas de mantenimiento defensivo que utilizan componentes bien soportados y una distribución de software integrada estable pueden ser muy estables sin volverse inseguros o no actualizables a pesar de esto.
fuente