Failed to add groups file for repository: base – comps file is empty/damaged
先日、CentOS 7サーバーでWordPress環境を構築しているとき、いつもどおり、yumコマンドで「ベース(Base)」と「開発ツール(Development Tools)」のパッケージグループをインストールを試みたところ、以下のように失敗してしまいました。
# yum groupinstall 'Base' 'Development Tools' 読み込んだプラグイン:fastestmirror, langpacks There is no installed groups file. Maybe run: yum groups mark convert (see man yum) Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * updates: ftp.iij.ad.jp リポジトリーのグループファイルに追加できませんでした: base - comps file is empty/damaged Warning: no environments/groups match:
「リポジトリーのグループファイルに追加できませんでした」は、英語環境(LANG=C)では、「Failed to add groups file for repository」です。
そういえば、その前にscreenコマンドをインストールしたときも、コマンド自体は正しくインストールされましたが、以下のようなメッセージが出力されていました。
依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ screen.x86_64 0:4.1.0-0.23.20120314git3c2946.el7_2 を インストール --> 依存性解決を終了しました。 /var/cache/yum/x86_64/7/base/gen/comps.xml: no element found: line 1, column 0 ...
パッケージリストファイル /var/cache/yum/x86_64/7/base/gen/comps.xml が壊れているようです。
※このサーバーは、他の方がISOイメージからCentOS 7をインストールした状態で作業を引き継いだのですが、なぜパッケージリストファイルが壊れていたのかは、よくわかりません。
こんなときは、yumのキャッシュをすべてクリアしてみます。
# yum clean all 読み込んだプラグイン:fastestmirror, langpacks リポジトリーを清掃しています: base extras updates Cleaning up everything Cleaning up list of fastest mirrors
再度 yum groupinstall を実行すると、パッケージ情報を再構築して、今度は正しく実行され、パッケージグループをインストールできました。
# yum groupinstall 'Base' 'Development Tools' 読み込んだプラグイン:fastestmirror, langpacks base | 3.6 kB 00:00 extras | 3.4 kB 00:00 remi-safe | 2.9 kB 00:00 updates | 3.4 kB 00:00 (1/5): extras/7/x86_64/primary_db | 151 kB 00:00 (2/5): base/7/x86_64/group_gz | 155 kB 00:00 (3/5): updates/7/x86_64/primary_db | 4.8 MB 00:01 (4/4): base/7/x86_64/primary_db | 5.6 MB 00:02 Determining fastest mirrors * base: ftp.yz.yamagata-u.ac.jp * extras: ftp.yz.yamagata-u.ac.jp * updates: ftp.yz.yamagata-u.ac.jp ...
※yum clean all のところは、メタ情報のみを削除する yum clean metadata でもよかったのかもしれません。
ちなみに、僕がWebサーバーやDBサーバーを構築するときは、「ベース(Base)」と「開発ツール(Development Tools)」のパッケージグループを必ずインストールします。
サーバー構築やサーバー運用で必須となるようなツールは、早めにそろえておきたいためです。
パッケージグループのリストは、yum grouplist コマンドで確認できます。
英語環境(LANG=C)のほうがわかりやすいと思います。
# export LANG=C # yum grouplist Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp.yz.yamagata-u.ac.jp * extras: ftp.yz.yamagata-u.ac.jp * updates: ftp.yz.yamagata-u.ac.jp Available Environment Groups: Minimal Install Compute Node Infrastructure Server File and Print Server Basic Web Server Virtualization Host Server with GUI GNOME Desktop KDE Plasma Workspaces Development and Creative Workstation Installed Groups: Development Tools Available Groups: Compatibility Libraries Console Internet Tools Graphical Administration Tools Legacy UNIX Compatibility Scientific Support Security Tools Smart Card Support System Administration Tools System Management Done
また、パッケージグループに含まれるパッケージは、yum groupinfo コマンドで確認できます。
# yum groupinfo Base Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp.yz.yamagata-u.ac.jp * extras: ftp.yz.yamagata-u.ac.jp * remi-safe: repo1.sea.innoscale.net * updates: ftp.yz.yamagata-u.ac.jp Group: Base Group-Id: base Description: The basic installation of CentOS Linux. Mandatory Packages: acl at attr authconfig bc bind-utils ...