rug経由でyumを利用するには

SLES10をデフォルト設定でインストールした場合、直接yum コマンドを使ってパッケージのインストールを行うことは出来ないのだが、類似のコマンドにrug( http://ja.opensuse.org/Rug%E3%81%AE%E5%88%A9%E7%94%A8 ) が存在しており、yum と同じ操作を行うことができる。
また、rug経由でyumレポジトリを使用することもできるため、Fedorayum-utilsで作成したレポジトリから、直接rug installをかけることも出来た。更にPuppetのpackageとも連動できたため、yumを直接使う理由はあまりないようだ。。orz

なお、下の手順はSLSE10の体験版で検証したため、自己責任で使用のこと。。

yumレポジトリの構築

こちらはCentOS等での手順と同様のため、割愛。。大まかには、 次の3つになる。

1./var/www/html 内にディレクトリ作成
2. 適当なRPMファイルを配置
3.# createrepo 作成したディレクトリ

rugへのレポジトリ追加

192.168.1.15のWebサーバーでyumレポジトリを作った場合、次のコマンドで設定できる。

# rug service-add  http://192.168.1.15/sles10_32_opt --type yum opt_yum_repo

確認は次で行う。

# rug service-list
# | Status | Type | Name                                | URI                   
--+--------+------+-------------------------------------+-----------------------
1 | Active | ZYPP | SUSE Linux Enterprise Server 10 SP2 | cd:///?devices=/dev...
2 | Active | YUM  | opt_yum_repo                      | http://192.168.1.15/...

なお、デフォルトの設定ではセキュリティ設定??によりyumが使用できず、次の追加設定を行う必要があった。

(/etc/zmd/zmd.conf )
[Advanced]
run-transaction-test=False
security-level=checksum  <== この行を追記

終わった後は、zmdの再起動を行うのが無難なようだ。。(色々試していたので、正確なことは不明。。 orz)

# /etc/init.d/novell-zmd stop
# /etc/init.d/novell-zmd start

yumの動作確認

yumを使う場合には、事前にrefreshを行う必要があるらしい。(試した限りでは、yumレポジトリにパッケージを追加する際に毎回必要となった。。定期的に実施しておいたほうがよいかも。。)

# rug refresh

実際にインストールを行う場合は次のコマンドで実施出来る。試した限りでは、きちんと依存性も解決できる状態になっていた。

# rug install ganglia-gmond

なお、 rug info ganglia-gmond などでパッケージの情報も閲覧出来る。

Puppetとの組み合わせ

他のディストリビューションの場合と全く同じなのだが、、w packageで指定して、puppetdコマンドで同期すると、自動でインストールが行われるようだ。

package { 'ganglia-gmond': 
 ensure => present, 
} 
# puppetd --server 192.168.1.15 --test  <== 自動でインストールが行われる

SLES10でyum(というかPuppetでのパッケージ管理)を行う方法を探していたのだが、幸いにもデフォルトのパッケージのみで実現できるようだ。yumレポジトリはCentOSなどから簡単に構築できるので、ローカルで必要になるRPMファイルを自動でインストールするには、この方法がよさそうだろうか。。