Иногда мне нужно внести некоторые изменения в Centos, например, установить и протестировать некоторые утилиты или попробовать сложное руководство по установке расширенной программы, для которой результат неизвестен.
Как мне вернуться к состоянию до внесения изменений.
Практический случай: я хочу установить PHP7 помимо PHP5.6, есть много руководств, я хочу протестировать каждое из них, и если я не справлюсь, я хочу, по крайней мере, вернуться к предыдущему состоянию.
Для производственного использования лучше всего иметь среду тестирования, в которой вы можете протестировать любые изменения перед их применением в производственной среде. Наличие этой виртуальной машины, конечно, помогает делать снимки и откатываться.
Другой подход - использование современных файловых систем, таких как ZFS, которые также позволяют делать снимки или даже LVM.
Лучше всего это делать на виртуальной машине, такой как VMware или VirtualBox, а не на физическом оборудовании. Сделайте снимок вашей виртуальной машины перед тем, как вносить какие-либо изменения, тогда это тривиальный вопрос - вернуться к вашему снимку, если вам нужно вернуться к предыдущему состоянию.
Скажем, вы устанавливаете какой-то пакет:
yum install php
И скажи этот пакет php
устанавливает кучу зависимостей.
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
Если бы вы просто попытались удалить пакет php
, через yum remove php
, yum сделает именно это и оставит большую часть / все зависимости в системе, поскольку вы также не просили ее удалить их.
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)
Скорее, вы можете использовать yum для полной отмены транзакции, вызвав yum history
команда.
]# yum history
Loaded plugins: fastestmirror, security
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
41 | <user> | 2018-06-08 10:45 | Install | 26
А теперь отмените ID 41 истории, в этом случае:
yum history undo 41
Обратите внимание, что в некоторых случаях yum не сможет удалить определенные пакеты, если от них зависят новые обновления, или они являются базовыми системными пакетами и т. Д., Но обычно это «отменяет» эту транзакцию.
Также обратите внимание, что в системах Fedora (а вскоре и в CentOS) dnf
менеджер пакетов имеет те же команды, поэтому dnf history
все равно будет работать.
Последнее замечание: это не отменит никаких изменений файла конфигурации, которые вы внесли в / etc (однако он удалит недавно установленные файлы конфигурации, если пакет поместил их туда). Все, что вы делаете с системой, будет сохраняться, все, что сделал менеджер пакетов, будет отменено. Если вам нужна возможность восстановления всей системы, лучше всего использовать виртуальную машину и моментальные снимки, как уже упоминалось другими.