自前yumリポジトリでのグループインストール設定

前回、yumリポジトリ構築について書いたが、グループインストールについて触れていなかったので今回は自前yumリポジトリでのグループインストール設定について書く。

yumリポジトリサーバ側でも自前リポジトリを指定する。

yumグループを作る際に yum-groups-manager というツールで既存パッケージを指定するが、yumリポジトリサーバ側でもyumコマンドでRPMが取得できないといけないのでまずはそれを設定する。

$ vi /etc/yum.repos.d/local.repo
[local]
name=CentOS-$releasever - $basearch - Local Repository
baseurl=http://192.168.1.12/centos/$releasever/$basearch/
enabled=1
gpgcheck=0

グループ定義XMLを用意する

グループ定義XMLを用意するために yum-groups-manager というツールを使う。
使い方は下記のようにする。

(新規の場合)
$ yum-groups-manager --id=local-mysql --name='Local MySQL packages' --description='The package in this group are MySQL packages needed to DB servers.' --save=/var/www/html/centos/5/i386/groups.xml MySQL-client-community

すると下記のようなXMLができあがる。

$ cat /var/www/html/centos/5/i386/repodata/groups.xml


  
    local-mysql
    false
    true
    1024
    Local MySQL packages
    The package in this group are MySQL packages needed to DB servers.
    
      MySQL-client-community
    
  

せっかくなので MySQL-server-community も同じグループに含める。
まずはオフィシャルからダウンロードする。

$ wget http://dev.mysql.com/get/Downloads/MySQL-5.1/MySQL-server-community-5.1.51-1.rhel5.i386.rpm/from/http://ftp.iij.ad.jp/pub/db/mysql/

上記で既にグループ定義XMLは用意してあるのでそのXMLに追加してみる。コマンドは以下のようになる。

$ yum-groups-manager --id=local-mysql --load=/var/www/html/centos/5/i386/repodata/groups.xml --save=/var/www/html/centos/5/i386/repodata/groups.xml MySQL-server-community

--id もしくは --name に既にあるものを指定すれば追加することができる。念のため確認。

$ cat /var/www/html/centos/5/i386/repodata/groups.xml


  
   local-mysql
   false
   true
   1024
   Local MySQL packages
   The package in this group are MySQL packages needed to DB servers.
    
      MySQL-client-community
      MySQL-server-community
    
  

最後にグループ定義XMLを指定してyumリポジトリを更新する。

$ createrepo -v -g /var/www/html/centos/5/i386/repodata/groups.xml /var/www/html/centos/5/i386/

yumクライアント側でグループインストールしてみる。

では実際にグループインストールでMySQL関連のRPMを入れてみる。

$ yum --disablerepo=* --enablerepo=local groupinstall mysql-local
=====================================================================================
 Package                       Arch        Version                Repository    Size
=====================================================================================
Installing:
 MySQL-client-community        i386        5.1.51-1.rhel5         local        7.3 M
 MySQL-server-community        i386        5.1.51-1.rhel5         local         20 M

無事にインストールできている。

まとめ

1つのグループでたくさんのRPMを入れようとするとそれぞれRPMを指定しないといけなくて大変。
yum-groups-manager には wildcard も指定できるようなのだがどうもうまくいかなかった orz...
他にも 複数グループをまとめてカテゴリとして扱うこともできるようなので興味のある方はぜひ試してみてください。