6 votes

Comment revenir en arrière et annuler des changements dans Centos ?

Parfois, j'ai besoin d'apporter quelques modifications à Centos, par exemple en installant et en testant certains utilitaires ou en essayant un tutoriel complexe pour installer un programme avancé dont le résultat est inconnu.

Comment puis-je revenir à l'état d'avant les changements ?

Un cas pratique : Je veux installer PHP7 en plus de PHP5.6, il existe de nombreux tutoriels, je veux tester chacun d'entre eux et si j'échoue, je veux au moins pouvoir revenir à l'état précédent.

3 votes

Si c'est un vm , utilisez les snapshots

12voto

Sven Points 95985

Pour une utilisation en production, la meilleure approche est de disposer d'un environnement de test où vous pouvez tester toutes les modifications avant de les appliquer en production. Le fait de disposer d'une machine virtuelle facilite bien sûr les sauvegardes et les retours en arrière.

Une autre approche consiste à utiliser des systèmes de fichiers modernes comme ZFS, qui permettent également de réaliser des instantanés, ou même LVM.

6voto

LMS Points 252

Il est préférable de le faire dans une machine virtuelle telle que VMware ou VirtualBox, plutôt que sur du matériel physique. Prenez un instantané de votre machine virtuelle avant d'effectuer des modifications. Si vous devez revenir à l'état précédent, il vous suffira de revenir à l'instantané.

2voto

AntonTheGreat Points 341

Disons que vous installez un paquet :

yum install php

Et dire que ce paquet php installe un tas de dépendances.

Dependencies Resolved

===============================================================================================================================
 Package                          Arch                       Version                            Repository                Size
===============================================================================================================================
Installing:
 php                              x86_64                     5.3.3-49.el6                       base                     1.1 M
Installing for dependencies:
 php-bcmath                       x86_64                     5.3.3-49.el6                       base                      40 k
 php-cli                          x86_64                     5.3.3-49.el6                       base                     2.2 M
 php-common                       x86_64                     5.3.3-49.el6                       base                     530 k
 php-dba                          x86_64                     5.3.3-49.el6                       base                      46 k
 php-devel                        x86_64                     5.3.3-49.el6                       base                     513 k
 php-embedded                     x86_64                     5.3.3-49.el6                       base                     1.1 M
 php-enchant                      x86_64                     5.3.3-49.el6                       base                      34 k
 php-gd                           x86_64                     5.3.3-49.el6                       base                     111 k
 php-imap                         x86_64                     5.3.3-49.el6                       base                      55 k
 php-intl                         x86_64                     5.3.3-49.el6                       base                      76 k
 php-ldap                         x86_64                     5.3.3-49.el6                       base                      43 k
 php-mbstring                     x86_64                     5.3.3-49.el6                       base                     460 k
 php-mysql                        x86_64                     5.3.3-49.el6                       base                      86 k
 php-odbc                         x86_64                     5.3.3-49.el6                       base                      56 k
 php-pdo                          x86_64                     5.3.3-49.el6                       base                      80 k
 php-pgsql                        x86_64                     5.3.3-49.el6                       base                      75 k
 php-process                      x86_64                     5.3.3-49.el6                       base                      44 k
 php-pspell                       x86_64                     5.3.3-49.el6                       base                      33 k
 php-recode                       x86_64                     5.3.3-49.el6                       base                      30 k
 php-snmp                         x86_64                     5.3.3-49.el6                       base                      36 k
 php-soap                         x86_64                     5.3.3-49.el6                       base                     145 k
 php-tidy                         x86_64                     5.3.3-49.el6                       base                      41 k
 php-xml                          x86_64                     5.3.3-49.el6                       base                     108 k
 php-xmlrpc                       x86_64                     5.3.3-49.el6                       base                      58 k
 php-zts                          x86_64                     5.3.3-49.el6                       base                     1.2 M

Si vous deviez simplement essayer de retirer le paquet php via yum remove php yum fera exactement cela, et laissera la plupart/toutes les dépendances sur le système puisque vous ne lui avez pas demandé de les supprimer également.

Dependencies Resolved

===============================================================================================================================================================================================================
 Package                                                  Arch                                         Version                                               Repository                                   Size
===============================================================================================================================================================================================================
Removing:
 php                                                      x86_64                                       5.3.3-49.el6                                          @base                                       3.5 M
Removing for dependencies:
 php-devel                                                x86_64                                       5.3.3-49.el6                                          @base                                       3.0 M
 php-pecl-apc-devel                                       x86_64                                       3.1.9-2.el6                                           @base                                       3.3 k

Transaction Summary
===============================================================================================================================================================================================================
Remove        3 Package(s)

Au contraire, vous pouvez utiliser yum pour annuler entièrement une transaction, en appelant yum history commandement.

]# yum history
Loaded plugins: fastestmirror, security
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    41 |  <user>                 | 2018-06-08 10:45 | Install        |   26

Et maintenant, annulez l'historique ID 41, dans ce cas :

yum history undo 41

Notez que dans certains cas, yum ne sera pas en mesure de supprimer certains paquets, si des mises à jour plus récentes en dépendent, ou s'il s'agit de paquets du système central, etc... mais en général, cela "annulera" cette transaction.

Notez également que sur les systèmes Fedora (et bientôt CentOS), dnf a les mêmes commandes, donc dnf history fonctionnera toujours.

Dernière remarque, cela n'annulera pas les changements de fichiers de configuration que vous avez effectués dans /etc (cela supprimera les fichiers de configuration nouvellement installés si un paquet les a placés là, cependant). Tout ce que vous faites sur le système persistera, tout ce que le gestionnaire de paquets a fait sera annulé. Si vous avez besoin d'une capacité de restauration complète du système, il est préférable d'utiliser une VM et des snapshots comme d'autres l'ont mentionné.

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