ITインフラエンジニアのおつむの整理

ITインフラエンジニア(現ニート)の頭の整理場所。ほぼ日記になる予定。

脳死のyumインストールはundoでやり直せたのか

概要

  • WordPressphpが必要だったので脳死yum install phpを実行したが要件とは違うバージョンだった
  • yum eraseコマンドでアンインストールしたが依存関係とかで一緒にインストールされたパケージを調べていちいち指定するのが凄く面倒
  • yum history undo <id>を使用すれば依存関係含めてアンインストールしてくれることを初めて知った

背景

WordPressの要件でphpが必要とあったので脳死でインストールを実行した。 ただ特にリポジトリの追加とかしていなかったのでインストールしてみると、WordPressの要件ではphp7.4以上が必要だが5.4がインストールされていた。 要件満たしていないし、アンインストールするかと思ったが自分が知っているアンインストール方法がyum erase phpだったので実行しようと思ったがどうやら依存関係も一緒にアンインストールしてくれないらしい。

[root@centos ~]# yum erase php
読み込んだプラグイン:fastestmirror
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ php.x86_64 0:5.4.16-48.el7 を 削除
--> 依存性解決を終了しました。

依存性を解決しました

=============================================================================================
 Package          アーキテクチャー    バージョン                    リポジトリー        容量
=============================================================================================
削除中:
 php              x86_64              5.4.16-48.el7                 @base              4.4 M

トランザクションの要約
=============================================================================================
削除  1 パッケージ

インストール容量: 4.4 M
上記の処理を行います。よろしいでしょうか? [y/N]

なので面倒だがyum history package-list phpphpをインストールしたyumのidを確認し、yum info <id>でインストールしたパッケージ名を確認してerase実行の際に面倒だが全部指定してアンインストールした。

[root@centos ~]# yum history package-list php
読み込んだプラグイン:fastestmirror
ID     | 操作           | Package
-------------------------------------------------------------------------------
     2 | インストール   | php-5.4.16-48.el7.x86_64

[root@centos ~]# yum history info 2
読み込んだプラグイン:fastestmirror
トランザクション ID : 2
開始時間            : Wed Jun 23 23:24:23 2021
開始 rpmdb          : 311:5a9b6def48d577ce4831358c73b5a31a376127d0
終了時間            :            23:24:25 2021 (2)
終了 rpmdb          : 320:d9c4f12805f236f194710b521d3834dd4a52744f
ユーザー            : root <root>
終了コード          : 成功
コマンドライン      : install php
トランザクションの実行:
    インストール rpm-4.11.3-25.el7.x86_64                      @anaconda
    インストール yum-3.4.3-154.el7.centos.noarch               @anaconda
    インストール yum-plugin-fastestmirror-1.1.31-42.el7.noarch @anaconda
切り替えたパッケージ:
    依存インストール apr-1.4.8-7.el7.x86_64                 @base
    依存インストール apr-util-1.5.2-6.el7.x86_64            @base
    依存インストール httpd-2.4.6-97.el7.centos.x86_64       @updates
    依存インストール httpd-tools-2.4.6-97.el7.centos.x86_64 @updates
    依存インストール libzip-0.10.1-8.el7.x86_64             @base
    依存インストール mailcap-2.1.41-2.el7.noarch            @base
    インストール php-5.4.16-48.el7.x86_64               @base
    依存インストール php-cli-5.4.16-48.el7.x86_64           @base
    依存インストール php-common-5.4.16-48.el7.x86_64        @base

で、そのままインストールを続けてたのですが、また別のパッケージをアンインストールする必要が出てきて(何度脳死インストールするんだと)、さすがにちゃんと調べたらyumでインストールしたやつ一括でアンインストールするコマンドあるんじゃね?と思い調べた。 ありましたわ。

[root@centos ~]# yum history undo 2
読み込んだプラグイン:fastestmirror
Undoing transaction 2, from Wed Jun 23 23:24:23 2021
    依存インストール apr-1.4.8-7.el7.x86_64                 @base
    依存インストール apr-util-1.5.2-6.el7.x86_64            @base
    依存インストール httpd-2.4.6-97.el7.centos.x86_64       @updates
    依存インストール httpd-tools-2.4.6-97.el7.centos.x86_64 @updates
    依存インストール libzip-0.10.1-8.el7.x86_64             @base
    依存インストール mailcap-2.1.41-2.el7.noarch            @base
    インストール php-5.4.16-48.el7.x86_64               @base
    依存インストール php-cli-5.4.16-48.el7.x86_64           @base
    依存インストール php-common-5.4.16-48.el7.x86_64        @base
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ apr.x86_64 0:1.4.8-7.el7 を 削除
---> パッケージ apr-util.x86_64 0:1.5.2-6.el7 を 削除
---> パッケージ httpd.x86_64 0:2.4.6-97.el7.centos を 削除
---> パッケージ httpd-tools.x86_64 0:2.4.6-97.el7.centos を 削除
---> パッケージ libzip.x86_64 0:0.10.1-8.el7 を 削除
---> パッケージ mailcap.noarch 0:2.1.41-2.el7 を 削除
---> パッケージ php.x86_64 0:5.4.16-48.el7 を 削除
---> パッケージ php-cli.x86_64 0:5.4.16-48.el7 を 削除
---> パッケージ php-common.x86_64 0:5.4.16-48.el7 を 削除
--> 依存性解決を終了しました。

依存性を解決しました

=============================================================================================
 Package              アーキテクチャー
                                      バージョン                     リポジトリー       容量
=============================================================================================
削除中:
 apr                  x86_64          1.4.8-7.el7                    @base             221 k
 apr-util             x86_64          1.5.2-6.el7                    @base             194 k
 httpd                x86_64          2.4.6-97.el7.centos            @updates          9.4 M
 httpd-tools          x86_64          2.4.6-97.el7.centos            @updates          168 k
 libzip               x86_64          0.10.1-8.el7                   @base             104 k
 mailcap              noarch          2.1.41-2.el7                   @base              62 k
 php                  x86_64          5.4.16-48.el7                  @base             4.4 M
 php-cli              x86_64          5.4.16-48.el7                  @base             8.8 M
 php-common           x86_64          5.4.16-48.el7                  @base             3.8 M

トランザクションの要約
=============================================================================================
削除  9 パッケージ

インストール容量: 27 M
上記の処理を行います。よろしいでしょうか? [y/N]

所感

  • undo指定があったの初めて知った。今までeraseやってたのばかみたい。
  • さすがに更新されたパッケージはundo出来ないっぽい
  • 脳死インストールはしないようにと思ったが、undoがあるならもういいかなって気がしてきた。できる幅が良くも悪くも広がった。