脳死のyumインストールはundoでやり直せたのか
概要
- WordPressにphpが必要だったので脳死で
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 php
でphpをインストールした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があるならもういいかなって気がしてきた。できる幅が良くも悪くも広がった。