web-dev-qa-db-fra.com

Existe-t-il un moyen d'annuler la mise à niveau la plus récente?

Cela m'est arrivé à plusieurs reprises au cours des 5 dernières années: une mise à niveau a endommagé 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 à niveau la plus récente pour pouvoir disposer d'un système fonctionnel sans avoir à le réinstaller? Si non, quel est le meilleur moyen de suggérer cela comme une idée prioritaire?

J'ai lu que cette idée avait été décrite dans brainstorm.ubuntu.com, mais elle a le sentiment qu'elle est morte ... et les forums regorgent d'exemples de mises à niveau qui ont permis de casser des choses, c'est pourquoi je pense que quelque chose doit être fait à ce sujet. Merci!

54
Marcelo Ruiz

Dans Synaptics, vous pouvez au moins contrôler les dernières mises à jour: menu Fichier, historique.

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

Je suppose qu'il y a aussi une commande historique pour la ligne de commande.

Peut-être devrez-vous supprimer tout le paquet et installer une version spécifique. Après tout, il est possible d'installer une version spécifique, mais je n'ai jamais eu besoin de le faire.

update: regardé comment faire avec apt:

Trouver les paquets installés dans la dernière 3x24h:

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

Avec apt-cache policy, 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. Maintenant, vous savez 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
14
user unknown

La plupart du temps, vous pouvez consulter /var/log/apt/history.log pour les modifications apportées par apt/synaptic. C'est juste un peu de médecine légale et beaucoup de couper/coller à faire.

Retournez à la date à laquelle votre système fonctionnait toujours bien.

Prenez d’abord tous les paquets qui ont été installés depuis et mettez-les ensemble dans un script de désinstallation. Une fois le script terminé, recommencez l'ajout de tous les packages 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

tu peux voir,

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

se sont installés par Synaptic. libfglrx:AMD64 a été supprimé par Synaptic.

Nous sommes passés dans l'ordre inverse, nous avons donc d'abord supprimé les packages récemment installés et ajouté à nouveau les packages supprimés.

Une commande de travail pour ce cas pourrait ressembler à:

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 ne pas utiliser le commutateur -y - d'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 tout en faisant quelques vérifications "y"

Dans la plupart des cas, une restauration est possible de cette façon, mais si les dépendances sont déjà brisées, vous pouvez rencontrer un problème encore plus important.

7
Matt

La plupart du temps, si votre système est en panne, il s'agit d'un problème noya.

Démarrez simplement un noyau plus ancien et réinstallez les paquets les plus récents (en particulier les paquets du noyau) qui ne se sont probablement pas mis à jour correctement. Quelques notes:

/var/log/dpkg.log

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

Sudo apt-get -f install

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

6
Giordano Battilana

Malheureusement, il n'y a pas encore moyen de le faire. L’instantané/restauration au niveau du système de fichiers est l’une des fonctionnalités de la prochaine version de btrfs, mais il existe encore un moyen de la rendre suffisamment complète et suffisamment stable pour l’utiliser comme système de fichiers par défaut.

4
psusi

Vous pouvez installer une ancienne version d'un paquet donné (rétrograder) avec apt ou dpkg facilement . Le problème est de trouver une version plus ancienne du paquet, car celles-ci disparaissent souvent du pool et des miroirs au fur et à mesure que les mises à jour arrivent.

Si vous installez le package à partir d'un CD d'installation, d'un miroir obsolète ou d'un cache, vous devez également le conserver épinglé à l'ancienne version afin qu'il ne soit pas mis à niveau jusqu'à ce que vous le permettiez. Ce qui signifie que vous devez surveiller les mises à jour et les tester jusqu'à ce que votre problème soit résolu. Ceci est bien sûr un problème puisque pendant ce temps (peut-être pour toujours), vous resterez avec le paquet non corrigé, probablement non sécurisé. Cela signifie que chaque utilisateur présentant un problème système sera laissé dans un état aléatoire jusqu'à ce qu'il puisse le résoudre.

De plus, tous les logiciels ne sont pas compatibles avec la transmission, de sorte qu'une ancienne version de quelque chose peut ne pas se comporter correctement si vous utilisez des fichiers de configuration ou de données plus récents. Évidemment, cela est impossible à résoudre à moins que vous ne restauriez toutes les données utilisateur à un état antérieur à la mise à niveau.

Ce serait bien s'il y avait un moyen de le faire, mais c'est extrêmement problématique. Toute personne qui pense qu'il existe une solution cohérente doit rédiger une proposition et inviter les commentaires ou, mieux encore, créer une solution de validation du concept (code, script, document). La pêche à la traîne et les gémissements ne sont pas constructifs.

Comme il n’existe pas de solution technique propre, la plupart des logiciels sont développés (et intégrés) avec la mentalité "le seul moyen est de progresser". Essayer de gérer des versions obsolètes est une perte de temps pour tout le monde. Les problèmes trouvés sont résolus dans les versions les plus récentes dès que possible. En guise de solution mineure, j'aimerais conserver une archive des versions de paquetages précédentes quelque part pour la solution de contournement temporaire occasionnelle.

En attendant, vous pouvez signaler des bogues et ne pas vous attendre à ce que le logiciel Edge qui coule ne échoue jamais. Une solution, une fois trouvée, devrait figurer dans la prochaine mise à jour. Les développeurs sont des humains (la plupart du temps) et sont donc faillibles. Les ordinateurs sont délicats et pleins de variété et de détails insensés. Les systèmes entretenus de manière défensive, qui utilisent des composants bien pris en charge et une distribution logicielle intégrée stable peuvent être très stables sans pour autant devenir non sécurisés ou non évolutifs.

3
XTL

Lors d'une mise à niveau majeure, je clone le disque en utilisant Clonezilla . Gravez-le sur un CD, disposez d’un disque dur de secours (externe) et suivez les instructions du Clonezilla LiveCD. Choisissez le mode partition-image, qui utilise le moins d’espace possible.

Si vous pensez que votre système est en panne (ou souhaitez annuler toute modification), démarrez simplement le LiveCD Clonezilla, sélectionnez l'image sur votre disque dur (externe) et restaurez-la. Comme ces images sont une copie littérale de chaque bit de votre disque, cela peut prendre quelques heures en fonction de la vitesse de votre disque et de la vitesse de connexion (la connexion entre les données, généralement un disque dur USB externe, et l'ordinateur).

À propos, cela s'appelle une méthode de sauvegarde.

3
Lekensteyn