web-dev-qa-db-ja.com

Centosで変更を元に戻し、元に戻す方法は?

Centosにいくつかのユーティリティをインストールしてテストしたり、複雑なチュートリアルを実行して結果が不明な高度なプログラムをインストールしたりする必要がある場合があります。

変更を行う前の状態に戻すにはどうすればよいですか。

実用的なケース:PHP5.6の他にPHP7をインストールしたい、多くのチュートリアルがあり、それぞれをテストしたい、そして失敗した場合、少なくとも前の状態に戻したい。

5
AFA Med

本番環境で使用する場合の最善のアプローチは、変更を本番環境に適用する前に変更をテストできるテスト環境を用意することです。これをVMとして持つことは、もちろんスナップショットとロールバックに役立ちます。

もう1つのアプローチは、スナップショットやLVMも実行できるZFSなどの最新のファイルシステムを使用することです。

12
Sven

これは、物理ハードウェアではなく、VMwareやVirtualBoxなどの仮想マシンで行うのが最適です。変更を加える前に仮想マシンのスナップショットを作成します。その後、以前の状態に戻す必要がある場合は、スナップショットに戻すのは簡単なことです。

6
Soruk

いくつかのパッケージをインストールするとします。

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

phpyum 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 historyコマンドを呼び出すことにより、yumを使用してトランザクションを完全に取り消すことができます。

]# 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で行った設定ファイルの変更を取り消すことはありません(ただし、パッケージがそこに配置した場合、新しくインストールされた設定ファイルは削除されます)。システムに対して行った操作はすべて保持され、パッケージマネージャーが行った操作はすべて元に戻ります。システム全体の復元機能が必要な場合は、VMとスナップショットを使用することをお勧めします。

2
SnakeDoc