No sin mucho trabajo, eso no valdría la pena. ¿Puedes guardar tu / casa y empezar de nuevo? ¿Qué no te gustó?
user10547
Todavía no lo he hecho, pero este es un servidor de producción y necesito asegurarme de que no haya incompatibilidades con nuestra configuración personalizada de PHP / MySQL / Apache2, y volver rápidamente si lo hay. Me gustaría actualizar porque creo que solucionará otro problema que tengo.
jjclarkson
A menos que haya realizado dist-upgrade, no veo qué resultados no le gusten, ya que esas son las actualizaciones de seguridad más probables .
LiraNuna
Si tiene una instalación personalizada, es su responsabilidad guardar los parches y aplicarlos a la versión actual.
LiraNuna
2
Si se trata de un servidor, un servidor dev tratar antes de actualizar la producción
SolArc
Respuestas:
5
aptitudele da acceso a todas las versiones de un paquete si está disponible según la gestión de paquetes de Debian .
El primer paso para deshacer la actualización ofensiva fue averiguar qué actualizaciones era exactamente. Después de buscar en algunos foros, encontré una forma de ver mi historial de actualizaciones: abrir el administrador de paquetes sinápticos ("sudo synaptic" en el terminal). Desde la barra de menú, haga clic en Archivo -> Historial y verá todas sus actualizaciones ordenadas por fecha.
Desafortunadamente, instalé unas 20 actualizaciones hoy y no sabía cuál había causado el problema. Al buscar en cada uno de los paquetes nombrados en la lista de Historial, pude degradar algunos a la vez hasta que se resolvió el problema e identifiqué la actualización ofensiva. Para hacer esto:
Use la barra de búsqueda para encontrar el paquete que desea degradar. Una vez que haya encontrado lo que está buscando, haga clic en el paquete para seleccionarlo. Desde la barra de menú, haga clic en Paquete -> Forzar versión y seleccione la versión anterior del paquete en el menú desplegable. Haga clic en el botón "Aplicar" para aplicar la degradación.
Espero que todos aquí conozcan los conceptos básicos sobre cómo buscar la última actualización ofensiva:
Manav Brar
2
¿De qué se trataba esa edición? ¿Tienes alguna otra pregunta? ¿Quieres que juguemos un juego de adivinanzas?
slhck
5
Tenía que hacer esto hoy en mi sistema Debian. Primero, identifiqué el rango de tiempo cuando ocurrió la actualización ofensiva, y recuperé las entradas de registro con los números de versión antiguos y nuevos de los paquetes actualizados:
Luego, traté de encontrar los archivos del paquete aún en caché en el disco (por suerte para mí no había ejecutado autoclean):
$ awk '$1=="2016-03-20" && $3=="upgrade" {gsub(/:/, "%3a", $5); split($4, f, ":"); print "/var/cache/apt/archives/" f[1] "_" $5 "_" f[2] ".deb"}' /var/log/dpkg.log | xargs -r ls -ld
ls: cannot access '/var/cache/apt/archives/ethtool_1%3a4.2-1_amd64.deb': No such file or directory
-rw-r--r-- 1 root root 28820 Dec 18 2014 /var/cache/apt/archives/amd64-microcode_2.20141028.1_amd64.deb
-rw-r--r-- 1 root root 1978874 Dec 10 18:22 /var/cache/apt/archives/libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb
-rw-r--r-- 1 root root 185006 Mar 12 00:41 /var/cache/apt/archives/libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb
-rw-r--r-- 1 root root 1317644 Mar 3 11:30 /var/cache/apt/archives/libsvn1_1.9.3-2+b1_amd64.deb
-rw-r--r-- 1 root root 7679400 Dec 10 18:22 /var/cache/apt/archives/libwebkitgtk-3.0-0_2.4.9-3_amd64.deb
-rw-r--r-- 1 root root 6108 Dec 14 06:59 /var/cache/apt/archives/linux-image-amd64_4.3+70_amd64.deb
-rw-r--r-- 1 root root 1075506 Feb 7 21:36 /var/cache/apt/archives/linux-libc-dev_4.3.5-1_amd64.deb
-rw-r--r-- 1 root root 983174 Mar 3 11:30 /var/cache/apt/archives/subversion_1.9.3-2+b1_amd64.deb
-rw-r--r-- 1 root root 53376 Feb 28 18:35 /var/cache/apt/archives/traceroute_1%3a2.0.22-1_amd64.deb
Parece que por alguna razón no tengo el paquete de ethtool más antiguo. Aún así, continuemos instalando a la fuerza los archivos de paquetes más antiguos:
$ sudo dpkg -i /var/cache/apt/archives/amd64-microcode_2.20141028.1_amd64.deb /var/cache/apt/archives/libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb /var/cache/apt/archives/libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb /var/cache/apt/archives/libsvn1_1.9.3-2+b1_amd64.deb /var/cache/apt/archives/libwebkitgtk-3.0-0_2.4.9-3_amd64.deb /var/cache/apt/archives/linux-image-amd64_4.3+70_amd64.deb /var/cache/apt/archives/linux-libc-dev_4.3.5-1_amd64.deb /var/cache/apt/archives/subversion_1.9.3-2+b1_amd64.deb /var/cache/apt/archives/traceroute_1%3a2.0.22-1_amd64.deb
dpkg: warning: downgrading amd64-microcode from 2.20160316.1 to 2.20141028.1
(Reading database ... 139632 files and directories currently installed.)
Preparing to unpack .../amd64-microcode_2.20141028.1_amd64.deb ...
Unpacking amd64-microcode (2.20141028.1) over (2.20160316.1) ...
dpkg: warning: downgrading libjavascriptcoregtk-3.0-0:amd64 from 2.4.10-1 to 2.4.9-3
Preparing to unpack .../libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb ...
Unpacking libjavascriptcoregtk-3.0-0:amd64 (2.4.9-3) over (2.4.10-1) ...
dpkg: warning: downgrading libsdl1.2debian:amd64 from 1.2.15+dfsg1-4 to 1.2.15+dfsg1-3
Preparing to unpack .../libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb ...
Unpacking libsdl1.2debian:amd64 (1.2.15+dfsg1-3) over (1.2.15+dfsg1-4) ...
dpkg: warning: downgrading libsvn1:amd64 from 1.9.3-3 to 1.9.3-2+b1
Preparing to unpack .../libsvn1_1.9.3-2+b1_amd64.deb ...
Unpacking libsvn1:amd64 (1.9.3-2+b1) over (1.9.3-3) ...
Preparing to unpack .../libwebkitgtk-3.0-0_2.4.9-3_amd64.deb ...
Unpacking libwebkitgtk-3.0-0:amd64 (2.4.9-3) over (2.4.9-3) ...
dpkg: warning: downgrading linux-image-amd64 from 4.4+71 to 4.3+70
Preparing to unpack .../linux-image-amd64_4.3+70_amd64.deb ...
Unpacking linux-image-amd64 (4.3+70) over (4.4+71) ...
dpkg: warning: downgrading linux-libc-dev:amd64 from 4.4.6-1 to 4.3.5-1
Preparing to unpack .../linux-libc-dev_4.3.5-1_amd64.deb ...
Unpacking linux-libc-dev:amd64 (4.3.5-1) over (4.4.6-1) ...
dpkg: warning: downgrading subversion from 1.9.3-3 to 1.9.3-2+b1
Preparing to unpack .../subversion_1.9.3-2+b1_amd64.deb ...
Unpacking subversion (1.9.3-2+b1) over (1.9.3-3) ...
dpkg: warning: downgrading traceroute from 1:2.1.0-1 to 1:2.0.22-1
Preparing to unpack .../traceroute_1%3a2.0.22-1_amd64.deb ...
Unpacking traceroute (1:2.0.22-1) over (1:2.1.0-1) ...
Setting up amd64-microcode (2.20141028.1) ...
update-initramfs: deferring update (trigger activated)
amd64-microcode: microcode will be updated at next boot
Setting up libjavascriptcoregtk-3.0-0:amd64 (2.4.9-3) ...
Setting up libsdl1.2debian:amd64 (1.2.15+dfsg1-3) ...
Setting up libsvn1:amd64 (1.9.3-2+b1) ...
dpkg: dependency problems prevent configuration of libwebkitgtk-3.0-0:amd64:
libwebkitgtk-3.0-0:amd64 depends on libwebkitgtk-3.0-common (>= 2.4.9); however:
Package libwebkitgtk-3.0-common is not installed.
dpkg: error processing package libwebkitgtk-3.0-0:amd64 (--install):
dependency problems - leaving unconfigured
Setting up linux-image-amd64 (4.3+70) ...
Setting up linux-libc-dev:amd64 (4.3.5-1) ...
Setting up subversion (1.9.3-2+b1) ...
Setting up traceroute (1:2.0.22-1) ...
update-alternatives: using /usr/bin/traceroute.db to provide /usr/bin/traceroute (traceroute) in auto mode
update-alternatives: using /usr/bin/lft.db to provide /usr/bin/lft (lft) in auto mode
update-alternatives: using /usr/bin/traceproto.db to provide /usr/bin/traceproto (traceproto) in auto mode
update-alternatives: using /usr/sbin/tcptraceroute.db to provide /usr/sbin/tcptraceroute (tcptraceroute) in auto mode
Processing triggers for libc-bin (2.22-3) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for initramfs-tools (0.123) ...
update-initramfs: Generating /boot/initrd.img-4.4.0-1-amd64
Errors were encountered while processing:
libwebkitgtk-3.0-0:amd64
Como decía el mensaje de error, uno de mis paquetes dependía de un paquete común justo antes de la actualización, pero la actualización lo eliminó (y apt-get ya no puede encontrarlo). Afortunadamente, su archivo de paquete todavía está en / var / cache / apt, así que puedo agregarlo a la lista e intentar nuevamente:
$ ls -ld /var/cache/apt/archives/libwebkitgtk-3.0-common*
-rw-r--r-- 1 root root 452278 Dec 10 18:22 /var/cache/apt/archives/libwebkitgtk-3.0-common_2.4.9-3_all.deb
$ sudo dpkg -i /var/cache/apt/archives/amd64-microcode_2.20141028.1_amd64.deb /var/cache/apt/archives/libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb /var/cache/apt/archives/libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb /var/cache/apt/archives/libsvn1_1.9.3-2+b1_amd64.deb /var/cache/apt/archives/libwebkitgtk-3.0-0_2.4.9-3_amd64.deb /var/cache/apt/archives/linux-image-amd64_4.3+70_amd64.deb /var/cache/apt/archives/linux-libc-dev_4.3.5-1_amd64.deb /var/cache/apt/archives/subversion_1.9.3-2+b1_amd64.deb /var/cache/apt/archives/traceroute_1%3a2.0.22-1_amd64.deb /var/cache/apt/archives/libwebkitgtk-3.0-common_2.4.9-3_all.deb
(Reading database ... 139632 files and directories currently installed.)
Preparing to unpack .../amd64-microcode_2.20141028.1_amd64.deb ...
Unpacking amd64-microcode (2.20141028.1) over (2.20141028.1) ...
Preparing to unpack .../libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb ...
Unpacking libjavascriptcoregtk-3.0-0:amd64 (2.4.9-3) over (2.4.9-3) ...
Preparing to unpack .../libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb ...
Unpacking libsdl1.2debian:amd64 (1.2.15+dfsg1-3) over (1.2.15+dfsg1-3) ...
Preparing to unpack .../libsvn1_1.9.3-2+b1_amd64.deb ...
Unpacking libsvn1:amd64 (1.9.3-2+b1) over (1.9.3-2+b1) ...
Preparing to unpack .../libwebkitgtk-3.0-0_2.4.9-3_amd64.deb ...
Unpacking libwebkitgtk-3.0-0:amd64 (2.4.9-3) over (2.4.9-3) ...
Preparing to unpack .../linux-image-amd64_4.3+70_amd64.deb ...
Unpacking linux-image-amd64 (4.3+70) over (4.3+70) ...
Preparing to unpack .../linux-libc-dev_4.3.5-1_amd64.deb ...
Unpacking linux-libc-dev:amd64 (4.3.5-1) over (4.3.5-1) ...
Preparing to unpack .../subversion_1.9.3-2+b1_amd64.deb ...
Unpacking subversion (1.9.3-2+b1) over (1.9.3-2+b1) ...
Preparing to unpack .../traceroute_1%3a2.0.22-1_amd64.deb ...
Unpacking traceroute (1:2.0.22-1) over (1:2.0.22-1) ...
Selecting previously unselected package libwebkitgtk-3.0-common.
Preparing to unpack .../libwebkitgtk-3.0-common_2.4.9-3_all.deb ...
Unpacking libwebkitgtk-3.0-common (2.4.9-3) ...
Setting up amd64-microcode (2.20141028.1) ...
update-initramfs: deferring update (trigger activated)
amd64-microcode: microcode will be updated at next boot
Setting up libjavascriptcoregtk-3.0-0:amd64 (2.4.9-3) ...
Setting up libsdl1.2debian:amd64 (1.2.15+dfsg1-3) ...
Setting up libsvn1:amd64 (1.9.3-2+b1) ...
Setting up linux-image-amd64 (4.3+70) ...
Setting up linux-libc-dev:amd64 (4.3.5-1) ...
Setting up subversion (1.9.3-2+b1) ...
Setting up traceroute (1:2.0.22-1) ...
update-alternatives: using /usr/bin/traceroute.db to provide /usr/bin/traceroute (traceroute) in auto mode
update-alternatives: using /usr/bin/lft.db to provide /usr/bin/lft (lft) in auto mode
update-alternatives: using /usr/bin/traceproto.db to provide /usr/bin/traceproto (traceproto) in auto mode
update-alternatives: using /usr/sbin/tcptraceroute.db to provide /usr/sbin/tcptraceroute (tcptraceroute) in auto mode
Setting up libwebkitgtk-3.0-common (2.4.9-3) ...
Setting up libwebkitgtk-3.0-0:amd64 (2.4.9-3) ...
Processing triggers for libc-bin (2.22-3) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for initramfs-tools (0.123) ...
update-initramfs: Generating /boot/initrd.img-4.4.0-1-amd64
¡Éxito! En realidad, esto no resolvió mi problema. Pero degradó con éxito los paquetes, QED.
También tuve que deshacer una actualización de paquete hoy en un par de servidores Debian. Revertí con éxito los paquetes a la última versión usando aptitute, mientras que el siguiente comando awk fue muy útil.
( En el siguiente comando, reemplace la cadena de fecha con la fecha del día a partir del cual desea revertir las actualizaciones )
revise el resultado para verificar que estos son los paquetes y las versiones que se van a revertir. Luego use aptitute para hacer la degradación de los paquetes listados:
aptitute install [paste output here]
Espero que esto también sea un ahorro de tiempo útil para otros.
Yo creo que no, además de tomar una copia de seguridad completa de los sistemas de archivos relevantes (aquellos que contienen /, /bin, /lib, /sbin, /usr, /var, /etcy /boot(que todos pueden estar en el sistema de archivos) y el registro de arranque) para que pueda mover la máquina hacia atrás después.
Podría (y probablemente lo haré) hacer una copia de seguridad completa, pero quería una opción de software que me permitiera deshacer la actualización en un plazo más rápido. Restaurar desde la copia de seguridad de metal desnudo podría llevar varias horas.
jjclarkson
1
Puede asegurarse de tener copias de todos los paquetes que está a punto de actualizar en sus versiones anteriores (probablemente todavía estén almacenados en su caché apto en algún lugar /var) y cualquier archivo de configuración relevante almacenado. Luego, puede intentar forzar una reversión diciéndole explícitamente dpkgque instale esas versiones. Es posible que tenga que hacer algo después cuando desee que se realicen las actualizaciones normales, por lo que no es algo que recomiendo.
David Spillett
Una copia de seguridad realizada con rsync (marca de tiempo habilitada) puede restaurarse con bastante rapidez, en comparación con una copia de seguridad realizada con tar.
joeytwiddle
2
Ejecuto mis servidores Linux en un entorno virtualizado y ejecuto una captura de pantalla justo antes de una actualización de apt-get, o cualquier actualización / actualización importante de terceros para el caso.
Entonces, si algo sale mal, simplemente vuelvo y la vida continúa hasta que pueda encontrar más información.
Esto fue muy útil cuando actualicé mi caja de Ubuntu a 12.04, y de alguna manera MySQL no funcionó completamente después de la actualización. Retrocedí, encontré la respuesta más tarde, volví a realizar la actualización, arreglé MySQL y la vida fue buena.
Después de ti ./configure; haga su programa, CheckInstall ejecutará make install (o lo que le diga que se ejecute) y realizará un seguimiento de cada archivo modificado por esta instalación, utilizando el excelente installwatch ...
Entonces, tal vez podría decirle que ejecute aptitude safe-upgrade y mantendría un registro de cada modificación realizada por la actualización.
Hay un proyecto llamado Nexenta que combina el núcleo de OpenSolaris con el espacio de usuario de Ubuntu. Proporciona una herramienta para integrar el ZFS de Solaris y el apt de Debian para proporcionar un botón de deshacer para las actualizaciones. Ver aquí: http://www.nexenta.org/os/TransactionalZFSUpgrades
En términos más generales, lo que necesita es un sistema de archivos de versiones. Btrfs para Linux está en desarrollo.
Usar Apt-Undo es una opción posible, pero solo puede funcionar si lo está utilizando para instalar y desinstalar paquetes. No ayudará si ya ha desinstalado el software de la manera normal.
Lo he hecho con éxito algunas veces, pero no lo recomendaré. Esto es lo que hice (si no recuerdo mal):
1) Elimine cualquier software no oficial que no esté incluido en los repositorios predeterminados de ubuntu (puede que no sea necesario, pero lo sugiero ya que pueden interponerse en su camino).
2) Cambie su /etc/apt/sources.list (y sources.list.d / *) a la versión anterior (comente todos los repositorios no oficiales).
3) apt-get update / aptitude update
4) Utilizando aptitude, rebaje los paquetes centrales (como X11, bibliotecas, etc.). Comenzará a disparar muchos paquetes rotos ... por lo que deberá resolver cada caso (debe saber cómo hacerlo en aptitude). La forma de degradarlo es yendo al panel de descripción e instalando la versión (presionando +) en la parte inferior.
5) Repita # 4 hasta que todo el software pertenezca a su versión de destino (verifique la columna de versión en aptitude)
Estas son las razones por las que no recomiendo este método:
Lleva mucho tiempo (es un proceso doloroso)
Es posible que algunas aplicaciones no funcionen correctamente (ya que aún pueden tener la configuración más reciente). En ese caso, deberá "purgar" y volver a instalar.
Hay actualizaciones relacionadas con el sistema que no funcionarán después de la degradación
Es muy riesgoso ya que puede terminar con un sistema inutilizable
Recomiendo encarecidamente realizar una instalación limpia y mover su configuración poco a poco. También lleva tiempo, pero al final tienes una versión estable.
La razón por la que lo hice fue principalmente como experimentación y como resultado de la desesperación.
DPkg :: Pre-Install-Pkgs y ZFS en instantáneas de Linux
Si instaló su sistema operativo en un sistema de archivos ZFS (por ejemplo, ZFS en Linux ), puede configurarlo apt-getpara que se ejecute zfs snapshotantes de que instale o actualice algo, lo que hará una copia de seguridad de su sistema de archivos instantáneamente. Puede funcionar con mecanismos de respaldo que no sean instantáneas de ZFS, pero dejaré esa prueba a otros.
La secuencia de comandos
Crea un archivo como
/etc/apt/apt.conf.d/71backup
con contenidos
// Tell `apt-get' to take a ZFS snapshot before installing or upgrading a
// set of packages:
DPkg::Pre-Install-Pkgs {"/sbin/zfs snapshot rpool/ROOT/debian@apt-get_$(date '+%Y-%m-%d-%H%M')";};
donde rpool/ROOT/debiandebe reemplazarse por el nombre del sistema de archivos ZFS en el que está montado su sistema operativo. Le dio ese nombre cuando instaló su sistema operativo por primera vez, y se puede encontrar bajo el atributo NAMEcon el comando
# zfs list -t filesystem
NAME ...
...
rpool/ROOT/debian ...
...
¿Pero funciona?
Será mejor que tome una instantánea antes de seguir los consejos de configuración de alguna persona aleatoria de Internet:
Esa instantánea contiene su sistema de archivos como era antes de que se instalaran los dos juegos.
# exit
$ sudoku
Momentos divertidos para la abuela, pero odias el sudoku.
$ sudo -i
# zfs rollback rpool/ROOT/debian@apt-get_2018-08-02-033614
# exit
$ sudoku
-bash: /usr/games/sudoku: No such file or directory
$ tanglet
-bash: tanglet: command not found
Después de tomar varias instantáneas, puede retroceder a cualquiera anterior agregando la -rbandera. En nuestro caso, por ejemplo, intente
Sin embargo, tenga en cuenta que esto no solo devolverá su sistema de archivos al estado en que se encontraba cuando rpool/ROOT/debian@2018-08-01-230001_testse tomó, sino que también eliminará irremediablemente todas las instantáneas posteriores. Si seguías esta publicación, la instantánea rpool/ROOT/debian@apt-get_2018-08-02-033614ya no estaría.
Funciona. Se creó una instantánea para el installcomando, otra para el upgradecomando.
Advertencia : probé esto por primera vez hoy y sé muy poco sobre el funcionamiento interno de apt. Si esto rompe algo para usted o conlleva riesgos que mi mente benevolente no ha considerado, por favor comente al respecto a continuación.
Respuestas:
aptitude
le da acceso a todas las versiones de un paquete si está disponible según la gestión de paquetes de Debian .fuente
Encontré el Blogstatic Blog de Hartman: Cómo deshacer una actualización en Ubuntu Lucid
fuente
Tenía que hacer esto hoy en mi sistema Debian. Primero, identifiqué el rango de tiempo cuando ocurrió la actualización ofensiva, y recuperé las entradas de registro con los números de versión antiguos y nuevos de los paquetes actualizados:
Luego, traté de encontrar los archivos del paquete aún en caché en el disco (por suerte para mí no había ejecutado autoclean):
Parece que por alguna razón no tengo el paquete de ethtool más antiguo. Aún así, continuemos instalando a la fuerza los archivos de paquetes más antiguos:
Como decía el mensaje de error, uno de mis paquetes dependía de un paquete común justo antes de la actualización, pero la actualización lo eliminó (y apt-get ya no puede encontrarlo). Afortunadamente, su archivo de paquete todavía está en / var / cache / apt, así que puedo agregarlo a la lista e intentar nuevamente:
¡Éxito! En realidad, esto no resolvió mi problema. Pero degradó con éxito los paquetes, QED.
fuente
También tuve que deshacer una actualización de paquete hoy en un par de servidores Debian. Revertí con éxito los paquetes a la última versión usando aptitute, mientras que el siguiente comando awk fue muy útil.
( En el siguiente comando, reemplace la cadena de fecha con la fecha del día a partir del cual desea revertir las actualizaciones )
revise el resultado para verificar que estos son los paquetes y las versiones que se van a revertir. Luego use aptitute para hacer la degradación de los paquetes listados:
Espero que esto también sea un ahorro de tiempo útil para otros.
fuente
Yo creo que no, además de tomar una copia de seguridad completa de los sistemas de archivos relevantes (aquellos que contienen
/
,/bin
,/lib
,/sbin
,/usr
,/var
,/etc
y/boot
(que todos pueden estar en el sistema de archivos) y el registro de arranque) para que pueda mover la máquina hacia atrás después.fuente
/var
) y cualquier archivo de configuración relevante almacenado. Luego, puede intentar forzar una reversión diciéndole explícitamentedpkg
que instale esas versiones. Es posible que tenga que hacer algo después cuando desee que se realicen las actualizaciones normales, por lo que no es algo que recomiendo.Ejecuto mis servidores Linux en un entorno virtualizado y ejecuto una captura de pantalla justo antes de una actualización de apt-get, o cualquier actualización / actualización importante de terceros para el caso.
Entonces, si algo sale mal, simplemente vuelvo y la vida continúa hasta que pueda encontrar más información.
Esto fue muy útil cuando actualicé mi caja de Ubuntu a 12.04, y de alguna manera MySQL no funcionó completamente después de la actualización. Retrocedí, encontré la respuesta más tarde, volví a realizar la actualización, arreglé MySQL y la vida fue buena.
fuente
Podrías probar checkinstall
Entonces, tal vez podría decirle que ejecute aptitude safe-upgrade y mantendría un registro de cada modificación realizada por la actualización.
fuente
Hay un proyecto llamado Nexenta que combina el núcleo de OpenSolaris con el espacio de usuario de Ubuntu. Proporciona una herramienta para integrar el ZFS de Solaris y el apt de Debian para proporcionar un botón de deshacer para las actualizaciones. Ver aquí: http://www.nexenta.org/os/TransactionalZFSUpgrades
En términos más generales, lo que necesita es un sistema de archivos de versiones. Btrfs para Linux está en desarrollo.
fuente
Usar Apt-Undo es una opción posible, pero solo puede funcionar si lo está utilizando para instalar y desinstalar paquetes. No ayudará si ya ha desinstalado el software de la manera normal.
http://www.ubuntugeek.com/apt-undo-a-simple-way-of-undoing-apt-actions.html http://lkubuntu.wordpress.com/2011/07/27/apt-undo-a -simple-way-of-undoing-apt-actions /
fuente
Lo he hecho con éxito algunas veces, pero no lo recomendaré. Esto es lo que hice (si no recuerdo mal):
1) Elimine cualquier software no oficial que no esté incluido en los repositorios predeterminados de ubuntu (puede que no sea necesario, pero lo sugiero ya que pueden interponerse en su camino).
2) Cambie su /etc/apt/sources.list (y sources.list.d / *) a la versión anterior (comente todos los repositorios no oficiales).
3) apt-get update / aptitude update
4) Utilizando aptitude, rebaje los paquetes centrales (como X11, bibliotecas, etc.). Comenzará a disparar muchos paquetes rotos ... por lo que deberá resolver cada caso (debe saber cómo hacerlo en aptitude). La forma de degradarlo es yendo al panel de descripción e instalando la versión (presionando +) en la parte inferior.
5) Repita # 4 hasta que todo el software pertenezca a su versión de destino (verifique la columna de versión en aptitude)
Estas son las razones por las que no recomiendo este método:
Recomiendo encarecidamente realizar una instalación limpia y mover su configuración poco a poco. También lleva tiempo, pero al final tienes una versión estable.
La razón por la que lo hice fue principalmente como experimentación y como resultado de la desesperación.
fuente
DPkg :: Pre-Install-Pkgs y ZFS en instantáneas de Linux
Si instaló su sistema operativo en un sistema de archivos ZFS (por ejemplo, ZFS en Linux ), puede configurarlo
apt-get
para que se ejecutezfs snapshot
antes de que instale o actualice algo, lo que hará una copia de seguridad de su sistema de archivos instantáneamente. Puede funcionar con mecanismos de respaldo que no sean instantáneas de ZFS, pero dejaré esa prueba a otros.La secuencia de comandos
Crea un archivo como
con contenidos
donde
rpool/ROOT/debian
debe reemplazarse por el nombre del sistema de archivos ZFS en el que está montado su sistema operativo. Le dio ese nombre cuando instaló su sistema operativo por primera vez, y se puede encontrar bajo el atributoNAME
con el comando¿Pero funciona?
Será mejor que tome una instantánea antes de seguir los consejos de configuración de alguna persona aleatoria de Internet:
Ahí está. En caso de que
error: fn_borked
ocurra pronto, puede devolver su sistema a su maravilloso estado actual conAhora pruébalo instalando dos pequeños juegos que probablemente estén disponibles en tu repositorio:
Esa instantánea contiene su sistema de archivos como era antes de que se instalaran los dos juegos.
Momentos divertidos para la abuela, pero odias el sudoku.
Después de tomar varias instantáneas, puede retroceder a cualquiera anterior agregando la
-r
bandera. En nuestro caso, por ejemplo, intenteSin embargo, tenga en cuenta que esto no solo devolverá su sistema de archivos al estado en que se encontraba cuando
rpool/ROOT/debian@2018-08-01-230001_test
se tomó, sino que también eliminará irremediablemente todas las instantáneas posteriores. Si seguías esta publicación, la instantánearpool/ROOT/debian@apt-get_2018-08-02-033614
ya no estaría.Probé
apt-get upgrade
en un Debian GNU / Linux conFunciona. Se creó una instantánea para el
install
comando, otra para elupgrade
comando.Advertencia : probé esto por primera vez hoy y sé muy poco sobre el funcionamiento interno de apt. Si esto rompe algo para usted o conlleva riesgos que mi mente benevolente no ha considerado, por favor comente al respecto a continuación.
fuente