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 ennuyant.
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 qu'il faut faire quelque chose à ce sujet. Merci!
Réponses:
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:
Avec apt-cache policy, vous voyez les versions disponibles d'un programme:
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):
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,
la source
1.0.2g-1ubuntu4.12
conforme à apt? Il refuse cependant de l'accepter comme numéro de version. Je veux déclasser la forme1.0.2g-1ubuntu4.13
à1.0.2g-1ubuntu4.12
find /var/lib/dpkg/info/ -name \*.list -mtime -3 | sed 's#.list$##;s#.*/##'
à ce stade, il est moins fastidieux de réinstaller tout mon systèmeLa plupart du temps, vous pouvez consulter les
/var/log/apt/history.log
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:
logfile:
tu peux voir,
se sont installés par Synaptic. comme a
libfglrx:amd64
été enlevé par Synaptic.Nous sommes passés dans l'ordre inverse, nous avons donc d'abord supprimé les packages nouvellement installés et ajouté à nouveau les packages supprimés.
Une commande de travail pour ce cas pourrait ressembler à:
Peut-être que ce ne serait pas la meilleure idée de se passer de l’
-y
interrupteur - 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.
la source
La plupart du temps, si votre système est en panne, il s'agit d'un problème de noyau .
Démarrez simplement un noyau plus ancien et réinstallez les paquetages les plus récents (en particulier les paquetages du noyau) qui ne se sont probablement pas mis à jour correctement. Quelques notes:
est votre ami pour vérifier quelle est la liste des paquets récemment mis à jour / installés
peut la plupart du temps réparer des paquets à moitié installés
la source
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.
la source
Lors d'une mise à niveau majeure, je clone le disque à l'aide de Clonezilla . Gravez-le sur un CD, disposez d’un disque dur de secours (externe) et suivez les instructions du Clonezilla LiveCD. Choisissez le
partition-image
mode, cela utilise le moins d'espace.Si vous pensez que votre système est en panne (ou si vous souhaitez annuler les modifications), 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.
la source
Vous pouvez installer facilement une ancienne version d'un paquet donné (rétrogradation) avec apt ou dpkg . Le problème est de trouver une ancienne version 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). Trolling and gémissements n'est pas constructif.
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 d’avancer». 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 sans vous attendre à ce que les logiciels à la pointe de la technologie n'échouent 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 utilisant 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.
la source