69 votes

Y a-t-il un moyen d'annuler la dernière mise à jour ?

Cela m'est arrivé plusieurs fois au cours des cinq dernières années : une mise à jour a cassé mon système. À chaque fois que je me retrouve dans cette situation, je dois réinstaller tout le système, ce qui est vraiment ennuyeux.

Existe-t-il un moyen d'annuler la mise à jour la plus récente afin d'avoir un système fonctionnel sans réinstallation ? Si ce n'est pas le cas, quel est le meilleur moyen de suggérer cette idée comme une priorité absolue ?

J'ai lu que cette idée avait été décrite sur brainstorm.ubuntu.com, mais j'ai l'impression qu'elle est morte... et les forums sont pleins d'exemples de mises à jour qui cassent des choses, c'est pourquoi je pense que quelque chose doit être fait à ce sujet. Merci !

16voto

Igor B. Points 365

Dans synaptics, vous pouvez au moins contrôler, quelles ont été les mises à jour récentes : Menu fichier, historique.

(si synaptic est démarrable, avec le système cassé). Donc, avec une commande apt-...-, pour rétablir leur mise à jour, cela ne devrait pas être trop difficile.

Je suppose qu'il existe aussi une commande d'historique pour la ligne de commande.

Vous devez peut-être supprimer l'ensemble du paquet et installer une version spécifique. Je crois qu'il est possible d'installer une version spécifique, mais je n'ai jamais eu besoin de le faire.

Mise à jour : J'ai cherché comment faire avec l'apt :

Trouver les paquets installés dans les 3x24 dernières heures :

find /var/lib/dpkg/info/ -name \*.list -mtime -3 | sed 's#.list$##;s#.*/##' 

Avec la politique apt-cache, vous voyez les versions disponibles d'un programme :

sudo apt-cache policy PROGRAM:
 *** 3.6.7+build3+nobinonly-0ubuntu0.10.04.1 0
        500 http://de.archive.ubuntu.com/ubuntu/ lucid-updates/main Packages
        500 http://security.ubuntu.com/ubuntu/ lucid-security/main Packages
        100 /var/lib/dpkg/status
     3.6.3+nobinonly-0ubuntu4 0

ici 3.6.7 et 3.6.3 . Vous savez maintenant quelle version antérieure peut être installée (souvent pas le prédécesseur immédiat) :

sudo apt-get install PROGRAM=3.6.3

Ensuite, vous devez faire un apt-pinning, pour empêcher les futures mises à jour :

Créez un nouveau fichier dans /etc/apt/preferences.d/ (si >= 10.4) nommé d'après votre programme,

Package: program
Pin: version 3.6.3*
Pin-Priority: 1000

9voto

Matt Points 91

Vous pouvez surtout consulter /var/log/apt/history.log pour les changements effectués par apt/synaptic. C'est juste un peu médico-légal et beaucoup de copier/coller à faire.

Revenez à la date à laquelle votre système fonctionnait encore bien.

Prenez d'abord tous les paquets qui ont été installés depuis et rassemblez-les dans une désinstallation script. Lorsque le script est terminé, recommencez à ajouter tous les paquets supprimés.

Un exemple de cas :
fichier journal :

Start-Date: 2014-05-28  21:28:11
Commandline: synaptic
Install: libfglrx-amdxvba1:amd64 (13.12-3kali1, automatic), libgl1-fglrx-glx:amd64 (13.12-3kali1), glx-alternative-fglrx:amd64 (0.4.1kali1, automatic), libfglrx:amd64 (13.12-3kali1, au$
Remove: fglrx-glx-ia32:amd64 (12-6+point-3)
End-Date: 2014-05-28  21:28:27

vous pouvez voir,

libfglrx-amdxvba1:amd64 libgl1-fglrx-glx:amd64 glx-alternative-fglrx:amd64 & libfglrx:amd64 

a été installé par Synaptic. comme libfglrx:amd64 a été supprimé par Synaptic.

Nous avons procédé dans l'ordre inverse, c'est-à-dire que nous avons d'abord supprimé les paquets nouvellement installés, puis nous avons réinséré les paquets qui ont été supprimés.

Une commande fonctionnelle pour ce cas pourrait ressembler à ceci :

sudo apt-get remove -y libfglrx-amdxvba1:amd64 libgl1-fglrx-glx:amd64 glx-alternative-fglrx:amd64 libfglrx:amd64 && sudo apt-get install -y libfglrx:amd64

Peut-être que ce ne serait pas la meilleure idée de se passer de la -y switch - pour avoir plus de contrôle sur le processus (pour éviter les dépendances brisées). La plupart d'entre vous ne se casseraient pas le doigt en faisant quelques "y" de vérification.

Dans la plupart des cas, un retour en arrière est possible de cette manière, mais si les dépendances sont déjà rompues, vous risquez de rencontrer un problème encore plus important.

7voto

La plupart du temps, si votre système est en panne, c'est que Noyau problème.

Il suffit de démarrer un noyau plus ancien et de réinstaller les paquets les plus récents (en particulier les paquets du noyau) qui n'ont probablement pas été mis à jour correctement. Quelques notes :

/var/log/dpkg.log

est votre ami pour vérifier la liste des paquets récemment mis à jour/installés.

sudo apt-get -f install

peut la plupart du temps réparer les paquets à moitié installés

3voto

psusi Points 35613

Malheureusement, il n'existe pas encore de moyen de le faire. Le snapshot/rollback au niveau du système de fichiers est l'une des fonctionnalités du futur btrfs, mais il a encore du chemin à parcourir pour être complet et suffisamment stable pour être utilisé comme système de fichiers par défaut.

2voto

Lekensteyn Points 162346

Lorsque je fais une mise à jour majeure, je clone le disque en utilisant Clonezilla . Gravez-le sur un CD, disposez d'un disque dur (externe) de rechange et suivez les instructions du LiveCD de Clonezilla. Choisissez le partition-image ce mode utilise le moins d'espace.

Si vous pensez avoir cassé votre système (ou si vous souhaitez annuler des modifications), il suffit de démarrer le LiveCD Clonezilla, de sélectionner l'image sur votre disque dur (externe) et de la restaurer. Comme ces images sont une copie littérale de chaque bit de votre disque, cela peut prendre quelques heures selon la vitesse de votre disque et de votre connexion (la connexion entre les données, généralement un disque dur externe USB, et l'ordinateur).

D'ailleurs, cela s'appelle une méthode de sauvegarde.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X